Skip to content

Instantly share code, notes, and snippets.

@hbarcelos
Created August 27, 2025 23:22
Show Gist options
  • Save hbarcelos/c99df6e7472cbe81876c6d95414cd048 to your computer and use it in GitHub Desktop.
Save hbarcelos/c99df6e7472cbe81876c6d95414cd048 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.30+commit.73712a01.js&optimize=false&runs=200&gist=
// 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);
}
}
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
ref: refs/heads/main
{
"overrides": [
{
"files": "*.sol",
"options": {
"printWidth": 80,
"tabWidth": 4,
"useTabs": false,
"singleQuote": false,
"bracketSpacing": false
}
},
{
"files": "*.yml",
"options": {}
},
{
"files": "*.yaml",
"options": {}
},
{
"files": "*.toml",
"options": {}
},
{
"files": "*.json",
"options": {}
},
{
"files": "*.js",
"options": {}
},
{
"files": "*.ts",
"options": {}
}
]
}
{
"id": "813156339b6117a1f02675faa70af108",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.30",
"solcLongVersion": "0.8.30+commit.73712a01",
"input": {
"language": "Solidity",
"sources": {
"contracts/TypeExample.sol": {
"content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.30;\n\ncontract TypeExample {\n function changeRef(bytes memory input, bytes memory newVal) internal pure {\n input = newVal;\n }\n\n function execute() public pure returns (bytes memory) {\n bytes memory input = \"Hello World\";\n bytes memory newVal = \"Goodbye World\";\n changeRef(input, newVal);\n return input;\n }\n}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
},
"remappings": []
}
},
"output": {
"contracts": {
"contracts/TypeExample.sol": {
"TypeExample": {
"abi": [
{
"inputs": [],
"name": "execute",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"contracts/TypeExample.sol\":65:385 contract TypeExample {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n revert(0x00, 0x00)\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/TypeExample.sol\":65:385 contract TypeExample {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n revert(0x00, 0x00)\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x61461954\n eq\n tag_3\n jumpi\n tag_2:\n revert(0x00, 0x00)\n /* \"contracts/TypeExample.sol\":193:383 function execute() public pure returns (bytes memory) {... */\n tag_3:\n tag_4\n tag_5\n jump\t// in\n tag_4:\n mload(0x40)\n tag_6\n swap2\n swap1\n tag_7\n jump\t// in\n tag_6:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n tag_5:\n /* \"contracts/TypeExample.sol\":233:245 bytes memory */\n 0x60\n /* \"contracts/TypeExample.sol\":253:271 bytes memory input */\n 0x00\n /* \"contracts/TypeExample.sol\":253:287 bytes memory input = \"Hello World\" */\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n 0x0b\n dup2\n mstore\n 0x20\n add\n 0x48656c6c6f20576f726c64000000000000000000000000000000000000000000\n dup2\n mstore\n pop\n swap1\n pop\n /* \"contracts/TypeExample.sol\":293:312 bytes memory newVal */\n 0x00\n /* \"contracts/TypeExample.sol\":293:330 bytes memory newVal = \"Goodbye World\" */\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n 0x0d\n dup2\n mstore\n 0x20\n add\n 0x476f6f6462796520576f726c6400000000000000000000000000000000000000\n dup2\n mstore\n pop\n swap1\n pop\n /* \"contracts/TypeExample.sol\":336:360 changeRef(input, newVal) */\n tag_9\n /* \"contracts/TypeExample.sol\":346:351 input */\n dup3\n /* \"contracts/TypeExample.sol\":353:359 newVal */\n dup3\n /* \"contracts/TypeExample.sol\":336:345 changeRef */\n tag_10\n /* \"contracts/TypeExample.sol\":336:360 changeRef(input, newVal) */\n jump\t// in\n tag_9:\n /* \"contracts/TypeExample.sol\":373:378 input */\n dup2\n /* \"contracts/TypeExample.sol\":366:378 return input */\n swap3\n pop\n pop\n pop\n /* \"contracts/TypeExample.sol\":193:383 function execute() public pure returns (bytes memory) {... */\n swap1\n jump\t// out\n /* \"contracts/TypeExample.sol\":90:189 function changeRef(bytes memory input, bytes memory newVal) internal pure {... */\n tag_10:\n /* \"contracts/TypeExample.sol\":178:184 newVal */\n dup1\n /* \"contracts/TypeExample.sol\":170:184 input = newVal */\n swap2\n pop\n /* \"contracts/TypeExample.sol\":90:189 function changeRef(bytes memory input, bytes memory newVal) internal pure {... */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7:105 */\n tag_12:\n /* \"#utility.yul\":58:64 */\n 0x00\n /* \"#utility.yul\":92:97 */\n dup2\n /* \"#utility.yul\":86:98 */\n mload\n /* \"#utility.yul\":76:98 */\n swap1\n pop\n /* \"#utility.yul\":7:105 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":111:279 */\n tag_13:\n /* \"#utility.yul\":194:205 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup3\n /* \"#utility.yul\":223:226 */\n dup3\n /* \"#utility.yul\":216:235 */\n mstore\n /* \"#utility.yul\":268:272 */\n 0x20\n /* \"#utility.yul\":263:266 */\n dup3\n /* \"#utility.yul\":259:273 */\n add\n /* \"#utility.yul\":244:273 */\n swap1\n pop\n /* \"#utility.yul\":111:279 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":285:424 */\n tag_14:\n /* \"#utility.yul\":374:380 */\n dup3\n /* \"#utility.yul\":369:372 */\n dup2\n /* \"#utility.yul\":364:367 */\n dup4\n /* \"#utility.yul\":358:381 */\n mcopy\n /* \"#utility.yul\":415:416 */\n 0x00\n /* \"#utility.yul\":406:412 */\n dup4\n /* \"#utility.yul\":401:404 */\n dup4\n /* \"#utility.yul\":397:413 */\n add\n /* \"#utility.yul\":390:417 */\n mstore\n /* \"#utility.yul\":285:424 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":430:532 */\n tag_15:\n /* \"#utility.yul\":471:477 */\n 0x00\n /* \"#utility.yul\":522:524 */\n 0x1f\n /* \"#utility.yul\":518:525 */\n not\n /* \"#utility.yul\":513:515 */\n 0x1f\n /* \"#utility.yul\":506:511 */\n dup4\n /* \"#utility.yul\":502:516 */\n add\n /* \"#utility.yul\":498:526 */\n and\n /* \"#utility.yul\":488:526 */\n swap1\n pop\n /* \"#utility.yul\":430:532 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":538:911 */\n tag_16:\n /* \"#utility.yul\":624:627 */\n 0x00\n /* \"#utility.yul\":652:690 */\n tag_23\n /* \"#utility.yul\":684:689 */\n dup3\n /* \"#utility.yul\":652:690 */\n tag_12\n jump\t// in\n tag_23:\n /* \"#utility.yul\":706:776 */\n tag_24\n /* \"#utility.yul\":769:775 */\n dup2\n /* \"#utility.yul\":764:767 */\n dup6\n /* \"#utility.yul\":706:776 */\n tag_13\n jump\t// in\n tag_24:\n /* \"#utility.yul\":699:776 */\n swap4\n pop\n /* \"#utility.yul\":785:850 */\n tag_25\n /* \"#utility.yul\":843:849 */\n dup2\n /* \"#utility.yul\":838:841 */\n dup6\n /* \"#utility.yul\":831:835 */\n 0x20\n /* \"#utility.yul\":824:829 */\n dup7\n /* \"#utility.yul\":820:836 */\n add\n /* \"#utility.yul\":785:850 */\n tag_14\n jump\t// in\n tag_25:\n /* \"#utility.yul\":875:904 */\n tag_26\n /* \"#utility.yul\":897:903 */\n dup2\n /* \"#utility.yul\":875:904 */\n tag_15\n jump\t// in\n tag_26:\n /* \"#utility.yul\":870:873 */\n dup5\n /* \"#utility.yul\":866:905 */\n add\n /* \"#utility.yul\":859:905 */\n swap2\n pop\n /* \"#utility.yul\":628:911 */\n pop\n /* \"#utility.yul\":538:911 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":917:1226 */\n tag_7:\n /* \"#utility.yul\":1028:1032 */\n 0x00\n /* \"#utility.yul\":1066:1068 */\n 0x20\n /* \"#utility.yul\":1055:1064 */\n dup3\n /* \"#utility.yul\":1051:1069 */\n add\n /* \"#utility.yul\":1043:1069 */\n swap1\n pop\n /* \"#utility.yul\":1115:1124 */\n dup2\n /* \"#utility.yul\":1109:1113 */\n dup2\n /* \"#utility.yul\":1105:1125 */\n sub\n /* \"#utility.yul\":1101:1102 */\n 0x00\n /* \"#utility.yul\":1090:1099 */\n dup4\n /* \"#utility.yul\":1086:1103 */\n add\n /* \"#utility.yul\":1079:1126 */\n mstore\n /* \"#utility.yul\":1143:1219 */\n tag_28\n /* \"#utility.yul\":1214:1218 */\n dup2\n /* \"#utility.yul\":1205:1211 */\n dup5\n /* \"#utility.yul\":1143:1219 */\n tag_16\n jump\t// in\n tag_28:\n /* \"#utility.yul\":1135:1219 */\n swap1\n pop\n /* \"#utility.yul\":917:1226 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n\n auxdata: 0xa26469706673582212205fd79df62eab29abc222eec80963f324c31bac86b96cb01b5f6e20469444eb2964736f6c634300081e0033\n}\n",
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "6080604052348015600e575f5ffd5b5061019e8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063614619541461002d575b5f5ffd5b61003561004b565b6040516100429190610148565b60405180910390f35b60605f6040518060400160405280600b81526020017f48656c6c6f20576f726c6400000000000000000000000000000000000000000081525090505f6040518060400160405280600d81526020017f476f6f6462796520576f726c640000000000000000000000000000000000000081525090506100c982826100d1565b819250505090565b8091505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61011a826100d8565b61012481856100e2565b93506101348185602086016100f2565b61013d81610100565b840191505092915050565b5f6020820190508181035f8301526101608184610110565b90509291505056fea26469706673582212205fd79df62eab29abc222eec80963f324c31bac86b96cb01b5f6e20469444eb2964736f6c634300081e0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E DUP1 PUSH2 0x1C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x61461954 EQ PUSH2 0x2D JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x35 PUSH2 0x4B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42 SWAP2 SWAP1 PUSH2 0x148 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xB DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x48656C6C6F20576F726C64000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x476F6F6462796520576F726C6400000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH2 0xC9 DUP3 DUP3 PUSH2 0xD1 JUMP JUMPDEST DUP2 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST DUP1 SWAP2 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x11A DUP3 PUSH2 0xD8 JUMP JUMPDEST PUSH2 0x124 DUP2 DUP6 PUSH2 0xE2 JUMP JUMPDEST SWAP4 POP PUSH2 0x134 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xF2 JUMP JUMPDEST PUSH2 0x13D DUP2 PUSH2 0x100 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x160 DUP2 DUP5 PUSH2 0x110 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH0 0xD7 SWAP14 0xF6 0x2E 0xAB 0x29 0xAB 0xC2 0x22 RETURNCONTRACT 0xC8 MULMOD PUSH4 0xF324C31B 0xAC DUP7 0xB9 PUSH13 0xB01B5F6E20469444EB2964736F PUSH13 0x634300081E0033000000000000 ",
"sourceMap": "65:320:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@changeRef_13": {
"entryPoint": 209,
"id": 13,
"parameterSlots": 2,
"returnSlots": 0
},
"@execute_34": {
"entryPoint": 75,
"id": 34,
"parameterSlots": 0,
"returnSlots": 1
},
"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": {
"entryPoint": 272,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed": {
"entryPoint": 328,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_length_t_bytes_memory_ptr": {
"entryPoint": 216,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": {
"entryPoint": 226,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"copy_memory_to_memory_with_cleanup": {
"entryPoint": 242,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 256,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nativeSrc": "0:1229:1",
"nodeType": "YulBlock",
"src": "0:1229:1",
"statements": [
{
"body": {
"nativeSrc": "65:40:1",
"nodeType": "YulBlock",
"src": "65:40:1",
"statements": [
{
"nativeSrc": "76:22:1",
"nodeType": "YulAssignment",
"src": "76:22:1",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "92:5:1",
"nodeType": "YulIdentifier",
"src": "92:5:1"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "86:5:1",
"nodeType": "YulIdentifier",
"src": "86:5:1"
},
"nativeSrc": "86:12:1",
"nodeType": "YulFunctionCall",
"src": "86:12:1"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "76:6:1",
"nodeType": "YulIdentifier",
"src": "76:6:1"
}
]
}
]
},
"name": "array_length_t_bytes_memory_ptr",
"nativeSrc": "7:98:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "48:5:1",
"nodeType": "YulTypedName",
"src": "48:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "58:6:1",
"nodeType": "YulTypedName",
"src": "58:6:1",
"type": ""
}
],
"src": "7:98:1"
},
{
"body": {
"nativeSrc": "206:73:1",
"nodeType": "YulBlock",
"src": "206:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "223:3:1",
"nodeType": "YulIdentifier",
"src": "223:3:1"
},
{
"name": "length",
"nativeSrc": "228:6:1",
"nodeType": "YulIdentifier",
"src": "228:6:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "216:6:1",
"nodeType": "YulIdentifier",
"src": "216:6:1"
},
"nativeSrc": "216:19:1",
"nodeType": "YulFunctionCall",
"src": "216:19:1"
},
"nativeSrc": "216:19:1",
"nodeType": "YulExpressionStatement",
"src": "216:19:1"
},
{
"nativeSrc": "244:29:1",
"nodeType": "YulAssignment",
"src": "244:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "263:3:1",
"nodeType": "YulIdentifier",
"src": "263:3:1"
},
{
"kind": "number",
"nativeSrc": "268:4:1",
"nodeType": "YulLiteral",
"src": "268:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "259:3:1",
"nodeType": "YulIdentifier",
"src": "259:3:1"
},
"nativeSrc": "259:14:1",
"nodeType": "YulFunctionCall",
"src": "259:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nativeSrc": "244:11:1",
"nodeType": "YulIdentifier",
"src": "244:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
"nativeSrc": "111:168:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "178:3:1",
"nodeType": "YulTypedName",
"src": "178:3:1",
"type": ""
},
{
"name": "length",
"nativeSrc": "183:6:1",
"nodeType": "YulTypedName",
"src": "183:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nativeSrc": "194:11:1",
"nodeType": "YulTypedName",
"src": "194:11:1",
"type": ""
}
],
"src": "111:168:1"
},
{
"body": {
"nativeSrc": "347:77:1",
"nodeType": "YulBlock",
"src": "347:77:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nativeSrc": "364:3:1",
"nodeType": "YulIdentifier",
"src": "364:3:1"
},
{
"name": "src",
"nativeSrc": "369:3:1",
"nodeType": "YulIdentifier",
"src": "369:3:1"
},
{
"name": "length",
"nativeSrc": "374:6:1",
"nodeType": "YulIdentifier",
"src": "374:6:1"
}
],
"functionName": {
"name": "mcopy",
"nativeSrc": "358:5:1",
"nodeType": "YulIdentifier",
"src": "358:5:1"
},
"nativeSrc": "358:23:1",
"nodeType": "YulFunctionCall",
"src": "358:23:1"
},
"nativeSrc": "358:23:1",
"nodeType": "YulExpressionStatement",
"src": "358:23:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nativeSrc": "401:3:1",
"nodeType": "YulIdentifier",
"src": "401:3:1"
},
{
"name": "length",
"nativeSrc": "406:6:1",
"nodeType": "YulIdentifier",
"src": "406:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "397:3:1",
"nodeType": "YulIdentifier",
"src": "397:3:1"
},
"nativeSrc": "397:16:1",
"nodeType": "YulFunctionCall",
"src": "397:16:1"
},
{
"kind": "number",
"nativeSrc": "415:1:1",
"nodeType": "YulLiteral",
"src": "415:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "390:6:1",
"nodeType": "YulIdentifier",
"src": "390:6:1"
},
"nativeSrc": "390:27:1",
"nodeType": "YulFunctionCall",
"src": "390:27:1"
},
"nativeSrc": "390:27:1",
"nodeType": "YulExpressionStatement",
"src": "390:27:1"
}
]
},
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "285:139:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nativeSrc": "329:3:1",
"nodeType": "YulTypedName",
"src": "329:3:1",
"type": ""
},
{
"name": "dst",
"nativeSrc": "334:3:1",
"nodeType": "YulTypedName",
"src": "334:3:1",
"type": ""
},
{
"name": "length",
"nativeSrc": "339:6:1",
"nodeType": "YulTypedName",
"src": "339:6:1",
"type": ""
}
],
"src": "285:139:1"
},
{
"body": {
"nativeSrc": "478:54:1",
"nodeType": "YulBlock",
"src": "478:54:1",
"statements": [
{
"nativeSrc": "488:38:1",
"nodeType": "YulAssignment",
"src": "488:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "506:5:1",
"nodeType": "YulIdentifier",
"src": "506:5:1"
},
{
"kind": "number",
"nativeSrc": "513:2:1",
"nodeType": "YulLiteral",
"src": "513:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nativeSrc": "502:3:1",
"nodeType": "YulIdentifier",
"src": "502:3:1"
},
"nativeSrc": "502:14:1",
"nodeType": "YulFunctionCall",
"src": "502:14:1"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "522:2:1",
"nodeType": "YulLiteral",
"src": "522:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nativeSrc": "518:3:1",
"nodeType": "YulIdentifier",
"src": "518:3:1"
},
"nativeSrc": "518:7:1",
"nodeType": "YulFunctionCall",
"src": "518:7:1"
}
],
"functionName": {
"name": "and",
"nativeSrc": "498:3:1",
"nodeType": "YulIdentifier",
"src": "498:3:1"
},
"nativeSrc": "498:28:1",
"nodeType": "YulFunctionCall",
"src": "498:28:1"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "488:6:1",
"nodeType": "YulIdentifier",
"src": "488:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nativeSrc": "430:102:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "461:5:1",
"nodeType": "YulTypedName",
"src": "461:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "471:6:1",
"nodeType": "YulTypedName",
"src": "471:6:1",
"type": ""
}
],
"src": "430:102:1"
},
{
"body": {
"nativeSrc": "628:283:1",
"nodeType": "YulBlock",
"src": "628:283:1",
"statements": [
{
"nativeSrc": "638:52:1",
"nodeType": "YulVariableDeclaration",
"src": "638:52:1",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "684:5:1",
"nodeType": "YulIdentifier",
"src": "684:5:1"
}
],
"functionName": {
"name": "array_length_t_bytes_memory_ptr",
"nativeSrc": "652:31:1",
"nodeType": "YulIdentifier",
"src": "652:31:1"
},
"nativeSrc": "652:38:1",
"nodeType": "YulFunctionCall",
"src": "652:38:1"
},
"variables": [
{
"name": "length",
"nativeSrc": "642:6:1",
"nodeType": "YulTypedName",
"src": "642:6:1",
"type": ""
}
]
},
{
"nativeSrc": "699:77:1",
"nodeType": "YulAssignment",
"src": "699:77:1",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "764:3:1",
"nodeType": "YulIdentifier",
"src": "764:3:1"
},
{
"name": "length",
"nativeSrc": "769:6:1",
"nodeType": "YulIdentifier",
"src": "769:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
"nativeSrc": "706:57:1",
"nodeType": "YulIdentifier",
"src": "706:57:1"
},
"nativeSrc": "706:70:1",
"nodeType": "YulFunctionCall",
"src": "706:70:1"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "699:3:1",
"nodeType": "YulIdentifier",
"src": "699:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "824:5:1",
"nodeType": "YulIdentifier",
"src": "824:5:1"
},
{
"kind": "number",
"nativeSrc": "831:4:1",
"nodeType": "YulLiteral",
"src": "831:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "820:3:1",
"nodeType": "YulIdentifier",
"src": "820:3:1"
},
"nativeSrc": "820:16:1",
"nodeType": "YulFunctionCall",
"src": "820:16:1"
},
{
"name": "pos",
"nativeSrc": "838:3:1",
"nodeType": "YulIdentifier",
"src": "838:3:1"
},
{
"name": "length",
"nativeSrc": "843:6:1",
"nodeType": "YulIdentifier",
"src": "843:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "785:34:1",
"nodeType": "YulIdentifier",
"src": "785:34:1"
},
"nativeSrc": "785:65:1",
"nodeType": "YulFunctionCall",
"src": "785:65:1"
},
"nativeSrc": "785:65:1",
"nodeType": "YulExpressionStatement",
"src": "785:65:1"
},
{
"nativeSrc": "859:46:1",
"nodeType": "YulAssignment",
"src": "859:46:1",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "870:3:1",
"nodeType": "YulIdentifier",
"src": "870:3:1"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "897:6:1",
"nodeType": "YulIdentifier",
"src": "897:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nativeSrc": "875:21:1",
"nodeType": "YulIdentifier",
"src": "875:21:1"
},
"nativeSrc": "875:29:1",
"nodeType": "YulFunctionCall",
"src": "875:29:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "866:3:1",
"nodeType": "YulIdentifier",
"src": "866:3:1"
},
"nativeSrc": "866:39:1",
"nodeType": "YulFunctionCall",
"src": "866:39:1"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "859:3:1",
"nodeType": "YulIdentifier",
"src": "859:3:1"
}
]
}
]
},
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
"nativeSrc": "538:373:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "609:5:1",
"nodeType": "YulTypedName",
"src": "609:5:1",
"type": ""
},
{
"name": "pos",
"nativeSrc": "616:3:1",
"nodeType": "YulTypedName",
"src": "616:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "624:3:1",
"nodeType": "YulTypedName",
"src": "624:3:1",
"type": ""
}
],
"src": "538:373:1"
},
{
"body": {
"nativeSrc": "1033:193:1",
"nodeType": "YulBlock",
"src": "1033:193:1",
"statements": [
{
"nativeSrc": "1043:26:1",
"nodeType": "YulAssignment",
"src": "1043:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "1055:9:1",
"nodeType": "YulIdentifier",
"src": "1055:9:1"
},
{
"kind": "number",
"nativeSrc": "1066:2:1",
"nodeType": "YulLiteral",
"src": "1066:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1051:3:1",
"nodeType": "YulIdentifier",
"src": "1051:3:1"
},
"nativeSrc": "1051:18:1",
"nodeType": "YulFunctionCall",
"src": "1051:18:1"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "1043:4:1",
"nodeType": "YulIdentifier",
"src": "1043:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "1090:9:1",
"nodeType": "YulIdentifier",
"src": "1090:9:1"
},
{
"kind": "number",
"nativeSrc": "1101:1:1",
"nodeType": "YulLiteral",
"src": "1101:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1086:3:1",
"nodeType": "YulIdentifier",
"src": "1086:3:1"
},
"nativeSrc": "1086:17:1",
"nodeType": "YulFunctionCall",
"src": "1086:17:1"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "1109:4:1",
"nodeType": "YulIdentifier",
"src": "1109:4:1"
},
{
"name": "headStart",
"nativeSrc": "1115:9:1",
"nodeType": "YulIdentifier",
"src": "1115:9:1"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "1105:3:1",
"nodeType": "YulIdentifier",
"src": "1105:3:1"
},
"nativeSrc": "1105:20:1",
"nodeType": "YulFunctionCall",
"src": "1105:20:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "1079:6:1",
"nodeType": "YulIdentifier",
"src": "1079:6:1"
},
"nativeSrc": "1079:47:1",
"nodeType": "YulFunctionCall",
"src": "1079:47:1"
},
"nativeSrc": "1079:47:1",
"nodeType": "YulExpressionStatement",
"src": "1079:47:1"
},
{
"nativeSrc": "1135:84:1",
"nodeType": "YulAssignment",
"src": "1135:84:1",
"value": {
"arguments": [
{
"name": "value0",
"nativeSrc": "1205:6:1",
"nodeType": "YulIdentifier",
"src": "1205:6:1"
},
{
"name": "tail",
"nativeSrc": "1214:4:1",
"nodeType": "YulIdentifier",
"src": "1214:4:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
"nativeSrc": "1143:61:1",
"nodeType": "YulIdentifier",
"src": "1143:61:1"
},
"nativeSrc": "1143:76:1",
"nodeType": "YulFunctionCall",
"src": "1143:76:1"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "1135:4:1",
"nodeType": "YulIdentifier",
"src": "1135:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed",
"nativeSrc": "917:309:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "1005:9:1",
"nodeType": "YulTypedName",
"src": "1005:9:1",
"type": ""
},
{
"name": "value0",
"nativeSrc": "1017:6:1",
"nodeType": "YulTypedName",
"src": "1017:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "1028:4:1",
"nodeType": "YulTypedName",
"src": "1028:4:1",
"type": ""
}
],
"src": "917:309:1"
}
]
},
"contents": "{\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063614619541461002d575b5f5ffd5b61003561004b565b6040516100429190610148565b60405180910390f35b60605f6040518060400160405280600b81526020017f48656c6c6f20576f726c6400000000000000000000000000000000000000000081525090505f6040518060400160405280600d81526020017f476f6f6462796520576f726c640000000000000000000000000000000000000081525090506100c982826100d1565b819250505090565b8091505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61011a826100d8565b61012481856100e2565b93506101348185602086016100f2565b61013d81610100565b840191505092915050565b5f6020820190508181035f8301526101608184610110565b90509291505056fea26469706673582212205fd79df62eab29abc222eec80963f324c31bac86b96cb01b5f6e20469444eb2964736f6c634300081e0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x61461954 EQ PUSH2 0x2D JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x35 PUSH2 0x4B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42 SWAP2 SWAP1 PUSH2 0x148 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xB DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x48656C6C6F20576F726C64000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x476F6F6462796520576F726C6400000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH2 0xC9 DUP3 DUP3 PUSH2 0xD1 JUMP JUMPDEST DUP2 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST DUP1 SWAP2 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x11A DUP3 PUSH2 0xD8 JUMP JUMPDEST PUSH2 0x124 DUP2 DUP6 PUSH2 0xE2 JUMP JUMPDEST SWAP4 POP PUSH2 0x134 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xF2 JUMP JUMPDEST PUSH2 0x13D DUP2 PUSH2 0x100 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x160 DUP2 DUP5 PUSH2 0x110 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH0 0xD7 SWAP14 0xF6 0x2E 0xAB 0x29 0xAB 0xC2 0x22 RETURNCONTRACT 0xC8 MULMOD PUSH4 0xF324C31B 0xAC DUP7 0xB9 PUSH13 0xB01B5F6E20469444EB2964736F PUSH13 0x634300081E0033000000000000 ",
"sourceMap": "65:320:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;193:190;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;233:12;253:18;:34;;;;;;;;;;;;;;;;;;;293:19;:37;;;;;;;;;;;;;;;;;;;336:24;346:5;353:6;336:9;:24::i;:::-;373:5;366:12;;;;193:190;:::o;90:99::-;178:6;170:14;;90:99;;:::o;7:98:1:-;58:6;92:5;86:12;76:22;;7:98;;;:::o;111:168::-;194:11;228:6;223:3;216:19;268:4;263:3;259:14;244:29;;111:168;;;;:::o;285:139::-;374:6;369:3;364;358:23;415:1;406:6;401:3;397:16;390:27;285:139;;;:::o;430:102::-;471:6;522:2;518:7;513:2;506:5;502:14;498:28;488:38;;430:102;;;:::o;538:373::-;624:3;652:38;684:5;652:38;:::i;:::-;706:70;769:6;764:3;706:70;:::i;:::-;699:77;;785:65;843:6;838:3;831:4;824:5;820:16;785:65;:::i;:::-;875:29;897:6;875:29;:::i;:::-;870:3;866:39;859:46;;628:283;538:373;;;;:::o;917:309::-;1028:4;1066:2;1055:9;1051:18;1043:26;;1115:9;1109:4;1105:20;1101:1;1090:9;1086:17;1079:47;1143:76;1214:4;1205:6;1143:76;:::i;:::-;1135:84;;917:309;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "82800",
"executionCost": "127",
"totalCost": "82927"
},
"external": {
"execute()": "infinite"
},
"internal": {
"changeRef(bytes memory,bytes memory)": "21"
}
},
"legacyAssembly": {
".code": [
{
"begin": 65,
"end": 385,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 65,
"end": 385,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 65,
"end": 385,
"name": "MSTORE",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "DUP1",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "ISZERO",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 65,
"end": 385,
"name": "JUMPI",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 65,
"end": 385,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 65,
"end": 385,
"name": "REVERT",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 65,
"end": 385,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "POP",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 65,
"end": 385,
"name": "DUP1",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 65,
"end": 385,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 65,
"end": 385,
"name": "CODECOPY",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 65,
"end": 385,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a26469706673582212205fd79df62eab29abc222eec80963f324c31bac86b96cb01b5f6e20469444eb2964736f6c634300081e0033",
".code": [
{
"begin": 65,
"end": 385,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 65,
"end": 385,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 65,
"end": 385,
"name": "MSTORE",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "DUP1",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "ISZERO",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 65,
"end": 385,
"name": "JUMPI",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 65,
"end": 385,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 65,
"end": 385,
"name": "REVERT",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 65,
"end": 385,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "POP",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 65,
"end": 385,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "LT",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 65,
"end": 385,
"name": "JUMPI",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 65,
"end": 385,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 65,
"end": 385,
"name": "SHR",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "DUP1",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "PUSH",
"source": 0,
"value": "61461954"
},
{
"begin": 65,
"end": 385,
"name": "EQ",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 65,
"end": 385,
"name": "JUMPI",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 65,
"end": 385,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 65,
"end": 385,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 65,
"end": 385,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 65,
"end": 385,
"name": "REVERT",
"source": 0
},
{
"begin": 193,
"end": 383,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 193,
"end": 383,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 193,
"end": 383,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 193,
"end": 383,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 193,
"end": 383,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 193,
"end": 383,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 193,
"end": 383,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 193,
"end": 383,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 193,
"end": 383,
"name": "MLOAD",
"source": 0
},
{
"begin": 193,
"end": 383,
"name": "PUSH [tag]",
"source": 0,
"value": "6"
},
{
"begin": 193,
"end": 383,
"name": "SWAP2",
"source": 0
},
{
"begin": 193,
"end": 383,
"name": "SWAP1",
"source": 0
},
{
"begin": 193,
"end": 383,
"name": "PUSH [tag]",
"source": 0,
"value": "7"
},
{
"begin": 193,
"end": 383,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 193,
"end": 383,
"name": "tag",
"source": 0,
"value": "6"
},
{
"begin": 193,
"end": 383,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 193,
"end": 383,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 193,
"end": 383,
"name": "MLOAD",
"source": 0
},
{
"begin": 193,
"end": 383,
"name": "DUP1",
"source": 0
},
{
"begin": 193,
"end": 383,
"name": "SWAP2",
"source": 0
},
{
"begin": 193,
"end": 383,
"name": "SUB",
"source": 0
},
{
"begin": 193,
"end": 383,
"name": "SWAP1",
"source": 0
},
{
"begin": 193,
"end": 383,
"name": "RETURN",
"source": 0
},
{
"begin": 193,
"end": 383,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 193,
"end": 383,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 233,
"end": 245,
"name": "PUSH",
"source": 0,
"value": "60"
},
{
"begin": 253,
"end": 271,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 253,
"end": 287,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 253,
"end": 287,
"name": "MLOAD",
"source": 0
},
{
"begin": 253,
"end": 287,
"name": "DUP1",
"source": 0
},
{
"begin": 253,
"end": 287,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 253,
"end": 287,
"name": "ADD",
"source": 0
},
{
"begin": 253,
"end": 287,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 253,
"end": 287,
"name": "MSTORE",
"source": 0
},
{
"begin": 253,
"end": 287,
"name": "DUP1",
"source": 0
},
{
"begin": 253,
"end": 287,
"name": "PUSH",
"source": 0,
"value": "B"
},
{
"begin": 253,
"end": 287,
"name": "DUP2",
"source": 0
},
{
"begin": 253,
"end": 287,
"name": "MSTORE",
"source": 0
},
{
"begin": 253,
"end": 287,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 253,
"end": 287,
"name": "ADD",
"source": 0
},
{
"begin": 253,
"end": 287,
"name": "PUSH",
"source": 0,
"value": "48656C6C6F20576F726C64000000000000000000000000000000000000000000"
},
{
"begin": 253,
"end": 287,
"name": "DUP2",
"source": 0
},
{
"begin": 253,
"end": 287,
"name": "MSTORE",
"source": 0
},
{
"begin": 253,
"end": 287,
"name": "POP",
"source": 0
},
{
"begin": 253,
"end": 287,
"name": "SWAP1",
"source": 0
},
{
"begin": 253,
"end": 287,
"name": "POP",
"source": 0
},
{
"begin": 293,
"end": 312,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 293,
"end": 330,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 293,
"end": 330,
"name": "MLOAD",
"source": 0
},
{
"begin": 293,
"end": 330,
"name": "DUP1",
"source": 0
},
{
"begin": 293,
"end": 330,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 293,
"end": 330,
"name": "ADD",
"source": 0
},
{
"begin": 293,
"end": 330,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 293,
"end": 330,
"name": "MSTORE",
"source": 0
},
{
"begin": 293,
"end": 330,
"name": "DUP1",
"source": 0
},
{
"begin": 293,
"end": 330,
"name": "PUSH",
"source": 0,
"value": "D"
},
{
"begin": 293,
"end": 330,
"name": "DUP2",
"source": 0
},
{
"begin": 293,
"end": 330,
"name": "MSTORE",
"source": 0
},
{
"begin": 293,
"end": 330,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 293,
"end": 330,
"name": "ADD",
"source": 0
},
{
"begin": 293,
"end": 330,
"name": "PUSH",
"source": 0,
"value": "476F6F6462796520576F726C6400000000000000000000000000000000000000"
},
{
"begin": 293,
"end": 330,
"name": "DUP2",
"source": 0
},
{
"begin": 293,
"end": 330,
"name": "MSTORE",
"source": 0
},
{
"begin": 293,
"end": 330,
"name": "POP",
"source": 0
},
{
"begin": 293,
"end": 330,
"name": "SWAP1",
"source": 0
},
{
"begin": 293,
"end": 330,
"name": "POP",
"source": 0
},
{
"begin": 336,
"end": 360,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 346,
"end": 351,
"name": "DUP3",
"source": 0
},
{
"begin": 353,
"end": 359,
"name": "DUP3",
"source": 0
},
{
"begin": 336,
"end": 345,
"name": "PUSH [tag]",
"source": 0,
"value": "10"
},
{
"begin": 336,
"end": 360,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 336,
"end": 360,
"name": "tag",
"source": 0,
"value": "9"
},
{
"begin": 336,
"end": 360,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 373,
"end": 378,
"name": "DUP2",
"source": 0
},
{
"begin": 366,
"end": 378,
"name": "SWAP3",
"source": 0
},
{
"begin": 366,
"end": 378,
"name": "POP",
"source": 0
},
{
"begin": 366,
"end": 378,
"name": "POP",
"source": 0
},
{
"begin": 366,
"end": 378,
"name": "POP",
"source": 0
},
{
"begin": 193,
"end": 383,
"name": "SWAP1",
"source": 0
},
{
"begin": 193,
"end": 383,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 90,
"end": 189,
"name": "tag",
"source": 0,
"value": "10"
},
{
"begin": 90,
"end": 189,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 178,
"end": 184,
"name": "DUP1",
"source": 0
},
{
"begin": 170,
"end": 184,
"name": "SWAP2",
"source": 0
},
{
"begin": 170,
"end": 184,
"name": "POP",
"source": 0
},
{
"begin": 90,
"end": 189,
"name": "POP",
"source": 0
},
{
"begin": 90,
"end": 189,
"name": "POP",
"source": 0
},
{
"begin": 90,
"end": 189,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 7,
"end": 105,
"name": "tag",
"source": 1,
"value": "12"
},
{
"begin": 7,
"end": 105,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 58,
"end": 64,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 92,
"end": 97,
"name": "DUP2",
"source": 1
},
{
"begin": 86,
"end": 98,
"name": "MLOAD",
"source": 1
},
{
"begin": 76,
"end": 98,
"name": "SWAP1",
"source": 1
},
{
"begin": 76,
"end": 98,
"name": "POP",
"source": 1
},
{
"begin": 7,
"end": 105,
"name": "SWAP2",
"source": 1
},
{
"begin": 7,
"end": 105,
"name": "SWAP1",
"source": 1
},
{
"begin": 7,
"end": 105,
"name": "POP",
"source": 1
},
{
"begin": 7,
"end": 105,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 111,
"end": 279,
"name": "tag",
"source": 1,
"value": "13"
},
{
"begin": 111,
"end": 279,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 194,
"end": 205,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 228,
"end": 234,
"name": "DUP3",
"source": 1
},
{
"begin": 223,
"end": 226,
"name": "DUP3",
"source": 1
},
{
"begin": 216,
"end": 235,
"name": "MSTORE",
"source": 1
},
{
"begin": 268,
"end": 272,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 263,
"end": 266,
"name": "DUP3",
"source": 1
},
{
"begin": 259,
"end": 273,
"name": "ADD",
"source": 1
},
{
"begin": 244,
"end": 273,
"name": "SWAP1",
"source": 1
},
{
"begin": 244,
"end": 273,
"name": "POP",
"source": 1
},
{
"begin": 111,
"end": 279,
"name": "SWAP3",
"source": 1
},
{
"begin": 111,
"end": 279,
"name": "SWAP2",
"source": 1
},
{
"begin": 111,
"end": 279,
"name": "POP",
"source": 1
},
{
"begin": 111,
"end": 279,
"name": "POP",
"source": 1
},
{
"begin": 111,
"end": 279,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 285,
"end": 424,
"name": "tag",
"source": 1,
"value": "14"
},
{
"begin": 285,
"end": 424,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 374,
"end": 380,
"name": "DUP3",
"source": 1
},
{
"begin": 369,
"end": 372,
"name": "DUP2",
"source": 1
},
{
"begin": 364,
"end": 367,
"name": "DUP4",
"source": 1
},
{
"begin": 358,
"end": 381,
"name": "MCOPY",
"source": 1
},
{
"begin": 415,
"end": 416,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 406,
"end": 412,
"name": "DUP4",
"source": 1
},
{
"begin": 401,
"end": 404,
"name": "DUP4",
"source": 1
},
{
"begin": 397,
"end": 413,
"name": "ADD",
"source": 1
},
{
"begin": 390,
"end": 417,
"name": "MSTORE",
"source": 1
},
{
"begin": 285,
"end": 424,
"name": "POP",
"source": 1
},
{
"begin": 285,
"end": 424,
"name": "POP",
"source": 1
},
{
"begin": 285,
"end": 424,
"name": "POP",
"source": 1
},
{
"begin": 285,
"end": 424,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 430,
"end": 532,
"name": "tag",
"source": 1,
"value": "15"
},
{
"begin": 430,
"end": 532,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 471,
"end": 477,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 522,
"end": 524,
"name": "PUSH",
"source": 1,
"value": "1F"
},
{
"begin": 518,
"end": 525,
"name": "NOT",
"source": 1
},
{
"begin": 513,
"end": 515,
"name": "PUSH",
"source": 1,
"value": "1F"
},
{
"begin": 506,
"end": 511,
"name": "DUP4",
"source": 1
},
{
"begin": 502,
"end": 516,
"name": "ADD",
"source": 1
},
{
"begin": 498,
"end": 526,
"name": "AND",
"source": 1
},
{
"begin": 488,
"end": 526,
"name": "SWAP1",
"source": 1
},
{
"begin": 488,
"end": 526,
"name": "POP",
"source": 1
},
{
"begin": 430,
"end": 532,
"name": "SWAP2",
"source": 1
},
{
"begin": 430,
"end": 532,
"name": "SWAP1",
"source": 1
},
{
"begin": 430,
"end": 532,
"name": "POP",
"source": 1
},
{
"begin": 430,
"end": 532,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 538,
"end": 911,
"name": "tag",
"source": 1,
"value": "16"
},
{
"begin": 538,
"end": 911,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 624,
"end": 627,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 652,
"end": 690,
"name": "PUSH [tag]",
"source": 1,
"value": "23"
},
{
"begin": 684,
"end": 689,
"name": "DUP3",
"source": 1
},
{
"begin": 652,
"end": 690,
"name": "PUSH [tag]",
"source": 1,
"value": "12"
},
{
"begin": 652,
"end": 690,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 652,
"end": 690,
"name": "tag",
"source": 1,
"value": "23"
},
{
"begin": 652,
"end": 690,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 706,
"end": 776,
"name": "PUSH [tag]",
"source": 1,
"value": "24"
},
{
"begin": 769,
"end": 775,
"name": "DUP2",
"source": 1
},
{
"begin": 764,
"end": 767,
"name": "DUP6",
"source": 1
},
{
"begin": 706,
"end": 776,
"name": "PUSH [tag]",
"source": 1,
"value": "13"
},
{
"begin": 706,
"end": 776,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 706,
"end": 776,
"name": "tag",
"source": 1,
"value": "24"
},
{
"begin": 706,
"end": 776,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 699,
"end": 776,
"name": "SWAP4",
"source": 1
},
{
"begin": 699,
"end": 776,
"name": "POP",
"source": 1
},
{
"begin": 785,
"end": 850,
"name": "PUSH [tag]",
"source": 1,
"value": "25"
},
{
"begin": 843,
"end": 849,
"name": "DUP2",
"source": 1
},
{
"begin": 838,
"end": 841,
"name": "DUP6",
"source": 1
},
{
"begin": 831,
"end": 835,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 824,
"end": 829,
"name": "DUP7",
"source": 1
},
{
"begin": 820,
"end": 836,
"name": "ADD",
"source": 1
},
{
"begin": 785,
"end": 850,
"name": "PUSH [tag]",
"source": 1,
"value": "14"
},
{
"begin": 785,
"end": 850,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 785,
"end": 850,
"name": "tag",
"source": 1,
"value": "25"
},
{
"begin": 785,
"end": 850,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 875,
"end": 904,
"name": "PUSH [tag]",
"source": 1,
"value": "26"
},
{
"begin": 897,
"end": 903,
"name": "DUP2",
"source": 1
},
{
"begin": 875,
"end": 904,
"name": "PUSH [tag]",
"source": 1,
"value": "15"
},
{
"begin": 875,
"end": 904,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 875,
"end": 904,
"name": "tag",
"source": 1,
"value": "26"
},
{
"begin": 875,
"end": 904,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 870,
"end": 873,
"name": "DUP5",
"source": 1
},
{
"begin": 866,
"end": 905,
"name": "ADD",
"source": 1
},
{
"begin": 859,
"end": 905,
"name": "SWAP2",
"source": 1
},
{
"begin": 859,
"end": 905,
"name": "POP",
"source": 1
},
{
"begin": 628,
"end": 911,
"name": "POP",
"source": 1
},
{
"begin": 538,
"end": 911,
"name": "SWAP3",
"source": 1
},
{
"begin": 538,
"end": 911,
"name": "SWAP2",
"source": 1
},
{
"begin": 538,
"end": 911,
"name": "POP",
"source": 1
},
{
"begin": 538,
"end": 911,
"name": "POP",
"source": 1
},
{
"begin": 538,
"end": 911,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 917,
"end": 1226,
"name": "tag",
"source": 1,
"value": "7"
},
{
"begin": 917,
"end": 1226,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1028,
"end": 1032,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 1066,
"end": 1068,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 1055,
"end": 1064,
"name": "DUP3",
"source": 1
},
{
"begin": 1051,
"end": 1069,
"name": "ADD",
"source": 1
},
{
"begin": 1043,
"end": 1069,
"name": "SWAP1",
"source": 1
},
{
"begin": 1043,
"end": 1069,
"name": "POP",
"source": 1
},
{
"begin": 1115,
"end": 1124,
"name": "DUP2",
"source": 1
},
{
"begin": 1109,
"end": 1113,
"name": "DUP2",
"source": 1
},
{
"begin": 1105,
"end": 1125,
"name": "SUB",
"source": 1
},
{
"begin": 1101,
"end": 1102,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 1090,
"end": 1099,
"name": "DUP4",
"source": 1
},
{
"begin": 1086,
"end": 1103,
"name": "ADD",
"source": 1
},
{
"begin": 1079,
"end": 1126,
"name": "MSTORE",
"source": 1
},
{
"begin": 1143,
"end": 1219,
"name": "PUSH [tag]",
"source": 1,
"value": "28"
},
{
"begin": 1214,
"end": 1218,
"name": "DUP2",
"source": 1
},
{
"begin": 1205,
"end": 1211,
"name": "DUP5",
"source": 1
},
{
"begin": 1143,
"end": 1219,
"name": "PUSH [tag]",
"source": 1,
"value": "16"
},
{
"begin": 1143,
"end": 1219,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 1143,
"end": 1219,
"name": "tag",
"source": 1,
"value": "28"
},
{
"begin": 1143,
"end": 1219,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1135,
"end": 1219,
"name": "SWAP1",
"source": 1
},
{
"begin": 1135,
"end": 1219,
"name": "POP",
"source": 1
},
{
"begin": 917,
"end": 1226,
"name": "SWAP3",
"source": 1
},
{
"begin": 917,
"end": 1226,
"name": "SWAP2",
"source": 1
},
{
"begin": 917,
"end": 1226,
"name": "POP",
"source": 1
},
{
"begin": 917,
"end": 1226,
"name": "POP",
"source": 1
},
{
"begin": 917,
"end": 1226,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
}
]
}
},
"sourceList": [
"contracts/TypeExample.sol",
"#utility.yul"
]
},
"methodIdentifiers": {
"execute()": "61461954"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/TypeExample.sol\":\"TypeExample\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/TypeExample.sol\":{\"keccak256\":\"0x29250a623d9a20406cf507729eb73f3d235491fe37c4f1c411a7eb9b9d1743c6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://157306892042305858d015b38aeccc6f69a52be97304f4ff97767221475b9125\",\"dweb:/ipfs/QmdFqkUaumBgSE8BU6pvbdW4gWqNjzbiLYUHVrGXYCFdGD\"]}},\"version\":1}",
"storageLayout": {
"storage": [],
"types": null
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
}
},
"sources": {
"contracts/TypeExample.sol": {
"ast": {
"absolutePath": "contracts/TypeExample.sol",
"exportedSymbols": {
"TypeExample": [
35
]
},
"id": 36,
"license": "UNLICENSED",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.8",
".30"
],
"nodeType": "PragmaDirective",
"src": "39:24:0"
},
{
"abstract": false,
"baseContracts": [],
"canonicalName": "TypeExample",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 35,
"linearizedBaseContracts": [
35
],
"name": "TypeExample",
"nameLocation": "74:11:0",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 12,
"nodeType": "Block",
"src": "164:25:0",
"statements": [
{
"expression": {
"id": 10,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 8,
"name": "input",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "170:5:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 9,
"name": "newVal",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "178:6:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"src": "170:14:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 11,
"nodeType": "ExpressionStatement",
"src": "170:14:0"
}
]
},
"id": 13,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "changeRef",
"nameLocation": "99:9:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 6,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3,
"mutability": "mutable",
"name": "input",
"nameLocation": "122:5:0",
"nodeType": "VariableDeclaration",
"scope": 13,
"src": "109:18:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "109:5:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 5,
"mutability": "mutable",
"name": "newVal",
"nameLocation": "142:6:0",
"nodeType": "VariableDeclaration",
"scope": 13,
"src": "129:19:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 4,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "129:5:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "108:41:0"
},
"returnParameters": {
"id": 7,
"nodeType": "ParameterList",
"parameters": [],
"src": "164:0:0"
},
"scope": 35,
"src": "90:99:0",
"stateMutability": "pure",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 33,
"nodeType": "Block",
"src": "247:136:0",
"statements": [
{
"assignments": [
19
],
"declarations": [
{
"constant": false,
"id": 19,
"mutability": "mutable",
"name": "input",
"nameLocation": "266:5:0",
"nodeType": "VariableDeclaration",
"scope": 33,
"src": "253:18:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 18,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "253:5:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 21,
"initialValue": {
"hexValue": "48656c6c6f20576f726c64",
"id": 20,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "274:13:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_592fa743889fc7f92ac2a37bb1f5ba1daf2a5c84741ca0e0061d243a2e6707ba",
"typeString": "literal_string \"Hello World\""
},
"value": "Hello World"
},
"nodeType": "VariableDeclarationStatement",
"src": "253:34:0"
},
{
"assignments": [
23
],
"declarations": [
{
"constant": false,
"id": 23,
"mutability": "mutable",
"name": "newVal",
"nameLocation": "306:6:0",
"nodeType": "VariableDeclaration",
"scope": 33,
"src": "293:19:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 22,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "293:5:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 25,
"initialValue": {
"hexValue": "476f6f6462796520576f726c64",
"id": 24,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "315:15:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_23d64b18ce1fdfc5d08014bb2750e151da837dcf516ec1bd884a540430c5f5b2",
"typeString": "literal_string \"Goodbye World\""
},
"value": "Goodbye World"
},
"nodeType": "VariableDeclarationStatement",
"src": "293:37:0"
},
{
"expression": {
"arguments": [
{
"id": 27,
"name": "input",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 19,
"src": "346:5:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"id": 28,
"name": "newVal",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 23,
"src": "353:6:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 26,
"name": "changeRef",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 13,
"src": "336:9:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory,bytes memory) pure"
}
},
"id": 29,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "336:24:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 30,
"nodeType": "ExpressionStatement",
"src": "336:24:0"
},
{
"expression": {
"id": 31,
"name": "input",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 19,
"src": "373:5:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"functionReturnParameters": 17,
"id": 32,
"nodeType": "Return",
"src": "366:12:0"
}
]
},
"functionSelector": "61461954",
"id": 34,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "execute",
"nameLocation": "202:7:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 14,
"nodeType": "ParameterList",
"parameters": [],
"src": "209:2:0"
},
"returnParameters": {
"id": 17,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 16,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 34,
"src": "233:12:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 15,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "233:5:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "232:14:0"
},
"scope": 35,
"src": "193:190:0",
"stateMutability": "pure",
"virtual": false,
"visibility": "public"
}
],
"scope": 36,
"src": "65:320:0",
"usedErrors": [],
"usedEvents": []
}
],
"src": "39:346: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
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "6080604052348015600e575f5ffd5b5061019e8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063614619541461002d575b5f5ffd5b61003561004b565b6040516100429190610148565b60405180910390f35b60605f6040518060400160405280600b81526020017f48656c6c6f20576f726c6400000000000000000000000000000000000000000081525090505f6040518060400160405280600d81526020017f476f6f6462796520576f726c640000000000000000000000000000000000000081525090506100c982826100d1565b819250505090565b8091505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61011a826100d8565b61012481856100e2565b93506101348185602086016100f2565b61013d81610100565b840191505092915050565b5f6020820190508181035f8301526101608184610110565b90509291505056fea26469706673582212205fd79df62eab29abc222eec80963f324c31bac86b96cb01b5f6e20469444eb2964736f6c634300081e0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E DUP1 PUSH2 0x1C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x61461954 EQ PUSH2 0x2D JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x35 PUSH2 0x4B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42 SWAP2 SWAP1 PUSH2 0x148 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xB DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x48656C6C6F20576F726C64000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x476F6F6462796520576F726C6400000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH2 0xC9 DUP3 DUP3 PUSH2 0xD1 JUMP JUMPDEST DUP2 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST DUP1 SWAP2 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x11A DUP3 PUSH2 0xD8 JUMP JUMPDEST PUSH2 0x124 DUP2 DUP6 PUSH2 0xE2 JUMP JUMPDEST SWAP4 POP PUSH2 0x134 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xF2 JUMP JUMPDEST PUSH2 0x13D DUP2 PUSH2 0x100 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x160 DUP2 DUP5 PUSH2 0x110 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH0 0xD7 SWAP14 0xF6 0x2E 0xAB 0x29 0xAB 0xC2 0x22 RETURNCONTRACT 0xC8 MULMOD PUSH4 0xF324C31B 0xAC DUP7 0xB9 PUSH13 0xB01B5F6E20469444EB2964736F PUSH13 0x634300081E0033000000000000 ",
"sourceMap": "65:320:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@changeRef_13": {
"entryPoint": 209,
"id": 13,
"parameterSlots": 2,
"returnSlots": 0
},
"@execute_34": {
"entryPoint": 75,
"id": 34,
"parameterSlots": 0,
"returnSlots": 1
},
"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": {
"entryPoint": 272,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed": {
"entryPoint": 328,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_length_t_bytes_memory_ptr": {
"entryPoint": 216,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": {
"entryPoint": 226,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"copy_memory_to_memory_with_cleanup": {
"entryPoint": 242,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 256,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nativeSrc": "0:1229:1",
"nodeType": "YulBlock",
"src": "0:1229:1",
"statements": [
{
"body": {
"nativeSrc": "65:40:1",
"nodeType": "YulBlock",
"src": "65:40:1",
"statements": [
{
"nativeSrc": "76:22:1",
"nodeType": "YulAssignment",
"src": "76:22:1",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "92:5:1",
"nodeType": "YulIdentifier",
"src": "92:5:1"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "86:5:1",
"nodeType": "YulIdentifier",
"src": "86:5:1"
},
"nativeSrc": "86:12:1",
"nodeType": "YulFunctionCall",
"src": "86:12:1"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "76:6:1",
"nodeType": "YulIdentifier",
"src": "76:6:1"
}
]
}
]
},
"name": "array_length_t_bytes_memory_ptr",
"nativeSrc": "7:98:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "48:5:1",
"nodeType": "YulTypedName",
"src": "48:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "58:6:1",
"nodeType": "YulTypedName",
"src": "58:6:1",
"type": ""
}
],
"src": "7:98:1"
},
{
"body": {
"nativeSrc": "206:73:1",
"nodeType": "YulBlock",
"src": "206:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "223:3:1",
"nodeType": "YulIdentifier",
"src": "223:3:1"
},
{
"name": "length",
"nativeSrc": "228:6:1",
"nodeType": "YulIdentifier",
"src": "228:6:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "216:6:1",
"nodeType": "YulIdentifier",
"src": "216:6:1"
},
"nativeSrc": "216:19:1",
"nodeType": "YulFunctionCall",
"src": "216:19:1"
},
"nativeSrc": "216:19:1",
"nodeType": "YulExpressionStatement",
"src": "216:19:1"
},
{
"nativeSrc": "244:29:1",
"nodeType": "YulAssignment",
"src": "244:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "263:3:1",
"nodeType": "YulIdentifier",
"src": "263:3:1"
},
{
"kind": "number",
"nativeSrc": "268:4:1",
"nodeType": "YulLiteral",
"src": "268:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "259:3:1",
"nodeType": "YulIdentifier",
"src": "259:3:1"
},
"nativeSrc": "259:14:1",
"nodeType": "YulFunctionCall",
"src": "259:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nativeSrc": "244:11:1",
"nodeType": "YulIdentifier",
"src": "244:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
"nativeSrc": "111:168:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "178:3:1",
"nodeType": "YulTypedName",
"src": "178:3:1",
"type": ""
},
{
"name": "length",
"nativeSrc": "183:6:1",
"nodeType": "YulTypedName",
"src": "183:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nativeSrc": "194:11:1",
"nodeType": "YulTypedName",
"src": "194:11:1",
"type": ""
}
],
"src": "111:168:1"
},
{
"body": {
"nativeSrc": "347:77:1",
"nodeType": "YulBlock",
"src": "347:77:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nativeSrc": "364:3:1",
"nodeType": "YulIdentifier",
"src": "364:3:1"
},
{
"name": "src",
"nativeSrc": "369:3:1",
"nodeType": "YulIdentifier",
"src": "369:3:1"
},
{
"name": "length",
"nativeSrc": "374:6:1",
"nodeType": "YulIdentifier",
"src": "374:6:1"
}
],
"functionName": {
"name": "mcopy",
"nativeSrc": "358:5:1",
"nodeType": "YulIdentifier",
"src": "358:5:1"
},
"nativeSrc": "358:23:1",
"nodeType": "YulFunctionCall",
"src": "358:23:1"
},
"nativeSrc": "358:23:1",
"nodeType": "YulExpressionStatement",
"src": "358:23:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nativeSrc": "401:3:1",
"nodeType": "YulIdentifier",
"src": "401:3:1"
},
{
"name": "length",
"nativeSrc": "406:6:1",
"nodeType": "YulIdentifier",
"src": "406:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "397:3:1",
"nodeType": "YulIdentifier",
"src": "397:3:1"
},
"nativeSrc": "397:16:1",
"nodeType": "YulFunctionCall",
"src": "397:16:1"
},
{
"kind": "number",
"nativeSrc": "415:1:1",
"nodeType": "YulLiteral",
"src": "415:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "390:6:1",
"nodeType": "YulIdentifier",
"src": "390:6:1"
},
"nativeSrc": "390:27:1",
"nodeType": "YulFunctionCall",
"src": "390:27:1"
},
"nativeSrc": "390:27:1",
"nodeType": "YulExpressionStatement",
"src": "390:27:1"
}
]
},
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "285:139:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nativeSrc": "329:3:1",
"nodeType": "YulTypedName",
"src": "329:3:1",
"type": ""
},
{
"name": "dst",
"nativeSrc": "334:3:1",
"nodeType": "YulTypedName",
"src": "334:3:1",
"type": ""
},
{
"name": "length",
"nativeSrc": "339:6:1",
"nodeType": "YulTypedName",
"src": "339:6:1",
"type": ""
}
],
"src": "285:139:1"
},
{
"body": {
"nativeSrc": "478:54:1",
"nodeType": "YulBlock",
"src": "478:54:1",
"statements": [
{
"nativeSrc": "488:38:1",
"nodeType": "YulAssignment",
"src": "488:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "506:5:1",
"nodeType": "YulIdentifier",
"src": "506:5:1"
},
{
"kind": "number",
"nativeSrc": "513:2:1",
"nodeType": "YulLiteral",
"src": "513:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nativeSrc": "502:3:1",
"nodeType": "YulIdentifier",
"src": "502:3:1"
},
"nativeSrc": "502:14:1",
"nodeType": "YulFunctionCall",
"src": "502:14:1"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "522:2:1",
"nodeType": "YulLiteral",
"src": "522:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nativeSrc": "518:3:1",
"nodeType": "YulIdentifier",
"src": "518:3:1"
},
"nativeSrc": "518:7:1",
"nodeType": "YulFunctionCall",
"src": "518:7:1"
}
],
"functionName": {
"name": "and",
"nativeSrc": "498:3:1",
"nodeType": "YulIdentifier",
"src": "498:3:1"
},
"nativeSrc": "498:28:1",
"nodeType": "YulFunctionCall",
"src": "498:28:1"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "488:6:1",
"nodeType": "YulIdentifier",
"src": "488:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nativeSrc": "430:102:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "461:5:1",
"nodeType": "YulTypedName",
"src": "461:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "471:6:1",
"nodeType": "YulTypedName",
"src": "471:6:1",
"type": ""
}
],
"src": "430:102:1"
},
{
"body": {
"nativeSrc": "628:283:1",
"nodeType": "YulBlock",
"src": "628:283:1",
"statements": [
{
"nativeSrc": "638:52:1",
"nodeType": "YulVariableDeclaration",
"src": "638:52:1",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "684:5:1",
"nodeType": "YulIdentifier",
"src": "684:5:1"
}
],
"functionName": {
"name": "array_length_t_bytes_memory_ptr",
"nativeSrc": "652:31:1",
"nodeType": "YulIdentifier",
"src": "652:31:1"
},
"nativeSrc": "652:38:1",
"nodeType": "YulFunctionCall",
"src": "652:38:1"
},
"variables": [
{
"name": "length",
"nativeSrc": "642:6:1",
"nodeType": "YulTypedName",
"src": "642:6:1",
"type": ""
}
]
},
{
"nativeSrc": "699:77:1",
"nodeType": "YulAssignment",
"src": "699:77:1",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "764:3:1",
"nodeType": "YulIdentifier",
"src": "764:3:1"
},
{
"name": "length",
"nativeSrc": "769:6:1",
"nodeType": "YulIdentifier",
"src": "769:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
"nativeSrc": "706:57:1",
"nodeType": "YulIdentifier",
"src": "706:57:1"
},
"nativeSrc": "706:70:1",
"nodeType": "YulFunctionCall",
"src": "706:70:1"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "699:3:1",
"nodeType": "YulIdentifier",
"src": "699:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "824:5:1",
"nodeType": "YulIdentifier",
"src": "824:5:1"
},
{
"kind": "number",
"nativeSrc": "831:4:1",
"nodeType": "YulLiteral",
"src": "831:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "820:3:1",
"nodeType": "YulIdentifier",
"src": "820:3:1"
},
"nativeSrc": "820:16:1",
"nodeType": "YulFunctionCall",
"src": "820:16:1"
},
{
"name": "pos",
"nativeSrc": "838:3:1",
"nodeType": "YulIdentifier",
"src": "838:3:1"
},
{
"name": "length",
"nativeSrc": "843:6:1",
"nodeType": "YulIdentifier",
"src": "843:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "785:34:1",
"nodeType": "YulIdentifier",
"src": "785:34:1"
},
"nativeSrc": "785:65:1",
"nodeType": "YulFunctionCall",
"src": "785:65:1"
},
"nativeSrc": "785:65:1",
"nodeType": "YulExpressionStatement",
"src": "785:65:1"
},
{
"nativeSrc": "859:46:1",
"nodeType": "YulAssignment",
"src": "859:46:1",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "870:3:1",
"nodeType": "YulIdentifier",
"src": "870:3:1"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "897:6:1",
"nodeType": "YulIdentifier",
"src": "897:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nativeSrc": "875:21:1",
"nodeType": "YulIdentifier",
"src": "875:21:1"
},
"nativeSrc": "875:29:1",
"nodeType": "YulFunctionCall",
"src": "875:29:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "866:3:1",
"nodeType": "YulIdentifier",
"src": "866:3:1"
},
"nativeSrc": "866:39:1",
"nodeType": "YulFunctionCall",
"src": "866:39:1"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "859:3:1",
"nodeType": "YulIdentifier",
"src": "859:3:1"
}
]
}
]
},
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
"nativeSrc": "538:373:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "609:5:1",
"nodeType": "YulTypedName",
"src": "609:5:1",
"type": ""
},
{
"name": "pos",
"nativeSrc": "616:3:1",
"nodeType": "YulTypedName",
"src": "616:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "624:3:1",
"nodeType": "YulTypedName",
"src": "624:3:1",
"type": ""
}
],
"src": "538:373:1"
},
{
"body": {
"nativeSrc": "1033:193:1",
"nodeType": "YulBlock",
"src": "1033:193:1",
"statements": [
{
"nativeSrc": "1043:26:1",
"nodeType": "YulAssignment",
"src": "1043:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "1055:9:1",
"nodeType": "YulIdentifier",
"src": "1055:9:1"
},
{
"kind": "number",
"nativeSrc": "1066:2:1",
"nodeType": "YulLiteral",
"src": "1066:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1051:3:1",
"nodeType": "YulIdentifier",
"src": "1051:3:1"
},
"nativeSrc": "1051:18:1",
"nodeType": "YulFunctionCall",
"src": "1051:18:1"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "1043:4:1",
"nodeType": "YulIdentifier",
"src": "1043:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "1090:9:1",
"nodeType": "YulIdentifier",
"src": "1090:9:1"
},
{
"kind": "number",
"nativeSrc": "1101:1:1",
"nodeType": "YulLiteral",
"src": "1101:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1086:3:1",
"nodeType": "YulIdentifier",
"src": "1086:3:1"
},
"nativeSrc": "1086:17:1",
"nodeType": "YulFunctionCall",
"src": "1086:17:1"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "1109:4:1",
"nodeType": "YulIdentifier",
"src": "1109:4:1"
},
{
"name": "headStart",
"nativeSrc": "1115:9:1",
"nodeType": "YulIdentifier",
"src": "1115:9:1"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "1105:3:1",
"nodeType": "YulIdentifier",
"src": "1105:3:1"
},
"nativeSrc": "1105:20:1",
"nodeType": "YulFunctionCall",
"src": "1105:20:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "1079:6:1",
"nodeType": "YulIdentifier",
"src": "1079:6:1"
},
"nativeSrc": "1079:47:1",
"nodeType": "YulFunctionCall",
"src": "1079:47:1"
},
"nativeSrc": "1079:47:1",
"nodeType": "YulExpressionStatement",
"src": "1079:47:1"
},
{
"nativeSrc": "1135:84:1",
"nodeType": "YulAssignment",
"src": "1135:84:1",
"value": {
"arguments": [
{
"name": "value0",
"nativeSrc": "1205:6:1",
"nodeType": "YulIdentifier",
"src": "1205:6:1"
},
{
"name": "tail",
"nativeSrc": "1214:4:1",
"nodeType": "YulIdentifier",
"src": "1214:4:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
"nativeSrc": "1143:61:1",
"nodeType": "YulIdentifier",
"src": "1143:61:1"
},
"nativeSrc": "1143:76:1",
"nodeType": "YulFunctionCall",
"src": "1143:76:1"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "1135:4:1",
"nodeType": "YulIdentifier",
"src": "1135:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed",
"nativeSrc": "917:309:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "1005:9:1",
"nodeType": "YulTypedName",
"src": "1005:9:1",
"type": ""
},
{
"name": "value0",
"nativeSrc": "1017:6:1",
"nodeType": "YulTypedName",
"src": "1017:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "1028:4:1",
"nodeType": "YulTypedName",
"src": "1028:4:1",
"type": ""
}
],
"src": "917:309:1"
}
]
},
"contents": "{\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063614619541461002d575b5f5ffd5b61003561004b565b6040516100429190610148565b60405180910390f35b60605f6040518060400160405280600b81526020017f48656c6c6f20576f726c6400000000000000000000000000000000000000000081525090505f6040518060400160405280600d81526020017f476f6f6462796520576f726c640000000000000000000000000000000000000081525090506100c982826100d1565b819250505090565b8091505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61011a826100d8565b61012481856100e2565b93506101348185602086016100f2565b61013d81610100565b840191505092915050565b5f6020820190508181035f8301526101608184610110565b90509291505056fea26469706673582212205fd79df62eab29abc222eec80963f324c31bac86b96cb01b5f6e20469444eb2964736f6c634300081e0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x61461954 EQ PUSH2 0x2D JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x35 PUSH2 0x4B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42 SWAP2 SWAP1 PUSH2 0x148 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xB DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x48656C6C6F20576F726C64000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x476F6F6462796520576F726C6400000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH2 0xC9 DUP3 DUP3 PUSH2 0xD1 JUMP JUMPDEST DUP2 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST DUP1 SWAP2 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x11A DUP3 PUSH2 0xD8 JUMP JUMPDEST PUSH2 0x124 DUP2 DUP6 PUSH2 0xE2 JUMP JUMPDEST SWAP4 POP PUSH2 0x134 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xF2 JUMP JUMPDEST PUSH2 0x13D DUP2 PUSH2 0x100 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x160 DUP2 DUP5 PUSH2 0x110 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH0 0xD7 SWAP14 0xF6 0x2E 0xAB 0x29 0xAB 0xC2 0x22 RETURNCONTRACT 0xC8 MULMOD PUSH4 0xF324C31B 0xAC DUP7 0xB9 PUSH13 0xB01B5F6E20469444EB2964736F PUSH13 0x634300081E0033000000000000 ",
"sourceMap": "65:320:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;193:190;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;233:12;253:18;:34;;;;;;;;;;;;;;;;;;;293:19;:37;;;;;;;;;;;;;;;;;;;336:24;346:5;353:6;336:9;:24::i;:::-;373:5;366:12;;;;193:190;:::o;90:99::-;178:6;170:14;;90:99;;:::o;7:98:1:-;58:6;92:5;86:12;76:22;;7:98;;;:::o;111:168::-;194:11;228:6;223:3;216:19;268:4;263:3;259:14;244:29;;111:168;;;;:::o;285:139::-;374:6;369:3;364;358:23;415:1;406:6;401:3;397:16;390:27;285:139;;;:::o;430:102::-;471:6;522:2;518:7;513:2;506:5;502:14;498:28;488:38;;430:102;;;:::o;538:373::-;624:3;652:38;684:5;652:38;:::i;:::-;706:70;769:6;764:3;706:70;:::i;:::-;699:77;;785:65;843:6;838:3;831:4;824:5;820:16;785:65;:::i;:::-;875:29;897:6;875:29;:::i;:::-;870:3;866:39;859:46;;628:283;538:373;;;;:::o;917:309::-;1028:4;1066:2;1055:9;1051:18;1043:26;;1115:9;1109:4;1105:20;1101:1;1090:9;1086:17;1079:47;1143:76;1214:4;1205:6;1143:76;:::i;:::-;1135:84;;917:309;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "82800",
"executionCost": "127",
"totalCost": "82927"
},
"external": {
"execute()": "infinite"
},
"internal": {
"changeRef(bytes memory,bytes memory)": "21"
}
},
"methodIdentifiers": {
"execute()": "61461954"
}
},
"abi": [
{
"inputs": [],
"name": "execute",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "pure",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.30+commit.73712a01"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "execute",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/TypeExample.sol": "TypeExample"
},
"evmVersion": "prague",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/TypeExample.sol": {
"keccak256": "0x29250a623d9a20406cf507729eb73f3d235491fe37c4f1c411a7eb9b9d1743c6",
"license": "UNLICENSED",
"urls": [
"bzz-raw://157306892042305858d015b38aeccc6f69a52be97304f4ff97767221475b9125",
"dweb:/ipfs/QmdFqkUaumBgSE8BU6pvbdW4gWqNjzbiLYUHVrGXYCFdGD"
]
}
},
"version": 1
}
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.30;
contract TypeExample {
function changeRef(bytes memory input, bytes memory newVal) internal pure {
input = newVal;
}
function execute() public pure returns (bytes memory) {
bytes memory input = "Hello World";
bytes memory newVal = "Goodbye World";
changeRef(input, newVal);
return input;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment