Created
September 24, 2021 19:24
-
-
Save jahvi/31c6f684d76050a32d244ccc55d9a66a to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.7+commit.e28d00a7.js&optimize=false&runs=200&gist=
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "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": "", | |
| "opcodes": "", | |
| "sourceMap": "" | |
| }, | |
| "deployedBytecode": { | |
| "generatedSources": [], | |
| "immutableReferences": {}, | |
| "linkReferences": {}, | |
| "object": "", | |
| "opcodes": "", | |
| "sourceMap": "" | |
| }, | |
| "gasEstimates": null, | |
| "methodIdentifiers": { | |
| "owner()": "8da5cb5b", | |
| "renounceOwnership()": "715018a6", | |
| "transferOwnership(address)": "f2fde38b" | |
| } | |
| }, | |
| "abi": [ | |
| { | |
| "anonymous": false, | |
| "inputs": [ | |
| { | |
| "indexed": true, | |
| "internalType": "address", | |
| "name": "previousOwner", | |
| "type": "address" | |
| }, | |
| { | |
| "indexed": true, | |
| "internalType": "address", | |
| "name": "newOwner", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "OwnershipTransferred", | |
| "type": "event" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "owner", | |
| "outputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "", | |
| "type": "address" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "renounceOwnership", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "newOwner", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "transferOwnership", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| } | |
| ] | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "compiler": { | |
| "version": "0.8.4+commit.c7e474f2" | |
| }, | |
| "language": "Solidity", | |
| "output": { | |
| "abi": [ | |
| { | |
| "anonymous": false, | |
| "inputs": [ | |
| { | |
| "indexed": true, | |
| "internalType": "address", | |
| "name": "previousOwner", | |
| "type": "address" | |
| }, | |
| { | |
| "indexed": true, | |
| "internalType": "address", | |
| "name": "newOwner", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "OwnershipTransferred", | |
| "type": "event" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "owner", | |
| "outputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "", | |
| "type": "address" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "renounceOwnership", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "newOwner", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "transferOwnership", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| } | |
| ], | |
| "devdoc": { | |
| "details": "Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.", | |
| "kind": "dev", | |
| "methods": { | |
| "constructor": { | |
| "details": "Initializes the contract setting the deployer as the initial owner." | |
| }, | |
| "owner()": { | |
| "details": "Returns the address of the current owner." | |
| }, | |
| "renounceOwnership()": { | |
| "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." | |
| }, | |
| "transferOwnership(address)": { | |
| "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." | |
| } | |
| }, | |
| "version": 1 | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| }, | |
| "settings": { | |
| "compilationTarget": { | |
| ".deps/github/OpenZeppelin/openzeppelin-contracts/contracts/access/Ownable.sol": "Ownable" | |
| }, | |
| "evmVersion": "istanbul", | |
| "libraries": {}, | |
| "metadata": { | |
| "bytecodeHash": "ipfs" | |
| }, | |
| "optimizer": { | |
| "enabled": false, | |
| "runs": 200 | |
| }, | |
| "remappings": [] | |
| }, | |
| "sources": { | |
| ".deps/github/OpenZeppelin/openzeppelin-contracts/contracts/access/Ownable.sol": { | |
| "keccak256": "0x6bb804a310218875e89d12c053e94a13a4607cdf7cc2052f3e52bd32a0dc50a1", | |
| "license": "MIT", | |
| "urls": [ | |
| "bzz-raw://b2ebbbe6d0011175bd9e7268b83de3f9c2f9d8d4cbfbaef12aff977d7d727163", | |
| "dweb:/ipfs/Qmd5c7Vxtis9wzkDNhxwc6A2QT5H9xn9kfjhx7qx44vpro" | |
| ] | |
| }, | |
| ".deps/github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Context.sol": { | |
| "keccak256": "0x90565a39ae45c80f0468dc96c7b20d0afc3055f344c8203a0c9258239f350b9f", | |
| "license": "MIT", | |
| "urls": [ | |
| "bzz-raw://26e8b38a7ac8e7b4463af00cf7fff1bf48ae9875765bf4f7751e100124d0bc8c", | |
| "dweb:/ipfs/QmWcsmkVr24xmmjfnBQZoemFniXjj3vwT78Cz6uqZW1Hux" | |
| ] | |
| } | |
| }, | |
| "version": 1 | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| 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); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| 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; | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| 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() { | |
| _setOwner(_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 { | |
| _setOwner(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"); | |
| _setOwner(newOwner); | |
| } | |
| function _setOwner(address newOwner) private { | |
| address oldOwner = _owner; | |
| _owner = newOwner; | |
| emit OwnershipTransferred(oldOwner, newOwner); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| pragma solidity ^0.8.0; | |
| import "./IERC1155.sol"; | |
| import "./IERC1155Receiver.sol"; | |
| import "./extensions/IERC1155MetadataURI.sol"; | |
| import "../../utils/Address.sol"; | |
| import "../../utils/Context.sol"; | |
| import "../../utils/introspection/ERC165.sol"; | |
| /** | |
| * @dev Implementation of the basic standard multi-token. | |
| * See https://eips.ethereum.org/EIPS/eip-1155 | |
| * Originally based on code by Enjin: https://github.com/enjin/erc-1155 | |
| * | |
| * _Available since v3.1._ | |
| */ | |
| contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI { | |
| using Address for address; | |
| // Mapping from token ID to account balances | |
| mapping(uint256 => mapping(address => uint256)) private _balances; | |
| // Mapping from account to operator approvals | |
| mapping(address => mapping(address => bool)) private _operatorApprovals; | |
| // Used as the URI for all token types by relying on ID substitution, e.g. https://token-cdn-domain/{id}.json | |
| string private _uri; | |
| /** | |
| * @dev See {_setURI}. | |
| */ | |
| constructor(string memory uri_) { | |
| _setURI(uri_); | |
| } | |
| /** | |
| * @dev See {IERC165-supportsInterface}. | |
| */ | |
| function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { | |
| return | |
| interfaceId == type(IERC1155).interfaceId || | |
| interfaceId == type(IERC1155MetadataURI).interfaceId || | |
| super.supportsInterface(interfaceId); | |
| } | |
| /** | |
| * @dev See {IERC1155MetadataURI-uri}. | |
| * | |
| * This implementation returns the same URI for *all* token types. It relies | |
| * on the token type ID substitution mechanism | |
| * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. | |
| * | |
| * Clients calling this function must replace the `\{id\}` substring with the | |
| * actual token type ID. | |
| */ | |
| function uri(uint256) public view virtual override returns (string memory) { | |
| return _uri; | |
| } | |
| /** | |
| * @dev See {IERC1155-balanceOf}. | |
| * | |
| * Requirements: | |
| * | |
| * - `account` cannot be the zero address. | |
| */ | |
| function balanceOf(address account, uint256 id) public view virtual override returns (uint256) { | |
| require(account != address(0), "ERC1155: balance query for the zero address"); | |
| return _balances[id][account]; | |
| } | |
| /** | |
| * @dev See {IERC1155-balanceOfBatch}. | |
| * | |
| * Requirements: | |
| * | |
| * - `accounts` and `ids` must have the same length. | |
| */ | |
| function balanceOfBatch(address[] memory accounts, uint256[] memory ids) | |
| public | |
| view | |
| virtual | |
| override | |
| returns (uint256[] memory) | |
| { | |
| require(accounts.length == ids.length, "ERC1155: accounts and ids length mismatch"); | |
| uint256[] memory batchBalances = new uint256[](accounts.length); | |
| for (uint256 i = 0; i < accounts.length; ++i) { | |
| batchBalances[i] = balanceOf(accounts[i], ids[i]); | |
| } | |
| return batchBalances; | |
| } | |
| /** | |
| * @dev See {IERC1155-setApprovalForAll}. | |
| */ | |
| function setApprovalForAll(address operator, bool approved) public virtual override { | |
| require(_msgSender() != operator, "ERC1155: setting approval status for self"); | |
| _operatorApprovals[_msgSender()][operator] = approved; | |
| emit ApprovalForAll(_msgSender(), operator, approved); | |
| } | |
| /** | |
| * @dev See {IERC1155-isApprovedForAll}. | |
| */ | |
| function isApprovedForAll(address account, address operator) public view virtual override returns (bool) { | |
| return _operatorApprovals[account][operator]; | |
| } | |
| /** | |
| * @dev See {IERC1155-safeTransferFrom}. | |
| */ | |
| function safeTransferFrom( | |
| address from, | |
| address to, | |
| uint256 id, | |
| uint256 amount, | |
| bytes memory data | |
| ) public virtual override { | |
| require( | |
| from == _msgSender() || isApprovedForAll(from, _msgSender()), | |
| "ERC1155: caller is not owner nor approved" | |
| ); | |
| _safeTransferFrom(from, to, id, amount, data); | |
| } | |
| /** | |
| * @dev See {IERC1155-safeBatchTransferFrom}. | |
| */ | |
| function safeBatchTransferFrom( | |
| address from, | |
| address to, | |
| uint256[] memory ids, | |
| uint256[] memory amounts, | |
| bytes memory data | |
| ) public virtual override { | |
| require( | |
| from == _msgSender() || isApprovedForAll(from, _msgSender()), | |
| "ERC1155: transfer caller is not owner nor approved" | |
| ); | |
| _safeBatchTransferFrom(from, to, ids, amounts, data); | |
| } | |
| /** | |
| * @dev Transfers `amount` tokens of token type `id` from `from` to `to`. | |
| * | |
| * Emits a {TransferSingle} event. | |
| * | |
| * Requirements: | |
| * | |
| * - `to` cannot be the zero address. | |
| * - `from` must have a balance of tokens of type `id` of at least `amount`. | |
| * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the | |
| * acceptance magic value. | |
| */ | |
| function _safeTransferFrom( | |
| address from, | |
| address to, | |
| uint256 id, | |
| uint256 amount, | |
| bytes memory data | |
| ) internal virtual { | |
| require(to != address(0), "ERC1155: transfer to the zero address"); | |
| address operator = _msgSender(); | |
| _beforeTokenTransfer(operator, from, to, _asSingletonArray(id), _asSingletonArray(amount), data); | |
| uint256 fromBalance = _balances[id][from]; | |
| require(fromBalance >= amount, "ERC1155: insufficient balance for transfer"); | |
| unchecked { | |
| _balances[id][from] = fromBalance - amount; | |
| } | |
| _balances[id][to] += amount; | |
| emit TransferSingle(operator, from, to, id, amount); | |
| _doSafeTransferAcceptanceCheck(operator, from, to, id, amount, data); | |
| } | |
| /** | |
| * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_safeTransferFrom}. | |
| * | |
| * Emits a {TransferBatch} event. | |
| * | |
| * Requirements: | |
| * | |
| * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the | |
| * acceptance magic value. | |
| */ | |
| function _safeBatchTransferFrom( | |
| address from, | |
| address to, | |
| uint256[] memory ids, | |
| uint256[] memory amounts, | |
| bytes memory data | |
| ) internal virtual { | |
| require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch"); | |
| require(to != address(0), "ERC1155: transfer to the zero address"); | |
| address operator = _msgSender(); | |
| _beforeTokenTransfer(operator, from, to, ids, amounts, data); | |
| for (uint256 i = 0; i < ids.length; ++i) { | |
| uint256 id = ids[i]; | |
| uint256 amount = amounts[i]; | |
| uint256 fromBalance = _balances[id][from]; | |
| require(fromBalance >= amount, "ERC1155: insufficient balance for transfer"); | |
| unchecked { | |
| _balances[id][from] = fromBalance - amount; | |
| } | |
| _balances[id][to] += amount; | |
| } | |
| emit TransferBatch(operator, from, to, ids, amounts); | |
| _doSafeBatchTransferAcceptanceCheck(operator, from, to, ids, amounts, data); | |
| } | |
| /** | |
| * @dev Sets a new URI for all token types, by relying on the token type ID | |
| * substitution mechanism | |
| * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. | |
| * | |
| * By this mechanism, any occurrence of the `\{id\}` substring in either the | |
| * URI or any of the amounts in the JSON file at said URI will be replaced by | |
| * clients with the token type ID. | |
| * | |
| * For example, the `https://token-cdn-domain/\{id\}.json` URI would be | |
| * interpreted by clients as | |
| * `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json` | |
| * for token type ID 0x4cce0. | |
| * | |
| * See {uri}. | |
| * | |
| * Because these URIs cannot be meaningfully represented by the {URI} event, | |
| * this function emits no events. | |
| */ | |
| function _setURI(string memory newuri) internal virtual { | |
| _uri = newuri; | |
| } | |
| /** | |
| * @dev Creates `amount` tokens of token type `id`, and assigns them to `account`. | |
| * | |
| * Emits a {TransferSingle} event. | |
| * | |
| * Requirements: | |
| * | |
| * - `account` cannot be the zero address. | |
| * - If `account` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the | |
| * acceptance magic value. | |
| */ | |
| function _mint( | |
| address account, | |
| uint256 id, | |
| uint256 amount, | |
| bytes memory data | |
| ) internal virtual { | |
| require(account != address(0), "ERC1155: mint to the zero address"); | |
| address operator = _msgSender(); | |
| _beforeTokenTransfer(operator, address(0), account, _asSingletonArray(id), _asSingletonArray(amount), data); | |
| _balances[id][account] += amount; | |
| emit TransferSingle(operator, address(0), account, id, amount); | |
| _doSafeTransferAcceptanceCheck(operator, address(0), account, id, amount, data); | |
| } | |
| /** | |
| * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}. | |
| * | |
| * Requirements: | |
| * | |
| * - `ids` and `amounts` must have the same length. | |
| * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the | |
| * acceptance magic value. | |
| */ | |
| function _mintBatch( | |
| address to, | |
| uint256[] memory ids, | |
| uint256[] memory amounts, | |
| bytes memory data | |
| ) internal virtual { | |
| require(to != address(0), "ERC1155: mint to the zero address"); | |
| require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch"); | |
| address operator = _msgSender(); | |
| _beforeTokenTransfer(operator, address(0), to, ids, amounts, data); | |
| for (uint256 i = 0; i < ids.length; i++) { | |
| _balances[ids[i]][to] += amounts[i]; | |
| } | |
| emit TransferBatch(operator, address(0), to, ids, amounts); | |
| _doSafeBatchTransferAcceptanceCheck(operator, address(0), to, ids, amounts, data); | |
| } | |
| /** | |
| * @dev Destroys `amount` tokens of token type `id` from `account` | |
| * | |
| * Requirements: | |
| * | |
| * - `account` cannot be the zero address. | |
| * - `account` must have at least `amount` tokens of token type `id`. | |
| */ | |
| function _burn( | |
| address account, | |
| uint256 id, | |
| uint256 amount | |
| ) internal virtual { | |
| require(account != address(0), "ERC1155: burn from the zero address"); | |
| address operator = _msgSender(); | |
| _beforeTokenTransfer(operator, account, address(0), _asSingletonArray(id), _asSingletonArray(amount), ""); | |
| uint256 accountBalance = _balances[id][account]; | |
| require(accountBalance >= amount, "ERC1155: burn amount exceeds balance"); | |
| unchecked { | |
| _balances[id][account] = accountBalance - amount; | |
| } | |
| emit TransferSingle(operator, account, address(0), id, amount); | |
| } | |
| /** | |
| * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}. | |
| * | |
| * Requirements: | |
| * | |
| * - `ids` and `amounts` must have the same length. | |
| */ | |
| function _burnBatch( | |
| address account, | |
| uint256[] memory ids, | |
| uint256[] memory amounts | |
| ) internal virtual { | |
| require(account != address(0), "ERC1155: burn from the zero address"); | |
| require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch"); | |
| address operator = _msgSender(); | |
| _beforeTokenTransfer(operator, account, address(0), ids, amounts, ""); | |
| for (uint256 i = 0; i < ids.length; i++) { | |
| uint256 id = ids[i]; | |
| uint256 amount = amounts[i]; | |
| uint256 accountBalance = _balances[id][account]; | |
| require(accountBalance >= amount, "ERC1155: burn amount exceeds balance"); | |
| unchecked { | |
| _balances[id][account] = accountBalance - amount; | |
| } | |
| } | |
| emit TransferBatch(operator, account, address(0), ids, amounts); | |
| } | |
| /** | |
| * @dev Hook that is called before any token transfer. This includes minting | |
| * and burning, as well as batched variants. | |
| * | |
| * The same hook is called on both single and batched variants. For single | |
| * transfers, the length of the `id` and `amount` arrays will be 1. | |
| * | |
| * Calling conditions (for each `id` and `amount` pair): | |
| * | |
| * - When `from` and `to` are both non-zero, `amount` of ``from``'s tokens | |
| * of token type `id` will be transferred to `to`. | |
| * - When `from` is zero, `amount` tokens of token type `id` will be minted | |
| * for `to`. | |
| * - when `to` is zero, `amount` of ``from``'s tokens of token type `id` | |
| * will be burned. | |
| * - `from` and `to` are never both zero. | |
| * - `ids` and `amounts` have the same, non-zero length. | |
| * | |
| * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. | |
| */ | |
| function _beforeTokenTransfer( | |
| address operator, | |
| address from, | |
| address to, | |
| uint256[] memory ids, | |
| uint256[] memory amounts, | |
| bytes memory data | |
| ) internal virtual {} | |
| function _doSafeTransferAcceptanceCheck( | |
| address operator, | |
| address from, | |
| address to, | |
| uint256 id, | |
| uint256 amount, | |
| bytes memory data | |
| ) private { | |
| if (to.isContract()) { | |
| try IERC1155Receiver(to).onERC1155Received(operator, from, id, amount, data) returns (bytes4 response) { | |
| if (response != IERC1155Receiver.onERC1155Received.selector) { | |
| revert("ERC1155: ERC1155Receiver rejected tokens"); | |
| } | |
| } catch Error(string memory reason) { | |
| revert(reason); | |
| } catch { | |
| revert("ERC1155: transfer to non ERC1155Receiver implementer"); | |
| } | |
| } | |
| } | |
| function _doSafeBatchTransferAcceptanceCheck( | |
| address operator, | |
| address from, | |
| address to, | |
| uint256[] memory ids, | |
| uint256[] memory amounts, | |
| bytes memory data | |
| ) private { | |
| if (to.isContract()) { | |
| try IERC1155Receiver(to).onERC1155BatchReceived(operator, from, ids, amounts, data) returns ( | |
| bytes4 response | |
| ) { | |
| if (response != IERC1155Receiver.onERC1155BatchReceived.selector) { | |
| revert("ERC1155: ERC1155Receiver rejected tokens"); | |
| } | |
| } catch Error(string memory reason) { | |
| revert(reason); | |
| } catch { | |
| revert("ERC1155: transfer to non ERC1155Receiver implementer"); | |
| } | |
| } | |
| } | |
| function _asSingletonArray(uint256 element) private pure returns (uint256[] memory) { | |
| uint256[] memory array = new uint256[](1); | |
| array[0] = element; | |
| return array; | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| pragma solidity ^0.8.0; | |
| import "../ERC1155.sol"; | |
| /** | |
| * @dev Extension of ERC1155 that adds tracking of total supply per id. | |
| * | |
| * Useful for scenarios where Fungible and Non-fungible tokens have to be | |
| * clearly identified. Note: While a totalSupply of 1 might mean the | |
| * corresponding is an NFT, there is no guarantees that no other token with the | |
| * same id are not going to be minted. | |
| */ | |
| abstract contract ERC1155Supply is ERC1155 { | |
| mapping(uint256 => uint256) private _totalSupply; | |
| /** | |
| * @dev Total amount of tokens in with a given id. | |
| */ | |
| function totalSupply(uint256 id) public view virtual returns (uint256) { | |
| return _totalSupply[id]; | |
| } | |
| /** | |
| * @dev Indicates weither any token exist with a given id, or not. | |
| */ | |
| function exists(uint256 id) public view virtual returns (bool) { | |
| return ERC1155Supply.totalSupply(id) > 0; | |
| } | |
| /** | |
| * @dev See {ERC1155-_mint}. | |
| */ | |
| function _mint( | |
| address account, | |
| uint256 id, | |
| uint256 amount, | |
| bytes memory data | |
| ) internal virtual override { | |
| super._mint(account, id, amount, data); | |
| _totalSupply[id] += amount; | |
| } | |
| /** | |
| * @dev See {ERC1155-_mintBatch}. | |
| */ | |
| function _mintBatch( | |
| address to, | |
| uint256[] memory ids, | |
| uint256[] memory amounts, | |
| bytes memory data | |
| ) internal virtual override { | |
| super._mintBatch(to, ids, amounts, data); | |
| for (uint256 i = 0; i < ids.length; ++i) { | |
| _totalSupply[ids[i]] += amounts[i]; | |
| } | |
| } | |
| /** | |
| * @dev See {ERC1155-_burn}. | |
| */ | |
| function _burn( | |
| address account, | |
| uint256 id, | |
| uint256 amount | |
| ) internal virtual override { | |
| super._burn(account, id, amount); | |
| _totalSupply[id] -= amount; | |
| } | |
| /** | |
| * @dev See {ERC1155-_burnBatch}. | |
| */ | |
| function _burnBatch( | |
| address account, | |
| uint256[] memory ids, | |
| uint256[] memory amounts | |
| ) internal virtual override { | |
| super._burnBatch(account, ids, amounts); | |
| for (uint256 i = 0; i < ids.length; ++i) { | |
| _totalSupply[ids[i]] -= amounts[i]; | |
| } | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| pragma solidity ^0.8.0; | |
| import "../IERC1155.sol"; | |
| /** | |
| * @dev Interface of the optional ERC1155MetadataExtension interface, as defined | |
| * in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP]. | |
| * | |
| * _Available since v3.1._ | |
| */ | |
| interface IERC1155MetadataURI is IERC1155 { | |
| /** | |
| * @dev Returns the URI for token type `id`. | |
| * | |
| * If the `\{id\}` substring is present in the URI, it must be replaced by | |
| * clients with the actual token type ID. | |
| */ | |
| function uri(uint256 id) external view returns (string memory); | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| pragma solidity ^0.8.0; | |
| import "../../utils/introspection/IERC165.sol"; | |
| /** | |
| * @dev Required interface of an ERC1155 compliant contract, as defined in the | |
| * https://eips.ethereum.org/EIPS/eip-1155[EIP]. | |
| * | |
| * _Available since v3.1._ | |
| */ | |
| interface IERC1155 is IERC165 { | |
| /** | |
| * @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`. | |
| */ | |
| event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value); | |
| /** | |
| * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all | |
| * transfers. | |
| */ | |
| event TransferBatch( | |
| address indexed operator, | |
| address indexed from, | |
| address indexed to, | |
| uint256[] ids, | |
| uint256[] values | |
| ); | |
| /** | |
| * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to | |
| * `approved`. | |
| */ | |
| event ApprovalForAll(address indexed account, address indexed operator, bool approved); | |
| /** | |
| * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. | |
| * | |
| * If an {URI} event was emitted for `id`, the standard | |
| * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value | |
| * returned by {IERC1155MetadataURI-uri}. | |
| */ | |
| event URI(string value, uint256 indexed id); | |
| /** | |
| * @dev Returns the amount of tokens of token type `id` owned by `account`. | |
| * | |
| * Requirements: | |
| * | |
| * - `account` cannot be the zero address. | |
| */ | |
| function balanceOf(address account, uint256 id) external view returns (uint256); | |
| /** | |
| * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. | |
| * | |
| * Requirements: | |
| * | |
| * - `accounts` and `ids` must have the same length. | |
| */ | |
| function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids) | |
| external | |
| view | |
| returns (uint256[] memory); | |
| /** | |
| * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, | |
| * | |
| * Emits an {ApprovalForAll} event. | |
| * | |
| * Requirements: | |
| * | |
| * - `operator` cannot be the caller. | |
| */ | |
| function setApprovalForAll(address operator, bool approved) external; | |
| /** | |
| * @dev Returns true if `operator` is approved to transfer ``account``'s tokens. | |
| * | |
| * See {setApprovalForAll}. | |
| */ | |
| function isApprovedForAll(address account, address operator) external view returns (bool); | |
| /** | |
| * @dev Transfers `amount` tokens of token type `id` from `from` to `to`. | |
| * | |
| * Emits a {TransferSingle} event. | |
| * | |
| * Requirements: | |
| * | |
| * - `to` cannot be the zero address. | |
| * - If the caller is not `from`, it must be have been approved to spend ``from``'s tokens via {setApprovalForAll}. | |
| * - `from` must have a balance of tokens of type `id` of at least `amount`. | |
| * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the | |
| * acceptance magic value. | |
| */ | |
| function safeTransferFrom( | |
| address from, | |
| address to, | |
| uint256 id, | |
| uint256 amount, | |
| bytes calldata data | |
| ) external; | |
| /** | |
| * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. | |
| * | |
| * Emits a {TransferBatch} event. | |
| * | |
| * Requirements: | |
| * | |
| * - `ids` and `amounts` must have the same length. | |
| * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the | |
| * acceptance magic value. | |
| */ | |
| function safeBatchTransferFrom( | |
| address from, | |
| address to, | |
| uint256[] calldata ids, | |
| uint256[] calldata amounts, | |
| bytes calldata data | |
| ) external; | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| pragma solidity ^0.8.0; | |
| import "../../utils/introspection/IERC165.sol"; | |
| /** | |
| * @dev _Available since v3.1._ | |
| */ | |
| interface IERC1155Receiver is IERC165 { | |
| /** | |
| @dev Handles the receipt of a single ERC1155 token type. This function is | |
| called at the end of a `safeTransferFrom` after the balance has been updated. | |
| To accept the transfer, this must return | |
| `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` | |
| (i.e. 0xf23a6e61, or its own function selector). | |
| @param operator The address which initiated the transfer (i.e. msg.sender) | |
| @param from The address which previously owned the token | |
| @param id The ID of the token being transferred | |
| @param value The amount of tokens being transferred | |
| @param data Additional data with no specified format | |
| @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed | |
| */ | |
| function onERC1155Received( | |
| address operator, | |
| address from, | |
| uint256 id, | |
| uint256 value, | |
| bytes calldata data | |
| ) external returns (bytes4); | |
| /** | |
| @dev Handles the receipt of a multiple ERC1155 token types. This function | |
| is called at the end of a `safeBatchTransferFrom` after the balances have | |
| been updated. To accept the transfer(s), this must return | |
| `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` | |
| (i.e. 0xbc197c81, or its own function selector). | |
| @param operator The address which initiated the batch transfer (i.e. msg.sender) | |
| @param from The address which previously owned the token | |
| @param ids An array containing ids of each token being transferred (order and length must match values array) | |
| @param values An array containing amounts of each token being transferred (order and length must match ids array) | |
| @param data Additional data with no specified format | |
| @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed | |
| */ | |
| function onERC1155BatchReceived( | |
| address operator, | |
| address from, | |
| uint256[] calldata ids, | |
| uint256[] calldata values, | |
| bytes calldata data | |
| ) external returns (bytes4); | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| pragma solidity ^0.8.0; | |
| /** | |
| * @dev Collection of functions related to the address type | |
| */ | |
| library Address { | |
| /** | |
| * @dev Returns true if `account` is a contract. | |
| * | |
| * [IMPORTANT] | |
| * ==== | |
| * It is unsafe to assume that an address for which this function returns | |
| * false is an externally-owned account (EOA) and not a contract. | |
| * | |
| * Among others, `isContract` will return false for the following | |
| * types of addresses: | |
| * | |
| * - an externally-owned account | |
| * - a contract in construction | |
| * - an address where a contract will be created | |
| * - an address where a contract lived, but was destroyed | |
| * ==== | |
| */ | |
| function isContract(address account) internal view returns (bool) { | |
| // This method relies on extcodesize, which returns 0 for contracts in | |
| // construction, since the code is only stored at the end of the | |
| // constructor execution. | |
| uint256 size; | |
| assembly { | |
| size := extcodesize(account) | |
| } | |
| return size > 0; | |
| } | |
| /** | |
| * @dev Replacement for Solidity's `transfer`: sends `amount` wei to | |
| * `recipient`, forwarding all available gas and reverting on errors. | |
| * | |
| * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost | |
| * of certain opcodes, possibly making contracts go over the 2300 gas limit | |
| * imposed by `transfer`, making them unable to receive funds via | |
| * `transfer`. {sendValue} removes this limitation. | |
| * | |
| * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. | |
| * | |
| * IMPORTANT: because control is transferred to `recipient`, care must be | |
| * taken to not create reentrancy vulnerabilities. Consider using | |
| * {ReentrancyGuard} or the | |
| * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. | |
| */ | |
| function sendValue(address payable recipient, uint256 amount) internal { | |
| require(address(this).balance >= amount, "Address: insufficient balance"); | |
| (bool success, ) = recipient.call{value: amount}(""); | |
| require(success, "Address: unable to send value, recipient may have reverted"); | |
| } | |
| /** | |
| * @dev Performs a Solidity function call using a low level `call`. A | |
| * plain `call` is an unsafe replacement for a function call: use this | |
| * function instead. | |
| * | |
| * If `target` reverts with a revert reason, it is bubbled up by this | |
| * function (like regular Solidity function calls). | |
| * | |
| * Returns the raw returned data. To convert to the expected return value, | |
| * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. | |
| * | |
| * Requirements: | |
| * | |
| * - `target` must be a contract. | |
| * - calling `target` with `data` must not revert. | |
| * | |
| * _Available since v3.1._ | |
| */ | |
| function functionCall(address target, bytes memory data) internal returns (bytes memory) { | |
| return functionCall(target, data, "Address: low-level call failed"); | |
| } | |
| /** | |
| * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with | |
| * `errorMessage` as a fallback revert reason when `target` reverts. | |
| * | |
| * _Available since v3.1._ | |
| */ | |
| function functionCall( | |
| address target, | |
| bytes memory data, | |
| string memory errorMessage | |
| ) internal returns (bytes memory) { | |
| return functionCallWithValue(target, data, 0, errorMessage); | |
| } | |
| /** | |
| * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], | |
| * but also transferring `value` wei to `target`. | |
| * | |
| * Requirements: | |
| * | |
| * - the calling contract must have an ETH balance of at least `value`. | |
| * - the called Solidity function must be `payable`. | |
| * | |
| * _Available since v3.1._ | |
| */ | |
| function functionCallWithValue( | |
| address target, | |
| bytes memory data, | |
| uint256 value | |
| ) internal returns (bytes memory) { | |
| return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); | |
| } | |
| /** | |
| * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but | |
| * with `errorMessage` as a fallback revert reason when `target` reverts. | |
| * | |
| * _Available since v3.1._ | |
| */ | |
| function functionCallWithValue( | |
| address target, | |
| bytes memory data, | |
| uint256 value, | |
| string memory errorMessage | |
| ) internal returns (bytes memory) { | |
| require(address(this).balance >= value, "Address: insufficient balance for call"); | |
| require(isContract(target), "Address: call to non-contract"); | |
| (bool success, bytes memory returndata) = target.call{value: value}(data); | |
| return verifyCallResult(success, returndata, errorMessage); | |
| } | |
| /** | |
| * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], | |
| * but performing a static call. | |
| * | |
| * _Available since v3.3._ | |
| */ | |
| function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { | |
| return functionStaticCall(target, data, "Address: low-level static call failed"); | |
| } | |
| /** | |
| * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], | |
| * but performing a static call. | |
| * | |
| * _Available since v3.3._ | |
| */ | |
| function functionStaticCall( | |
| address target, | |
| bytes memory data, | |
| string memory errorMessage | |
| ) internal view returns (bytes memory) { | |
| require(isContract(target), "Address: static call to non-contract"); | |
| (bool success, bytes memory returndata) = target.staticcall(data); | |
| return verifyCallResult(success, returndata, errorMessage); | |
| } | |
| /** | |
| * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], | |
| * but performing a delegate call. | |
| * | |
| * _Available since v3.4._ | |
| */ | |
| function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { | |
| return functionDelegateCall(target, data, "Address: low-level delegate call failed"); | |
| } | |
| /** | |
| * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], | |
| * but performing a delegate call. | |
| * | |
| * _Available since v3.4._ | |
| */ | |
| function functionDelegateCall( | |
| address target, | |
| bytes memory data, | |
| string memory errorMessage | |
| ) internal returns (bytes memory) { | |
| require(isContract(target), "Address: delegate call to non-contract"); | |
| (bool success, bytes memory returndata) = target.delegatecall(data); | |
| return verifyCallResult(success, returndata, errorMessage); | |
| } | |
| /** | |
| * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the | |
| * revert reason using the provided one. | |
| * | |
| * _Available since v4.3._ | |
| */ | |
| function verifyCallResult( | |
| bool success, | |
| bytes memory returndata, | |
| string memory errorMessage | |
| ) internal pure returns (bytes memory) { | |
| if (success) { | |
| return returndata; | |
| } else { | |
| // Look for revert reason and bubble it up if present | |
| if (returndata.length > 0) { | |
| // The easiest way to bubble the revert reason is using memory via assembly | |
| assembly { | |
| let returndata_size := mload(returndata) | |
| revert(add(32, returndata), returndata_size) | |
| } | |
| } else { | |
| revert(errorMessage); | |
| } | |
| } | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| 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; | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| pragma solidity ^0.8.0; | |
| import "./IERC165.sol"; | |
| /** | |
| * @dev Implementation of the {IERC165} interface. | |
| * | |
| * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check | |
| * for the additional interface id that will be supported. For example: | |
| * | |
| * ```solidity | |
| * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { | |
| * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); | |
| * } | |
| * ``` | |
| * | |
| * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation. | |
| */ | |
| abstract contract ERC165 is IERC165 { | |
| /** | |
| * @dev See {IERC165-supportsInterface}. | |
| */ | |
| function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { | |
| return interfaceId == type(IERC165).interfaceId; | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| pragma solidity ^0.8.0; | |
| /** | |
| * @dev Interface of the ERC165 standard, as defined in the | |
| * https://eips.ethereum.org/EIPS/eip-165[EIP]. | |
| * | |
| * Implementers can declare support of contract interfaces, which can then be | |
| * queried by others ({ERC165Checker}). | |
| * | |
| * For an implementation, see {ERC165}. | |
| */ | |
| interface IERC165 { | |
| /** | |
| * @dev Returns true if this contract implements the interface defined by | |
| * `interfaceId`. See the corresponding | |
| * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] | |
| * to learn more about how these ids are created. | |
| * | |
| * This function call must use less than 30 000 gas. | |
| */ | |
| function supportsInterface(bytes4 interfaceId) external view returns (bool); | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| REMIX EXAMPLE PROJECT | |
| Remix example project is present when Remix loads very first time or there are no files existing in the File Explorer. | |
| It contains 3 directories: | |
| 1. 'contracts': Holds three contracts with different complexity level, denoted with number prefix in file name. | |
| 2. 'scripts': Holds two scripts to deploy a contract. It is explained below. | |
| 3. 'tests': Contains one test file for 'Ballot' contract with unit tests in Solidity. | |
| SCRIPTS | |
| The 'scripts' folder contains example async/await scripts for deploying the 'Storage' contract. | |
| For the deployment of any other contract, 'contractName' and 'constructorArgs' should be updated (along with other code if required). | |
| Scripts have full access to the web3.js and ethers.js libraries. | |
| To run a script, right click on file name in the file explorer and click 'Run'. Remember, Solidity file must already be compiled. | |
| Output from script will appear in remix terminal. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "deploy": { | |
| "VM:-": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "main:1": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "ropsten:3": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "rinkeby:4": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "kovan:42": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "gรถrli:5": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "Custom": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| } | |
| }, | |
| "data": { | |
| "bytecode": { | |
| "functionDebugData": {}, | |
| "generatedSources": [], | |
| "linkReferences": {}, | |
| "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122005a6c616d741b7b19773378dc6398157cf9f4d2b5e212079523fc97bfd40828864736f6c63430008070033", | |
| "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SDIV 0xA6 0xC6 AND 0xD7 COINBASE 0xB7 0xB1 SWAP8 PUSH20 0x378DC6398157CF9F4D2B5E212079523FC97BFD40 DUP3 DUP9 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", | |
| "sourceMap": "59:176:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "functionDebugData": {}, | |
| "generatedSources": [], | |
| "immutableReferences": {}, | |
| "linkReferences": {}, | |
| "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122005a6c616d741b7b19773378dc6398157cf9f4d2b5e212079523fc97bfd40828864736f6c63430008070033", | |
| "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SDIV 0xA6 0xC6 AND 0xD7 COINBASE 0xB7 0xB1 SWAP8 PUSH20 0x378DC6398157CF9F4D2B5E212079523FC97BFD40 DUP3 DUP9 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", | |
| "sourceMap": "59:176:0:-:0;;;;;;;;" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "17200", | |
| "executionCost": "97", | |
| "totalCost": "17297" | |
| } | |
| }, | |
| "methodIdentifiers": {} | |
| }, | |
| "abi": [] | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "compiler": { | |
| "version": "0.8.7+commit.e28d00a7" | |
| }, | |
| "language": "Solidity", | |
| "output": { | |
| "abi": [], | |
| "devdoc": { | |
| "kind": "dev", | |
| "methods": {}, | |
| "version": 1 | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| }, | |
| "settings": { | |
| "compilationTarget": { | |
| "contracts/@rarible/royalties/contracts/artifacts/LibRoyaltiesV2.sol": "LibRoyaltiesV2" | |
| }, | |
| "evmVersion": "london", | |
| "libraries": {}, | |
| "metadata": { | |
| "bytecodeHash": "ipfs" | |
| }, | |
| "optimizer": { | |
| "enabled": false, | |
| "runs": 200 | |
| }, | |
| "remappings": [] | |
| }, | |
| "sources": { | |
| "contracts/@rarible/royalties/contracts/artifacts/LibRoyaltiesV2.sol": { | |
| "keccak256": "0xa5c36e0d8e88b4512280a401de34d09146bc4544ac39d10fc8a4c1c19752f5e6", | |
| "license": "MIT", | |
| "urls": [ | |
| "bzz-raw://405ee2a49f07f99f014d20006136f2dd9e45414d5a6d897edaf6774485be8b2f", | |
| "dweb:/ipfs/QmWyZZG1DUSrcmF3faDK7cny2m5rQ63Pqit8UFK2e5prrX" | |
| ] | |
| } | |
| }, | |
| "version": 1 | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "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": { | |
| "functionDebugData": {}, | |
| "generatedSources": [], | |
| "linkReferences": {}, | |
| "object": "60dc610052600b82828239805160001a607314610045577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060335760003560e01c806364d4c819146038575b600080fd5b603e6052565b604051604991906083565b60405180910390f35b7f397e04204c1e1a60ee8724b71f8244e10ab5f2e9009854d80f602bda21b59ebb81565b607d81609c565b82525050565b6000602082019050609660008301846076565b92915050565b600081905091905056fea2646970667358221220526ed7935ede5815fcdb75c4d719460e4b7e696a11bb6930fec825c7ae048dae64736f6c63430008070033", | |
| "opcodes": "PUSH1 0xDC PUSH2 0x52 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH2 0x45 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x33 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x64D4C819 EQ PUSH1 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3E PUSH1 0x52 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x49 SWAP2 SWAP1 PUSH1 0x83 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH32 0x397E04204C1E1A60EE8724B71F8244E10AB5F2E9009854D80F602BDA21B59EBB DUP2 JUMP JUMPDEST PUSH1 0x7D DUP2 PUSH1 0x9C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x96 PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x76 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSTORE PUSH15 0xD7935EDE5815FCDB75C4D719460E4B PUSH31 0x696A11BB6930FEC825C7AE048DAE64736F6C63430008070033000000000000 ", | |
| "sourceMap": "64:340:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "functionDebugData": { | |
| "@TYPE_HASH_6": { | |
| "entryPoint": 82, | |
| "id": 6, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "abi_encode_t_bytes32_to_t_bytes32_fromStack_library": { | |
| "entryPoint": 118, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_library_reversed": { | |
| "entryPoint": 131, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "cleanup_t_bytes32": { | |
| "entryPoint": 156, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| } | |
| }, | |
| "generatedSources": [ | |
| { | |
| "ast": { | |
| "nodeType": "YulBlock", | |
| "src": "0:463:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "80:53:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "97:3:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "120:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_bytes32", | |
| "nodeType": "YulIdentifier", | |
| "src": "102:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "102:24:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "90:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "90:37:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "90:37:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack_library", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "68:5:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "75:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7:126:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "245:132:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "255:26:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "267:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "278:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "263:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "263:18:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "255:4:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "343:6:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "356:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "367:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "352:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "352:17:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack_library", | |
| "nodeType": "YulIdentifier", | |
| "src": "291:51:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "291:79:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "291:79:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_library_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "217:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "229:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "240:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "139:238:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "428:32:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "438:16:1", | |
| "value": { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "449:5:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulIdentifier", | |
| "src": "438:7:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_bytes32", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "410:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulTypedName", | |
| "src": "420:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "383:77:1" | |
| } | |
| ] | |
| }, | |
| "contents": "{\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack_library(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_library_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack_library(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n}\n", | |
| "id": 1, | |
| "language": "Yul", | |
| "name": "#utility.yul" | |
| } | |
| ], | |
| "immutableReferences": {}, | |
| "linkReferences": {}, | |
| "object": "730000000000000000000000000000000000000000301460806040526004361060335760003560e01c806364d4c819146038575b600080fd5b603e6052565b604051604991906083565b60405180910390f35b7f397e04204c1e1a60ee8724b71f8244e10ab5f2e9009854d80f602bda21b59ebb81565b607d81609c565b82525050565b6000602082019050609660008301846076565b92915050565b600081905091905056fea2646970667358221220526ed7935ede5815fcdb75c4d719460e4b7e696a11bb6930fec825c7ae048dae64736f6c63430008070033", | |
| "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x33 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x64D4C819 EQ PUSH1 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3E PUSH1 0x52 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x49 SWAP2 SWAP1 PUSH1 0x83 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH32 0x397E04204C1E1A60EE8724B71F8244E10AB5F2E9009854D80F602BDA21B59EBB DUP2 JUMP JUMPDEST PUSH1 0x7D DUP2 PUSH1 0x9C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x96 PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x76 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSTORE PUSH15 0xD7935EDE5815FCDB75C4D719460E4B PUSH31 0x696A11BB6930FEC825C7AE048DAE64736F6C63430008070033000000000000 ", | |
| "sourceMap": "64:340:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;86:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;122:47;86:83;:::o;7:126:1:-;102:24;120:5;102:24;:::i;:::-;97:3;90:37;7:126;;:::o;139:238::-;240:4;278:2;267:9;263:18;255:26;;291:79;367:1;356:9;352:17;343:6;291:79;:::i;:::-;139:238;;;;:::o;383:77::-;420:7;449:5;438:16;;383:77;;;:::o" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "44000", | |
| "executionCost": "121", | |
| "totalCost": "44121" | |
| }, | |
| "external": { | |
| "TYPE_HASH()": "291" | |
| }, | |
| "internal": { | |
| "hash(struct LibPart.Part memory)": "infinite" | |
| } | |
| }, | |
| "methodIdentifiers": { | |
| "TYPE_HASH()": "64d4c819" | |
| } | |
| }, | |
| "abi": [ | |
| { | |
| "inputs": [], | |
| "name": "TYPE_HASH", | |
| "outputs": [ | |
| { | |
| "internalType": "bytes32", | |
| "name": "", | |
| "type": "bytes32" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| } | |
| ] | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "compiler": { | |
| "version": "0.8.7+commit.e28d00a7" | |
| }, | |
| "language": "Solidity", | |
| "output": { | |
| "abi": [ | |
| { | |
| "inputs": [], | |
| "name": "TYPE_HASH", | |
| "outputs": [ | |
| { | |
| "internalType": "bytes32", | |
| "name": "", | |
| "type": "bytes32" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| } | |
| ], | |
| "devdoc": { | |
| "kind": "dev", | |
| "methods": {}, | |
| "version": 1 | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| }, | |
| "settings": { | |
| "compilationTarget": { | |
| "contracts/@rarible/royalties/contracts/LibPart.sol": "LibPart" | |
| }, | |
| "evmVersion": "london", | |
| "libraries": {}, | |
| "metadata": { | |
| "bytecodeHash": "ipfs" | |
| }, | |
| "optimizer": { | |
| "enabled": false, | |
| "runs": 200 | |
| }, | |
| "remappings": [] | |
| }, | |
| "sources": { | |
| "contracts/@rarible/royalties/contracts/LibPart.sol": { | |
| "keccak256": "0x3b8a026906122edc0f6d8127a1a6b6ca3bc9f9d24757c6f1b141ec42cc115c9d", | |
| "license": "MIT pragma", | |
| "urls": [ | |
| "bzz-raw://29371804203c6d4533b7d6fd6fb2b8870c1a26f2aebd06014a6f3e55c65d2eb3", | |
| "dweb:/ipfs/QmYij1hG1ZSrkJ57G199vfpUK5rtdYdDxTmKe4W3c5LgHE" | |
| ] | |
| } | |
| }, | |
| "version": 1 | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "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": { | |
| "functionDebugData": {}, | |
| "generatedSources": [], | |
| "linkReferences": {}, | |
| "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209eb5fa2c0569ff4c30d2f6eee4b776efc996f9d3060bc4420bd12ee428fc004364736f6c63430008070033", | |
| "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP15 0xB5 STATICCALL 0x2C SDIV PUSH10 0xFF4C30D2F6EEE4B776EF 0xC9 SWAP7 0xF9 0xD3 MOD SIGNEXTEND 0xC4 TIMESTAMP SIGNEXTEND 0xD1 0x2E 0xE4 0x28 0xFC STOP NUMBER PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", | |
| "sourceMap": "59:176:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "functionDebugData": {}, | |
| "generatedSources": [], | |
| "immutableReferences": {}, | |
| "linkReferences": {}, | |
| "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209eb5fa2c0569ff4c30d2f6eee4b776efc996f9d3060bc4420bd12ee428fc004364736f6c63430008070033", | |
| "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP15 0xB5 STATICCALL 0x2C SDIV PUSH10 0xFF4C30D2F6EEE4B776EF 0xC9 SWAP7 0xF9 0xD3 MOD SIGNEXTEND 0xC4 TIMESTAMP SIGNEXTEND 0xD1 0x2E 0xE4 0x28 0xFC STOP NUMBER PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", | |
| "sourceMap": "59:176:0:-:0;;;;;;;;" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "17200", | |
| "executionCost": "97", | |
| "totalCost": "17297" | |
| } | |
| }, | |
| "methodIdentifiers": {} | |
| }, | |
| "abi": [] | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "compiler": { | |
| "version": "0.8.7+commit.e28d00a7" | |
| }, | |
| "language": "Solidity", | |
| "output": { | |
| "abi": [], | |
| "devdoc": { | |
| "kind": "dev", | |
| "methods": {}, | |
| "version": 1 | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| }, | |
| "settings": { | |
| "compilationTarget": { | |
| "contracts/@rarible/royalties/contracts/LibRoyaltiesV2.sol": "LibRoyaltiesV2" | |
| }, | |
| "evmVersion": "london", | |
| "libraries": {}, | |
| "metadata": { | |
| "bytecodeHash": "ipfs" | |
| }, | |
| "optimizer": { | |
| "enabled": false, | |
| "runs": 200 | |
| }, | |
| "remappings": [] | |
| }, | |
| "sources": { | |
| "contracts/@rarible/royalties/contracts/LibRoyaltiesV2.sol": { | |
| "keccak256": "0xa5c36e0d8e88b4512280a401de34d09146bc4544ac39d10fc8a4c1c19752f5e6", | |
| "license": "MIT", | |
| "urls": [ | |
| "bzz-raw://405ee2a49f07f99f014d20006136f2dd9e45414d5a6d897edaf6774485be8b2f", | |
| "dweb:/ipfs/QmWyZZG1DUSrcmF3faDK7cny2m5rQ63Pqit8UFK2e5prrX" | |
| ] | |
| } | |
| }, | |
| "version": 1 | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "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": { | |
| "functionDebugData": {}, | |
| "generatedSources": [], | |
| "linkReferences": {}, | |
| "object": "", | |
| "opcodes": "", | |
| "sourceMap": "" | |
| }, | |
| "deployedBytecode": { | |
| "functionDebugData": {}, | |
| "generatedSources": [], | |
| "immutableReferences": {}, | |
| "linkReferences": {}, | |
| "object": "", | |
| "opcodes": "", | |
| "sourceMap": "" | |
| }, | |
| "gasEstimates": null, | |
| "methodIdentifiers": { | |
| "getRaribleV2Royalties(uint256)": "cad96cca" | |
| } | |
| }, | |
| "abi": [ | |
| { | |
| "anonymous": false, | |
| "inputs": [ | |
| { | |
| "indexed": false, | |
| "internalType": "uint256", | |
| "name": "tokenId", | |
| "type": "uint256" | |
| }, | |
| { | |
| "components": [ | |
| { | |
| "internalType": "address payable", | |
| "name": "account", | |
| "type": "address" | |
| }, | |
| { | |
| "internalType": "uint96", | |
| "name": "value", | |
| "type": "uint96" | |
| } | |
| ], | |
| "indexed": false, | |
| "internalType": "struct LibPart.Part[]", | |
| "name": "royalties", | |
| "type": "tuple[]" | |
| } | |
| ], | |
| "name": "RoyaltiesSet", | |
| "type": "event" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "id", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "getRaribleV2Royalties", | |
| "outputs": [ | |
| { | |
| "components": [ | |
| { | |
| "internalType": "address payable", | |
| "name": "account", | |
| "type": "address" | |
| }, | |
| { | |
| "internalType": "uint96", | |
| "name": "value", | |
| "type": "uint96" | |
| } | |
| ], | |
| "internalType": "struct LibPart.Part[]", | |
| "name": "", | |
| "type": "tuple[]" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| } | |
| ] | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "compiler": { | |
| "version": "0.8.7+commit.e28d00a7" | |
| }, | |
| "language": "Solidity", | |
| "output": { | |
| "abi": [ | |
| { | |
| "anonymous": false, | |
| "inputs": [ | |
| { | |
| "indexed": false, | |
| "internalType": "uint256", | |
| "name": "tokenId", | |
| "type": "uint256" | |
| }, | |
| { | |
| "components": [ | |
| { | |
| "internalType": "address payable", | |
| "name": "account", | |
| "type": "address" | |
| }, | |
| { | |
| "internalType": "uint96", | |
| "name": "value", | |
| "type": "uint96" | |
| } | |
| ], | |
| "indexed": false, | |
| "internalType": "struct LibPart.Part[]", | |
| "name": "royalties", | |
| "type": "tuple[]" | |
| } | |
| ], | |
| "name": "RoyaltiesSet", | |
| "type": "event" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "id", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "getRaribleV2Royalties", | |
| "outputs": [ | |
| { | |
| "components": [ | |
| { | |
| "internalType": "address payable", | |
| "name": "account", | |
| "type": "address" | |
| }, | |
| { | |
| "internalType": "uint96", | |
| "name": "value", | |
| "type": "uint96" | |
| } | |
| ], | |
| "internalType": "struct LibPart.Part[]", | |
| "name": "", | |
| "type": "tuple[]" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| } | |
| ], | |
| "devdoc": { | |
| "kind": "dev", | |
| "methods": {}, | |
| "version": 1 | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| }, | |
| "settings": { | |
| "compilationTarget": { | |
| "contracts/@rarible/royalties/contracts/RoyaltiesV2.sol": "RoyaltiesV2" | |
| }, | |
| "evmVersion": "london", | |
| "libraries": {}, | |
| "metadata": { | |
| "bytecodeHash": "ipfs" | |
| }, | |
| "optimizer": { | |
| "enabled": false, | |
| "runs": 200 | |
| }, | |
| "remappings": [] | |
| }, | |
| "sources": { | |
| "contracts/@rarible/royalties/contracts/LibPart.sol": { | |
| "keccak256": "0x3b8a026906122edc0f6d8127a1a6b6ca3bc9f9d24757c6f1b141ec42cc115c9d", | |
| "license": "MIT pragma", | |
| "urls": [ | |
| "bzz-raw://29371804203c6d4533b7d6fd6fb2b8870c1a26f2aebd06014a6f3e55c65d2eb3", | |
| "dweb:/ipfs/QmYij1hG1ZSrkJ57G199vfpUK5rtdYdDxTmKe4W3c5LgHE" | |
| ] | |
| }, | |
| "contracts/@rarible/royalties/contracts/RoyaltiesV2.sol": { | |
| "keccak256": "0x3bb78ba72f4c01e489245dc22519a9aac2abe03ce87dbfbdbbf3f0fc17011978", | |
| "license": "MIT", | |
| "urls": [ | |
| "bzz-raw://c2c00a7d54cea79f8f0019266bd1026a19475c53da4b0e296bfbe6dc2dd7cd0a", | |
| "dweb:/ipfs/QmUneoLYmQSB7Ph4b6g5887kZPL9jVndrDFyKcurHakfPB" | |
| ] | |
| } | |
| }, | |
| "version": 1 | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| pragma solidity ^0.8.0; | |
| import "../LibPart.sol"; | |
| abstract contract AbstractRoyalties { | |
| mapping (uint256 => LibPart.Part[]) public royalties; | |
| function _saveRoyalties(uint256 _id, LibPart.Part[] memory _royalties) internal { | |
| for (uint i = 0; i < _royalties.length; i++) { | |
| require(_royalties[i].account != address(0x0), "Recipient should be present"); | |
| require(_royalties[i].value != 0, "Royalty value should be positive"); | |
| royalties[_id].push(_royalties[i]); | |
| } | |
| _onRoyaltiesSet(_id, _royalties); | |
| } | |
| function _updateAccount(uint256 _id, address _from, address _to) internal { | |
| uint length = royalties[_id].length; | |
| for(uint i = 0; i < length; i++) { | |
| if (royalties[_id][i].account == _from) { | |
| royalties[_id][i].account = payable(address(uint160(_to))); | |
| } | |
| } | |
| } | |
| function _onRoyaltiesSet(uint256 _id, LibPart.Part[] memory _royalties) virtual internal; | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "deploy": { | |
| "VM:-": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "main:1": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "ropsten:3": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "rinkeby:4": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "kovan:42": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "gรถrli:5": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "Custom": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| } | |
| }, | |
| "data": { | |
| "bytecode": { | |
| "functionDebugData": {}, | |
| "generatedSources": [], | |
| "linkReferences": {}, | |
| "object": "", | |
| "opcodes": "", | |
| "sourceMap": "" | |
| }, | |
| "deployedBytecode": { | |
| "functionDebugData": {}, | |
| "generatedSources": [], | |
| "immutableReferences": {}, | |
| "linkReferences": {}, | |
| "object": "", | |
| "opcodes": "", | |
| "sourceMap": "" | |
| }, | |
| "gasEstimates": null, | |
| "methodIdentifiers": { | |
| "royalties(uint256,uint256)": "8924af74" | |
| } | |
| }, | |
| "abi": [ | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| }, | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "royalties", | |
| "outputs": [ | |
| { | |
| "internalType": "address payable", | |
| "name": "account", | |
| "type": "address" | |
| }, | |
| { | |
| "internalType": "uint96", | |
| "name": "value", | |
| "type": "uint96" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| } | |
| ] | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "compiler": { | |
| "version": "0.8.7+commit.e28d00a7" | |
| }, | |
| "language": "Solidity", | |
| "output": { | |
| "abi": [ | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| }, | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "royalties", | |
| "outputs": [ | |
| { | |
| "internalType": "address payable", | |
| "name": "account", | |
| "type": "address" | |
| }, | |
| { | |
| "internalType": "uint96", | |
| "name": "value", | |
| "type": "uint96" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| } | |
| ], | |
| "devdoc": { | |
| "kind": "dev", | |
| "methods": {}, | |
| "version": 1 | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| }, | |
| "settings": { | |
| "compilationTarget": { | |
| "contracts/@rarible/royalties/contracts/impl/AbstractRoyalties.sol": "AbstractRoyalties" | |
| }, | |
| "evmVersion": "london", | |
| "libraries": {}, | |
| "metadata": { | |
| "bytecodeHash": "ipfs" | |
| }, | |
| "optimizer": { | |
| "enabled": false, | |
| "runs": 200 | |
| }, | |
| "remappings": [] | |
| }, | |
| "sources": { | |
| "contracts/@rarible/royalties/contracts/LibPart.sol": { | |
| "keccak256": "0x3b8a026906122edc0f6d8127a1a6b6ca3bc9f9d24757c6f1b141ec42cc115c9d", | |
| "license": "MIT pragma", | |
| "urls": [ | |
| "bzz-raw://29371804203c6d4533b7d6fd6fb2b8870c1a26f2aebd06014a6f3e55c65d2eb3", | |
| "dweb:/ipfs/QmYij1hG1ZSrkJ57G199vfpUK5rtdYdDxTmKe4W3c5LgHE" | |
| ] | |
| }, | |
| "contracts/@rarible/royalties/contracts/impl/AbstractRoyalties.sol": { | |
| "keccak256": "0x0a27f53c218393ec527c874d6f2c09672dde826d3d9add271da9c5e307c77b3c", | |
| "license": "MIT", | |
| "urls": [ | |
| "bzz-raw://ea5e4bb7371bfbb25e1f6741a986db2c53c1f7771226f657c4c0f83a458695b6", | |
| "dweb:/ipfs/QmcpwQXzBm2DqVk1VGt5cof6zJaHcJFd43dRP86aNJBcxm" | |
| ] | |
| } | |
| }, | |
| "version": 1 | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "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": { | |
| "functionDebugData": {}, | |
| "generatedSources": [], | |
| "linkReferences": {}, | |
| "object": "608060405234801561001057600080fd5b5061049f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80638924af741461003b578063cad96cca1461006c575b600080fd5b61005560048036038101906100509190610254565b61009c565b604051610063929190610375565b60405180910390f35b61008660048036038101906100819190610227565b610111565b604051610093919061039e565b60405180910390f35b600060205281600052604060002081815481106100b857600080fd5b90600052602060002001600091509150508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a90046bffffffffffffffffffffffff16905082565b6060600080838152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015610207578382906000526020600020016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505081526020019060010190610145565b505050509050919050565b60008135905061022181610452565b92915050565b60006020828403121561023d5761023c61044d565b5b600061024b84828501610212565b91505092915050565b6000806040838503121561026b5761026a61044d565b5b600061027985828601610212565b925050602061028a85828601610212565b9150509250929050565b60006102a08383610328565b60408301905092915050565b6102b5816103f9565b82525050565b6102c4816103f9565b82525050565b60006102d5826103d0565b6102df81856103e8565b93506102ea836103c0565b8060005b8381101561031b5781516103028882610294565b975061030d836103db565b9250506001810190506102ee565b5085935050505092915050565b60408201600082015161033e60008501826102ac565b5060208201516103516020850182610357565b50505050565b61036081610435565b82525050565b61036f81610435565b82525050565b600060408201905061038a60008301856102bb565b6103976020830184610366565b9392505050565b600060208201905081810360008301526103b881846102ca565b905092915050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b60006104048261040b565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006bffffffffffffffffffffffff82169050919050565b600080fd5b61045b8161042b565b811461046657600080fd5b5056fea2646970667358221220657abac73a2f15ebfbe11ebfa579b3363b1ccf5e2dcc965e2aba45413b5f3ea064736f6c63430008070033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x49F DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8924AF74 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xCAD96CCA EQ PUSH2 0x6C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x254 JUMP JUMPDEST PUSH2 0x9C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x63 SWAP3 SWAP2 SWAP1 PUSH2 0x375 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x86 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x81 SWAP2 SWAP1 PUSH2 0x227 JUMP JUMPDEST PUSH2 0x111 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x93 SWAP2 SWAP1 PUSH2 0x39E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x0 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x207 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x145 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x221 DUP2 PUSH2 0x452 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23D JUMPI PUSH2 0x23C PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x24B DUP5 DUP3 DUP6 ADD PUSH2 0x212 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x26B JUMPI PUSH2 0x26A PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x279 DUP6 DUP3 DUP7 ADD PUSH2 0x212 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x28A DUP6 DUP3 DUP7 ADD PUSH2 0x212 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A0 DUP4 DUP4 PUSH2 0x328 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B5 DUP2 PUSH2 0x3F9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2C4 DUP2 PUSH2 0x3F9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D5 DUP3 PUSH2 0x3D0 JUMP JUMPDEST PUSH2 0x2DF DUP2 DUP6 PUSH2 0x3E8 JUMP JUMPDEST SWAP4 POP PUSH2 0x2EA DUP4 PUSH2 0x3C0 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x31B JUMPI DUP2 MLOAD PUSH2 0x302 DUP9 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP8 POP PUSH2 0x30D DUP4 PUSH2 0x3DB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2EE JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x33E PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x2AC JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x351 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x357 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x360 DUP2 PUSH2 0x435 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x36F DUP2 PUSH2 0x435 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x38A PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2BB JUMP JUMPDEST PUSH2 0x397 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x366 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3B8 DUP2 DUP5 PUSH2 0x2CA JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD 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 0x404 DUP3 PUSH2 0x40B 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 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x45B DUP2 PUSH2 0x42B JUMP JUMPDEST DUP2 EQ PUSH2 0x466 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH6 0x7ABAC73A2F15 0xEB 0xFB 0xE1 0x1E 0xBF 0xA5 PUSH26 0xB3363B1CCF5E2DCC965E2ABA45413B5F3EA064736F6C63430008 SMOD STOP CALLER ", | |
| "sourceMap": "121:360:3:-:0;;;;;;;;;;;;;;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "functionDebugData": { | |
| "@getRaribleV2Royalties_212": { | |
| "entryPoint": 273, | |
| "id": 212, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "@royalties_62": { | |
| "entryPoint": 156, | |
| "id": 62, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "abi_decode_t_uint256": { | |
| "entryPoint": 530, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_decode_tuple_t_uint256": { | |
| "entryPoint": 551, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_decode_tuple_t_uint256t_uint256": { | |
| "entryPoint": 596, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 2 | |
| }, | |
| "abi_encodeUpdatedPos_t_struct$_Part_$11_memory_ptr_to_t_struct$_Part_$11_memory_ptr": { | |
| "entryPoint": 660, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_t_address_payable_to_t_address_payable": { | |
| "entryPoint": 684, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "abi_encode_t_address_payable_to_t_address_payable_fromStack": { | |
| "entryPoint": 699, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "abi_encode_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_fromStack": { | |
| "entryPoint": 714, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_t_struct$_Part_$11_memory_ptr_to_t_struct$_Part_$11_memory_ptr": { | |
| "entryPoint": 808, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "abi_encode_t_uint96_to_t_uint96": { | |
| "entryPoint": 855, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "abi_encode_t_uint96_to_t_uint96_fromStack": { | |
| "entryPoint": 870, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "abi_encode_tuple_t_address_payable_t_uint96__to_t_address_payable_t_uint96__fromStack_reversed": { | |
| "entryPoint": 885, | |
| "id": null, | |
| "parameterSlots": 3, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_tuple_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr__fromStack_reversed": { | |
| "entryPoint": 926, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "allocate_unbounded": { | |
| "entryPoint": null, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 1 | |
| }, | |
| "array_dataslot_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr": { | |
| "entryPoint": 960, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "array_length_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr": { | |
| "entryPoint": 976, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "array_nextElement_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr": { | |
| "entryPoint": 987, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "array_storeLengthForEncoding_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_fromStack": { | |
| "entryPoint": 1000, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "cleanup_t_address_payable": { | |
| "entryPoint": 1017, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "cleanup_t_uint160": { | |
| "entryPoint": 1035, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "cleanup_t_uint256": { | |
| "entryPoint": 1067, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "cleanup_t_uint96": { | |
| "entryPoint": 1077, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { | |
| "entryPoint": null, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { | |
| "entryPoint": 1101, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "validator_revert_t_uint256": { | |
| "entryPoint": 1106, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| } | |
| }, | |
| "generatedSources": [ | |
| { | |
| "ast": { | |
| "nodeType": "YulBlock", | |
| "src": "0:5627:4", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "59:87:4", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "69:29:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "91:6:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "calldataload", | |
| "nodeType": "YulIdentifier", | |
| "src": "78:12:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "78:20:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "69:5:4" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "134:5:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "validator_revert_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "107:26:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "107:33:4" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "107:33:4" | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "37:6:4", | |
| "type": "" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "45:3:4", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "53:5:4", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7:139:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "218:263:4", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "264:83:4", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", | |
| "nodeType": "YulIdentifier", | |
| "src": "266:77:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "266:79:4" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "266:79:4" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "239:7:4" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "248:9:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "235:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "235:23:4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "260:2:4", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "231:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "231:32:4" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "228:119:4" | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "357:117:4", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "372:15:4", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "386:1:4", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "376:6:4", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "401:63:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "436:9:4" | |
| }, | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "447:6:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "432:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "432:22:4" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "456:7:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "411:20:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "411:53:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "401:6:4" | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_tuple_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "188:9:4", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulTypedName", | |
| "src": "199:7:4", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "211:6:4", | |
| "type": "" | |
| } | |
| ], | |
| "src": "152:329:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "570:391:4", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "616:83:4", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", | |
| "nodeType": "YulIdentifier", | |
| "src": "618:77:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "618:79:4" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "618:79:4" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "591:7:4" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "600:9:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "587:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "587:23:4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "612:2:4", | |
| "type": "", | |
| "value": "64" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "583:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "583:32:4" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "580:119:4" | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "709:117:4", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "724:15:4", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "738:1:4", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "728:6:4", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "753:63:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "788:9:4" | |
| }, | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "799:6:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "784:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "784:22:4" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "808:7:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "763:20:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "763:53:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "753:6:4" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "836:118:4", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "851:16:4", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "865:2:4", | |
| "type": "", | |
| "value": "32" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "855:6:4", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "881:63:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "916:9:4" | |
| }, | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "927:6:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "912:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "912:22:4" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "936:7:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "891:20:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "891:53:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value1", | |
| "nodeType": "YulIdentifier", | |
| "src": "881:6:4" | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_tuple_t_uint256t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "532:9:4", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulTypedName", | |
| "src": "543:7:4", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "555:6:4", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value1", | |
| "nodeType": "YulTypedName", | |
| "src": "563:6:4", | |
| "type": "" | |
| } | |
| ], | |
| "src": "487:474:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1087:139:4", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "1171:6:4" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1179:3:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_struct$_Part_$11_memory_ptr_to_t_struct$_Part_$11_memory_ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "1097:73:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1097:86:4" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1097:86:4" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1192:28:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1210:3:4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1215:4:4", | |
| "type": "", | |
| "value": "0x40" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1206:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1206:14:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "updatedPos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1192:10:4" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encodeUpdatedPos_t_struct$_Part_$11_memory_ptr_to_t_struct$_Part_$11_memory_ptr", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "1060:6:4", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "1068:3:4", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "updatedPos", | |
| "nodeType": "YulTypedName", | |
| "src": "1076:10:4", | |
| "type": "" | |
| } | |
| ], | |
| "src": "967:259:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1303:61:4", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1320:3:4" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "1351:5:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_address_payable", | |
| "nodeType": "YulIdentifier", | |
| "src": "1325:25:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1325:32:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "1313:6:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1313:45:4" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1313:45:4" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_address_payable_to_t_address_payable", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "1291:5:4", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "1298:3:4", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1232:132:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1451:61:4", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1468:3:4" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "1499:5:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_address_payable", | |
| "nodeType": "YulIdentifier", | |
| "src": "1473:25:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1473:32:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "1461:6:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1461:45:4" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1461:45:4" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_address_payable_to_t_address_payable_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "1439:5:4", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "1446:3:4", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1370:142:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1736:728:4", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "1746:88:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "1828:5:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_length_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "1760:67:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1760:74:4" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "1750:6:4", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1843:113:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1944:3:4" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "1949:6:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_storeLengthForEncoding_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "1850:93:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1850:106:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1843:3:4" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "1965:91:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "2050:5:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_dataslot_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "1980:69:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1980:76:4" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "baseRef", | |
| "nodeType": "YulTypedName", | |
| "src": "1969:7:4", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "2065:21:4", | |
| "value": { | |
| "name": "baseRef", | |
| "nodeType": "YulIdentifier", | |
| "src": "2079:7:4" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "srcPtr", | |
| "nodeType": "YulTypedName", | |
| "src": "2069:6:4", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2155:284:4", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "2169:34:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "srcPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "2196:6:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "2190:5:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2190:13:4" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "elementValue0", | |
| "nodeType": "YulTypedName", | |
| "src": "2173:13:4", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2216:110:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "elementValue0", | |
| "nodeType": "YulIdentifier", | |
| "src": "2307:13:4" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "2322:3:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encodeUpdatedPos_t_struct$_Part_$11_memory_ptr_to_t_struct$_Part_$11_memory_ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "2223:83:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2223:103:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "2216:3:4" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2339:90:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "srcPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "2422:6:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_nextElement_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "2349:72:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2349:80:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "srcPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "2339:6:4" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "2117:1:4" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "2120:6:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "lt", | |
| "nodeType": "YulIdentifier", | |
| "src": "2114:2:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2114:13:4" | |
| }, | |
| "nodeType": "YulForLoop", | |
| "post": { | |
| "nodeType": "YulBlock", | |
| "src": "2128:18:4", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2130:14:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "2139:1:4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2142:1:4", | |
| "type": "", | |
| "value": "1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "2135:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2135:9:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "2130:1:4" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "pre": { | |
| "nodeType": "YulBlock", | |
| "src": "2099:14:4", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "2101:10:4", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2110:1:4", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulTypedName", | |
| "src": "2105:1:4", | |
| "type": "" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "src": "2095:344:4" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2448:10:4", | |
| "value": { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "2455:3:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "2448:3:4" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "1715:5:4", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "1722:3:4", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "1731:3:4", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1572:892:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2616:409:4", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "2626:26:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "2642:3:4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2647:4:4", | |
| "type": "", | |
| "value": "0x40" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "2638:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2638:14:4" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "2630:4:4", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "2662:183:4", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "2700:43:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "2730:5:4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2737:4:4", | |
| "type": "", | |
| "value": "0x00" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "2726:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2726:16:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "2720:5:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2720:23:4" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "memberValue0", | |
| "nodeType": "YulTypedName", | |
| "src": "2704:12:4", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "memberValue0", | |
| "nodeType": "YulIdentifier", | |
| "src": "2806:12:4" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "2824:3:4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2829:4:4", | |
| "type": "", | |
| "value": "0x00" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "2820:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2820:14:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_address_payable_to_t_address_payable", | |
| "nodeType": "YulIdentifier", | |
| "src": "2756:49:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2756:79:4" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2756:79:4" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "2855:163:4", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "2891:43:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "2921:5:4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2928:4:4", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "2917:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2917:16:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "2911:5:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2911:23:4" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "memberValue0", | |
| "nodeType": "YulTypedName", | |
| "src": "2895:12:4", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "memberValue0", | |
| "nodeType": "YulIdentifier", | |
| "src": "2979:12:4" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "2997:3:4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "3002:4:4", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "2993:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2993:14:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_uint96_to_t_uint96", | |
| "nodeType": "YulIdentifier", | |
| "src": "2947:31:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2947:61:4" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2947:61:4" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_struct$_Part_$11_memory_ptr_to_t_struct$_Part_$11_memory_ptr", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "2603:5:4", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "2610:3:4", | |
| "type": "" | |
| } | |
| ], | |
| "src": "2520:505:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "3084:52:4", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "3101:3:4" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "3123:5:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint96", | |
| "nodeType": "YulIdentifier", | |
| "src": "3106:16:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3106:23:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "3094:6:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3094:36:4" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "3094:36:4" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_uint96_to_t_uint96", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "3072:5:4", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "3079:3:4", | |
| "type": "" | |
| } | |
| ], | |
| "src": "3031:105:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "3205:52:4", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "3222:3:4" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "3244:5:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint96", | |
| "nodeType": "YulIdentifier", | |
| "src": "3227:16:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3227:23:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "3215:6:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3215:36:4" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "3215:36:4" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_uint96_to_t_uint96_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "3193:5:4", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "3200:3:4", | |
| "type": "" | |
| } | |
| ], | |
| "src": "3142:115:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "3403:220:4", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "3413:26:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "3425:9:4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "3436:2:4", | |
| "type": "", | |
| "value": "64" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "3421:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3421:18:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "3413:4:4" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "3509:6:4" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "3522:9:4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "3533:1:4", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "3518:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3518:17:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_address_payable_to_t_address_payable_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "3449:59:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3449:87:4" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "3449:87:4" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value1", | |
| "nodeType": "YulIdentifier", | |
| "src": "3588:6:4" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "3601:9:4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "3612:2:4", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "3597:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3597:18:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_uint96_to_t_uint96_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "3546:41:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3546:70:4" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "3546:70:4" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_address_payable_t_uint96__to_t_address_payable_t_uint96__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "3367:9:4", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value1", | |
| "nodeType": "YulTypedName", | |
| "src": "3379:6:4", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "3387:6:4", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "3398:4:4", | |
| "type": "" | |
| } | |
| ], | |
| "src": "3263:360:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "3817:265:4", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "3827:26:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "3839:9:4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "3850:2:4", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "3835:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3835:18:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "3827:4:4" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "3874:9:4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "3885:1:4", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "3870:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3870:17:4" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "3893:4:4" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "3899:9:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "3889:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3889:20:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "3863:6:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3863:47:4" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "3863:47:4" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "3919:156:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "4061:6:4" | |
| }, | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "4070:4:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "3927:133:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3927:148:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "3919:4:4" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "3789:9:4", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "3801:6:4", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "3812:4:4", | |
| "type": "" | |
| } | |
| ], | |
| "src": "3629:453:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "4128:35:4", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4138:19:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4154:2:4", | |
| "type": "", | |
| "value": "64" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "4148:5:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4148:9:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "4138:6:4" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "allocate_unbounded", | |
| "nodeType": "YulFunctionDefinition", | |
| "returnVariables": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulTypedName", | |
| "src": "4121:6:4", | |
| "type": "" | |
| } | |
| ], | |
| "src": "4088:75:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "4261:60:4", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4271:11:4", | |
| "value": { | |
| "name": "ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "4279:3:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "data", | |
| "nodeType": "YulIdentifier", | |
| "src": "4271:4:4" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4292:22:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "4304:3:4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4309:4:4", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "4300:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4300:14:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "data", | |
| "nodeType": "YulIdentifier", | |
| "src": "4292:4:4" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_dataslot_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "ptr", | |
| "nodeType": "YulTypedName", | |
| "src": "4248:3:4", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "data", | |
| "nodeType": "YulTypedName", | |
| "src": "4256:4:4", | |
| "type": "" | |
| } | |
| ], | |
| "src": "4169:152:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "4421:40:4", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4432:22:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "4448:5:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "4442:5:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4442:12:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "4432:6:4" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_length_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "4404:5:4", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "4414:6:4", | |
| "type": "" | |
| } | |
| ], | |
| "src": "4327:134:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "4562:38:4", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4572:22:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "4584:3:4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4589:4:4", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "4580:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4580:14:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "next", | |
| "nodeType": "YulIdentifier", | |
| "src": "4572:4:4" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_nextElement_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "ptr", | |
| "nodeType": "YulTypedName", | |
| "src": "4549:3:4", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "next", | |
| "nodeType": "YulTypedName", | |
| "src": "4557:4:4", | |
| "type": "" | |
| } | |
| ], | |
| "src": "4467:133:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "4737:73:4", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "4754:3:4" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "4759:6:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "4747:6:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4747:19:4" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "4747:19:4" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4775:29:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "4794:3:4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4799:4:4", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "4790:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4790:14:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "updated_pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "4775:11:4" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_storeLengthForEncoding_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "4709:3:4", | |
| "type": "" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "4714:6:4", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "updated_pos", | |
| "nodeType": "YulTypedName", | |
| "src": "4725:11:4", | |
| "type": "" | |
| } | |
| ], | |
| "src": "4606:204:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "4869:51:4", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4879:35:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "4908:5:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint160", | |
| "nodeType": "YulIdentifier", | |
| "src": "4890:17:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4890:24:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulIdentifier", | |
| "src": "4879:7:4" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_address_payable", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "4851:5:4", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulTypedName", | |
| "src": "4861:7:4", | |
| "type": "" | |
| } | |
| ], | |
| "src": "4816:104:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "4971:81:4", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4981:65:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "4996:5:4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5003:42:4", | |
| "type": "", | |
| "value": "0xffffffffffffffffffffffffffffffffffffffff" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "4992:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4992:54:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulIdentifier", | |
| "src": "4981:7:4" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_uint160", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "4953:5:4", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulTypedName", | |
| "src": "4963:7:4", | |
| "type": "" | |
| } | |
| ], | |
| "src": "4926:126:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "5103:32:4", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "5113:16:4", | |
| "value": { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "5124:5:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulIdentifier", | |
| "src": "5113:7:4" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "5085:5:4", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulTypedName", | |
| "src": "5095:7:4", | |
| "type": "" | |
| } | |
| ], | |
| "src": "5058:77:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "5185:65:4", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "5195:49:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "5210:5:4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5217:26:4", | |
| "type": "", | |
| "value": "0xffffffffffffffffffffffff" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "5206:3:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5206:38:4" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulIdentifier", | |
| "src": "5195:7:4" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_uint96", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "5167:5:4", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulTypedName", | |
| "src": "5177:7:4", | |
| "type": "" | |
| } | |
| ], | |
| "src": "5141:109:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "5345:28:4", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5362:1:4", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5365:1:4", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "5355:6:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5355:12:4" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "5355:12:4" | |
| } | |
| ] | |
| }, | |
| "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "5256:117:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "5468:28:4", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5485:1:4", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5488:1:4", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "5478:6:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5478:12:4" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "5478:12:4" | |
| } | |
| ] | |
| }, | |
| "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "5379:117:4" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "5545:79:4", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "5602:16:4", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5611:1:4", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5614:1:4", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "5604:6:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5604:12:4" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "5604:12:4" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "5568:5:4" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "5593:5:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "5575:17:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5575:24:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "eq", | |
| "nodeType": "YulIdentifier", | |
| "src": "5565:2:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5565:35:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "5558:6:4" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5558:43:4" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "5555:63:4" | |
| } | |
| ] | |
| }, | |
| "name": "validator_revert_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "5538:5:4", | |
| "type": "" | |
| } | |
| ], | |
| "src": "5502:122:4" | |
| } | |
| ] | |
| }, | |
| "contents": "{\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_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(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_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\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_encodeUpdatedPos_t_struct$_Part_$11_memory_ptr_to_t_struct$_Part_$11_memory_ptr(value0, pos) -> updatedPos {\n abi_encode_t_struct$_Part_$11_memory_ptr_to_t_struct$_Part_$11_memory_ptr(value0, pos)\n updatedPos := add(pos, 0x40)\n }\n\n function abi_encode_t_address_payable_to_t_address_payable(value, pos) {\n mstore(pos, cleanup_t_address_payable(value))\n }\n\n function abi_encode_t_address_payable_to_t_address_payable_fromStack(value, pos) {\n mstore(pos, cleanup_t_address_payable(value))\n }\n\n // struct LibPart.Part[] -> struct LibPart.Part[]\n function abi_encode_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_struct$_Part_$11_memory_ptr_to_t_struct$_Part_$11_memory_ptr(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n // struct LibPart.Part -> struct LibPart.Part\n function abi_encode_t_struct$_Part_$11_memory_ptr_to_t_struct$_Part_$11_memory_ptr(value, pos) {\n let tail := add(pos, 0x40)\n\n {\n // account\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_address_payable_to_t_address_payable(memberValue0, add(pos, 0x00))\n }\n\n {\n // value\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_uint96_to_t_uint96(memberValue0, add(pos, 0x20))\n }\n\n }\n\n function abi_encode_t_uint96_to_t_uint96(value, pos) {\n mstore(pos, cleanup_t_uint96(value))\n }\n\n function abi_encode_t_uint96_to_t_uint96_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint96(value))\n }\n\n function abi_encode_tuple_t_address_payable_t_uint96__to_t_address_payable_t_uint96__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_payable_to_t_address_payable_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint96_to_t_uint96_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function array_dataslot_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function array_length_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_nextElement_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n function array_storeLengthForEncoding_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\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_uint96(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffff)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n 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": 4, | |
| "language": "Yul", | |
| "name": "#utility.yul" | |
| } | |
| ], | |
| "immutableReferences": {}, | |
| "linkReferences": {}, | |
| "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c80638924af741461003b578063cad96cca1461006c575b600080fd5b61005560048036038101906100509190610254565b61009c565b604051610063929190610375565b60405180910390f35b61008660048036038101906100819190610227565b610111565b604051610093919061039e565b60405180910390f35b600060205281600052604060002081815481106100b857600080fd5b90600052602060002001600091509150508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a90046bffffffffffffffffffffffff16905082565b6060600080838152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015610207578382906000526020600020016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505081526020019060010190610145565b505050509050919050565b60008135905061022181610452565b92915050565b60006020828403121561023d5761023c61044d565b5b600061024b84828501610212565b91505092915050565b6000806040838503121561026b5761026a61044d565b5b600061027985828601610212565b925050602061028a85828601610212565b9150509250929050565b60006102a08383610328565b60408301905092915050565b6102b5816103f9565b82525050565b6102c4816103f9565b82525050565b60006102d5826103d0565b6102df81856103e8565b93506102ea836103c0565b8060005b8381101561031b5781516103028882610294565b975061030d836103db565b9250506001810190506102ee565b5085935050505092915050565b60408201600082015161033e60008501826102ac565b5060208201516103516020850182610357565b50505050565b61036081610435565b82525050565b61036f81610435565b82525050565b600060408201905061038a60008301856102bb565b6103976020830184610366565b9392505050565b600060208201905081810360008301526103b881846102ca565b905092915050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b60006104048261040b565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006bffffffffffffffffffffffff82169050919050565b600080fd5b61045b8161042b565b811461046657600080fd5b5056fea2646970667358221220657abac73a2f15ebfbe11ebfa579b3363b1ccf5e2dcc965e2aba45413b5f3ea064736f6c63430008070033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8924AF74 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xCAD96CCA EQ PUSH2 0x6C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x254 JUMP JUMPDEST PUSH2 0x9C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x63 SWAP3 SWAP2 SWAP1 PUSH2 0x375 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x86 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x81 SWAP2 SWAP1 PUSH2 0x227 JUMP JUMPDEST PUSH2 0x111 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x93 SWAP2 SWAP1 PUSH2 0x39E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x0 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x207 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x145 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x221 DUP2 PUSH2 0x452 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23D JUMPI PUSH2 0x23C PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x24B DUP5 DUP3 DUP6 ADD PUSH2 0x212 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x26B JUMPI PUSH2 0x26A PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x279 DUP6 DUP3 DUP7 ADD PUSH2 0x212 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x28A DUP6 DUP3 DUP7 ADD PUSH2 0x212 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A0 DUP4 DUP4 PUSH2 0x328 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B5 DUP2 PUSH2 0x3F9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2C4 DUP2 PUSH2 0x3F9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D5 DUP3 PUSH2 0x3D0 JUMP JUMPDEST PUSH2 0x2DF DUP2 DUP6 PUSH2 0x3E8 JUMP JUMPDEST SWAP4 POP PUSH2 0x2EA DUP4 PUSH2 0x3C0 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x31B JUMPI DUP2 MLOAD PUSH2 0x302 DUP9 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP8 POP PUSH2 0x30D DUP4 PUSH2 0x3DB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2EE JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x33E PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x2AC JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x351 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x357 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x360 DUP2 PUSH2 0x435 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x36F DUP2 PUSH2 0x435 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x38A PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2BB JUMP JUMPDEST PUSH2 0x397 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x366 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3B8 DUP2 DUP5 PUSH2 0x2CA JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD 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 0x404 DUP3 PUSH2 0x40B 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 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x45B DUP2 PUSH2 0x42B JUMP JUMPDEST DUP2 EQ PUSH2 0x466 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH6 0x7ABAC73A2F15 0xEB 0xFB 0xE1 0x1E 0xBF 0xA5 PUSH26 0xB3363B1CCF5E2DCC965E2ABA45413B5F3EA064736F6C63430008 SMOD STOP CALLER ", | |
| "sourceMap": "121:360:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;125:52:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;187:137:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;125:52:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;187:137:3:-;262:21;303:9;:13;313:2;303:13;;;;;;;;;;;296:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;187:137;;;:::o;7:139:4:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:329::-;211:6;260:2;248:9;239:7;235:23;231:32;228:119;;;266:79;;:::i;:::-;228:119;386:1;411:53;456:7;447:6;436:9;432:22;411:53;:::i;:::-;401:63;;357:117;152:329;;;;:::o;487:474::-;555:6;563;612:2;600:9;591:7;587:23;583:32;580:119;;;618:79;;:::i;:::-;580:119;738:1;763:53;808:7;799:6;788:9;784:22;763:53;:::i;:::-;753:63;;709:117;865:2;891:53;936:7;927:6;916:9;912:22;891:53;:::i;:::-;881:63;;836:118;487:474;;;;;:::o;967:259::-;1076:10;1097:86;1179:3;1171:6;1097:86;:::i;:::-;1215:4;1210:3;1206:14;1192:28;;967:259;;;;:::o;1232:132::-;1325:32;1351:5;1325:32;:::i;:::-;1320:3;1313:45;1232:132;;:::o;1370:142::-;1473:32;1499:5;1473:32;:::i;:::-;1468:3;1461:45;1370:142;;:::o;1572:892::-;1731:3;1760:74;1828:5;1760:74;:::i;:::-;1850:106;1949:6;1944:3;1850:106;:::i;:::-;1843:113;;1980:76;2050:5;1980:76;:::i;:::-;2079:7;2110:1;2095:344;2120:6;2117:1;2114:13;2095:344;;;2196:6;2190:13;2223:103;2322:3;2307:13;2223:103;:::i;:::-;2216:110;;2349:80;2422:6;2349:80;:::i;:::-;2339:90;;2155:284;2142:1;2139;2135:9;2130:14;;2095:344;;;2099:14;2455:3;2448:10;;1736:728;;;1572:892;;;;:::o;2520:505::-;2647:4;2642:3;2638:14;2737:4;2730:5;2726:16;2720:23;2756:79;2829:4;2824:3;2820:14;2806:12;2756:79;:::i;:::-;2662:183;2928:4;2921:5;2917:16;2911:23;2947:61;3002:4;2997:3;2993:14;2979:12;2947:61;:::i;:::-;2855:163;2616:409;2520:505;;:::o;3031:105::-;3106:23;3123:5;3106:23;:::i;:::-;3101:3;3094:36;3031:105;;:::o;3142:115::-;3227:23;3244:5;3227:23;:::i;:::-;3222:3;3215:36;3142:115;;:::o;3263:360::-;3398:4;3436:2;3425:9;3421:18;3413:26;;3449:87;3533:1;3522:9;3518:17;3509:6;3449:87;:::i;:::-;3546:70;3612:2;3601:9;3597:18;3588:6;3546:70;:::i;:::-;3263:360;;;;;:::o;3629:453::-;3812:4;3850:2;3839:9;3835:18;3827:26;;3899:9;3893:4;3889:20;3885:1;3874:9;3870:17;3863:47;3927:148;4070:4;4061:6;3927:148;:::i;:::-;3919:156;;3629:453;;;;:::o;4169:152::-;4256:4;4279:3;4271:11;;4309:4;4304:3;4300:14;4292:22;;4169:152;;;:::o;4327:134::-;4414:6;4448:5;4442:12;4432:22;;4327:134;;;:::o;4467:133::-;4557:4;4589;4584:3;4580:14;4572:22;;4467:133;;;:::o;4606:204::-;4725:11;4759:6;4754:3;4747:19;4799:4;4794:3;4790:14;4775:29;;4606:204;;;;:::o;4816:104::-;4861:7;4890:24;4908:5;4890:24;:::i;:::-;4879:35;;4816:104;;;:::o;4926:126::-;4963:7;5003:42;4996:5;4992:54;4981:65;;4926:126;;;:::o;5058:77::-;5095:7;5124:5;5113:16;;5058:77;;;:::o;5141:109::-;5177:7;5217:26;5210:5;5206:38;5195:49;;5141:109;;;:::o;5379:117::-;5488:1;5485;5478:12;5502:122;5575:24;5593:5;5575:24;:::i;:::-;5568:5;5565:35;5555:63;;5614:1;5611;5604:12;5555:63;5502:122;:::o" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "236600", | |
| "executionCost": "275", | |
| "totalCost": "236875" | |
| }, | |
| "external": { | |
| "getRaribleV2Royalties(uint256)": "infinite", | |
| "royalties(uint256,uint256)": "infinite" | |
| }, | |
| "internal": { | |
| "_onRoyaltiesSet(uint256,struct LibPart.Part memory[] memory)": "infinite" | |
| } | |
| }, | |
| "methodIdentifiers": { | |
| "getRaribleV2Royalties(uint256)": "cad96cca", | |
| "royalties(uint256,uint256)": "8924af74" | |
| } | |
| }, | |
| "abi": [ | |
| { | |
| "anonymous": false, | |
| "inputs": [ | |
| { | |
| "indexed": false, | |
| "internalType": "uint256", | |
| "name": "tokenId", | |
| "type": "uint256" | |
| }, | |
| { | |
| "components": [ | |
| { | |
| "internalType": "address payable", | |
| "name": "account", | |
| "type": "address" | |
| }, | |
| { | |
| "internalType": "uint96", | |
| "name": "value", | |
| "type": "uint96" | |
| } | |
| ], | |
| "indexed": false, | |
| "internalType": "struct LibPart.Part[]", | |
| "name": "royalties", | |
| "type": "tuple[]" | |
| } | |
| ], | |
| "name": "RoyaltiesSet", | |
| "type": "event" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "id", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "getRaribleV2Royalties", | |
| "outputs": [ | |
| { | |
| "components": [ | |
| { | |
| "internalType": "address payable", | |
| "name": "account", | |
| "type": "address" | |
| }, | |
| { | |
| "internalType": "uint96", | |
| "name": "value", | |
| "type": "uint96" | |
| } | |
| ], | |
| "internalType": "struct LibPart.Part[]", | |
| "name": "", | |
| "type": "tuple[]" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| }, | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "royalties", | |
| "outputs": [ | |
| { | |
| "internalType": "address payable", | |
| "name": "account", | |
| "type": "address" | |
| }, | |
| { | |
| "internalType": "uint96", | |
| "name": "value", | |
| "type": "uint96" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| } | |
| ] | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "compiler": { | |
| "version": "0.8.7+commit.e28d00a7" | |
| }, | |
| "language": "Solidity", | |
| "output": { | |
| "abi": [ | |
| { | |
| "anonymous": false, | |
| "inputs": [ | |
| { | |
| "indexed": false, | |
| "internalType": "uint256", | |
| "name": "tokenId", | |
| "type": "uint256" | |
| }, | |
| { | |
| "components": [ | |
| { | |
| "internalType": "address payable", | |
| "name": "account", | |
| "type": "address" | |
| }, | |
| { | |
| "internalType": "uint96", | |
| "name": "value", | |
| "type": "uint96" | |
| } | |
| ], | |
| "indexed": false, | |
| "internalType": "struct LibPart.Part[]", | |
| "name": "royalties", | |
| "type": "tuple[]" | |
| } | |
| ], | |
| "name": "RoyaltiesSet", | |
| "type": "event" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "id", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "getRaribleV2Royalties", | |
| "outputs": [ | |
| { | |
| "components": [ | |
| { | |
| "internalType": "address payable", | |
| "name": "account", | |
| "type": "address" | |
| }, | |
| { | |
| "internalType": "uint96", | |
| "name": "value", | |
| "type": "uint96" | |
| } | |
| ], | |
| "internalType": "struct LibPart.Part[]", | |
| "name": "", | |
| "type": "tuple[]" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| }, | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "royalties", | |
| "outputs": [ | |
| { | |
| "internalType": "address payable", | |
| "name": "account", | |
| "type": "address" | |
| }, | |
| { | |
| "internalType": "uint96", | |
| "name": "value", | |
| "type": "uint96" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| } | |
| ], | |
| "devdoc": { | |
| "kind": "dev", | |
| "methods": {}, | |
| "version": 1 | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| }, | |
| "settings": { | |
| "compilationTarget": { | |
| "contracts/@rarible/royalties/contracts/impl/RoyaltiesV2Impl.sol": "RoyaltiesV2Impl" | |
| }, | |
| "evmVersion": "london", | |
| "libraries": {}, | |
| "metadata": { | |
| "bytecodeHash": "ipfs" | |
| }, | |
| "optimizer": { | |
| "enabled": false, | |
| "runs": 200 | |
| }, | |
| "remappings": [] | |
| }, | |
| "sources": { | |
| "contracts/@rarible/royalties/contracts/LibPart.sol": { | |
| "keccak256": "0x3b8a026906122edc0f6d8127a1a6b6ca3bc9f9d24757c6f1b141ec42cc115c9d", | |
| "license": "MIT pragma", | |
| "urls": [ | |
| "bzz-raw://29371804203c6d4533b7d6fd6fb2b8870c1a26f2aebd06014a6f3e55c65d2eb3", | |
| "dweb:/ipfs/QmYij1hG1ZSrkJ57G199vfpUK5rtdYdDxTmKe4W3c5LgHE" | |
| ] | |
| }, | |
| "contracts/@rarible/royalties/contracts/RoyaltiesV2.sol": { | |
| "keccak256": "0x3bb78ba72f4c01e489245dc22519a9aac2abe03ce87dbfbdbbf3f0fc17011978", | |
| "license": "MIT", | |
| "urls": [ | |
| "bzz-raw://c2c00a7d54cea79f8f0019266bd1026a19475c53da4b0e296bfbe6dc2dd7cd0a", | |
| "dweb:/ipfs/QmUneoLYmQSB7Ph4b6g5887kZPL9jVndrDFyKcurHakfPB" | |
| ] | |
| }, | |
| "contracts/@rarible/royalties/contracts/impl/AbstractRoyalties.sol": { | |
| "keccak256": "0x0a27f53c218393ec527c874d6f2c09672dde826d3d9add271da9c5e307c77b3c", | |
| "license": "MIT", | |
| "urls": [ | |
| "bzz-raw://ea5e4bb7371bfbb25e1f6741a986db2c53c1f7771226f657c4c0f83a458695b6", | |
| "dweb:/ipfs/QmcpwQXzBm2DqVk1VGt5cof6zJaHcJFd43dRP86aNJBcxm" | |
| ] | |
| }, | |
| "contracts/@rarible/royalties/contracts/impl/RoyaltiesV2Impl.sol": { | |
| "keccak256": "0xd1dcc314f2b9607468aa73e5d65b41886cb28474f450f734c1bfa5a49ab21e1e", | |
| "license": "MIT", | |
| "urls": [ | |
| "bzz-raw://e440bbf7998bd98d50ccfc640f21871a39ecd408629a754e7923df94d7662cfa", | |
| "dweb:/ipfs/QmfUCfxo9mmKKr7RDfWyNeGDAtF3xCxSqThNWztihL1e1S" | |
| ] | |
| } | |
| }, | |
| "version": 1 | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| pragma solidity ^0.8.0; | |
| import "./AbstractRoyalties.sol"; | |
| import "../RoyaltiesV2.sol"; | |
| contract RoyaltiesV2Impl is AbstractRoyalties, RoyaltiesV2 { | |
| function getRaribleV2Royalties(uint256 id) override external view returns (LibPart.Part[] memory) { | |
| return royalties[id]; | |
| } | |
| function _onRoyaltiesSet(uint256 _id, LibPart.Part[] memory _royalties) override internal { | |
| emit RoyaltiesSet(_id, _royalties); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| pragma solidity ^0.8.0; | |
| import "./LibPart.sol"; | |
| interface IRoyaltiesProvider { | |
| function getRoyalties(address token, uint tokenId) external returns (LibPart.Part[] memory); | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT pragma | |
| pragma solidity ^0.8.0; | |
| library LibPart { | |
| bytes32 public constant TYPE_HASH = keccak256("Part(address account,uint96 value)"); | |
| struct Part { | |
| address payable account; | |
| uint96 value; | |
| } | |
| function hash(Part memory part) internal pure returns (bytes32) { | |
| return keccak256(abi.encode(TYPE_HASH, part.account, part.value)); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| pragma solidity ^0.8.0; | |
| library LibRoyaltiesV2 { | |
| /* | |
| * bytes4(keccak256('getRoyalties(LibAsset.AssetType)')) == 0x44c74bcc | |
| */ | |
| bytes4 constant _INTERFACE_ID_ROYALTIES = 0x44c74bcc; | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| pragma solidity ^0.8.0; | |
| import "./LibPart.sol"; | |
| interface RoyaltiesV2 { | |
| event RoyaltiesSet(uint256 tokenId, LibPart.Part[] royalties); | |
| function getRaribleV2Royalties(uint256 id) external view returns (LibPart.Part[] memory); | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "deploy": { | |
| "VM:-": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "main:1": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "ropsten:3": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "rinkeby:4": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "kovan:42": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "gรถrli:5": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "Custom": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| } | |
| }, | |
| "data": { | |
| "bytecode": { | |
| "functionDebugData": { | |
| "@_235": { | |
| "entryPoint": null, | |
| "id": 235, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "@_27": { | |
| "entryPoint": null, | |
| "id": 27, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "@_msgSender_328": { | |
| "entryPoint": 181, | |
| "id": 328, | |
| "parameterSlots": 0, | |
| "returnSlots": 1 | |
| }, | |
| "@_transferOwnership_315": { | |
| "entryPoint": 189, | |
| "id": 315, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| } | |
| }, | |
| "generatedSources": [], | |
| "linkReferences": {}, | |
| "object": "6080604052600060035534801561001557600080fd5b506100326100276100b560201b60201c565b6100bd60201b60201c565b33600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610181565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611057806101906000396000f3fe60806040526004361061007b5760003560e01c80638da5cb5b1161004e5780638da5cb5b146100e1578063bb5d40eb1461010c578063dd6d3ca714610137578063f2fde38b146101625761007b565b80631f864d57146100805780633e25e83714610097578063421b2d8b146100ae578063715018a6146100ca575b600080fd5b34801561008c57600080fd5b5061009561018b565b005b3480156100a357600080fd5b506100ac610297565b005b6100c860048036038101906100c39190610a4e565b610443565b005b3480156100d657600080fd5b506100df6106a3565b005b3480156100ed57600080fd5b506100f661072b565b6040516101039190610b9d565b60405180910390f35b34801561011857600080fd5b50610121610754565b60405161012e9190610bb8565b60405180910390f35b34801561014357600080fd5b5061014c61082e565b6040516101599190610cb3565b60405180910390f35b34801561016e57600080fd5b5061018960048036038101906101849190610a4e565b610875565b005b61019361096d565b73ffffffffffffffffffffffffffffffffffffffff166101b161072b565b73ffffffffffffffffffffffffffffffffffffffff1614610207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101fe90610c53565b60405180910390fd5b6000600354476102179190610dc0565b905061022161072b565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050610294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028b90610bf3565b60405180910390fd5b50565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050662386f26fc10000811015610325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031c90610c13565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050610399576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039090610bf3565b60405180910390fd5b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103e49190610dc0565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600360008282546104399190610dc0565b9250508190555050565b80600073ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050990610c93565b60405180910390fd5b662386f26fc1000034101561055c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055390610c73565b60405180910390fd5b33600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006064600a346105eb9190610d66565b6105f59190610d35565b905080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106429190610cdf565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600360008282546106979190610cdf565b92505081905550505050565b6106ab61096d565b73ffffffffffffffffffffffffffffffffffffffff166106c961072b565b73ffffffffffffffffffffffffffffffffffffffff161461071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071690610c53565b60405180910390fd5b6107296000610975565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600033600073ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081d90610c33565b60405180910390fd5b600191505090565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b61087d61096d565b73ffffffffffffffffffffffffffffffffffffffff1661089b61072b565b73ffffffffffffffffffffffffffffffffffffffff16146108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e890610c53565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610961576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095890610bd3565b60405180910390fd5b61096a81610975565b50565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081359050610a488161100a565b92915050565b600060208284031215610a6457610a63610e9a565b5b6000610a7284828501610a39565b91505092915050565b610a8481610df4565b82525050565b610a9381610e06565b82525050565b6000610aa6602683610cce565b9150610ab182610e9f565b604082019050919050565b6000610ac9601483610cce565b9150610ad482610eee565b602082019050919050565b6000610aec602f83610cce565b9150610af782610f17565b604082019050919050565b6000610b0f601883610cce565b9150610b1a82610f66565b602082019050919050565b6000610b32602083610cce565b9150610b3d82610f8f565b602082019050919050565b6000610b55601083610cce565b9150610b6082610fb8565b602082019050919050565b6000610b78601f83610cce565b9150610b8382610fe1565b602082019050919050565b610b9781610e32565b82525050565b6000602082019050610bb26000830184610a7b565b92915050565b6000602082019050610bcd6000830184610a8a565b92915050565b60006020820190508181036000830152610bec81610a99565b9050919050565b60006020820190508181036000830152610c0c81610abc565b9050919050565b60006020820190508181036000830152610c2c81610adf565b9050919050565b60006020820190508181036000830152610c4c81610b02565b9050919050565b60006020820190508181036000830152610c6c81610b25565b9050919050565b60006020820190508181036000830152610c8c81610b48565b9050919050565b60006020820190508181036000830152610cac81610b6b565b9050919050565b6000602082019050610cc86000830184610b8e565b92915050565b600082825260208201905092915050565b6000610cea82610e32565b9150610cf583610e32565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610d2a57610d29610e3c565b5b828201905092915050565b6000610d4082610e32565b9150610d4b83610e32565b925082610d5b57610d5a610e6b565b5b828204905092915050565b6000610d7182610e32565b9150610d7c83610e32565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610db557610db4610e3c565b5b828202905092915050565b6000610dcb82610e32565b9150610dd683610e32565b925082821015610de957610de8610e3c565b5b828203905092915050565b6000610dff82610e12565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b7f4e65656473206d696e696d756d20302e30312045544820696e20636f6d69737360008201527f696f6e20746f2077697468647261770000000000000000000000000000000000602082015250565b7f4e6f7420612076616c6964207573657220616464726573730000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4e6f7420656e6f75676820457468657200000000000000000000000000000000600082015250565b7f55736572206164647265737320616c7265616479207265676973746572656400600082015250565b61101381610df4565b811461101e57600080fd5b5056fea264697066735822122001ff92eecf650f30ee4809e3c823f3aeda2fdfb952d69bcab612e99d4d39bdde64736f6c63430008070033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 PUSH1 0x3 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32 PUSH2 0x27 PUSH2 0xB5 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0xBD PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST CALLER 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 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x181 JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x1057 DUP1 PUSH2 0x190 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xE1 JUMPI DUP1 PUSH4 0xBB5D40EB EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0xDD6D3CA7 EQ PUSH2 0x137 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x162 JUMPI PUSH2 0x7B JUMP JUMPDEST DUP1 PUSH4 0x1F864D57 EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0x3E25E837 EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0x421B2D8B EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xCA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x95 PUSH2 0x18B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAC PUSH2 0x297 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0xA4E JUMP JUMPDEST PUSH2 0x443 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDF PUSH2 0x6A3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF6 PUSH2 0x72B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x103 SWAP2 SWAP1 PUSH2 0xB9D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x118 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x121 PUSH2 0x754 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12E SWAP2 SWAP1 PUSH2 0xBB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14C PUSH2 0x82E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x159 SWAP2 SWAP1 PUSH2 0xCB3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x189 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x184 SWAP2 SWAP1 PUSH2 0xA4E JUMP JUMPDEST PUSH2 0x875 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH2 0x96D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1B1 PUSH2 0x72B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x207 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FE SWAP1 PUSH2 0xC53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x3 SLOAD SELFBALANCE PUSH2 0x217 SWAP2 SWAP1 PUSH2 0xDC0 JUMP JUMPDEST SWAP1 POP PUSH2 0x221 PUSH2 0x72B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 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 PUSH2 0x294 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x28B SWAP1 PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH7 0x2386F26FC10000 DUP2 LT ISZERO PUSH2 0x325 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31C SWAP1 PUSH2 0xC13 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 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 PUSH2 0x399 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x390 SWAP1 PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x3E4 SWAP2 SWAP1 PUSH2 0xDC0 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x439 SWAP2 SWAP1 PUSH2 0xDC0 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x512 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x509 SWAP1 PUSH2 0xC93 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH7 0x2386F26FC10000 CALLVALUE LT ISZERO PUSH2 0x55C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x553 SWAP1 PUSH2 0xC73 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x64 PUSH1 0xA CALLVALUE PUSH2 0x5EB SWAP2 SWAP1 PUSH2 0xD66 JUMP JUMPDEST PUSH2 0x5F5 SWAP2 SWAP1 PUSH2 0xD35 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x642 SWAP2 SWAP1 PUSH2 0xCDF JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x697 SWAP2 SWAP1 PUSH2 0xCDF JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH2 0x6AB PUSH2 0x96D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x6C9 PUSH2 0x72B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x71F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x716 SWAP1 PUSH2 0xC53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x729 PUSH1 0x0 PUSH2 0x975 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x826 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x81D SWAP1 PUSH2 0xC33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x87D PUSH2 0x96D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x89B PUSH2 0x72B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x8F1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8E8 SWAP1 PUSH2 0xC53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x961 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x958 SWAP1 PUSH2 0xBD3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x96A DUP2 PUSH2 0x975 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA48 DUP2 PUSH2 0x100A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA64 JUMPI PUSH2 0xA63 PUSH2 0xE9A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xA72 DUP5 DUP3 DUP6 ADD PUSH2 0xA39 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA84 DUP2 PUSH2 0xDF4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xA93 DUP2 PUSH2 0xE06 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAA6 PUSH1 0x26 DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xAB1 DUP3 PUSH2 0xE9F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAC9 PUSH1 0x14 DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xAD4 DUP3 PUSH2 0xEEE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAEC PUSH1 0x2F DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xAF7 DUP3 PUSH2 0xF17 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB0F PUSH1 0x18 DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xB1A DUP3 PUSH2 0xF66 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 PUSH1 0x20 DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xB3D DUP3 PUSH2 0xF8F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB55 PUSH1 0x10 DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xB60 DUP3 PUSH2 0xFB8 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB78 PUSH1 0x1F DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xB83 DUP3 PUSH2 0xFE1 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB97 DUP2 PUSH2 0xE32 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBB2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA7B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBCD PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA8A 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 0xBEC DUP2 PUSH2 0xA99 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 0xC0C DUP2 PUSH2 0xABC 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 0xC2C DUP2 PUSH2 0xADF 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 0xC4C DUP2 PUSH2 0xB02 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 0xC6C DUP2 PUSH2 0xB25 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 0xC8C DUP2 PUSH2 0xB48 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 0xCAC DUP2 PUSH2 0xB6B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCC8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB8E 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 0xCEA DUP3 PUSH2 0xE32 JUMP JUMPDEST SWAP2 POP PUSH2 0xCF5 DUP4 PUSH2 0xE32 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xD2A JUMPI PUSH2 0xD29 PUSH2 0xE3C JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD40 DUP3 PUSH2 0xE32 JUMP JUMPDEST SWAP2 POP PUSH2 0xD4B DUP4 PUSH2 0xE32 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xE6B JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD71 DUP3 PUSH2 0xE32 JUMP JUMPDEST SWAP2 POP PUSH2 0xD7C DUP4 PUSH2 0xE32 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0xDB5 JUMPI PUSH2 0xDB4 PUSH2 0xE3C JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDCB DUP3 PUSH2 0xE32 JUMP JUMPDEST SWAP2 POP PUSH2 0xDD6 DUP4 PUSH2 0xE32 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0xDE9 JUMPI PUSH2 0xDE8 PUSH2 0xE3C JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDFF DUP3 PUSH2 0xE12 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 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 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4661696C656420746F2073656E64204574686572000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4E65656473206D696E696D756D20302E30312045544820696E20636F6D697373 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x696F6E20746F2077697468647261770000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4E6F7420612076616C6964207573657220616464726573730000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4E6F7420656E6F75676820457468657200000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x55736572206164647265737320616C7265616479207265676973746572656400 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x1013 DUP2 PUSH2 0xDF4 JUMP JUMPDEST DUP2 EQ PUSH2 0x101E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADD SELFDESTRUCT SWAP3 0xEE 0xCF PUSH6 0xF30EE4809E3 0xC8 0x23 RETURN 0xAE 0xDA 0x2F 0xDF 0xB9 MSTORE 0xD6 SWAP12 0xCA 0xB6 SLT 0xE9 SWAP14 0x4D CODECOPY 0xBD 0xDE PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", | |
| "sourceMap": "177:1977:0:-:0;;;439:1;406:34;;451:61;;;;;;;;;;867:32:1;886:12;:10;;;:12;;:::i;:::-;867:18;;;:32;;:::i;:::-;495:10:0;475:5;:17;481:10;475:17;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;177:1977;;587:96:2;640:7;666:10;659:17;;587:96;:::o;2216:187:1:-;2289:16;2308:6;;;;;;;;;;;2289:25;;2333:8;2324:6;;:17;;;;;;;;;;;;;;;;;;2387:8;2356:40;;2377:8;2356:40;;;;;;;;;;;;2279:124;2216:187;:::o;177:1977:0:-;;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "functionDebugData": { | |
| "@_msgSender_328": { | |
| "entryPoint": 2413, | |
| "id": 328, | |
| "parameterSlots": 0, | |
| "returnSlots": 1 | |
| }, | |
| "@_transferOwnership_315": { | |
| "entryPoint": 2421, | |
| "id": 315, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "@addUser_77": { | |
| "entryPoint": 1091, | |
| "id": 77, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "@getComission_88": { | |
| "entryPoint": 2094, | |
| "id": 88, | |
| "parameterSlots": 0, | |
| "returnSlots": 1 | |
| }, | |
| "@isValid_100": { | |
| "entryPoint": 1876, | |
| "id": 100, | |
| "parameterSlots": 0, | |
| "returnSlots": 1 | |
| }, | |
| "@owner_244": { | |
| "entryPoint": 1835, | |
| "id": 244, | |
| "parameterSlots": 0, | |
| "returnSlots": 1 | |
| }, | |
| "@renounceOwnership_272": { | |
| "entryPoint": 1699, | |
| "id": 272, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "@transferOwnership_295": { | |
| "entryPoint": 2165, | |
| "id": 295, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "@withdrawAllWithoutCommission_128": { | |
| "entryPoint": 395, | |
| "id": 128, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "@withdrawCommission_174": { | |
| "entryPoint": 663, | |
| "id": 174, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "abi_decode_t_address": { | |
| "entryPoint": 2617, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_decode_tuple_t_address": { | |
| "entryPoint": 2638, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_t_address_to_t_address_fromStack": { | |
| "entryPoint": 2683, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "abi_encode_t_bool_to_t_bool_fromStack": { | |
| "entryPoint": 2698, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack": { | |
| "entryPoint": 2713, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb_to_t_string_memory_ptr_fromStack": { | |
| "entryPoint": 2748, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_t_stringliteral_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64_to_t_string_memory_ptr_fromStack": { | |
| "entryPoint": 2783, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_t_stringliteral_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49_to_t_string_memory_ptr_fromStack": { | |
| "entryPoint": 2818, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack": { | |
| "entryPoint": 2853, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_t_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e_to_t_string_memory_ptr_fromStack": { | |
| "entryPoint": 2888, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_t_stringliteral_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec_to_t_string_memory_ptr_fromStack": { | |
| "entryPoint": 2923, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_t_uint256_to_t_uint256_fromStack": { | |
| "entryPoint": 2958, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { | |
| "entryPoint": 2973, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { | |
| "entryPoint": 3000, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed": { | |
| "entryPoint": 3027, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_tuple_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb__to_t_string_memory_ptr__fromStack_reversed": { | |
| "entryPoint": 3059, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_tuple_t_stringliteral_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64__to_t_string_memory_ptr__fromStack_reversed": { | |
| "entryPoint": 3091, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_tuple_t_stringliteral_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49__to_t_string_memory_ptr__fromStack_reversed": { | |
| "entryPoint": 3123, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed": { | |
| "entryPoint": 3155, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_tuple_t_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e__to_t_string_memory_ptr__fromStack_reversed": { | |
| "entryPoint": 3187, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_tuple_t_stringliteral_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec__to_t_string_memory_ptr__fromStack_reversed": { | |
| "entryPoint": 3219, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { | |
| "entryPoint": 3251, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "allocate_unbounded": { | |
| "entryPoint": null, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 1 | |
| }, | |
| "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { | |
| "entryPoint": 3278, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "checked_add_t_uint256": { | |
| "entryPoint": 3295, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "checked_div_t_uint256": { | |
| "entryPoint": 3381, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "checked_mul_t_uint256": { | |
| "entryPoint": 3430, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "checked_sub_t_uint256": { | |
| "entryPoint": 3520, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "cleanup_t_address": { | |
| "entryPoint": 3572, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "cleanup_t_bool": { | |
| "entryPoint": 3590, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "cleanup_t_uint160": { | |
| "entryPoint": 3602, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "cleanup_t_uint256": { | |
| "entryPoint": 3634, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "panic_error_0x11": { | |
| "entryPoint": 3644, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "panic_error_0x12": { | |
| "entryPoint": 3691, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { | |
| "entryPoint": null, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { | |
| "entryPoint": 3738, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe": { | |
| "entryPoint": 3743, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "store_literal_in_memory_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb": { | |
| "entryPoint": 3822, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "store_literal_in_memory_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64": { | |
| "entryPoint": 3863, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "store_literal_in_memory_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49": { | |
| "entryPoint": 3942, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe": { | |
| "entryPoint": 3983, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "store_literal_in_memory_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e": { | |
| "entryPoint": 4024, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "store_literal_in_memory_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec": { | |
| "entryPoint": 4065, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "validator_revert_t_address": { | |
| "entryPoint": 4106, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| } | |
| }, | |
| "generatedSources": [ | |
| { | |
| "ast": { | |
| "nodeType": "YulBlock", | |
| "src": "0:10940:3", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "59:87:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "69:29:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "91:6:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "calldataload", | |
| "nodeType": "YulIdentifier", | |
| "src": "78:12:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "78:20:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "69:5:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "134:5:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "validator_revert_t_address", | |
| "nodeType": "YulIdentifier", | |
| "src": "107:26:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "107:33:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "107:33:3" | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_t_address", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "37:6:3", | |
| "type": "" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "45:3:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "53:5:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7:139:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "218:263:3", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "264:83:3", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", | |
| "nodeType": "YulIdentifier", | |
| "src": "266:77:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "266:79:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "266:79:3" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "239:7:3" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "248:9:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "235:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "235:23:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "260:2:3", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "231:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "231:32:3" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "228:119:3" | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "357:117:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "372:15:3", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "386:1:3", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "376:6:3", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "401:63:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "436:9:3" | |
| }, | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "447:6:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "432:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "432:22:3" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "456:7:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_address", | |
| "nodeType": "YulIdentifier", | |
| "src": "411:20:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "411:53:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "401:6:3" | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_tuple_t_address", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "188:9:3", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulTypedName", | |
| "src": "199:7:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "211:6:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "152:329:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "552:53:3", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "569:3:3" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "592:5:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_address", | |
| "nodeType": "YulIdentifier", | |
| "src": "574:17:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "574:24:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "562:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "562:37:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "562:37:3" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_address_to_t_address_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "540:5:3", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "547:3:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "487:118:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "670:50:3", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "687:3:3" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "707:5:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_bool", | |
| "nodeType": "YulIdentifier", | |
| "src": "692:14:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "692:21:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "680:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "680:34:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "680:34:3" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_bool_to_t_bool_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "658:5:3", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "665:3:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "611:109:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "872:220:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "882:74:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "948:3:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "953:2:3", | |
| "type": "", | |
| "value": "38" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "889:58:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "889:67:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "882:3:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1054:3:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", | |
| "nodeType": "YulIdentifier", | |
| "src": "965:88:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "965:93:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "965:93:3" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1067:19:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1078:3:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1083:2:3", | |
| "type": "", | |
| "value": "64" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1074:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1074:12:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "1067:3:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "860:3:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "868:3:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "726:366:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1244:220:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1254:74:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1320:3:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1325:2:3", | |
| "type": "", | |
| "value": "20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "1261:58:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1261:67:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1254:3:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1426:3:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "store_literal_in_memory_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb", | |
| "nodeType": "YulIdentifier", | |
| "src": "1337:88:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1337:93:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1337:93:3" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1439:19:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1450:3:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1455:2:3", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1446:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1446:12:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "1439:3:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb_to_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "1232:3:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "1240:3:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1098:366:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1616:220:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1626:74:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1692:3:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1697:2:3", | |
| "type": "", | |
| "value": "47" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "1633:58:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1633:67:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1626:3:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1798:3:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "store_literal_in_memory_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64", | |
| "nodeType": "YulIdentifier", | |
| "src": "1709:88:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1709:93:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1709:93:3" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1811:19:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1822:3:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1827:2:3", | |
| "type": "", | |
| "value": "64" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1818:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1818:12:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "1811:3:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_stringliteral_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64_to_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "1604:3:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "1612:3:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1470:366:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1988:220:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1998:74:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "2064:3:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2069:2:3", | |
| "type": "", | |
| "value": "24" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "2005:58:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2005:67:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1998:3:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "2170:3:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "store_literal_in_memory_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49", | |
| "nodeType": "YulIdentifier", | |
| "src": "2081:88:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2081:93:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2081:93:3" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2183:19:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "2194:3:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2199:2:3", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "2190:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2190:12:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "2183:3:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_stringliteral_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49_to_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "1976:3:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "1984:3:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1842:366:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2360:220:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2370:74:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "2436:3:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2441:2:3", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "2377:58:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2377:67:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "2370:3:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "2542:3:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", | |
| "nodeType": "YulIdentifier", | |
| "src": "2453:88:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2453:93:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2453:93:3" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2555:19:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "2566:3:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2571:2:3", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "2562:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2562:12:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "2555:3:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "2348:3:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "2356:3:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "2214:366:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2732:220:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2742:74:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "2808:3:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2813:2:3", | |
| "type": "", | |
| "value": "16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "2749:58:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2749:67:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "2742:3:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "2914:3:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "store_literal_in_memory_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e", | |
| "nodeType": "YulIdentifier", | |
| "src": "2825:88:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2825:93:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2825:93:3" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2927:19:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "2938:3:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2943:2:3", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "2934:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2934:12:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "2927:3:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e_to_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "2720:3:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "2728:3:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "2586:366:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "3104:220:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "3114:74:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "3180:3:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "3185:2:3", | |
| "type": "", | |
| "value": "31" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "3121:58:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3121:67:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "3114:3:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "3286:3:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "store_literal_in_memory_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec", | |
| "nodeType": "YulIdentifier", | |
| "src": "3197:88:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3197:93:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "3197:93:3" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "3299:19:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "3310:3:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "3315:2:3", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "3306:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3306:12:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "3299:3:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_stringliteral_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec_to_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "3092:3:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "3100:3:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "2958:366:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "3395:53:3", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "3412:3:3" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "3435:5:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "3417:17:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3417:24:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "3405:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3405:37:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "3405:37:3" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_uint256_to_t_uint256_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "3383:5:3", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "3390:3:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "3330:118:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "3552:124:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "3562:26:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "3574:9:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "3585:2:3", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "3570:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3570:18:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "3562:4:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "3642:6:3" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "3655:9:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "3666:1:3", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "3651:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3651:17:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_address_to_t_address_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "3598:43:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3598:71:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "3598:71:3" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "3524:9:3", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "3536:6:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "3547:4:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "3454:222:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "3774:118:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "3784:26:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "3796:9:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "3807:2:3", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "3792:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3792:18:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "3784:4:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "3858:6:3" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "3871:9:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "3882:1:3", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "3867:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3867:17:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_bool_to_t_bool_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "3820:37:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3820:65:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "3820:65:3" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "3746:9:3", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "3758:6:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "3769:4:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "3682:210:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "4069:248:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4079:26:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "4091:9:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4102:2:3", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "4087:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4087:18:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "4079:4:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "4126:9:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4137:1:3", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "4122:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4122:17:3" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "4145:4:3" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "4151:9:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "4141:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4141:20:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "4115:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4115:47:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "4115:47:3" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4171:139:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "4305:4:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "4179:124:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4179:131:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "4171:4:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "4049:9:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "4064:4:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "3898:419:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "4494:248:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4504:26:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "4516:9:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4527:2:3", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "4512:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4512:18:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "4504:4:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "4551:9:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4562:1:3", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "4547:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4547:17:3" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "4570:4:3" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "4576:9:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "4566:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4566:20:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "4540:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4540:47:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "4540:47:3" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4596:139:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "4730:4:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb_to_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "4604:124:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4604:131:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "4596:4:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb__to_t_string_memory_ptr__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "4474:9:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "4489:4:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "4323:419:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "4919:248:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4929:26:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "4941:9:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4952:2:3", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "4937:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4937:18:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "4929:4:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "4976:9:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4987:1:3", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "4972:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4972:17:3" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "4995:4:3" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "5001:9:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "4991:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4991:20:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "4965:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4965:47:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "4965:47:3" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "5021:139:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "5155:4:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_stringliteral_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64_to_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "5029:124:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5029:131:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "5021:4:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_stringliteral_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64__to_t_string_memory_ptr__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "4899:9:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "4914:4:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "4748:419:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "5344:248:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "5354:26:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "5366:9:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5377:2:3", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "5362:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5362:18:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "5354:4:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "5401:9:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5412:1:3", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "5397:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5397:17:3" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "5420:4:3" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "5426:9:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "5416:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5416:20:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "5390:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5390:47:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "5390:47:3" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "5446:139:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "5580:4:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_stringliteral_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49_to_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "5454:124:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5454:131:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "5446:4:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_stringliteral_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49__to_t_string_memory_ptr__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "5324:9:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "5339:4:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "5173:419:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "5769:248:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "5779:26:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "5791:9:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5802:2:3", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "5787:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5787:18:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "5779:4:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "5826:9:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5837:1:3", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "5822:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5822:17:3" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "5845:4:3" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "5851:9:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "5841:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5841:20:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "5815:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5815:47:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "5815:47:3" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "5871:139:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "6005:4:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "5879:124:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5879:131:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "5871:4:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "5749:9:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "5764:4:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "5598:419:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "6194:248:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "6204:26:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "6216:9:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6227:2:3", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "6212:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6212:18:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "6204:4:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "6251:9:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6262:1:3", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "6247:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6247:17:3" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "6270:4:3" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "6276:9:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "6266:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6266:20:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "6240:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6240:47:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "6240:47:3" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "6296:139:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "6430:4:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e_to_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "6304:124:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6304:131:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "6296:4:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e__to_t_string_memory_ptr__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "6174:9:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "6189:4:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "6023:419:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "6619:248:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "6629:26:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "6641:9:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6652:2:3", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "6637:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6637:18:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "6629:4:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "6676:9:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6687:1:3", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "6672:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6672:17:3" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "6695:4:3" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "6701:9:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "6691:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6691:20:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "6665:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6665:47:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "6665:47:3" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "6721:139:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "6855:4:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_stringliteral_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec_to_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "6729:124:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6729:131:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "6721:4:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_stringliteral_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec__to_t_string_memory_ptr__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "6599:9:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "6614:4:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "6448:419:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "6971:124:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "6981:26:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "6993:9:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "7004:2:3", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "6989:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6989:18:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "6981:4:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "7061:6:3" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "7074:9:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "7085:1:3", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "7070:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7070:17:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_uint256_to_t_uint256_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "7017:43:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7017:71:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "7017:71:3" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "6943:9:3", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "6955:6:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "6966:4:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "6873:222:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "7141:35:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "7151:19:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "7167:2:3", | |
| "type": "", | |
| "value": "64" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "7161:5:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7161:9:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "7151:6:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "allocate_unbounded", | |
| "nodeType": "YulFunctionDefinition", | |
| "returnVariables": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulTypedName", | |
| "src": "7134:6:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7101:75:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "7278:73:3", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "7295:3:3" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "7300:6:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "7288:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7288:19:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "7288:19:3" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "7316:29:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "7335:3:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "7340:4:3", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "7331:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7331:14:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "updated_pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "7316:11:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "7250:3:3", | |
| "type": "" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "7255:6:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "updated_pos", | |
| "nodeType": "YulTypedName", | |
| "src": "7266:11:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7182:169:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "7401:261:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "7411:25:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "7434:1:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "7416:17:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7416:20:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "7411:1:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "7445:25:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "7468:1:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "7450:17:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7450:20:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "7445:1:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "7608:22:3", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "7610:16:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7610:18:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "7610:18:3" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "7529:1:3" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "7536:66:3", | |
| "type": "", | |
| "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "7604:1:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "7532:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7532:74:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "7526:2:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7526:81:3" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "7523:107:3" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "7640:16:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "7651:1:3" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "7654:1:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "7647:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7647:9:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "sum", | |
| "nodeType": "YulIdentifier", | |
| "src": "7640:3:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "checked_add_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulTypedName", | |
| "src": "7388:1:3", | |
| "type": "" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulTypedName", | |
| "src": "7391:1:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "sum", | |
| "nodeType": "YulTypedName", | |
| "src": "7397:3:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7357:305:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "7710:143:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "7720:25:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "7743:1:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "7725:17:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7725:20:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "7720:1:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "7754:25:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "7777:1:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "7759:17:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7759:20:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "7754:1:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "7801:22:3", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x12", | |
| "nodeType": "YulIdentifier", | |
| "src": "7803:16:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7803:18:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "7803:18:3" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "7798:1:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "7791:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7791:9:3" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "7788:35:3" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "7833:14:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "7842:1:3" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "7845:1:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "div", | |
| "nodeType": "YulIdentifier", | |
| "src": "7838:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7838:9:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "r", | |
| "nodeType": "YulIdentifier", | |
| "src": "7833:1:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "checked_div_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulTypedName", | |
| "src": "7699:1:3", | |
| "type": "" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulTypedName", | |
| "src": "7702:1:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "r", | |
| "nodeType": "YulTypedName", | |
| "src": "7708:1:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7668:185:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "7907:300:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "7917:25:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "7940:1:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "7922:17:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7922:20:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "7917:1:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "7951:25:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "7974:1:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "7956:17:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7956:20:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "7951:1:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "8149:22:3", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "8151:16:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8151:18:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "8151:18:3" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "8061:1:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "8054:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8054:9:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "8047:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8047:17:3" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "8069:1:3" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "8076:66:3", | |
| "type": "", | |
| "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" | |
| }, | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "8144:1:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "div", | |
| "nodeType": "YulIdentifier", | |
| "src": "8072:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8072:74:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "8066:2:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8066:81:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "8043:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8043:105:3" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "8040:131:3" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "8181:20:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "8196:1:3" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "8199:1:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mul", | |
| "nodeType": "YulIdentifier", | |
| "src": "8192:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8192:9:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "product", | |
| "nodeType": "YulIdentifier", | |
| "src": "8181:7:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "checked_mul_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulTypedName", | |
| "src": "7890:1:3", | |
| "type": "" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulTypedName", | |
| "src": "7893:1:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "product", | |
| "nodeType": "YulTypedName", | |
| "src": "7899:7:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7859:348:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "8258:146:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "8268:25:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "8291:1:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "8273:17:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8273:20:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "8268:1:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "8302:25:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "8325:1:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "8307:17:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8307:20:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "8302:1:3" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "8349:22:3", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "8351:16:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8351:18:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "8351:18:3" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "8343:1:3" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "8346:1:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "lt", | |
| "nodeType": "YulIdentifier", | |
| "src": "8340:2:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8340:8:3" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "8337:34:3" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "8381:17:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "8393:1:3" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "8396:1:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "8389:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8389:9:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "diff", | |
| "nodeType": "YulIdentifier", | |
| "src": "8381:4:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "checked_sub_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulTypedName", | |
| "src": "8244:1:3", | |
| "type": "" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulTypedName", | |
| "src": "8247:1:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "diff", | |
| "nodeType": "YulTypedName", | |
| "src": "8253:4:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "8213:191:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "8455:51:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "8465:35:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "8494:5:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint160", | |
| "nodeType": "YulIdentifier", | |
| "src": "8476:17:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8476:24:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulIdentifier", | |
| "src": "8465:7:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_address", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "8437:5:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulTypedName", | |
| "src": "8447:7:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "8410:96:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "8554:48:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "8564:32:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "8589:5:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "8582:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8582:13:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "8575:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8575:21:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulIdentifier", | |
| "src": "8564:7:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_bool", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "8536:5:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulTypedName", | |
| "src": "8546:7:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "8512:90:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "8653:81:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "8663:65:3", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "8678:5:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "8685:42:3", | |
| "type": "", | |
| "value": "0xffffffffffffffffffffffffffffffffffffffff" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "8674:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8674:54:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulIdentifier", | |
| "src": "8663:7:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_uint160", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "8635:5:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulTypedName", | |
| "src": "8645:7:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "8608:126:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "8785:32:3", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "8795:16:3", | |
| "value": { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "8806:5:3" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulIdentifier", | |
| "src": "8795:7:3" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "8767:5:3", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulTypedName", | |
| "src": "8777:7:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "8740:77:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "8851:152:3", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "8868:1:3", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "8871:77:3", | |
| "type": "", | |
| "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "8861:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8861:88:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "8861:88:3" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "8965:1:3", | |
| "type": "", | |
| "value": "4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "8968:4:3", | |
| "type": "", | |
| "value": "0x11" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "8958:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8958:15:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "8958:15:3" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "8989:1:3", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "8992:4:3", | |
| "type": "", | |
| "value": "0x24" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "8982:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8982:15:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "8982:15:3" | |
| } | |
| ] | |
| }, | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "8823:180:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "9037:152:3", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9054:1:3", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9057:77:3", | |
| "type": "", | |
| "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "9047:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9047:88:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "9047:88:3" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9151:1:3", | |
| "type": "", | |
| "value": "4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9154:4:3", | |
| "type": "", | |
| "value": "0x12" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "9144:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9144:15:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "9144:15:3" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9175:1:3", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9178:4:3", | |
| "type": "", | |
| "value": "0x24" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "9168:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9168:15:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "9168:15:3" | |
| } | |
| ] | |
| }, | |
| "name": "panic_error_0x12", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "9009:180:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "9284:28:3", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9301:1:3", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9304:1:3", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "9294:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9294:12:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "9294:12:3" | |
| } | |
| ] | |
| }, | |
| "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "9195:117:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "9407:28:3", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9424:1:3", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9427:1:3", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "9417:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9417:12:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "9417:12:3" | |
| } | |
| ] | |
| }, | |
| "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "9318:117:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "9547:119:3", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "9569:6:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9577:1:3", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "9565:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9565:14:3" | |
| }, | |
| { | |
| "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061", | |
| "kind": "string", | |
| "nodeType": "YulLiteral", | |
| "src": "9581:34:3", | |
| "type": "", | |
| "value": "Ownable: new owner is the zero a" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "9558:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9558:58:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "9558:58:3" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "9637:6:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9645:2:3", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "9633:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9633:15:3" | |
| }, | |
| { | |
| "hexValue": "646472657373", | |
| "kind": "string", | |
| "nodeType": "YulLiteral", | |
| "src": "9650:8:3", | |
| "type": "", | |
| "value": "ddress" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "9626:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9626:33:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "9626:33:3" | |
| } | |
| ] | |
| }, | |
| "name": "store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulTypedName", | |
| "src": "9539:6:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "9441:225:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "9778:64:3", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "9800:6:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9808:1:3", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "9796:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9796:14:3" | |
| }, | |
| { | |
| "hexValue": "4661696c656420746f2073656e64204574686572", | |
| "kind": "string", | |
| "nodeType": "YulLiteral", | |
| "src": "9812:22:3", | |
| "type": "", | |
| "value": "Failed to send Ether" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "9789:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9789:46:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "9789:46:3" | |
| } | |
| ] | |
| }, | |
| "name": "store_literal_in_memory_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulTypedName", | |
| "src": "9770:6:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "9672:170:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "9954:128:3", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "9976:6:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9984:1:3", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "9972:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9972:14:3" | |
| }, | |
| { | |
| "hexValue": "4e65656473206d696e696d756d20302e30312045544820696e20636f6d697373", | |
| "kind": "string", | |
| "nodeType": "YulLiteral", | |
| "src": "9988:34:3", | |
| "type": "", | |
| "value": "Needs minimum 0.01 ETH in comiss" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "9965:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9965:58:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "9965:58:3" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "10044:6:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "10052:2:3", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "10040:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10040:15:3" | |
| }, | |
| { | |
| "hexValue": "696f6e20746f207769746864726177", | |
| "kind": "string", | |
| "nodeType": "YulLiteral", | |
| "src": "10057:17:3", | |
| "type": "", | |
| "value": "ion to withdraw" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "10033:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10033:42:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "10033:42:3" | |
| } | |
| ] | |
| }, | |
| "name": "store_literal_in_memory_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulTypedName", | |
| "src": "9946:6:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "9848:234:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "10194:68:3", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "10216:6:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "10224:1:3", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "10212:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10212:14:3" | |
| }, | |
| { | |
| "hexValue": "4e6f7420612076616c696420757365722061646472657373", | |
| "kind": "string", | |
| "nodeType": "YulLiteral", | |
| "src": "10228:26:3", | |
| "type": "", | |
| "value": "Not a valid user address" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "10205:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10205:50:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "10205:50:3" | |
| } | |
| ] | |
| }, | |
| "name": "store_literal_in_memory_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulTypedName", | |
| "src": "10186:6:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "10088:174:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "10374:76:3", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "10396:6:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "10404:1:3", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "10392:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10392:14:3" | |
| }, | |
| { | |
| "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", | |
| "kind": "string", | |
| "nodeType": "YulLiteral", | |
| "src": "10408:34:3", | |
| "type": "", | |
| "value": "Ownable: caller is not the owner" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "10385:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10385:58:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "10385:58:3" | |
| } | |
| ] | |
| }, | |
| "name": "store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulTypedName", | |
| "src": "10366:6:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "10268:182:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "10562:60:3", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "10584:6:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "10592:1:3", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "10580:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10580:14:3" | |
| }, | |
| { | |
| "hexValue": "4e6f7420656e6f756768204574686572", | |
| "kind": "string", | |
| "nodeType": "YulLiteral", | |
| "src": "10596:18:3", | |
| "type": "", | |
| "value": "Not enough Ether" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "10573:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10573:42:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "10573:42:3" | |
| } | |
| ] | |
| }, | |
| "name": "store_literal_in_memory_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulTypedName", | |
| "src": "10554:6:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "10456:166:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "10734:75:3", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "10756:6:3" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "10764:1:3", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "10752:3:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10752:14:3" | |
| }, | |
| { | |
| "hexValue": "55736572206164647265737320616c72656164792072656769737465726564", | |
| "kind": "string", | |
| "nodeType": "YulLiteral", | |
| "src": "10768:33:3", | |
| "type": "", | |
| "value": "User address already registered" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "10745:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10745:57:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "10745:57:3" | |
| } | |
| ] | |
| }, | |
| "name": "store_literal_in_memory_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulTypedName", | |
| "src": "10726:6:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "10628:181:3" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "10858:79:3", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "10915:16:3", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "10924:1:3", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "10927:1:3", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "10917:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10917:12:3" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "10917:12:3" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "10881:5:3" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "10906:5:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_address", | |
| "nodeType": "YulIdentifier", | |
| "src": "10888:17:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10888:24:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "eq", | |
| "nodeType": "YulIdentifier", | |
| "src": "10878:2:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10878:35:3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "10871:6:3" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10871:43:3" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "10868:63:3" | |
| } | |
| ] | |
| }, | |
| "name": "validator_revert_t_address", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "10851:5:3", | |
| "type": "" | |
| } | |
| ], | |
| "src": "10815:122:3" | |
| } | |
| ] | |
| }, | |
| "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_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n store_literal_in_memory_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n store_literal_in_memory_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n store_literal_in_memory_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n store_literal_in_memory_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec(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_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_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 abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb__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_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64__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_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49__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_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e__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_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec__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_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec_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 allocate_unbounded() -> memPtr {\n memPtr := mload(64)\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_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_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_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 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 revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n mstore(add(memPtr, 32), \"ddress\")\n\n }\n\n function store_literal_in_memory_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb(memPtr) {\n\n mstore(add(memPtr, 0), \"Failed to send Ether\")\n\n }\n\n function store_literal_in_memory_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64(memPtr) {\n\n mstore(add(memPtr, 0), \"Needs minimum 0.01 ETH in comiss\")\n\n mstore(add(memPtr, 32), \"ion to withdraw\")\n\n }\n\n function store_literal_in_memory_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49(memPtr) {\n\n mstore(add(memPtr, 0), \"Not a valid user address\")\n\n }\n\n function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n }\n\n function store_literal_in_memory_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e(memPtr) {\n\n mstore(add(memPtr, 0), \"Not enough Ether\")\n\n }\n\n function store_literal_in_memory_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec(memPtr) {\n\n mstore(add(memPtr, 0), \"User address already registered\")\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}\n", | |
| "id": 3, | |
| "language": "Yul", | |
| "name": "#utility.yul" | |
| } | |
| ], | |
| "immutableReferences": {}, | |
| "linkReferences": {}, | |
| "object": "60806040526004361061007b5760003560e01c80638da5cb5b1161004e5780638da5cb5b146100e1578063bb5d40eb1461010c578063dd6d3ca714610137578063f2fde38b146101625761007b565b80631f864d57146100805780633e25e83714610097578063421b2d8b146100ae578063715018a6146100ca575b600080fd5b34801561008c57600080fd5b5061009561018b565b005b3480156100a357600080fd5b506100ac610297565b005b6100c860048036038101906100c39190610a4e565b610443565b005b3480156100d657600080fd5b506100df6106a3565b005b3480156100ed57600080fd5b506100f661072b565b6040516101039190610b9d565b60405180910390f35b34801561011857600080fd5b50610121610754565b60405161012e9190610bb8565b60405180910390f35b34801561014357600080fd5b5061014c61082e565b6040516101599190610cb3565b60405180910390f35b34801561016e57600080fd5b5061018960048036038101906101849190610a4e565b610875565b005b61019361096d565b73ffffffffffffffffffffffffffffffffffffffff166101b161072b565b73ffffffffffffffffffffffffffffffffffffffff1614610207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101fe90610c53565b60405180910390fd5b6000600354476102179190610dc0565b905061022161072b565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050610294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028b90610bf3565b60405180910390fd5b50565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050662386f26fc10000811015610325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031c90610c13565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050610399576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039090610bf3565b60405180910390fd5b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103e49190610dc0565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600360008282546104399190610dc0565b9250508190555050565b80600073ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050990610c93565b60405180910390fd5b662386f26fc1000034101561055c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055390610c73565b60405180910390fd5b33600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006064600a346105eb9190610d66565b6105f59190610d35565b905080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106429190610cdf565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600360008282546106979190610cdf565b92505081905550505050565b6106ab61096d565b73ffffffffffffffffffffffffffffffffffffffff166106c961072b565b73ffffffffffffffffffffffffffffffffffffffff161461071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071690610c53565b60405180910390fd5b6107296000610975565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600033600073ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081d90610c33565b60405180910390fd5b600191505090565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b61087d61096d565b73ffffffffffffffffffffffffffffffffffffffff1661089b61072b565b73ffffffffffffffffffffffffffffffffffffffff16146108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e890610c53565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610961576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095890610bd3565b60405180910390fd5b61096a81610975565b50565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081359050610a488161100a565b92915050565b600060208284031215610a6457610a63610e9a565b5b6000610a7284828501610a39565b91505092915050565b610a8481610df4565b82525050565b610a9381610e06565b82525050565b6000610aa6602683610cce565b9150610ab182610e9f565b604082019050919050565b6000610ac9601483610cce565b9150610ad482610eee565b602082019050919050565b6000610aec602f83610cce565b9150610af782610f17565b604082019050919050565b6000610b0f601883610cce565b9150610b1a82610f66565b602082019050919050565b6000610b32602083610cce565b9150610b3d82610f8f565b602082019050919050565b6000610b55601083610cce565b9150610b6082610fb8565b602082019050919050565b6000610b78601f83610cce565b9150610b8382610fe1565b602082019050919050565b610b9781610e32565b82525050565b6000602082019050610bb26000830184610a7b565b92915050565b6000602082019050610bcd6000830184610a8a565b92915050565b60006020820190508181036000830152610bec81610a99565b9050919050565b60006020820190508181036000830152610c0c81610abc565b9050919050565b60006020820190508181036000830152610c2c81610adf565b9050919050565b60006020820190508181036000830152610c4c81610b02565b9050919050565b60006020820190508181036000830152610c6c81610b25565b9050919050565b60006020820190508181036000830152610c8c81610b48565b9050919050565b60006020820190508181036000830152610cac81610b6b565b9050919050565b6000602082019050610cc86000830184610b8e565b92915050565b600082825260208201905092915050565b6000610cea82610e32565b9150610cf583610e32565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610d2a57610d29610e3c565b5b828201905092915050565b6000610d4082610e32565b9150610d4b83610e32565b925082610d5b57610d5a610e6b565b5b828204905092915050565b6000610d7182610e32565b9150610d7c83610e32565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610db557610db4610e3c565b5b828202905092915050565b6000610dcb82610e32565b9150610dd683610e32565b925082821015610de957610de8610e3c565b5b828203905092915050565b6000610dff82610e12565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b7f4e65656473206d696e696d756d20302e30312045544820696e20636f6d69737360008201527f696f6e20746f2077697468647261770000000000000000000000000000000000602082015250565b7f4e6f7420612076616c6964207573657220616464726573730000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4e6f7420656e6f75676820457468657200000000000000000000000000000000600082015250565b7f55736572206164647265737320616c7265616479207265676973746572656400600082015250565b61101381610df4565b811461101e57600080fd5b5056fea264697066735822122001ff92eecf650f30ee4809e3c823f3aeda2fdfb952d69bcab612e99d4d39bdde64736f6c63430008070033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xE1 JUMPI DUP1 PUSH4 0xBB5D40EB EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0xDD6D3CA7 EQ PUSH2 0x137 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x162 JUMPI PUSH2 0x7B JUMP JUMPDEST DUP1 PUSH4 0x1F864D57 EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0x3E25E837 EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0x421B2D8B EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xCA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x95 PUSH2 0x18B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAC PUSH2 0x297 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0xA4E JUMP JUMPDEST PUSH2 0x443 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDF PUSH2 0x6A3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF6 PUSH2 0x72B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x103 SWAP2 SWAP1 PUSH2 0xB9D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x118 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x121 PUSH2 0x754 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12E SWAP2 SWAP1 PUSH2 0xBB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14C PUSH2 0x82E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x159 SWAP2 SWAP1 PUSH2 0xCB3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x189 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x184 SWAP2 SWAP1 PUSH2 0xA4E JUMP JUMPDEST PUSH2 0x875 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH2 0x96D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1B1 PUSH2 0x72B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x207 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FE SWAP1 PUSH2 0xC53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x3 SLOAD SELFBALANCE PUSH2 0x217 SWAP2 SWAP1 PUSH2 0xDC0 JUMP JUMPDEST SWAP1 POP PUSH2 0x221 PUSH2 0x72B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 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 PUSH2 0x294 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x28B SWAP1 PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH7 0x2386F26FC10000 DUP2 LT ISZERO PUSH2 0x325 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31C SWAP1 PUSH2 0xC13 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 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 PUSH2 0x399 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x390 SWAP1 PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x3E4 SWAP2 SWAP1 PUSH2 0xDC0 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x439 SWAP2 SWAP1 PUSH2 0xDC0 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x512 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x509 SWAP1 PUSH2 0xC93 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH7 0x2386F26FC10000 CALLVALUE LT ISZERO PUSH2 0x55C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x553 SWAP1 PUSH2 0xC73 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x64 PUSH1 0xA CALLVALUE PUSH2 0x5EB SWAP2 SWAP1 PUSH2 0xD66 JUMP JUMPDEST PUSH2 0x5F5 SWAP2 SWAP1 PUSH2 0xD35 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x642 SWAP2 SWAP1 PUSH2 0xCDF JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x697 SWAP2 SWAP1 PUSH2 0xCDF JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH2 0x6AB PUSH2 0x96D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x6C9 PUSH2 0x72B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x71F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x716 SWAP1 PUSH2 0xC53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x729 PUSH1 0x0 PUSH2 0x975 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x826 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x81D SWAP1 PUSH2 0xC33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x87D PUSH2 0x96D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x89B PUSH2 0x72B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x8F1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8E8 SWAP1 PUSH2 0xC53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x961 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x958 SWAP1 PUSH2 0xBD3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x96A DUP2 PUSH2 0x975 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA48 DUP2 PUSH2 0x100A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA64 JUMPI PUSH2 0xA63 PUSH2 0xE9A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xA72 DUP5 DUP3 DUP6 ADD PUSH2 0xA39 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA84 DUP2 PUSH2 0xDF4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xA93 DUP2 PUSH2 0xE06 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAA6 PUSH1 0x26 DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xAB1 DUP3 PUSH2 0xE9F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAC9 PUSH1 0x14 DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xAD4 DUP3 PUSH2 0xEEE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAEC PUSH1 0x2F DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xAF7 DUP3 PUSH2 0xF17 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB0F PUSH1 0x18 DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xB1A DUP3 PUSH2 0xF66 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 PUSH1 0x20 DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xB3D DUP3 PUSH2 0xF8F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB55 PUSH1 0x10 DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xB60 DUP3 PUSH2 0xFB8 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB78 PUSH1 0x1F DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xB83 DUP3 PUSH2 0xFE1 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB97 DUP2 PUSH2 0xE32 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBB2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA7B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBCD PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA8A 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 0xBEC DUP2 PUSH2 0xA99 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 0xC0C DUP2 PUSH2 0xABC 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 0xC2C DUP2 PUSH2 0xADF 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 0xC4C DUP2 PUSH2 0xB02 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 0xC6C DUP2 PUSH2 0xB25 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 0xC8C DUP2 PUSH2 0xB48 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 0xCAC DUP2 PUSH2 0xB6B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCC8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB8E 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 0xCEA DUP3 PUSH2 0xE32 JUMP JUMPDEST SWAP2 POP PUSH2 0xCF5 DUP4 PUSH2 0xE32 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xD2A JUMPI PUSH2 0xD29 PUSH2 0xE3C JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD40 DUP3 PUSH2 0xE32 JUMP JUMPDEST SWAP2 POP PUSH2 0xD4B DUP4 PUSH2 0xE32 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xE6B JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD71 DUP3 PUSH2 0xE32 JUMP JUMPDEST SWAP2 POP PUSH2 0xD7C DUP4 PUSH2 0xE32 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0xDB5 JUMPI PUSH2 0xDB4 PUSH2 0xE3C JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDCB DUP3 PUSH2 0xE32 JUMP JUMPDEST SWAP2 POP PUSH2 0xDD6 DUP4 PUSH2 0xE32 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0xDE9 JUMPI PUSH2 0xDE8 PUSH2 0xE3C JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDFF DUP3 PUSH2 0xE12 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 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 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4661696C656420746F2073656E64204574686572000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4E65656473206D696E696D756D20302E30312045544820696E20636F6D697373 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x696F6E20746F2077697468647261770000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4E6F7420612076616C6964207573657220616464726573730000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4E6F7420656E6F75676820457468657200000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x55736572206164647265737320616C7265616479207265676973746572656400 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x1013 DUP2 PUSH2 0xDF4 JUMP JUMPDEST DUP2 EQ PUSH2 0x101E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADD SELFDESTRUCT SWAP3 0xEE 0xCF PUSH6 0xF30EE4809E3 0xC8 0x23 RETURN 0xAE 0xDA 0x2F 0xDF 0xB9 MSTORE 0xD6 SWAP12 0xCA 0xB6 SLT 0xE9 SWAP14 0x4D CODECOPY 0xBD 0xDE PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", | |
| "sourceMap": "177:1977:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1163:212;;;;;;;;;;;;;:::i;:::-;;1385:438;;;;;;;;;;;;;:::i;:::-;;518:416;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1614:101:1;;;;;;;;;;;;;:::i;:::-;;982:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1052:105:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;944:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1864:198:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1163:212:0;1205:12:1;:10;:12::i;:::-;1194:23;;:7;:5;:7::i;:::-;:23;;;1186:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1230:15:0::1;1272:14;;1248:21;:38;;;;:::i;:::-;1230:56;;1321:7;:5;:7::i;:::-;1313:21;;:30;1335:7;1313:30;;;;;;;;;;;;;;;;;;;;;;;1305:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1220:155;1163:212::o:0;1385:438::-;1432:18;1453:9;:21;1463:10;1453:21;;;;;;;;;;;;;;;;1432:42;;1515:10;1501;:24;;1493:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;1612:10;1604:24;;:36;1629:10;1604:36;;;;;;;;;;;;;;;;;;;;;;;1596:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1768:10;1744:9;:21;1754:10;1744:21;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;1720:9;:21;1730:10;1720:21;;;;;;;;;;;;;;;:58;;;;1806:10;1788:14;;:28;;;;;;;:::i;:::-;;;;;;;;1422:401;1385:438::o;518:416::-;593:12;2094:3;2063:35;;:5;:19;2069:12;2063:19;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;2055:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;638:10:::1;625:9;:23;;617:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;701:10;679:5;:19;685:12;679:19;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;778:18;818:3;812:2;800:9;:14;;;;:::i;:::-;799:22;;;;:::i;:::-;778:43;;879:10;855:9;:21;865:10;855:21;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;831:9;:21;841:10;831:21;;;;;;;;;;;;;;;:58;;;;917:10;899:14;;:28;;;;;;;:::i;:::-;;;;;;;;607:327;518:416:::0;;:::o;1614:101:1:-;1205:12;:10;:12::i;:::-;1194:23;;:7;:5;:7::i;:::-;:23;;;1186:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1678:30:::1;1705:1;1678:18;:30::i;:::-;1614:101::o:0;982:85::-;1028:7;1054:6;;;;;;;;;;;1047:13;;982:85;:::o;1052:105:0:-;1122:4;1102:10;1932:3;1901:35;;:5;:19;1907:12;1901:19;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;;1893:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;1146:4:::1;1139:11;;1052:105:::0;;:::o;944:98::-;988:7;1014:9;:21;1024:10;1014:21;;;;;;;;;;;;;;;;1007:28;;944:98;:::o;1864:198:1:-;1205:12;:10;:12::i;:::-;1194:23;;:7;:5;:7::i;:::-;:23;;;1186:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1972:1:::1;1952:22;;:8;:22;;;;1944:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2027:28;2046:8;2027:18;:28::i;:::-;1864:198:::0;:::o;587:96:2:-;640:7;666:10;659:17;;587:96;:::o;2216:187:1:-;2289:16;2308:6;;;;;;;;;;;2289:25;;2333:8;2324:6;;:17;;;;;;;;;;;;;;;;;;2387:8;2356:40;;2377:8;2356:40;;;;;;;;;;;;2279:124;2216:187;:::o;7:139:3:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:329::-;211:6;260:2;248:9;239:7;235:23;231:32;228:119;;;266:79;;:::i;:::-;228:119;386:1;411:53;456:7;447:6;436:9;432:22;411:53;:::i;:::-;401:63;;357:117;152:329;;;;:::o;487:118::-;574:24;592:5;574:24;:::i;:::-;569:3;562:37;487:118;;:::o;611:109::-;692:21;707:5;692:21;:::i;:::-;687:3;680:34;611:109;;:::o;726:366::-;868:3;889:67;953:2;948:3;889:67;:::i;:::-;882:74;;965:93;1054:3;965:93;:::i;:::-;1083:2;1078:3;1074:12;1067:19;;726:366;;;:::o;1098:::-;1240:3;1261:67;1325:2;1320:3;1261:67;:::i;:::-;1254:74;;1337:93;1426:3;1337:93;:::i;:::-;1455:2;1450:3;1446:12;1439:19;;1098:366;;;:::o;1470:::-;1612:3;1633:67;1697:2;1692:3;1633:67;:::i;:::-;1626:74;;1709:93;1798:3;1709:93;:::i;:::-;1827:2;1822:3;1818:12;1811:19;;1470:366;;;:::o;1842:::-;1984:3;2005:67;2069:2;2064:3;2005:67;:::i;:::-;1998:74;;2081:93;2170:3;2081:93;:::i;:::-;2199:2;2194:3;2190:12;2183:19;;1842:366;;;:::o;2214:::-;2356:3;2377:67;2441:2;2436:3;2377:67;:::i;:::-;2370:74;;2453:93;2542:3;2453:93;:::i;:::-;2571:2;2566:3;2562:12;2555:19;;2214:366;;;:::o;2586:::-;2728:3;2749:67;2813:2;2808:3;2749:67;:::i;:::-;2742:74;;2825:93;2914:3;2825:93;:::i;:::-;2943:2;2938:3;2934:12;2927:19;;2586:366;;;:::o;2958:::-;3100:3;3121:67;3185:2;3180:3;3121:67;:::i;:::-;3114:74;;3197:93;3286:3;3197:93;:::i;:::-;3315:2;3310:3;3306:12;3299:19;;2958:366;;;:::o;3330:118::-;3417:24;3435:5;3417:24;:::i;:::-;3412:3;3405:37;3330:118;;:::o;3454:222::-;3547:4;3585:2;3574:9;3570:18;3562:26;;3598:71;3666:1;3655:9;3651:17;3642:6;3598:71;:::i;:::-;3454:222;;;;:::o;3682:210::-;3769:4;3807:2;3796:9;3792:18;3784:26;;3820:65;3882:1;3871:9;3867:17;3858:6;3820:65;:::i;:::-;3682:210;;;;:::o;3898:419::-;4064:4;4102:2;4091:9;4087:18;4079:26;;4151:9;4145:4;4141:20;4137:1;4126:9;4122:17;4115:47;4179:131;4305:4;4179:131;:::i;:::-;4171:139;;3898:419;;;:::o;4323:::-;4489:4;4527:2;4516:9;4512:18;4504:26;;4576:9;4570:4;4566:20;4562:1;4551:9;4547:17;4540:47;4604:131;4730:4;4604:131;:::i;:::-;4596:139;;4323:419;;;:::o;4748:::-;4914:4;4952:2;4941:9;4937:18;4929:26;;5001:9;4995:4;4991:20;4987:1;4976:9;4972:17;4965:47;5029:131;5155:4;5029:131;:::i;:::-;5021:139;;4748:419;;;:::o;5173:::-;5339:4;5377:2;5366:9;5362:18;5354:26;;5426:9;5420:4;5416:20;5412:1;5401:9;5397:17;5390:47;5454:131;5580:4;5454:131;:::i;:::-;5446:139;;5173:419;;;:::o;5598:::-;5764:4;5802:2;5791:9;5787:18;5779:26;;5851:9;5845:4;5841:20;5837:1;5826:9;5822:17;5815:47;5879:131;6005:4;5879:131;:::i;:::-;5871:139;;5598:419;;;:::o;6023:::-;6189:4;6227:2;6216:9;6212:18;6204:26;;6276:9;6270:4;6266:20;6262:1;6251:9;6247:17;6240:47;6304:131;6430:4;6304:131;:::i;:::-;6296:139;;6023:419;;;:::o;6448:::-;6614:4;6652:2;6641:9;6637:18;6629:26;;6701:9;6695:4;6691:20;6687:1;6676:9;6672:17;6665:47;6729:131;6855:4;6729:131;:::i;:::-;6721:139;;6448:419;;;:::o;6873:222::-;6966:4;7004:2;6993:9;6989:18;6981:26;;7017:71;7085:1;7074:9;7070:17;7061:6;7017:71;:::i;:::-;6873:222;;;;:::o;7182:169::-;7266:11;7300:6;7295:3;7288:19;7340:4;7335:3;7331:14;7316:29;;7182:169;;;;:::o;7357:305::-;7397:3;7416:20;7434:1;7416:20;:::i;:::-;7411:25;;7450:20;7468:1;7450:20;:::i;:::-;7445:25;;7604:1;7536:66;7532:74;7529:1;7526:81;7523:107;;;7610:18;;:::i;:::-;7523:107;7654:1;7651;7647:9;7640:16;;7357:305;;;;:::o;7668:185::-;7708:1;7725:20;7743:1;7725:20;:::i;:::-;7720:25;;7759:20;7777:1;7759:20;:::i;:::-;7754:25;;7798:1;7788:35;;7803:18;;:::i;:::-;7788:35;7845:1;7842;7838:9;7833:14;;7668:185;;;;:::o;7859:348::-;7899:7;7922:20;7940:1;7922:20;:::i;:::-;7917:25;;7956:20;7974:1;7956:20;:::i;:::-;7951:25;;8144:1;8076:66;8072:74;8069:1;8066:81;8061:1;8054:9;8047:17;8043:105;8040:131;;;8151:18;;:::i;:::-;8040:131;8199:1;8196;8192:9;8181:20;;7859:348;;;;:::o;8213:191::-;8253:4;8273:20;8291:1;8273:20;:::i;:::-;8268:25;;8307:20;8325:1;8307:20;:::i;:::-;8302:25;;8346:1;8343;8340:8;8337:34;;;8351:18;;:::i;:::-;8337:34;8396:1;8393;8389:9;8381:17;;8213:191;;;;:::o;8410:96::-;8447:7;8476:24;8494:5;8476:24;:::i;:::-;8465:35;;8410:96;;;:::o;8512:90::-;8546:7;8589:5;8582:13;8575:21;8564:32;;8512:90;;;:::o;8608:126::-;8645:7;8685:42;8678:5;8674:54;8663:65;;8608:126;;;:::o;8740:77::-;8777:7;8806:5;8795:16;;8740:77;;;:::o;8823:180::-;8871:77;8868:1;8861:88;8968:4;8965:1;8958:15;8992:4;8989:1;8982:15;9009:180;9057:77;9054:1;9047:88;9154:4;9151:1;9144:15;9178:4;9175:1;9168:15;9318:117;9427:1;9424;9417:12;9441:225;9581:34;9577:1;9569:6;9565:14;9558:58;9650:8;9645:2;9637:6;9633:15;9626:33;9441:225;:::o;9672:170::-;9812:22;9808:1;9800:6;9796:14;9789:46;9672:170;:::o;9848:234::-;9988:34;9984:1;9976:6;9972:14;9965:58;10057:17;10052:2;10044:6;10040:15;10033:42;9848:234;:::o;10088:174::-;10228:26;10224:1;10216:6;10212:14;10205:50;10088:174;:::o;10268:182::-;10408:34;10404:1;10396:6;10392:14;10385:58;10268:182;:::o;10456:166::-;10596:18;10592:1;10584:6;10580:14;10573:42;10456:166;:::o;10628:181::-;10768:33;10764:1;10756:6;10752:14;10745:57;10628:181;:::o;10815:122::-;10888:24;10906:5;10888:24;:::i;:::-;10881:5;10878:35;10868:63;;10927:1;10924;10917:12;10868:63;10815:122;:::o" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "836600", | |
| "executionCost": "infinite", | |
| "totalCost": "infinite" | |
| }, | |
| "external": { | |
| "addUser(address)": "infinite", | |
| "getComission()": "2570", | |
| "isValid()": "2724", | |
| "owner()": "2522", | |
| "renounceOwnership()": "30441", | |
| "transferOwnership(address)": "30789", | |
| "withdrawAllWithoutCommission()": "infinite", | |
| "withdrawCommission()": "infinite" | |
| } | |
| }, | |
| "methodIdentifiers": { | |
| "addUser(address)": "421b2d8b", | |
| "getComission()": "dd6d3ca7", | |
| "isValid()": "bb5d40eb", | |
| "owner()": "8da5cb5b", | |
| "renounceOwnership()": "715018a6", | |
| "transferOwnership(address)": "f2fde38b", | |
| "withdrawAllWithoutCommission()": "1f864d57", | |
| "withdrawCommission()": "3e25e837" | |
| } | |
| }, | |
| "abi": [ | |
| { | |
| "inputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "constructor" | |
| }, | |
| { | |
| "anonymous": false, | |
| "inputs": [ | |
| { | |
| "indexed": true, | |
| "internalType": "address", | |
| "name": "previousOwner", | |
| "type": "address" | |
| }, | |
| { | |
| "indexed": true, | |
| "internalType": "address", | |
| "name": "newOwner", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "OwnershipTransferred", | |
| "type": "event" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "_userAddress", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "addUser", | |
| "outputs": [], | |
| "stateMutability": "payable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "getComission", | |
| "outputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "isValid", | |
| "outputs": [ | |
| { | |
| "internalType": "bool", | |
| "name": "", | |
| "type": "bool" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "owner", | |
| "outputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "", | |
| "type": "address" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "renounceOwnership", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "newOwner", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "transferOwnership", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "withdrawAllWithoutCommission", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "withdrawCommission", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| } | |
| ] | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "compiler": { | |
| "version": "0.8.7+commit.e28d00a7" | |
| }, | |
| "language": "Solidity", | |
| "output": { | |
| "abi": [ | |
| { | |
| "inputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "constructor" | |
| }, | |
| { | |
| "anonymous": false, | |
| "inputs": [ | |
| { | |
| "indexed": true, | |
| "internalType": "address", | |
| "name": "previousOwner", | |
| "type": "address" | |
| }, | |
| { | |
| "indexed": true, | |
| "internalType": "address", | |
| "name": "newOwner", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "OwnershipTransferred", | |
| "type": "event" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "_userAddress", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "addUser", | |
| "outputs": [], | |
| "stateMutability": "payable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "getComission", | |
| "outputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "isValid", | |
| "outputs": [ | |
| { | |
| "internalType": "bool", | |
| "name": "", | |
| "type": "bool" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "owner", | |
| "outputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "", | |
| "type": "address" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "renounceOwnership", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "newOwner", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "transferOwnership", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "withdrawAllWithoutCommission", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "withdrawCommission", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| } | |
| ], | |
| "devdoc": { | |
| "kind": "dev", | |
| "methods": { | |
| "owner()": { | |
| "details": "Returns the address of the current owner." | |
| }, | |
| "renounceOwnership()": { | |
| "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." | |
| }, | |
| "transferOwnership(address)": { | |
| "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." | |
| } | |
| }, | |
| "version": 1 | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| }, | |
| "settings": { | |
| "compilationTarget": { | |
| "contracts/NFTDropBotLicence.sol": "NFTDropBotLicence" | |
| }, | |
| "evmVersion": "london", | |
| "libraries": {}, | |
| "metadata": { | |
| "bytecodeHash": "ipfs" | |
| }, | |
| "optimizer": { | |
| "enabled": false, | |
| "runs": 200 | |
| }, | |
| "remappings": [] | |
| }, | |
| "sources": { | |
| "contracts/NFTDropBotLicence.sol": { | |
| "keccak256": "0xc2c53bed388c0051742d79f2f1a4af8d57194d56003ec57137bdead2ab93d6b1", | |
| "license": "GPL-3.0", | |
| "urls": [ | |
| "bzz-raw://d02c38c6305c58160bf8761954ba5b174535811c2128acffc00488484fe81874", | |
| "dweb:/ipfs/QmProhzuaCjYNicTF17MAwvTCSRSQinR4N7CTqLTHjj6Wr" | |
| ] | |
| }, | |
| "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol": { | |
| "keccak256": "0x64d0f54d0d9a6c9f78e54930477a509a0c2bee91ddda7b2f4a781074b6e66ba4", | |
| "license": "MIT", | |
| "urls": [ | |
| "bzz-raw://77d0f0721942b0dc9d2f5c57b97c814bb7b18e06614a872cbaf68feab2174bb8", | |
| "dweb:/ipfs/QmacDiUVK818R4iXkEAUfehwaYFvptqLAELkcf9aJXZjyy" | |
| ] | |
| }, | |
| "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Context.sol": { | |
| "keccak256": "0x90565a39ae45c80f0468dc96c7b20d0afc3055f344c8203a0c9258239f350b9f", | |
| "license": "MIT", | |
| "urls": [ | |
| "bzz-raw://26e8b38a7ac8e7b4463af00cf7fff1bf48ae9875765bf4f7751e100124d0bc8c", | |
| "dweb:/ipfs/QmWcsmkVr24xmmjfnBQZoemFniXjj3vwT78Cz6uqZW1Hux" | |
| ] | |
| } | |
| }, | |
| "version": 1 | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "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": "608060405234801561001057600080fd5b506101e3806100206000396000f3fe60806040526004361061001e5760003560e01c8063a0712d6814610023575b600080fd5b61003d600480360381019061003891906100bc565b610053565b60405161004a9190610137565b60405180910390f35b6000662386f26fc1000034101561009f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161009690610117565b60405180910390fd5b819050919050565b6000813590506100b681610196565b92915050565b6000602082840312156100ce57600080fd5b60006100dc848285016100a7565b91505092915050565b60006100f2601083610152565b91506100fd8261016d565b602082019050919050565b61011181610163565b82525050565b60006020820190508181036000830152610130816100e5565b9050919050565b600060208201905061014c6000830184610108565b92915050565b600082825260208201905092915050565b6000819050919050565b7f4e6f7420656e6f75676820457468657200000000000000000000000000000000600082015250565b61019f81610163565b81146101aa57600080fd5b5056fea26469706673582212201d4e36d2209fe36334e2b8b993c1561ae4e5be4b3fda573bab2a3382e6db39c464736f6c63430008040033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E3 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA0712D68 EQ PUSH2 0x23 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x38 SWAP2 SWAP1 PUSH2 0xBC JUMP JUMPDEST PUSH2 0x53 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4A SWAP2 SWAP1 PUSH2 0x137 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH7 0x2386F26FC10000 CALLVALUE LT ISZERO PUSH2 0x9F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x96 SWAP1 PUSH2 0x117 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB6 DUP2 PUSH2 0x196 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xDC DUP5 DUP3 DUP6 ADD PUSH2 0xA7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2 PUSH1 0x10 DUP4 PUSH2 0x152 JUMP JUMPDEST SWAP2 POP PUSH2 0xFD DUP3 PUSH2 0x16D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x111 DUP2 PUSH2 0x163 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 0x130 DUP2 PUSH2 0xE5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x108 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 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E6F7420656E6F75676820457468657200000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x19F DUP2 PUSH2 0x163 JUMP JUMPDEST DUP2 EQ PUSH2 0x1AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SAR 0x4E CALLDATASIZE 0xD2 KECCAK256 SWAP16 0xE3 PUSH4 0x34E2B8B9 SWAP4 0xC1 JUMP BYTE 0xE4 0xE5 0xBE 0x4B EXTCODEHASH 0xDA JUMPI EXTCODESIZE 0xAB 0x2A CALLER DUP3 0xE6 0xDB CODECOPY 0xC4 PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ", | |
| "sourceMap": "70:183:0:-:0;;;;;;;;;;;;;;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "generatedSources": [ | |
| { | |
| "ast": { | |
| "nodeType": "YulBlock", | |
| "src": "0:2124: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_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "107:26:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "107:33:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "107:33:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_t_uint256", | |
| "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": "218:196:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "264:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "273:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "276:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "266:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "266:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "266:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "239:7:1" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "248:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "235:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "235:23:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "260:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "231:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "231:32:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "228:2:1" | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "290:117:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "305:15:1", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "319:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "309:6:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "334:63:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "369:9:1" | |
| }, | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "380:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "365:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "365:22:1" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "389:7:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "344:20:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "344:53:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "334:6:1" | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_tuple_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "188:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulTypedName", | |
| "src": "199:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "211:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "152:262:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "566:220:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "576:74:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "642:3:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "647:2:1", | |
| "type": "", | |
| "value": "16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "583:58:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "583:67:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "576:3:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "748:3:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "store_literal_in_memory_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e", | |
| "nodeType": "YulIdentifier", | |
| "src": "659:88:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "659:93:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "659:93:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "761:19:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "772:3:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "777:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "768:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "768:12:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "761:3:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e_to_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "554:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "562:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "420:366:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "857:53:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "874:3:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "897:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "879:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "879:24:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "867:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "867:37:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "867:37:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_uint256_to_t_uint256_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "845:5:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "852:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "792:118:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1087:248:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1097:26:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "1109:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1120:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1105:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1105:18:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "1097:4:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "1144:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1155:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1140:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1140:17:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "1163:4:1" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "1169:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "1159:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1159:20:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "1133:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1133:47:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1133:47:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1189:139:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "1323:4:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e_to_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "1197:124:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1197:131:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "1189:4:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e__to_t_string_memory_ptr__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "1067:9:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "1082:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "916:419:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1439:124:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1449:26:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "1461:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1472:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1457:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1457:18:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "1449:4:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "1529:6:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "1542:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1553:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1538:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1538:17:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_uint256_to_t_uint256_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "1485:43:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1485:71:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1485:71:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "1411:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "1423:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "1434:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1341:222:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1665:73:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1682:3:1" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "1687:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "1675:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1675:19:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1675:19:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1703:29:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1722:3:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1727:4:1", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1718:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1718:14:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "updated_pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1703:11:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "1637:3:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "1642:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "updated_pos", | |
| "nodeType": "YulTypedName", | |
| "src": "1653:11:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1569:169:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1789:32:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1799:16:1", | |
| "value": { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "1810:5:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulIdentifier", | |
| "src": "1799:7:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "1771:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulTypedName", | |
| "src": "1781:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1744:77:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1933:60:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "1955:6:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1963:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1951:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1951:14:1" | |
| }, | |
| { | |
| "kind": "string", | |
| "nodeType": "YulLiteral", | |
| "src": "1967:18:1", | |
| "type": "", | |
| "value": "Not enough Ether" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "1944:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1944:42:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1944:42:1" | |
| } | |
| ] | |
| }, | |
| "name": "store_literal_in_memory_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulTypedName", | |
| "src": "1925:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1827:166:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2042:79:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2099:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2108:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2111:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "2101:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2101:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2101:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "2065:5:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "2090:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "2072:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2072:24:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "eq", | |
| "nodeType": "YulIdentifier", | |
| "src": "2062:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2062:35:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "2055:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2055:43:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "2052:2:1" | |
| } | |
| ] | |
| }, | |
| "name": "validator_revert_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "2035:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1999:122:1" | |
| } | |
| ] | |
| }, | |
| "contents": "{\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_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_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n store_literal_in_memory_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e(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_tuple_t_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e__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_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e_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 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 cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function store_literal_in_memory_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e(memPtr) {\n\n mstore(add(memPtr, 0), \"Not enough Ether\")\n\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": "60806040526004361061001e5760003560e01c8063a0712d6814610023575b600080fd5b61003d600480360381019061003891906100bc565b610053565b60405161004a9190610137565b60405180910390f35b6000662386f26fc1000034101561009f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161009690610117565b60405180910390fd5b819050919050565b6000813590506100b681610196565b92915050565b6000602082840312156100ce57600080fd5b60006100dc848285016100a7565b91505092915050565b60006100f2601083610152565b91506100fd8261016d565b602082019050919050565b61011181610163565b82525050565b60006020820190508181036000830152610130816100e5565b9050919050565b600060208201905061014c6000830184610108565b92915050565b600082825260208201905092915050565b6000819050919050565b7f4e6f7420656e6f75676820457468657200000000000000000000000000000000600082015250565b61019f81610163565b81146101aa57600080fd5b5056fea26469706673582212201d4e36d2209fe36334e2b8b993c1561ae4e5be4b3fda573bab2a3382e6db39c464736f6c63430008040033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA0712D68 EQ PUSH2 0x23 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x38 SWAP2 SWAP1 PUSH2 0xBC JUMP JUMPDEST PUSH2 0x53 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4A SWAP2 SWAP1 PUSH2 0x137 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH7 0x2386F26FC10000 CALLVALUE LT ISZERO PUSH2 0x9F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x96 SWAP1 PUSH2 0x117 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB6 DUP2 PUSH2 0x196 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xDC DUP5 DUP3 DUP6 ADD PUSH2 0xA7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2 PUSH1 0x10 DUP4 PUSH2 0x152 JUMP JUMPDEST SWAP2 POP PUSH2 0xFD DUP3 PUSH2 0x16D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x111 DUP2 PUSH2 0x163 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 0x130 DUP2 PUSH2 0xE5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x108 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 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E6F7420656E6F75676820457468657200000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x19F DUP2 PUSH2 0x163 JUMP JUMPDEST DUP2 EQ PUSH2 0x1AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SAR 0x4E CALLDATASIZE 0xD2 KECCAK256 SWAP16 0xE3 PUSH4 0x34E2B8B9 SWAP4 0xC1 JUMP BYTE 0xE4 0xE5 0xBE 0x4B EXTCODEHASH 0xDA JUMPI EXTCODESIZE 0xAB 0x2A CALLER DUP3 0xE6 0xDB CODECOPY 0xC4 PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ", | |
| "sourceMap": "70:183:0:-:0;;;;;;;;;;;;;;;;;;;;;90:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;142:7;182:10;169:9;:23;;161:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;239:5;232:12;;90:161;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:262::-;211:6;260:2;248:9;239:7;235:23;231:32;228:2;;;276:1;273;266:12;228:2;319:1;344:53;389:7;380:6;369:9;365:22;344:53;:::i;:::-;334:63;;290:117;218:196;;;;:::o;420:366::-;562:3;583:67;647:2;642:3;583:67;:::i;:::-;576:74;;659:93;748:3;659:93;:::i;:::-;777:2;772:3;768:12;761:19;;566:220;;;:::o;792:118::-;879:24;897:5;879:24;:::i;:::-;874:3;867:37;857:53;;:::o;916:419::-;1082:4;1120:2;1109:9;1105:18;1097:26;;1169:9;1163:4;1159:20;1155:1;1144:9;1140:17;1133:47;1197:131;1323:4;1197:131;:::i;:::-;1189:139;;1087:248;;;:::o;1341:222::-;1434:4;1472:2;1461:9;1457:18;1449:26;;1485:71;1553:1;1542:9;1538:17;1529:6;1485:71;:::i;:::-;1439:124;;;;:::o;1569:169::-;1653:11;1687:6;1682:3;1675:19;1727:4;1722:3;1718:14;1703:29;;1665:73;;;;:::o;1744:77::-;1781:7;1810:5;1799:16;;1789:32;;;:::o;1827:166::-;1967:18;1963:1;1955:6;1951:14;1944:42;1933:60;:::o;1999:122::-;2072:24;2090:5;2072:24;:::i;:::-;2065:5;2062:35;2052:2;;2111:1;2108;2101:12;2052:2;2042:79;:::o" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "96600", | |
| "executionCost": "147", | |
| "totalCost": "96747" | |
| }, | |
| "external": { | |
| "mint(uint256)": "infinite" | |
| } | |
| }, | |
| "methodIdentifiers": { | |
| "mint(uint256)": "a0712d68" | |
| } | |
| }, | |
| "abi": [ | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "count", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "mint", | |
| "outputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| } | |
| ], | |
| "stateMutability": "payable", | |
| "type": "function" | |
| } | |
| ] | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // this line is added to create a gist. Empty file is not allowed. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "compiler": { | |
| "version": "0.8.4+commit.c7e474f2" | |
| }, | |
| "language": "Solidity", | |
| "output": { | |
| "abi": [ | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "count", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "mint", | |
| "outputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| } | |
| ], | |
| "stateMutability": "payable", | |
| "type": "function" | |
| } | |
| ], | |
| "devdoc": { | |
| "kind": "dev", | |
| "methods": {}, | |
| "version": 1 | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| }, | |
| "settings": { | |
| "compilationTarget": { | |
| "contracts/Test.sol": "Test" | |
| }, | |
| "evmVersion": "istanbul", | |
| "libraries": {}, | |
| "metadata": { | |
| "bytecodeHash": "ipfs" | |
| }, | |
| "optimizer": { | |
| "enabled": false, | |
| "runs": 200 | |
| }, | |
| "remappings": [] | |
| }, | |
| "sources": { | |
| "contracts/Test.sol": { | |
| "keccak256": "0xba3e0f8e04f1676e90a86240f041b5cd00197d2cdb62637c11f5a210139657a7", | |
| "license": "GPL-3.0", | |
| "urls": [ | |
| "bzz-raw://b4f58e9f37ac8f58c3675e57c7ad4a2de34862f6b42553e020a7c36691d46fac", | |
| "dweb:/ipfs/QmTzixFhRPTjwuAPUPYQDqvpKouc62AXcfZAzrtyK1DMdC" | |
| ] | |
| } | |
| }, | |
| "version": 1 | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| /* | |
| _______ _________ _______ _______ _______ | |
| ( ____ \\__ __/( ____ \( )( ___ ) | |
| | ( \/ ) ( | ( \/| () () || ( ) | | |
| | (_____ | | | | | || || || (___) | | |
| (_____ ) | | | | ____ | |(_)| || ___ | | |
| ) | | | | | \_ )| | | || ( ) | | |
| /\____) |___) (___| (___) || ) ( || ) ( | | |
| \_______)\_______/(_______)|/ \||/ \| | |
| */ | |
| pragma solidity ^0.8.0; | |
| import "@openzeppelin/contracts/access/Ownable.sol"; | |
| import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol"; | |
| import "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol"; | |
| import "./@rarible/royalties/contracts/impl/RoyaltiesV2Impl.sol"; | |
| import "./@rarible/royalties/contracts/LibPart.sol"; | |
| import "./@rarible/royalties/contracts/LibRoyaltiesV2.sol"; | |
| contract sigma is ERC1155Supply, Ownable, RoyaltiesV2Impl { | |
| bool public saleIsActive = false; | |
| uint constant TOKEN_ID = 8; | |
| uint constant NUM_RESERVED_TOKENS = 88; | |
| uint constant MAX_TOKENS_PER_PURCHASE = 8; | |
| uint constant MAX_TOKENS = 888; | |
| uint constant TOKEN_PRICE = 0.0888 ether; | |
| bytes4 private constant _INTERFACE_ID_ERC2981 = 0x2a55205a; | |
| event Minted(uint256 _totalSupply); | |
| constructor(string memory uri) ERC1155(uri) { | |
| } | |
| function reserve() public onlyOwner { | |
| _mint(msg.sender, TOKEN_ID, NUM_RESERVED_TOKENS, ""); | |
| } | |
| function setSaleState(bool newState) public onlyOwner { | |
| saleIsActive = newState; | |
| } | |
| function mint(uint numberOfTokens) external payable { | |
| require(saleIsActive, "Sale must be active to mint Tokens"); | |
| require(numberOfTokens <= MAX_TOKENS_PER_PURCHASE, "Exceeded max token purchase"); | |
| require(totalSupply(TOKEN_ID) + numberOfTokens <= MAX_TOKENS, "Purchase would exceed max supply of tokens"); | |
| require(TOKEN_PRICE * numberOfTokens <= msg.value, "Ether value sent is not correct"); | |
| _mint(msg.sender, TOKEN_ID, numberOfTokens, ""); | |
| emit Minted(totalSupply(TOKEN_ID)); | |
| } | |
| function burn(address account, uint256 id, uint256 amount) public { | |
| require(msg.sender == account); | |
| _burn(account, id, amount); | |
| } | |
| function withdraw() public onlyOwner { | |
| uint balance = address(this).balance; | |
| payable(msg.sender).transfer(balance); | |
| } | |
| function setRoyalties(uint _tokenId, address payable _royaltiesReceipientAddress, uint96 _percentageBasisPoints) public onlyOwner { | |
| LibPart.Part[] memory _royalties = new LibPart.Part[](1); | |
| _royalties[0].value = _percentageBasisPoints; | |
| _royalties[0].account = _royaltiesReceipientAddress; | |
| _saveRoyalties(_tokenId, _royalties); | |
| } | |
| function royaltyInfo(uint256 _tokenId, uint256 _salePrice) external view returns (address receiver, uint256 royaltyAmount) { | |
| LibPart.Part[] memory _royalties = royalties[_tokenId]; | |
| if (_royalties.length > 0) { | |
| return (_royalties[0].account, (_salePrice * _royalties[0].value)/10000); | |
| } | |
| return (address(0), 0); | |
| } | |
| function supportsInterface(bytes4 interfaceId) public view virtual override(ERC1155) returns (bool) { | |
| if (interfaceId == LibRoyaltiesV2._INTERFACE_ID_ROYALTIES) { | |
| return true; | |
| } | |
| if (interfaceId == _INTERFACE_ID_ERC2981) { | |
| return true; | |
| } | |
| return super.supportsInterface(interfaceId); | |
| } | |
| } |
This file has been truncated, but you can view the full file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "deploy": { | |
| "VM:-": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "main:1": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "ropsten:3": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "rinkeby:4": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "kovan:42": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "gรถrli:5": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "Custom": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| } | |
| }, | |
| "data": { | |
| "bytecode": { | |
| "functionDebugData": { | |
| "@_148": { | |
| "entryPoint": null, | |
| "id": 148, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "@_2185": { | |
| "entryPoint": null, | |
| "id": 2185, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "@_23": { | |
| "entryPoint": null, | |
| "id": 23, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "@_msgSender_1859": { | |
| "entryPoint": 168, | |
| "id": 1859, | |
| "parameterSlots": 0, | |
| "returnSlots": 1 | |
| }, | |
| "@_setOwner_102": { | |
| "entryPoint": 176, | |
| "id": 102, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "@_setURI_644": { | |
| "entryPoint": 140, | |
| "id": 644, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "abi_decode_available_length_t_string_memory_ptr_fromMemory": { | |
| "entryPoint": 550, | |
| "id": null, | |
| "parameterSlots": 3, | |
| "returnSlots": 1 | |
| }, | |
| "abi_decode_t_string_memory_ptr_fromMemory": { | |
| "entryPoint": 625, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_decode_tuple_t_string_memory_ptr_fromMemory": { | |
| "entryPoint": 676, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "allocate_memory": { | |
| "entryPoint": 757, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "allocate_unbounded": { | |
| "entryPoint": 788, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 1 | |
| }, | |
| "array_allocation_size_t_string_memory_ptr": { | |
| "entryPoint": 798, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "copy_memory_to_memory": { | |
| "entryPoint": 852, | |
| "id": null, | |
| "parameterSlots": 3, | |
| "returnSlots": 0 | |
| }, | |
| "extract_byte_array_length": { | |
| "entryPoint": 906, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "finalize_allocation": { | |
| "entryPoint": 960, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "panic_error_0x22": { | |
| "entryPoint": 1014, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "panic_error_0x41": { | |
| "entryPoint": 1061, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { | |
| "entryPoint": 1108, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { | |
| "entryPoint": 1113, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { | |
| "entryPoint": 1118, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { | |
| "entryPoint": 1123, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "round_up_to_mul_of_32": { | |
| "entryPoint": 1128, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| } | |
| }, | |
| "generatedSources": [ | |
| { | |
| "ast": { | |
| "nodeType": "YulBlock", | |
| "src": "0:3764:16", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "102:326:16", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "112:75:16", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "179:6:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_allocation_size_t_string_memory_ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "137:41:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "137:49:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "allocate_memory", | |
| "nodeType": "YulIdentifier", | |
| "src": "121:15:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "121:66:16" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "array", | |
| "nodeType": "YulIdentifier", | |
| "src": "112:5:16" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "array", | |
| "nodeType": "YulIdentifier", | |
| "src": "203:5:16" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "210:6:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "196:6:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "196:21:16" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "196:21:16" | |
| }, | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "226:27:16", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "array", | |
| "nodeType": "YulIdentifier", | |
| "src": "241:5:16" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "248:4:16", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "237:3:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "237:16:16" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "dst", | |
| "nodeType": "YulTypedName", | |
| "src": "230:3:16", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "291:83:16", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", | |
| "nodeType": "YulIdentifier", | |
| "src": "293:77:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "293:79:16" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "293:79:16" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "src", | |
| "nodeType": "YulIdentifier", | |
| "src": "272:3:16" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "277:6:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "268:3:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "268:16:16" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "286:3:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "265:2:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "265:25:16" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "262:112:16" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "src", | |
| "nodeType": "YulIdentifier", | |
| "src": "405:3:16" | |
| }, | |
| { | |
| "name": "dst", | |
| "nodeType": "YulIdentifier", | |
| "src": "410:3:16" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "415:6:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "copy_memory_to_memory", | |
| "nodeType": "YulIdentifier", | |
| "src": "383:21:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "383:39:16" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "383:39:16" | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "src", | |
| "nodeType": "YulTypedName", | |
| "src": "75:3:16", | |
| "type": "" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "80:6:16", | |
| "type": "" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "88:3:16", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "array", | |
| "nodeType": "YulTypedName", | |
| "src": "96:5:16", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7:421:16" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "521:282:16", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "570:83:16", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", | |
| "nodeType": "YulIdentifier", | |
| "src": "572:77:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "572:79:16" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "572:79:16" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "549:6:16" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "557:4:16", | |
| "type": "", | |
| "value": "0x1f" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "545:3:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "545:17:16" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "564:3:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "541:3:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "541:27:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "534:6:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "534:35:16" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "531:122:16" | |
| }, | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "662:27:16", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "682:6:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "676:5:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "676:13:16" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "666:6:16", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "698:99:16", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "770:6:16" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "778:4:16", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "766:3:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "766:17:16" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "785:6:16" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "793:3:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", | |
| "nodeType": "YulIdentifier", | |
| "src": "707:58:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "707:90:16" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "array", | |
| "nodeType": "YulIdentifier", | |
| "src": "698:5:16" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_t_string_memory_ptr_fromMemory", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "499:6:16", | |
| "type": "" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "507:3:16", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "array", | |
| "nodeType": "YulTypedName", | |
| "src": "515:5:16", | |
| "type": "" | |
| } | |
| ], | |
| "src": "448:355:16" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "896:437:16", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "942:83:16", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", | |
| "nodeType": "YulIdentifier", | |
| "src": "944:77:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "944:79:16" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "944:79:16" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "917:7:16" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "926:9:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "913:3:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "913:23:16" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "938:2:16", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "909:3:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "909:32:16" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "906:119:16" | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "1035:291:16", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "1050:38:16", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "1074:9:16" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1085:1:16", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1070:3:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1070:17:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "1064:5:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1064:24:16" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "1054:6:16", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1135:83:16", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", | |
| "nodeType": "YulIdentifier", | |
| "src": "1137:77:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1137:79:16" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1137:79:16" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "1107:6:16" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1115:18:16", | |
| "type": "", | |
| "value": "0xffffffffffffffff" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "1104:2:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1104:30:16" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "1101:117:16" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1232:84:16", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "1288:9:16" | |
| }, | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "1299:6:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1284:3:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1284:22:16" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "1308:7:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_string_memory_ptr_fromMemory", | |
| "nodeType": "YulIdentifier", | |
| "src": "1242:41:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1242:74:16" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "1232:6:16" | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_tuple_t_string_memory_ptr_fromMemory", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "866:9:16", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulTypedName", | |
| "src": "877:7:16", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "889:6:16", | |
| "type": "" | |
| } | |
| ], | |
| "src": "809:524:16" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1380:88:16", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1390:30:16", | |
| "value": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "allocate_unbounded", | |
| "nodeType": "YulIdentifier", | |
| "src": "1400:18:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1400:20:16" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "1390:6:16" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "1449:6:16" | |
| }, | |
| { | |
| "name": "size", | |
| "nodeType": "YulIdentifier", | |
| "src": "1457:4:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "finalize_allocation", | |
| "nodeType": "YulIdentifier", | |
| "src": "1429:19:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1429:33:16" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1429:33:16" | |
| } | |
| ] | |
| }, | |
| "name": "allocate_memory", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "size", | |
| "nodeType": "YulTypedName", | |
| "src": "1364:4:16", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulTypedName", | |
| "src": "1373:6:16", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1339:129:16" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1514:35:16", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1524:19:16", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1540:2:16", | |
| "type": "", | |
| "value": "64" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "1534:5:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1534:9:16" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "1524:6:16" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "allocate_unbounded", | |
| "nodeType": "YulFunctionDefinition", | |
| "returnVariables": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulTypedName", | |
| "src": "1507:6:16", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1474:75:16" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1622:241:16", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1727:22:16", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x41", | |
| "nodeType": "YulIdentifier", | |
| "src": "1729:16:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1729:18:16" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1729:18:16" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "1699:6:16" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1707:18:16", | |
| "type": "", | |
| "value": "0xffffffffffffffff" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "1696:2:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1696:30:16" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "1693:56:16" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1759:37:16", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "1789:6:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "round_up_to_mul_of_32", | |
| "nodeType": "YulIdentifier", | |
| "src": "1767:21:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1767:29:16" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "size", | |
| "nodeType": "YulIdentifier", | |
| "src": "1759:4:16" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1833:23:16", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "size", | |
| "nodeType": "YulIdentifier", | |
| "src": "1845:4:16" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1851:4:16", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1841:3:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1841:15:16" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "size", | |
| "nodeType": "YulIdentifier", | |
| "src": "1833:4:16" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_allocation_size_t_string_memory_ptr", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "1606:6:16", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "size", | |
| "nodeType": "YulTypedName", | |
| "src": "1617:4:16", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1555:308:16" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1918:258:16", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "1928:10:16", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1937:1:16", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulTypedName", | |
| "src": "1932:1:16", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1997:63:16", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dst", | |
| "nodeType": "YulIdentifier", | |
| "src": "2022:3:16" | |
| }, | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "2027:1:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "2018:3:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2018:11:16" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "src", | |
| "nodeType": "YulIdentifier", | |
| "src": "2041:3:16" | |
| }, | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "2046:1:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "2037:3:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2037:11:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "2031:5:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2031:18:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "2011:6:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2011:39:16" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2011:39:16" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "1958:1:16" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "1961:6:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "lt", | |
| "nodeType": "YulIdentifier", | |
| "src": "1955:2:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1955:13:16" | |
| }, | |
| "nodeType": "YulForLoop", | |
| "post": { | |
| "nodeType": "YulBlock", | |
| "src": "1969:19:16", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1971:15:16", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "1980:1:16" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1983:2:16", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1976:3:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1976:10:16" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "1971:1:16" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "pre": { | |
| "nodeType": "YulBlock", | |
| "src": "1951:3:16", | |
| "statements": [] | |
| }, | |
| "src": "1947:113:16" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2094:76:16", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dst", | |
| "nodeType": "YulIdentifier", | |
| "src": "2144:3:16" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "2149:6:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "2140:3:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2140:16:16" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2158:1:16", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "2133:6:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2133:27:16" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2133:27:16" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "2075:1:16" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "2078:6:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "2072:2:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2072:13:16" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "2069:101:16" | |
| } | |
| ] | |
| }, | |
| "name": "copy_memory_to_memory", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "src", | |
| "nodeType": "YulTypedName", | |
| "src": "1900:3:16", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dst", | |
| "nodeType": "YulTypedName", | |
| "src": "1905:3:16", | |
| "type": "" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "1910:6:16", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1869:307:16" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2233:269:16", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2243:22:16", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "data", | |
| "nodeType": "YulIdentifier", | |
| "src": "2257:4:16" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2263:1:16", | |
| "type": "", | |
| "value": "2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "div", | |
| "nodeType": "YulIdentifier", | |
| "src": "2253:3:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2253:12:16" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "2243:6:16" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "2274:38:16", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "data", | |
| "nodeType": "YulIdentifier", | |
| "src": "2304:4:16" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2310:1:16", | |
| "type": "", | |
| "value": "1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "2300:3:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2300:12:16" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "outOfPlaceEncoding", | |
| "nodeType": "YulTypedName", | |
| "src": "2278:18:16", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2351:51:16", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2365:27:16", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "2379:6:16" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2387:4:16", | |
| "type": "", | |
| "value": "0x7f" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "2375:3:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2375:17:16" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "2365:6:16" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "outOfPlaceEncoding", | |
| "nodeType": "YulIdentifier", | |
| "src": "2331:18:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "2324:6:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2324:26:16" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "2321:81:16" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2454:42:16", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x22", | |
| "nodeType": "YulIdentifier", | |
| "src": "2468:16:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2468:18:16" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2468:18:16" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "outOfPlaceEncoding", | |
| "nodeType": "YulIdentifier", | |
| "src": "2418:18:16" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "2441:6:16" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2449:2:16", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "lt", | |
| "nodeType": "YulIdentifier", | |
| "src": "2438:2:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2438:14:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "eq", | |
| "nodeType": "YulIdentifier", | |
| "src": "2415:2:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2415:38:16" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "2412:84:16" | |
| } | |
| ] | |
| }, | |
| "name": "extract_byte_array_length", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "data", | |
| "nodeType": "YulTypedName", | |
| "src": "2217:4:16", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "2226:6:16", | |
| "type": "" | |
| } | |
| ], | |
| "src": "2182:320:16" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2551:238:16", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "2561:58:16", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "2583:6:16" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "size", | |
| "nodeType": "YulIdentifier", | |
| "src": "2613:4:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "round_up_to_mul_of_32", | |
| "nodeType": "YulIdentifier", | |
| "src": "2591:21:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2591:27:16" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "2579:3:16" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2579:40:16" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "newFreePtr", | |
| "nodeType": "YulTypedName", | |
| "src": "2565:10:16", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2730:22:16", | |
| "statements": [ | |
| { | |