Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iam-peekay/b032824b731cf54431d1aca508e4aa50 to your computer and use it in GitHub Desktop.
Save iam-peekay/b032824b731cf54431d1aca508e4aa50 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.13+commit.abaa5c0e.js&optimize=true&runs=200&gist=
// SPDX-License-Identifier: MIT
pragma solidity >= 0.4.22 <0.9.0;
library console {
address constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67);
function _sendLogPayload(bytes memory payload) private view {
uint256 payloadLength = payload.length;
address consoleAddress = CONSOLE_ADDRESS;
assembly {
let payloadStart := add(payload, 32)
let r := staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0)
}
}
function log() internal view {
_sendLogPayload(abi.encodeWithSignature("log()"));
}
function logInt(int p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(int)", p0));
}
function logUint(uint p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint)", p0));
}
function logString(string memory p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string)", p0));
}
function logBool(bool p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool)", p0));
}
function logAddress(address p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address)", p0));
}
function logBytes(bytes memory p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes)", p0));
}
function logBytes1(bytes1 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes1)", p0));
}
function logBytes2(bytes2 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes2)", p0));
}
function logBytes3(bytes3 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes3)", p0));
}
function logBytes4(bytes4 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes4)", p0));
}
function logBytes5(bytes5 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes5)", p0));
}
function logBytes6(bytes6 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes6)", p0));
}
function logBytes7(bytes7 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes7)", p0));
}
function logBytes8(bytes8 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes8)", p0));
}
function logBytes9(bytes9 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes9)", p0));
}
function logBytes10(bytes10 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes10)", p0));
}
function logBytes11(bytes11 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes11)", p0));
}
function logBytes12(bytes12 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes12)", p0));
}
function logBytes13(bytes13 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes13)", p0));
}
function logBytes14(bytes14 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes14)", p0));
}
function logBytes15(bytes15 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes15)", p0));
}
function logBytes16(bytes16 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes16)", p0));
}
function logBytes17(bytes17 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes17)", p0));
}
function logBytes18(bytes18 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes18)", p0));
}
function logBytes19(bytes19 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes19)", p0));
}
function logBytes20(bytes20 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes20)", p0));
}
function logBytes21(bytes21 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes21)", p0));
}
function logBytes22(bytes22 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes22)", p0));
}
function logBytes23(bytes23 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes23)", p0));
}
function logBytes24(bytes24 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes24)", p0));
}
function logBytes25(bytes25 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes25)", p0));
}
function logBytes26(bytes26 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes26)", p0));
}
function logBytes27(bytes27 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes27)", p0));
}
function logBytes28(bytes28 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes28)", p0));
}
function logBytes29(bytes29 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes29)", p0));
}
function logBytes30(bytes30 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes30)", p0));
}
function logBytes31(bytes31 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes31)", p0));
}
function logBytes32(bytes32 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes32)", p0));
}
function log(uint p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint)", p0));
}
function log(string memory p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string)", p0));
}
function log(bool p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool)", p0));
}
function log(address p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address)", p0));
}
function log(uint p0, uint p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint)", p0, p1));
}
function log(uint p0, string memory p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string)", p0, p1));
}
function log(uint p0, bool p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool)", p0, p1));
}
function log(uint p0, address p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address)", p0, p1));
}
function log(string memory p0, uint p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint)", p0, p1));
}
function log(string memory p0, string memory p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string)", p0, p1));
}
function log(string memory p0, bool p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool)", p0, p1));
}
function log(string memory p0, address p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address)", p0, p1));
}
function log(bool p0, uint p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint)", p0, p1));
}
function log(bool p0, string memory p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string)", p0, p1));
}
function log(bool p0, bool p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool)", p0, p1));
}
function log(bool p0, address p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address)", p0, p1));
}
function log(address p0, uint p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint)", p0, p1));
}
function log(address p0, string memory p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string)", p0, p1));
}
function log(address p0, bool p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool)", p0, p1));
}
function log(address p0, address p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address)", p0, p1));
}
function log(uint p0, uint p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint)", p0, p1, p2));
}
function log(uint p0, uint p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string)", p0, p1, p2));
}
function log(uint p0, uint p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool)", p0, p1, p2));
}
function log(uint p0, uint p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address)", p0, p1, p2));
}
function log(uint p0, string memory p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint)", p0, p1, p2));
}
function log(uint p0, string memory p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,string)", p0, p1, p2));
}
function log(uint p0, string memory p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool)", p0, p1, p2));
}
function log(uint p0, string memory p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,address)", p0, p1, p2));
}
function log(uint p0, bool p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint)", p0, p1, p2));
}
function log(uint p0, bool p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string)", p0, p1, p2));
}
function log(uint p0, bool p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool)", p0, p1, p2));
}
function log(uint p0, bool p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address)", p0, p1, p2));
}
function log(uint p0, address p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint)", p0, p1, p2));
}
function log(uint p0, address p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,string)", p0, p1, p2));
}
function log(uint p0, address p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool)", p0, p1, p2));
}
function log(uint p0, address p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,address)", p0, p1, p2));
}
function log(string memory p0, uint p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint)", p0, p1, p2));
}
function log(string memory p0, uint p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,string)", p0, p1, p2));
}
function log(string memory p0, uint p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool)", p0, p1, p2));
}
function log(string memory p0, uint p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,address)", p0, p1, p2));
}
function log(string memory p0, string memory p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint)", p0, p1, p2));
}
function log(string memory p0, string memory p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string)", p0, p1, p2));
}
function log(string memory p0, string memory p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool)", p0, p1, p2));
}
function log(string memory p0, string memory p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address)", p0, p1, p2));
}
function log(string memory p0, bool p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint)", p0, p1, p2));
}
function log(string memory p0, bool p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string)", p0, p1, p2));
}
function log(string memory p0, bool p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool)", p0, p1, p2));
}
function log(string memory p0, bool p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address)", p0, p1, p2));
}
function log(string memory p0, address p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint)", p0, p1, p2));
}
function log(string memory p0, address p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string)", p0, p1, p2));
}
function log(string memory p0, address p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool)", p0, p1, p2));
}
function log(string memory p0, address p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address)", p0, p1, p2));
}
function log(bool p0, uint p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint)", p0, p1, p2));
}
function log(bool p0, uint p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string)", p0, p1, p2));
}
function log(bool p0, uint p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool)", p0, p1, p2));
}
function log(bool p0, uint p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address)", p0, p1, p2));
}
function log(bool p0, string memory p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint)", p0, p1, p2));
}
function log(bool p0, string memory p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string)", p0, p1, p2));
}
function log(bool p0, string memory p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool)", p0, p1, p2));
}
function log(bool p0, string memory p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address)", p0, p1, p2));
}
function log(bool p0, bool p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint)", p0, p1, p2));
}
function log(bool p0, bool p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string)", p0, p1, p2));
}
function log(bool p0, bool p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool)", p0, p1, p2));
}
function log(bool p0, bool p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address)", p0, p1, p2));
}
function log(bool p0, address p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint)", p0, p1, p2));
}
function log(bool p0, address p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string)", p0, p1, p2));
}
function log(bool p0, address p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool)", p0, p1, p2));
}
function log(bool p0, address p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address)", p0, p1, p2));
}
function log(address p0, uint p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint)", p0, p1, p2));
}
function log(address p0, uint p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,string)", p0, p1, p2));
}
function log(address p0, uint p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool)", p0, p1, p2));
}
function log(address p0, uint p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,address)", p0, p1, p2));
}
function log(address p0, string memory p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint)", p0, p1, p2));
}
function log(address p0, string memory p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string)", p0, p1, p2));
}
function log(address p0, string memory p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool)", p0, p1, p2));
}
function log(address p0, string memory p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address)", p0, p1, p2));
}
function log(address p0, bool p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint)", p0, p1, p2));
}
function log(address p0, bool p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string)", p0, p1, p2));
}
function log(address p0, bool p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool)", p0, p1, p2));
}
function log(address p0, bool p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address)", p0, p1, p2));
}
function log(address p0, address p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint)", p0, p1, p2));
}
function log(address p0, address p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string)", p0, p1, p2));
}
function log(address p0, address p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool)", p0, p1, p2));
}
function log(address p0, address p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address)", p0, p1, p2));
}
function log(uint p0, uint p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,uint)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,string)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,bool)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,address)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,uint)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,string)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,bool)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,address)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,uint)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,string)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,bool)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,address)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,uint)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,string)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,bool)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,address)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,uint)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,string)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,bool)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,address)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,uint)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,string)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,bool)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,address)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,uint)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,string)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,bool)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,address)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,uint)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,string)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,bool)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,address)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,uint)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,string)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,bool)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,address)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,uint)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,string)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,bool)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,address)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,uint)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,string)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,bool)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,address)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,uint)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,string)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,bool)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,address)", p0, p1, p2, p3));
}
function log(uint p0, address p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,uint)", p0, p1, p2, p3));
}
function log(uint p0, address p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,string)", p0, p1, p2, p3));
}
function log(uint p0, address p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,bool)", p0, p1, p2, p3));
}
function log(uint p0, address p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,address)", p0, p1, p2, p3));
}
function log(uint p0, address p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,uint)", p0, p1, p2, p3));
}
function log(uint p0, address p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,string)", p0, p1, p2, p3));
}
function log(uint p0, address p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,bool)", p0, p1, p2, p3));
}
function log(uint p0, address p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,address)", p0, p1, p2, p3));
}
function log(uint p0, address p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,uint)", p0, p1, p2, p3));
}
function log(uint p0, address p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,string)", p0, p1, p2, p3));
}
function log(uint p0, address p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,bool)", p0, p1, p2, p3));
}
function log(uint p0, address p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,address)", p0, p1, p2, p3));
}
function log(uint p0, address p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,uint)", p0, p1, p2, p3));
}
function log(uint p0, address p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,string)", p0, p1, p2, p3));
}
function log(uint p0, address p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,bool)", p0, p1, p2, p3));
}
function log(uint p0, address p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,address)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,uint)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,string)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,bool)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,address)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,uint)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,string)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,bool)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,address)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,uint)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,string)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,bool)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,address)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,uint)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,string)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,bool)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,address)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,uint)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,string)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,bool)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,address)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string,uint)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string,string)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string,bool)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string,address)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,uint)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,string)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,bool)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,address)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address,uint)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address,string)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address,bool)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address,address)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,uint)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,string)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,bool)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,address)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,uint)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,string)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,bool)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,address)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,uint)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,string)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,bool)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,address)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,uint)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,string)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,bool)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,address)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,uint)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,string)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,bool)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,address)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string,uint)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string,string)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string,bool)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string,address)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,uint)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,string)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,bool)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,address)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address,uint)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address,string)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address,bool)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address,address)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,uint)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,string)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,bool)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,address)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,uint)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,string)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,bool)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,address)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,uint)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,string)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,bool)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,address)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,uint)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,string)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,bool)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,address)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,uint)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,string)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,bool)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,address)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,uint)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,string)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,bool)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,address)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,uint)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,string)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,bool)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,address)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,uint)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,string)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,bool)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,address)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,uint)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,string)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,bool)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,address)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,uint)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,string)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,bool)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,address)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,uint)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,string)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,bool)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,address)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,uint)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,string)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,bool)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,address)", p0, p1, p2, p3));
}
function log(bool p0, address p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,uint)", p0, p1, p2, p3));
}
function log(bool p0, address p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,string)", p0, p1, p2, p3));
}
function log(bool p0, address p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,bool)", p0, p1, p2, p3));
}
function log(bool p0, address p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,address)", p0, p1, p2, p3));
}
function log(bool p0, address p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,uint)", p0, p1, p2, p3));
}
function log(bool p0, address p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,string)", p0, p1, p2, p3));
}
function log(bool p0, address p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,bool)", p0, p1, p2, p3));
}
function log(bool p0, address p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,address)", p0, p1, p2, p3));
}
function log(bool p0, address p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,uint)", p0, p1, p2, p3));
}
function log(bool p0, address p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,string)", p0, p1, p2, p3));
}
function log(bool p0, address p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,bool)", p0, p1, p2, p3));
}
function log(bool p0, address p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,address)", p0, p1, p2, p3));
}
function log(bool p0, address p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,uint)", p0, p1, p2, p3));
}
function log(bool p0, address p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,string)", p0, p1, p2, p3));
}
function log(bool p0, address p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,bool)", p0, p1, p2, p3));
}
function log(bool p0, address p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,address)", p0, p1, p2, p3));
}
function log(address p0, uint p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,uint)", p0, p1, p2, p3));
}
function log(address p0, uint p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,string)", p0, p1, p2, p3));
}
function log(address p0, uint p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,bool)", p0, p1, p2, p3));
}
function log(address p0, uint p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,address)", p0, p1, p2, p3));
}
function log(address p0, uint p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,uint)", p0, p1, p2, p3));
}
function log(address p0, uint p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,string)", p0, p1, p2, p3));
}
function log(address p0, uint p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,bool)", p0, p1, p2, p3));
}
function log(address p0, uint p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,address)", p0, p1, p2, p3));
}
function log(address p0, uint p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,uint)", p0, p1, p2, p3));
}
function log(address p0, uint p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,string)", p0, p1, p2, p3));
}
function log(address p0, uint p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,bool)", p0, p1, p2, p3));
}
function log(address p0, uint p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,address)", p0, p1, p2, p3));
}
function log(address p0, uint p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,uint)", p0, p1, p2, p3));
}
function log(address p0, uint p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,string)", p0, p1, p2, p3));
}
function log(address p0, uint p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,bool)", p0, p1, p2, p3));
}
function log(address p0, uint p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,address)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,uint)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,string)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,bool)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,address)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string,uint)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string,string)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string,bool)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string,address)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,uint)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,string)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,bool)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,address)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address,uint)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address,string)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address,bool)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address,address)", p0, p1, p2, p3));
}
function log(address p0, bool p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,uint)", p0, p1, p2, p3));
}
function log(address p0, bool p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,string)", p0, p1, p2, p3));
}
function log(address p0, bool p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,bool)", p0, p1, p2, p3));
}
function log(address p0, bool p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,address)", p0, p1, p2, p3));
}
function log(address p0, bool p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,uint)", p0, p1, p2, p3));
}
function log(address p0, bool p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,string)", p0, p1, p2, p3));
}
function log(address p0, bool p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,bool)", p0, p1, p2, p3));
}
function log(address p0, bool p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,address)", p0, p1, p2, p3));
}
function log(address p0, bool p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,uint)", p0, p1, p2, p3));
}
function log(address p0, bool p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,string)", p0, p1, p2, p3));
}
function log(address p0, bool p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,bool)", p0, p1, p2, p3));
}
function log(address p0, bool p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,address)", p0, p1, p2, p3));
}
function log(address p0, bool p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,uint)", p0, p1, p2, p3));
}
function log(address p0, bool p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,string)", p0, p1, p2, p3));
}
function log(address p0, bool p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,bool)", p0, p1, p2, p3));
}
function log(address p0, bool p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,address)", p0, p1, p2, p3));
}
function log(address p0, address p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,uint)", p0, p1, p2, p3));
}
function log(address p0, address p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,string)", p0, p1, p2, p3));
}
function log(address p0, address p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,bool)", p0, p1, p2, p3));
}
function log(address p0, address p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,address)", p0, p1, p2, p3));
}
function log(address p0, address p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string,uint)", p0, p1, p2, p3));
}
function log(address p0, address p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string,string)", p0, p1, p2, p3));
}
function log(address p0, address p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string,bool)", p0, p1, p2, p3));
}
function log(address p0, address p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string,address)", p0, p1, p2, p3));
}
function log(address p0, address p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,uint)", p0, p1, p2, p3));
}
function log(address p0, address p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,string)", p0, p1, p2, p3));
}
function log(address p0, address p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,bool)", p0, p1, p2, p3));
}
function log(address p0, address p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,address)", p0, p1, p2, p3));
}
function log(address p0, address p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address,uint)", p0, p1, p2, p3));
}
function log(address p0, address p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address,string)", p0, p1, p2, p3));
}
function log(address p0, address p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address,bool)", p0, p1, p2, p3));
}
function log(address p0, address p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address,address)", p0, p1, p2, p3));
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.22 <0.9.0;
library TestsAccounts {
function getAccount(uint index) pure public returns (address) {
address[15] memory accounts;
accounts[0] = 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4;
accounts[1] = 0xAb8483F64d9C6d1EcF9b849Ae677dD3315835cb2;
accounts[2] = 0x4B20993Bc481177ec7E8f571ceCaE8A9e22C02db;
accounts[3] = 0x78731D3Ca6b7E34aC0F824c42a7cC18A495cabaB;
accounts[4] = 0x617F2E2fD72FD9D5503197092aC168c91465E7f2;
accounts[5] = 0x17F6AD8Ef982297579C203069C1DbfFE4348c372;
accounts[6] = 0x5c6B0f7Bf3E7ce046039Bd8FABdfD3f9F5021678;
accounts[7] = 0x03C6FcED478cBbC9a4FAB34eF9f40767739D1Ff7;
accounts[8] = 0x1aE0EA34a72D944a8C7603FfB3eC30a6669E454C;
accounts[9] = 0x0A098Eda01Ce92ff4A4CCb7A4fFFb5A43EBC70DC;
accounts[10] = 0xCA35b7d915458EF540aDe6068dFe2F44E8fa733c;
accounts[11] = 0x14723A09ACff6D2A60DcdF7aA4AFf308FDDC160C;
accounts[12] = 0x4B0897b0513fdC7C541B6d9D7E929C4e5364D2dB;
accounts[13] = 0x583031D1113aD414F02576BD6afaBfb302140225;
accounts[14] = 0xdD870fA1b7C4700F2BD7f44238821C26f7392148;
return accounts[index];
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.22 <0.9.0;
library Assert {
event AssertionEvent(
bool passed,
string message,
string methodName
);
event AssertionEventUint(
bool passed,
string message,
string methodName,
uint256 returned,
uint256 expected
);
event AssertionEventInt(
bool passed,
string message,
string methodName,
int256 returned,
int256 expected
);
event AssertionEventBool(
bool passed,
string message,
string methodName,
bool returned,
bool expected
);
event AssertionEventAddress(
bool passed,
string message,
string methodName,
address returned,
address expected
);
event AssertionEventBytes32(
bool passed,
string message,
string methodName,
bytes32 returned,
bytes32 expected
);
event AssertionEventString(
bool passed,
string message,
string methodName,
string returned,
string expected
);
event AssertionEventUintInt(
bool passed,
string message,
string methodName,
uint256 returned,
int256 expected
);
event AssertionEventIntUint(
bool passed,
string message,
string methodName,
int256 returned,
uint256 expected
);
function ok(bool a, string memory message) public returns (bool result) {
result = a;
emit AssertionEvent(result, message, "ok");
}
function equal(uint256 a, uint256 b, string memory message) public returns (bool result) {
result = (a == b);
emit AssertionEventUint(result, message, "equal", a, b);
}
function equal(int256 a, int256 b, string memory message) public returns (bool result) {
result = (a == b);
emit AssertionEventInt(result, message, "equal", a, b);
}
function equal(bool a, bool b, string memory message) public returns (bool result) {
result = (a == b);
emit AssertionEventBool(result, message, "equal", a, b);
}
// TODO: only for certain versions of solc
//function equal(fixed a, fixed b, string message) public returns (bool result) {
// result = (a == b);
// emit AssertionEvent(result, message);
//}
// TODO: only for certain versions of solc
//function equal(ufixed a, ufixed b, string message) public returns (bool result) {
// result = (a == b);
// emit AssertionEvent(result, message);
//}
function equal(address a, address b, string memory message) public returns (bool result) {
result = (a == b);
emit AssertionEventAddress(result, message, "equal", a, b);
}
function equal(bytes32 a, bytes32 b, string memory message) public returns (bool result) {
result = (a == b);
emit AssertionEventBytes32(result, message, "equal", a, b);
}
function equal(string memory a, string memory b, string memory message) public returns (bool result) {
result = (keccak256(abi.encodePacked(a)) == keccak256(abi.encodePacked(b)));
emit AssertionEventString(result, message, "equal", a, b);
}
function notEqual(uint256 a, uint256 b, string memory message) public returns (bool result) {
result = (a != b);
emit AssertionEventUint(result, message, "notEqual", a, b);
}
function notEqual(int256 a, int256 b, string memory message) public returns (bool result) {
result = (a != b);
emit AssertionEventInt(result, message, "notEqual", a, b);
}
function notEqual(bool a, bool b, string memory message) public returns (bool result) {
result = (a != b);
emit AssertionEventBool(result, message, "notEqual", a, b);
}
// TODO: only for certain versions of solc
//function notEqual(fixed a, fixed b, string message) public returns (bool result) {
// result = (a != b);
// emit AssertionEvent(result, message);
//}
// TODO: only for certain versions of solc
//function notEqual(ufixed a, ufixed b, string message) public returns (bool result) {
// result = (a != b);
// emit AssertionEvent(result, message);
//}
function notEqual(address a, address b, string memory message) public returns (bool result) {
result = (a != b);
emit AssertionEventAddress(result, message, "notEqual", a, b);
}
function notEqual(bytes32 a, bytes32 b, string memory message) public returns (bool result) {
result = (a != b);
emit AssertionEventBytes32(result, message, "notEqual", a, b);
}
function notEqual(string memory a, string memory b, string memory message) public returns (bool result) {
result = (keccak256(abi.encodePacked(a)) != keccak256(abi.encodePacked(b)));
emit AssertionEventString(result, message, "notEqual", a, b);
}
/*----------------- Greater than --------------------*/
function greaterThan(uint256 a, uint256 b, string memory message) public returns (bool result) {
result = (a > b);
emit AssertionEventUint(result, message, "greaterThan", a, b);
}
function greaterThan(int256 a, int256 b, string memory message) public returns (bool result) {
result = (a > b);
emit AssertionEventInt(result, message, "greaterThan", a, b);
}
// TODO: safely compare between uint and int
function greaterThan(uint256 a, int256 b, string memory message) public returns (bool result) {
if(b < int(0)) {
// int is negative uint "a" always greater
result = true;
} else {
result = (a > uint(b));
}
emit AssertionEventUintInt(result, message, "greaterThan", a, b);
}
function greaterThan(int256 a, uint256 b, string memory message) public returns (bool result) {
if(a < int(0)) {
// int is negative uint "b" always greater
result = false;
} else {
result = (uint(a) > b);
}
emit AssertionEventIntUint(result, message, "greaterThan", a, b);
}
/*----------------- Lesser than --------------------*/
function lesserThan(uint256 a, uint256 b, string memory message) public returns (bool result) {
result = (a < b);
emit AssertionEventUint(result, message, "lesserThan", a, b);
}
function lesserThan(int256 a, int256 b, string memory message) public returns (bool result) {
result = (a < b);
emit AssertionEventInt(result, message, "lesserThan", a, b);
}
// TODO: safely compare between uint and int
function lesserThan(uint256 a, int256 b, string memory message) public returns (bool result) {
if(b < int(0)) {
// int is negative int "b" always lesser
result = false;
} else {
result = (a < uint(b));
}
emit AssertionEventUintInt(result, message, "lesserThan", a, b);
}
function lesserThan(int256 a, uint256 b, string memory message) public returns (bool result) {
if(a < int(0)) {
// int is negative int "a" always lesser
result = true;
} else {
result = (uint(a) < b);
}
emit AssertionEventIntUint(result, message, "lesserThan", a, b);
}
}
REMIX DEFAULT WORKSPACE
Remix default workspace is present when:
i. Remix loads for the very first time
ii. A new workspace is created
iii. There are no files existing in the File Explorer
This workspace 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 Solidity test file for 'Ballot' contract & one JS test file for 'Storage' contract
SCRIPTS
The 'scripts' folder contains two 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).
Also, there is a script containing some unit tests for Storage contract inside tests directory.
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.
Please note, 'require' statement is supported in a limited manner for Remix supported modules.
For now, modules supported by Remix are ethers, web3, swarmgw, chai, remix and hardhat only for hardhat.ethers object/plugin.
For unsupported modules, an error like this will be thrown: '<module_name> module require is not supported by Remix IDE will be shown.'
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
/*
- Initialize an array
- Operations - get, push, pop, length, delete
*/
contract Array {
// Several ways to initialize an array
uint[] public arr;
uint[] public arr2 = [1, 2, 3];
// Fixed sized array, all elements initialize to 0
uint[10] public myFixedSizeArr;
function get(uint i) public view returns (uint) {
return arr[i];
}
// Solidity can return the entire array.
// But this function should be avoided for
// arrays that can grow indefinitely in length.
function getArr() public view returns (uint[] memory) {
return arr;
}
function push(uint i) public {
// Append to array
// This will increase the array length by 1.
arr.push(i);
}
function pop() public {
// Remove last element from array
// This will decrease the array length by 1
arr.pop();
}
function getLength() public view returns (uint) {
return arr.length;
}
function remove(uint index) public {
// Delete does not change the array length.
// It resets the value at index to it's default value,
// in this case 0
delete arr[index];
}
}
{
"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": {
"@_24": {
"entryPoint": null,
"id": 24,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_tuple_t_uint256_fromMemory": {
"entryPoint": 70,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:200:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "95:103:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "141:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "150:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "153:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "143:6:1"
},
"nodeType": "YulFunctionCall",
"src": "143:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "143:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "116:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "125:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "112:3:1"
},
"nodeType": "YulFunctionCall",
"src": "112:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "137:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "108:3:1"
},
"nodeType": "YulFunctionCall",
"src": "108:32:1"
},
"nodeType": "YulIf",
"src": "105:52:1"
},
{
"nodeType": "YulAssignment",
"src": "166:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "182:9:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "176:5:1"
},
"nodeType": "YulFunctionCall",
"src": "176:16:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "166:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "61:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "72:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "84:6:1",
"type": ""
}
],
"src": "14:184:1"
}
]
},
"contents": "{\n { }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5060405161029a38038061029a83398101604081905261002f91610046565b60008181553381526001602052604090205561005f565b60006020828403121561005857600080fd5b5051919050565b61022c8061006e6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806318160ddd1461004657806370a082311461005d578063a9059cbb14610086575b600080fd5b6000545b6040519081526020015b60405180910390f35b61004a61006b366004610165565b6001600160a01b031660009081526001602052604090205490565b610099610094366004610187565b6100a9565b6040519015158152602001610054565b60006001600160a01b0383166100be57600080fd5b336000908152600160205260409020548211156100da57600080fd5b33600090815260016020526040812080548492906100f99084906101c9565b90915550506001600160a01b0383166000908152600160205260409020546101229083906101b1565b6001600160a01b038416600090815260016020819052604090912091909155905092915050565b80356001600160a01b038116811461016057600080fd5b919050565b60006020828403121561017757600080fd5b61018082610149565b9392505050565b6000806040838503121561019a57600080fd5b6101a383610149565b946020939093013593505050565b600082198211156101c4576101c46101e0565b500190565b6000828210156101db576101db6101e0565b500390565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220f83b07a1e5759d972a89a15a45b57ced92fb0b97d04453932b807d65e10c67cf64736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x29A CODESIZE SUB DUP1 PUSH2 0x29A DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x46 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 SSTORE CALLER DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x5F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22C DUP1 PUSH2 0x6E 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x18160DDD EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x5D JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x86 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4A PUSH2 0x6B CALLDATASIZE PUSH1 0x4 PUSH2 0x165 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x99 PUSH2 0x94 CALLDATASIZE PUSH1 0x4 PUSH2 0x187 JUMP JUMPDEST PUSH2 0xA9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x54 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0xF9 SWAP1 DUP5 SWAP1 PUSH2 0x1C9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x122 SWAP1 DUP4 SWAP1 PUSH2 0x1B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x160 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x180 DUP3 PUSH2 0x149 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x19A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A3 DUP4 PUSH2 0x149 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1C4 JUMPI PUSH2 0x1C4 PUSH2 0x1E0 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1DB JUMPI PUSH2 0x1DB PUSH2 0x1E0 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF8 EXTCODESIZE SMOD LOG1 0xE5 PUSH22 0x9D972A89A15A45B57CED92FB0B97D04453932B807D65 0xE1 0xC PUSH8 0xCF64736F6C634300 ADDMOD SMOD STOP CALLER ",
"sourceMap": "57:657:0:-:0;;;151:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;193:12;:29;;;237:10;228:20;;:8;:20;;;;;:37;57:657;;14:184:1;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;-1:-1:-1;176:16:1;;14:184;-1:-1:-1;14:184:1:o;:::-;57:657:0;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@balanceOf_91": {
"entryPoint": null,
"id": 91,
"parameterSlots": 1,
"returnSlots": 1
},
"@totalSupply_32": {
"entryPoint": null,
"id": 32,
"parameterSlots": 0,
"returnSlots": 1
},
"@transfer_79": {
"entryPoint": 169,
"id": 79,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_address": {
"entryPoint": 329,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 357,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_uint256": {
"entryPoint": 391,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 433,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 457,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 480,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1408:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "63:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "73:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "95:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "82:12:1"
},
"nodeType": "YulFunctionCall",
"src": "82:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "73:5:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "165:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "174:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "177:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "167:6:1"
},
"nodeType": "YulFunctionCall",
"src": "167:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "167:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "124:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "135:5:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "150:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "155:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "146:3:1"
},
"nodeType": "YulFunctionCall",
"src": "146:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "159:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "142:3:1"
},
"nodeType": "YulFunctionCall",
"src": "142:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "131:3:1"
},
"nodeType": "YulFunctionCall",
"src": "131:31:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "121:2:1"
},
"nodeType": "YulFunctionCall",
"src": "121:42:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "114:6:1"
},
"nodeType": "YulFunctionCall",
"src": "114:50:1"
},
"nodeType": "YulIf",
"src": "111:70:1"
}
]
},
"name": "abi_decode_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "42:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "53:5:1",
"type": ""
}
],
"src": "14:173:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "262:116:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "308:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "283:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "292:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "279:3:1"
},
"nodeType": "YulFunctionCall",
"src": "279:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "304:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "275:3:1"
},
"nodeType": "YulFunctionCall",
"src": "275:32:1"
},
"nodeType": "YulIf",
"src": "272:52:1"
},
{
"nodeType": "YulAssignment",
"src": "333:39:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "362:9:1"
}
],
"functionName": {
"name": "abi_decode_address",
"nodeType": "YulIdentifier",
"src": "343:18:1"
},
"nodeType": "YulFunctionCall",
"src": "343:29:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "333:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "228:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "239:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "251:6:1",
"type": ""
}
],
"src": "192:186:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "470:167:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "516:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "525:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "528:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "518:6:1"
},
"nodeType": "YulFunctionCall",
"src": "518:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "518:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "491:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "500:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "487:3:1"
},
"nodeType": "YulFunctionCall",
"src": "487:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "512:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "483:3:1"
},
"nodeType": "YulFunctionCall",
"src": "483:32:1"
},
"nodeType": "YulIf",
"src": "480:52:1"
},
{
"nodeType": "YulAssignment",
"src": "541:39:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "570:9:1"
}
],
"functionName": {
"name": "abi_decode_address",
"nodeType": "YulIdentifier",
"src": "551:18:1"
},
"nodeType": "YulFunctionCall",
"src": "551:29:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "541:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "589:42:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "616:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "627:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "612:3:1"
},
"nodeType": "YulFunctionCall",
"src": "612:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "599:12:1"
},
"nodeType": "YulFunctionCall",
"src": "599:32:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "589:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "428:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "439:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "451:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "459:6:1",
"type": ""
}
],
"src": "383:254:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "737:92:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "747:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "759:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "770:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "755:3:1"
},
"nodeType": "YulFunctionCall",
"src": "755:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "747:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "789:9:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "814:6:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "807:6:1"
},
"nodeType": "YulFunctionCall",
"src": "807:14:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "800:6:1"
},
"nodeType": "YulFunctionCall",
"src": "800:22:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "782:6:1"
},
"nodeType": "YulFunctionCall",
"src": "782:41:1"
},
"nodeType": "YulExpressionStatement",
"src": "782:41:1"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "706:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "717:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "728:4:1",
"type": ""
}
],
"src": "642:187:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "935:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "945:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "957:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "968:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "953:3:1"
},
"nodeType": "YulFunctionCall",
"src": "953:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "945:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "987:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "998:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "980:6:1"
},
"nodeType": "YulFunctionCall",
"src": "980:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "980:25:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "904:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "915:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "926:4:1",
"type": ""
}
],
"src": "834:177:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1064:80:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1091:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "1093:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1093:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1093:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1080:1:1"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1087:1:1"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "1083:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1083:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1077:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1077:13:1"
},
"nodeType": "YulIf",
"src": "1074:39:1"
},
{
"nodeType": "YulAssignment",
"src": "1122:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1133:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1136:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1129:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1129:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "1122:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "1047:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "1050:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "1056:3:1",
"type": ""
}
],
"src": "1016:128:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1198:76:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1220:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "1222:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1222:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1222:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1214:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1217:1:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1211:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1211:8:1"
},
"nodeType": "YulIf",
"src": "1208:34:1"
},
{
"nodeType": "YulAssignment",
"src": "1251:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1263:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1266:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1259:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1259:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "1251:4:1"
}
]
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "1180:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "1183:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "1189:4:1",
"type": ""
}
],
"src": "1149:125:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1311:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1328:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1335:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1340:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "1331:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1331:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1321:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1321:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "1321:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1368:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1371:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1361:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1361:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1361:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1392:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1395:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1385:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1385:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1385:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "1279:127:1"
}
]
},
"contents": "{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806318160ddd1461004657806370a082311461005d578063a9059cbb14610086575b600080fd5b6000545b6040519081526020015b60405180910390f35b61004a61006b366004610165565b6001600160a01b031660009081526001602052604090205490565b610099610094366004610187565b6100a9565b6040519015158152602001610054565b60006001600160a01b0383166100be57600080fd5b336000908152600160205260409020548211156100da57600080fd5b33600090815260016020526040812080548492906100f99084906101c9565b90915550506001600160a01b0383166000908152600160205260409020546101229083906101b1565b6001600160a01b038416600090815260016020819052604090912091909155905092915050565b80356001600160a01b038116811461016057600080fd5b919050565b60006020828403121561017757600080fd5b61018082610149565b9392505050565b6000806040838503121561019a57600080fd5b6101a383610149565b946020939093013593505050565b600082198211156101c4576101c46101e0565b500190565b6000828210156101db576101db6101e0565b500390565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220f83b07a1e5759d972a89a15a45b57ced92fb0b97d04453932b807d65e10c67cf64736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x18160DDD EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x5D JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x86 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4A PUSH2 0x6B CALLDATASIZE PUSH1 0x4 PUSH2 0x165 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x99 PUSH2 0x94 CALLDATASIZE PUSH1 0x4 PUSH2 0x187 JUMP JUMPDEST PUSH2 0xA9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x54 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0xF9 SWAP1 DUP5 SWAP1 PUSH2 0x1C9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x122 SWAP1 DUP4 SWAP1 PUSH2 0x1B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x160 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x180 DUP3 PUSH2 0x149 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x19A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A3 DUP4 PUSH2 0x149 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1C4 JUMPI PUSH2 0x1C4 PUSH2 0x1E0 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1DB JUMPI PUSH2 0x1DB PUSH2 0x1E0 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF8 EXTCODESIZE SMOD LOG1 0xE5 PUSH22 0x9D972A89A15A45B57CED92FB0B97D04453932B807D65 0xE1 0xC PUSH8 0xCF64736F6C634300 ADDMOD SMOD STOP CALLER ",
"sourceMap": "57:657:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;274:83;318:7;340:12;274:83;;;980:25:1;;;968:2;953:18;274:83:0;;;;;;;;613:99;;;;;;:::i;:::-;-1:-1:-1;;;;;691:16:0;669:7;691:16;;;:8;:16;;;;;;;613:99;361:248;;;;;;:::i;:::-;;:::i;:::-;;;807:14:1;;800:22;782:41;;770:2;755:18;361:248:0;642:187:1;361:248:0;424:4;-1:-1:-1;;;;;444:17:0;;436:26;;;;;;495:10;486:20;;;;:8;:20;;;;;;476:30;;;468:39;;;;;;522:10;513:20;;;;:8;:20;;;;;:30;;537:6;;513:20;:30;;537:6;;513:30;:::i;:::-;;;;-1:-1:-1;;;;;;;565:13:0;;;;;;:8;:13;;;;;;:22;;581:6;;565:22;:::i;:::-;-1:-1:-1;;;;;549:13:0;;;;;;:8;:13;;;;;;;;:38;;;;:8;-1:-1:-1;361:248:0;;;;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:1:o;383:254::-;451:6;459;512:2;500:9;491:7;487:23;483:32;480:52;;;528:1;525;518:12;480:52;551:29;570:9;551:29;:::i;:::-;541:39;627:2;612:18;;;;599:32;;-1:-1:-1;;;383:254:1:o;1016:128::-;1056:3;1087:1;1083:6;1080:1;1077:13;1074:39;;;1093:18;;:::i;:::-;-1:-1:-1;1129:9:1;;1016:128::o;1149:125::-;1189:4;1217:1;1214;1211:8;1208:34;;;1222:18;;:::i;:::-;-1:-1:-1;1259:9:1;;1149:125::o;1279:127::-;1340:10;1335:3;1331:20;1328:1;1321:31;1371:4;1368:1;1361:15;1395:4;1392:1;1385:15"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "111200",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"balanceOf(address)": "2526",
"totalSupply()": "2248",
"transfer(address,uint256)": "51489"
}
},
"methodIdentifiers": {
"balanceOf(address)": "70a08231",
"totalSupply()": "18160ddd",
"transfer(address,uint256)": "a9059cbb"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_initialSupply",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_initialSupply",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/BasicToken.sol": "BasicToken"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/BasicToken.sol": {
"keccak256": "0x326f80dec7ebd559d4f5290d1f28fb490db1f6b4ec8a4b192df0bfd53704cba3",
"license": "MIT",
"urls": [
"bzz-raw://9aaa263521db784267098d30ae851f7482f136ba77e0cba96d1e0f8422a56c2d",
"dweb:/ipfs/QmPgVc5749UUTViF96BQaACrpuZPAbAFxvWqt8dU6vxK3U"
]
}
},
"version": 1
}
{
"id": "28f11cb86d5cc5b3717140c1e864fe3d",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.13",
"solcLongVersion": "0.8.13+commit.abaa5c0e",
"input": {
"language": "Solidity",
"sources": {
"contracts/Payable.sol": {
"content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.13;\n\ncontract Payable {\n // Payable address can receive Ether\n address payable public owner;\n\n // Payable constructor -> Contract can receive Ether upon creation\n constructor() {\n owner = payable(msg.sender);\n }\n\n // Function to deposit Ether into this contract\n function deposit() public payable {}\n\n // The function will throw an error since this function is not payable\n function notPayable() public {}\n\n // Function to withdraw all Ether from this contract.\n function withdraw() public { \n uint amount = address(this).balance;\n\n // send all Ether in this contract to owner \n (bool success, ) = owner.call{value: amount}(\"\");\n require(success, \"Failed to send Ether\");\n }\n\n function getContractBalance() external view returns (uint) {\n return address(this).balance;\n }\n\n function getOwnerBalance() external view returns (uint) {\n return address(owner).balance;\n }\n}"
}
},
"settings": {
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"contracts/Payable.sol": {
"Payable": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "deposit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "getContractBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getOwnerBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "notPayable",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"contracts/Payable.sol\":58:1018 contract Payable {... */\n mstore(0x40, 0x80)\n /* \"contracts/Payable.sol\":228:286 constructor() {... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n /* \"contracts/Payable.sol\":252:257 owner */\n 0x00\n /* \"contracts/Payable.sol\":252:279 owner = payable(msg.sender) */\n dup1\n sload\n not(sub(shl(0xa0, 0x01), 0x01))\n and\n /* \"contracts/Payable.sol\":268:278 msg.sender */\n caller\n /* \"contracts/Payable.sol\":252:279 owner = payable(msg.sender) */\n or\n swap1\n sstore\n /* \"contracts/Payable.sol\":58:1018 contract Payable {... */\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/Payable.sol\":58:1018 contract Payable {... */\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x273884bd\n eq\n tag_2\n jumpi\n dup1\n 0x3ccfd60b\n eq\n tag_3\n jumpi\n dup1\n 0x590791f2\n eq\n tag_4\n jumpi\n dup1\n 0x6f9fb98a\n eq\n tag_5\n jumpi\n dup1\n 0x8da5cb5b\n eq\n tag_6\n jumpi\n dup1\n 0xd0e30db0\n eq\n tag_9\n jumpi\n tag_1:\n 0x00\n dup1\n revert\n /* \"contracts/Payable.sol\":461:492 function notPayable() public {} */\n tag_2:\n callvalue\n dup1\n iszero\n tag_8\n jumpi\n 0x00\n dup1\n revert\n tag_8:\n pop\n tag_9:\n stop\n /* \"contracts/Payable.sol\":556:798 function withdraw() public { ... */\n tag_3:\n callvalue\n dup1\n iszero\n tag_11\n jumpi\n 0x00\n dup1\n revert\n tag_11:\n pop\n tag_9\n tag_13\n jump\t// in\n /* \"contracts/Payable.sol\":914:1016 function getOwnerBalance() external view returns (uint) {... */\n tag_4:\n callvalue\n dup1\n iszero\n tag_14\n jumpi\n 0x00\n dup1\n revert\n tag_14:\n pop\n /* \"contracts/Payable.sol\":964:968 uint */\n 0x00\n /* \"contracts/Payable.sol\":995:1000 owner */\n sload\n sub(shl(0xa0, 0x01), 0x01)\n and\n /* \"contracts/Payable.sol\":987:1009 address(owner).balance */\n balance\n /* \"contracts/Payable.sol\":914:1016 function getOwnerBalance() external view returns (uint) {... */\n tag_15:\n mload(0x40)\n /* \"#utility.yul\":160:185 */\n swap1\n dup2\n mstore\n /* \"#utility.yul\":148:150 */\n 0x20\n /* \"#utility.yul\":133:151 */\n add\n /* \"contracts/Payable.sol\":914:1016 function getOwnerBalance() external view returns (uint) {... */\n tag_17:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/Payable.sol\":804:908 function getContractBalance() external view returns (uint) {... */\n tag_5:\n callvalue\n dup1\n iszero\n tag_19\n jumpi\n 0x00\n dup1\n revert\n tag_19:\n pop\n /* \"contracts/Payable.sol\":880:901 address(this).balance */\n selfbalance\n /* \"contracts/Payable.sol\":804:908 function getContractBalance() external view returns (uint) {... */\n jump(tag_15)\n /* \"contracts/Payable.sol\":122:150 address payable public owner */\n tag_6:\n callvalue\n dup1\n iszero\n tag_23\n jumpi\n 0x00\n dup1\n revert\n tag_23:\n pop\n sload(0x00)\n tag_24\n swap1\n sub(shl(0xa0, 0x01), 0x01)\n and\n dup2\n jump\n tag_24:\n mload(0x40)\n sub(shl(0xa0, 0x01), 0x01)\n /* \"#utility.yul\":376:408 */\n swap1\n swap2\n and\n /* \"#utility.yul\":358:409 */\n dup2\n mstore\n /* \"#utility.yul\":346:348 */\n 0x20\n /* \"#utility.yul\":331:349 */\n add\n /* \"contracts/Payable.sol\":122:150 address payable public owner */\n tag_17\n /* \"#utility.yul\":196:415 */\n jump\n /* \"contracts/Payable.sol\":556:798 function withdraw() public { ... */\n tag_13:\n /* \"contracts/Payable.sol\":594:605 uint amount */\n 0x00\n /* \"contracts/Payable.sol\":712:717 owner */\n dup1\n sload\n /* \"contracts/Payable.sol\":712:741 owner.call{value: amount}(\"\") */\n mload(0x40)\n /* \"contracts/Payable.sol\":608:629 address(this).balance */\n selfbalance\n swap3\n /* \"contracts/Payable.sol\":594:605 uint amount */\n swap2\n sub(shl(0xa0, 0x01), 0x01)\n /* \"contracts/Payable.sol\":712:717 owner */\n and\n swap1\n /* \"contracts/Payable.sol\":608:629 address(this).balance */\n dup4\n swap1\n /* \"contracts/Payable.sol\":594:605 uint amount */\n dup4\n /* \"contracts/Payable.sol\":712:741 owner.call{value: amount}(\"\") */\n dup2\n /* \"contracts/Payable.sol\":594:605 uint amount */\n dup2\n /* \"contracts/Payable.sol\":712:741 owner.call{value: amount}(\"\") */\n dup2\n /* \"contracts/Payable.sol\":608:629 address(this).balance */\n dup6\n /* \"contracts/Payable.sol\":712:717 owner */\n dup8\n /* \"contracts/Payable.sol\":712:741 owner.call{value: amount}(\"\") */\n gas\n call\n swap3\n pop\n pop\n pop\n returndatasize\n dup1\n 0x00\n dup2\n eq\n tag_36\n jumpi\n mload(0x40)\n swap2\n pop\n and(add(returndatasize, 0x3f), not(0x1f))\n dup3\n add\n 0x40\n mstore\n returndatasize\n dup3\n mstore\n returndatasize\n 0x00\n 0x20\n dup5\n add\n returndatacopy\n jump(tag_35)\n tag_36:\n 0x60\n swap2\n pop\n tag_35:\n pop\n /* \"contracts/Payable.sol\":693:741 (bool success, ) = owner.call{value: amount}(\"\") */\n pop\n swap1\n pop\n /* \"contracts/Payable.sol\":759:766 success */\n dup1\n /* \"contracts/Payable.sol\":751:791 require(success, \"Failed to send Ether\") */\n tag_37\n jumpi\n mload(0x40)\n shl(0xe5, 0x461bcd)\n dup2\n mstore\n /* \"#utility.yul\":832:834 */\n 0x20\n /* \"contracts/Payable.sol\":751:791 require(success, \"Failed to send Ether\") */\n 0x04\n dup3\n add\n /* \"#utility.yul\":814:835 */\n mstore\n /* \"#utility.yul\":871:873 */\n 0x14\n /* \"#utility.yul\":851:869 */\n 0x24\n dup3\n add\n /* \"#utility.yul\":844:874 */\n mstore\n shl(0x61, 0x2330b4b632b2103a379039b2b7321022ba3432b9)\n /* \"#utility.yul\":890:908 */\n 0x44\n dup3\n add\n /* \"#utility.yul\":883:933 */\n mstore\n /* \"#utility.yul\":950:968 */\n 0x64\n add\n /* \"contracts/Payable.sol\":751:791 require(success, \"Failed to send Ether\") */\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_37:\n /* \"contracts/Payable.sol\":583:798 { ... */\n pop\n pop\n /* \"contracts/Payable.sol\":556:798 function withdraw() public { ... */\n jump\t// out\n\n auxdata: 0xa264697066735822122075947248064e3649a2927c1f18dc0adffd1d1b897e88447f20271c6fbec5d4c964736f6c634300080d0033\n}\n",
"bytecode": {
"functionDebugData": {
"@_15": {
"entryPoint": null,
"id": 15,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600080546001600160a01b031916331790556101d1806100326000396000f3fe6080604052600436106100555760003560e01c8063273884bd1461005a5780633ccfd60b1461006a578063590791f21461007f5780636f9fb98a146100ad5780638da5cb5b146100c0578063d0e30db014610068575b600080fd5b34801561006657600080fd5b505b005b34801561007657600080fd5b506100686100f8565b34801561008b57600080fd5b506000546001600160a01b0316315b6040519081526020015b60405180910390f35b3480156100b957600080fd5b504761009a565b3480156100cc57600080fd5b506000546100e0906001600160a01b031681565b6040516001600160a01b0390911681526020016100a4565b600080546040514792916001600160a01b03169083908381818185875af1925050503d8060008114610146576040519150601f19603f3d011682016040523d82523d6000602084013e61014b565b606091505b50509050806101975760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b604482015260640160405180910390fd5b505056fea264697066735822122075947248064e3649a2927c1f18dc0adffd1d1b897e88447f20271c6fbec5d4c964736f6c634300080d0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x1D1 DUP1 PUSH2 0x32 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x55 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x273884BD EQ PUSH2 0x5A JUMPI DUP1 PUSH4 0x3CCFD60B EQ PUSH2 0x6A JUMPI DUP1 PUSH4 0x590791F2 EQ PUSH2 0x7F JUMPI DUP1 PUSH4 0x6F9FB98A EQ PUSH2 0xAD JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xC0 JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0x68 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x68 PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND BALANCE JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SELFBALANCE PUSH2 0x9A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0xE0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xA4 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SELFBALANCE SWAP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP4 SWAP1 DUP4 DUP2 DUP2 DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x146 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x14B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x197 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x2330B4B632B2103A379039B2B7321022BA3432B9 PUSH1 0x61 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH22 0x947248064E3649A2927C1F18DC0ADFFD1D1B897E8844 PUSH32 0x20271C6FBEC5D4C964736F6C634300080D003300000000000000000000000000 ",
"sourceMap": "58:960:0:-:0;;;228:58;;;;;;;;;-1:-1:-1;252:5:0;:27;;-1:-1:-1;;;;;;252:27:0;268:10;252:27;;;58:960;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@deposit_19": {
"entryPoint": null,
"id": 19,
"parameterSlots": 0,
"returnSlots": 0
},
"@getContractBalance_61": {
"entryPoint": null,
"id": 61,
"parameterSlots": 0,
"returnSlots": 1
},
"@getOwnerBalance_73": {
"entryPoint": null,
"id": 73,
"parameterSlots": 0,
"returnSlots": 1
},
"@notPayable_23": {
"entryPoint": null,
"id": 23,
"parameterSlots": 0,
"returnSlots": 0
},
"@owner_3": {
"entryPoint": null,
"id": 3,
"parameterSlots": 0,
"returnSlots": 0
},
"@withdraw_49": {
"entryPoint": 248,
"id": 49,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:976:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "115:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "125:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "137:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "148:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "133:3:1"
},
"nodeType": "YulFunctionCall",
"src": "133:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "125:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "167:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "178:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "160:6:1"
},
"nodeType": "YulFunctionCall",
"src": "160:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "160:25:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "84:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "95:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "106:4:1",
"type": ""
}
],
"src": "14:177:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "313:102:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "323:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "335:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "346:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "331:3:1"
},
"nodeType": "YulFunctionCall",
"src": "331:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "323:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "365:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "380:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "396:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "401:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "392:3:1"
},
"nodeType": "YulFunctionCall",
"src": "392:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "405:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "388:3:1"
},
"nodeType": "YulFunctionCall",
"src": "388:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "376:3:1"
},
"nodeType": "YulFunctionCall",
"src": "376:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "358:6:1"
},
"nodeType": "YulFunctionCall",
"src": "358:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "358:51:1"
}
]
},
"name": "abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "282:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "293:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "304:4:1",
"type": ""
}
],
"src": "196:219:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "611:14:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "613:10:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "620:3:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "613:3:1"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "595:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "603:3:1",
"type": ""
}
],
"src": "420:205:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "804:170:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "821:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "832:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "814:6:1"
},
"nodeType": "YulFunctionCall",
"src": "814:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "814:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "855:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "866:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "851:3:1"
},
"nodeType": "YulFunctionCall",
"src": "851:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "871:2:1",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "844:6:1"
},
"nodeType": "YulFunctionCall",
"src": "844:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "844:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "894:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "905:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "890:3:1"
},
"nodeType": "YulFunctionCall",
"src": "890:18:1"
},
{
"hexValue": "4661696c656420746f2073656e64204574686572",
"kind": "string",
"nodeType": "YulLiteral",
"src": "910:22:1",
"type": "",
"value": "Failed to send Ether"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "883:6:1"
},
"nodeType": "YulFunctionCall",
"src": "883:50:1"
},
"nodeType": "YulExpressionStatement",
"src": "883:50:1"
},
{
"nodeType": "YulAssignment",
"src": "942:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "954:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "965:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "950:3:1"
},
"nodeType": "YulFunctionCall",
"src": "950:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "942:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "781:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "795:4:1",
"type": ""
}
],
"src": "630:344:1"
}
]
},
"contents": "{\n { }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n { end := pos }\n function abi_encode_tuple_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Failed to send Ether\")\n tail := add(headStart, 96)\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106100555760003560e01c8063273884bd1461005a5780633ccfd60b1461006a578063590791f21461007f5780636f9fb98a146100ad5780638da5cb5b146100c0578063d0e30db014610068575b600080fd5b34801561006657600080fd5b505b005b34801561007657600080fd5b506100686100f8565b34801561008b57600080fd5b506000546001600160a01b0316315b6040519081526020015b60405180910390f35b3480156100b957600080fd5b504761009a565b3480156100cc57600080fd5b506000546100e0906001600160a01b031681565b6040516001600160a01b0390911681526020016100a4565b600080546040514792916001600160a01b03169083908381818185875af1925050503d8060008114610146576040519150601f19603f3d011682016040523d82523d6000602084013e61014b565b606091505b50509050806101975760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b604482015260640160405180910390fd5b505056fea264697066735822122075947248064e3649a2927c1f18dc0adffd1d1b897e88447f20271c6fbec5d4c964736f6c634300080d0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x55 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x273884BD EQ PUSH2 0x5A JUMPI DUP1 PUSH4 0x3CCFD60B EQ PUSH2 0x6A JUMPI DUP1 PUSH4 0x590791F2 EQ PUSH2 0x7F JUMPI DUP1 PUSH4 0x6F9FB98A EQ PUSH2 0xAD JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xC0 JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0x68 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x68 PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND BALANCE JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SELFBALANCE PUSH2 0x9A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0xE0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xA4 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SELFBALANCE SWAP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP4 SWAP1 DUP4 DUP2 DUP2 DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x146 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x14B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x197 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x2330B4B632B2103A379039B2B7321022BA3432B9 PUSH1 0x61 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH22 0x947248064E3649A2927C1F18DC0ADFFD1D1B897E8844 PUSH32 0x20271C6FBEC5D4C964736F6C634300080D003300000000000000000000000000 ",
"sourceMap": "58:960:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;461:31;;;;;;;;;;;;;556:242;;;;;;;;;;;;;:::i;914:102::-;;;;;;;;;;-1:-1:-1;964:4:0;995:5;-1:-1:-1;;;;;995:5:0;987:22;914:102;;;160:25:1;;;148:2;133:18;914:102:0;;;;;;;;804:104;;;;;;;;;;-1:-1:-1;880:21:0;804:104;;122:28;;;;;;;;;;-1:-1:-1;122:28:0;;;;-1:-1:-1;;;;;122:28:0;;;;;;-1:-1:-1;;;;;376:32:1;;;358:51;;346:2;331:18;122:28:0;196:219:1;556:242:0;594:11;712:5;;:29;;608:21;;594:11;-1:-1:-1;;;;;712:5:0;;608:21;;594:11;712:29;594:11;712:29;608:21;712:5;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;693:48;;;759:7;751:40;;;;-1:-1:-1;;;751:40:0;;832:2:1;751:40:0;;;814:21:1;871:2;851:18;;;844:30;-1:-1:-1;;;890:18:1;;;883:50;950:18;;751:40:0;;;;;;;;583:215;;556:242::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "93000",
"executionCost": "24376",
"totalCost": "117376"
},
"external": {
"deposit()": "184",
"getContractBalance()": "227",
"getOwnerBalance()": "4910",
"notPayable()": "101",
"owner()": "2403",
"withdraw()": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 58,
"end": 1018,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 58,
"end": 1018,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 58,
"end": 1018,
"name": "MSTORE",
"source": 0
},
{
"begin": 228,
"end": 286,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 228,
"end": 286,
"name": "DUP1",
"source": 0
},
{
"begin": 228,
"end": 286,
"name": "ISZERO",
"source": 0
},
{
"begin": 228,
"end": 286,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 228,
"end": 286,
"name": "JUMPI",
"source": 0
},
{
"begin": 228,
"end": 286,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 228,
"end": 286,
"name": "DUP1",
"source": 0
},
{
"begin": 228,
"end": 286,
"name": "REVERT",
"source": 0
},
{
"begin": 228,
"end": 286,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 228,
"end": 286,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 252,
"end": 257,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 252,
"end": 279,
"name": "DUP1",
"source": 0
},
{
"begin": 252,
"end": 279,
"name": "SLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "NOT",
"source": -1
},
{
"begin": 252,
"end": 279,
"name": "AND",
"source": 0
},
{
"begin": 268,
"end": 278,
"name": "CALLER",
"source": 0
},
{
"begin": 252,
"end": 279,
"name": "OR",
"source": 0
},
{
"begin": 252,
"end": 279,
"name": "SWAP1",
"source": 0
},
{
"begin": 252,
"end": 279,
"name": "SSTORE",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 58,
"end": 1018,
"name": "DUP1",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 58,
"end": 1018,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 58,
"end": 1018,
"name": "CODECOPY",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 58,
"end": 1018,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a264697066735822122075947248064e3649a2927c1f18dc0adffd1d1b897e88447f20271c6fbec5d4c964736f6c634300080d0033",
".code": [
{
"begin": 58,
"end": 1018,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 58,
"end": 1018,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 58,
"end": 1018,
"name": "MSTORE",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 58,
"end": 1018,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "LT",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 58,
"end": 1018,
"name": "JUMPI",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 58,
"end": 1018,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 58,
"end": 1018,
"name": "SHR",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "DUP1",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "PUSH",
"source": 0,
"value": "273884BD"
},
{
"begin": 58,
"end": 1018,
"name": "EQ",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 58,
"end": 1018,
"name": "JUMPI",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "DUP1",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "PUSH",
"source": 0,
"value": "3CCFD60B"
},
{
"begin": 58,
"end": 1018,
"name": "EQ",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 58,
"end": 1018,
"name": "JUMPI",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "DUP1",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "PUSH",
"source": 0,
"value": "590791F2"
},
{
"begin": 58,
"end": 1018,
"name": "EQ",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 58,
"end": 1018,
"name": "JUMPI",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "DUP1",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "PUSH",
"source": 0,
"value": "6F9FB98A"
},
{
"begin": 58,
"end": 1018,
"name": "EQ",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 58,
"end": 1018,
"name": "JUMPI",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "DUP1",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "PUSH",
"source": 0,
"value": "8DA5CB5B"
},
{
"begin": 58,
"end": 1018,
"name": "EQ",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "PUSH [tag]",
"source": 0,
"value": "6"
},
{
"begin": 58,
"end": 1018,
"name": "JUMPI",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "DUP1",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "PUSH",
"source": 0,
"value": "D0E30DB0"
},
{
"begin": 58,
"end": 1018,
"name": "EQ",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 58,
"end": 1018,
"name": "JUMPI",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 58,
"end": 1018,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 58,
"end": 1018,
"name": "DUP1",
"source": 0
},
{
"begin": 58,
"end": 1018,
"name": "REVERT",
"source": 0
},
{
"begin": 461,
"end": 492,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 461,
"end": 492,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 461,
"end": 492,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 461,
"end": 492,
"name": "DUP1",
"source": 0
},
{
"begin": 461,
"end": 492,
"name": "ISZERO",
"source": 0
},
{
"begin": 461,
"end": 492,
"name": "PUSH [tag]",
"source": 0,
"value": "8"
},
{
"begin": 461,
"end": 492,
"name": "JUMPI",
"source": 0
},
{
"begin": 461,
"end": 492,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 461,
"end": 492,
"name": "DUP1",
"source": 0
},
{
"begin": 461,
"end": 492,
"name": "REVERT",
"source": 0
},
{
"begin": 461,
"end": 492,
"name": "tag",
"source": 0,
"value": "8"
},
{
"begin": 461,
"end": 492,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 461,
"end": 492,
"name": "POP",
"source": 0
},
{
"begin": 461,
"end": 492,
"name": "tag",
"source": 0,
"value": "9"
},
{
"begin": 461,
"end": 492,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 461,
"end": 492,
"name": "STOP",
"source": 0
},
{
"begin": 556,
"end": 798,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 556,
"end": 798,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 556,
"end": 798,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 556,
"end": 798,
"name": "DUP1",
"source": 0
},
{
"begin": 556,
"end": 798,
"name": "ISZERO",
"source": 0
},
{
"begin": 556,
"end": 798,
"name": "PUSH [tag]",
"source": 0,
"value": "11"
},
{
"begin": 556,
"end": 798,
"name": "JUMPI",
"source": 0
},
{
"begin": 556,
"end": 798,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 556,
"end": 798,
"name": "DUP1",
"source": 0
},
{
"begin": 556,
"end": 798,
"name": "REVERT",
"source": 0
},
{
"begin": 556,
"end": 798,
"name": "tag",
"source": 0,
"value": "11"
},
{
"begin": 556,
"end": 798,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 556,
"end": 798,
"name": "POP",
"source": 0
},
{
"begin": 556,
"end": 798,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 556,
"end": 798,
"name": "PUSH [tag]",
"source": 0,
"value": "13"
},
{
"begin": 556,
"end": 798,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 914,
"end": 1016,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 914,
"end": 1016,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 914,
"end": 1016,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 914,
"end": 1016,
"name": "DUP1",
"source": 0
},
{
"begin": 914,
"end": 1016,
"name": "ISZERO",
"source": 0
},
{
"begin": 914,
"end": 1016,
"name": "PUSH [tag]",
"source": 0,
"value": "14"
},
{
"begin": 914,
"end": 1016,
"name": "JUMPI",
"source": 0
},
{
"begin": 914,
"end": 1016,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 914,
"end": 1016,
"name": "DUP1",
"source": 0
},
{
"begin": 914,
"end": 1016,
"name": "REVERT",
"source": 0
},
{
"begin": 914,
"end": 1016,
"name": "tag",
"source": 0,
"value": "14"
},
{
"begin": 914,
"end": 1016,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 964,
"end": 968,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 995,
"end": 1000,
"name": "SLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 995,
"end": 1000,
"name": "AND",
"source": 0
},
{
"begin": 987,
"end": 1009,
"name": "BALANCE",
"source": 0
},
{
"begin": 914,
"end": 1016,
"name": "tag",
"source": 0,
"value": "15"
},
{
"begin": 914,
"end": 1016,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 914,
"end": 1016,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 914,
"end": 1016,
"name": "MLOAD",
"source": 0
},
{
"begin": 160,
"end": 185,
"name": "SWAP1",
"source": 1
},
{
"begin": 160,
"end": 185,
"name": "DUP2",
"source": 1
},
{
"begin": 160,
"end": 185,
"name": "MSTORE",
"source": 1
},
{
"begin": 148,
"end": 150,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 133,
"end": 151,
"name": "ADD",
"source": 1
},
{
"begin": 914,
"end": 1016,
"name": "tag",
"source": 0,
"value": "17"
},
{
"begin": 914,
"end": 1016,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 914,
"end": 1016,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 914,
"end": 1016,
"name": "MLOAD",
"source": 0
},
{
"begin": 914,
"end": 1016,
"name": "DUP1",
"source": 0
},
{
"begin": 914,
"end": 1016,
"name": "SWAP2",
"source": 0
},
{
"begin": 914,
"end": 1016,
"name": "SUB",
"source": 0
},
{
"begin": 914,
"end": 1016,
"name": "SWAP1",
"source": 0
},
{
"begin": 914,
"end": 1016,
"name": "RETURN",
"source": 0
},
{
"begin": 804,
"end": 908,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 804,
"end": 908,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 804,
"end": 908,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 804,
"end": 908,
"name": "DUP1",
"source": 0
},
{
"begin": 804,
"end": 908,
"name": "ISZERO",
"source": 0
},
{
"begin": 804,
"end": 908,
"name": "PUSH [tag]",
"source": 0,
"value": "19"
},
{
"begin": 804,
"end": 908,
"name": "JUMPI",
"source": 0
},
{
"begin": 804,
"end": 908,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 804,
"end": 908,
"name": "DUP1",
"source": 0
},
{
"begin": 804,
"end": 908,
"name": "REVERT",
"source": 0
},
{
"begin": 804,
"end": 908,
"name": "tag",
"source": 0,
"value": "19"
},
{
"begin": 804,
"end": 908,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 880,
"end": 901,
"name": "SELFBALANCE",
"source": 0
},
{
"begin": 804,
"end": 908,
"name": "PUSH [tag]",
"source": 0,
"value": "15"
},
{
"begin": 804,
"end": 908,
"name": "JUMP",
"source": 0
},
{
"begin": 122,
"end": 150,
"name": "tag",
"source": 0,
"value": "6"
},
{
"begin": 122,
"end": 150,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 122,
"end": 150,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 122,
"end": 150,
"name": "DUP1",
"source": 0
},
{
"begin": 122,
"end": 150,
"name": "ISZERO",
"source": 0
},
{
"begin": 122,
"end": 150,
"name": "PUSH [tag]",
"source": 0,
"value": "23"
},
{
"begin": 122,
"end": 150,
"name": "JUMPI",
"source": 0
},
{
"begin": 122,
"end": 150,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 122,
"end": 150,
"name": "DUP1",
"source": 0
},
{
"begin": 122,
"end": 150,
"name": "REVERT",
"source": 0
},
{
"begin": 122,
"end": 150,
"name": "tag",
"source": 0,
"value": "23"
},
{
"begin": 122,
"end": 150,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 122,
"end": 150,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 122,
"end": 150,
"name": "SLOAD",
"source": 0
},
{
"begin": 122,
"end": 150,
"name": "PUSH [tag]",
"source": 0,
"value": "24"
},
{
"begin": 122,
"end": 150,
"name": "SWAP1",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 122,
"end": 150,
"name": "AND",
"source": 0
},
{
"begin": 122,
"end": 150,
"name": "DUP2",
"source": 0
},
{
"begin": 122,
"end": 150,
"name": "JUMP",
"source": 0
},
{
"begin": 122,
"end": 150,
"name": "tag",
"source": 0,
"value": "24"
},
{
"begin": 122,
"end": 150,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 122,
"end": 150,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 122,
"end": 150,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 376,
"end": 408,
"name": "SWAP1",
"source": 1
},
{
"begin": 376,
"end": 408,
"name": "SWAP2",
"source": 1
},
{
"begin": 376,
"end": 408,
"name": "AND",
"source": 1
},
{
"begin": 358,
"end": 409,
"name": "DUP2",
"source": 1
},
{
"begin": 358,
"end": 409,
"name": "MSTORE",
"source": 1
},
{
"begin": 346,
"end": 348,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 331,
"end": 349,
"name": "ADD",
"source": 1
},
{
"begin": 122,
"end": 150,
"name": "PUSH [tag]",
"source": 0,
"value": "17"
},
{
"begin": 196,
"end": 415,
"name": "JUMP",
"source": 1
},
{
"begin": 556,
"end": 798,
"name": "tag",
"source": 0,
"value": "13"
},
{
"begin": 556,
"end": 798,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 594,
"end": 605,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 712,
"end": 717,
"name": "DUP1",
"source": 0
},
{
"begin": 712,
"end": 717,
"name": "SLOAD",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 712,
"end": 741,
"name": "MLOAD",
"source": 0
},
{
"begin": 608,
"end": 629,
"name": "SELFBALANCE",
"source": 0
},
{
"begin": 608,
"end": 629,
"name": "SWAP3",
"source": 0
},
{
"begin": 594,
"end": 605,
"name": "SWAP2",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 712,
"end": 717,
"name": "AND",
"source": 0
},
{
"begin": 712,
"end": 717,
"name": "SWAP1",
"source": 0
},
{
"begin": 608,
"end": 629,
"name": "DUP4",
"source": 0
},
{
"begin": 608,
"end": 629,
"name": "SWAP1",
"source": 0
},
{
"begin": 594,
"end": 605,
"name": "DUP4",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "DUP2",
"source": 0
},
{
"begin": 594,
"end": 605,
"name": "DUP2",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "DUP2",
"source": 0
},
{
"begin": 608,
"end": 629,
"name": "DUP6",
"source": 0
},
{
"begin": 712,
"end": 717,
"name": "DUP8",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "GAS",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "CALL",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "SWAP3",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "POP",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "POP",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "POP",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "DUP1",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 712,
"end": 741,
"name": "DUP2",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "EQ",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "PUSH [tag]",
"source": 0,
"value": "36"
},
{
"begin": 712,
"end": 741,
"name": "JUMPI",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 712,
"end": 741,
"name": "MLOAD",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "SWAP2",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "POP",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 712,
"end": 741,
"name": "NOT",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "PUSH",
"source": 0,
"value": "3F"
},
{
"begin": 712,
"end": 741,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "ADD",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "AND",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "DUP3",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "ADD",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 712,
"end": 741,
"name": "MSTORE",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "DUP3",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "MSTORE",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 712,
"end": 741,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 712,
"end": 741,
"name": "DUP5",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "ADD",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "RETURNDATACOPY",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "PUSH [tag]",
"source": 0,
"value": "35"
},
{
"begin": 712,
"end": 741,
"name": "JUMP",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "tag",
"source": 0,
"value": "36"
},
{
"begin": 712,
"end": 741,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "PUSH",
"source": 0,
"value": "60"
},
{
"begin": 712,
"end": 741,
"name": "SWAP2",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "POP",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "tag",
"source": 0,
"value": "35"
},
{
"begin": 712,
"end": 741,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 712,
"end": 741,
"name": "POP",
"source": 0
},
{
"begin": 693,
"end": 741,
"name": "POP",
"source": 0
},
{
"begin": 693,
"end": 741,
"name": "SWAP1",
"source": 0
},
{
"begin": 693,
"end": 741,
"name": "POP",
"source": 0
},
{
"begin": 759,
"end": 766,
"name": "DUP1",
"source": 0
},
{
"begin": 751,
"end": 791,
"name": "PUSH [tag]",
"source": 0,
"value": "37"
},
{
"begin": 751,
"end": 791,
"name": "JUMPI",
"source": 0
},
{
"begin": 751,
"end": 791,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 751,
"end": 791,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "461BCD"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "E5"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 751,
"end": 791,
"name": "DUP2",
"source": 0
},
{
"begin": 751,
"end": 791,
"name": "MSTORE",
"source": 0
},
{
"begin": 832,
"end": 834,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 751,
"end": 791,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 751,
"end": 791,
"name": "DUP3",
"source": 0
},
{
"begin": 751,
"end": 791,
"name": "ADD",
"source": 0
},
{
"begin": 814,
"end": 835,
"name": "MSTORE",
"source": 1
},
{
"begin": 871,
"end": 873,
"name": "PUSH",
"source": 1,
"value": "14"
},
{
"begin": 851,
"end": 869,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 851,
"end": 869,
"name": "DUP3",
"source": 1
},
{
"begin": 851,
"end": 869,
"name": "ADD",
"source": 1
},
{
"begin": 844,
"end": 874,
"name": "MSTORE",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "2330B4B632B2103A379039B2B7321022BA3432B9"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "61"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 890,
"end": 908,
"name": "PUSH",
"source": 1,
"value": "44"
},
{
"begin": 890,
"end": 908,
"name": "DUP3",
"source": 1
},
{
"begin": 890,
"end": 908,
"name": "ADD",
"source": 1
},
{
"begin": 883,
"end": 933,
"name": "MSTORE",
"source": 1
},
{
"begin": 950,
"end": 968,
"name": "PUSH",
"source": 1,
"value": "64"
},
{
"begin": 950,
"end": 968,
"name": "ADD",
"source": 1
},
{
"begin": 751,
"end": 791,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 751,
"end": 791,
"name": "MLOAD",
"source": 0
},
{
"begin": 751,
"end": 791,
"name": "DUP1",
"source": 0
},
{
"begin": 751,
"end": 791,
"name": "SWAP2",
"source": 0
},
{
"begin": 751,
"end": 791,
"name": "SUB",
"source": 0
},
{
"begin": 751,
"end": 791,
"name": "SWAP1",
"source": 0
},
{
"begin": 751,
"end": 791,
"name": "REVERT",
"source": 0
},
{
"begin": 751,
"end": 791,
"name": "tag",
"source": 0,
"value": "37"
},
{
"begin": 751,
"end": 791,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 583,
"end": 798,
"name": "POP",
"source": 0
},
{
"begin": 583,
"end": 798,
"name": "POP",
"source": 0
},
{
"begin": 556,
"end": 798,
"name": "JUMP",
"source": 0,
"value": "[out]"
}
]
}
}
},
"methodIdentifiers": {
"deposit()": "d0e30db0",
"getContractBalance()": "6f9fb98a",
"getOwnerBalance()": "590791f2",
"notPayable()": "273884bd",
"owner()": "8da5cb5b",
"withdraw()": "3ccfd60b"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getContractBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwnerBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"notPayable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Payable.sol\":\"Payable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Payable.sol\":{\"keccak256\":\"0xbd9e92a2a066fea866e4426a323ad767b11e52a0539ff47edb68c864fdbcdd01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5bd07b83203dc7f394032369e460bd5a1d5ab76b3922d4907f02b97be9dcda68\",\"dweb:/ipfs/QmZyA1kBqARsYgWwtWB73MV6J8spdbND1BTMfudJacfRZN\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 3,
"contract": "contracts/Payable.sol:Payable",
"label": "owner",
"offset": 0,
"slot": "0",
"type": "t_address_payable"
}
],
"types": {
"t_address_payable": {
"encoding": "inplace",
"label": "address payable",
"numberOfBytes": "20"
}
}
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
}
},
"sources": {
"contracts/Payable.sol": {
"ast": {
"absolutePath": "contracts/Payable.sol",
"exportedSymbols": {
"Payable": [
74
]
},
"id": 75,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.8",
".13"
],
"nodeType": "PragmaDirective",
"src": "32:24:0"
},
{
"abstract": false,
"baseContracts": [],
"canonicalName": "Payable",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 74,
"linearizedBaseContracts": [
74
],
"name": "Payable",
"nameLocation": "67:7:0",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "8da5cb5b",
"id": 3,
"mutability": "mutable",
"name": "owner",
"nameLocation": "145:5:0",
"nodeType": "VariableDeclaration",
"scope": 74,
"src": "122:28:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 2,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "122:15:0",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"visibility": "public"
},
{
"body": {
"id": 14,
"nodeType": "Block",
"src": "242:44:0",
"statements": [
{
"expression": {
"id": 12,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 6,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "252:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"expression": {
"id": 9,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "268:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 10,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "268:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 8,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "260:8:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_payable_$",
"typeString": "type(address payable)"
},
"typeName": {
"id": 7,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "260:8:0",
"stateMutability": "payable",
"typeDescriptions": {}
}
},
"id": 11,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "260:19:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"src": "252:27:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"id": 13,
"nodeType": "ExpressionStatement",
"src": "252:27:0"
}
]
},
"id": 15,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4,
"nodeType": "ParameterList",
"parameters": [],
"src": "239:2:0"
},
"returnParameters": {
"id": 5,
"nodeType": "ParameterList",
"parameters": [],
"src": "242:0:0"
},
"scope": 74,
"src": "228:58:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 18,
"nodeType": "Block",
"src": "378:2:0",
"statements": []
},
"functionSelector": "d0e30db0",
"id": 19,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "deposit",
"nameLocation": "353:7:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 16,
"nodeType": "ParameterList",
"parameters": [],
"src": "360:2:0"
},
"returnParameters": {
"id": 17,
"nodeType": "ParameterList",
"parameters": [],
"src": "378:0:0"
},
"scope": 74,
"src": "344:36:0",
"stateMutability": "payable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 22,
"nodeType": "Block",
"src": "490:2:0",
"statements": []
},
"functionSelector": "273884bd",
"id": 23,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "notPayable",
"nameLocation": "470:10:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 20,
"nodeType": "ParameterList",
"parameters": [],
"src": "480:2:0"
},
"returnParameters": {
"id": 21,
"nodeType": "ParameterList",
"parameters": [],
"src": "490:0:0"
},
"scope": 74,
"src": "461:31:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 48,
"nodeType": "Block",
"src": "583:215:0",
"statements": [
{
"assignments": [
27
],
"declarations": [
{
"constant": false,
"id": 27,
"mutability": "mutable",
"name": "amount",
"nameLocation": "599:6:0",
"nodeType": "VariableDeclaration",
"scope": 48,
"src": "594:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 26,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "594:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 33,
"initialValue": {
"expression": {
"arguments": [
{
"id": 30,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967268,
"src": "616:4:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Payable_$74",
"typeString": "contract Payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_Payable_$74",
"typeString": "contract Payable"
}
],
"id": 29,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "608:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 28,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "608:7:0",
"typeDescriptions": {}
}
},
"id": 31,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "608:13:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 32,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "balance",
"nodeType": "MemberAccess",
"src": "608:21:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "594:35:0"
},
{
"assignments": [
35,
null
],
"declarations": [
{
"constant": false,
"id": 35,
"mutability": "mutable",
"name": "success",
"nameLocation": "699:7:0",
"nodeType": "VariableDeclaration",
"scope": 48,
"src": "694:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 34,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "694:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
},
null
],
"id": 42,
"initialValue": {
"arguments": [
{
"hexValue": "",
"id": 40,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "738:2:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
}
],
"expression": {
"id": 36,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "712:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"id": 37,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "call",
"nodeType": "MemberAccess",
"src": "712:10:0",
"typeDescriptions": {
"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "function (bytes memory) payable returns (bool,bytes memory)"
}
},
"id": 39,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"names": [
"value"
],
"nodeType": "FunctionCallOptions",
"options": [
{
"id": 38,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27,
"src": "730:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"src": "712:25:0",
"typeDescriptions": {
"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value",
"typeString": "function (bytes memory) payable returns (bool,bytes memory)"
}
},
"id": 41,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "712:29:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "tuple(bool,bytes memory)"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "693:48:0"
},
{
"expression": {
"arguments": [
{
"id": 44,
"name": "success",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 35,
"src": "759:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "4661696c656420746f2073656e64204574686572",
"id": 45,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "768:22:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb",
"typeString": "literal_string \"Failed to send Ether\""
},
"value": "Failed to send Ether"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb",
"typeString": "literal_string \"Failed to send Ether\""
}
],
"id": 43,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4294967278,
4294967278
],
"referencedDeclaration": 4294967278,
"src": "751:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 46,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "751:40:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 47,
"nodeType": "ExpressionStatement",
"src": "751:40:0"
}
]
},
"functionSelector": "3ccfd60b",
"id": 49,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "withdraw",
"nameLocation": "565:8:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 24,
"nodeType": "ParameterList",
"parameters": [],
"src": "573:2:0"
},
"returnParameters": {
"id": 25,
"nodeType": "ParameterList",
"parameters": [],
"src": "583:0:0"
},
"scope": 74,
"src": "556:242:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 60,
"nodeType": "Block",
"src": "863:45:0",
"statements": [
{
"expression": {
"expression": {
"arguments": [
{
"id": 56,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967268,
"src": "888:4:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Payable_$74",
"typeString": "contract Payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_Payable_$74",
"typeString": "contract Payable"
}
],
"id": 55,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "880:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 54,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "880:7:0",
"typeDescriptions": {}
}
},
"id": 57,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "880:13:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 58,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "balance",
"nodeType": "MemberAccess",
"src": "880:21:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 53,
"id": 59,
"nodeType": "Return",
"src": "873:28:0"
}
]
},
"functionSelector": "6f9fb98a",
"id": 61,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getContractBalance",
"nameLocation": "813:18:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 50,
"nodeType": "ParameterList",
"parameters": [],
"src": "831:2:0"
},
"returnParameters": {
"id": 53,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 52,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 61,
"src": "857:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 51,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "857:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "856:6:0"
},
"scope": 74,
"src": "804:104:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 72,
"nodeType": "Block",
"src": "970:46:0",
"statements": [
{
"expression": {
"expression": {
"arguments": [
{
"id": 68,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "995:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
],
"id": 67,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "987:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 66,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "987:7:0",
"typeDescriptions": {}
}
},
"id": 69,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "987:14:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 70,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "balance",
"nodeType": "MemberAccess",
"src": "987:22:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 65,
"id": 71,
"nodeType": "Return",
"src": "980:29:0"
}
]
},
"functionSelector": "590791f2",
"id": 73,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getOwnerBalance",
"nameLocation": "923:15:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 62,
"nodeType": "ParameterList",
"parameters": [],
"src": "938:2:0"
},
"returnParameters": {
"id": 65,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 64,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 73,
"src": "964:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 63,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "964:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "963:6:0"
},
"scope": 74,
"src": "914:102:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
}
],
"scope": 75,
"src": "58:960:0",
"usedErrors": []
}
],
"src": "32:986:0"
},
"id": 0
}
}
}
}
{
"id": "42831103df18238433a787da3cdad21d",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.13",
"solcLongVersion": "0.8.13+commit.abaa5c0e",
"input": {
"language": "Solidity",
"sources": {
"contracts/Structs.sol": {
"content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.13;\n\n/*\n Structs\n - Declaring structs\n - Initializing structs\n - get, set, delete\n*/\n\ncontract Structs {\n\n struct Car {\n string model;\n uint year;\n address owner;\n }\n\n Car public car;\n Car[] public cars;\n mapping(address => Car[]) public owners;\n\n function examples() external {\n Car memory car1 = Car(\"Toyota\", 2017, msg.sender);\n Car memory car2 = Car({model: \"Audi\", year: 2018, owner: msg.sender});\n Car memory car3;\n car3.model = \"Ford\";\n car3.year = 2015;\n car3.owner = msg.sender;\n \n cars.push(car1);\n cars.push(car2); \n cars.push(car3);\n\n cars.push(Car(\"Honda\", 2016, msg.sender));\n\n Car memory _car = cars[0]; // try storage\n _car.year = 2022;\n\n delete _car.owner;\n delete cars[1];\n } \n}"
}
},
"settings": {
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"contracts/Structs.sol": {
"Structs": {
"abi": [
{
"inputs": [],
"name": "car",
"outputs": [
{
"internalType": "string",
"name": "model",
"type": "string"
},
{
"internalType": "uint256",
"name": "year",
"type": "uint256"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "cars",
"outputs": [
{
"internalType": "string",
"name": "model",
"type": "string"
},
{
"internalType": "uint256",
"name": "year",
"type": "uint256"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "examples",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "owners",
"outputs": [
{
"internalType": "string",
"name": "model",
"type": "string"
},
{
"internalType": "uint256",
"name": "year",
"type": "uint256"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"contracts/Structs.sol\":151:915 contract Structs {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/Structs.sol\":151:915 contract Structs {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x335d00c2\n eq\n tag_3\n jumpi\n dup1\n 0x9b3e2787\n eq\n tag_4\n jumpi\n dup1\n 0xee26fac3\n eq\n tag_5\n jumpi\n dup1\n 0xf7746e36\n eq\n tag_6\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"contracts/Structs.sol\":352:912 function examples() external {... */\n tag_3:\n tag_7\n tag_8\n jump\t// in\n tag_7:\n stop\n /* \"contracts/Structs.sol\":306:345 mapping(address => Car[]) public owners */\n tag_4:\n tag_9\n tag_10\n calldatasize\n 0x04\n tag_11\n jump\t// in\n tag_10:\n tag_12\n jump\t// in\n tag_9:\n mload(0x40)\n tag_13\n swap4\n swap3\n swap2\n swap1\n tag_14\n jump\t// in\n tag_13:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/Structs.sol\":263:277 Car public car */\n tag_5:\n tag_9\n tag_16\n jump\t// in\n /* \"contracts/Structs.sol\":283:300 Car[] public cars */\n tag_6:\n tag_9\n tag_19\n calldatasize\n 0x04\n tag_20\n jump\t// in\n tag_19:\n tag_21\n jump\t// in\n /* \"contracts/Structs.sol\":352:912 function examples() external {... */\n tag_8:\n /* \"contracts/Structs.sol\":409:440 Car(\"Toyota\", 2017, msg.sender) */\n 0x40\n dup1\n mload\n 0xa0\n dup1\n dup3\n add\n dup4\n mstore\n 0x06\n 0x60\n dup1\n dup5\n add\n swap2\n dup3\n mstore\n shl(0xd0, 0x546f796f7461)\n 0x80\n dup1\n dup7\n add\n swap2\n swap1\n swap2\n mstore\n swap2\n dup5\n mstore\n /* \"contracts/Structs.sol\":423:427 2017 */\n 0x07e1\n /* \"contracts/Structs.sol\":409:440 Car(\"Toyota\", 2017, msg.sender) */\n 0x20\n dup1\n dup7\n add\n swap2\n swap1\n swap2\n mstore\n /* \"contracts/Structs.sol\":429:439 msg.sender */\n caller\n /* \"contracts/Structs.sol\":409:440 Car(\"Toyota\", 2017, msg.sender) */\n dup6\n dup8\n add\n dup2\n swap1\n mstore\n /* \"contracts/Structs.sol\":468:519 Car({model: \"Audi\", year: 2018, owner: msg.sender}) */\n dup7\n mload\n swap5\n dup6\n add\n dup8\n mstore\n 0x04\n dup6\n dup5\n add\n dup2\n dup2\n mstore\n shl(0xe0, 0x41756469)\n swap6\n dup8\n add\n swap6\n swap1\n swap6\n mstore\n swap4\n dup6\n mstore\n /* \"contracts/Structs.sol\":494:498 2018 */\n 0x07e2\n /* \"contracts/Structs.sol\":468:519 Car({model: \"Audi\", year: 2018, owner: msg.sender}) */\n dup6\n dup4\n add\n mstore\n dup5\n dup8\n add\n dup2\n swap1\n mstore\n dup7\n mload\n dup1\n dup5\n add\n dup9\n mstore\n swap3\n dup4\n mstore\n 0x00\n dup4\n dup4\n add\n dup2\n dup2\n mstore\n dup5\n dup10\n add\n dup3\n dup2\n mstore\n /* \"contracts/Structs.sol\":554:573 car3.model = \"Ford\" */\n dup10\n mload\n dup1\n dup12\n add\n swap1\n swap11\n mstore\n swap6\n dup10\n mstore\n shl(0xe2, 0x119bdc99)\n dup10\n dup6\n add\n mstore\n swap8\n dup5\n mstore\n /* \"contracts/Structs.sol\":595:599 2015 */\n 0x07df\n /* \"contracts/Structs.sol\":583:599 car3.year = 2015 */\n swap1\n swap8\n mstore\n /* \"contracts/Structs.sol\":609:632 car3.owner = msg.sender */\n swap1\n swap3\n mstore\n /* \"contracts/Structs.sol\":651:655 cars */\n 0x03\n /* \"contracts/Structs.sol\":651:666 cars.push(car1) */\n dup1\n sload\n 0x01\n dup2\n add\n dup3\n sstore\n swap6\n dup2\n swap1\n mstore\n dup5\n mload\n dup1\n mload\n /* \"contracts/Structs.sol\":409:440 Car(\"Toyota\", 2017, msg.sender) */\n swap6\n swap7\n /* \"contracts/Structs.sol\":468:519 Car({model: \"Audi\", year: 2018, owner: msg.sender}) */\n swap5\n swap6\n swap3\n swap5\n /* \"contracts/Structs.sol\":409:440 Car(\"Toyota\", 2017, msg.sender) */\n dup8\n swap5\n /* \"contracts/Structs.sol\":651:666 cars.push(car1) */\n swap3\n mul\n 0x00\n dup1\n mload\n 0x20\n data_2584db4a68aa8b172f70bc04e2e74541617c003374de6eb4b295e823e5beab01\n dup4\n codecopy\n dup2\n mload\n swap2\n mstore\n add\n swap3\n tag_27\n swap3\n dup5\n swap3\n add\n swap1\n tag_28\n jump\t// in\n tag_27:\n pop\n 0x20\n dup3\n dup2\n add\n mload\n 0x01\n dup1\n dup5\n add\n swap2\n swap1\n swap2\n sstore\n 0x40\n swap1\n swap4\n add\n mload\n 0x02\n swap1\n swap3\n add\n dup1\n sload\n sub(shl(0xa0, 0x01), 0x01)\n swap1\n swap4\n and\n not(sub(shl(0xa0, 0x01), 0x01))\n swap1\n swap4\n and\n swap3\n swap1\n swap3\n or\n swap1\n swap2\n sstore\n /* \"contracts/Structs.sol\":676:680 cars */\n 0x03\n /* \"contracts/Structs.sol\":676:691 cars.push(car2) */\n dup1\n sload\n swap3\n dup4\n add\n dup2\n sstore\n /* \"contracts/Structs.sol\":651:666 cars.push(car1) */\n 0x00\n /* \"contracts/Structs.sol\":676:691 cars.push(car2) */\n dup2\n swap1\n mstore\n dup5\n mload\n dup1\n mload\n /* \"contracts/Structs.sol\":686:690 car2 */\n dup7\n swap5\n /* \"contracts/Structs.sol\":676:691 cars.push(car2) */\n swap1\n swap3\n mul\n 0x00\n dup1\n mload\n 0x20\n data_2584db4a68aa8b172f70bc04e2e74541617c003374de6eb4b295e823e5beab01\n dup4\n codecopy\n dup2\n mload\n swap2\n mstore\n add\n swap3\n tag_30\n swap3\n dup5\n swap3\n swap1\n swap2\n add\n swap1\n tag_28\n jump\t// in\n tag_30:\n pop\n 0x20\n dup3\n dup2\n add\n mload\n 0x01\n dup1\n dup5\n add\n swap2\n swap1\n swap2\n sstore\n 0x40\n swap1\n swap4\n add\n mload\n 0x02\n swap1\n swap3\n add\n dup1\n sload\n sub(shl(0xa0, 0x01), 0x01)\n swap1\n swap4\n and\n not(sub(shl(0xa0, 0x01), 0x01))\n swap1\n swap4\n and\n swap3\n swap1\n swap3\n or\n swap1\n swap2\n sstore\n /* \"contracts/Structs.sol\":709:713 cars */\n 0x03\n /* \"contracts/Structs.sol\":709:724 cars.push(car3) */\n dup1\n sload\n swap3\n dup4\n add\n dup2\n sstore\n /* \"contracts/Structs.sol\":676:691 cars.push(car2) */\n 0x00\n /* \"contracts/Structs.sol\":709:724 cars.push(car3) */\n dup2\n swap1\n mstore\n dup4\n mload\n dup1\n mload\n /* \"contracts/Structs.sol\":719:723 car3 */\n dup6\n swap5\n /* \"contracts/Structs.sol\":709:724 cars.push(car3) */\n swap1\n swap3\n mul\n 0x00\n dup1\n mload\n 0x20\n data_2584db4a68aa8b172f70bc04e2e74541617c003374de6eb4b295e823e5beab01\n dup4\n codecopy\n dup2\n mload\n swap2\n mstore\n add\n swap3\n tag_32\n swap3\n dup5\n swap3\n swap1\n swap2\n add\n swap1\n tag_28\n jump\t// in\n tag_32:\n pop\n 0x20\n dup3\n dup2\n add\n mload\n 0x01\n dup1\n dup5\n add\n swap2\n swap1\n swap2\n sstore\n 0x40\n swap4\n dup5\n add\n mload\n 0x02\n swap1\n swap4\n add\n dup1\n sload\n sub(shl(0xa0, 0x01), 0x01)\n swap1\n swap5\n and\n not(sub(shl(0xa0, 0x01), 0x01))\n swap1\n swap5\n and\n swap4\n swap1\n swap4\n or\n swap1\n swap3\n sstore\n /* \"contracts/Structs.sol\":745:775 Car(\"Honda\", 2016, msg.sender) */\n dup3\n mload\n 0xa0\n dup2\n add\n dup5\n mstore\n 0x05\n 0x60\n dup3\n add\n swap1\n dup2\n mstore\n shl(0xd8, 0x486f6e6461)\n 0x80\n dup4\n add\n mstore\n dup2\n mstore\n /* \"contracts/Structs.sol\":758:762 2016 */\n 0x07e0\n /* \"contracts/Structs.sol\":745:775 Car(\"Honda\", 2016, msg.sender) */\n dup2\n dup4\n add\n mstore\n /* \"contracts/Structs.sol\":764:774 msg.sender */\n caller\n /* \"contracts/Structs.sol\":745:775 Car(\"Honda\", 2016, msg.sender) */\n swap4\n dup2\n add\n swap4\n swap1\n swap4\n mstore\n /* \"contracts/Structs.sol\":735:739 cars */\n 0x03\n /* \"contracts/Structs.sol\":735:776 cars.push(Car(\"Honda\", 2016, msg.sender)) */\n dup1\n sload\n swap3\n dup4\n add\n dup2\n sstore\n /* \"contracts/Structs.sol\":709:724 cars.push(car3) */\n 0x00\n /* \"contracts/Structs.sol\":735:776 cars.push(Car(\"Honda\", 2016, msg.sender)) */\n dup2\n swap1\n mstore\n dup4\n mload\n dup1\n mload\n swap4\n swap1\n swap2\n mul\n 0x00\n dup1\n mload\n 0x20\n data_2584db4a68aa8b172f70bc04e2e74541617c003374de6eb4b295e823e5beab01\n dup4\n codecopy\n dup2\n mload\n swap2\n mstore\n add\n swap3\n tag_34\n swap3\n dup5\n swap3\n add\n swap1\n tag_28\n jump\t// in\n tag_34:\n pop\n 0x20\n dup3\n add\n mload\n dup2\n 0x01\n add\n sstore\n 0x40\n dup3\n add\n mload\n dup2\n 0x02\n add\n exp(0x0100, 0x00)\n dup2\n sload\n dup2\n sub(shl(0xa0, 0x01), 0x01)\n mul\n not\n and\n swap1\n dup4\n sub(shl(0xa0, 0x01), 0x01)\n and\n mul\n or\n swap1\n sstore\n pop\n pop\n pop\n /* \"contracts/Structs.sol\":787:802 Car memory _car */\n 0x00\n /* \"contracts/Structs.sol\":805:809 cars */\n 0x03\n /* \"contracts/Structs.sol\":810:811 0 */\n 0x00\n /* \"contracts/Structs.sol\":805:812 cars[0] */\n dup2\n sload\n dup2\n lt\n tag_36\n jumpi\n tag_36\n tag_37\n jump\t// in\n tag_36:\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n 0x03\n mul\n add\n /* \"contracts/Structs.sol\":787:812 Car memory _car = cars[0] */\n mload(0x40)\n dup1\n 0x60\n add\n 0x40\n mstore\n swap1\n dup2\n 0x00\n dup3\n add\n dup1\n sload\n tag_39\n swap1\n tag_40\n jump\t// in\n tag_39:\n dup1\n 0x1f\n add\n 0x20\n dup1\n swap2\n div\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup3\n dup1\n sload\n tag_41\n swap1\n tag_40\n jump\t// in\n tag_41:\n dup1\n iszero\n tag_42\n jumpi\n dup1\n 0x1f\n lt\n tag_43\n jumpi\n 0x0100\n dup1\n dup4\n sload\n div\n mul\n dup4\n mstore\n swap2\n 0x20\n add\n swap2\n jump(tag_42)\n tag_43:\n dup3\n add\n swap2\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n tag_44:\n dup2\n sload\n dup2\n mstore\n swap1\n 0x01\n add\n swap1\n 0x20\n add\n dup1\n dup4\n gt\n tag_44\n jumpi\n dup3\n swap1\n sub\n 0x1f\n and\n dup3\n add\n swap2\n tag_42:\n pop\n pop\n pop\n swap2\n dup4\n mstore\n pop\n pop\n 0x01\n dup3\n dup2\n add\n sload\n 0x20\n dup1\n dup5\n add\n swap2\n swap1\n swap2\n mstore\n 0x02\n swap1\n swap4\n add\n sload\n sub(shl(0xa0, 0x01), 0x01)\n and\n 0x40\n swap3\n dup4\n add\n mstore\n /* \"contracts/Structs.sol\":849:853 2022 */\n 0x07e6\n /* \"contracts/Structs.sol\":837:846 _car.year */\n swap3\n dup5\n add\n /* \"contracts/Structs.sol\":837:853 _car.year = 2022 */\n swap3\n swap1\n swap3\n mstore\n 0x00\n /* \"contracts/Structs.sol\":871:881 _car.owner */\n swap1\n dup4\n add\n /* \"contracts/Structs.sol\":864:881 delete _car.owner */\n mstore\n /* \"contracts/Structs.sol\":898:902 cars */\n 0x03\n /* \"contracts/Structs.sol\":898:905 cars[1] */\n dup1\n sload\n /* \"contracts/Structs.sol\":787:812 Car memory _car = cars[0] */\n swap3\n swap4\n pop\n /* \"contracts/Structs.sol\":898:902 cars */\n swap2\n /* \"contracts/Structs.sol\":898:905 cars[1] */\n dup2\n lt\n tag_46\n jumpi\n tag_46\n tag_37\n jump\t// in\n tag_46:\n 0x00\n swap2\n dup3\n mstore\n 0x20\n dup3\n keccak256\n 0x03\n swap1\n swap2\n mul\n add\n swap1\n /* \"contracts/Structs.sol\":891:905 delete cars[1] */\n tag_48\n /* \"contracts/Structs.sol\":898:905 cars[1] */\n dup3\n dup3\n /* \"contracts/Structs.sol\":891:905 delete cars[1] */\n tag_49\n jump\t// in\n tag_48:\n pop\n 0x00\n 0x01\n dup3\n add\n sstore\n 0x02\n add\n dup1\n sload\n not(sub(shl(0xa0, 0x01), 0x01))\n and\n swap1\n sstore\n pop\n pop\n pop\n pop\n /* \"contracts/Structs.sol\":352:912 function examples() external {... */\n jump\t// out\n /* \"contracts/Structs.sol\":306:345 mapping(address => Car[]) public owners */\n tag_12:\n mstore(0x20, 0x04)\n dup2\n 0x00\n mstore\n keccak256(0x00, 0x40)\n dup2\n dup2\n sload\n dup2\n lt\n tag_50\n jumpi\n 0x00\n dup1\n revert\n tag_50:\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n 0x03\n mul\n add\n 0x00\n swap2\n pop\n swap2\n pop\n pop\n dup1\n 0x00\n add\n dup1\n sload\n tag_52\n swap1\n tag_40\n jump\t// in\n tag_52:\n dup1\n 0x1f\n add\n 0x20\n dup1\n swap2\n div\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup3\n dup1\n sload\n tag_53\n swap1\n tag_40\n jump\t// in\n tag_53:\n dup1\n iszero\n tag_54\n jumpi\n dup1\n 0x1f\n lt\n tag_55\n jumpi\n 0x0100\n dup1\n dup4\n sload\n div\n mul\n dup4\n mstore\n swap2\n 0x20\n add\n swap2\n jump(tag_54)\n tag_55:\n dup3\n add\n swap2\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n tag_56:\n dup2\n sload\n dup2\n mstore\n swap1\n 0x01\n add\n swap1\n 0x20\n add\n dup1\n dup4\n gt\n tag_56\n jumpi\n dup3\n swap1\n sub\n 0x1f\n and\n dup3\n add\n swap2\n tag_54:\n pop\n pop\n pop\n pop\n 0x01\n dup4\n add\n sload\n 0x02\n swap1\n swap4\n add\n sload\n swap2\n swap3\n swap2\n sub(shl(0xa0, 0x01), 0x01)\n and\n swap1\n pop\n dup4\n jump\t// out\n /* \"contracts/Structs.sol\":263:277 Car public car */\n tag_16:\n 0x00\n dup1\n sload\n dup2\n swap1\n tag_52\n swap1\n tag_40\n jump\t// in\n /* \"contracts/Structs.sol\":283:300 Car[] public cars */\n tag_21:\n 0x03\n dup2\n dup2\n sload\n dup2\n lt\n tag_62\n jumpi\n 0x00\n dup1\n revert\n tag_62:\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n 0x03\n mul\n add\n 0x00\n swap2\n pop\n swap1\n pop\n dup1\n 0x00\n add\n dup1\n sload\n tag_52\n swap1\n tag_40\n jump\t// in\n tag_28:\n dup3\n dup1\n sload\n tag_69\n swap1\n tag_40\n jump\t// in\n tag_69:\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n 0x1f\n add\n 0x20\n swap1\n div\n dup2\n add\n swap3\n dup3\n tag_71\n jumpi\n 0x00\n dup6\n sstore\n jump(tag_74)\n tag_71:\n dup3\n 0x1f\n lt\n tag_72\n jumpi\n dup1\n mload\n not(0xff)\n and\n dup4\n dup1\n add\n or\n dup6\n sstore\n jump(tag_74)\n tag_72:\n dup3\n dup1\n add\n 0x01\n add\n dup6\n sstore\n dup3\n iszero\n tag_74\n jumpi\n swap2\n dup3\n add\n tag_73:\n dup3\n dup2\n gt\n iszero\n tag_74\n jumpi\n dup3\n mload\n dup3\n sstore\n swap2\n 0x20\n add\n swap2\n swap1\n 0x01\n add\n swap1\n jump(tag_73)\n tag_74:\n pop\n tag_75\n swap3\n swap2\n pop\n tag_76\n jump\t// in\n tag_75:\n pop\n swap1\n jump\t// out\n tag_49:\n pop\n dup1\n sload\n tag_77\n swap1\n tag_40\n jump\t// in\n tag_77:\n 0x00\n dup3\n sstore\n dup1\n 0x1f\n lt\n tag_79\n jumpi\n pop\n pop\n jump\t// out\n tag_79:\n 0x1f\n add\n 0x20\n swap1\n div\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n dup2\n add\n swap1\n tag_80\n swap2\n swap1\n tag_76\n jump\t// in\n tag_80:\n pop\n jump\t// out\n tag_76:\n tag_81:\n dup1\n dup3\n gt\n iszero\n tag_75\n jumpi\n 0x00\n dup2\n sstore\n 0x01\n add\n jump(tag_81)\n /* \"#utility.yul\":14:368 */\n tag_11:\n /* \"#utility.yul\":82:88 */\n 0x00\n /* \"#utility.yul\":90:96 */\n dup1\n /* \"#utility.yul\":143:145 */\n 0x40\n /* \"#utility.yul\":131:140 */\n dup4\n /* \"#utility.yul\":122:129 */\n dup6\n /* \"#utility.yul\":118:141 */\n sub\n /* \"#utility.yul\":114:146 */\n slt\n /* \"#utility.yul\":111:163 */\n iszero\n tag_85\n jumpi\n /* \"#utility.yul\":159:160 */\n 0x00\n /* \"#utility.yul\":156:157 */\n dup1\n /* \"#utility.yul\":149:161 */\n revert\n /* \"#utility.yul\":111:163 */\n tag_85:\n /* \"#utility.yul\":185:208 */\n dup3\n calldataload\n sub(shl(0xa0, 0x01), 0x01)\n /* \"#utility.yul\":237:268 */\n dup2\n and\n /* \"#utility.yul\":227:269 */\n dup2\n eq\n /* \"#utility.yul\":217:287 */\n tag_86\n jumpi\n /* \"#utility.yul\":283:284 */\n 0x00\n /* \"#utility.yul\":280:281 */\n dup1\n /* \"#utility.yul\":273:285 */\n revert\n /* \"#utility.yul\":217:287 */\n tag_86:\n /* \"#utility.yul\":306:311 */\n swap5\n /* \"#utility.yul\":358:360 */\n 0x20\n /* \"#utility.yul\":343:361 */\n swap4\n swap1\n swap4\n add\n /* \"#utility.yul\":330:362 */\n calldataload\n swap4\n pop\n pop\n pop\n /* \"#utility.yul\":14:368 */\n jump\t// out\n /* \"#utility.yul\":373:1126 */\n tag_14:\n /* \"#utility.yul\":578:580 */\n 0x60\n /* \"#utility.yul\":567:576 */\n dup2\n /* \"#utility.yul\":560:581 */\n mstore\n /* \"#utility.yul\":541:545 */\n 0x00\n /* \"#utility.yul\":610:616 */\n dup5\n /* \"#utility.yul\":604:617 */\n mload\n /* \"#utility.yul\":653:659 */\n dup1\n /* \"#utility.yul\":648:650 */\n 0x60\n /* \"#utility.yul\":637:646 */\n dup5\n /* \"#utility.yul\":633:651 */\n add\n /* \"#utility.yul\":626:660 */\n mstore\n /* \"#utility.yul\":678:679 */\n 0x00\n /* \"#utility.yul\":688:833 */\n tag_88:\n /* \"#utility.yul\":702:708 */\n dup2\n /* \"#utility.yul\":699:700 */\n dup2\n /* \"#utility.yul\":696:709 */\n lt\n /* \"#utility.yul\":688:833 */\n iszero\n tag_90\n jumpi\n /* \"#utility.yul\":816:820 */\n 0x20\n /* \"#utility.yul\":800:814 */\n dup2\n dup9\n add\n /* \"#utility.yul\":796:821 */\n dup2\n add\n /* \"#utility.yul\":790:822 */\n mload\n /* \"#utility.yul\":784:787 */\n 0x80\n /* \"#utility.yul\":765:782 */\n dup7\n dup5\n add\n /* \"#utility.yul\":761:788 */\n add\n /* \"#utility.yul\":754:823 */\n mstore\n /* \"#utility.yul\":717:729 */\n add\n /* \"#utility.yul\":688:833 */\n jump(tag_88)\n tag_90:\n /* \"#utility.yul\":851:857 */\n dup2\n /* \"#utility.yul\":848:849 */\n dup2\n /* \"#utility.yul\":845:858 */\n gt\n /* \"#utility.yul\":842:934 */\n iszero\n tag_91\n jumpi\n /* \"#utility.yul\":922:923 */\n 0x00\n /* \"#utility.yul\":916:919 */\n 0x80\n /* \"#utility.yul\":907:913 */\n dup4\n /* \"#utility.yul\":896:905 */\n dup7\n /* \"#utility.yul\":892:914 */\n add\n /* \"#utility.yul\":888:920 */\n add\n /* \"#utility.yul\":881:924 */\n mstore\n /* \"#utility.yul\":842:934 */\n tag_91:\n pop\n /* \"#utility.yul\":1037:1041 */\n 0x20\n /* \"#utility.yul\":1022:1042 */\n dup4\n add\n /* \"#utility.yul\":1015:1051 */\n swap5\n swap1\n swap5\n mstore\n pop\n sub(shl(0xa0, 0x01), 0x01)\n /* \"#utility.yul\":1087:1119 */\n swap2\n swap1\n swap2\n and\n /* \"#utility.yul\":1082:1084 */\n 0x40\n /* \"#utility.yul\":1067:1085 */\n dup3\n add\n /* \"#utility.yul\":1060:1120 */\n mstore\n /* \"#utility.yul\":1002:1005 */\n 0x80\n /* \"#utility.yul\":995:997 */\n 0x1f\n /* \"#utility.yul\":974:989 */\n swap1\n swap3\n add\n not(0x1f)\n /* \"#utility.yul\":970:999 */\n and\n /* \"#utility.yul\":955:1000 */\n add\n /* \"#utility.yul\":951:1006 */\n add\n swap2\n swap1\n pop\n /* \"#utility.yul\":373:1126 */\n jump\t// out\n /* \"#utility.yul\":1131:1311 */\n tag_20:\n /* \"#utility.yul\":1190:1196 */\n 0x00\n /* \"#utility.yul\":1243:1245 */\n 0x20\n /* \"#utility.yul\":1231:1240 */\n dup3\n /* \"#utility.yul\":1222:1229 */\n dup5\n /* \"#utility.yul\":1218:1241 */\n sub\n /* \"#utility.yul\":1214:1246 */\n slt\n /* \"#utility.yul\":1211:1263 */\n iszero\n tag_93\n jumpi\n /* \"#utility.yul\":1259:1260 */\n 0x00\n /* \"#utility.yul\":1256:1257 */\n dup1\n /* \"#utility.yul\":1249:1261 */\n revert\n /* \"#utility.yul\":1211:1263 */\n tag_93:\n pop\n /* \"#utility.yul\":1282:1305 */\n calldataload\n swap2\n /* \"#utility.yul\":1131:1311 */\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1316:1443 */\n tag_37:\n /* \"#utility.yul\":1377:1387 */\n 0x4e487b71\n /* \"#utility.yul\":1372:1375 */\n 0xe0\n /* \"#utility.yul\":1368:1388 */\n shl\n /* \"#utility.yul\":1365:1366 */\n 0x00\n /* \"#utility.yul\":1358:1389 */\n mstore\n /* \"#utility.yul\":1408:1412 */\n 0x32\n /* \"#utility.yul\":1405:1406 */\n 0x04\n /* \"#utility.yul\":1398:1413 */\n mstore\n /* \"#utility.yul\":1432:1436 */\n 0x24\n /* \"#utility.yul\":1429:1430 */\n 0x00\n /* \"#utility.yul\":1422:1437 */\n revert\n /* \"#utility.yul\":1448:1828 */\n tag_40:\n /* \"#utility.yul\":1527:1528 */\n 0x01\n /* \"#utility.yul\":1523:1535 */\n dup2\n dup2\n shr\n swap1\n /* \"#utility.yul\":1570:1582 */\n dup3\n and\n dup1\n /* \"#utility.yul\":1591:1652 */\n tag_96\n jumpi\n /* \"#utility.yul\":1645:1649 */\n 0x7f\n /* \"#utility.yul\":1637:1643 */\n dup3\n /* \"#utility.yul\":1633:1650 */\n and\n /* \"#utility.yul\":1623:1650 */\n swap2\n pop\n /* \"#utility.yul\":1591:1652 */\n tag_96:\n /* \"#utility.yul\":1698:1700 */\n 0x20\n /* \"#utility.yul\":1690:1696 */\n dup3\n /* \"#utility.yul\":1687:1701 */\n lt\n /* \"#utility.yul\":1667:1685 */\n dup2\n /* \"#utility.yul\":1664:1702 */\n sub\n /* \"#utility.yul\":1661:1822 */\n tag_97\n jumpi\n /* \"#utility.yul\":1744:1754 */\n 0x4e487b71\n /* \"#utility.yul\":1739:1742 */\n 0xe0\n /* \"#utility.yul\":1735:1755 */\n shl\n /* \"#utility.yul\":1732:1733 */\n 0x00\n /* \"#utility.yul\":1725:1756 */\n mstore\n /* \"#utility.yul\":1779:1783 */\n 0x22\n /* \"#utility.yul\":1776:1777 */\n 0x04\n /* \"#utility.yul\":1769:1784 */\n mstore\n /* \"#utility.yul\":1807:1811 */\n 0x24\n /* \"#utility.yul\":1804:1805 */\n 0x00\n /* \"#utility.yul\":1797:1812 */\n revert\n /* \"#utility.yul\":1661:1822 */\n tag_97:\n pop\n /* \"#utility.yul\":1448:1828 */\n swap2\n swap1\n pop\n jump\t// out\n stop\n data_2584db4a68aa8b172f70bc04e2e74541617c003374de6eb4b295e823e5beab01 c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b\n\n auxdata: 0xa26469706673582212201ddb430c2afca9261d27f2f8adf20c42c9053143157d5e2639ee05b53a5404d764736f6c634300080d0033\n}\n",
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506107d7806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063335d00c2146100515780639b3e27871461005b578063ee26fac314610086578063f7746e361461008e575b600080fd5b6100596100a1565b005b61006e610069366004610673565b610482565b60405161007d939291906106ab565b60405180910390f35b61006e61055b565b61006e61009c366004610718565b61056a565b6040805160a080820183526006606080840191825265546f796f746160d01b6080808601919091529184526107e160208086019190915233858701819052865194850187526004858401818152634175646960e01b958701959095529385526107e2858301528487018190528651808401885292835260008383018181528489018281528951808b01909a5295895263119bdc9960e21b898501529784526107df909752909252600380546001810182559581905284518051959694959294879492026000805160206107828339815191520192610182928492019061059d565b50602082810151600180840191909155604090930151600290920180546001600160a01b039093166001600160a01b031990931692909217909155600380549283018155600081905284518051869490920260008051602061078283398151915201926101f49284929091019061059d565b50602082810151600180840191909155604090930151600290920180546001600160a01b039093166001600160a01b031990931692909217909155600380549283018155600081905283518051859490920260008051602061078283398151915201926102669284929091019061059d565b50602082810151600180840191909155604093840151600290930180546001600160a01b039094166001600160a01b031990941693909317909255825160a08101845260056060820190815264486f6e646160d81b608083015281526107e0818301523393810193909352600380549283018155600081905283518051939091026000805160206107828339815191520192610305928492019061059d565b506020820151816001015560408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050506000600360008154811061035557610355610731565b906000526020600020906003020160405180606001604052908160008201805461037e90610747565b80601f01602080910402602001604051908101604052809291908181526020018280546103aa90610747565b80156103f75780601f106103cc576101008083540402835291602001916103f7565b820191906000526020600020905b8154815290600101906020018083116103da57829003601f168201915b50505091835250506001828101546020808401919091526002909301546001600160a01b03166040928301526107e6928401929092526000908301526003805492935091811061044957610449610731565b600091825260208220600390910201906104638282610621565b506000600182015560020180546001600160a01b031916905550505050565b6004602052816000526040600020818154811061049e57600080fd5b9060005260206000209060030201600091509150508060000180546104c290610747565b80601f01602080910402602001604051908101604052809291908181526020018280546104ee90610747565b801561053b5780601f106105105761010080835404028352916020019161053b565b820191906000526020600020905b81548152906001019060200180831161051e57829003601f168201915b5050505060018301546002909301549192916001600160a01b0316905083565b6000805481906104c290610747565b6003818154811061057a57600080fd5b90600052602060002090600302016000915090508060000180546104c290610747565b8280546105a990610747565b90600052602060002090601f0160209004810192826105cb5760008555610611565b82601f106105e457805160ff1916838001178555610611565b82800160010185558215610611579182015b828111156106115782518255916020019190600101906105f6565b5061061d92915061065e565b5090565b50805461062d90610747565b6000825580601f1061063d575050565b601f01602090049060005260206000209081019061065b919061065e565b50565b5b8082111561061d576000815560010161065f565b6000806040838503121561068657600080fd5b82356001600160a01b038116811461069d57600080fd5b946020939093013593505050565b606081526000845180606084015260005b818110156106d957602081880181015160808684010152016106bc565b818111156106eb576000608083860101525b506020830194909452506001600160a01b039190911660408201526080601f909201601f19160101919050565b60006020828403121561072a57600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061075b57607f821691505b60208210810361077b57634e487b7160e01b600052602260045260246000fd5b5091905056fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85ba26469706673582212201ddb430c2afca9261d27f2f8adf20c42c9053143157d5e2639ee05b53a5404d764736f6c634300080d0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7D7 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 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x335D00C2 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x9B3E2787 EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0xEE26FAC3 EQ PUSH2 0x86 JUMPI DUP1 PUSH4 0xF7746E36 EQ PUSH2 0x8E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xA1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6E PUSH2 0x69 CALLDATASIZE PUSH1 0x4 PUSH2 0x673 JUMP JUMPDEST PUSH2 0x482 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x6AB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6E PUSH2 0x55B JUMP JUMPDEST PUSH2 0x6E PUSH2 0x9C CALLDATASIZE PUSH1 0x4 PUSH2 0x718 JUMP JUMPDEST PUSH2 0x56A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP1 DUP3 ADD DUP4 MSTORE PUSH1 0x6 PUSH1 0x60 DUP1 DUP5 ADD SWAP2 DUP3 MSTORE PUSH6 0x546F796F7461 PUSH1 0xD0 SHL PUSH1 0x80 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 DUP5 MSTORE PUSH2 0x7E1 PUSH1 0x20 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE CALLER DUP6 DUP8 ADD DUP2 SWAP1 MSTORE DUP7 MLOAD SWAP5 DUP6 ADD DUP8 MSTORE PUSH1 0x4 DUP6 DUP5 ADD DUP2 DUP2 MSTORE PUSH4 0x41756469 PUSH1 0xE0 SHL SWAP6 DUP8 ADD SWAP6 SWAP1 SWAP6 MSTORE SWAP4 DUP6 MSTORE PUSH2 0x7E2 DUP6 DUP4 ADD MSTORE DUP5 DUP8 ADD DUP2 SWAP1 MSTORE DUP7 MLOAD DUP1 DUP5 ADD DUP9 MSTORE SWAP3 DUP4 MSTORE PUSH1 0x0 DUP4 DUP4 ADD DUP2 DUP2 MSTORE DUP5 DUP10 ADD DUP3 DUP2 MSTORE DUP10 MLOAD DUP1 DUP12 ADD SWAP1 SWAP11 MSTORE SWAP6 DUP10 MSTORE PUSH4 0x119BDC99 PUSH1 0xE2 SHL DUP10 DUP6 ADD MSTORE SWAP8 DUP5 MSTORE PUSH2 0x7DF SWAP1 SWAP8 MSTORE SWAP1 SWAP3 MSTORE PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP6 DUP2 SWAP1 MSTORE DUP5 MLOAD DUP1 MLOAD SWAP6 SWAP7 SWAP5 SWAP6 SWAP3 SWAP5 DUP8 SWAP5 SWAP3 MUL PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x782 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE ADD SWAP3 PUSH2 0x182 SWAP3 DUP5 SWAP3 ADD SWAP1 PUSH2 0x59D JUMP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x1 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x40 SWAP1 SWAP4 ADD MLOAD PUSH1 0x2 SWAP1 SWAP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP3 DUP4 ADD DUP2 SSTORE PUSH1 0x0 DUP2 SWAP1 MSTORE DUP5 MLOAD DUP1 MLOAD DUP7 SWAP5 SWAP1 SWAP3 MUL PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x782 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE ADD SWAP3 PUSH2 0x1F4 SWAP3 DUP5 SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x59D JUMP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x1 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x40 SWAP1 SWAP4 ADD MLOAD PUSH1 0x2 SWAP1 SWAP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP3 DUP4 ADD DUP2 SSTORE PUSH1 0x0 DUP2 SWAP1 MSTORE DUP4 MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP1 SWAP3 MUL PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x782 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE ADD SWAP3 PUSH2 0x266 SWAP3 DUP5 SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x59D JUMP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x1 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x40 SWAP4 DUP5 ADD MLOAD PUSH1 0x2 SWAP1 SWAP4 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH1 0xA0 DUP2 ADD DUP5 MSTORE PUSH1 0x5 PUSH1 0x60 DUP3 ADD SWAP1 DUP2 MSTORE PUSH5 0x486F6E6461 PUSH1 0xD8 SHL PUSH1 0x80 DUP4 ADD MSTORE DUP2 MSTORE PUSH2 0x7E0 DUP2 DUP4 ADD MSTORE CALLER SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x3 DUP1 SLOAD SWAP3 DUP4 ADD DUP2 SSTORE PUSH1 0x0 DUP2 SWAP1 MSTORE DUP4 MLOAD DUP1 MLOAD SWAP4 SWAP1 SWAP2 MUL PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x782 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE ADD SWAP3 PUSH2 0x305 SWAP3 DUP5 SWAP3 ADD SWAP1 PUSH2 0x59D JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP POP POP PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x355 JUMPI PUSH2 0x355 PUSH2 0x731 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x37E SWAP1 PUSH2 0x747 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AA SWAP1 PUSH2 0x747 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3F7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3CC JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3F7 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DA JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 DUP2 ADD SLOAD PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 SWAP1 SWAP4 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 SWAP3 DUP4 ADD MSTORE PUSH2 0x7E6 SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x0 SWAP1 DUP4 ADD MSTORE PUSH1 0x3 DUP1 SLOAD SWAP3 SWAP4 POP SWAP2 DUP2 LT PUSH2 0x449 JUMPI PUSH2 0x449 PUSH2 0x731 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD SWAP1 PUSH2 0x463 DUP3 DUP3 PUSH2 0x621 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x49E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP DUP1 PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x4C2 SWAP1 PUSH2 0x747 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4EE SWAP1 PUSH2 0x747 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x53B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x510 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x53B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x51E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x2 SWAP1 SWAP4 ADD SLOAD SWAP2 SWAP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD DUP2 SWAP1 PUSH2 0x4C2 SWAP1 PUSH2 0x747 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x57A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x4C2 SWAP1 PUSH2 0x747 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x5A9 SWAP1 PUSH2 0x747 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x5CB JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x611 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x5E4 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x611 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x611 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x611 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x5F6 JUMP JUMPDEST POP PUSH2 0x61D SWAP3 SWAP2 POP PUSH2 0x65E JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x62D SWAP1 PUSH2 0x747 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x63D JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x65B SWAP2 SWAP1 PUSH2 0x65E JUMP JUMPDEST POP JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x61D JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x65F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x686 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x69D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 DUP5 MLOAD DUP1 PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x6D9 JUMPI PUSH1 0x20 DUP2 DUP9 ADD DUP2 ADD MLOAD PUSH1 0x80 DUP7 DUP5 ADD ADD MSTORE ADD PUSH2 0x6BC JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x6EB JUMPI PUSH1 0x0 PUSH1 0x80 DUP4 DUP7 ADD ADD MSTORE JUMPDEST POP PUSH1 0x20 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x72A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x75B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x77B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID 0xC2 JUMPI GAS 0xE SWAP15 MSIZE EXTCODECOPY STOP 0xF9 MSIZE 0xF8 0xC9 0x2F SLT 0xDB 0x28 PUSH10 0xC3395A3B0502D05E2516 DIFFICULTY PUSH16 0x71F85BA26469706673582212201DDB43 0xC 0x2A 0xFC 0xA9 0x26 SAR 0x27 CALLCODE 0xF8 0xAD CALLCODE 0xC TIMESTAMP 0xC9 SDIV BALANCE NUMBER ISZERO PUSH30 0x5E2639EE05B53A5404D764736F6C634300080D0033000000000000000000 ",
"sourceMap": "151:764:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@car_11": {
"entryPoint": 1371,
"id": 11,
"parameterSlots": 0,
"returnSlots": 0
},
"@cars_15": {
"entryPoint": 1386,
"id": 15,
"parameterSlots": 0,
"returnSlots": 0
},
"@examples_119": {
"entryPoint": 161,
"id": 119,
"parameterSlots": 0,
"returnSlots": 0
},
"@owners_21": {
"entryPoint": 1154,
"id": 21,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_decode_tuple_t_addresst_uint256": {
"entryPoint": 1651,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 1816,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr_t_uint256_t_address__to_t_string_memory_ptr_t_uint256_t_address__fromStack_reversed": {
"entryPoint": 1707,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"extract_byte_array_length": {
"entryPoint": 1863,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x32": {
"entryPoint": 1841,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1830:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "101:267:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "147:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "156:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "159:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "149:6:1"
},
"nodeType": "YulFunctionCall",
"src": "149:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "149:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "122:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "131:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "118:3:1"
},
"nodeType": "YulFunctionCall",
"src": "118:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "143:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "114:3:1"
},
"nodeType": "YulFunctionCall",
"src": "114:32:1"
},
"nodeType": "YulIf",
"src": "111:52:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "172:36:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "198:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "185:12:1"
},
"nodeType": "YulFunctionCall",
"src": "185:23:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "176:5:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "271:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "280:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "283:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "273:6:1"
},
"nodeType": "YulFunctionCall",
"src": "273:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "273:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "230:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "241:5:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "256:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "261:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "252:3:1"
},
"nodeType": "YulFunctionCall",
"src": "252:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "265:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "248:3:1"
},
"nodeType": "YulFunctionCall",
"src": "248:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "237:3:1"
},
"nodeType": "YulFunctionCall",
"src": "237:31:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "227:2:1"
},
"nodeType": "YulFunctionCall",
"src": "227:42:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "220:6:1"
},
"nodeType": "YulFunctionCall",
"src": "220:50:1"
},
"nodeType": "YulIf",
"src": "217:70:1"
},
{
"nodeType": "YulAssignment",
"src": "296:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "306:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "296:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "320:42:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "347:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "358:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "343:3:1"
},
"nodeType": "YulFunctionCall",
"src": "343:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "330:12:1"
},
"nodeType": "YulFunctionCall",
"src": "330:32:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "320:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "59:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "70:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "82:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "90:6:1",
"type": ""
}
],
"src": "14:354:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "550:576:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "567:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "578:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "560:6:1"
},
"nodeType": "YulFunctionCall",
"src": "560:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "560:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "590:27:1",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "610:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "604:5:1"
},
"nodeType": "YulFunctionCall",
"src": "604:13:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "594:6:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "637:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "648:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "633:3:1"
},
"nodeType": "YulFunctionCall",
"src": "633:18:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "653:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "626:6:1"
},
"nodeType": "YulFunctionCall",
"src": "626:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "626:34:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "669:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "678:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "673:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "740:93:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "769:9:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "780:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "765:3:1"
},
"nodeType": "YulFunctionCall",
"src": "765:17:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "784:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "761:3:1"
},
"nodeType": "YulFunctionCall",
"src": "761:27:1"
},
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "804:6:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "812:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "800:3:1"
},
"nodeType": "YulFunctionCall",
"src": "800:14:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "816:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "796:3:1"
},
"nodeType": "YulFunctionCall",
"src": "796:25:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "790:5:1"
},
"nodeType": "YulFunctionCall",
"src": "790:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "754:6:1"
},
"nodeType": "YulFunctionCall",
"src": "754:69:1"
},
"nodeType": "YulExpressionStatement",
"src": "754:69:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "699:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "702:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "696:2:1"
},
"nodeType": "YulFunctionCall",
"src": "696:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "710:21:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "712:17:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "721:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "724:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "717:3:1"
},
"nodeType": "YulFunctionCall",
"src": "717:12:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "712:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "692:3:1",
"statements": []
},
"src": "688:145:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "867:67:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "896:9:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "907:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "892:3:1"
},
"nodeType": "YulFunctionCall",
"src": "892:22:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "916:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "888:3:1"
},
"nodeType": "YulFunctionCall",
"src": "888:32:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "922:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "881:6:1"
},
"nodeType": "YulFunctionCall",
"src": "881:43:1"
},
"nodeType": "YulExpressionStatement",
"src": "881:43:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "848:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "851:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "845:2:1"
},
"nodeType": "YulFunctionCall",
"src": "845:13:1"
},
"nodeType": "YulIf",
"src": "842:92:1"
},
{
"nodeType": "YulAssignment",
"src": "943:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "959:9:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "978:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "986:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "974:3:1"
},
"nodeType": "YulFunctionCall",
"src": "974:15:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "995:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "991:3:1"
},
"nodeType": "YulFunctionCall",
"src": "991:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "970:3:1"
},
"nodeType": "YulFunctionCall",
"src": "970:29:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "955:3:1"
},
"nodeType": "YulFunctionCall",
"src": "955:45:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1002:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "951:3:1"
},
"nodeType": "YulFunctionCall",
"src": "951:55:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "943:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1026:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1037:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1022:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1022:20:1"
},
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1044:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1015:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1015:36:1"
},
"nodeType": "YulExpressionStatement",
"src": "1015:36:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1071:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1082:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1067:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1067:18:1"
},
{
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "1091:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1107:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1112:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "1103:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1103:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1116:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1099:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1099:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1087:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1087:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1060:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1060:60:1"
},
"nodeType": "YulExpressionStatement",
"src": "1060:60:1"
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr_t_uint256_t_address__to_t_string_memory_ptr_t_uint256_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "503:9:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "514:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "522:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "530:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "541:4:1",
"type": ""
}
],
"src": "373:753:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1201:110:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1247:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1256:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1259:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1249:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1249:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1249:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1222:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1231:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1218:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1218:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1243:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1214:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1214:32:1"
},
"nodeType": "YulIf",
"src": "1211:52:1"
},
{
"nodeType": "YulAssignment",
"src": "1272:33:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1295:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1282:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1282:23:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1272:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1167:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1178:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1190:6:1",
"type": ""
}
],
"src": "1131:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1348:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1365:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1372:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1377:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "1368:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1368:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1358:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1358:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "1358:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1405:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1408:4:1",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1398:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1398:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1398:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1429:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1432:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1422:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1422:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1422:15:1"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "1316:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1503:325:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1513:22:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1527:1:1",
"type": "",
"value": "1"
},
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "1530:4:1"
}
],
"functionName": {
"name": "shr",
"nodeType": "YulIdentifier",
"src": "1523:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1523:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1513:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1544:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "1574:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1580:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1570:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1570:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "1548:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1621:31:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1623:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1637:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1645:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1633:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1633:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1623:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "1601:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1594:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1594:26:1"
},
"nodeType": "YulIf",
"src": "1591:61:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1711:111:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1732:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1739:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1744:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "1735:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1735:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1725:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1725:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "1725:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1776:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1779:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1769:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1769:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1769:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1804:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1807:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1797:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1797:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1797:15:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "1667:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1690:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1698:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1687:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1687:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1664:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1664:38:1"
},
"nodeType": "YulIf",
"src": "1661:161:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "1483:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1492:6:1",
"type": ""
}
],
"src": "1448:380:1"
}
]
},
"contents": "{\n { }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_string_memory_ptr_t_uint256_t_address__to_t_string_memory_ptr_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, 96)\n let length := mload(value0)\n mstore(add(headStart, 96), length)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n mstore(add(add(headStart, i), 128), mload(add(add(value0, i), 0x20)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 128), 0)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 128)\n mstore(add(headStart, 0x20), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c8063335d00c2146100515780639b3e27871461005b578063ee26fac314610086578063f7746e361461008e575b600080fd5b6100596100a1565b005b61006e610069366004610673565b610482565b60405161007d939291906106ab565b60405180910390f35b61006e61055b565b61006e61009c366004610718565b61056a565b6040805160a080820183526006606080840191825265546f796f746160d01b6080808601919091529184526107e160208086019190915233858701819052865194850187526004858401818152634175646960e01b958701959095529385526107e2858301528487018190528651808401885292835260008383018181528489018281528951808b01909a5295895263119bdc9960e21b898501529784526107df909752909252600380546001810182559581905284518051959694959294879492026000805160206107828339815191520192610182928492019061059d565b50602082810151600180840191909155604090930151600290920180546001600160a01b039093166001600160a01b031990931692909217909155600380549283018155600081905284518051869490920260008051602061078283398151915201926101f49284929091019061059d565b50602082810151600180840191909155604090930151600290920180546001600160a01b039093166001600160a01b031990931692909217909155600380549283018155600081905283518051859490920260008051602061078283398151915201926102669284929091019061059d565b50602082810151600180840191909155604093840151600290930180546001600160a01b039094166001600160a01b031990941693909317909255825160a08101845260056060820190815264486f6e646160d81b608083015281526107e0818301523393810193909352600380549283018155600081905283518051939091026000805160206107828339815191520192610305928492019061059d565b506020820151816001015560408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050506000600360008154811061035557610355610731565b906000526020600020906003020160405180606001604052908160008201805461037e90610747565b80601f01602080910402602001604051908101604052809291908181526020018280546103aa90610747565b80156103f75780601f106103cc576101008083540402835291602001916103f7565b820191906000526020600020905b8154815290600101906020018083116103da57829003601f168201915b50505091835250506001828101546020808401919091526002909301546001600160a01b03166040928301526107e6928401929092526000908301526003805492935091811061044957610449610731565b600091825260208220600390910201906104638282610621565b506000600182015560020180546001600160a01b031916905550505050565b6004602052816000526040600020818154811061049e57600080fd5b9060005260206000209060030201600091509150508060000180546104c290610747565b80601f01602080910402602001604051908101604052809291908181526020018280546104ee90610747565b801561053b5780601f106105105761010080835404028352916020019161053b565b820191906000526020600020905b81548152906001019060200180831161051e57829003601f168201915b5050505060018301546002909301549192916001600160a01b0316905083565b6000805481906104c290610747565b6003818154811061057a57600080fd5b90600052602060002090600302016000915090508060000180546104c290610747565b8280546105a990610747565b90600052602060002090601f0160209004810192826105cb5760008555610611565b82601f106105e457805160ff1916838001178555610611565b82800160010185558215610611579182015b828111156106115782518255916020019190600101906105f6565b5061061d92915061065e565b5090565b50805461062d90610747565b6000825580601f1061063d575050565b601f01602090049060005260206000209081019061065b919061065e565b50565b5b8082111561061d576000815560010161065f565b6000806040838503121561068657600080fd5b82356001600160a01b038116811461069d57600080fd5b946020939093013593505050565b606081526000845180606084015260005b818110156106d957602081880181015160808684010152016106bc565b818111156106eb576000608083860101525b506020830194909452506001600160a01b039190911660408201526080601f909201601f19160101919050565b60006020828403121561072a57600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061075b57607f821691505b60208210810361077b57634e487b7160e01b600052602260045260246000fd5b5091905056fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85ba26469706673582212201ddb430c2afca9261d27f2f8adf20c42c9053143157d5e2639ee05b53a5404d764736f6c634300080d0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x335D00C2 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x9B3E2787 EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0xEE26FAC3 EQ PUSH2 0x86 JUMPI DUP1 PUSH4 0xF7746E36 EQ PUSH2 0x8E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xA1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6E PUSH2 0x69 CALLDATASIZE PUSH1 0x4 PUSH2 0x673 JUMP JUMPDEST PUSH2 0x482 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x6AB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6E PUSH2 0x55B JUMP JUMPDEST PUSH2 0x6E PUSH2 0x9C CALLDATASIZE PUSH1 0x4 PUSH2 0x718 JUMP JUMPDEST PUSH2 0x56A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP1 DUP3 ADD DUP4 MSTORE PUSH1 0x6 PUSH1 0x60 DUP1 DUP5 ADD SWAP2 DUP3 MSTORE PUSH6 0x546F796F7461 PUSH1 0xD0 SHL PUSH1 0x80 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 DUP5 MSTORE PUSH2 0x7E1 PUSH1 0x20 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE CALLER DUP6 DUP8 ADD DUP2 SWAP1 MSTORE DUP7 MLOAD SWAP5 DUP6 ADD DUP8 MSTORE PUSH1 0x4 DUP6 DUP5 ADD DUP2 DUP2 MSTORE PUSH4 0x41756469 PUSH1 0xE0 SHL SWAP6 DUP8 ADD SWAP6 SWAP1 SWAP6 MSTORE SWAP4 DUP6 MSTORE PUSH2 0x7E2 DUP6 DUP4 ADD MSTORE DUP5 DUP8 ADD DUP2 SWAP1 MSTORE DUP7 MLOAD DUP1 DUP5 ADD DUP9 MSTORE SWAP3 DUP4 MSTORE PUSH1 0x0 DUP4 DUP4 ADD DUP2 DUP2 MSTORE DUP5 DUP10 ADD DUP3 DUP2 MSTORE DUP10 MLOAD DUP1 DUP12 ADD SWAP1 SWAP11 MSTORE SWAP6 DUP10 MSTORE PUSH4 0x119BDC99 PUSH1 0xE2 SHL DUP10 DUP6 ADD MSTORE SWAP8 DUP5 MSTORE PUSH2 0x7DF SWAP1 SWAP8 MSTORE SWAP1 SWAP3 MSTORE PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP6 DUP2 SWAP1 MSTORE DUP5 MLOAD DUP1 MLOAD SWAP6 SWAP7 SWAP5 SWAP6 SWAP3 SWAP5 DUP8 SWAP5 SWAP3 MUL PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x782 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE ADD SWAP3 PUSH2 0x182 SWAP3 DUP5 SWAP3 ADD SWAP1 PUSH2 0x59D JUMP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x1 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x40 SWAP1 SWAP4 ADD MLOAD PUSH1 0x2 SWAP1 SWAP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP3 DUP4 ADD DUP2 SSTORE PUSH1 0x0 DUP2 SWAP1 MSTORE DUP5 MLOAD DUP1 MLOAD DUP7 SWAP5 SWAP1 SWAP3 MUL PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x782 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE ADD SWAP3 PUSH2 0x1F4 SWAP3 DUP5 SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x59D JUMP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x1 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x40 SWAP1 SWAP4 ADD MLOAD PUSH1 0x2 SWAP1 SWAP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP3 DUP4 ADD DUP2 SSTORE PUSH1 0x0 DUP2 SWAP1 MSTORE DUP4 MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP1 SWAP3 MUL PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x782 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE ADD SWAP3 PUSH2 0x266 SWAP3 DUP5 SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x59D JUMP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x1 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x40 SWAP4 DUP5 ADD MLOAD PUSH1 0x2 SWAP1 SWAP4 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH1 0xA0 DUP2 ADD DUP5 MSTORE PUSH1 0x5 PUSH1 0x60 DUP3 ADD SWAP1 DUP2 MSTORE PUSH5 0x486F6E6461 PUSH1 0xD8 SHL PUSH1 0x80 DUP4 ADD MSTORE DUP2 MSTORE PUSH2 0x7E0 DUP2 DUP4 ADD MSTORE CALLER SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x3 DUP1 SLOAD SWAP3 DUP4 ADD DUP2 SSTORE PUSH1 0x0 DUP2 SWAP1 MSTORE DUP4 MLOAD DUP1 MLOAD SWAP4 SWAP1 SWAP2 MUL PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x782 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE ADD SWAP3 PUSH2 0x305 SWAP3 DUP5 SWAP3 ADD SWAP1 PUSH2 0x59D JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP POP POP PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x355 JUMPI PUSH2 0x355 PUSH2 0x731 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x37E SWAP1 PUSH2 0x747 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AA SWAP1 PUSH2 0x747 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3F7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3CC JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3F7 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DA JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 DUP2 ADD SLOAD PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 SWAP1 SWAP4 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 SWAP3 DUP4 ADD MSTORE PUSH2 0x7E6 SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x0 SWAP1 DUP4 ADD MSTORE PUSH1 0x3 DUP1 SLOAD SWAP3 SWAP4 POP SWAP2 DUP2 LT PUSH2 0x449 JUMPI PUSH2 0x449 PUSH2 0x731 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD SWAP1 PUSH2 0x463 DUP3 DUP3 PUSH2 0x621 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x49E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP DUP1 PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x4C2 SWAP1 PUSH2 0x747 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4EE SWAP1 PUSH2 0x747 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x53B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x510 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x53B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x51E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x2 SWAP1 SWAP4 ADD SLOAD SWAP2 SWAP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD DUP2 SWAP1 PUSH2 0x4C2 SWAP1 PUSH2 0x747 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x57A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x4C2 SWAP1 PUSH2 0x747 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x5A9 SWAP1 PUSH2 0x747 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x5CB JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x611 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x5E4 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x611 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x611 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x611 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x5F6 JUMP JUMPDEST POP PUSH2 0x61D SWAP3 SWAP2 POP PUSH2 0x65E JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x62D SWAP1 PUSH2 0x747 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x63D JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x65B SWAP2 SWAP1 PUSH2 0x65E JUMP JUMPDEST POP JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x61D JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x65F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x686 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x69D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 DUP5 MLOAD DUP1 PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x6D9 JUMPI PUSH1 0x20 DUP2 DUP9 ADD DUP2 ADD MLOAD PUSH1 0x80 DUP7 DUP5 ADD ADD MSTORE ADD PUSH2 0x6BC JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x6EB JUMPI PUSH1 0x0 PUSH1 0x80 DUP4 DUP7 ADD ADD MSTORE JUMPDEST POP PUSH1 0x20 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x72A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x75B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x77B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID 0xC2 JUMPI GAS 0xE SWAP15 MSIZE EXTCODECOPY STOP 0xF9 MSIZE 0xF8 0xC9 0x2F SLT 0xDB 0x28 PUSH10 0xC3395A3B0502D05E2516 DIFFICULTY PUSH16 0x71F85BA26469706673582212201DDB43 0xC 0x2A 0xFC 0xA9 0x26 SAR 0x27 CALLCODE 0xF8 0xAD CALLCODE 0xC TIMESTAMP 0xC9 SDIV BALANCE NUMBER ISZERO PUSH30 0x5E2639EE05B53A5404D764736F6C634300080D0033000000000000000000 ",
"sourceMap": "151:764:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;352:560;;;:::i;:::-;;306:39;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;263:14;;;:::i;283:17::-;;;;;;:::i;:::-;;:::i;352:560::-;409:31;;;;;;;;;;;;;;;;;-1:-1:-1;;;409:31:0;;;;;;;;;;;423:4;409:31;;;;;;;;429:10;409:31;;;;;;468:51;;;;;;;;;;;;;;-1:-1:-1;;;468:51:0;;;;;;;;;;494:4;468:51;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;554:19:0;;;;;;;;;;;-1:-1:-1;;;554:19:0;;;;;;;595:4;583:16;;;609:23;;;651:4;:15;;;;;;;;;;;;;;;409:31;;468:51;;-1:-1:-1;;409:31:0;;651:15;;-1:-1:-1;;;;;;;;;;;651:15:0;;;;;;;;;:::i;:::-;-1:-1:-1;651:15:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;651:15:0;;;-1:-1:-1;;;;;;651:15:0;;;;;;;;;;676:4;:15;;;;;;;651;676;;;;;;;686:4;;676:15;;;-1:-1:-1;;;;;;;;;;;676:15:0;;;;;;;;;;;:::i;:::-;-1:-1:-1;676:15:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;676:15:0;;;-1:-1:-1;;;;;;676:15:0;;;;;;;;;;709:4;:15;;;;;;;676;709;;;;;;;719:4;;709:15;;;-1:-1:-1;;;;;;;;;;;709:15:0;;;;;;;;;;;:::i;:::-;-1:-1:-1;709:15:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;709:15:0;;;-1:-1:-1;;;;;;709:15:0;;;;;;;;;;745:30;;;;;;;;;;;;;;-1:-1:-1;;;745:30:0;;;;;;758:4;745:30;;;;764:10;745:30;;;;;;;735:4;:41;;;;;;;709:15;735:41;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;735:41:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;735:41:0;;;;;-1:-1:-1;;;;;735:41:0;;;;;;;;787:15;805:4;810:1;805:7;;;;;;;;:::i;:::-;;;;;;;;;;;787:25;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;787:25:0;;;-1:-1:-1;;787:25:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;787:25:0;;;;;;849:4;837:9;;;:16;;;;-1:-1:-1;871:10:0;;;864:17;898:4;:7;;787:25;;-1:-1:-1;898:4:0;:7;;;;;;:::i;:::-;;;;;;;;;;;;;;891:14;898:7;;891:14;:::i;:::-;-1:-1:-1;891:14:0;;;;;;;;;-1:-1:-1;;;;;;891:14:0;;;-1:-1:-1;;;;352:560:0:o;306:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;306:39:0;;;;;;;;;;;;-1:-1:-1;;;;;306:39:0;;-1:-1:-1;306:39:0;:::o;263:14::-;;;;;;;;;:::i;283:17::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;14:354:1;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;185:23;;-1:-1:-1;;;;;237:31:1;;227:42;;217:70;;283:1;280;273:12;217:70;306:5;358:2;343:18;;;;330:32;;-1:-1:-1;;;14:354:1:o;373:753::-;578:2;567:9;560:21;541:4;610:6;604:13;653:6;648:2;637:9;633:18;626:34;678:1;688:145;702:6;699:1;696:13;688:145;;;816:4;800:14;;;796:25;;790:32;784:3;765:17;;;761:27;754:69;717:12;688:145;;;851:6;848:1;845:13;842:92;;;922:1;916:3;907:6;896:9;892:22;888:32;881:43;842:92;-1:-1:-1;1037:4:1;1022:20;;1015:36;;;;-1:-1:-1;;;;;;1087:32:1;;;;1082:2;1067:18;;1060:60;1002:3;995:2;974:15;;;-1:-1:-1;;970:29:1;955:45;951:55;;;-1:-1:-1;373:753:1:o;1131:180::-;1190:6;1243:2;1231:9;1222:7;1218:23;1214:32;1211:52;;;1259:1;1256;1249:12;1211:52;-1:-1:-1;1282:23:1;;1131:180;-1:-1:-1;1131:180:1:o;1316:127::-;1377:10;1372:3;1368:20;1365:1;1358:31;1408:4;1405:1;1398:15;1432:4;1429:1;1422:15;1448:380;1527:1;1523:12;;;;1570;;;1591:61;;1645:4;1637:6;1633:17;1623:27;;1591:61;1698:2;1690:6;1687:14;1667:18;1664:38;1661:161;;1744:10;1739:3;1735:20;1732:1;1725:31;1779:4;1776:1;1769:15;1807:4;1804:1;1797:15;1661:161;;1448:380;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "401400",
"executionCost": "436",
"totalCost": "401836"
},
"external": {
"car()": "infinite",
"cars(uint256)": "infinite",
"examples()": "infinite",
"owners(address,uint256)": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 151,
"end": 915,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 151,
"end": 915,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 151,
"end": 915,
"name": "MSTORE",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "DUP1",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "ISZERO",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 151,
"end": 915,
"name": "JUMPI",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 151,
"end": 915,
"name": "DUP1",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "REVERT",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 151,
"end": 915,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "POP",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 151,
"end": 915,
"name": "DUP1",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 151,
"end": 915,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 151,
"end": 915,
"name": "CODECOPY",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 151,
"end": 915,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a26469706673582212201ddb430c2afca9261d27f2f8adf20c42c9053143157d5e2639ee05b53a5404d764736f6c634300080d0033",
".code": [
{
"begin": 151,
"end": 915,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 151,
"end": 915,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 151,
"end": 915,
"name": "MSTORE",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "DUP1",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "ISZERO",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 151,
"end": 915,
"name": "JUMPI",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 151,
"end": 915,
"name": "DUP1",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "REVERT",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 151,
"end": 915,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "POP",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 151,
"end": 915,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "LT",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 151,
"end": 915,
"name": "JUMPI",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 151,
"end": 915,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 151,
"end": 915,
"name": "SHR",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "DUP1",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "PUSH",
"source": 0,
"value": "335D00C2"
},
{
"begin": 151,
"end": 915,
"name": "EQ",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 151,
"end": 915,
"name": "JUMPI",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "DUP1",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "PUSH",
"source": 0,
"value": "9B3E2787"
},
{
"begin": 151,
"end": 915,
"name": "EQ",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 151,
"end": 915,
"name": "JUMPI",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "DUP1",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "PUSH",
"source": 0,
"value": "EE26FAC3"
},
{
"begin": 151,
"end": 915,
"name": "EQ",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 151,
"end": 915,
"name": "JUMPI",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "DUP1",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "PUSH",
"source": 0,
"value": "F7746E36"
},
{
"begin": 151,
"end": 915,
"name": "EQ",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "PUSH [tag]",
"source": 0,
"value": "6"
},
{
"begin": 151,
"end": 915,
"name": "JUMPI",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 151,
"end": 915,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 151,
"end": 915,
"name": "DUP1",
"source": 0
},
{
"begin": 151,
"end": 915,
"name": "REVERT",
"source": 0
},
{
"begin": 352,
"end": 912,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 352,
"end": 912,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 352,
"end": 912,
"name": "PUSH [tag]",
"source": 0,
"value": "7"
},
{
"begin": 352,
"end": 912,
"name": "PUSH [tag]",
"source": 0,
"value": "8"
},
{
"begin": 352,
"end": 912,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 352,
"end": 912,
"name": "tag",
"source": 0,
"value": "7"
},
{
"begin": 352,
"end": 912,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 352,
"end": 912,
"name": "STOP",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 306,
"end": 345,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 306,
"end": 345,
"name": "PUSH [tag]",
"source": 0,
"value": "10"
},
{
"begin": 306,
"end": 345,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 306,
"end": 345,
"name": "PUSH [tag]",
"source": 0,
"value": "11"
},
{
"begin": 306,
"end": 345,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 306,
"end": 345,
"name": "tag",
"source": 0,
"value": "10"
},
{
"begin": 306,
"end": 345,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH [tag]",
"source": 0,
"value": "12"
},
{
"begin": 306,
"end": 345,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 306,
"end": 345,
"name": "tag",
"source": 0,
"value": "9"
},
{
"begin": 306,
"end": 345,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 306,
"end": 345,
"name": "MLOAD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH [tag]",
"source": 0,
"value": "13"
},
{
"begin": 306,
"end": 345,
"name": "SWAP4",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP3",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP2",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH [tag]",
"source": 0,
"value": "14"
},
{
"begin": 306,
"end": 345,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 306,
"end": 345,
"name": "tag",
"source": 0,
"value": "13"
},
{
"begin": 306,
"end": 345,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 306,
"end": 345,
"name": "MLOAD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP2",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SUB",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "RETURN",
"source": 0
},
{
"begin": 263,
"end": 277,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 263,
"end": 277,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 263,
"end": 277,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 263,
"end": 277,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 263,
"end": 277,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 283,
"end": 300,
"name": "tag",
"source": 0,
"value": "6"
},
{
"begin": 283,
"end": 300,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 283,
"end": 300,
"name": "PUSH [tag]",
"source": 0,
"value": "19"
},
{
"begin": 283,
"end": 300,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 283,
"end": 300,
"name": "PUSH [tag]",
"source": 0,
"value": "20"
},
{
"begin": 283,
"end": 300,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 283,
"end": 300,
"name": "tag",
"source": 0,
"value": "19"
},
{
"begin": 283,
"end": 300,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "PUSH [tag]",
"source": 0,
"value": "21"
},
{
"begin": 283,
"end": 300,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 352,
"end": 912,
"name": "tag",
"source": 0,
"value": "8"
},
{
"begin": 352,
"end": 912,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 409,
"end": 440,
"name": "DUP1",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "MLOAD",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "PUSH",
"source": 0,
"value": "A0"
},
{
"begin": 409,
"end": 440,
"name": "DUP1",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "DUP3",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "ADD",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "DUP4",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "MSTORE",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "PUSH",
"source": 0,
"value": "6"
},
{
"begin": 409,
"end": 440,
"name": "PUSH",
"source": 0,
"value": "60"
},
{
"begin": 409,
"end": 440,
"name": "DUP1",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "DUP5",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "ADD",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "SWAP2",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "DUP3",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "MSTORE",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "546F796F7461"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "D0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 409,
"end": 440,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 409,
"end": 440,
"name": "DUP1",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "DUP7",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "ADD",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "SWAP2",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "SWAP1",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "SWAP2",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "MSTORE",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "SWAP2",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "DUP5",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "MSTORE",
"source": 0
},
{
"begin": 423,
"end": 427,
"name": "PUSH",
"source": 0,
"value": "7E1"
},
{
"begin": 409,
"end": 440,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 409,
"end": 440,
"name": "DUP1",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "DUP7",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "ADD",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "SWAP2",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "SWAP1",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "SWAP2",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "MSTORE",
"source": 0
},
{
"begin": 429,
"end": 439,
"name": "CALLER",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "DUP6",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "DUP8",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "ADD",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "DUP2",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "SWAP1",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "MSTORE",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "DUP7",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "MLOAD",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "SWAP5",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "DUP6",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "ADD",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "DUP8",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "MSTORE",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 468,
"end": 519,
"name": "DUP6",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "DUP5",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "ADD",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "DUP2",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "DUP2",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "MSTORE",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "41756469"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "E0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 468,
"end": 519,
"name": "SWAP6",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "DUP8",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "ADD",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "SWAP6",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "SWAP1",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "SWAP6",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "MSTORE",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "SWAP4",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "DUP6",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "MSTORE",
"source": 0
},
{
"begin": 494,
"end": 498,
"name": "PUSH",
"source": 0,
"value": "7E2"
},
{
"begin": 468,
"end": 519,
"name": "DUP6",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "DUP4",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "ADD",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "MSTORE",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "DUP5",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "DUP8",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "ADD",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "DUP2",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "SWAP1",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "MSTORE",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "DUP7",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "MLOAD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP5",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "ADD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP9",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "MSTORE",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SWAP3",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP4",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "MSTORE",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "0"
},
{
"begin": -1,
"end": -1,
"name": "DUP4",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP4",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "ADD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP2",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP2",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "MSTORE",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP5",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP10",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "ADD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP3",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP2",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "MSTORE",
"source": -1
},
{
"begin": 554,
"end": 573,
"name": "DUP10",
"source": 0
},
{
"begin": 554,
"end": 573,
"name": "MLOAD",
"source": 0
},
{
"begin": 554,
"end": 573,
"name": "DUP1",
"source": 0
},
{
"begin": 554,
"end": 573,
"name": "DUP12",
"source": 0
},
{
"begin": 554,
"end": 573,
"name": "ADD",
"source": 0
},
{
"begin": 554,
"end": 573,
"name": "SWAP1",
"source": 0
},
{
"begin": 554,
"end": 573,
"name": "SWAP11",
"source": 0
},
{
"begin": 554,
"end": 573,
"name": "MSTORE",
"source": 0
},
{
"begin": 554,
"end": 573,
"name": "SWAP6",
"source": 0
},
{
"begin": 554,
"end": 573,
"name": "DUP10",
"source": 0
},
{
"begin": 554,
"end": 573,
"name": "MSTORE",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "119BDC99"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "E2"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 554,
"end": 573,
"name": "DUP10",
"source": 0
},
{
"begin": 554,
"end": 573,
"name": "DUP6",
"source": 0
},
{
"begin": 554,
"end": 573,
"name": "ADD",
"source": 0
},
{
"begin": 554,
"end": 573,
"name": "MSTORE",
"source": 0
},
{
"begin": 554,
"end": 573,
"name": "SWAP8",
"source": 0
},
{
"begin": 554,
"end": 573,
"name": "DUP5",
"source": 0
},
{
"begin": 554,
"end": 573,
"name": "MSTORE",
"source": 0
},
{
"begin": 595,
"end": 599,
"name": "PUSH",
"source": 0,
"value": "7DF"
},
{
"begin": 583,
"end": 599,
"name": "SWAP1",
"source": 0
},
{
"begin": 583,
"end": 599,
"name": "SWAP8",
"source": 0
},
{
"begin": 583,
"end": 599,
"name": "MSTORE",
"source": 0
},
{
"begin": 609,
"end": 632,
"name": "SWAP1",
"source": 0
},
{
"begin": 609,
"end": 632,
"name": "SWAP3",
"source": 0
},
{
"begin": 609,
"end": 632,
"name": "MSTORE",
"source": 0
},
{
"begin": 651,
"end": 655,
"name": "PUSH",
"source": 0,
"value": "3"
},
{
"begin": 651,
"end": 666,
"name": "DUP1",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SLOAD",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 651,
"end": 666,
"name": "DUP2",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "ADD",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "DUP3",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SSTORE",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SWAP6",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "DUP2",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SWAP1",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "MSTORE",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "DUP5",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "MLOAD",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "DUP1",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "MLOAD",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "SWAP6",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "SWAP7",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "SWAP5",
"source": 0
},
{
"begin": 468,
"end": 519,
"name": "SWAP6",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "SWAP3",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SWAP5",
"source": -1
},
{
"begin": 409,
"end": 440,
"name": "DUP8",
"source": 0
},
{
"begin": 409,
"end": 440,
"name": "SWAP5",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SWAP3",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "MUL",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "0"
},
{
"begin": -1,
"end": -1,
"name": "DUP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "MLOAD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "20"
},
{
"begin": -1,
"end": -1,
"name": "PUSH data",
"source": -1,
"value": "2584DB4A68AA8B172F70BC04E2E74541617C003374DE6EB4B295E823E5BEAB01"
},
{
"begin": -1,
"end": -1,
"name": "DUP4",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "CODECOPY",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP2",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "MLOAD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SWAP2",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "MSTORE",
"source": -1
},
{
"begin": 651,
"end": 666,
"name": "ADD",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SWAP3",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "PUSH [tag]",
"source": 0,
"value": "27"
},
{
"begin": 651,
"end": 666,
"name": "SWAP3",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "DUP5",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SWAP3",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "ADD",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SWAP1",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "PUSH [tag]",
"source": 0,
"value": "28"
},
{
"begin": 651,
"end": 666,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 651,
"end": 666,
"name": "tag",
"source": 0,
"value": "27"
},
{
"begin": 651,
"end": 666,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 651,
"end": 666,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 651,
"end": 666,
"name": "DUP3",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "DUP2",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "ADD",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "MLOAD",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 651,
"end": 666,
"name": "DUP1",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "DUP5",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "ADD",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SWAP2",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SWAP1",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SWAP2",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SSTORE",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 651,
"end": 666,
"name": "SWAP1",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SWAP4",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "ADD",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "MLOAD",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "PUSH",
"source": 0,
"value": "2"
},
{
"begin": 651,
"end": 666,
"name": "SWAP1",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SWAP3",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "ADD",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "DUP1",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 651,
"end": 666,
"name": "SWAP1",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SWAP4",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "AND",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "NOT",
"source": -1
},
{
"begin": 651,
"end": 666,
"name": "SWAP1",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SWAP4",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "AND",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SWAP3",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SWAP1",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SWAP3",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "OR",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SWAP1",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SWAP2",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "SSTORE",
"source": 0
},
{
"begin": 676,
"end": 680,
"name": "PUSH",
"source": 0,
"value": "3"
},
{
"begin": 676,
"end": 691,
"name": "DUP1",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SLOAD",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SWAP3",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "DUP4",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "ADD",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "DUP2",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SSTORE",
"source": 0
},
{
"begin": 651,
"end": 666,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 676,
"end": 691,
"name": "DUP2",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SWAP1",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "MSTORE",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "DUP5",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "MLOAD",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "DUP1",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "MLOAD",
"source": 0
},
{
"begin": 686,
"end": 690,
"name": "DUP7",
"source": 0
},
{
"begin": 686,
"end": 690,
"name": "SWAP5",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SWAP1",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SWAP3",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "MUL",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "0"
},
{
"begin": -1,
"end": -1,
"name": "DUP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "MLOAD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "20"
},
{
"begin": -1,
"end": -1,
"name": "PUSH data",
"source": -1,
"value": "2584DB4A68AA8B172F70BC04E2E74541617C003374DE6EB4B295E823E5BEAB01"
},
{
"begin": -1,
"end": -1,
"name": "DUP4",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "CODECOPY",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP2",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "MLOAD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SWAP2",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "MSTORE",
"source": -1
},
{
"begin": 676,
"end": 691,
"name": "ADD",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SWAP3",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "PUSH [tag]",
"source": 0,
"value": "30"
},
{
"begin": 676,
"end": 691,
"name": "SWAP3",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "DUP5",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SWAP3",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SWAP1",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SWAP2",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "ADD",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SWAP1",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "PUSH [tag]",
"source": 0,
"value": "28"
},
{
"begin": 676,
"end": 691,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 676,
"end": 691,
"name": "tag",
"source": 0,
"value": "30"
},
{
"begin": 676,
"end": 691,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 676,
"end": 691,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 676,
"end": 691,
"name": "DUP3",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "DUP2",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "ADD",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "MLOAD",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 676,
"end": 691,
"name": "DUP1",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "DUP5",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "ADD",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SWAP2",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SWAP1",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SWAP2",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SSTORE",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 676,
"end": 691,
"name": "SWAP1",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SWAP4",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "ADD",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "MLOAD",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "PUSH",
"source": 0,
"value": "2"
},
{
"begin": 676,
"end": 691,
"name": "SWAP1",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SWAP3",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "ADD",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "DUP1",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 676,
"end": 691,
"name": "SWAP1",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SWAP4",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "AND",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "NOT",
"source": -1
},
{
"begin": 676,
"end": 691,
"name": "SWAP1",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SWAP4",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "AND",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SWAP3",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SWAP1",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SWAP3",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "OR",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SWAP1",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SWAP2",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "SSTORE",
"source": 0
},
{
"begin": 709,
"end": 713,
"name": "PUSH",
"source": 0,
"value": "3"
},
{
"begin": 709,
"end": 724,
"name": "DUP1",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SLOAD",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SWAP3",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "DUP4",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "ADD",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "DUP2",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SSTORE",
"source": 0
},
{
"begin": 676,
"end": 691,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 709,
"end": 724,
"name": "DUP2",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SWAP1",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "MSTORE",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "DUP4",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "MLOAD",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "DUP1",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "MLOAD",
"source": 0
},
{
"begin": 719,
"end": 723,
"name": "DUP6",
"source": 0
},
{
"begin": 719,
"end": 723,
"name": "SWAP5",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SWAP1",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SWAP3",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "MUL",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "0"
},
{
"begin": -1,
"end": -1,
"name": "DUP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "MLOAD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "20"
},
{
"begin": -1,
"end": -1,
"name": "PUSH data",
"source": -1,
"value": "2584DB4A68AA8B172F70BC04E2E74541617C003374DE6EB4B295E823E5BEAB01"
},
{
"begin": -1,
"end": -1,
"name": "DUP4",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "CODECOPY",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP2",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "MLOAD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SWAP2",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "MSTORE",
"source": -1
},
{
"begin": 709,
"end": 724,
"name": "ADD",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SWAP3",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "PUSH [tag]",
"source": 0,
"value": "32"
},
{
"begin": 709,
"end": 724,
"name": "SWAP3",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "DUP5",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SWAP3",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SWAP1",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SWAP2",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "ADD",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SWAP1",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "PUSH [tag]",
"source": 0,
"value": "28"
},
{
"begin": 709,
"end": 724,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 709,
"end": 724,
"name": "tag",
"source": 0,
"value": "32"
},
{
"begin": 709,
"end": 724,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 709,
"end": 724,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 709,
"end": 724,
"name": "DUP3",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "DUP2",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "ADD",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "MLOAD",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 709,
"end": 724,
"name": "DUP1",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "DUP5",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "ADD",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SWAP2",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SWAP1",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SWAP2",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SSTORE",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 709,
"end": 724,
"name": "SWAP4",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "DUP5",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "ADD",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "MLOAD",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "PUSH",
"source": 0,
"value": "2"
},
{
"begin": 709,
"end": 724,
"name": "SWAP1",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SWAP4",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "ADD",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "DUP1",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 709,
"end": 724,
"name": "SWAP1",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SWAP5",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "AND",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "NOT",
"source": -1
},
{
"begin": 709,
"end": 724,
"name": "SWAP1",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SWAP5",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "AND",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SWAP4",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SWAP1",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SWAP4",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "OR",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SWAP1",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SWAP3",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "SSTORE",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "DUP3",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "MLOAD",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "PUSH",
"source": 0,
"value": "A0"
},
{
"begin": 745,
"end": 775,
"name": "DUP2",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "ADD",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "DUP5",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "MSTORE",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "PUSH",
"source": 0,
"value": "5"
},
{
"begin": 745,
"end": 775,
"name": "PUSH",
"source": 0,
"value": "60"
},
{
"begin": 745,
"end": 775,
"name": "DUP3",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "ADD",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "SWAP1",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "DUP2",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "MSTORE",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "486F6E6461"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "D8"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 745,
"end": 775,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 745,
"end": 775,
"name": "DUP4",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "ADD",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "MSTORE",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "DUP2",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "MSTORE",
"source": 0
},
{
"begin": 758,
"end": 762,
"name": "PUSH",
"source": 0,
"value": "7E0"
},
{
"begin": 745,
"end": 775,
"name": "DUP2",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "DUP4",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "ADD",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "MSTORE",
"source": 0
},
{
"begin": 764,
"end": 774,
"name": "CALLER",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "SWAP4",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "DUP2",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "ADD",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "SWAP4",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "SWAP1",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "SWAP4",
"source": 0
},
{
"begin": 745,
"end": 775,
"name": "MSTORE",
"source": 0
},
{
"begin": 735,
"end": 739,
"name": "PUSH",
"source": 0,
"value": "3"
},
{
"begin": 735,
"end": 776,
"name": "DUP1",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "SLOAD",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "SWAP3",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "DUP4",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "ADD",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "DUP2",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "SSTORE",
"source": 0
},
{
"begin": 709,
"end": 724,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 735,
"end": 776,
"name": "DUP2",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "SWAP1",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "MSTORE",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "DUP4",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "MLOAD",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "DUP1",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "MLOAD",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "SWAP4",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "SWAP1",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "SWAP2",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "MUL",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "0"
},
{
"begin": -1,
"end": -1,
"name": "DUP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "MLOAD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "20"
},
{
"begin": -1,
"end": -1,
"name": "PUSH data",
"source": -1,
"value": "2584DB4A68AA8B172F70BC04E2E74541617C003374DE6EB4B295E823E5BEAB01"
},
{
"begin": -1,
"end": -1,
"name": "DUP4",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "CODECOPY",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP2",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "MLOAD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SWAP2",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "MSTORE",
"source": -1
},
{
"begin": 735,
"end": 776,
"name": "ADD",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "SWAP3",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "PUSH [tag]",
"source": 0,
"value": "34"
},
{
"begin": 735,
"end": 776,
"name": "SWAP3",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "DUP5",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "SWAP3",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "ADD",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "SWAP1",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "PUSH [tag]",
"source": 0,
"value": "28"
},
{
"begin": 735,
"end": 776,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 735,
"end": 776,
"name": "tag",
"source": 0,
"value": "34"
},
{
"begin": 735,
"end": 776,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "POP",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 735,
"end": 776,
"name": "DUP3",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "ADD",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "MLOAD",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "DUP2",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 735,
"end": 776,
"name": "ADD",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "SSTORE",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 735,
"end": 776,
"name": "DUP3",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "ADD",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "MLOAD",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "DUP2",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "PUSH",
"source": 0,
"value": "2"
},
{
"begin": 735,
"end": 776,
"name": "ADD",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 735,
"end": 776,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 735,
"end": 776,
"name": "EXP",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "DUP2",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "SLOAD",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "DUP2",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 735,
"end": 776,
"name": "MUL",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "NOT",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "AND",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "SWAP1",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "DUP4",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 735,
"end": 776,
"name": "AND",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "MUL",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "OR",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "SWAP1",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "SSTORE",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "POP",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "POP",
"source": 0
},
{
"begin": 735,
"end": 776,
"name": "POP",
"source": 0
},
{
"begin": 787,
"end": 802,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 805,
"end": 809,
"name": "PUSH",
"source": 0,
"value": "3"
},
{
"begin": 810,
"end": 811,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 805,
"end": 812,
"name": "DUP2",
"source": 0
},
{
"begin": 805,
"end": 812,
"name": "SLOAD",
"source": 0
},
{
"begin": 805,
"end": 812,
"name": "DUP2",
"source": 0
},
{
"begin": 805,
"end": 812,
"name": "LT",
"source": 0
},
{
"begin": 805,
"end": 812,
"name": "PUSH [tag]",
"source": 0,
"value": "36"
},
{
"begin": 805,
"end": 812,
"name": "JUMPI",
"source": 0
},
{
"begin": 805,
"end": 812,
"name": "PUSH [tag]",
"source": 0,
"value": "36"
},
{
"begin": 805,
"end": 812,
"name": "PUSH [tag]",
"source": 0,
"value": "37"
},
{
"begin": 805,
"end": 812,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 805,
"end": 812,
"name": "tag",
"source": 0,
"value": "36"
},
{
"begin": 805,
"end": 812,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 805,
"end": 812,
"name": "SWAP1",
"source": 0
},
{
"begin": 805,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 805,
"end": 812,
"name": "MSTORE",
"source": 0
},
{
"begin": 805,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 805,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 805,
"end": 812,
"name": "KECCAK256",
"source": 0
},
{
"begin": 805,
"end": 812,
"name": "SWAP1",
"source": 0
},
{
"begin": 805,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "3"
},
{
"begin": 805,
"end": 812,
"name": "MUL",
"source": 0
},
{
"begin": 805,
"end": 812,
"name": "ADD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 787,
"end": 812,
"name": "MLOAD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "60"
},
{
"begin": 787,
"end": 812,
"name": "ADD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 787,
"end": 812,
"name": "MSTORE",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SWAP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP2",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 787,
"end": 812,
"name": "DUP3",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "ADD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SLOAD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH [tag]",
"source": 0,
"value": "39"
},
{
"begin": 787,
"end": 812,
"name": "SWAP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH [tag]",
"source": 0,
"value": "40"
},
{
"begin": 787,
"end": 812,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 787,
"end": 812,
"name": "tag",
"source": 0,
"value": "39"
},
{
"begin": 787,
"end": 812,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 787,
"end": 812,
"name": "ADD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 787,
"end": 812,
"name": "DUP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SWAP2",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DIV",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "MUL",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 787,
"end": 812,
"name": "ADD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 787,
"end": 812,
"name": "MLOAD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SWAP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP2",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "ADD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 787,
"end": 812,
"name": "MSTORE",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SWAP3",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SWAP2",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SWAP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP2",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP2",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "MSTORE",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 787,
"end": 812,
"name": "ADD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP3",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SLOAD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH [tag]",
"source": 0,
"value": "41"
},
{
"begin": 787,
"end": 812,
"name": "SWAP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH [tag]",
"source": 0,
"value": "40"
},
{
"begin": 787,
"end": 812,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 787,
"end": 812,
"name": "tag",
"source": 0,
"value": "41"
},
{
"begin": 787,
"end": 812,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "ISZERO",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH [tag]",
"source": 0,
"value": "42"
},
{
"begin": 787,
"end": 812,
"name": "JUMPI",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 787,
"end": 812,
"name": "LT",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH [tag]",
"source": 0,
"value": "43"
},
{
"begin": 787,
"end": 812,
"name": "JUMPI",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 787,
"end": 812,
"name": "DUP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP4",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SLOAD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DIV",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "MUL",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP4",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "MSTORE",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SWAP2",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 787,
"end": 812,
"name": "ADD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SWAP2",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH [tag]",
"source": 0,
"value": "42"
},
{
"begin": 787,
"end": 812,
"name": "JUMP",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "tag",
"source": 0,
"value": "43"
},
{
"begin": 787,
"end": 812,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP3",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "ADD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SWAP2",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SWAP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 787,
"end": 812,
"name": "MSTORE",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 787,
"end": 812,
"name": "KECCAK256",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SWAP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "tag",
"source": 0,
"value": "44"
},
{
"begin": 787,
"end": 812,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP2",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SLOAD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP2",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "MSTORE",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SWAP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 787,
"end": 812,
"name": "ADD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SWAP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 787,
"end": 812,
"name": "ADD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP4",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "GT",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH [tag]",
"source": 0,
"value": "44"
},
{
"begin": 787,
"end": 812,
"name": "JUMPI",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP3",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SWAP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SUB",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 787,
"end": 812,
"name": "AND",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP3",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "ADD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SWAP2",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "tag",
"source": 0,
"value": "42"
},
{
"begin": 787,
"end": 812,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 787,
"end": 812,
"name": "SWAP2",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP4",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "MSTORE",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 787,
"end": 812,
"name": "DUP3",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP2",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "ADD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SLOAD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 787,
"end": 812,
"name": "DUP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP5",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "ADD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SWAP2",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SWAP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SWAP2",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "MSTORE",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "2"
},
{
"begin": 787,
"end": 812,
"name": "SWAP1",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SWAP4",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "ADD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 787,
"end": 812,
"name": "AND",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 787,
"end": 812,
"name": "SWAP3",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "DUP4",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "ADD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "MSTORE",
"source": 0
},
{
"begin": 849,
"end": 853,
"name": "PUSH",
"source": 0,
"value": "7E6"
},
{
"begin": 837,
"end": 846,
"name": "SWAP3",
"source": 0
},
{
"begin": 837,
"end": 846,
"name": "DUP5",
"source": 0
},
{
"begin": 837,
"end": 846,
"name": "ADD",
"source": 0
},
{
"begin": 837,
"end": 853,
"name": "SWAP3",
"source": 0
},
{
"begin": 837,
"end": 853,
"name": "SWAP1",
"source": 0
},
{
"begin": 837,
"end": 853,
"name": "SWAP3",
"source": 0
},
{
"begin": 837,
"end": 853,
"name": "MSTORE",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "0"
},
{
"begin": 871,
"end": 881,
"name": "SWAP1",
"source": 0
},
{
"begin": 871,
"end": 881,
"name": "DUP4",
"source": 0
},
{
"begin": 871,
"end": 881,
"name": "ADD",
"source": 0
},
{
"begin": 864,
"end": 881,
"name": "MSTORE",
"source": 0
},
{
"begin": 898,
"end": 902,
"name": "PUSH",
"source": 0,
"value": "3"
},
{
"begin": 898,
"end": 905,
"name": "DUP1",
"source": 0
},
{
"begin": 898,
"end": 905,
"name": "SLOAD",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SWAP3",
"source": 0
},
{
"begin": 787,
"end": 812,
"name": "SWAP4",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 898,
"end": 902,
"name": "SWAP2",
"source": 0
},
{
"begin": 898,
"end": 905,
"name": "DUP2",
"source": 0
},
{
"begin": 898,
"end": 905,
"name": "LT",
"source": 0
},
{
"begin": 898,
"end": 905,
"name": "PUSH [tag]",
"source": 0,
"value": "46"
},
{
"begin": 898,
"end": 905,
"name": "JUMPI",
"source": 0
},
{
"begin": 898,
"end": 905,
"name": "PUSH [tag]",
"source": 0,
"value": "46"
},
{
"begin": 898,
"end": 905,
"name": "PUSH [tag]",
"source": 0,
"value": "37"
},
{
"begin": 898,
"end": 905,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 898,
"end": 905,
"name": "tag",
"source": 0,
"value": "46"
},
{
"begin": 898,
"end": 905,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 898,
"end": 905,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 898,
"end": 905,
"name": "SWAP2",
"source": 0
},
{
"begin": 898,
"end": 905,
"name": "DUP3",
"source": 0
},
{
"begin": 898,
"end": 905,
"name": "MSTORE",
"source": 0
},
{
"begin": 898,
"end": 905,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 898,
"end": 905,
"name": "DUP3",
"source": 0
},
{
"begin": 898,
"end": 905,
"name": "KECCAK256",
"source": 0
},
{
"begin": 898,
"end": 905,
"name": "PUSH",
"source": 0,
"value": "3"
},
{
"begin": 898,
"end": 905,
"name": "SWAP1",
"source": 0
},
{
"begin": 898,
"end": 905,
"name": "SWAP2",
"source": 0
},
{
"begin": 898,
"end": 905,
"name": "MUL",
"source": 0
},
{
"begin": 898,
"end": 905,
"name": "ADD",
"source": 0
},
{
"begin": 898,
"end": 905,
"name": "SWAP1",
"source": 0
},
{
"begin": 891,
"end": 905,
"name": "PUSH [tag]",
"source": 0,
"value": "48"
},
{
"begin": 898,
"end": 905,
"name": "DUP3",
"source": 0
},
{
"begin": 898,
"end": 905,
"name": "DUP3",
"source": 0
},
{
"begin": 891,
"end": 905,
"name": "PUSH [tag]",
"source": 0,
"value": "49"
},
{
"begin": 891,
"end": 905,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 891,
"end": 905,
"name": "tag",
"source": 0,
"value": "48"
},
{
"begin": 891,
"end": 905,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 891,
"end": 905,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 891,
"end": 905,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 891,
"end": 905,
"name": "DUP3",
"source": 0
},
{
"begin": 891,
"end": 905,
"name": "ADD",
"source": 0
},
{
"begin": 891,
"end": 905,
"name": "SSTORE",
"source": 0
},
{
"begin": 891,
"end": 905,
"name": "PUSH",
"source": 0,
"value": "2"
},
{
"begin": 891,
"end": 905,
"name": "ADD",
"source": 0
},
{
"begin": 891,
"end": 905,
"name": "DUP1",
"source": 0
},
{
"begin": 891,
"end": 905,
"name": "SLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "NOT",
"source": -1
},
{
"begin": 891,
"end": 905,
"name": "AND",
"source": 0
},
{
"begin": 891,
"end": 905,
"name": "SWAP1",
"source": 0
},
{
"begin": 891,
"end": 905,
"name": "SSTORE",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 352,
"end": 912,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 306,
"end": 345,
"name": "tag",
"source": 0,
"value": "12"
},
{
"begin": 306,
"end": 345,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 306,
"end": 345,
"name": "MSTORE",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP2",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 306,
"end": 345,
"name": "MSTORE",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 306,
"end": 345,
"name": "KECCAK256",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP2",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP2",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SLOAD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP2",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "LT",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH [tag]",
"source": 0,
"value": "50"
},
{
"begin": 306,
"end": 345,
"name": "JUMPI",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 306,
"end": 345,
"name": "DUP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "REVERT",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "tag",
"source": 0,
"value": "50"
},
{
"begin": 306,
"end": 345,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 306,
"end": 345,
"name": "MSTORE",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 306,
"end": 345,
"name": "KECCAK256",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "3"
},
{
"begin": 306,
"end": 345,
"name": "MUL",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "ADD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 306,
"end": 345,
"name": "SWAP2",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "POP",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP2",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "POP",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "POP",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 306,
"end": 345,
"name": "ADD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SLOAD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH [tag]",
"source": 0,
"value": "52"
},
{
"begin": 306,
"end": 345,
"name": "SWAP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH [tag]",
"source": 0,
"value": "40"
},
{
"begin": 306,
"end": 345,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 306,
"end": 345,
"name": "tag",
"source": 0,
"value": "52"
},
{
"begin": 306,
"end": 345,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 306,
"end": 345,
"name": "ADD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 306,
"end": 345,
"name": "DUP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP2",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DIV",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "MUL",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 306,
"end": 345,
"name": "ADD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 306,
"end": 345,
"name": "MLOAD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP2",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "ADD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 306,
"end": 345,
"name": "MSTORE",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP3",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP2",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP2",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP2",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "MSTORE",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 306,
"end": 345,
"name": "ADD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP3",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SLOAD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH [tag]",
"source": 0,
"value": "53"
},
{
"begin": 306,
"end": 345,
"name": "SWAP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH [tag]",
"source": 0,
"value": "40"
},
{
"begin": 306,
"end": 345,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 306,
"end": 345,
"name": "tag",
"source": 0,
"value": "53"
},
{
"begin": 306,
"end": 345,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "ISZERO",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH [tag]",
"source": 0,
"value": "54"
},
{
"begin": 306,
"end": 345,
"name": "JUMPI",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 306,
"end": 345,
"name": "LT",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH [tag]",
"source": 0,
"value": "55"
},
{
"begin": 306,
"end": 345,
"name": "JUMPI",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 306,
"end": 345,
"name": "DUP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP4",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SLOAD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DIV",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "MUL",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP4",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "MSTORE",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP2",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 306,
"end": 345,
"name": "ADD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP2",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH [tag]",
"source": 0,
"value": "54"
},
{
"begin": 306,
"end": 345,
"name": "JUMP",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "tag",
"source": 0,
"value": "55"
},
{
"begin": 306,
"end": 345,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP3",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "ADD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP2",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 306,
"end": 345,
"name": "MSTORE",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 306,
"end": 345,
"name": "KECCAK256",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "tag",
"source": 0,
"value": "56"
},
{
"begin": 306,
"end": 345,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP2",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SLOAD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP2",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "MSTORE",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 306,
"end": 345,
"name": "ADD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 306,
"end": 345,
"name": "ADD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP4",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "GT",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH [tag]",
"source": 0,
"value": "56"
},
{
"begin": 306,
"end": 345,
"name": "JUMPI",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP3",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SUB",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 306,
"end": 345,
"name": "AND",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "DUP3",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "ADD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP2",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "tag",
"source": 0,
"value": "54"
},
{
"begin": 306,
"end": 345,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 306,
"end": 345,
"name": "DUP4",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "ADD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SLOAD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "PUSH",
"source": 0,
"value": "2"
},
{
"begin": 306,
"end": 345,
"name": "SWAP1",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP4",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "ADD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SLOAD",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP2",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP3",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP2",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 306,
"end": 345,
"name": "AND",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "SWAP1",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 306,
"end": 345,
"name": "DUP4",
"source": 0
},
{
"begin": 306,
"end": 345,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 263,
"end": 277,
"name": "tag",
"source": 0,
"value": "16"
},
{
"begin": 263,
"end": 277,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 263,
"end": 277,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 263,
"end": 277,
"name": "DUP1",
"source": 0
},
{
"begin": 263,
"end": 277,
"name": "SLOAD",
"source": 0
},
{
"begin": 263,
"end": 277,
"name": "DUP2",
"source": 0
},
{
"begin": 263,
"end": 277,
"name": "SWAP1",
"source": 0
},
{
"begin": 263,
"end": 277,
"name": "PUSH [tag]",
"source": 0,
"value": "52"
},
{
"begin": 263,
"end": 277,
"name": "SWAP1",
"source": 0
},
{
"begin": 263,
"end": 277,
"name": "PUSH [tag]",
"source": 0,
"value": "40"
},
{
"begin": 263,
"end": 277,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 283,
"end": 300,
"name": "tag",
"source": 0,
"value": "21"
},
{
"begin": 283,
"end": 300,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "PUSH",
"source": 0,
"value": "3"
},
{
"begin": 283,
"end": 300,
"name": "DUP2",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "DUP2",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "SLOAD",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "DUP2",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "LT",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "PUSH [tag]",
"source": 0,
"value": "62"
},
{
"begin": 283,
"end": 300,
"name": "JUMPI",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 283,
"end": 300,
"name": "DUP1",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "REVERT",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "tag",
"source": 0,
"value": "62"
},
{
"begin": 283,
"end": 300,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "SWAP1",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 283,
"end": 300,
"name": "MSTORE",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 283,
"end": 300,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 283,
"end": 300,
"name": "KECCAK256",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "SWAP1",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "PUSH",
"source": 0,
"value": "3"
},
{
"begin": 283,
"end": 300,
"name": "MUL",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "ADD",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 283,
"end": 300,
"name": "SWAP2",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "POP",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "SWAP1",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "POP",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "DUP1",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 283,
"end": 300,
"name": "ADD",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "DUP1",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "SLOAD",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "PUSH [tag]",
"source": 0,
"value": "52"
},
{
"begin": 283,
"end": 300,
"name": "SWAP1",
"source": 0
},
{
"begin": 283,
"end": 300,
"name": "PUSH [tag]",
"source": 0,
"value": "40"
},
{
"begin": 283,
"end": 300,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": -1,
"end": -1,
"name": "tag",
"source": -1,
"value": "28"
},
{
"begin": -1,
"end": -1,
"name": "JUMPDEST",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP3",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SLOAD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH [tag]",
"source": -1,
"value": "69"
},
{
"begin": -1,
"end": -1,
"name": "SWAP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH [tag]",
"source": -1,
"value": "40"
},
{
"begin": -1,
"end": -1,
"name": "JUMP",
"source": -1,
"value": "[in]"
},
{
"begin": -1,
"end": -1,
"name": "tag",
"source": -1,
"value": "69"
},
{
"begin": -1,
"end": -1,
"name": "JUMPDEST",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SWAP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "0"
},
{
"begin": -1,
"end": -1,
"name": "MSTORE",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "20"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "0"
},
{
"begin": -1,
"end": -1,
"name": "KECCAK256",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SWAP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1F"
},
{
"begin": -1,
"end": -1,
"name": "ADD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "20"
},
{
"begin": -1,
"end": -1,
"name": "SWAP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DIV",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP2",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "ADD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SWAP3",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP3",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH [tag]",
"source": -1,
"value": "71"
},
{
"begin": -1,
"end": -1,
"name": "JUMPI",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "0"
},
{
"begin": -1,
"end": -1,
"name": "DUP6",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SSTORE",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH [tag]",
"source": -1,
"value": "74"
},
{
"begin": -1,
"end": -1,
"name": "JUMP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "tag",
"source": -1,
"value": "71"
},
{
"begin": -1,
"end": -1,
"name": "JUMPDEST",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP3",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1F"
},
{
"begin": -1,
"end": -1,
"name": "LT",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH [tag]",
"source": -1,
"value": "72"
},
{
"begin": -1,
"end": -1,
"name": "JUMPI",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "MLOAD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "FF"
},
{
"begin": -1,
"end": -1,
"name": "NOT",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "AND",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP4",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "ADD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "OR",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP6",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SSTORE",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH [tag]",
"source": -1,
"value": "74"
},
{
"begin": -1,
"end": -1,
"name": "JUMP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "tag",
"source": -1,
"value": "72"
},
{
"begin": -1,
"end": -1,
"name": "JUMPDEST",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP3",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "ADD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "ADD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP6",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SSTORE",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP3",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "ISZERO",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH [tag]",
"source": -1,
"value": "74"
},
{
"begin": -1,
"end": -1,
"name": "JUMPI",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SWAP2",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP3",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "ADD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "tag",
"source": -1,
"value": "73"
},
{
"begin": -1,
"end": -1,
"name": "JUMPDEST",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP3",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP2",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "GT",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "ISZERO",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH [tag]",
"source": -1,
"value": "74"
},
{
"begin": -1,
"end": -1,
"name": "JUMPI",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP3",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "MLOAD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP3",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SSTORE",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SWAP2",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "20"
},
{
"begin": -1,
"end": -1,
"name": "ADD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SWAP2",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SWAP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "ADD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SWAP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH [tag]",
"source": -1,
"value": "73"
},
{
"begin": -1,
"end": -1,
"name": "JUMP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "tag",
"source": -1,
"value": "74"
},
{
"begin": -1,
"end": -1,
"name": "JUMPDEST",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH [tag]",
"source": -1,
"value": "75"
},
{
"begin": -1,
"end": -1,
"name": "SWAP3",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SWAP2",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH [tag]",
"source": -1,
"value": "76"
},
{
"begin": -1,
"end": -1,
"name": "JUMP",
"source": -1,
"value": "[in]"
},
{
"begin": -1,
"end": -1,
"name": "tag",
"source": -1,
"value": "75"
},
{
"begin": -1,
"end": -1,
"name": "JUMPDEST",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SWAP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "JUMP",
"source": -1,
"value": "[out]"
},
{
"begin": -1,
"end": -1,
"name": "tag",
"source": -1,
"value": "49"
},
{
"begin": -1,
"end": -1,
"name": "JUMPDEST",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SLOAD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH [tag]",
"source": -1,
"value": "77"
},
{
"begin": -1,
"end": -1,
"name": "SWAP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH [tag]",
"source": -1,
"value": "40"
},
{
"begin": -1,
"end": -1,
"name": "JUMP",
"source": -1,
"value": "[in]"
},
{
"begin": -1,
"end": -1,
"name": "tag",
"source": -1,
"value": "77"
},
{
"begin": -1,
"end": -1,
"name": "JUMPDEST",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "0"
},
{
"begin": -1,
"end": -1,
"name": "DUP3",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SSTORE",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1F"
},
{
"begin": -1,
"end": -1,
"name": "LT",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH [tag]",
"source": -1,
"value": "79"
},
{
"begin": -1,
"end": -1,
"name": "JUMPI",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "JUMP",
"source": -1,
"value": "[out]"
},
{
"begin": -1,
"end": -1,
"name": "tag",
"source": -1,
"value": "79"
},
{
"begin": -1,
"end": -1,
"name": "JUMPDEST",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1F"
},
{
"begin": -1,
"end": -1,
"name": "ADD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "20"
},
{
"begin": -1,
"end": -1,
"name": "SWAP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DIV",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SWAP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "0"
},
{
"begin": -1,
"end": -1,
"name": "MSTORE",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "20"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "0"
},
{
"begin": -1,
"end": -1,
"name": "KECCAK256",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SWAP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP2",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "ADD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SWAP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH [tag]",
"source": -1,
"value": "80"
},
{
"begin": -1,
"end": -1,
"name": "SWAP2",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SWAP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH [tag]",
"source": -1,
"value": "76"
},
{
"begin": -1,
"end": -1,
"name": "JUMP",
"source": -1,
"value": "[in]"
},
{
"begin": -1,
"end": -1,
"name": "tag",
"source": -1,
"value": "80"
},
{
"begin": -1,
"end": -1,
"name": "JUMPDEST",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "JUMP",
"source": -1,
"value": "[out]"
},
{
"begin": -1,
"end": -1,
"name": "tag",
"source": -1,
"value": "76"
},
{
"begin": -1,
"end": -1,
"name": "JUMPDEST",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "tag",
"source": -1,
"value": "81"
},
{
"begin": -1,
"end": -1,
"name": "JUMPDEST",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "DUP3",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "GT",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "ISZERO",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH [tag]",
"source": -1,
"value": "75"
},
{
"begin": -1,
"end": -1,
"name": "JUMPI",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "0"
},
{
"begin": -1,
"end": -1,
"name": "DUP2",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SSTORE",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "ADD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH [tag]",
"source": -1,
"value": "81"
},
{
"begin": -1,
"end": -1,
"name": "JUMP",
"source": -1
},
{
"begin": 14,
"end": 368,
"name": "tag",
"source": 1,
"value": "11"
},
{
"begin": 14,
"end": 368,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 82,
"end": 88,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 90,
"end": 96,
"name": "DUP1",
"source": 1
},
{
"begin": 143,
"end": 145,
"name": "PUSH",
"source": 1,
"value": "40"
},
{
"begin": 131,
"end": 140,
"name": "DUP4",
"source": 1
},
{
"begin": 122,
"end": 129,
"name": "DUP6",
"source": 1
},
{
"begin": 118,
"end": 141,
"name": "SUB",
"source": 1
},
{
"begin": 114,
"end": 146,
"name": "SLT",
"source": 1
},
{
"begin": 111,
"end": 163,
"name": "ISZERO",
"source": 1
},
{
"begin": 111,
"end": 163,
"name": "PUSH [tag]",
"source": 1,
"value": "85"
},
{
"begin": 111,
"end": 163,
"name": "JUMPI",
"source": 1
},
{
"begin": 159,
"end": 160,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 156,
"end": 157,
"name": "DUP1",
"source": 1
},
{
"begin": 149,
"end": 161,
"name": "REVERT",
"source": 1
},
{
"begin": 111,
"end": 163,
"name": "tag",
"source": 1,
"value": "85"
},
{
"begin": 111,
"end": 163,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 185,
"end": 208,
"name": "DUP3",
"source": 1
},
{
"begin": 185,
"end": 208,
"name": "CALLDATALOAD",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 237,
"end": 268,
"name": "DUP2",
"source": 1
},
{
"begin": 237,
"end": 268,
"name": "AND",
"source": 1
},
{
"begin": 227,
"end": 269,
"name": "DUP2",
"source": 1
},
{
"begin": 227,
"end": 269,
"name": "EQ",
"source": 1
},
{
"begin": 217,
"end": 287,
"name": "PUSH [tag]",
"source": 1,
"value": "86"
},
{
"begin": 217,
"end": 287,
"name": "JUMPI",
"source": 1
},
{
"begin": 283,
"end": 284,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 280,
"end": 281,
"name": "DUP1",
"source": 1
},
{
"begin": 273,
"end": 285,
"name": "REVERT",
"source": 1
},
{
"begin": 217,
"end": 287,
"name": "tag",
"source": 1,
"value": "86"
},
{
"begin": 217,
"end": 287,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 306,
"end": 311,
"name": "SWAP5",
"source": 1
},
{
"begin": 358,
"end": 360,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 343,
"end": 361,
"name": "SWAP4",
"source": 1
},
{
"begin": 343,
"end": 361,
"name": "SWAP1",
"source": 1
},
{
"begin": 343,
"end": 361,
"name": "SWAP4",
"source": 1
},
{
"begin": 343,
"end": 361,
"name": "ADD",
"source": 1
},
{
"begin": 330,
"end": 362,
"name": "CALLDATALOAD",
"source": 1
},
{
"begin": 330,
"end": 362,
"name": "SWAP4",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 14,
"end": 368,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 373,
"end": 1126,
"name": "tag",
"source": 1,
"value": "14"
},
{
"begin": 373,
"end": 1126,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 578,
"end": 580,
"name": "PUSH",
"source": 1,
"value": "60"
},
{
"begin": 567,
"end": 576,
"name": "DUP2",
"source": 1
},
{
"begin": 560,
"end": 581,
"name": "MSTORE",
"source": 1
},
{
"begin": 541,
"end": 545,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 610,
"end": 616,
"name": "DUP5",
"source": 1
},
{
"begin": 604,
"end": 617,
"name": "MLOAD",
"source": 1
},
{
"begin": 653,
"end": 659,
"name": "DUP1",
"source": 1
},
{
"begin": 648,
"end": 650,
"name": "PUSH",
"source": 1,
"value": "60"
},
{
"begin": 637,
"end": 646,
"name": "DUP5",
"source": 1
},
{
"begin": 633,
"end": 651,
"name": "ADD",
"source": 1
},
{
"begin": 626,
"end": 660,
"name": "MSTORE",
"source": 1
},
{
"begin": 678,
"end": 679,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 688,
"end": 833,
"name": "tag",
"source": 1,
"value": "88"
},
{
"begin": 688,
"end": 833,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 702,
"end": 708,
"name": "DUP2",
"source": 1
},
{
"begin": 699,
"end": 700,
"name": "DUP2",
"source": 1
},
{
"begin": 696,
"end": 709,
"name": "LT",
"source": 1
},
{
"begin": 688,
"end": 833,
"name": "ISZERO",
"source": 1
},
{
"begin": 688,
"end": 833,
"name": "PUSH [tag]",
"source": 1,
"value": "90"
},
{
"begin": 688,
"end": 833,
"name": "JUMPI",
"source": 1
},
{
"begin": 816,
"end": 820,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 800,
"end": 814,
"name": "DUP2",
"source": 1
},
{
"begin": 800,
"end": 814,
"name": "DUP9",
"source": 1
},
{
"begin": 800,
"end": 814,
"name": "ADD",
"source": 1
},
{
"begin": 796,
"end": 821,
"name": "DUP2",
"source": 1
},
{
"begin": 796,
"end": 821,
"name": "ADD",
"source": 1
},
{
"begin": 790,
"end": 822,
"name": "MLOAD",
"source": 1
},
{
"begin": 784,
"end": 787,
"name": "PUSH",
"source": 1,
"value": "80"
},
{
"begin": 765,
"end": 782,
"name": "DUP7",
"source": 1
},
{
"begin": 765,
"end": 782,
"name": "DUP5",
"source": 1
},
{
"begin": 765,
"end": 782,
"name": "ADD",
"source": 1
},
{
"begin": 761,
"end": 788,
"name": "ADD",
"source": 1
},
{
"begin": 754,
"end": 823,
"name": "MSTORE",
"source": 1
},
{
"begin": 717,
"end": 729,
"name": "ADD",
"source": 1
},
{
"begin": 688,
"end": 833,
"name": "PUSH [tag]",
"source": 1,
"value": "88"
},
{
"begin": 688,
"end": 833,
"name": "JUMP",
"source": 1
},
{
"begin": 688,
"end": 833,
"name": "tag",
"source": 1,
"value": "90"
},
{
"begin": 688,
"end": 833,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 851,
"end": 857,
"name": "DUP2",
"source": 1
},
{
"begin": 848,
"end": 849,
"name": "DUP2",
"source": 1
},
{
"begin": 845,
"end": 858,
"name": "GT",
"source": 1
},
{
"begin": 842,
"end": 934,
"name": "ISZERO",
"source": 1
},
{
"begin": 842,
"end": 934,
"name": "PUSH [tag]",
"source": 1,
"value": "91"
},
{
"begin": 842,
"end": 934,
"name": "JUMPI",
"source": 1
},
{
"begin": 922,
"end": 923,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 916,
"end": 919,
"name": "PUSH",
"source": 1,
"value": "80"
},
{
"begin": 907,
"end": 913,
"name": "DUP4",
"source": 1
},
{
"begin": 896,
"end": 905,
"name": "DUP7",
"source": 1
},
{
"begin": 892,
"end": 914,
"name": "ADD",
"source": 1
},
{
"begin": 888,
"end": 920,
"name": "ADD",
"source": 1
},
{
"begin": 881,
"end": 924,
"name": "MSTORE",
"source": 1
},
{
"begin": 842,
"end": 934,
"name": "tag",
"source": 1,
"value": "91"
},
{
"begin": 842,
"end": 934,
"name": "JUMPDEST",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 1037,
"end": 1041,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 1022,
"end": 1042,
"name": "DUP4",
"source": 1
},
{
"begin": 1022,
"end": 1042,
"name": "ADD",
"source": 1
},
{
"begin": 1015,
"end": 1051,
"name": "SWAP5",
"source": 1
},
{
"begin": 1015,
"end": 1051,
"name": "SWAP1",
"source": 1
},
{
"begin": 1015,
"end": 1051,
"name": "SWAP5",
"source": 1
},
{
"begin": 1015,
"end": 1051,
"name": "MSTORE",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 1087,
"end": 1119,
"name": "SWAP2",
"source": 1
},
{
"begin": 1087,
"end": 1119,
"name": "SWAP1",
"source": 1
},
{
"begin": 1087,
"end": 1119,
"name": "SWAP2",
"source": 1
},
{
"begin": 1087,
"end": 1119,
"name": "AND",
"source": 1
},
{
"begin": 1082,
"end": 1084,
"name": "PUSH",
"source": 1,
"value": "40"
},
{
"begin": 1067,
"end": 1085,
"name": "DUP3",
"source": 1
},
{
"begin": 1067,
"end": 1085,
"name": "ADD",
"source": 1
},
{
"begin": 1060,
"end": 1120,
"name": "MSTORE",
"source": 1
},
{
"begin": 1002,
"end": 1005,
"name": "PUSH",
"source": 1,
"value": "80"
},
{
"begin": 995,
"end": 997,
"name": "PUSH",
"source": 1,
"value": "1F"
},
{
"begin": 974,
"end": 989,
"name": "SWAP1",
"source": 1
},
{
"begin": 974,
"end": 989,
"name": "SWAP3",
"source": 1
},
{
"begin": 974,
"end": 989,
"name": "ADD",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1F"
},
{
"begin": -1,
"end": -1,
"name": "NOT",
"source": -1
},
{
"begin": 970,
"end": 999,
"name": "AND",
"source": 1
},
{
"begin": 955,
"end": 1000,
"name": "ADD",
"source": 1
},
{
"begin": 951,
"end": 1006,
"name": "ADD",
"source": 1
},
{
"begin": 951,
"end": 1006,
"name": "SWAP2",
"source": 1
},
{
"begin": 951,
"end": 1006,
"name": "SWAP1",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 373,
"end": 1126,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 1131,
"end": 1311,
"name": "tag",
"source": 1,
"value": "20"
},
{
"begin": 1131,
"end": 1311,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1190,
"end": 1196,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 1243,
"end": 1245,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 1231,
"end": 1240,
"name": "DUP3",
"source": 1
},
{
"begin": 1222,
"end": 1229,
"name": "DUP5",
"source": 1
},
{
"begin": 1218,
"end": 1241,
"name": "SUB",
"source": 1
},
{
"begin": 1214,
"end": 1246,
"name": "SLT",
"source": 1
},
{
"begin": 1211,
"end": 1263,
"name": "ISZERO",
"source": 1
},
{
"begin": 1211,
"end": 1263,
"name": "PUSH [tag]",
"source": 1,
"value": "93"
},
{
"begin": 1211,
"end": 1263,
"name": "JUMPI",
"source": 1
},
{
"begin": 1259,
"end": 1260,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 1256,
"end": 1257,
"name": "DUP1",
"source": 1
},
{
"begin": 1249,
"end": 1261,
"name": "REVERT",
"source": 1
},
{
"begin": 1211,
"end": 1263,
"name": "tag",
"source": 1,
"value": "93"
},
{
"begin": 1211,
"end": 1263,
"name": "JUMPDEST",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 1282,
"end": 1305,
"name": "CALLDATALOAD",
"source": 1
},
{
"begin": 1282,
"end": 1305,
"name": "SWAP2",
"source": 1
},
{
"begin": 1131,
"end": 1311,
"name": "SWAP1",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 1131,
"end": 1311,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 1316,
"end": 1443,
"name": "tag",
"source": 1,
"value": "37"
},
{
"begin": 1316,
"end": 1443,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1377,
"end": 1387,
"name": "PUSH",
"source": 1,
"value": "4E487B71"
},
{
"begin": 1372,
"end": 1375,
"name": "PUSH",
"source": 1,
"value": "E0"
},
{
"begin": 1368,
"end": 1388,
"name": "SHL",
"source": 1
},
{
"begin": 1365,
"end": 1366,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 1358,
"end": 1389,
"name": "MSTORE",
"source": 1
},
{
"begin": 1408,
"end": 1412,
"name": "PUSH",
"source": 1,
"value": "32"
},
{
"begin": 1405,
"end": 1406,
"name": "PUSH",
"source": 1,
"value": "4"
},
{
"begin": 1398,
"end": 1413,
"name": "MSTORE",
"source": 1
},
{
"begin": 1432,
"end": 1436,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 1429,
"end": 1430,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 1422,
"end": 1437,
"name": "REVERT",
"source": 1
},
{
"begin": 1448,
"end": 1828,
"name": "tag",
"source": 1,
"value": "40"
},
{
"begin": 1448,
"end": 1828,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1527,
"end": 1528,
"name": "PUSH",
"source": 1,
"value": "1"
},
{
"begin": 1523,
"end": 1535,
"name": "DUP2",
"source": 1
},
{
"begin": 1523,
"end": 1535,
"name": "DUP2",
"source": 1
},
{
"begin": 1523,
"end": 1535,
"name": "SHR",
"source": 1
},
{
"begin": 1523,
"end": 1535,
"name": "SWAP1",
"source": 1
},
{
"begin": 1570,
"end": 1582,
"name": "DUP3",
"source": 1
},
{
"begin": 1570,
"end": 1582,
"name": "AND",
"source": 1
},
{
"begin": 1570,
"end": 1582,
"name": "DUP1",
"source": 1
},
{
"begin": 1591,
"end": 1652,
"name": "PUSH [tag]",
"source": 1,
"value": "96"
},
{
"begin": 1591,
"end": 1652,
"name": "JUMPI",
"source": 1
},
{
"begin": 1645,
"end": 1649,
"name": "PUSH",
"source": 1,
"value": "7F"
},
{
"begin": 1637,
"end": 1643,
"name": "DUP3",
"source": 1
},
{
"begin": 1633,
"end": 1650,
"name": "AND",
"source": 1
},
{
"begin": 1623,
"end": 1650,
"name": "SWAP2",
"source": 1
},
{
"begin": 1623,
"end": 1650,
"name": "POP",
"source": 1
},
{
"begin": 1591,
"end": 1652,
"name": "tag",
"source": 1,
"value": "96"
},
{
"begin": 1591,
"end": 1652,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1698,
"end": 1700,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 1690,
"end": 1696,
"name": "DUP3",
"source": 1
},
{
"begin": 1687,
"end": 1701,
"name": "LT",
"source": 1
},
{
"begin": 1667,
"end": 1685,
"name": "DUP2",
"source": 1
},
{
"begin": 1664,
"end": 1702,
"name": "SUB",
"source": 1
},
{
"begin": 1661,
"end": 1822,
"name": "PUSH [tag]",
"source": 1,
"value": "97"
},
{
"begin": 1661,
"end": 1822,
"name": "JUMPI",
"source": 1
},
{
"begin": 1744,
"end": 1754,
"name": "PUSH",
"source": 1,
"value": "4E487B71"
},
{
"begin": 1739,
"end": 1742,
"name": "PUSH",
"source": 1,
"value": "E0"
},
{
"begin": 1735,
"end": 1755,
"name": "SHL",
"source": 1
},
{
"begin": 1732,
"end": 1733,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 1725,
"end": 1756,
"name": "MSTORE",
"source": 1
},
{
"begin": 1779,
"end": 1783,
"name": "PUSH",
"source": 1,
"value": "22"
},
{
"begin": 1776,
"end": 1777,
"name": "PUSH",
"source": 1,
"value": "4"
},
{
"begin": 1769,
"end": 1784,
"name": "MSTORE",
"source": 1
},
{
"begin": 1807,
"end": 1811,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 1804,
"end": 1805,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 1797,
"end": 1812,
"name": "REVERT",
"source": 1
},
{
"begin": 1661,
"end": 1822,
"name": "tag",
"source": 1,
"value": "97"
},
{
"begin": 1661,
"end": 1822,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1661,
"end": 1822,
"name": "POP",
"source": 1
},
{
"begin": 1448,
"end": 1828,
"name": "SWAP2",
"source": 1
},
{
"begin": 1448,
"end": 1828,
"name": "SWAP1",
"source": 1
},
{
"begin": 1448,
"end": 1828,
"name": "POP",
"source": 1
},
{
"begin": 1448,
"end": 1828,
"name": "JUMP",
"source": 1,
"value": "[out]"
}
],
".data": {
"2584DB4A68AA8B172F70BC04E2E74541617C003374DE6EB4B295E823E5BEAB01": "c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b"
}
}
}
},
"methodIdentifiers": {
"car()": "ee26fac3",
"cars(uint256)": "f7746e36",
"examples()": "335d00c2",
"owners(address,uint256)": "9b3e2787"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"car\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"model\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"year\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"cars\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"model\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"year\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"examples\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"owners\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"model\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"year\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Structs.sol\":\"Structs\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Structs.sol\":{\"keccak256\":\"0x190f29bef24b5b0eb8665c005caa1778432d0bacd8388cbd5a8d57e2ad35b277\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0022fb9c8360151e2ef78188b90a5a8682bba38caae05dcf9e95b3dcf6a78932\",\"dweb:/ipfs/Qmdnbwr5L6ZLoPq3ppoeg82xAnzAPpzo12Jc8ukbF8k1mo\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 11,
"contract": "contracts/Structs.sol:Structs",
"label": "car",
"offset": 0,
"slot": "0",
"type": "t_struct(Car)8_storage"
},
{
"astId": 15,
"contract": "contracts/Structs.sol:Structs",
"label": "cars",
"offset": 0,
"slot": "3",
"type": "t_array(t_struct(Car)8_storage)dyn_storage"
},
{
"astId": 21,
"contract": "contracts/Structs.sol:Structs",
"label": "owners",
"offset": 0,
"slot": "4",
"type": "t_mapping(t_address,t_array(t_struct(Car)8_storage)dyn_storage)"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
},
"t_array(t_struct(Car)8_storage)dyn_storage": {
"base": "t_struct(Car)8_storage",
"encoding": "dynamic_array",
"label": "struct Structs.Car[]",
"numberOfBytes": "32"
},
"t_mapping(t_address,t_array(t_struct(Car)8_storage)dyn_storage)": {
"encoding": "mapping",
"key": "t_address",
"label": "mapping(address => struct Structs.Car[])",
"numberOfBytes": "32",
"value": "t_array(t_struct(Car)8_storage)dyn_storage"
},
"t_string_storage": {
"encoding": "bytes",
"label": "string",
"numberOfBytes": "32"
},
"t_struct(Car)8_storage": {
"encoding": "inplace",
"label": "struct Structs.Car",
"members": [
{
"astId": 3,
"contract": "contracts/Structs.sol:Structs",
"label": "model",
"offset": 0,
"slot": "0",
"type": "t_string_storage"
},
{
"astId": 5,
"contract": "contracts/Structs.sol:Structs",
"label": "year",
"offset": 0,
"slot": "1",
"type": "t_uint256"
},
{
"astId": 7,
"contract": "contracts/Structs.sol:Structs",
"label": "owner",
"offset": 0,
"slot": "2",
"type": "t_address"
}
],
"numberOfBytes": "96"
},
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
}
}
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
}
},
"sources": {
"contracts/Structs.sol": {
"ast": {
"absolutePath": "contracts/Structs.sol",
"exportedSymbols": {
"Structs": [
120
]
},
"id": 121,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.8",
".13"
],
"nodeType": "PragmaDirective",
"src": "32:24:0"
},
{
"abstract": false,
"baseContracts": [],
"canonicalName": "Structs",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 120,
"linearizedBaseContracts": [
120
],
"name": "Structs",
"nameLocation": "160:7:0",
"nodeType": "ContractDefinition",
"nodes": [
{
"canonicalName": "Structs.Car",
"id": 8,
"members": [
{
"constant": false,
"id": 3,
"mutability": "mutable",
"name": "model",
"nameLocation": "203:5:0",
"nodeType": "VariableDeclaration",
"scope": 8,
"src": "196:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 2,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "196:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 5,
"mutability": "mutable",
"name": "year",
"nameLocation": "223:4:0",
"nodeType": "VariableDeclaration",
"scope": 8,
"src": "218:9:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "218:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 7,
"mutability": "mutable",
"name": "owner",
"nameLocation": "245:5:0",
"nodeType": "VariableDeclaration",
"scope": 8,
"src": "237:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "237:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"name": "Car",
"nameLocation": "182:3:0",
"nodeType": "StructDefinition",
"scope": 120,
"src": "175:82:0",
"visibility": "public"
},
{
"constant": false,
"functionSelector": "ee26fac3",
"id": 11,
"mutability": "mutable",
"name": "car",
"nameLocation": "274:3:0",
"nodeType": "VariableDeclaration",
"scope": 120,
"src": "263:14:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_storage",
"typeString": "struct Structs.Car"
},
"typeName": {
"id": 10,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9,
"name": "Car",
"nodeType": "IdentifierPath",
"referencedDeclaration": 8,
"src": "263:3:0"
},
"referencedDeclaration": 8,
"src": "263:3:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_storage_ptr",
"typeString": "struct Structs.Car"
}
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "f7746e36",
"id": 15,
"mutability": "mutable",
"name": "cars",
"nameLocation": "296:4:0",
"nodeType": "VariableDeclaration",
"scope": 120,
"src": "283:17:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Car_$8_storage_$dyn_storage",
"typeString": "struct Structs.Car[]"
},
"typeName": {
"baseType": {
"id": 13,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 12,
"name": "Car",
"nodeType": "IdentifierPath",
"referencedDeclaration": 8,
"src": "283:3:0"
},
"referencedDeclaration": 8,
"src": "283:3:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_storage_ptr",
"typeString": "struct Structs.Car"
}
},
"id": 14,
"nodeType": "ArrayTypeName",
"src": "283:5:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Car_$8_storage_$dyn_storage_ptr",
"typeString": "struct Structs.Car[]"
}
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "9b3e2787",
"id": 21,
"mutability": "mutable",
"name": "owners",
"nameLocation": "339:6:0",
"nodeType": "VariableDeclaration",
"scope": 120,
"src": "306:39:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_Car_$8_storage_$dyn_storage_$",
"typeString": "mapping(address => struct Structs.Car[])"
},
"typeName": {
"id": 20,
"keyType": {
"id": 16,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "314:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "306:25:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_Car_$8_storage_$dyn_storage_$",
"typeString": "mapping(address => struct Structs.Car[])"
},
"valueType": {
"baseType": {
"id": 18,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 17,
"name": "Car",
"nodeType": "IdentifierPath",
"referencedDeclaration": 8,
"src": "325:3:0"
},
"referencedDeclaration": 8,
"src": "325:3:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_storage_ptr",
"typeString": "struct Structs.Car"
}
},
"id": 19,
"nodeType": "ArrayTypeName",
"src": "325:5:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Car_$8_storage_$dyn_storage_ptr",
"typeString": "struct Structs.Car[]"
}
}
},
"visibility": "public"
},
{
"body": {
"id": 118,
"nodeType": "Block",
"src": "381:531:0",
"statements": [
{
"assignments": [
26
],
"declarations": [
{
"constant": false,
"id": 26,
"mutability": "mutable",
"name": "car1",
"nameLocation": "402:4:0",
"nodeType": "VariableDeclaration",
"scope": 118,
"src": "391:15:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_memory_ptr",
"typeString": "struct Structs.Car"
},
"typeName": {
"id": 25,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 24,
"name": "Car",
"nodeType": "IdentifierPath",
"referencedDeclaration": 8,
"src": "391:3:0"
},
"referencedDeclaration": 8,
"src": "391:3:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_storage_ptr",
"typeString": "struct Structs.Car"
}
},
"visibility": "internal"
}
],
"id": 33,
"initialValue": {
"arguments": [
{
"hexValue": "546f796f7461",
"id": 28,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "413:8:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_416c11096c35a46155c9aff36b6928001c42470ec8ab2aebb572f6fafde4f5b4",
"typeString": "literal_string \"Toyota\""
},
"value": "Toyota"
},
{
"hexValue": "32303137",
"id": 29,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "423:4:0",
"typeDescriptions": {
"typeIdentifier": "t_rational_2017_by_1",
"typeString": "int_const 2017"
},
"value": "2017"
},
{
"expression": {
"id": 30,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "429:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 31,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "429:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_416c11096c35a46155c9aff36b6928001c42470ec8ab2aebb572f6fafde4f5b4",
"typeString": "literal_string \"Toyota\""
},
{
"typeIdentifier": "t_rational_2017_by_1",
"typeString": "int_const 2017"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 27,
"name": "Car",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8,
"src": "409:3:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_Car_$8_storage_ptr_$",
"typeString": "type(struct Structs.Car storage pointer)"
}
},
"id": 32,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "409:31:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_memory_ptr",
"typeString": "struct Structs.Car memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "391:49:0"
},
{
"assignments": [
36
],
"declarations": [
{
"constant": false,
"id": 36,
"mutability": "mutable",
"name": "car2",
"nameLocation": "461:4:0",
"nodeType": "VariableDeclaration",
"scope": 118,
"src": "450:15:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_memory_ptr",
"typeString": "struct Structs.Car"
},
"typeName": {
"id": 35,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 34,
"name": "Car",
"nodeType": "IdentifierPath",
"referencedDeclaration": 8,
"src": "450:3:0"
},
"referencedDeclaration": 8,
"src": "450:3:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_storage_ptr",
"typeString": "struct Structs.Car"
}
},
"visibility": "internal"
}
],
"id": 43,
"initialValue": {
"arguments": [
{
"hexValue": "41756469",
"id": 38,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "480:6:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_812231d7b0e623ae2acbd643416ebb8d1be2854f0cce16913e78f044ce9b92f9",
"typeString": "literal_string \"Audi\""
},
"value": "Audi"
},
{
"hexValue": "32303138",
"id": 39,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "494:4:0",
"typeDescriptions": {
"typeIdentifier": "t_rational_2018_by_1",
"typeString": "int_const 2018"
},
"value": "2018"
},
{
"expression": {
"id": 40,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "507:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 41,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "507:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_812231d7b0e623ae2acbd643416ebb8d1be2854f0cce16913e78f044ce9b92f9",
"typeString": "literal_string \"Audi\""
},
{
"typeIdentifier": "t_rational_2018_by_1",
"typeString": "int_const 2018"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 37,
"name": "Car",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8,
"src": "468:3:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_Car_$8_storage_ptr_$",
"typeString": "type(struct Structs.Car storage pointer)"
}
},
"id": 42,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [
"model",
"year",
"owner"
],
"nodeType": "FunctionCall",
"src": "468:51:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_memory_ptr",
"typeString": "struct Structs.Car memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "450:69:0"
},
{
"assignments": [
46
],
"declarations": [
{
"constant": false,
"id": 46,
"mutability": "mutable",
"name": "car3",
"nameLocation": "540:4:0",
"nodeType": "VariableDeclaration",
"scope": 118,
"src": "529:15:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_memory_ptr",
"typeString": "struct Structs.Car"
},
"typeName": {
"id": 45,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 44,
"name": "Car",
"nodeType": "IdentifierPath",
"referencedDeclaration": 8,
"src": "529:3:0"
},
"referencedDeclaration": 8,
"src": "529:3:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_storage_ptr",
"typeString": "struct Structs.Car"
}
},
"visibility": "internal"
}
],
"id": 47,
"nodeType": "VariableDeclarationStatement",
"src": "529:15:0"
},
{
"expression": {
"id": 52,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 48,
"name": "car3",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46,
"src": "554:4:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_memory_ptr",
"typeString": "struct Structs.Car memory"
}
},
"id": 50,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "model",
"nodeType": "MemberAccess",
"referencedDeclaration": 3,
"src": "554:10:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"hexValue": "466f7264",
"id": 51,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "567:6:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_8293d90698e6233c69af2375adbdbbf51d85f05425fc8658a468863d535c25d5",
"typeString": "literal_string \"Ford\""
},
"value": "Ford"
},
"src": "554:19:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 53,
"nodeType": "ExpressionStatement",
"src": "554:19:0"
},
{
"expression": {
"id": 58,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 54,
"name": "car3",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46,
"src": "583:4:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_memory_ptr",
"typeString": "struct Structs.Car memory"
}
},
"id": 56,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "year",
"nodeType": "MemberAccess",
"referencedDeclaration": 5,
"src": "583:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"hexValue": "32303135",
"id": 57,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "595:4:0",
"typeDescriptions": {
"typeIdentifier": "t_rational_2015_by_1",
"typeString": "int_const 2015"
},
"value": "2015"
},
"src": "583:16:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 59,
"nodeType": "ExpressionStatement",
"src": "583:16:0"
},
{
"expression": {
"id": 65,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 60,
"name": "car3",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46,
"src": "609:4:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_memory_ptr",
"typeString": "struct Structs.Car memory"
}
},
"id": 62,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "owner",
"nodeType": "MemberAccess",
"referencedDeclaration": 7,
"src": "609:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"expression": {
"id": 63,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "622:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 64,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "622:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "609:23:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 66,
"nodeType": "ExpressionStatement",
"src": "609:23:0"
},
{
"expression": {
"arguments": [
{
"id": 70,
"name": "car1",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 26,
"src": "661:4:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_memory_ptr",
"typeString": "struct Structs.Car memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Car_$8_memory_ptr",
"typeString": "struct Structs.Car memory"
}
],
"expression": {
"id": 67,
"name": "cars",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15,
"src": "651:4:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Car_$8_storage_$dyn_storage",
"typeString": "struct Structs.Car storage ref[] storage ref"
}
},
"id": 69,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"src": "651:9:0",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_Car_$8_storage_$dyn_storage_ptr_$_t_struct$_Car_$8_storage_$returns$__$bound_to$_t_array$_t_struct$_Car_$8_storage_$dyn_storage_ptr_$",
"typeString": "function (struct Structs.Car storage ref[] storage pointer,struct Structs.Car storage ref)"
}
},
"id": 71,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "651:15:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 72,
"nodeType": "ExpressionStatement",
"src": "651:15:0"
},
{
"expression": {
"arguments": [
{
"id": 76,
"name": "car2",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 36,
"src": "686:4:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_memory_ptr",
"typeString": "struct Structs.Car memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Car_$8_memory_ptr",
"typeString": "struct Structs.Car memory"
}
],
"expression": {
"id": 73,
"name": "cars",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15,
"src": "676:4:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Car_$8_storage_$dyn_storage",
"typeString": "struct Structs.Car storage ref[] storage ref"
}
},
"id": 75,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"src": "676:9:0",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_Car_$8_storage_$dyn_storage_ptr_$_t_struct$_Car_$8_storage_$returns$__$bound_to$_t_array$_t_struct$_Car_$8_storage_$dyn_storage_ptr_$",
"typeString": "function (struct Structs.Car storage ref[] storage pointer,struct Structs.Car storage ref)"
}
},
"id": 77,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "676:15:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 78,
"nodeType": "ExpressionStatement",
"src": "676:15:0"
},
{
"expression": {
"arguments": [
{
"id": 82,
"name": "car3",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46,
"src": "719:4:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_memory_ptr",
"typeString": "struct Structs.Car memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Car_$8_memory_ptr",
"typeString": "struct Structs.Car memory"
}
],
"expression": {
"id": 79,
"name": "cars",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15,
"src": "709:4:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Car_$8_storage_$dyn_storage",
"typeString": "struct Structs.Car storage ref[] storage ref"
}
},
"id": 81,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"src": "709:9:0",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_Car_$8_storage_$dyn_storage_ptr_$_t_struct$_Car_$8_storage_$returns$__$bound_to$_t_array$_t_struct$_Car_$8_storage_$dyn_storage_ptr_$",
"typeString": "function (struct Structs.Car storage ref[] storage pointer,struct Structs.Car storage ref)"
}
},
"id": 83,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "709:15:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 84,
"nodeType": "ExpressionStatement",
"src": "709:15:0"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "486f6e6461",
"id": 89,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "749:7:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_a7608479e88f6350e15eae7937dd03ded83d39e9ac7a99343baf6602a6aa0aed",
"typeString": "literal_string \"Honda\""
},
"value": "Honda"
},
{
"hexValue": "32303136",
"id": 90,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "758:4:0",
"typeDescriptions": {
"typeIdentifier": "t_rational_2016_by_1",
"typeString": "int_const 2016"
},
"value": "2016"
},
{
"expression": {
"id": 91,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "764:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 92,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "764:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_a7608479e88f6350e15eae7937dd03ded83d39e9ac7a99343baf6602a6aa0aed",
"typeString": "literal_string \"Honda\""
},
{
"typeIdentifier": "t_rational_2016_by_1",
"typeString": "int_const 2016"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 88,
"name": "Car",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8,
"src": "745:3:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_Car_$8_storage_ptr_$",
"typeString": "type(struct Structs.Car storage pointer)"
}
},
"id": 93,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "745:30:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_memory_ptr",
"typeString": "struct Structs.Car memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Car_$8_memory_ptr",
"typeString": "struct Structs.Car memory"
}
],
"expression": {
"id": 85,
"name": "cars",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15,
"src": "735:4:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Car_$8_storage_$dyn_storage",
"typeString": "struct Structs.Car storage ref[] storage ref"
}
},
"id": 87,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"src": "735:9:0",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_Car_$8_storage_$dyn_storage_ptr_$_t_struct$_Car_$8_storage_$returns$__$bound_to$_t_array$_t_struct$_Car_$8_storage_$dyn_storage_ptr_$",
"typeString": "function (struct Structs.Car storage ref[] storage pointer,struct Structs.Car storage ref)"
}
},
"id": 94,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "735:41:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 95,
"nodeType": "ExpressionStatement",
"src": "735:41:0"
},
{
"assignments": [
98
],
"declarations": [
{
"constant": false,
"id": 98,
"mutability": "mutable",
"name": "_car",
"nameLocation": "798:4:0",
"nodeType": "VariableDeclaration",
"scope": 118,
"src": "787:15:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_memory_ptr",
"typeString": "struct Structs.Car"
},
"typeName": {
"id": 97,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 96,
"name": "Car",
"nodeType": "IdentifierPath",
"referencedDeclaration": 8,
"src": "787:3:0"
},
"referencedDeclaration": 8,
"src": "787:3:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_storage_ptr",
"typeString": "struct Structs.Car"
}
},
"visibility": "internal"
}
],
"id": 102,
"initialValue": {
"baseExpression": {
"id": 99,
"name": "cars",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15,
"src": "805:4:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Car_$8_storage_$dyn_storage",
"typeString": "struct Structs.Car storage ref[] storage ref"
}
},
"id": 101,
"indexExpression": {
"hexValue": "30",
"id": 100,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "810:1:0",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "805:7:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_storage",
"typeString": "struct Structs.Car storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "787:25:0"
},
{
"expression": {
"id": 107,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 103,
"name": "_car",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 98,
"src": "837:4:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_memory_ptr",
"typeString": "struct Structs.Car memory"
}
},
"id": 105,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "year",
"nodeType": "MemberAccess",
"referencedDeclaration": 5,
"src": "837:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"hexValue": "32303232",
"id": 106,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "849:4:0",
"typeDescriptions": {
"typeIdentifier": "t_rational_2022_by_1",
"typeString": "int_const 2022"
},
"value": "2022"
},
"src": "837:16:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 108,
"nodeType": "ExpressionStatement",
"src": "837:16:0"
},
{
"expression": {
"id": 111,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "864:17:0",
"subExpression": {
"expression": {
"id": 109,
"name": "_car",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 98,
"src": "871:4:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_memory_ptr",
"typeString": "struct Structs.Car memory"
}
},
"id": 110,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "owner",
"nodeType": "MemberAccess",
"referencedDeclaration": 7,
"src": "871:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 112,
"nodeType": "ExpressionStatement",
"src": "864:17:0"
},
{
"expression": {
"id": 116,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "891:14:0",
"subExpression": {
"baseExpression": {
"id": 113,
"name": "cars",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15,
"src": "898:4:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Car_$8_storage_$dyn_storage",
"typeString": "struct Structs.Car storage ref[] storage ref"
}
},
"id": 115,
"indexExpression": {
"hexValue": "31",
"id": 114,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "903:1:0",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "898:7:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Car_$8_storage",
"typeString": "struct Structs.Car storage ref"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 117,
"nodeType": "ExpressionStatement",
"src": "891:14:0"
}
]
},
"functionSelector": "335d00c2",
"id": 119,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "examples",
"nameLocation": "361:8:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 22,
"nodeType": "ParameterList",
"parameters": [],
"src": "369:2:0"
},
"returnParameters": {
"id": 23,
"nodeType": "ParameterList",
"parameters": [],
"src": "381:0:0"
},
"scope": 120,
"src": "352:560:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
}
],
"scope": 121,
"src": "151:764:0",
"usedErrors": []
}
],
"src": "32:883:0"
},
"id": 0
}
}
}
}
{
"id": "44e3a05d40f4d1a3f57ebff3e01ce986",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.13",
"solcLongVersion": "0.8.13+commit.abaa5c0e",
"input": {
"language": "Solidity",
"sources": {
"contracts/Fallback.sol": {
"content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.13;\n\n/*\nFallback function is executed either when\n1) A function that does not exist is called or\n2) Ether is sent directly to a contract but receive() does not exist or msg.data is not empty\n\nfallback does not take any arguments and does not return anything\n\n*/\n\ncontract Fallback {\n event Log(uint gas);\n\n constructor() payable {}\n\n // Fallback function must be declared as external\n fallback() external payable {\n // send / transfer (forwards 2300 gas to this fallback function)\n // call (forwards all of the gas)\n emit Log(gasleft());\n }\n\n // Helper function to check the balance of this contract\n function getBalance() public view returns (uint) {\n return address(this).balance;\n }\n}\n\ncontract SendToFallback {\n function transferToFallback(address payable _to) public payable {\n _to.transfer(msg.value);\n }\n\n function callFallback(address payable _to) public payable {\n (bool sent, ) = _to.call{value: msg.value}(\"\");\n require(sent, \"Failed to send Ether\");\n }\n}"
}
},
"settings": {
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"contracts/Fallback.sol": {
"Fallback": {
"abi": [
{
"inputs": [],
"stateMutability": "payable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "gas",
"type": "uint256"
}
],
"name": "Log",
"type": "event"
},
{
"stateMutability": "payable",
"type": "fallback"
},
{
"inputs": [],
"name": "getBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"contracts/Fallback.sol\":316:792 contract Fallback {... */\n mstore(0x40, 0x80)\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/Fallback.sol\":316:792 contract Fallback {... */\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x12065fe0\n eq\n tag_3\n jumpi\n tag_1:\n /* \"contracts/Fallback.sol\":608:622 Log(gasleft()) */\n 0x909c57d5c6ac08245cf2a6de3900e2b868513fa59099b92b27d8db823d92df9c\n /* \"contracts/Fallback.sol\":612:621 gasleft() */\n gas\n /* \"contracts/Fallback.sol\":608:622 Log(gasleft()) */\n mload(0x40)\n /* \"#utility.yul\":160:185 */\n swap1\n dup2\n mstore\n /* \"#utility.yul\":148:150 */\n 0x20\n /* \"#utility.yul\":133:151 */\n add\n /* \"contracts/Fallback.sol\":608:622 Log(gasleft()) */\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log1\n /* \"contracts/Fallback.sol\":316:792 contract Fallback {... */\n stop\n /* \"contracts/Fallback.sol\":696:790 function getBalance() public view returns (uint) {... */\n tag_3:\n callvalue\n dup1\n iszero\n tag_8\n jumpi\n 0x00\n dup1\n revert\n tag_8:\n pop\n /* \"contracts/Fallback.sol\":762:783 address(this).balance */\n selfbalance\n /* \"contracts/Fallback.sol\":696:790 function getBalance() public view returns (uint) {... */\n mload(0x40)\n /* \"#utility.yul\":160:185 */\n swap1\n dup2\n mstore\n /* \"#utility.yul\":148:150 */\n 0x20\n /* \"#utility.yul\":133:151 */\n add\n /* \"contracts/Fallback.sol\":696:790 function getBalance() public view returns (uint) {... */\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n\n auxdata: 0xa264697066735822122084a201e95ab8e752cd1ea8cc907f7edcf19a986c252956500cdef3510cf4fb6a64736f6c634300080d0033\n}\n",
"bytecode": {
"functionDebugData": {
"@_9": {
"entryPoint": null,
"id": 9,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "608060405260a6806100126000396000f3fe608060405260043610601c5760003560e01c806312065fe0146051575b7f909c57d5c6ac08245cf2a6de3900e2b868513fa59099b92b27d8db823d92df9c5a60405190815260200160405180910390a1005b348015605c57600080fd5b504760405190815260200160405180910390f3fea264697066735822122084a201e95ab8e752cd1ea8cc907f7edcf19a986c252956500cdef3510cf4fb6a64736f6c634300080d0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA6 DUP1 PUSH2 0x12 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x1C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x12065FE0 EQ PUSH1 0x51 JUMPI JUMPDEST PUSH32 0x909C57D5C6AC08245CF2A6DE3900E2B868513FA59099B92B27D8DB823D92DF9C GAS PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SELFBALANCE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP5 LOG2 ADD 0xE9 GAS 0xB8 0xE7 MSTORE 0xCD 0x1E 0xA8 0xCC SWAP1 PUSH32 0x7EDCF19A986C252956500CDEF3510CF4FB6A64736F6C634300080D0033000000 ",
"sourceMap": "316:476:0:-:0;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_18": {
"entryPoint": null,
"id": 18,
"parameterSlots": 0,
"returnSlots": 0
},
"@getBalance_30": {
"entryPoint": null,
"id": 30,
"parameterSlots": 0,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:193:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "115:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "125:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "137:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "148:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "133:3:1"
},
"nodeType": "YulFunctionCall",
"src": "133:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "125:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "167:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "178:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "160:6:1"
},
"nodeType": "YulFunctionCall",
"src": "160:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "160:25:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "84:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "95:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "106:4:1",
"type": ""
}
],
"src": "14:177:1"
}
]
},
"contents": "{\n { }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405260043610601c5760003560e01c806312065fe0146051575b7f909c57d5c6ac08245cf2a6de3900e2b868513fa59099b92b27d8db823d92df9c5a60405190815260200160405180910390a1005b348015605c57600080fd5b504760405190815260200160405180910390f3fea264697066735822122084a201e95ab8e752cd1ea8cc907f7edcf19a986c252956500cdef3510cf4fb6a64736f6c634300080d0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x1C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x12065FE0 EQ PUSH1 0x51 JUMPI JUMPDEST PUSH32 0x909C57D5C6AC08245CF2A6DE3900E2B868513FA59099B92B27D8DB823D92DF9C GAS PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SELFBALANCE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP5 LOG2 ADD 0xE9 GAS 0xB8 0xE7 MSTORE 0xCD 0x1E 0xA8 0xCC SWAP1 PUSH32 0x7EDCF19A986C252956500CDEF3510CF4FB6A64736F6C634300080D0033000000 ",
"sourceMap": "316:476:0:-:0;;;;;;;;;;;;;;;;;;608:14;612:9;608:14;;160:25:1;;;148:2;133:18;608:14:0;;;;;;;316:476;696:94;;;;;;;;;;-1:-1:-1;762:21:0;696:94;;160:25:1;;;148:2;133:18;696:94:0;;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "33200",
"executionCost": "63",
"totalCost": "33263"
},
"external": {
"": "1130",
"getBalance()": "148"
}
},
"legacyAssembly": {
".code": [
{
"begin": 316,
"end": 792,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 316,
"end": 792,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 316,
"end": 792,
"name": "MSTORE",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 316,
"end": 792,
"name": "DUP1",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 316,
"end": 792,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 316,
"end": 792,
"name": "CODECOPY",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 316,
"end": 792,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a264697066735822122084a201e95ab8e752cd1ea8cc907f7edcf19a986c252956500cdef3510cf4fb6a64736f6c634300080d0033",
".code": [
{
"begin": 316,
"end": 792,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 316,
"end": 792,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 316,
"end": 792,
"name": "MSTORE",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 316,
"end": 792,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "LT",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 316,
"end": 792,
"name": "JUMPI",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 316,
"end": 792,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 316,
"end": 792,
"name": "SHR",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "DUP1",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "PUSH",
"source": 0,
"value": "12065FE0"
},
{
"begin": 316,
"end": 792,
"name": "EQ",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 316,
"end": 792,
"name": "JUMPI",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 316,
"end": 792,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 608,
"end": 622,
"name": "PUSH",
"source": 0,
"value": "909C57D5C6AC08245CF2A6DE3900E2B868513FA59099B92B27D8DB823D92DF9C"
},
{
"begin": 612,
"end": 621,
"name": "GAS",
"source": 0
},
{
"begin": 608,
"end": 622,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 608,
"end": 622,
"name": "MLOAD",
"source": 0
},
{
"begin": 160,
"end": 185,
"name": "SWAP1",
"source": 1
},
{
"begin": 160,
"end": 185,
"name": "DUP2",
"source": 1
},
{
"begin": 160,
"end": 185,
"name": "MSTORE",
"source": 1
},
{
"begin": 148,
"end": 150,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 133,
"end": 151,
"name": "ADD",
"source": 1
},
{
"begin": 608,
"end": 622,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 608,
"end": 622,
"name": "MLOAD",
"source": 0
},
{
"begin": 608,
"end": 622,
"name": "DUP1",
"source": 0
},
{
"begin": 608,
"end": 622,
"name": "SWAP2",
"source": 0
},
{
"begin": 608,
"end": 622,
"name": "SUB",
"source": 0
},
{
"begin": 608,
"end": 622,
"name": "SWAP1",
"source": 0
},
{
"begin": 608,
"end": 622,
"name": "LOG1",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "STOP",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 696,
"end": 790,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "DUP1",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "ISZERO",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "PUSH [tag]",
"source": 0,
"value": "8"
},
{
"begin": 696,
"end": 790,
"name": "JUMPI",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 696,
"end": 790,
"name": "DUP1",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "REVERT",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "tag",
"source": 0,
"value": "8"
},
{
"begin": 696,
"end": 790,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 762,
"end": 783,
"name": "SELFBALANCE",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 696,
"end": 790,
"name": "MLOAD",
"source": 0
},
{
"begin": 160,
"end": 185,
"name": "SWAP1",
"source": 1
},
{
"begin": 160,
"end": 185,
"name": "DUP2",
"source": 1
},
{
"begin": 160,
"end": 185,
"name": "MSTORE",
"source": 1
},
{
"begin": 148,
"end": 150,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 133,
"end": 151,
"name": "ADD",
"source": 1
},
{
"begin": 696,
"end": 790,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 696,
"end": 790,
"name": "MLOAD",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "DUP1",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "SWAP2",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "SUB",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "SWAP1",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "RETURN",
"source": 0
}
]
}
}
},
"methodIdentifiers": {
"getBalance()": "12065fe0"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"Log\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Fallback.sol\":\"Fallback\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Fallback.sol\":{\"keccak256\":\"0x80d6876bf9acaaa9bc904fce07ec97ccbae3c3c6149c9838b5aeb56764e09be1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c17fc0d8c99b9e0384621644b6a4ba3a0b4656d75040d5fb15cd6982ebc0280a\",\"dweb:/ipfs/QmSwBLpR3fWQ22htbEXyvjDxLGysAgtANeyPTnDEjpvJhd\"]}},\"version\":1}",
"storageLayout": {
"storage": [],
"types": null
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"SendToFallback": {
"abi": [
{
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
}
],
"name": "callFallback",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
}
],
"name": "transferToFallback",
"outputs": [],
"stateMutability": "payable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"contracts/Fallback.sol\":794:1104 contract SendToFallback {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/Fallback.sol\":794:1104 contract SendToFallback {... */\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x6ba87a53\n eq\n tag_2\n jumpi\n dup1\n 0xcfc6cdaa\n eq\n tag_3\n jumpi\n tag_1:\n 0x00\n dup1\n revert\n /* \"contracts/Fallback.sol\":934:1102 function callFallback(address payable _to) public payable {... */\n tag_2:\n tag_4\n tag_5\n calldatasize\n 0x04\n tag_6\n jump\t// in\n tag_5:\n tag_7\n jump\t// in\n tag_4:\n stop\n /* \"contracts/Fallback.sol\":824:928 function transferToFallback(address payable _to) public payable {... */\n tag_3:\n tag_4\n tag_9\n calldatasize\n 0x04\n tag_6\n jump\t// in\n tag_9:\n tag_10\n jump\t// in\n /* \"contracts/Fallback.sol\":934:1102 function callFallback(address payable _to) public payable {... */\n tag_7:\n /* \"contracts/Fallback.sol\":1003:1012 bool sent */\n 0x00\n /* \"contracts/Fallback.sol\":1018:1021 _to */\n dup2\n sub(shl(0xa0, 0x01), 0x01)\n /* \"contracts/Fallback.sol\":1018:1026 _to.call */\n and\n /* \"contracts/Fallback.sol\":1034:1043 msg.value */\n callvalue\n /* \"contracts/Fallback.sol\":1018:1048 _to.call{value: msg.value}(\"\") */\n mload(0x40)\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup6\n dup8\n gas\n call\n swap3\n pop\n pop\n pop\n returndatasize\n dup1\n 0x00\n dup2\n eq\n tag_16\n jumpi\n mload(0x40)\n swap2\n pop\n and(add(returndatasize, 0x3f), not(0x1f))\n dup3\n add\n 0x40\n mstore\n returndatasize\n dup3\n mstore\n returndatasize\n 0x00\n 0x20\n dup5\n add\n returndatacopy\n jump(tag_15)\n tag_16:\n 0x60\n swap2\n pop\n tag_15:\n pop\n /* \"contracts/Fallback.sol\":1002:1048 (bool sent, ) = _to.call{value: msg.value}(\"\") */\n pop\n swap1\n pop\n /* \"contracts/Fallback.sol\":1066:1070 sent */\n dup1\n /* \"contracts/Fallback.sol\":1058:1095 require(sent, \"Failed to send Ether\") */\n tag_17\n jumpi\n mload(0x40)\n shl(0xe5, 0x461bcd)\n dup2\n mstore\n /* \"#utility.yul\":725:727 */\n 0x20\n /* \"contracts/Fallback.sol\":1058:1095 require(sent, \"Failed to send Ether\") */\n 0x04\n dup3\n add\n /* \"#utility.yul\":707:728 */\n mstore\n /* \"#utility.yul\":764:766 */\n 0x14\n /* \"#utility.yul\":744:762 */\n 0x24\n dup3\n add\n /* \"#utility.yul\":737:767 */\n mstore\n shl(0x61, 0x2330b4b632b2103a379039b2b7321022ba3432b9)\n /* \"#utility.yul\":783:801 */\n 0x44\n dup3\n add\n /* \"#utility.yul\":776:826 */\n mstore\n /* \"#utility.yul\":843:861 */\n 0x64\n add\n /* \"contracts/Fallback.sol\":1058:1095 require(sent, \"Failed to send Ether\") */\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_17:\n /* \"contracts/Fallback.sol\":992:1102 {... */\n pop\n /* \"contracts/Fallback.sol\":934:1102 function callFallback(address payable _to) public payable {... */\n pop\n jump\t// out\n /* \"contracts/Fallback.sol\":824:928 function transferToFallback(address payable _to) public payable {... */\n tag_10:\n /* \"contracts/Fallback.sol\":898:921 _to.transfer(msg.value) */\n mload(0x40)\n sub(shl(0xa0, 0x01), 0x01)\n /* \"contracts/Fallback.sol\":898:910 _to.transfer */\n dup3\n and\n swap1\n /* \"contracts/Fallback.sol\":911:920 msg.value */\n callvalue\n /* \"contracts/Fallback.sol\":898:921 _to.transfer(msg.value) */\n dup1\n iszero\n 0x08fc\n mul\n swap2\n 0x00\n dup2\n dup2\n dup2\n /* \"contracts/Fallback.sol\":911:920 msg.value */\n dup6\n /* \"contracts/Fallback.sol\":898:910 _to.transfer */\n dup9\n /* \"contracts/Fallback.sol\":898:921 _to.transfer(msg.value) */\n dup9\n call\n swap4\n pop\n pop\n pop\n pop\n iszero\n dup1\n iszero\n tag_17\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n /* \"#utility.yul\":14:308 */\n tag_6:\n /* \"#utility.yul\":81:87 */\n 0x00\n /* \"#utility.yul\":134:136 */\n 0x20\n /* \"#utility.yul\":122:131 */\n dup3\n /* \"#utility.yul\":113:120 */\n dup5\n /* \"#utility.yul\":109:132 */\n sub\n /* \"#utility.yul\":105:137 */\n slt\n /* \"#utility.yul\":102:154 */\n iszero\n tag_25\n jumpi\n /* \"#utility.yul\":150:151 */\n 0x00\n /* \"#utility.yul\":147:148 */\n dup1\n /* \"#utility.yul\":140:152 */\n revert\n /* \"#utility.yul\":102:154 */\n tag_25:\n /* \"#utility.yul\":176:199 */\n dup2\n calldataload\n sub(shl(0xa0, 0x01), 0x01)\n /* \"#utility.yul\":228:259 */\n dup2\n and\n /* \"#utility.yul\":218:260 */\n dup2\n eq\n /* \"#utility.yul\":208:278 */\n tag_26\n jumpi\n /* \"#utility.yul\":274:275 */\n 0x00\n /* \"#utility.yul\":271:272 */\n dup1\n /* \"#utility.yul\":264:276 */\n revert\n /* \"#utility.yul\":208:278 */\n tag_26:\n /* \"#utility.yul\":297:302 */\n swap4\n /* \"#utility.yul\":14:308 */\n swap3\n pop\n pop\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220af5c7e11678ef66816e51279a58c983b9a787c806c29b254350fa49b147ebf4864736f6c634300080d0033\n}\n",
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610193806100206000396000f3fe6080604052600436106100295760003560e01c80636ba87a531461002e578063cfc6cdaa14610043575b600080fd5b61004161003c36600461012d565b610056565b005b61004161005136600461012d565b6100f8565b6000816001600160a01b03163460405160006040518083038185875af1925050503d80600081146100a3576040519150601f19603f3d011682016040523d82523d6000602084013e6100a8565b606091505b50509050806100f45760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b604482015260640160405180910390fd5b5050565b6040516001600160a01b038216903480156108fc02916000818181858888f193505050501580156100f4573d6000803e3d6000fd5b60006020828403121561013f57600080fd5b81356001600160a01b038116811461015657600080fd5b939250505056fea2646970667358221220af5c7e11678ef66816e51279a58c983b9a787c806c29b254350fa49b147ebf4864736f6c634300080d0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x193 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6BA87A53 EQ PUSH2 0x2E JUMPI DUP1 PUSH4 0xCFC6CDAA EQ PUSH2 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x41 PUSH2 0x3C CALLDATASIZE PUSH1 0x4 PUSH2 0x12D JUMP JUMPDEST PUSH2 0x56 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x41 PUSH2 0x51 CALLDATASIZE PUSH1 0x4 PUSH2 0x12D JUMP JUMPDEST PUSH2 0xF8 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLVALUE PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xA3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xA8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xF4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x2330B4B632B2103A379039B2B7321022BA3432B9 PUSH1 0x61 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 CALLVALUE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xF4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAF 0x5C PUSH31 0x11678EF66816E51279A58C983B9A787C806C29B254350FA49B147EBF486473 PUSH16 0x6C634300080D00330000000000000000 ",
"sourceMap": "794:310:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@callFallback_65": {
"entryPoint": 86,
"id": 65,
"parameterSlots": 1,
"returnSlots": 0
},
"@transferToFallback_44": {
"entryPoint": 248,
"id": 44,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_tuple_t_address_payable": {
"entryPoint": 301,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:869:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "92:216:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "138:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "147:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "150:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "140:6:1"
},
"nodeType": "YulFunctionCall",
"src": "140:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "140:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "113:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "122:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "109:3:1"
},
"nodeType": "YulFunctionCall",
"src": "109:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "134:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "105:3:1"
},
"nodeType": "YulFunctionCall",
"src": "105:32:1"
},
"nodeType": "YulIf",
"src": "102:52:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "163:36:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "189:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "176:12:1"
},
"nodeType": "YulFunctionCall",
"src": "176:23:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "167:5:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "262:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "271:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "274:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "264:6:1"
},
"nodeType": "YulFunctionCall",
"src": "264:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "264:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "221:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "232:5:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "247:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "252:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "243:3:1"
},
"nodeType": "YulFunctionCall",
"src": "243:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "256:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "239:3:1"
},
"nodeType": "YulFunctionCall",
"src": "239:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "228:3:1"
},
"nodeType": "YulFunctionCall",
"src": "228:31:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "218:2:1"
},
"nodeType": "YulFunctionCall",
"src": "218:42:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "211:6:1"
},
"nodeType": "YulFunctionCall",
"src": "211:50:1"
},
"nodeType": "YulIf",
"src": "208:70:1"
},
{
"nodeType": "YulAssignment",
"src": "287:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "297:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "287:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "58:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "69:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "81:6:1",
"type": ""
}
],
"src": "14:294:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "504:14:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "506:10:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "513:3:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "506:3:1"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "488:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "496:3:1",
"type": ""
}
],
"src": "313:205:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "697:170:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "714:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "725:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "707:6:1"
},
"nodeType": "YulFunctionCall",
"src": "707:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "707:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "748:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "759:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "744:3:1"
},
"nodeType": "YulFunctionCall",
"src": "744:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "764:2:1",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "737:6:1"
},
"nodeType": "YulFunctionCall",
"src": "737:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "737:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "787:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "798:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "783:3:1"
},
"nodeType": "YulFunctionCall",
"src": "783:18:1"
},
{
"hexValue": "4661696c656420746f2073656e64204574686572",
"kind": "string",
"nodeType": "YulLiteral",
"src": "803:22:1",
"type": "",
"value": "Failed to send Ether"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "776:6:1"
},
"nodeType": "YulFunctionCall",
"src": "776:50:1"
},
"nodeType": "YulExpressionStatement",
"src": "776:50:1"
},
{
"nodeType": "YulAssignment",
"src": "835:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "847:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "858:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "843:3:1"
},
"nodeType": "YulFunctionCall",
"src": "843:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "835:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "674:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "688:4:1",
"type": ""
}
],
"src": "523:344:1"
}
]
},
"contents": "{\n { }\n function abi_decode_tuple_t_address_payable(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n { end := pos }\n function abi_encode_tuple_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Failed to send Ether\")\n tail := add(headStart, 96)\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106100295760003560e01c80636ba87a531461002e578063cfc6cdaa14610043575b600080fd5b61004161003c36600461012d565b610056565b005b61004161005136600461012d565b6100f8565b6000816001600160a01b03163460405160006040518083038185875af1925050503d80600081146100a3576040519150601f19603f3d011682016040523d82523d6000602084013e6100a8565b606091505b50509050806100f45760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b604482015260640160405180910390fd5b5050565b6040516001600160a01b038216903480156108fc02916000818181858888f193505050501580156100f4573d6000803e3d6000fd5b60006020828403121561013f57600080fd5b81356001600160a01b038116811461015657600080fd5b939250505056fea2646970667358221220af5c7e11678ef66816e51279a58c983b9a787c806c29b254350fa49b147ebf4864736f6c634300080d0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6BA87A53 EQ PUSH2 0x2E JUMPI DUP1 PUSH4 0xCFC6CDAA EQ PUSH2 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x41 PUSH2 0x3C CALLDATASIZE PUSH1 0x4 PUSH2 0x12D JUMP JUMPDEST PUSH2 0x56 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x41 PUSH2 0x51 CALLDATASIZE PUSH1 0x4 PUSH2 0x12D JUMP JUMPDEST PUSH2 0xF8 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLVALUE PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xA3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xA8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xF4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x2330B4B632B2103A379039B2B7321022BA3432B9 PUSH1 0x61 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 CALLVALUE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xF4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAF 0x5C PUSH31 0x11678EF66816E51279A58C983B9A787C806C29B254350FA49B147EBF486473 PUSH16 0x6C634300080D00330000000000000000 ",
"sourceMap": "794:310:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;934:168;;;;;;:::i;:::-;;:::i;:::-;;824:104;;;;;;:::i;:::-;;:::i;934:168::-;1003:9;1018:3;-1:-1:-1;;;;;1018:8:0;1034:9;1018:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:46;;;1066:4;1058:37;;;;-1:-1:-1;;;1058:37:0;;725:2:1;1058:37:0;;;707:21:1;764:2;744:18;;;737:30;-1:-1:-1;;;783:18:1;;;776:50;843:18;;1058:37:0;;;;;;;;992:110;934:168;:::o;824:104::-;898:23;;-1:-1:-1;;;;;898:12:0;;;911:9;898:23;;;;;;;;;911:9;898:12;:23;;;;;;;;;;;;;;;;;;;14:294:1;81:6;134:2;122:9;113:7;109:23;105:32;102:52;;;150:1;147;140:12;102:52;176:23;;-1:-1:-1;;;;;228:31:1;;218:42;;208:70;;274:1;271;264:12;208:70;297:5;14:294;-1:-1:-1;;;14:294:1:o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "80600",
"executionCost": "129",
"totalCost": "80729"
},
"external": {
"callFallback(address)": "infinite",
"transferToFallback(address)": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 794,
"end": 1104,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 794,
"end": 1104,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 794,
"end": 1104,
"name": "MSTORE",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "DUP1",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "ISZERO",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 794,
"end": 1104,
"name": "JUMPI",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 794,
"end": 1104,
"name": "DUP1",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "REVERT",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 794,
"end": 1104,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "POP",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 794,
"end": 1104,
"name": "DUP1",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 794,
"end": 1104,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 794,
"end": 1104,
"name": "CODECOPY",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 794,
"end": 1104,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a2646970667358221220af5c7e11678ef66816e51279a58c983b9a787c806c29b254350fa49b147ebf4864736f6c634300080d0033",
".code": [
{
"begin": 794,
"end": 1104,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 794,
"end": 1104,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 794,
"end": 1104,
"name": "MSTORE",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 794,
"end": 1104,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "LT",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 794,
"end": 1104,
"name": "JUMPI",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 794,
"end": 1104,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 794,
"end": 1104,
"name": "SHR",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "DUP1",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "PUSH",
"source": 0,
"value": "6BA87A53"
},
{
"begin": 794,
"end": 1104,
"name": "EQ",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 794,
"end": 1104,
"name": "JUMPI",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "DUP1",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "PUSH",
"source": 0,
"value": "CFC6CDAA"
},
{
"begin": 794,
"end": 1104,
"name": "EQ",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 794,
"end": 1104,
"name": "JUMPI",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 794,
"end": 1104,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 794,
"end": 1104,
"name": "DUP1",
"source": 0
},
{
"begin": 794,
"end": 1104,
"name": "REVERT",
"source": 0
},
{
"begin": 934,
"end": 1102,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 934,
"end": 1102,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 934,
"end": 1102,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 934,
"end": 1102,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 934,
"end": 1102,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 934,
"end": 1102,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 934,
"end": 1102,
"name": "PUSH [tag]",
"source": 0,
"value": "6"
},
{
"begin": 934,
"end": 1102,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 934,
"end": 1102,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 934,
"end": 1102,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 934,
"end": 1102,
"name": "PUSH [tag]",
"source": 0,
"value": "7"
},
{
"begin": 934,
"end": 1102,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 934,
"end": 1102,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 934,
"end": 1102,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 934,
"end": 1102,
"name": "STOP",
"source": 0
},
{
"begin": 824,
"end": 928,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 824,
"end": 928,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 824,
"end": 928,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 824,
"end": 928,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 824,
"end": 928,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 824,
"end": 928,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 824,
"end": 928,
"name": "PUSH [tag]",
"source": 0,
"value": "6"
},
{
"begin": 824,
"end": 928,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 824,
"end": 928,
"name": "tag",
"source": 0,
"value": "9"
},
{
"begin": 824,
"end": 928,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 824,
"end": 928,
"name": "PUSH [tag]",
"source": 0,
"value": "10"
},
{
"begin": 824,
"end": 928,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 934,
"end": 1102,
"name": "tag",
"source": 0,
"value": "7"
},
{
"begin": 934,
"end": 1102,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1003,
"end": 1012,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 1018,
"end": 1021,
"name": "DUP2",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 1018,
"end": 1026,
"name": "AND",
"source": 0
},
{
"begin": 1034,
"end": 1043,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1018,
"end": 1048,
"name": "MLOAD",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 1018,
"end": 1048,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1018,
"end": 1048,
"name": "MLOAD",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "DUP1",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "DUP4",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "SUB",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "DUP2",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "DUP6",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "DUP8",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "GAS",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "CALL",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "SWAP3",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "POP",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "POP",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "POP",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "DUP1",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 1018,
"end": 1048,
"name": "DUP2",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "EQ",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 1018,
"end": 1048,
"name": "JUMPI",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1018,
"end": 1048,
"name": "MLOAD",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "SWAP2",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "POP",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 1018,
"end": 1048,
"name": "NOT",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "PUSH",
"source": 0,
"value": "3F"
},
{
"begin": 1018,
"end": 1048,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "ADD",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "AND",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "DUP3",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "ADD",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1018,
"end": 1048,
"name": "MSTORE",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "DUP3",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "MSTORE",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 1018,
"end": 1048,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1018,
"end": 1048,
"name": "DUP5",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "ADD",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "RETURNDATACOPY",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "PUSH [tag]",
"source": 0,
"value": "15"
},
{
"begin": 1018,
"end": 1048,
"name": "JUMP",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "tag",
"source": 0,
"value": "16"
},
{
"begin": 1018,
"end": 1048,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "PUSH",
"source": 0,
"value": "60"
},
{
"begin": 1018,
"end": 1048,
"name": "SWAP2",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "POP",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "tag",
"source": 0,
"value": "15"
},
{
"begin": 1018,
"end": 1048,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1018,
"end": 1048,
"name": "POP",
"source": 0
},
{
"begin": 1002,
"end": 1048,
"name": "POP",
"source": 0
},
{
"begin": 1002,
"end": 1048,
"name": "SWAP1",
"source": 0
},
{
"begin": 1002,
"end": 1048,
"name": "POP",
"source": 0
},
{
"begin": 1066,
"end": 1070,
"name": "DUP1",
"source": 0
},
{
"begin": 1058,
"end": 1095,
"name": "PUSH [tag]",
"source": 0,
"value": "17"
},
{
"begin": 1058,
"end": 1095,
"name": "JUMPI",
"source": 0
},
{
"begin": 1058,
"end": 1095,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1058,
"end": 1095,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "461BCD"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "E5"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 1058,
"end": 1095,
"name": "DUP2",
"source": 0
},
{
"begin": 1058,
"end": 1095,
"name": "MSTORE",
"source": 0
},
{
"begin": 725,
"end": 727,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 1058,
"end": 1095,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 1058,
"end": 1095,
"name": "DUP3",
"source": 0
},
{
"begin": 1058,
"end": 1095,
"name": "ADD",
"source": 0
},
{
"begin": 707,
"end": 728,
"name": "MSTORE",
"source": 1
},
{
"begin": 764,
"end": 766,
"name": "PUSH",
"source": 1,
"value": "14"
},
{
"begin": 744,
"end": 762,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 744,
"end": 762,
"name": "DUP3",
"source": 1
},
{
"begin": 744,
"end": 762,
"name": "ADD",
"source": 1
},
{
"begin": 737,
"end": 767,
"name": "MSTORE",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "2330B4B632B2103A379039B2B7321022BA3432B9"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "61"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 783,
"end": 801,
"name": "PUSH",
"source": 1,
"value": "44"
},
{
"begin": 783,
"end": 801,
"name": "DUP3",
"source": 1
},
{
"begin": 783,
"end": 801,
"name": "ADD",
"source": 1
},
{
"begin": 776,
"end": 826,
"name": "MSTORE",
"source": 1
},
{
"begin": 843,
"end": 861,
"name": "PUSH",
"source": 1,
"value": "64"
},
{
"begin": 843,
"end": 861,
"name": "ADD",
"source": 1
},
{
"begin": 1058,
"end": 1095,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1058,
"end": 1095,
"name": "MLOAD",
"source": 0
},
{
"begin": 1058,
"end": 1095,
"name": "DUP1",
"source": 0
},
{
"begin": 1058,
"end": 1095,
"name": "SWAP2",
"source": 0
},
{
"begin": 1058,
"end": 1095,
"name": "SUB",
"source": 0
},
{
"begin": 1058,
"end": 1095,
"name": "SWAP1",
"source": 0
},
{
"begin": 1058,
"end": 1095,
"name": "REVERT",
"source": 0
},
{
"begin": 1058,
"end": 1095,
"name": "tag",
"source": 0,
"value": "17"
},
{
"begin": 1058,
"end": 1095,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 992,
"end": 1102,
"name": "POP",
"source": 0
},
{
"begin": 934,
"end": 1102,
"name": "POP",
"source": 0
},
{
"begin": 934,
"end": 1102,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 824,
"end": 928,
"name": "tag",
"source": 0,
"value": "10"
},
{
"begin": 824,
"end": 928,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 898,
"end": 921,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 898,
"end": 910,
"name": "DUP3",
"source": 0
},
{
"begin": 898,
"end": 910,
"name": "AND",
"source": 0
},
{
"begin": 898,
"end": 910,
"name": "SWAP1",
"source": 0
},
{
"begin": 911,
"end": 920,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "DUP1",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "ISZERO",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "PUSH",
"source": 0,
"value": "8FC"
},
{
"begin": 898,
"end": 921,
"name": "MUL",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "SWAP2",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 898,
"end": 921,
"name": "DUP2",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "DUP2",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "DUP2",
"source": 0
},
{
"begin": 911,
"end": 920,
"name": "DUP6",
"source": 0
},
{
"begin": 898,
"end": 910,
"name": "DUP9",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "DUP9",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "CALL",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "SWAP4",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "POP",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "POP",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "POP",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "POP",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "ISZERO",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "DUP1",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "ISZERO",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "PUSH [tag]",
"source": 0,
"value": "17"
},
{
"begin": 898,
"end": 921,
"name": "JUMPI",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 898,
"end": 921,
"name": "DUP1",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "RETURNDATACOPY",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 898,
"end": 921,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 898,
"end": 921,
"name": "REVERT",
"source": 0
},
{
"begin": 14,
"end": 308,
"name": "tag",
"source": 1,
"value": "6"
},
{
"begin": 14,
"end": 308,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 81,
"end": 87,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 134,
"end": 136,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 122,
"end": 131,
"name": "DUP3",
"source": 1
},
{
"begin": 113,
"end": 120,
"name": "DUP5",
"source": 1
},
{
"begin": 109,
"end": 132,
"name": "SUB",
"source": 1
},
{
"begin": 105,
"end": 137,
"name": "SLT",
"source": 1
},
{
"begin": 102,
"end": 154,
"name": "ISZERO",
"source": 1
},
{
"begin": 102,
"end": 154,
"name": "PUSH [tag]",
"source": 1,
"value": "25"
},
{
"begin": 102,
"end": 154,
"name": "JUMPI",
"source": 1
},
{
"begin": 150,
"end": 151,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 147,
"end": 148,
"name": "DUP1",
"source": 1
},
{
"begin": 140,
"end": 152,
"name": "REVERT",
"source": 1
},
{
"begin": 102,
"end": 154,
"name": "tag",
"source": 1,
"value": "25"
},
{
"begin": 102,
"end": 154,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 176,
"end": 199,
"name": "DUP2",
"source": 1
},
{
"begin": 176,
"end": 199,
"name": "CALLDATALOAD",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 228,
"end": 259,
"name": "DUP2",
"source": 1
},
{
"begin": 228,
"end": 259,
"name": "AND",
"source": 1
},
{
"begin": 218,
"end": 260,
"name": "DUP2",
"source": 1
},
{
"begin": 218,
"end": 260,
"name": "EQ",
"source": 1
},
{
"begin": 208,
"end": 278,
"name": "PUSH [tag]",
"source": 1,
"value": "26"
},
{
"begin": 208,
"end": 278,
"name": "JUMPI",
"source": 1
},
{
"begin": 274,
"end": 275,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 271,
"end": 272,
"name": "DUP1",
"source": 1
},
{
"begin": 264,
"end": 276,
"name": "REVERT",
"source": 1
},
{
"begin": 208,
"end": 278,
"name": "tag",
"source": 1,
"value": "26"
},
{
"begin": 208,
"end": 278,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 297,
"end": 302,
"name": "SWAP4",
"source": 1
},
{
"begin": 14,
"end": 308,
"name": "SWAP3",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 14,
"end": 308,
"name": "JUMP",
"source": 1,
"value": "[out]"
}
]
}
}
},
"methodIdentifiers": {
"callFallback(address)": "6ba87a53",
"transferToFallback(address)": "cfc6cdaa"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"callFallback\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"transferToFallback\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Fallback.sol\":\"SendToFallback\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Fallback.sol\":{\"keccak256\":\"0x80d6876bf9acaaa9bc904fce07ec97ccbae3c3c6149c9838b5aeb56764e09be1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c17fc0d8c99b9e0384621644b6a4ba3a0b4656d75040d5fb15cd6982ebc0280a\",\"dweb:/ipfs/QmSwBLpR3fWQ22htbEXyvjDxLGysAgtANeyPTnDEjpvJhd\"]}},\"version\":1}",
"storageLayout": {
"storage": [],
"types": null
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
}
},
"errors": [
{
"component": "general",
"errorCode": "3628",
"formattedMessage": "Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.\n --> contracts/Fallback.sol:13:1:\n |\n13 | contract Fallback {\n | ^ (Relevant source part starts here and spans across multiple lines).\nNote: The payable fallback function is defined here.\n --> contracts/Fallback.sol:19:5:\n |\n19 | fallback() external payable {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n",
"message": "This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.",
"secondarySourceLocations": [
{
"end": 629,
"file": "contracts/Fallback.sol",
"message": "The payable fallback function is defined here.",
"start": 450
}
],
"severity": "warning",
"sourceLocation": {
"end": 792,
"file": "contracts/Fallback.sol",
"start": 316
},
"type": "Warning"
}
],
"sources": {
"contracts/Fallback.sol": {
"ast": {
"absolutePath": "contracts/Fallback.sol",
"exportedSymbols": {
"Fallback": [
31
],
"SendToFallback": [
66
]
},
"id": 67,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.8",
".13"
],
"nodeType": "PragmaDirective",
"src": "32:24:0"
},
{
"abstract": false,
"baseContracts": [],
"canonicalName": "Fallback",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 31,
"linearizedBaseContracts": [
31
],
"name": "Fallback",
"nameLocation": "325:8:0",
"nodeType": "ContractDefinition",
"nodes": [
{
"anonymous": false,
"eventSelector": "909c57d5c6ac08245cf2a6de3900e2b868513fa59099b92b27d8db823d92df9c",
"id": 5,
"name": "Log",
"nameLocation": "346:3:0",
"nodeType": "EventDefinition",
"parameters": {
"id": 4,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3,
"indexed": false,
"mutability": "mutable",
"name": "gas",
"nameLocation": "355:3:0",
"nodeType": "VariableDeclaration",
"scope": 5,
"src": "350:8:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "350:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "349:10:0"
},
"src": "340:20:0"
},
{
"body": {
"id": 8,
"nodeType": "Block",
"src": "388:2:0",
"statements": []
},
"id": 9,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 6,
"nodeType": "ParameterList",
"parameters": [],
"src": "377:2:0"
},
"returnParameters": {
"id": 7,
"nodeType": "ParameterList",
"parameters": [],
"src": "388:0:0"
},
"scope": 31,
"src": "366:24:0",
"stateMutability": "payable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 17,
"nodeType": "Block",
"src": "478:151:0",
"statements": [
{
"eventCall": {
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 13,
"name": "gasleft",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967289,
"src": "612:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
"id": 14,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "612:9:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 12,
"name": "Log",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "608:3:0",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 15,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "608:14:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 16,
"nodeType": "EmitStatement",
"src": "603:19:0"
}
]
},
"id": 18,
"implemented": true,
"kind": "fallback",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 10,
"nodeType": "ParameterList",
"parameters": [],
"src": "458:2:0"
},
"returnParameters": {
"id": 11,
"nodeType": "ParameterList",
"parameters": [],
"src": "478:0:0"
},
"scope": 31,
"src": "450:179:0",
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 29,
"nodeType": "Block",
"src": "745:45:0",
"statements": [
{
"expression": {
"expression": {
"arguments": [
{
"id": 25,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967268,
"src": "770:4:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Fallback_$31",
"typeString": "contract Fallback"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_Fallback_$31",
"typeString": "contract Fallback"
}
],
"id": 24,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "762:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 23,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "762:7:0",
"typeDescriptions": {}
}
},
"id": 26,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "762:13:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 27,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "balance",
"nodeType": "MemberAccess",
"src": "762:21:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 22,
"id": 28,
"nodeType": "Return",
"src": "755:28:0"
}
]
},
"functionSelector": "12065fe0",
"id": 30,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getBalance",
"nameLocation": "705:10:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 19,
"nodeType": "ParameterList",
"parameters": [],
"src": "715:2:0"
},
"returnParameters": {
"id": 22,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 21,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 30,
"src": "739:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 20,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "739:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "738:6:0"
},
"scope": 31,
"src": "696:94:0",
"stateMutability": "view",
"virtual": false,
"visibility": "public"
}
],
"scope": 67,
"src": "316:476:0",
"usedErrors": []
},
{
"abstract": false,
"baseContracts": [],
"canonicalName": "SendToFallback",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 66,
"linearizedBaseContracts": [
66
],
"name": "SendToFallback",
"nameLocation": "803:14:0",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 43,
"nodeType": "Block",
"src": "888:40:0",
"statements": [
{
"expression": {
"arguments": [
{
"expression": {
"id": 39,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "911:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 40,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"src": "911:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 36,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 33,
"src": "898:3:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"id": 38,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "transfer",
"nodeType": "MemberAccess",
"src": "898:12:0",
"typeDescriptions": {
"typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 41,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "898:23:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 42,
"nodeType": "ExpressionStatement",
"src": "898:23:0"
}
]
},
"functionSelector": "cfc6cdaa",
"id": 44,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "transferToFallback",
"nameLocation": "833:18:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 34,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 33,
"mutability": "mutable",
"name": "_to",
"nameLocation": "868:3:0",
"nodeType": "VariableDeclaration",
"scope": 44,
"src": "852:19:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 32,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "852:15:0",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"visibility": "internal"
}
],
"src": "851:21:0"
},
"returnParameters": {
"id": 35,
"nodeType": "ParameterList",
"parameters": [],
"src": "888:0:0"
},
"scope": 66,
"src": "824:104:0",
"stateMutability": "payable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 64,
"nodeType": "Block",
"src": "992:110:0",
"statements": [
{
"assignments": [
50,
null
],
"declarations": [
{
"constant": false,
"id": 50,
"mutability": "mutable",
"name": "sent",
"nameLocation": "1008:4:0",
"nodeType": "VariableDeclaration",
"scope": 64,
"src": "1003:9:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 49,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1003:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
},
null
],
"id": 58,
"initialValue": {
"arguments": [
{
"hexValue": "",
"id": 56,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1045:2:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
}
],
"expression": {
"id": 51,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46,
"src": "1018:3:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"id": 52,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "call",
"nodeType": "MemberAccess",
"src": "1018:8:0",
"typeDescriptions": {
"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "function (bytes memory) payable returns (bool,bytes memory)"
}
},
"id": 55,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"names": [
"value"
],
"nodeType": "FunctionCallOptions",
"options": [
{
"expression": {
"id": 53,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "1034:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 54,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"src": "1034:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"src": "1018:26:0",
"typeDescriptions": {
"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value",
"typeString": "function (bytes memory) payable returns (bool,bytes memory)"
}
},
"id": 57,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1018:30:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "tuple(bool,bytes memory)"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1002:46:0"
},
{
"expression": {
"arguments": [
{
"id": 60,
"name": "sent",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 50,
"src": "1066:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "4661696c656420746f2073656e64204574686572",
"id": 61,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1072:22:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb",
"typeString": "literal_string \"Failed to send Ether\""
},
"value": "Failed to send Ether"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb",
"typeString": "literal_string \"Failed to send Ether\""
}
],
"id": 59,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4294967278,
4294967278
],
"referencedDeclaration": 4294967278,
"src": "1058:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 62,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1058:37:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 63,
"nodeType": "ExpressionStatement",
"src": "1058:37:0"
}
]
},
"functionSelector": "6ba87a53",
"id": 65,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "callFallback",
"nameLocation": "943:12:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 47,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 46,
"mutability": "mutable",
"name": "_to",
"nameLocation": "972:3:0",
"nodeType": "VariableDeclaration",
"scope": 65,
"src": "956:19:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 45,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "956:15:0",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"visibility": "internal"
}
],
"src": "955:21:0"
},
"returnParameters": {
"id": 48,
"nodeType": "ParameterList",
"parameters": [],
"src": "992:0:0"
},
"scope": 66,
"src": "934:168:0",
"stateMutability": "payable",
"virtual": false,
"visibility": "public"
}
],
"scope": 67,
"src": "794:310:0",
"usedErrors": []
}
],
"src": "32:1072:0"
},
"id": 0
}
}
}
}
{
"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": {
"@_9": {
"entryPoint": null,
"id": 9,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "608060405260a6806100126000396000f3fe608060405260043610601c5760003560e01c806312065fe0146051575b7f909c57d5c6ac08245cf2a6de3900e2b868513fa59099b92b27d8db823d92df9c5a60405190815260200160405180910390a1005b348015605c57600080fd5b504760405190815260200160405180910390f3fea2646970667358221220f412f0438fe92e750abbf190b6619c12902b30d04269c5ce4f927b630445fbc964736f6c634300080d0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA6 DUP1 PUSH2 0x12 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x1C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x12065FE0 EQ PUSH1 0x51 JUMPI JUMPDEST PUSH32 0x909C57D5C6AC08245CF2A6DE3900E2B868513FA59099B92B27D8DB823D92DF9C GAS PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SELFBALANCE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DELEGATECALL SLT CREATE NUMBER DUP16 0xE9 0x2E PUSH22 0xABBF190B6619C12902B30D04269C5CE4F927B630445 0xFB 0xC9 PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ",
"sourceMap": "316:476:0:-:0;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_18": {
"entryPoint": null,
"id": 18,
"parameterSlots": 0,
"returnSlots": 0
},
"@getBalance_30": {
"entryPoint": null,
"id": 30,
"parameterSlots": 0,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:193:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "115:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "125:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "137:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "148:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "133:3:1"
},
"nodeType": "YulFunctionCall",
"src": "133:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "125:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "167:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "178:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "160:6:1"
},
"nodeType": "YulFunctionCall",
"src": "160:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "160:25:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "84:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "95:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "106:4:1",
"type": ""
}
],
"src": "14:177:1"
}
]
},
"contents": "{\n { }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405260043610601c5760003560e01c806312065fe0146051575b7f909c57d5c6ac08245cf2a6de3900e2b868513fa59099b92b27d8db823d92df9c5a60405190815260200160405180910390a1005b348015605c57600080fd5b504760405190815260200160405180910390f3fea2646970667358221220f412f0438fe92e750abbf190b6619c12902b30d04269c5ce4f927b630445fbc964736f6c634300080d0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x1C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x12065FE0 EQ PUSH1 0x51 JUMPI JUMPDEST PUSH32 0x909C57D5C6AC08245CF2A6DE3900E2B868513FA59099B92B27D8DB823D92DF9C GAS PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SELFBALANCE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DELEGATECALL SLT CREATE NUMBER DUP16 0xE9 0x2E PUSH22 0xABBF190B6619C12902B30D04269C5CE4F927B630445 0xFB 0xC9 PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ",
"sourceMap": "316:476:0:-:0;;;;;;;;;;;;;;;;;;608:14;612:9;608:14;;160:25:1;;;148:2;133:18;608:14:0;;;;;;;316:476;696:94;;;;;;;;;;-1:-1:-1;762:21:0;696:94;;160:25:1;;;148:2;133:18;696:94:0;;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "33200",
"executionCost": "63",
"totalCost": "33263"
},
"external": {
"": "1130",
"getBalance()": "148"
}
},
"methodIdentifiers": {
"getBalance()": "12065fe0"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "payable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "gas",
"type": "uint256"
}
],
"name": "Log",
"type": "event"
},
{
"stateMutability": "payable",
"type": "fallback"
},
{
"inputs": [],
"name": "getBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.13+commit.abaa5c0e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "payable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "gas",
"type": "uint256"
}
],
"name": "Log",
"type": "event"
},
{
"stateMutability": "payable",
"type": "fallback"
},
{
"inputs": [],
"name": "getBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/Fallback.sol": "Fallback"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/Fallback.sol": {
"keccak256": "0x760b7fdb2677f3a68235c78afdd23a6391a201a9c4535b3be1f9d80147e5720e",
"license": "MIT",
"urls": [
"bzz-raw://6885c6674e450d05a09635d67229707cec222fbd04a241b9270f31a377fda4ca",
"dweb:/ipfs/QmVFNYyULxeurnWo2BZo7m184cFoJT7264PoZa1GG4PTmJ"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_15": {
"entryPoint": null,
"id": 15,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "6080604052600080546001600160a01b031916331790556101d1806100256000396000f3fe6080604052600436106100555760003560e01c8063273884bd1461005a5780633ccfd60b1461006a578063590791f21461007f5780636f9fb98a146100ad5780638da5cb5b146100c0578063d0e30db014610068575b600080fd5b34801561006657600080fd5b505b005b34801561007657600080fd5b506100686100f8565b34801561008b57600080fd5b506000546001600160a01b0316315b6040519081526020015b60405180910390f35b3480156100b957600080fd5b504761009a565b3480156100cc57600080fd5b506000546100e0906001600160a01b031681565b6040516001600160a01b0390911681526020016100a4565b600080546040514792916001600160a01b03169083908381818185875af1925050503d8060008114610146576040519150601f19603f3d011682016040523d82523d6000602084013e61014b565b606091505b50509050806101975760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b604482015260640160405180910390fd5b505056fea2646970667358221220636d8c639e3d2eb51ea95106dc3f94dfc2816ce33f53f4937d2a0ed09c8460ec64736f6c634300080d0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x1D1 DUP1 PUSH2 0x25 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x55 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x273884BD EQ PUSH2 0x5A JUMPI DUP1 PUSH4 0x3CCFD60B EQ PUSH2 0x6A JUMPI DUP1 PUSH4 0x590791F2 EQ PUSH2 0x7F JUMPI DUP1 PUSH4 0x6F9FB98A EQ PUSH2 0xAD JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xC0 JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0x68 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x68 PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND BALANCE JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SELFBALANCE PUSH2 0x9A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0xE0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xA4 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SELFBALANCE SWAP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP4 SWAP1 DUP4 DUP2 DUP2 DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x146 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x14B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x197 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x2330B4B632B2103A379039B2B7321022BA3432B9 PUSH1 0x61 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH4 0x6D8C639E RETURNDATASIZE 0x2E 0xB5 0x1E 0xA9 MLOAD MOD 0xDC EXTCODEHASH SWAP5 0xDF 0xC2 DUP2 PUSH13 0xE33F53F4937D2A0ED09C8460EC PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ",
"sourceMap": "58:968:0:-:0;;;260:5;:27;;-1:-1:-1;;;;;;260:27:0;276:10;260:27;;;58:968;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@deposit_19": {
"entryPoint": null,
"id": 19,
"parameterSlots": 0,
"returnSlots": 0
},
"@getContractBalance_61": {
"entryPoint": null,
"id": 61,
"parameterSlots": 0,
"returnSlots": 1
},
"@getOwnerBalance_73": {
"entryPoint": null,
"id": 73,
"parameterSlots": 0,
"returnSlots": 1
},
"@notPayable_23": {
"entryPoint": null,
"id": 23,
"parameterSlots": 0,
"returnSlots": 0
},
"@owner_3": {
"entryPoint": null,
"id": 3,
"parameterSlots": 0,
"returnSlots": 0
},
"@withdraw_49": {
"entryPoint": 248,
"id": 49,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:976:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "115:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "125:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "137:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "148:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "133:3:1"
},
"nodeType": "YulFunctionCall",
"src": "133:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "125:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "167:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "178:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "160:6:1"
},
"nodeType": "YulFunctionCall",
"src": "160:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "160:25:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "84:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "95:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "106:4:1",
"type": ""
}
],
"src": "14:177:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "313:102:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "323:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "335:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "346:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "331:3:1"
},
"nodeType": "YulFunctionCall",
"src": "331:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "323:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "365:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "380:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "396:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "401:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "392:3:1"
},
"nodeType": "YulFunctionCall",
"src": "392:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "405:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "388:3:1"
},
"nodeType": "YulFunctionCall",
"src": "388:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "376:3:1"
},
"nodeType": "YulFunctionCall",
"src": "376:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "358:6:1"
},
"nodeType": "YulFunctionCall",
"src": "358:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "358:51:1"
}
]
},
"name": "abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "282:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "293:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "304:4:1",
"type": ""
}
],
"src": "196:219:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "611:14:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "613:10:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "620:3:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "613:3:1"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "595:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "603:3:1",
"type": ""
}
],
"src": "420:205:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "804:170:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "821:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "832:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "814:6:1"
},
"nodeType": "YulFunctionCall",
"src": "814:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "814:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "855:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "866:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "851:3:1"
},
"nodeType": "YulFunctionCall",
"src": "851:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "871:2:1",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "844:6:1"
},
"nodeType": "YulFunctionCall",
"src": "844:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "844:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "894:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "905:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "890:3:1"
},
"nodeType": "YulFunctionCall",
"src": "890:18:1"
},
{
"hexValue": "4661696c656420746f2073656e64204574686572",
"kind": "string",
"nodeType": "YulLiteral",
"src": "910:22:1",
"type": "",
"value": "Failed to send Ether"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "883:6:1"
},
"nodeType": "YulFunctionCall",
"src": "883:50:1"
},
"nodeType": "YulExpressionStatement",
"src": "883:50:1"
},
{
"nodeType": "YulAssignment",
"src": "942:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "954:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "965:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "950:3:1"
},
"nodeType": "YulFunctionCall",
"src": "950:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "942:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "781:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "795:4:1",
"type": ""
}
],
"src": "630:344:1"
}
]
},
"contents": "{\n { }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n { end := pos }\n function abi_encode_tuple_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Failed to send Ether\")\n tail := add(headStart, 96)\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106100555760003560e01c8063273884bd1461005a5780633ccfd60b1461006a578063590791f21461007f5780636f9fb98a146100ad5780638da5cb5b146100c0578063d0e30db014610068575b600080fd5b34801561006657600080fd5b505b005b34801561007657600080fd5b506100686100f8565b34801561008b57600080fd5b506000546001600160a01b0316315b6040519081526020015b60405180910390f35b3480156100b957600080fd5b504761009a565b3480156100cc57600080fd5b506000546100e0906001600160a01b031681565b6040516001600160a01b0390911681526020016100a4565b600080546040514792916001600160a01b03169083908381818185875af1925050503d8060008114610146576040519150601f19603f3d011682016040523d82523d6000602084013e61014b565b606091505b50509050806101975760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b604482015260640160405180910390fd5b505056fea2646970667358221220636d8c639e3d2eb51ea95106dc3f94dfc2816ce33f53f4937d2a0ed09c8460ec64736f6c634300080d0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x55 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x273884BD EQ PUSH2 0x5A JUMPI DUP1 PUSH4 0x3CCFD60B EQ PUSH2 0x6A JUMPI DUP1 PUSH4 0x590791F2 EQ PUSH2 0x7F JUMPI DUP1 PUSH4 0x6F9FB98A EQ PUSH2 0xAD JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xC0 JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0x68 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x68 PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND BALANCE JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SELFBALANCE PUSH2 0x9A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0xE0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xA4 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD SELFBALANCE SWAP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP4 SWAP1 DUP4 DUP2 DUP2 DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x146 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x14B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x197 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x2330B4B632B2103A379039B2B7321022BA3432B9 PUSH1 0x61 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH4 0x6D8C639E RETURNDATASIZE 0x2E 0xB5 0x1E 0xA9 MLOAD MOD 0xDC EXTCODEHASH SWAP5 0xDF 0xC2 DUP2 PUSH13 0xE33F53F4937D2A0ED09C8460EC PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ",
"sourceMap": "58:968:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;469:31;;;;;;;;;;;;;564:242;;;;;;;;;;;;;:::i;922:102::-;;;;;;;;;;-1:-1:-1;972:4:0;1003:5;-1:-1:-1;;;;;1003:5:0;995:22;922:102;;;160:25:1;;;148:2;133:18;922:102:0;;;;;;;;812:104;;;;;;;;;;-1:-1:-1;888:21:0;812:104;;122:28;;;;;;;;;;-1:-1:-1;122:28:0;;;;-1:-1:-1;;;;;122:28:0;;;;;;-1:-1:-1;;;;;376:32:1;;;358:51;;346:2;331:18;122:28:0;196:219:1;564:242:0;602:11;720:5;;:29;;616:21;;602:11;-1:-1:-1;;;;;720:5:0;;616:21;;602:11;720:29;602:11;720:29;616:21;720:5;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;701:48;;;767:7;759:40;;;;-1:-1:-1;;;759:40:0;;832:2:1;759:40:0;;;814:21:1;871:2;851:18;;;844:30;-1:-1:-1;;;890:18:1;;;883:50;950:18;;759:40:0;;;;;;;;591:215;;564:242::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "93000",
"executionCost": "24352",
"totalCost": "117352"
},
"external": {
"deposit()": "184",
"getContractBalance()": "227",
"getOwnerBalance()": "4910",
"notPayable()": "101",
"owner()": "2403",
"withdraw()": "infinite"
}
},
"methodIdentifiers": {
"deposit()": "d0e30db0",
"getContractBalance()": "6f9fb98a",
"getOwnerBalance()": "590791f2",
"notPayable()": "273884bd",
"owner()": "8da5cb5b",
"withdraw()": "3ccfd60b"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "payable",
"type": "constructor"
},
{
"inputs": [],
"name": "deposit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "getContractBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getOwnerBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "notPayable",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.13+commit.abaa5c0e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "payable",
"type": "constructor"
},
{
"inputs": [],
"name": "deposit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "getContractBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getOwnerBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "notPayable",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/Payable.sol": "Payable"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/Payable.sol": {
"keccak256": "0x1ec0718c91f7818d1ee0996c9c6ae64e5e41dcb6e748d216d2cc281c10685166",
"license": "MIT",
"urls": [
"bzz-raw://01d1e16ff305a94e880f67c0d17750e49e54f646c3e6b044081765896740cb69",
"dweb:/ipfs/QmXR93vwFkTWuUtBRMPGEF1G8TrnycSTodsGDjcu2MqJ8Y"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_35": {
"entryPoint": null,
"id": 35,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "6080604052610193806100136000396000f3fe6080604052600436106100295760003560e01c80636ba87a531461002e578063cfc6cdaa14610043575b600080fd5b61004161003c36600461012d565b610056565b005b61004161005136600461012d565b6100f8565b6000816001600160a01b03163460405160006040518083038185875af1925050503d80600081146100a3576040519150601f19603f3d011682016040523d82523d6000602084013e6100a8565b606091505b50509050806100f45760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b604482015260640160405180910390fd5b5050565b6040516001600160a01b038216903480156108fc02916000818181858888f193505050501580156100f4573d6000803e3d6000fd5b60006020828403121561013f57600080fd5b81356001600160a01b038116811461015657600080fd5b939250505056fea2646970667358221220e93f06e42463e37c7cf998762bd832310e5f92ad2975cae374242bf2d2398f0264736f6c634300080d0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH2 0x193 DUP1 PUSH2 0x13 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6BA87A53 EQ PUSH2 0x2E JUMPI DUP1 PUSH4 0xCFC6CDAA EQ PUSH2 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x41 PUSH2 0x3C CALLDATASIZE PUSH1 0x4 PUSH2 0x12D JUMP JUMPDEST PUSH2 0x56 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x41 PUSH2 0x51 CALLDATASIZE PUSH1 0x4 PUSH2 0x12D JUMP JUMPDEST PUSH2 0xF8 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLVALUE PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xA3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xA8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xF4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x2330B4B632B2103A379039B2B7321022BA3432B9 PUSH1 0x61 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 CALLVALUE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xF4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE9 EXTCODEHASH MOD 0xE4 0x24 PUSH4 0xE37C7CF9 SWAP9 PUSH23 0x2BD832310E5F92AD2975CAE374242BF2D2398F0264736F PUSH13 0x634300080D0033000000000000 ",
"sourceMap": "794:344:0:-:0;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@callFallback_69": {
"entryPoint": 86,
"id": 69,
"parameterSlots": 1,
"returnSlots": 0
},
"@transferToFallback_48": {
"entryPoint": 248,
"id": 48,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_tuple_t_address_payable": {
"entryPoint": 301,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:869:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "92:216:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "138:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "147:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "150:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "140:6:1"
},
"nodeType": "YulFunctionCall",
"src": "140:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "140:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "113:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "122:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "109:3:1"
},
"nodeType": "YulFunctionCall",
"src": "109:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "134:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "105:3:1"
},
"nodeType": "YulFunctionCall",
"src": "105:32:1"
},
"nodeType": "YulIf",
"src": "102:52:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "163:36:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "189:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "176:12:1"
},
"nodeType": "YulFunctionCall",
"src": "176:23:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "167:5:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "262:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "271:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "274:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "264:6:1"
},
"nodeType": "YulFunctionCall",
"src": "264:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "264:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "221:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "232:5:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "247:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "252:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "243:3:1"
},
"nodeType": "YulFunctionCall",
"src": "243:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "256:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "239:3:1"
},
"nodeType": "YulFunctionCall",
"src": "239:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "228:3:1"
},
"nodeType": "YulFunctionCall",
"src": "228:31:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "218:2:1"
},
"nodeType": "YulFunctionCall",
"src": "218:42:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "211:6:1"
},
"nodeType": "YulFunctionCall",
"src": "211:50:1"
},
"nodeType": "YulIf",
"src": "208:70:1"
},
{
"nodeType": "YulAssignment",
"src": "287:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "297:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "287:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "58:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "69:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "81:6:1",
"type": ""
}
],
"src": "14:294:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "504:14:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "506:10:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "513:3:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "506:3:1"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "488:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "496:3:1",
"type": ""
}
],
"src": "313:205:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "697:170:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "714:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "725:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "707:6:1"
},
"nodeType": "YulFunctionCall",
"src": "707:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "707:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "748:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "759:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "744:3:1"
},
"nodeType": "YulFunctionCall",
"src": "744:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "764:2:1",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "737:6:1"
},
"nodeType": "YulFunctionCall",
"src": "737:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "737:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "787:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "798:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "783:3:1"
},
"nodeType": "YulFunctionCall",
"src": "783:18:1"
},
{
"hexValue": "4661696c656420746f2073656e64204574686572",
"kind": "string",
"nodeType": "YulLiteral",
"src": "803:22:1",
"type": "",
"value": "Failed to send Ether"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "776:6:1"
},
"nodeType": "YulFunctionCall",
"src": "776:50:1"
},
"nodeType": "YulExpressionStatement",
"src": "776:50:1"
},
{
"nodeType": "YulAssignment",
"src": "835:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "847:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "858:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "843:3:1"
},
"nodeType": "YulFunctionCall",
"src": "843:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "835:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "674:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "688:4:1",
"type": ""
}
],
"src": "523:344:1"
}
]
},
"contents": "{\n { }\n function abi_decode_tuple_t_address_payable(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n { end := pos }\n function abi_encode_tuple_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Failed to send Ether\")\n tail := add(headStart, 96)\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106100295760003560e01c80636ba87a531461002e578063cfc6cdaa14610043575b600080fd5b61004161003c36600461012d565b610056565b005b61004161005136600461012d565b6100f8565b6000816001600160a01b03163460405160006040518083038185875af1925050503d80600081146100a3576040519150601f19603f3d011682016040523d82523d6000602084013e6100a8565b606091505b50509050806100f45760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b604482015260640160405180910390fd5b5050565b6040516001600160a01b038216903480156108fc02916000818181858888f193505050501580156100f4573d6000803e3d6000fd5b60006020828403121561013f57600080fd5b81356001600160a01b038116811461015657600080fd5b939250505056fea2646970667358221220e93f06e42463e37c7cf998762bd832310e5f92ad2975cae374242bf2d2398f0264736f6c634300080d0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6BA87A53 EQ PUSH2 0x2E JUMPI DUP1 PUSH4 0xCFC6CDAA EQ PUSH2 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x41 PUSH2 0x3C CALLDATASIZE PUSH1 0x4 PUSH2 0x12D JUMP JUMPDEST PUSH2 0x56 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x41 PUSH2 0x51 CALLDATASIZE PUSH1 0x4 PUSH2 0x12D JUMP JUMPDEST PUSH2 0xF8 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLVALUE PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xA3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xA8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xF4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x2330B4B632B2103A379039B2B7321022BA3432B9 PUSH1 0x61 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 CALLVALUE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xF4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE9 EXTCODEHASH MOD 0xE4 0x24 PUSH4 0xE37C7CF9 SWAP9 PUSH23 0x2BD832310E5F92AD2975CAE374242BF2D2398F0264736F PUSH13 0x634300080D0033000000000000 ",
"sourceMap": "794:344:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;968:168;;;;;;:::i;:::-;;:::i;:::-;;858:104;;;;;;:::i;:::-;;:::i;968:168::-;1037:9;1052:3;-1:-1:-1;;;;;1052:8:0;1068:9;1052:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1036:46;;;1100:4;1092:37;;;;-1:-1:-1;;;1092:37:0;;725:2:1;1092:37:0;;;707:21:1;764:2;744:18;;;737:30;-1:-1:-1;;;783:18:1;;;776:50;843:18;;1092:37:0;;;;;;;;1026:110;968:168;:::o;858:104::-;932:23;;-1:-1:-1;;;;;932:12:0;;;945:9;932:23;;;;;;;;;945:9;932:12;:23;;;;;;;;;;;;;;;;;;;14:294:1;81:6;134:2;122:9;113:7;109:23;105:32;102:52;;;150:1;147;140:12;102:52;176:23;;-1:-1:-1;;;;;228:31:1;;218:42;;208:70;;274:1;271;264:12;208:70;297:5;14:294;-1:-1:-1;;;14:294:1:o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "80600",
"executionCost": "105",
"totalCost": "80705"
},
"external": {
"callFallback(address)": "infinite",
"transferToFallback(address)": "infinite"
}
},
"methodIdentifiers": {
"callFallback(address)": "6ba87a53",
"transferToFallback(address)": "cfc6cdaa"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "payable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
}
],
"name": "callFallback",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
}
],
"name": "transferToFallback",
"outputs": [],
"stateMutability": "payable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.13+commit.abaa5c0e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "payable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
}
],
"name": "callFallback",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
}
],
"name": "transferToFallback",
"outputs": [],
"stateMutability": "payable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/Fallback.sol": "SendToFallback"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/Fallback.sol": {
"keccak256": "0x760b7fdb2677f3a68235c78afdd23a6391a201a9c4535b3be1f9d80147e5720e",
"license": "MIT",
"urls": [
"bzz-raw://6885c6674e450d05a09635d67229707cec222fbd04a241b9270f31a377fda4ca",
"dweb:/ipfs/QmVFNYyULxeurnWo2BZo7m184cFoJT7264PoZa1GG4PTmJ"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506107d7806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063335d00c2146100515780639b3e27871461005b578063ee26fac314610086578063f7746e361461008e575b600080fd5b6100596100a1565b005b61006e610069366004610673565b610482565b60405161007d939291906106ab565b60405180910390f35b61006e61055b565b61006e61009c366004610718565b61056a565b6040805160a080820183526006606080840191825265546f796f746160d01b6080808601919091529184526107e160208086019190915233858701819052865194850187526004858401818152634175646960e01b958701959095529385526107e2858301528487018190528651808401885292835260008383018181528489018281528951808b01909a5295895263119bdc9960e21b898501529784526107df909752909252600380546001810182559581905284518051959694959294879492026000805160206107828339815191520192610182928492019061059d565b50602082810151600180840191909155604090930151600290920180546001600160a01b039093166001600160a01b031990931692909217909155600380549283018155600081905284518051869490920260008051602061078283398151915201926101f49284929091019061059d565b50602082810151600180840191909155604090930151600290920180546001600160a01b039093166001600160a01b031990931692909217909155600380549283018155600081905283518051859490920260008051602061078283398151915201926102669284929091019061059d565b50602082810151600180840191909155604093840151600290930180546001600160a01b039094166001600160a01b031990941693909317909255825160a08101845260056060820190815264486f6e646160d81b608083015281526107e0818301523393810193909352600380549283018155600081905283518051939091026000805160206107828339815191520192610305928492019061059d565b506020820151816001015560408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050506000600360008154811061035557610355610731565b906000526020600020906003020160405180606001604052908160008201805461037e90610747565b80601f01602080910402602001604051908101604052809291908181526020018280546103aa90610747565b80156103f75780601f106103cc576101008083540402835291602001916103f7565b820191906000526020600020905b8154815290600101906020018083116103da57829003601f168201915b50505091835250506001828101546020808401919091526002909301546001600160a01b03166040928301526107e6928401929092526000908301526003805492935091811061044957610449610731565b600091825260208220600390910201906104638282610621565b506000600182015560020180546001600160a01b031916905550505050565b6004602052816000526040600020818154811061049e57600080fd5b9060005260206000209060030201600091509150508060000180546104c290610747565b80601f01602080910402602001604051908101604052809291908181526020018280546104ee90610747565b801561053b5780601f106105105761010080835404028352916020019161053b565b820191906000526020600020905b81548152906001019060200180831161051e57829003601f168201915b5050505060018301546002909301549192916001600160a01b0316905083565b6000805481906104c290610747565b6003818154811061057a57600080fd5b90600052602060002090600302016000915090508060000180546104c290610747565b8280546105a990610747565b90600052602060002090601f0160209004810192826105cb5760008555610611565b82601f106105e457805160ff1916838001178555610611565b82800160010185558215610611579182015b828111156106115782518255916020019190600101906105f6565b5061061d92915061065e565b5090565b50805461062d90610747565b6000825580601f1061063d575050565b601f01602090049060005260206000209081019061065b919061065e565b50565b5b8082111561061d576000815560010161065f565b6000806040838503121561068657600080fd5b82356001600160a01b038116811461069d57600080fd5b946020939093013593505050565b606081526000845180606084015260005b818110156106d957602081880181015160808684010152016106bc565b818111156106eb576000608083860101525b506020830194909452506001600160a01b039190911660408201526080601f909201601f19160101919050565b60006020828403121561072a57600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061075b57607f821691505b60208210810361077b57634e487b7160e01b600052602260045260246000fd5b5091905056fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85ba26469706673582212201ddb430c2afca9261d27f2f8adf20c42c9053143157d5e2639ee05b53a5404d764736f6c634300080d0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7D7 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 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x335D00C2 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x9B3E2787 EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0xEE26FAC3 EQ PUSH2 0x86 JUMPI DUP1 PUSH4 0xF7746E36 EQ PUSH2 0x8E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xA1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6E PUSH2 0x69 CALLDATASIZE PUSH1 0x4 PUSH2 0x673 JUMP JUMPDEST PUSH2 0x482 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x6AB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6E PUSH2 0x55B JUMP JUMPDEST PUSH2 0x6E PUSH2 0x9C CALLDATASIZE PUSH1 0x4 PUSH2 0x718 JUMP JUMPDEST PUSH2 0x56A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP1 DUP3 ADD DUP4 MSTORE PUSH1 0x6 PUSH1 0x60 DUP1 DUP5 ADD SWAP2 DUP3 MSTORE PUSH6 0x546F796F7461 PUSH1 0xD0 SHL PUSH1 0x80 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 DUP5 MSTORE PUSH2 0x7E1 PUSH1 0x20 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE CALLER DUP6 DUP8 ADD DUP2 SWAP1 MSTORE DUP7 MLOAD SWAP5 DUP6 ADD DUP8 MSTORE PUSH1 0x4 DUP6 DUP5 ADD DUP2 DUP2 MSTORE PUSH4 0x41756469 PUSH1 0xE0 SHL SWAP6 DUP8 ADD SWAP6 SWAP1 SWAP6 MSTORE SWAP4 DUP6 MSTORE PUSH2 0x7E2 DUP6 DUP4 ADD MSTORE DUP5 DUP8 ADD DUP2 SWAP1 MSTORE DUP7 MLOAD DUP1 DUP5 ADD DUP9 MSTORE SWAP3 DUP4 MSTORE PUSH1 0x0 DUP4 DUP4 ADD DUP2 DUP2 MSTORE DUP5 DUP10 ADD DUP3 DUP2 MSTORE DUP10 MLOAD DUP1 DUP12 ADD SWAP1 SWAP11 MSTORE SWAP6 DUP10 MSTORE PUSH4 0x119BDC99 PUSH1 0xE2 SHL DUP10 DUP6 ADD MSTORE SWAP8 DUP5 MSTORE PUSH2 0x7DF SWAP1 SWAP8 MSTORE SWAP1 SWAP3 MSTORE PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP6 DUP2 SWAP1 MSTORE DUP5 MLOAD DUP1 MLOAD SWAP6 SWAP7 SWAP5 SWAP6 SWAP3 SWAP5 DUP8 SWAP5 SWAP3 MUL PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x782 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE ADD SWAP3 PUSH2 0x182 SWAP3 DUP5 SWAP3 ADD SWAP1 PUSH2 0x59D JUMP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x1 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x40 SWAP1 SWAP4 ADD MLOAD PUSH1 0x2 SWAP1 SWAP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP3 DUP4 ADD DUP2 SSTORE PUSH1 0x0 DUP2 SWAP1 MSTORE DUP5 MLOAD DUP1 MLOAD DUP7 SWAP5 SWAP1 SWAP3 MUL PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x782 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE ADD SWAP3 PUSH2 0x1F4 SWAP3 DUP5 SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x59D JUMP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x1 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x40 SWAP1 SWAP4 ADD MLOAD PUSH1 0x2 SWAP1 SWAP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP3 DUP4 ADD DUP2 SSTORE PUSH1 0x0 DUP2 SWAP1 MSTORE DUP4 MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP1 SWAP3 MUL PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x782 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE ADD SWAP3 PUSH2 0x266 SWAP3 DUP5 SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x59D JUMP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x1 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x40 SWAP4 DUP5 ADD MLOAD PUSH1 0x2 SWAP1 SWAP4 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH1 0xA0 DUP2 ADD DUP5 MSTORE PUSH1 0x5 PUSH1 0x60 DUP3 ADD SWAP1 DUP2 MSTORE PUSH5 0x486F6E6461 PUSH1 0xD8 SHL PUSH1 0x80 DUP4 ADD MSTORE DUP2 MSTORE PUSH2 0x7E0 DUP2 DUP4 ADD MSTORE CALLER SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x3 DUP1 SLOAD SWAP3 DUP4 ADD DUP2 SSTORE PUSH1 0x0 DUP2 SWAP1 MSTORE DUP4 MLOAD DUP1 MLOAD SWAP4 SWAP1 SWAP2 MUL PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x782 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE ADD SWAP3 PUSH2 0x305 SWAP3 DUP5 SWAP3 ADD SWAP1 PUSH2 0x59D JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP POP POP PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x355 JUMPI PUSH2 0x355 PUSH2 0x731 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x37E SWAP1 PUSH2 0x747 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AA SWAP1 PUSH2 0x747 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3F7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3CC JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3F7 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DA JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 DUP2 ADD SLOAD PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 SWAP1 SWAP4 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 SWAP3 DUP4 ADD MSTORE PUSH2 0x7E6 SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x0 SWAP1 DUP4 ADD MSTORE PUSH1 0x3 DUP1 SLOAD SWAP3 SWAP4 POP SWAP2 DUP2 LT PUSH2 0x449 JUMPI PUSH2 0x449 PUSH2 0x731 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD SWAP1 PUSH2 0x463 DUP3 DUP3 PUSH2 0x621 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x49E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP DUP1 PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x4C2 SWAP1 PUSH2 0x747 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4EE SWAP1 PUSH2 0x747 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x53B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x510 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x53B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x51E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x2 SWAP1 SWAP4 ADD SLOAD SWAP2 SWAP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD DUP2 SWAP1 PUSH2 0x4C2 SWAP1 PUSH2 0x747 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x57A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x4C2 SWAP1 PUSH2 0x747 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x5A9 SWAP1 PUSH2 0x747 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x5CB JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x611 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x5E4 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x611 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x611 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x611 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x5F6 JUMP JUMPDEST POP PUSH2 0x61D SWAP3 SWAP2 POP PUSH2 0x65E JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x62D SWAP1 PUSH2 0x747 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x63D JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x65B SWAP2 SWAP1 PUSH2 0x65E JUMP JUMPDEST POP JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x61D JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x65F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x686 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x69D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 DUP5 MLOAD DUP1 PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x6D9 JUMPI PUSH1 0x20 DUP2 DUP9 ADD DUP2 ADD MLOAD PUSH1 0x80 DUP7 DUP5 ADD ADD MSTORE ADD PUSH2 0x6BC JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x6EB JUMPI PUSH1 0x0 PUSH1 0x80 DUP4 DUP7 ADD ADD MSTORE JUMPDEST POP PUSH1 0x20 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x72A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x75B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x77B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID 0xC2 JUMPI GAS 0xE SWAP15 MSIZE EXTCODECOPY STOP 0xF9 MSIZE 0xF8 0xC9 0x2F SLT 0xDB 0x28 PUSH10 0xC3395A3B0502D05E2516 DIFFICULTY PUSH16 0x71F85BA26469706673582212201DDB43 0xC 0x2A 0xFC 0xA9 0x26 SAR 0x27 CALLCODE 0xF8 0xAD CALLCODE 0xC TIMESTAMP 0xC9 SDIV BALANCE NUMBER ISZERO PUSH30 0x5E2639EE05B53A5404D764736F6C634300080D0033000000000000000000 ",
"sourceMap": "151:764:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@car_11": {
"entryPoint": 1371,
"id": 11,
"parameterSlots": 0,
"returnSlots": 0
},
"@cars_15": {
"entryPoint": 1386,
"id": 15,
"parameterSlots": 0,
"returnSlots": 0
},
"@examples_119": {
"entryPoint": 161,
"id": 119,
"parameterSlots": 0,
"returnSlots": 0
},
"@owners_21": {
"entryPoint": 1154,
"id": 21,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_decode_tuple_t_addresst_uint256": {
"entryPoint": 1651,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 1816,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr_t_uint256_t_address__to_t_string_memory_ptr_t_uint256_t_address__fromStack_reversed": {
"entryPoint": 1707,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"extract_byte_array_length": {
"entryPoint": 1863,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x32": {
"entryPoint": 1841,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1830:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "101:267:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "147:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "156:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "159:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "149:6:1"
},
"nodeType": "YulFunctionCall",
"src": "149:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "149:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "122:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "131:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "118:3:1"
},
"nodeType": "YulFunctionCall",
"src": "118:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "143:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "114:3:1"
},
"nodeType": "YulFunctionCall",
"src": "114:32:1"
},
"nodeType": "YulIf",
"src": "111:52:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "172:36:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "198:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "185:12:1"
},
"nodeType": "YulFunctionCall",
"src": "185:23:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "176:5:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "271:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "280:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "283:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "273:6:1"
},
"nodeType": "YulFunctionCall",
"src": "273:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "273:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "230:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "241:5:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "256:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "261:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "252:3:1"
},
"nodeType": "YulFunctionCall",
"src": "252:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "265:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "248:3:1"
},
"nodeType": "YulFunctionCall",
"src": "248:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "237:3:1"
},
"nodeType": "YulFunctionCall",
"src": "237:31:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "227:2:1"
},
"nodeType": "YulFunctionCall",
"src": "227:42:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "220:6:1"
},
"nodeType": "YulFunctionCall",
"src": "220:50:1"
},
"nodeType": "YulIf",
"src": "217:70:1"
},
{
"nodeType": "YulAssignment",
"src": "296:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "306:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "296:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "320:42:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "347:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "358:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "343:3:1"
},
"nodeType": "YulFunctionCall",
"src": "343:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "330:12:1"
},
"nodeType": "YulFunctionCall",
"src": "330:32:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "320:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "59:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "70:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "82:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "90:6:1",
"type": ""
}
],
"src": "14:354:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "550:576:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "567:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "578:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "560:6:1"
},
"nodeType": "YulFunctionCall",
"src": "560:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "560:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "590:27:1",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "610:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "604:5:1"
},
"nodeType": "YulFunctionCall",
"src": "604:13:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "594:6:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "637:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "648:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "633:3:1"
},
"nodeType": "YulFunctionCall",
"src": "633:18:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "653:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "626:6:1"
},
"nodeType": "YulFunctionCall",
"src": "626:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "626:34:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "669:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "678:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "673:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "740:93:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "769:9:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "780:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "765:3:1"
},
"nodeType": "YulFunctionCall",
"src": "765:17:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "784:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "761:3:1"
},
"nodeType": "YulFunctionCall",
"src": "761:27:1"
},
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "804:6:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "812:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "800:3:1"
},
"nodeType": "YulFunctionCall",
"src": "800:14:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "816:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "796:3:1"
},
"nodeType": "YulFunctionCall",
"src": "796:25:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "790:5:1"
},
"nodeType": "YulFunctionCall",
"src": "790:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "754:6:1"
},
"nodeType": "YulFunctionCall",
"src": "754:69:1"
},
"nodeType": "YulExpressionStatement",
"src": "754:69:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "699:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "702:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "696:2:1"
},
"nodeType": "YulFunctionCall",
"src": "696:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "710:21:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "712:17:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "721:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "724:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "717:3:1"
},
"nodeType": "YulFunctionCall",
"src": "717:12:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "712:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "692:3:1",
"statements": []
},
"src": "688:145:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "867:67:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "896:9:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "907:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "892:3:1"
},
"nodeType": "YulFunctionCall",
"src": "892:22:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "916:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "888:3:1"
},
"nodeType": "YulFunctionCall",
"src": "888:32:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "922:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "881:6:1"
},
"nodeType": "YulFunctionCall",
"src": "881:43:1"
},
"nodeType": "YulExpressionStatement",
"src": "881:43:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "848:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "851:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "845:2:1"
},
"nodeType": "YulFunctionCall",
"src": "845:13:1"
},
"nodeType": "YulIf",
"src": "842:92:1"
},
{
"nodeType": "YulAssignment",
"src": "943:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "959:9:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "978:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "986:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "974:3:1"
},
"nodeType": "YulFunctionCall",
"src": "974:15:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "995:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "991:3:1"
},
"nodeType": "YulFunctionCall",
"src": "991:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "970:3:1"
},
"nodeType": "YulFunctionCall",
"src": "970:29:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "955:3:1"
},
"nodeType": "YulFunctionCall",
"src": "955:45:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1002:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "951:3:1"
},
"nodeType": "YulFunctionCall",
"src": "951:55:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "943:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1026:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1037:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1022:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1022:20:1"
},
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1044:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1015:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1015:36:1"
},
"nodeType": "YulExpressionStatement",
"src": "1015:36:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1071:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1082:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1067:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1067:18:1"
},
{
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "1091:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1107:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1112:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "1103:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1103:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1116:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1099:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1099:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1087:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1087:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1060:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1060:60:1"
},
"nodeType": "YulExpressionStatement",
"src": "1060:60:1"
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr_t_uint256_t_address__to_t_string_memory_ptr_t_uint256_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "503:9:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "514:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "522:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "530:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "541:4:1",
"type": ""
}
],
"src": "373:753:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1201:110:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1247:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1256:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1259:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1249:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1249:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1249:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1222:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1231:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1218:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1218:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1243:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1214:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1214:32:1"
},
"nodeType": "YulIf",
"src": "1211:52:1"
},
{
"nodeType": "YulAssignment",
"src": "1272:33:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1295:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1282:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1282:23:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1272:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1167:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1178:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1190:6:1",
"type": ""
}
],
"src": "1131:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1348:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1365:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1372:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1377:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "1368:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1368:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1358:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1358:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "1358:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1405:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1408:4:1",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1398:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1398:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1398:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1429:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1432:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1422:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1422:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1422:15:1"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "1316:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1503:325:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1513:22:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1527:1:1",
"type": "",
"value": "1"
},
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "1530:4:1"
}
],
"functionName": {
"name": "shr",
"nodeType": "YulIdentifier",
"src": "1523:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1523:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1513:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1544:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "1574:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1580:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1570:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1570:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "1548:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1621:31:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1623:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1637:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1645:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1633:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1633:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1623:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "1601:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1594:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1594:26:1"
},
"nodeType": "YulIf",
"src": "1591:61:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1711:111:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1732:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1739:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1744:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "1735:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1735:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1725:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1725:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "1725:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1776:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1779:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1769:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1769:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1769:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1804:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1807:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1797:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1797:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1797:15:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "1667:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1690:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1698:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1687:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1687:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1664:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1664:38:1"
},
"nodeType": "YulIf",
"src": "1661:161:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "1483:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1492:6:1",
"type": ""
}
],
"src": "1448:380:1"
}
]
},
"contents": "{\n { }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_string_memory_ptr_t_uint256_t_address__to_t_string_memory_ptr_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, 96)\n let length := mload(value0)\n mstore(add(headStart, 96), length)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n mstore(add(add(headStart, i), 128), mload(add(add(value0, i), 0x20)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 128), 0)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 128)\n mstore(add(headStart, 0x20), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c8063335d00c2146100515780639b3e27871461005b578063ee26fac314610086578063f7746e361461008e575b600080fd5b6100596100a1565b005b61006e610069366004610673565b610482565b60405161007d939291906106ab565b60405180910390f35b61006e61055b565b61006e61009c366004610718565b61056a565b6040805160a080820183526006606080840191825265546f796f746160d01b6080808601919091529184526107e160208086019190915233858701819052865194850187526004858401818152634175646960e01b958701959095529385526107e2858301528487018190528651808401885292835260008383018181528489018281528951808b01909a5295895263119bdc9960e21b898501529784526107df909752909252600380546001810182559581905284518051959694959294879492026000805160206107828339815191520192610182928492019061059d565b50602082810151600180840191909155604090930151600290920180546001600160a01b039093166001600160a01b031990931692909217909155600380549283018155600081905284518051869490920260008051602061078283398151915201926101f49284929091019061059d565b50602082810151600180840191909155604090930151600290920180546001600160a01b039093166001600160a01b031990931692909217909155600380549283018155600081905283518051859490920260008051602061078283398151915201926102669284929091019061059d565b50602082810151600180840191909155604093840151600290930180546001600160a01b039094166001600160a01b031990941693909317909255825160a08101845260056060820190815264486f6e646160d81b608083015281526107e0818301523393810193909352600380549283018155600081905283518051939091026000805160206107828339815191520192610305928492019061059d565b506020820151816001015560408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050506000600360008154811061035557610355610731565b906000526020600020906003020160405180606001604052908160008201805461037e90610747565b80601f01602080910402602001604051908101604052809291908181526020018280546103aa90610747565b80156103f75780601f106103cc576101008083540402835291602001916103f7565b820191906000526020600020905b8154815290600101906020018083116103da57829003601f168201915b50505091835250506001828101546020808401919091526002909301546001600160a01b03166040928301526107e6928401929092526000908301526003805492935091811061044957610449610731565b600091825260208220600390910201906104638282610621565b506000600182015560020180546001600160a01b031916905550505050565b6004602052816000526040600020818154811061049e57600080fd5b9060005260206000209060030201600091509150508060000180546104c290610747565b80601f01602080910402602001604051908101604052809291908181526020018280546104ee90610747565b801561053b5780601f106105105761010080835404028352916020019161053b565b820191906000526020600020905b81548152906001019060200180831161051e57829003601f168201915b5050505060018301546002909301549192916001600160a01b0316905083565b6000805481906104c290610747565b6003818154811061057a57600080fd5b90600052602060002090600302016000915090508060000180546104c290610747565b8280546105a990610747565b90600052602060002090601f0160209004810192826105cb5760008555610611565b82601f106105e457805160ff1916838001178555610611565b82800160010185558215610611579182015b828111156106115782518255916020019190600101906105f6565b5061061d92915061065e565b5090565b50805461062d90610747565b6000825580601f1061063d575050565b601f01602090049060005260206000209081019061065b919061065e565b50565b5b8082111561061d576000815560010161065f565b6000806040838503121561068657600080fd5b82356001600160a01b038116811461069d57600080fd5b946020939093013593505050565b606081526000845180606084015260005b818110156106d957602081880181015160808684010152016106bc565b818111156106eb576000608083860101525b506020830194909452506001600160a01b039190911660408201526080601f909201601f19160101919050565b60006020828403121561072a57600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061075b57607f821691505b60208210810361077b57634e487b7160e01b600052602260045260246000fd5b5091905056fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85ba26469706673582212201ddb430c2afca9261d27f2f8adf20c42c9053143157d5e2639ee05b53a5404d764736f6c634300080d0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x335D00C2 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x9B3E2787 EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0xEE26FAC3 EQ PUSH2 0x86 JUMPI DUP1 PUSH4 0xF7746E36 EQ PUSH2 0x8E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xA1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6E PUSH2 0x69 CALLDATASIZE PUSH1 0x4 PUSH2 0x673 JUMP JUMPDEST PUSH2 0x482 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x6AB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6E PUSH2 0x55B JUMP JUMPDEST PUSH2 0x6E PUSH2 0x9C CALLDATASIZE PUSH1 0x4 PUSH2 0x718 JUMP JUMPDEST PUSH2 0x56A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP1 DUP3 ADD DUP4 MSTORE PUSH1 0x6 PUSH1 0x60 DUP1 DUP5 ADD SWAP2 DUP3 MSTORE PUSH6 0x546F796F7461 PUSH1 0xD0 SHL PUSH1 0x80 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 DUP5 MSTORE PUSH2 0x7E1 PUSH1 0x20 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE CALLER DUP6 DUP8 ADD DUP2 SWAP1 MSTORE DUP7 MLOAD SWAP5 DUP6 ADD DUP8 MSTORE PUSH1 0x4 DUP6 DUP5 ADD DUP2 DUP2 MSTORE PUSH4 0x41756469 PUSH1 0xE0 SHL SWAP6 DUP8 ADD SWAP6 SWAP1 SWAP6 MSTORE SWAP4 DUP6 MSTORE PUSH2 0x7E2 DUP6 DUP4 ADD MSTORE DUP5 DUP8 ADD DUP2 SWAP1 MSTORE DUP7 MLOAD DUP1 DUP5 ADD DUP9 MSTORE SWAP3 DUP4 MSTORE PUSH1 0x0 DUP4 DUP4 ADD DUP2 DUP2 MSTORE DUP5 DUP10 ADD DUP3 DUP2 MSTORE DUP10 MLOAD DUP1 DUP12 ADD SWAP1 SWAP11 MSTORE SWAP6 DUP10 MSTORE PUSH4 0x119BDC99 PUSH1 0xE2 SHL DUP10 DUP6 ADD MSTORE SWAP8 DUP5 MSTORE PUSH2 0x7DF SWAP1 SWAP8 MSTORE SWAP1 SWAP3 MSTORE PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP6 DUP2 SWAP1 MSTORE DUP5 MLOAD DUP1 MLOAD SWAP6 SWAP7 SWAP5 SWAP6 SWAP3 SWAP5 DUP8 SWAP5 SWAP3 MUL PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x782 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE ADD SWAP3 PUSH2 0x182 SWAP3 DUP5 SWAP3 ADD SWAP1 PUSH2 0x59D JUMP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x1 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x40 SWAP1 SWAP4 ADD MLOAD PUSH1 0x2 SWAP1 SWAP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP3 DUP4 ADD DUP2 SSTORE PUSH1 0x0 DUP2 SWAP1 MSTORE DUP5 MLOAD DUP1 MLOAD DUP7 SWAP5 SWAP1 SWAP3 MUL PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x782 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE ADD SWAP3 PUSH2 0x1F4 SWAP3 DUP5 SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x59D JUMP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x1 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x40 SWAP1 SWAP4 ADD MLOAD PUSH1 0x2 SWAP1 SWAP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP3 DUP4 ADD DUP2 SSTORE PUSH1 0x0 DUP2 SWAP1 MSTORE DUP4 MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP1 SWAP3 MUL PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x782 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE ADD SWAP3 PUSH2 0x266 SWAP3 DUP5 SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x59D JUMP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x1 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x40 SWAP4 DUP5 ADD MLOAD PUSH1 0x2 SWAP1 SWAP4 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH1 0xA0 DUP2 ADD DUP5 MSTORE PUSH1 0x5 PUSH1 0x60 DUP3 ADD SWAP1 DUP2 MSTORE PUSH5 0x486F6E6461 PUSH1 0xD8 SHL PUSH1 0x80 DUP4 ADD MSTORE DUP2 MSTORE PUSH2 0x7E0 DUP2 DUP4 ADD MSTORE CALLER SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x3 DUP1 SLOAD SWAP3 DUP4 ADD DUP2 SSTORE PUSH1 0x0 DUP2 SWAP1 MSTORE DUP4 MLOAD DUP1 MLOAD SWAP4 SWAP1 SWAP2 MUL PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x782 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE ADD SWAP3 PUSH2 0x305 SWAP3 DUP5 SWAP3 ADD SWAP1 PUSH2 0x59D JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP POP POP PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x355 JUMPI PUSH2 0x355 PUSH2 0x731 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x37E SWAP1 PUSH2 0x747 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AA SWAP1 PUSH2 0x747 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3F7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3CC JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3F7 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DA JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 DUP2 ADD SLOAD PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 SWAP1 SWAP4 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 SWAP3 DUP4 ADD MSTORE PUSH2 0x7E6 SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x0 SWAP1 DUP4 ADD MSTORE PUSH1 0x3 DUP1 SLOAD SWAP3 SWAP4 POP SWAP2 DUP2 LT PUSH2 0x449 JUMPI PUSH2 0x449 PUSH2 0x731 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD SWAP1 PUSH2 0x463 DUP3 DUP3 PUSH2 0x621 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x49E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP DUP1 PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x4C2 SWAP1 PUSH2 0x747 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4EE SWAP1 PUSH2 0x747 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x53B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x510 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x53B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x51E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x2 SWAP1 SWAP4 ADD SLOAD SWAP2 SWAP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD DUP2 SWAP1 PUSH2 0x4C2 SWAP1 PUSH2 0x747 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x57A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x4C2 SWAP1 PUSH2 0x747 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x5A9 SWAP1 PUSH2 0x747 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x5CB JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x611 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x5E4 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x611 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x611 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x611 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x5F6 JUMP JUMPDEST POP PUSH2 0x61D SWAP3 SWAP2 POP PUSH2 0x65E JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x62D SWAP1 PUSH2 0x747 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x63D JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x65B SWAP2 SWAP1 PUSH2 0x65E JUMP JUMPDEST POP JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x61D JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x65F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x686 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x69D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 DUP5 MLOAD DUP1 PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x6D9 JUMPI PUSH1 0x20 DUP2 DUP9 ADD DUP2 ADD MLOAD PUSH1 0x80 DUP7 DUP5 ADD ADD MSTORE ADD PUSH2 0x6BC JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x6EB JUMPI PUSH1 0x0 PUSH1 0x80 DUP4 DUP7 ADD ADD MSTORE JUMPDEST POP PUSH1 0x20 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x72A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x75B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x77B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID 0xC2 JUMPI GAS 0xE SWAP15 MSIZE EXTCODECOPY STOP 0xF9 MSIZE 0xF8 0xC9 0x2F SLT 0xDB 0x28 PUSH10 0xC3395A3B0502D05E2516 DIFFICULTY PUSH16 0x71F85BA26469706673582212201DDB43 0xC 0x2A 0xFC 0xA9 0x26 SAR 0x27 CALLCODE 0xF8 0xAD CALLCODE 0xC TIMESTAMP 0xC9 SDIV BALANCE NUMBER ISZERO PUSH30 0x5E2639EE05B53A5404D764736F6C634300080D0033000000000000000000 ",
"sourceMap": "151:764:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;352:560;;;:::i;:::-;;306:39;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;263:14;;;:::i;283:17::-;;;;;;:::i;:::-;;:::i;352:560::-;409:31;;;;;;;;;;;;;;;;;-1:-1:-1;;;409:31:0;;;;;;;;;;;423:4;409:31;;;;;;;;429:10;409:31;;;;;;468:51;;;;;;;;;;;;;;-1:-1:-1;;;468:51:0;;;;;;;;;;494:4;468:51;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;554:19:0;;;;;;;;;;;-1:-1:-1;;;554:19:0;;;;;;;595:4;583:16;;;609:23;;;651:4;:15;;;;;;;;;;;;;;;409:31;;468:51;;-1:-1:-1;;409:31:0;;651:15;;-1:-1:-1;;;;;;;;;;;651:15:0;;;;;;;;;:::i;:::-;-1:-1:-1;651:15:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;651:15:0;;;-1:-1:-1;;;;;;651:15:0;;;;;;;;;;676:4;:15;;;;;;;651;676;;;;;;;686:4;;676:15;;;-1:-1:-1;;;;;;;;;;;676:15:0;;;;;;;;;;;:::i;:::-;-1:-1:-1;676:15:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;676:15:0;;;-1:-1:-1;;;;;;676:15:0;;;;;;;;;;709:4;:15;;;;;;;676;709;;;;;;;719:4;;709:15;;;-1:-1:-1;;;;;;;;;;;709:15:0;;;;;;;;;;;:::i;:::-;-1:-1:-1;709:15:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;709:15:0;;;-1:-1:-1;;;;;;709:15:0;;;;;;;;;;745:30;;;;;;;;;;;;;;-1:-1:-1;;;745:30:0;;;;;;758:4;745:30;;;;764:10;745:30;;;;;;;735:4;:41;;;;;;;709:15;735:41;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;735:41:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;735:41:0;;;;;-1:-1:-1;;;;;735:41:0;;;;;;;;787:15;805:4;810:1;805:7;;;;;;;;:::i;:::-;;;;;;;;;;;787:25;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;787:25:0;;;-1:-1:-1;;787:25:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;787:25:0;;;;;;849:4;837:9;;;:16;;;;-1:-1:-1;871:10:0;;;864:17;898:4;:7;;787:25;;-1:-1:-1;898:4:0;:7;;;;;;:::i;:::-;;;;;;;;;;;;;;891:14;898:7;;891:14;:::i;:::-;-1:-1:-1;891:14:0;;;;;;;;;-1:-1:-1;;;;;;891:14:0;;;-1:-1:-1;;;;352:560:0:o;306:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;306:39:0;;;;;;;;;;;;-1:-1:-1;;;;;306:39:0;;-1:-1:-1;306:39:0;:::o;263:14::-;;;;;;;;;:::i;283:17::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;14:354:1;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;185:23;;-1:-1:-1;;;;;237:31:1;;227:42;;217:70;;283:1;280;273:12;217:70;306:5;358:2;343:18;;;;330:32;;-1:-1:-1;;;14:354:1:o;373:753::-;578:2;567:9;560:21;541:4;610:6;604:13;653:6;648:2;637:9;633:18;626:34;678:1;688:145;702:6;699:1;696:13;688:145;;;816:4;800:14;;;796:25;;790:32;784:3;765:17;;;761:27;754:69;717:12;688:145;;;851:6;848:1;845:13;842:92;;;922:1;916:3;907:6;896:9;892:22;888:32;881:43;842:92;-1:-1:-1;1037:4:1;1022:20;;1015:36;;;;-1:-1:-1;;;;;;1087:32:1;;;;1082:2;1067:18;;1060:60;1002:3;995:2;974:15;;;-1:-1:-1;;970:29:1;955:45;951:55;;;-1:-1:-1;373:753:1:o;1131:180::-;1190:6;1243:2;1231:9;1222:7;1218:23;1214:32;1211:52;;;1259:1;1256;1249:12;1211:52;-1:-1:-1;1282:23:1;;1131:180;-1:-1:-1;1131:180:1:o;1316:127::-;1377:10;1372:3;1368:20;1365:1;1358:31;1408:4;1405:1;1398:15;1432:4;1429:1;1422:15;1448:380;1527:1;1523:12;;;;1570;;;1591:61;;1645:4;1637:6;1633:17;1623:27;;1591:61;1698:2;1690:6;1687:14;1667:18;1664:38;1661:161;;1744:10;1739:3;1735:20;1732:1;1725:31;1779:4;1776:1;1769:15;1807:4;1804:1;1797:15;1661:161;;1448:380;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "401400",
"executionCost": "436",
"totalCost": "401836"
},
"external": {
"car()": "infinite",
"cars(uint256)": "infinite",
"examples()": "infinite",
"owners(address,uint256)": "infinite"
}
},
"methodIdentifiers": {
"car()": "ee26fac3",
"cars(uint256)": "f7746e36",
"examples()": "335d00c2",
"owners(address,uint256)": "9b3e2787"
}
},
"abi": [
{
"inputs": [],
"name": "car",
"outputs": [
{
"internalType": "string",
"name": "model",
"type": "string"
},
{
"internalType": "uint256",
"name": "year",
"type": "uint256"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "cars",
"outputs": [
{
"internalType": "string",
"name": "model",
"type": "string"
},
{
"internalType": "uint256",
"name": "year",
"type": "uint256"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "examples",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "owners",
"outputs": [
{
"internalType": "string",
"name": "model",
"type": "string"
},
{
"internalType": "uint256",
"name": "year",
"type": "uint256"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.13+commit.abaa5c0e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "car",
"outputs": [
{
"internalType": "string",
"name": "model",
"type": "string"
},
{
"internalType": "uint256",
"name": "year",
"type": "uint256"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "cars",
"outputs": [
{
"internalType": "string",
"name": "model",
"type": "string"
},
{
"internalType": "uint256",
"name": "year",
"type": "uint256"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "examples",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "owners",
"outputs": [
{
"internalType": "string",
"name": "model",
"type": "string"
},
{
"internalType": "uint256",
"name": "year",
"type": "uint256"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/Structs.sol": "Structs"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/Structs.sol": {
"keccak256": "0x190f29bef24b5b0eb8665c005caa1778432d0bacd8388cbd5a8d57e2ad35b277",
"license": "MIT",
"urls": [
"bzz-raw://0022fb9c8360151e2ef78188b90a5a8682bba38caae05dcf9e95b3dcf6a78932",
"dweb:/ipfs/Qmdnbwr5L6ZLoPq3ppoeg82xAnzAPpzo12Jc8ukbF8k1mo"
]
}
},
"version": 1
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract Constants {
// coding convention to uppercase constant variables
address public constant MY_ADDRESS = 0x777788889999AaAAbBbbCcccddDdeeeEfFFfCcCc;
uint public constant MY_UINT = 123;
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
// Base contract X
contract X {
string public name;
constructor(string memory _name) {
name = _name;
}
}
// Base contract Y
contract Y {
string public text;
constructor(string memory _text) {
text = _text;
}
}
// There are 2 ways to initialize parent contract with parameters.
// Pass the parameters here in the inheritance list.
contract B is X("Input to X"), Y("Input to Y") {
}
contract C is X, Y {
// Pass the parameters here in the constructor,
// similar to function modifiers.
constructor(string memory _name, string memory _text) X(_name) Y(_text) {}
}
// Parent constructors are always called in the order of inheritance
// regardless of the order of parent contracts listed in the
// constructor of the child contract.
// Order of constructors called:
// 1. X
// 2. Y
// 3. D
contract D is X, Y {
constructor() X("X was called") Y("Y was called") {}
}
// Order of constructors called:
// 1. X
// 2. Y
// 3. E
contract E is X, Y {
constructor() Y("Y was called") X("X was called") {}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract DataLocations {
string myString; // Storage -> variable is a state variable (stored on blockchain)
// Memory -> variable is in memory and it exists while a function is being called
// You can use memory within a function's logic
// It is mutable
function memoryExample(string memory _exampleString) public returns (string memory) {
_exampleString = "example"; // You can modify _exampleString
string memory newString = _exampleString;
return newString; // You can return memory
}
// Calldata -> special data location that contains function arguments
// Calldata can only be used for function declaration parameters (and not function logic)
// It is immutable
// It must be used for dynamic parameters of an external function
function calldataTest(string calldata _exampleString) external returns (string memory) {
// Cannot modify _exampleString
// But can return it
return _exampleString;
}
}
/*
- State variables are always in storage
- Function arguments are always in memory
- Local variables of struct, array or mapping type reference storage by default
- Local variables of value type (i.e. neither array, nor struct nor mapping) are stored in the stack
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract Error {
function testRequire(uint _i) public pure {
// Require should be used to validate conditions such as:
// - inputs
// - conditions before execution
// - return values from calls to other functions
require(_i > 10, "Input must be greater than 10");
}
function testRevert(uint _i) public pure {
// Revert is useful when the condition to check is complex.
// This code does the exact same thing as the example above
if (_i <= 10) {
revert("Input must be greater than 10");
}
}
uint public num;
function testAssert() public view {
// Assert should only be used to test for internal errors,
// and to check invariants.
// Here we assert that num is always equal to 0
// since it is impossible to update the value of num
assert(num == 0);
}
// Custom error (saves gas)
error InsufficientBalance(uint balance, uint withdrawAmount);
function testCustomError(uint _withdrawAmount) public view {
uint bal = address(this).balance;
if (bal < _withdrawAmount) {
revert InsufficientBalance({balance: bal, withdrawAmount: _withdrawAmount});
}
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract Event {
// Can index up to 3 parameters
// Indexed parameters helps you filter the logs by the indexed parameter
event Log(address indexed sender, string message);
event AnotherLog();
function test() public {
emit Log(msg.sender, "Hello World!");
emit Log(msg.sender, "Hello EVM!");
emit AnotherLog();
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
/*
Fallback function is executed either when
1) A function that does not exist is called or
2) Ether is sent directly to a contract but receive() does not exist or msg.data is not empty
fallback does not take any arguments and does not return anything
*/
contract Fallback {
event Log(uint gas);
constructor() payable {}
// Fallback function must be declared as external
fallback() external payable {
// send / transfer (forwards 2300 gas to this fallback function)
// call (forwards all of the gas)
emit Log(gasleft());
}
// Helper function to check the balance of this contract
function getBalance() public view returns (uint) {
return address(this).balance;
}
}
contract SendToFallback {
constructor() payable {}
function transferToFallback(address payable _to) public payable {
_to.transfer(msg.value);
}
function callFallback(address payable _to) public payable {
(bool sent, ) = _to.call{value: msg.value}("");
require(sent, "Failed to send Ether");
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract Counter {
uint public count;
// Function to get the current count
function get() public view returns (uint) {
return count;
}
// Function to increment count by 1
function inc() public {
count += 1;
}
// Function to decrement count by 1
function dec() public {
// This function will fail if count = 0
count -= 1;
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract Function {
// Functions can return multiple values.
function returnMany()
public
pure
returns (
uint,
bool,
uint
)
{
return (1, true, 2);
}
// Return values can be named.
function named()
public
pure
returns (
uint x,
bool b,
uint y
)
{
return (1, true, 2);
}
// Return values can be assigned to their name.
// In this case the return statement can be omitted.
function assigned()
public
pure
returns (
uint x,
bool b,
uint y
)
{
x = 1;
b = true;
y = 2;
}
// Use destructuring assignment when calling another
// function that returns multiple values.
function destructuringAssignments()
public
pure
returns (
uint,
bool,
uint,
uint,
uint
)
{
(uint i, bool b, uint j) = returnMany();
// Values can be left out.
(uint x, , uint y) = (4, 5, 6);
return (i, b, j, x, y);
}
// Cannot use map for either input or output
// Can use array for input
function arrayInput(uint[] memory _arr) public {}
// Can use array for output
uint[] public arr;
function arrayOutput() public view returns (uint[] memory) {
return arr;
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract Immutable {
// coding convention to uppercase constant variables
// 32 bytes are reserved, even if they would fit in fewer bytes
address public immutable MY_ADDRESS;
uint public immutable MY_UINT;
constructor(uint _myUint) {
MY_ADDRESS = msg.sender;
MY_UINT = _myUint;
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract Mapping {
// Mappings are not iterable.
mapping(address => uint) public balances;
mapping(address => mapping(address => bool)) public isFriend;
function examples() external {
balances[msg.sender] = 123; // set
uint bal1 = balances[msg.sender]; // get
uint bal2 = balances[address(1)]; // not set --> will return the default value
balances[msg.sender] += 1; // update
delete balances[msg.sender]; // delete resets the value to the default value
isFriend[msg.sender][address(this)] = true;
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
// Function Modifier - Reuse code before and / or after function
// Basic, Inputs, Sandwich
contract FunctionModifier {
// We will use these variables to demonstrate how to use modifiers.
address public owner;
uint public x = 10;
bool public locked;
constructor() {
// Set the transaction sender as the owner of the contract.
owner = msg.sender;
}
// Modifier to check that the caller is the owner of the contract.
modifier onlyOwner() {
require(msg.sender == owner, "Not owner");
// Underscore is a special character only used inside
// a function modifier and it tells Solidity to
// execute the rest of the code.
_;
}
// Modifiers can take inputs
modifier validAddress(address _addr) {
require(_addr != address(0), "Not valid address");
_;
}
function changeOwner(address _newOwner) public onlyOwner validAddress(_newOwner) {
owner = _newOwner;
}
// Modifiers can be called before and / or after a function.
// This modifier prevents a function from being called while it is still executing.
modifier noReentrancy() {
require(!locked, "No reentrancy");
locked = true;
_;
locked = false;
}
function decrement(uint i) public noReentrancy {
x -= i;
if (i > 1) {
decrement(i - 1);
}
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract Payable {
// Payable address can receive Ether
address payable public owner;
// Payable constructor -> Contract can receive Ether upon creation
constructor() payable {
owner = payable(msg.sender);
}
// Function to deposit Ether into this contract
function deposit() public payable {}
// The function will throw an error since this function is not payable
function notPayable() public {}
// Function to withdraw all Ether from this contract.
function withdraw() public {
uint amount = address(this).balance;
// send all Ether in this contract to owner
(bool success, ) = owner.call{value: amount}("");
require(success, "Failed to send Ether");
}
function getContractBalance() external view returns (uint) {
return address(this).balance;
}
function getOwnerBalance() external view returns (uint) {
return address(owner).balance;
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract Primitives {
bool public boo = true;
/*
uint stands for unsigned integer, meaning non negative integers
different sizes are available
uint8 ranges from 0 to 2 ** 8 - 1
uint16 ranges from 0 to 2 ** 16 - 1
...
uint256 ranges from 0 to 2 ** 256 - 1
*/
uint8 public u8 = 1;
uint public u256 = 456;
uint public u = 123; // uint is an alias for uint256
/*
Negative numbers are allowed for int types.
Like uint, different ranges are available from int8 to int256
int256 ranges from -2 ** 255 to 2 ** 255 - 1
int128 ranges from -2 ** 127 to 2 ** 127 - 1
*/
int8 public i8 = -1;
int public i256 = 456;
int public i = -123; // int is same as int256
address public addr = 0xCA35b7d915458EF540aDe6068dFe2F44E8fa733c;
// Default values
// Unassigned variables have a default value
bool public defaultBoo; // false
uint public defaultUint; // 0
int public defaultInt; // 0
address public defaultAddr; // 0x0000000000000000000000000000000000000000
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract SimpleStorage {
// Define a state variable to store a number
uint public num;
// To write to a state variable, need to send a transaction.
function set(uint _num) public {
num = _num;
}
// Can state variable without sending a transaction.
function get() public view returns (uint) {
return num;
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
/*
3 ways to send Ether:
- transfer (2300 gas, throws error)
- send (2300 gas, returns bool)
- call (forward all gas or set gas, returns bool)
call is the recommended method to use after December 2019
*/
/*
2 ways to receive Ether:
- receive() external payable
- fallback() external payable
receive() is called if msg.data is empty, otherwise fallback() is called.
*/
contract ReceiveEther {
// Function to receive Ether. msg.data must be empty
receive() external payable {}
// Fallback function is called when msg.data is not empty
fallback() external payable {}
function getBalance() public view returns (uint) {
return address(this).balance;
}
}
contract SendEther {
function sendViaTransfer(address payable _to) public payable {
// No longer recommended for sending Ether
_to.transfer(msg.value);
}
function sendViaSend(address payable _to) public payable {
// No longer recommended for sending Ether
bool sent = _to.send(msg.value);
require(sent, "Failed to send Ether");
}
function sendViaCall(address payable _to) public payable {
// Recommended method to use
(bool sent, bytes memory data) = _to.call{value: msg.value}("");
require(sent, "Failed to send Ether");
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
/*
Structs
- Declaring structs
- Initializing structs
- get, set, delete
*/
contract Structs {
struct Car {
string model;
uint year;
address owner;
}
Car public car;
Car[] public cars;
mapping(address => Car[]) public owners;
function examples() external {
Car memory car1 = Car("Toyota", 2017, msg.sender);
Car memory car2 = Car({model: "Audi", year: 2018, owner: msg.sender});
Car memory car3;
car3.model = "Ford";
car3.year = 2015;
car3.owner = msg.sender;
cars.push(car1);
cars.push(car2);
cars.push(car3);
cars.push(Car("Honda", 2016, msg.sender));
Car memory _car = cars[0]; // try storage
_car.year = 2022;
delete _car.owner;
delete cars[1];
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract Variables {
// State variables are stored on the blockchain and declared OUTSIDE a function
string public text = "Hello";
uint public num = 123;
function doSomething() public {
// Local variables are NOT saved to the blockchain and declared INSIDE
uint i = 456;
// Global variables
uint timestamp = block.timestamp; // Current block timestamp
uint blockNumber = block.number; // Current block number
address sender = msg.sender; // address of the caller
uint value = msg.value; // number of wei sent with the message
// For more, go to Solidity docs (https://docs.soliditylang.org/en/v0.8.13/units-and-global-variables.html)
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract ViewAndPure {
uint public x = 1;
// Promise not to modify the state.
function addToX(uint y) public view returns (uint) {
return x + y;
}
// Promise not to modify or read from the state.
function add(uint i, uint j) public pure returns (uint) {
return i + j;
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract Base {
// Private function can only be called
// 1) inside this contract
// Contracts that inherit this contract cannot call this function
function privateFunc() private pure returns (string memory) {
return "this is a private function";
}
function testPrivateFunc() public pure returns (string memory) {
return privateFunc();
}
// Internal function can be called
// 1) inside this contract
// 2) inside contracts that inherit this contract
function internalFunc() internal pure returns (string memory) {
return "this is an internal function";
}
function testInternalFunc() public pure virtual returns (string memory) {
return internalFunc();
}
// Public functions can be called
// 1) inside this contract
// 2) inside contracts that inherit this contract
// 3) by other contracts and accounts
function publicFunc() public pure returns (string memory) {
return "public function called";
}
// External functions can only be called
// 1) by other contracts and accounts
function externalFunc() external pure returns (string memory) {
return "this is an external function";
}
// This function would not compile since we're trying to call
// an external function here.
// function testExternalFunc() public pure returns (string memory) {
// return externalFunc();
// }
// State variables
string private privateVar = "my private variable";
string internal internalVar = "my internal variable";
string public publicVar = "my public variable";
// State variables cannot be external so this code won't compile.
// string external externalVar = "my external variable";
}
}
This file has been truncated, but you can view the full file.
{
"id": "6169cd7e2ba43af0f6203890effadd6c",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.13",
"solcLongVersion": "0.8.13+commit.abaa5c0e",
"input": {
"language": "Solidity",
"sources": {
"contracts/Fallback.sol": {
"content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.13;\n\n/*\nFallback function is executed either when\n1) A function that does not exist is called or\n2) Ether is sent directly to a contract but receive() does not exist or msg.data is not empty\n\nfallback does not take any arguments and does not return anything\n\n*/\n\ncontract Fallback {\n event Log(uint gas);\n\n constructor() payable {}\n\n // Fallback function must be declared as external\n fallback() external payable {\n // send / transfer (forwards 2300 gas to this fallback function)\n // call (forwards all of the gas)\n emit Log(gasleft());\n }\n\n // Helper function to check the balance of this contract\n function getBalance() public view returns (uint) {\n return address(this).balance;\n }\n}\n\ncontract SendToFallback {\n constructor() payable {}\n \n function transferToFallback(address payable _to) public payable {\n _to.transfer(msg.value);\n }\n\n function callFallback(address payable _to) public payable {\n (bool sent, ) = _to.call{value: msg.value}(\"\");\n require(sent, \"Failed to send Ether\");\n }\n}"
}
},
"settings": {
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"contracts/Fallback.sol": {
"Fallback": {
"abi": [
{
"inputs": [],
"stateMutability": "payable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "gas",
"type": "uint256"
}
],
"name": "Log",
"type": "event"
},
{
"stateMutability": "payable",
"type": "fallback"
},
{
"inputs": [],
"name": "getBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"contracts/Fallback.sol\":316:792 contract Fallback {... */\n mstore(0x40, 0x80)\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/Fallback.sol\":316:792 contract Fallback {... */\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x12065fe0\n eq\n tag_3\n jumpi\n tag_1:\n /* \"contracts/Fallback.sol\":608:622 Log(gasleft()) */\n 0x909c57d5c6ac08245cf2a6de3900e2b868513fa59099b92b27d8db823d92df9c\n /* \"contracts/Fallback.sol\":612:621 gasleft() */\n gas\n /* \"contracts/Fallback.sol\":608:622 Log(gasleft()) */\n mload(0x40)\n /* \"#utility.yul\":160:185 */\n swap1\n dup2\n mstore\n /* \"#utility.yul\":148:150 */\n 0x20\n /* \"#utility.yul\":133:151 */\n add\n /* \"contracts/Fallback.sol\":608:622 Log(gasleft()) */\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log1\n /* \"contracts/Fallback.sol\":316:792 contract Fallback {... */\n stop\n /* \"contracts/Fallback.sol\":696:790 function getBalance() public view returns (uint) {... */\n tag_3:\n callvalue\n dup1\n iszero\n tag_8\n jumpi\n 0x00\n dup1\n revert\n tag_8:\n pop\n /* \"contracts/Fallback.sol\":762:783 address(this).balance */\n selfbalance\n /* \"contracts/Fallback.sol\":696:790 function getBalance() public view returns (uint) {... */\n mload(0x40)\n /* \"#utility.yul\":160:185 */\n swap1\n dup2\n mstore\n /* \"#utility.yul\":148:150 */\n 0x20\n /* \"#utility.yul\":133:151 */\n add\n /* \"contracts/Fallback.sol\":696:790 function getBalance() public view returns (uint) {... */\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n\n auxdata: 0xa2646970667358221220f412f0438fe92e750abbf190b6619c12902b30d04269c5ce4f927b630445fbc964736f6c634300080d0033\n}\n",
"bytecode": {
"functionDebugData": {
"@_9": {
"entryPoint": null,
"id": 9,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "608060405260a6806100126000396000f3fe608060405260043610601c5760003560e01c806312065fe0146051575b7f909c57d5c6ac08245cf2a6de3900e2b868513fa59099b92b27d8db823d92df9c5a60405190815260200160405180910390a1005b348015605c57600080fd5b504760405190815260200160405180910390f3fea2646970667358221220f412f0438fe92e750abbf190b6619c12902b30d04269c5ce4f927b630445fbc964736f6c634300080d0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA6 DUP1 PUSH2 0x12 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x1C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x12065FE0 EQ PUSH1 0x51 JUMPI JUMPDEST PUSH32 0x909C57D5C6AC08245CF2A6DE3900E2B868513FA59099B92B27D8DB823D92DF9C GAS PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SELFBALANCE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DELEGATECALL SLT CREATE NUMBER DUP16 0xE9 0x2E PUSH22 0xABBF190B6619C12902B30D04269C5CE4F927B630445 0xFB 0xC9 PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ",
"sourceMap": "316:476:0:-:0;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_18": {
"entryPoint": null,
"id": 18,
"parameterSlots": 0,
"returnSlots": 0
},
"@getBalance_30": {
"entryPoint": null,
"id": 30,
"parameterSlots": 0,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:193:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "115:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "125:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "137:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "148:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "133:3:1"
},
"nodeType": "YulFunctionCall",
"src": "133:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "125:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "167:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "178:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "160:6:1"
},
"nodeType": "YulFunctionCall",
"src": "160:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "160:25:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "84:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "95:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "106:4:1",
"type": ""
}
],
"src": "14:177:1"
}
]
},
"contents": "{\n { }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405260043610601c5760003560e01c806312065fe0146051575b7f909c57d5c6ac08245cf2a6de3900e2b868513fa59099b92b27d8db823d92df9c5a60405190815260200160405180910390a1005b348015605c57600080fd5b504760405190815260200160405180910390f3fea2646970667358221220f412f0438fe92e750abbf190b6619c12902b30d04269c5ce4f927b630445fbc964736f6c634300080d0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x1C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x12065FE0 EQ PUSH1 0x51 JUMPI JUMPDEST PUSH32 0x909C57D5C6AC08245CF2A6DE3900E2B868513FA59099B92B27D8DB823D92DF9C GAS PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SELFBALANCE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DELEGATECALL SLT CREATE NUMBER DUP16 0xE9 0x2E PUSH22 0xABBF190B6619C12902B30D04269C5CE4F927B630445 0xFB 0xC9 PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ",
"sourceMap": "316:476:0:-:0;;;;;;;;;;;;;;;;;;608:14;612:9;608:14;;160:25:1;;;148:2;133:18;608:14:0;;;;;;;316:476;696:94;;;;;;;;;;-1:-1:-1;762:21:0;696:94;;160:25:1;;;148:2;133:18;696:94:0;;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "33200",
"executionCost": "63",
"totalCost": "33263"
},
"external": {
"": "1130",
"getBalance()": "148"
}
},
"legacyAssembly": {
".code": [
{
"begin": 316,
"end": 792,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 316,
"end": 792,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 316,
"end": 792,
"name": "MSTORE",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 316,
"end": 792,
"name": "DUP1",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 316,
"end": 792,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 316,
"end": 792,
"name": "CODECOPY",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 316,
"end": 792,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a2646970667358221220f412f0438fe92e750abbf190b6619c12902b30d04269c5ce4f927b630445fbc964736f6c634300080d0033",
".code": [
{
"begin": 316,
"end": 792,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 316,
"end": 792,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 316,
"end": 792,
"name": "MSTORE",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 316,
"end": 792,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "LT",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 316,
"end": 792,
"name": "JUMPI",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 316,
"end": 792,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 316,
"end": 792,
"name": "SHR",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "DUP1",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "PUSH",
"source": 0,
"value": "12065FE0"
},
{
"begin": 316,
"end": 792,
"name": "EQ",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 316,
"end": 792,
"name": "JUMPI",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 316,
"end": 792,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 608,
"end": 622,
"name": "PUSH",
"source": 0,
"value": "909C57D5C6AC08245CF2A6DE3900E2B868513FA59099B92B27D8DB823D92DF9C"
},
{
"begin": 612,
"end": 621,
"name": "GAS",
"source": 0
},
{
"begin": 608,
"end": 622,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 608,
"end": 622,
"name": "MLOAD",
"source": 0
},
{
"begin": 160,
"end": 185,
"name": "SWAP1",
"source": 1
},
{
"begin": 160,
"end": 185,
"name": "DUP2",
"source": 1
},
{
"begin": 160,
"end": 185,
"name": "MSTORE",
"source": 1
},
{
"begin": 148,
"end": 150,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 133,
"end": 151,
"name": "ADD",
"source": 1
},
{
"begin": 608,
"end": 622,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 608,
"end": 622,
"name": "MLOAD",
"source": 0
},
{
"begin": 608,
"end": 622,
"name": "DUP1",
"source": 0
},
{
"begin": 608,
"end": 622,
"name": "SWAP2",
"source": 0
},
{
"begin": 608,
"end": 622,
"name": "SUB",
"source": 0
},
{
"begin": 608,
"end": 622,
"name": "SWAP1",
"source": 0
},
{
"begin": 608,
"end": 622,
"name": "LOG1",
"source": 0
},
{
"begin": 316,
"end": 792,
"name": "STOP",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 696,
"end": 790,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "DUP1",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "ISZERO",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "PUSH [tag]",
"source": 0,
"value": "8"
},
{
"begin": 696,
"end": 790,
"name": "JUMPI",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 696,
"end": 790,
"name": "DUP1",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "REVERT",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "tag",
"source": 0,
"value": "8"
},
{
"begin": 696,
"end": 790,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 762,
"end": 783,
"name": "SELFBALANCE",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 696,
"end": 790,
"name": "MLOAD",
"source": 0
},
{
"begin": 160,
"end": 185,
"name": "SWAP1",
"source": 1
},
{
"begin": 160,
"end": 185,
"name": "DUP2",
"source": 1
},
{
"begin": 160,
"end": 185,
"name": "MSTORE",
"source": 1
},
{
"begin": 148,
"end": 150,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 133,
"end": 151,
"name": "ADD",
"source": 1
},
{
"begin": 696,
"end": 790,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 696,
"end": 790,
"name": "MLOAD",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "DUP1",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "SWAP2",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "SUB",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "SWAP1",
"source": 0
},
{
"begin": 696,
"end": 790,
"name": "RETURN",
"source": 0
}
]
}
}
},
"methodIdentifiers": {
"getBalance()": "12065fe0"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"Log\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Fallback.sol\":\"Fallback\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Fallback.sol\":{\"keccak256\":\"0x760b7fdb2677f3a68235c78afdd23a6391a201a9c4535b3be1f9d80147e5720e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6885c6674e450d05a09635d67229707cec222fbd04a241b9270f31a377fda4ca\",\"dweb:/ipfs/QmVFNYyULxeurnWo2BZo7m184cFoJT7264PoZa1GG4PTmJ\"]}},\"version\":1}",
"storageLayout": {
"storage": [],
"types": null
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"SendToFallback": {
"abi": [
View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment