@layerzerolabs/create3-factory 2.3.9 → 2.3.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/deployments/cyber-mainnet/.chainId +1 -0
- package/deployments/cyber-mainnet/CREATE3Factory.json +120 -0
- package/deployments/iota-mainnet/.chainId +1 -0
- package/deployments/iota-mainnet/CREATE3Factory.json +120 -0
- package/deployments/manta-testnet/.pendingTransactions +3124 -0
- package/package.json +10 -10
|
@@ -0,0 +1,3124 @@
|
|
|
1
|
+
{
|
|
2
|
+
"0x2f828e9962c6e4a83fcb26b59bf336ed2d0db0dd0f4b092e3516ea9959651515": {
|
|
3
|
+
"name": "CREATE3Factory",
|
|
4
|
+
"deployment": {
|
|
5
|
+
"_format": "hh-sol-artifact-1",
|
|
6
|
+
"contractName": "CREATE3Factory",
|
|
7
|
+
"sourceName": "contracts/CREATE3Factory.sol",
|
|
8
|
+
"abi": [
|
|
9
|
+
{
|
|
10
|
+
"inputs": [
|
|
11
|
+
{
|
|
12
|
+
"internalType": "bytes32",
|
|
13
|
+
"name": "salt",
|
|
14
|
+
"type": "bytes32"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"internalType": "bytes",
|
|
18
|
+
"name": "creationCode",
|
|
19
|
+
"type": "bytes"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"name": "deploy",
|
|
23
|
+
"outputs": [
|
|
24
|
+
{
|
|
25
|
+
"internalType": "address",
|
|
26
|
+
"name": "deployed",
|
|
27
|
+
"type": "address"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"stateMutability": "payable",
|
|
31
|
+
"type": "function"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"inputs": [
|
|
35
|
+
{
|
|
36
|
+
"internalType": "address",
|
|
37
|
+
"name": "deployer",
|
|
38
|
+
"type": "address"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"internalType": "bytes32",
|
|
42
|
+
"name": "salt",
|
|
43
|
+
"type": "bytes32"
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"name": "getDeployed",
|
|
47
|
+
"outputs": [
|
|
48
|
+
{
|
|
49
|
+
"internalType": "address",
|
|
50
|
+
"name": "deployed",
|
|
51
|
+
"type": "address"
|
|
52
|
+
}
|
|
53
|
+
],
|
|
54
|
+
"stateMutability": "view",
|
|
55
|
+
"type": "function"
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"bytecode": "0x608060405234801561001057600080fd5b50610656806100206000396000f3fe6080604052600436106100295760003560e01c806350f1c4641461002e578063cdcb760a14610077575b600080fd5b34801561003a57600080fd5b5061004e6100493660046104a4565b61008a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61004e610085366004610518565b6100ee565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b166020820152603481018290526000906054016040516020818303038152906040528051906020012091506100e78261014c565b9392505050565b6040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b166020820152603481018390526000906054016040516020818303038152906040528051906020012092506100e783833461015e565b60006101588230610335565b92915050565b6000806040518060400160405280601081526020017f67363d3d37363d34f03d5260086018f30000000000000000000000000000000081525090506000858251602084016000f5905073ffffffffffffffffffffffffffffffffffffffff8116610229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4445504c4f594d454e545f4641494c454400000000000000000000000000000060448201526064015b60405180910390fd5b6102328661014c565b925060008173ffffffffffffffffffffffffffffffffffffffff16858760405161025c91906105f1565b60006040518083038185875af1925050503d8060008114610299576040519150601f19603f3d011682016040523d82523d6000602084013e61029e565b606091505b505090508080156102c5575073ffffffffffffffffffffffffffffffffffffffff84163b15155b61032b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f494e495449414c495a4154494f4e5f4641494c454400000000000000000000006044820152606401610220565b5050509392505050565b604080518082018252601081527f67363d3d37363d34f03d5260086018f30000000000000000000000000000000060209182015290517fff00000000000000000000000000000000000000000000000000000000000000918101919091527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606083901b166021820152603581018390527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f60558201526000908190610412906075015b6040516020818303038152906040528051906020012090565b6040517fd69400000000000000000000000000000000000000000000000000000000000060208201527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606083901b1660228201527f0100000000000000000000000000000000000000000000000000000000000000603682015290915061049c906037016103f9565b949350505050565b600080604083850312156104b757600080fd5b823573ffffffffffffffffffffffffffffffffffffffff811681146104db57600080fd5b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561052b57600080fd5b82359150602083013567ffffffffffffffff8082111561054a57600080fd5b818501915085601f83011261055e57600080fd5b813581811115610570576105706104e9565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156105b6576105b66104e9565b816040528281528860208487010111156105cf57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b8181101561061257602081860181015185830152016105f8565b50600092019182525091905056fea26469706673582212206b6380cfdb8c09de9f5e19deecf088d43d289d060eeea9f3deea2b54d96f56d264736f6c63430008120033",
|
|
59
|
+
"deployedBytecode": "0x6080604052600436106100295760003560e01c806350f1c4641461002e578063cdcb760a14610077575b600080fd5b34801561003a57600080fd5b5061004e6100493660046104a4565b61008a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61004e610085366004610518565b6100ee565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b166020820152603481018290526000906054016040516020818303038152906040528051906020012091506100e78261014c565b9392505050565b6040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b166020820152603481018390526000906054016040516020818303038152906040528051906020012092506100e783833461015e565b60006101588230610335565b92915050565b6000806040518060400160405280601081526020017f67363d3d37363d34f03d5260086018f30000000000000000000000000000000081525090506000858251602084016000f5905073ffffffffffffffffffffffffffffffffffffffff8116610229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4445504c4f594d454e545f4641494c454400000000000000000000000000000060448201526064015b60405180910390fd5b6102328661014c565b925060008173ffffffffffffffffffffffffffffffffffffffff16858760405161025c91906105f1565b60006040518083038185875af1925050503d8060008114610299576040519150601f19603f3d011682016040523d82523d6000602084013e61029e565b606091505b505090508080156102c5575073ffffffffffffffffffffffffffffffffffffffff84163b15155b61032b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f494e495449414c495a4154494f4e5f4641494c454400000000000000000000006044820152606401610220565b5050509392505050565b604080518082018252601081527f67363d3d37363d34f03d5260086018f30000000000000000000000000000000060209182015290517fff00000000000000000000000000000000000000000000000000000000000000918101919091527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606083901b166021820152603581018390527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f60558201526000908190610412906075015b6040516020818303038152906040528051906020012090565b6040517fd69400000000000000000000000000000000000000000000000000000000000060208201527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606083901b1660228201527f0100000000000000000000000000000000000000000000000000000000000000603682015290915061049c906037016103f9565b949350505050565b600080604083850312156104b757600080fd5b823573ffffffffffffffffffffffffffffffffffffffff811681146104db57600080fd5b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561052b57600080fd5b82359150602083013567ffffffffffffffff8082111561054a57600080fd5b818501915085601f83011261055e57600080fd5b813581811115610570576105706104e9565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156105b6576105b66104e9565b816040528281528860208487010111156105cf57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b8181101561061257602081860181015185830152016105f8565b50600092019182525091905056fea26469706673582212206b6380cfdb8c09de9f5e19deecf088d43d289d060eeea9f3deea2b54d96f56d264736f6c63430008120033",
|
|
60
|
+
"linkReferences": {},
|
|
61
|
+
"deployedLinkReferences": {},
|
|
62
|
+
"devdoc": {
|
|
63
|
+
"author": "zefram.eth",
|
|
64
|
+
"kind": "dev",
|
|
65
|
+
"methods": {
|
|
66
|
+
"deploy(bytes32,bytes)": {
|
|
67
|
+
"details": "The provided salt is hashed together with msg.sender to generate the final salt",
|
|
68
|
+
"params": {
|
|
69
|
+
"creationCode": "The creation code of the contract to deploy",
|
|
70
|
+
"salt": "The deployer-specific salt for determining the deployed contract's address"
|
|
71
|
+
},
|
|
72
|
+
"returns": {
|
|
73
|
+
"deployed": "The address of the deployed contract"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"getDeployed(address,bytes32)": {
|
|
77
|
+
"details": "The provided salt is hashed together with the deployer address to generate the final salt",
|
|
78
|
+
"params": {
|
|
79
|
+
"deployer": "The deployer account that will call deploy()",
|
|
80
|
+
"salt": "The deployer-specific salt for determining the deployed contract's address"
|
|
81
|
+
},
|
|
82
|
+
"returns": {
|
|
83
|
+
"deployed": "The address of the contract that will be deployed"
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"title": "Factory for deploying contracts to deterministic addresses via CREATE3",
|
|
88
|
+
"version": 1
|
|
89
|
+
},
|
|
90
|
+
"evm": {
|
|
91
|
+
"bytecode": {
|
|
92
|
+
"functionDebugData": {},
|
|
93
|
+
"generatedSources": [],
|
|
94
|
+
"linkReferences": {},
|
|
95
|
+
"object": "608060405234801561001057600080fd5b50610656806100206000396000f3fe6080604052600436106100295760003560e01c806350f1c4641461002e578063cdcb760a14610077575b600080fd5b34801561003a57600080fd5b5061004e6100493660046104a4565b61008a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61004e610085366004610518565b6100ee565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b166020820152603481018290526000906054016040516020818303038152906040528051906020012091506100e78261014c565b9392505050565b6040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b166020820152603481018390526000906054016040516020818303038152906040528051906020012092506100e783833461015e565b60006101588230610335565b92915050565b6000806040518060400160405280601081526020017f67363d3d37363d34f03d5260086018f30000000000000000000000000000000081525090506000858251602084016000f5905073ffffffffffffffffffffffffffffffffffffffff8116610229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4445504c4f594d454e545f4641494c454400000000000000000000000000000060448201526064015b60405180910390fd5b6102328661014c565b925060008173ffffffffffffffffffffffffffffffffffffffff16858760405161025c91906105f1565b60006040518083038185875af1925050503d8060008114610299576040519150601f19603f3d011682016040523d82523d6000602084013e61029e565b606091505b505090508080156102c5575073ffffffffffffffffffffffffffffffffffffffff84163b15155b61032b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f494e495449414c495a4154494f4e5f4641494c454400000000000000000000006044820152606401610220565b5050509392505050565b604080518082018252601081527f67363d3d37363d34f03d5260086018f30000000000000000000000000000000060209182015290517fff00000000000000000000000000000000000000000000000000000000000000918101919091527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606083901b166021820152603581018390527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f60558201526000908190610412906075015b6040516020818303038152906040528051906020012090565b6040517fd69400000000000000000000000000000000000000000000000000000000000060208201527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606083901b1660228201527f0100000000000000000000000000000000000000000000000000000000000000603682015290915061049c906037016103f9565b949350505050565b600080604083850312156104b757600080fd5b823573ffffffffffffffffffffffffffffffffffffffff811681146104db57600080fd5b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561052b57600080fd5b82359150602083013567ffffffffffffffff8082111561054a57600080fd5b818501915085601f83011261055e57600080fd5b813581811115610570576105706104e9565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156105b6576105b66104e9565b816040528281528860208487010111156105cf57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b8181101561061257602081860181015185830152016105f8565b50600092019182525091905056fea26469706673582212206b6380cfdb8c09de9f5e19deecf088d43d289d060eeea9f3deea2b54d96f56d264736f6c63430008120033",
|
|
96
|
+
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x656 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 0x50F1C464 EQ PUSH2 0x2E JUMPI DUP1 PUSH4 0xCDCB760A EQ PUSH2 0x77 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x4A4 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x85 CALLDATASIZE PUSH1 0x4 PUSH2 0x518 JUMP JUMPDEST PUSH2 0xEE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 PUSH1 0x60 DUP5 SWAP1 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP2 POP PUSH2 0xE7 DUP3 PUSH2 0x14C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 CALLER PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP3 POP PUSH2 0xE7 DUP4 DUP4 CALLVALUE PUSH2 0x15E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x158 DUP3 ADDRESS PUSH2 0x335 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x67363D3D37363D34F03D5260086018F300000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH1 0x0 DUP6 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH1 0x0 CREATE2 SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x229 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4445504C4F594D454E545F4641494C4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x232 DUP7 PUSH2 0x14C JUMP JUMPDEST SWAP3 POP PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x25C SWAP2 SWAP1 PUSH2 0x5F1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x299 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 0x29E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 DUP1 ISZERO PUSH2 0x2C5 JUMPI POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND EXTCODESIZE ISZERO ISZERO JUMPDEST PUSH2 0x32B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x494E495449414C495A4154494F4E5F4641494C45440000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x220 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH32 0x67363D3D37363D34F03D5260086018F300000000000000000000000000000000 PUSH1 0x20 SWAP2 DUP3 ADD MSTORE SWAP1 MLOAD PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 PUSH1 0x60 DUP4 SWAP1 SHL AND PUSH1 0x21 DUP3 ADD MSTORE PUSH1 0x35 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x21C35DBE1B344A2488CF3321D6CE542F8E9F305544FF09E4993A62319A497C1F PUSH1 0x55 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0x412 SWAP1 PUSH1 0x75 ADD JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xD694000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 PUSH1 0x60 DUP4 SWAP1 SHL AND PUSH1 0x22 DUP3 ADD MSTORE PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 PUSH1 0x36 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x49C SWAP1 PUSH1 0x37 ADD PUSH2 0x3F9 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x4DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x52B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x55E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x570 JUMPI PUSH2 0x570 PUSH2 0x4E9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x5B6 JUMPI PUSH2 0x5B6 PUSH2 0x4E9 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP9 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x5CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x612 JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0x5F8 JUMP JUMPDEST POP PUSH1 0x0 SWAP3 ADD SWAP2 DUP3 MSTORE POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH12 0x6380CFDB8C09DE9F5E19DEEC CREATE DUP9 0xD4 RETURNDATASIZE 0x28 SWAP14 MOD 0xE 0xEE 0xA9 RETURN 0xDE 0xEA 0x2B SLOAD 0xD9 PUSH16 0x56D264736F6C63430008120033000000 ",
|
|
97
|
+
"sourceMap": "400:756:2:-:0;;;;;;;;;;;;;;;;;;;"
|
|
98
|
+
},
|
|
99
|
+
"deployedBytecode": {
|
|
100
|
+
"functionDebugData": {
|
|
101
|
+
"@deploy_110": {
|
|
102
|
+
"entryPoint": 350,
|
|
103
|
+
"id": 110,
|
|
104
|
+
"parameterSlots": 3,
|
|
105
|
+
"returnSlots": 1
|
|
106
|
+
},
|
|
107
|
+
"@deploy_205": {
|
|
108
|
+
"entryPoint": 238,
|
|
109
|
+
"id": 205,
|
|
110
|
+
"parameterSlots": 2,
|
|
111
|
+
"returnSlots": 1
|
|
112
|
+
},
|
|
113
|
+
"@fromLast20Bytes_21": {
|
|
114
|
+
"entryPoint": null,
|
|
115
|
+
"id": 21,
|
|
116
|
+
"parameterSlots": 1,
|
|
117
|
+
"returnSlots": 1
|
|
118
|
+
},
|
|
119
|
+
"@getDeployed_126": {
|
|
120
|
+
"entryPoint": 332,
|
|
121
|
+
"id": 126,
|
|
122
|
+
"parameterSlots": 1,
|
|
123
|
+
"returnSlots": 1
|
|
124
|
+
},
|
|
125
|
+
"@getDeployed_164": {
|
|
126
|
+
"entryPoint": 821,
|
|
127
|
+
"id": 164,
|
|
128
|
+
"parameterSlots": 2,
|
|
129
|
+
"returnSlots": 1
|
|
130
|
+
},
|
|
131
|
+
"@getDeployed_232": {
|
|
132
|
+
"entryPoint": 138,
|
|
133
|
+
"id": 232,
|
|
134
|
+
"parameterSlots": 2,
|
|
135
|
+
"returnSlots": 1
|
|
136
|
+
},
|
|
137
|
+
"abi_decode_tuple_t_addresst_bytes32": {
|
|
138
|
+
"entryPoint": 1188,
|
|
139
|
+
"id": null,
|
|
140
|
+
"parameterSlots": 2,
|
|
141
|
+
"returnSlots": 2
|
|
142
|
+
},
|
|
143
|
+
"abi_decode_tuple_t_bytes32t_bytes_memory_ptr": {
|
|
144
|
+
"entryPoint": 1304,
|
|
145
|
+
"id": null,
|
|
146
|
+
"parameterSlots": 2,
|
|
147
|
+
"returnSlots": 2
|
|
148
|
+
},
|
|
149
|
+
"abi_encode_tuple_packed_t_address_t_bytes32__to_t_address_t_bytes32__nonPadded_inplace_fromStack_reversed": {
|
|
150
|
+
"entryPoint": null,
|
|
151
|
+
"id": null,
|
|
152
|
+
"parameterSlots": 3,
|
|
153
|
+
"returnSlots": 1
|
|
154
|
+
},
|
|
155
|
+
"abi_encode_tuple_packed_t_bytes1_t_address_t_bytes32_t_bytes32__to_t_bytes1_t_address_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed": {
|
|
156
|
+
"entryPoint": null,
|
|
157
|
+
"id": null,
|
|
158
|
+
"parameterSlots": 5,
|
|
159
|
+
"returnSlots": 1
|
|
160
|
+
},
|
|
161
|
+
"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": {
|
|
162
|
+
"entryPoint": 1521,
|
|
163
|
+
"id": null,
|
|
164
|
+
"parameterSlots": 2,
|
|
165
|
+
"returnSlots": 1
|
|
166
|
+
},
|
|
167
|
+
"abi_encode_tuple_packed_t_stringliteral_4fdc04d28c8d22070e5fd0f23f00bae0b21cc4e5091b5fd7a9cad9babd3668cf_t_address_t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2__to_t_string_memory_ptr_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": {
|
|
168
|
+
"entryPoint": null,
|
|
169
|
+
"id": null,
|
|
170
|
+
"parameterSlots": 2,
|
|
171
|
+
"returnSlots": 1
|
|
172
|
+
},
|
|
173
|
+
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
|
|
174
|
+
"entryPoint": null,
|
|
175
|
+
"id": null,
|
|
176
|
+
"parameterSlots": 2,
|
|
177
|
+
"returnSlots": 1
|
|
178
|
+
},
|
|
179
|
+
"abi_encode_tuple_t_stringliteral_06b9a079a75ffa7ba441ae4f39a27e137fcdab3674b7b73e6582f52f1f6543e1__to_t_string_memory_ptr__fromStack_reversed": {
|
|
180
|
+
"entryPoint": null,
|
|
181
|
+
"id": null,
|
|
182
|
+
"parameterSlots": 1,
|
|
183
|
+
"returnSlots": 1
|
|
184
|
+
},
|
|
185
|
+
"abi_encode_tuple_t_stringliteral_0f225f2de9716551751e4d6d194f155e7a15812a52c33d3c6df80cb5145c2aa4__to_t_string_memory_ptr__fromStack_reversed": {
|
|
186
|
+
"entryPoint": null,
|
|
187
|
+
"id": null,
|
|
188
|
+
"parameterSlots": 1,
|
|
189
|
+
"returnSlots": 1
|
|
190
|
+
},
|
|
191
|
+
"panic_error_0x41": {
|
|
192
|
+
"entryPoint": 1257,
|
|
193
|
+
"id": null,
|
|
194
|
+
"parameterSlots": 0,
|
|
195
|
+
"returnSlots": 0
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
"generatedSources": [
|
|
199
|
+
{
|
|
200
|
+
"ast": {
|
|
201
|
+
"nodeType": "YulBlock",
|
|
202
|
+
"src": "0:4511:4",
|
|
203
|
+
"statements": [
|
|
204
|
+
{
|
|
205
|
+
"nodeType": "YulBlock",
|
|
206
|
+
"src": "6:3:4",
|
|
207
|
+
"statements": []
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"body": {
|
|
211
|
+
"nodeType": "YulBlock",
|
|
212
|
+
"src": "101:290:4",
|
|
213
|
+
"statements": [
|
|
214
|
+
{
|
|
215
|
+
"body": {
|
|
216
|
+
"nodeType": "YulBlock",
|
|
217
|
+
"src": "147:16:4",
|
|
218
|
+
"statements": [
|
|
219
|
+
{
|
|
220
|
+
"expression": {
|
|
221
|
+
"arguments": [
|
|
222
|
+
{
|
|
223
|
+
"kind": "number",
|
|
224
|
+
"nodeType": "YulLiteral",
|
|
225
|
+
"src": "156:1:4",
|
|
226
|
+
"type": "",
|
|
227
|
+
"value": "0"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"kind": "number",
|
|
231
|
+
"nodeType": "YulLiteral",
|
|
232
|
+
"src": "159:1:4",
|
|
233
|
+
"type": "",
|
|
234
|
+
"value": "0"
|
|
235
|
+
}
|
|
236
|
+
],
|
|
237
|
+
"functionName": {
|
|
238
|
+
"name": "revert",
|
|
239
|
+
"nodeType": "YulIdentifier",
|
|
240
|
+
"src": "149:6:4"
|
|
241
|
+
},
|
|
242
|
+
"nodeType": "YulFunctionCall",
|
|
243
|
+
"src": "149:12:4"
|
|
244
|
+
},
|
|
245
|
+
"nodeType": "YulExpressionStatement",
|
|
246
|
+
"src": "149:12:4"
|
|
247
|
+
}
|
|
248
|
+
]
|
|
249
|
+
},
|
|
250
|
+
"condition": {
|
|
251
|
+
"arguments": [
|
|
252
|
+
{
|
|
253
|
+
"arguments": [
|
|
254
|
+
{
|
|
255
|
+
"name": "dataEnd",
|
|
256
|
+
"nodeType": "YulIdentifier",
|
|
257
|
+
"src": "122:7:4"
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"name": "headStart",
|
|
261
|
+
"nodeType": "YulIdentifier",
|
|
262
|
+
"src": "131:9:4"
|
|
263
|
+
}
|
|
264
|
+
],
|
|
265
|
+
"functionName": {
|
|
266
|
+
"name": "sub",
|
|
267
|
+
"nodeType": "YulIdentifier",
|
|
268
|
+
"src": "118:3:4"
|
|
269
|
+
},
|
|
270
|
+
"nodeType": "YulFunctionCall",
|
|
271
|
+
"src": "118:23:4"
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"kind": "number",
|
|
275
|
+
"nodeType": "YulLiteral",
|
|
276
|
+
"src": "143:2:4",
|
|
277
|
+
"type": "",
|
|
278
|
+
"value": "64"
|
|
279
|
+
}
|
|
280
|
+
],
|
|
281
|
+
"functionName": {
|
|
282
|
+
"name": "slt",
|
|
283
|
+
"nodeType": "YulIdentifier",
|
|
284
|
+
"src": "114:3:4"
|
|
285
|
+
},
|
|
286
|
+
"nodeType": "YulFunctionCall",
|
|
287
|
+
"src": "114:32:4"
|
|
288
|
+
},
|
|
289
|
+
"nodeType": "YulIf",
|
|
290
|
+
"src": "111:52:4"
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"nodeType": "YulVariableDeclaration",
|
|
294
|
+
"src": "172:36:4",
|
|
295
|
+
"value": {
|
|
296
|
+
"arguments": [
|
|
297
|
+
{
|
|
298
|
+
"name": "headStart",
|
|
299
|
+
"nodeType": "YulIdentifier",
|
|
300
|
+
"src": "198:9:4"
|
|
301
|
+
}
|
|
302
|
+
],
|
|
303
|
+
"functionName": {
|
|
304
|
+
"name": "calldataload",
|
|
305
|
+
"nodeType": "YulIdentifier",
|
|
306
|
+
"src": "185:12:4"
|
|
307
|
+
},
|
|
308
|
+
"nodeType": "YulFunctionCall",
|
|
309
|
+
"src": "185:23:4"
|
|
310
|
+
},
|
|
311
|
+
"variables": [
|
|
312
|
+
{
|
|
313
|
+
"name": "value",
|
|
314
|
+
"nodeType": "YulTypedName",
|
|
315
|
+
"src": "176:5:4",
|
|
316
|
+
"type": ""
|
|
317
|
+
}
|
|
318
|
+
]
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
"body": {
|
|
322
|
+
"nodeType": "YulBlock",
|
|
323
|
+
"src": "294:16:4",
|
|
324
|
+
"statements": [
|
|
325
|
+
{
|
|
326
|
+
"expression": {
|
|
327
|
+
"arguments": [
|
|
328
|
+
{
|
|
329
|
+
"kind": "number",
|
|
330
|
+
"nodeType": "YulLiteral",
|
|
331
|
+
"src": "303:1:4",
|
|
332
|
+
"type": "",
|
|
333
|
+
"value": "0"
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
"kind": "number",
|
|
337
|
+
"nodeType": "YulLiteral",
|
|
338
|
+
"src": "306:1:4",
|
|
339
|
+
"type": "",
|
|
340
|
+
"value": "0"
|
|
341
|
+
}
|
|
342
|
+
],
|
|
343
|
+
"functionName": {
|
|
344
|
+
"name": "revert",
|
|
345
|
+
"nodeType": "YulIdentifier",
|
|
346
|
+
"src": "296:6:4"
|
|
347
|
+
},
|
|
348
|
+
"nodeType": "YulFunctionCall",
|
|
349
|
+
"src": "296:12:4"
|
|
350
|
+
},
|
|
351
|
+
"nodeType": "YulExpressionStatement",
|
|
352
|
+
"src": "296:12:4"
|
|
353
|
+
}
|
|
354
|
+
]
|
|
355
|
+
},
|
|
356
|
+
"condition": {
|
|
357
|
+
"arguments": [
|
|
358
|
+
{
|
|
359
|
+
"arguments": [
|
|
360
|
+
{
|
|
361
|
+
"name": "value",
|
|
362
|
+
"nodeType": "YulIdentifier",
|
|
363
|
+
"src": "230:5:4"
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
"arguments": [
|
|
367
|
+
{
|
|
368
|
+
"name": "value",
|
|
369
|
+
"nodeType": "YulIdentifier",
|
|
370
|
+
"src": "241:5:4"
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
"kind": "number",
|
|
374
|
+
"nodeType": "YulLiteral",
|
|
375
|
+
"src": "248:42:4",
|
|
376
|
+
"type": "",
|
|
377
|
+
"value": "0xffffffffffffffffffffffffffffffffffffffff"
|
|
378
|
+
}
|
|
379
|
+
],
|
|
380
|
+
"functionName": {
|
|
381
|
+
"name": "and",
|
|
382
|
+
"nodeType": "YulIdentifier",
|
|
383
|
+
"src": "237:3:4"
|
|
384
|
+
},
|
|
385
|
+
"nodeType": "YulFunctionCall",
|
|
386
|
+
"src": "237:54:4"
|
|
387
|
+
}
|
|
388
|
+
],
|
|
389
|
+
"functionName": {
|
|
390
|
+
"name": "eq",
|
|
391
|
+
"nodeType": "YulIdentifier",
|
|
392
|
+
"src": "227:2:4"
|
|
393
|
+
},
|
|
394
|
+
"nodeType": "YulFunctionCall",
|
|
395
|
+
"src": "227:65:4"
|
|
396
|
+
}
|
|
397
|
+
],
|
|
398
|
+
"functionName": {
|
|
399
|
+
"name": "iszero",
|
|
400
|
+
"nodeType": "YulIdentifier",
|
|
401
|
+
"src": "220:6:4"
|
|
402
|
+
},
|
|
403
|
+
"nodeType": "YulFunctionCall",
|
|
404
|
+
"src": "220:73:4"
|
|
405
|
+
},
|
|
406
|
+
"nodeType": "YulIf",
|
|
407
|
+
"src": "217:93:4"
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
"nodeType": "YulAssignment",
|
|
411
|
+
"src": "319:15:4",
|
|
412
|
+
"value": {
|
|
413
|
+
"name": "value",
|
|
414
|
+
"nodeType": "YulIdentifier",
|
|
415
|
+
"src": "329:5:4"
|
|
416
|
+
},
|
|
417
|
+
"variableNames": [
|
|
418
|
+
{
|
|
419
|
+
"name": "value0",
|
|
420
|
+
"nodeType": "YulIdentifier",
|
|
421
|
+
"src": "319:6:4"
|
|
422
|
+
}
|
|
423
|
+
]
|
|
424
|
+
},
|
|
425
|
+
{
|
|
426
|
+
"nodeType": "YulAssignment",
|
|
427
|
+
"src": "343:42:4",
|
|
428
|
+
"value": {
|
|
429
|
+
"arguments": [
|
|
430
|
+
{
|
|
431
|
+
"arguments": [
|
|
432
|
+
{
|
|
433
|
+
"name": "headStart",
|
|
434
|
+
"nodeType": "YulIdentifier",
|
|
435
|
+
"src": "370:9:4"
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
"kind": "number",
|
|
439
|
+
"nodeType": "YulLiteral",
|
|
440
|
+
"src": "381:2:4",
|
|
441
|
+
"type": "",
|
|
442
|
+
"value": "32"
|
|
443
|
+
}
|
|
444
|
+
],
|
|
445
|
+
"functionName": {
|
|
446
|
+
"name": "add",
|
|
447
|
+
"nodeType": "YulIdentifier",
|
|
448
|
+
"src": "366:3:4"
|
|
449
|
+
},
|
|
450
|
+
"nodeType": "YulFunctionCall",
|
|
451
|
+
"src": "366:18:4"
|
|
452
|
+
}
|
|
453
|
+
],
|
|
454
|
+
"functionName": {
|
|
455
|
+
"name": "calldataload",
|
|
456
|
+
"nodeType": "YulIdentifier",
|
|
457
|
+
"src": "353:12:4"
|
|
458
|
+
},
|
|
459
|
+
"nodeType": "YulFunctionCall",
|
|
460
|
+
"src": "353:32:4"
|
|
461
|
+
},
|
|
462
|
+
"variableNames": [
|
|
463
|
+
{
|
|
464
|
+
"name": "value1",
|
|
465
|
+
"nodeType": "YulIdentifier",
|
|
466
|
+
"src": "343:6:4"
|
|
467
|
+
}
|
|
468
|
+
]
|
|
469
|
+
}
|
|
470
|
+
]
|
|
471
|
+
},
|
|
472
|
+
"name": "abi_decode_tuple_t_addresst_bytes32",
|
|
473
|
+
"nodeType": "YulFunctionDefinition",
|
|
474
|
+
"parameters": [
|
|
475
|
+
{
|
|
476
|
+
"name": "headStart",
|
|
477
|
+
"nodeType": "YulTypedName",
|
|
478
|
+
"src": "59:9:4",
|
|
479
|
+
"type": ""
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
"name": "dataEnd",
|
|
483
|
+
"nodeType": "YulTypedName",
|
|
484
|
+
"src": "70:7:4",
|
|
485
|
+
"type": ""
|
|
486
|
+
}
|
|
487
|
+
],
|
|
488
|
+
"returnVariables": [
|
|
489
|
+
{
|
|
490
|
+
"name": "value0",
|
|
491
|
+
"nodeType": "YulTypedName",
|
|
492
|
+
"src": "82:6:4",
|
|
493
|
+
"type": ""
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
"name": "value1",
|
|
497
|
+
"nodeType": "YulTypedName",
|
|
498
|
+
"src": "90:6:4",
|
|
499
|
+
"type": ""
|
|
500
|
+
}
|
|
501
|
+
],
|
|
502
|
+
"src": "14:377:4"
|
|
503
|
+
},
|
|
504
|
+
{
|
|
505
|
+
"body": {
|
|
506
|
+
"nodeType": "YulBlock",
|
|
507
|
+
"src": "497:125:4",
|
|
508
|
+
"statements": [
|
|
509
|
+
{
|
|
510
|
+
"nodeType": "YulAssignment",
|
|
511
|
+
"src": "507:26:4",
|
|
512
|
+
"value": {
|
|
513
|
+
"arguments": [
|
|
514
|
+
{
|
|
515
|
+
"name": "headStart",
|
|
516
|
+
"nodeType": "YulIdentifier",
|
|
517
|
+
"src": "519:9:4"
|
|
518
|
+
},
|
|
519
|
+
{
|
|
520
|
+
"kind": "number",
|
|
521
|
+
"nodeType": "YulLiteral",
|
|
522
|
+
"src": "530:2:4",
|
|
523
|
+
"type": "",
|
|
524
|
+
"value": "32"
|
|
525
|
+
}
|
|
526
|
+
],
|
|
527
|
+
"functionName": {
|
|
528
|
+
"name": "add",
|
|
529
|
+
"nodeType": "YulIdentifier",
|
|
530
|
+
"src": "515:3:4"
|
|
531
|
+
},
|
|
532
|
+
"nodeType": "YulFunctionCall",
|
|
533
|
+
"src": "515:18:4"
|
|
534
|
+
},
|
|
535
|
+
"variableNames": [
|
|
536
|
+
{
|
|
537
|
+
"name": "tail",
|
|
538
|
+
"nodeType": "YulIdentifier",
|
|
539
|
+
"src": "507:4:4"
|
|
540
|
+
}
|
|
541
|
+
]
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
"expression": {
|
|
545
|
+
"arguments": [
|
|
546
|
+
{
|
|
547
|
+
"name": "headStart",
|
|
548
|
+
"nodeType": "YulIdentifier",
|
|
549
|
+
"src": "549:9:4"
|
|
550
|
+
},
|
|
551
|
+
{
|
|
552
|
+
"arguments": [
|
|
553
|
+
{
|
|
554
|
+
"name": "value0",
|
|
555
|
+
"nodeType": "YulIdentifier",
|
|
556
|
+
"src": "564:6:4"
|
|
557
|
+
},
|
|
558
|
+
{
|
|
559
|
+
"kind": "number",
|
|
560
|
+
"nodeType": "YulLiteral",
|
|
561
|
+
"src": "572:42:4",
|
|
562
|
+
"type": "",
|
|
563
|
+
"value": "0xffffffffffffffffffffffffffffffffffffffff"
|
|
564
|
+
}
|
|
565
|
+
],
|
|
566
|
+
"functionName": {
|
|
567
|
+
"name": "and",
|
|
568
|
+
"nodeType": "YulIdentifier",
|
|
569
|
+
"src": "560:3:4"
|
|
570
|
+
},
|
|
571
|
+
"nodeType": "YulFunctionCall",
|
|
572
|
+
"src": "560:55:4"
|
|
573
|
+
}
|
|
574
|
+
],
|
|
575
|
+
"functionName": {
|
|
576
|
+
"name": "mstore",
|
|
577
|
+
"nodeType": "YulIdentifier",
|
|
578
|
+
"src": "542:6:4"
|
|
579
|
+
},
|
|
580
|
+
"nodeType": "YulFunctionCall",
|
|
581
|
+
"src": "542:74:4"
|
|
582
|
+
},
|
|
583
|
+
"nodeType": "YulExpressionStatement",
|
|
584
|
+
"src": "542:74:4"
|
|
585
|
+
}
|
|
586
|
+
]
|
|
587
|
+
},
|
|
588
|
+
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
|
|
589
|
+
"nodeType": "YulFunctionDefinition",
|
|
590
|
+
"parameters": [
|
|
591
|
+
{
|
|
592
|
+
"name": "headStart",
|
|
593
|
+
"nodeType": "YulTypedName",
|
|
594
|
+
"src": "466:9:4",
|
|
595
|
+
"type": ""
|
|
596
|
+
},
|
|
597
|
+
{
|
|
598
|
+
"name": "value0",
|
|
599
|
+
"nodeType": "YulTypedName",
|
|
600
|
+
"src": "477:6:4",
|
|
601
|
+
"type": ""
|
|
602
|
+
}
|
|
603
|
+
],
|
|
604
|
+
"returnVariables": [
|
|
605
|
+
{
|
|
606
|
+
"name": "tail",
|
|
607
|
+
"nodeType": "YulTypedName",
|
|
608
|
+
"src": "488:4:4",
|
|
609
|
+
"type": ""
|
|
610
|
+
}
|
|
611
|
+
],
|
|
612
|
+
"src": "396:226:4"
|
|
613
|
+
},
|
|
614
|
+
{
|
|
615
|
+
"body": {
|
|
616
|
+
"nodeType": "YulBlock",
|
|
617
|
+
"src": "659:152:4",
|
|
618
|
+
"statements": [
|
|
619
|
+
{
|
|
620
|
+
"expression": {
|
|
621
|
+
"arguments": [
|
|
622
|
+
{
|
|
623
|
+
"kind": "number",
|
|
624
|
+
"nodeType": "YulLiteral",
|
|
625
|
+
"src": "676:1:4",
|
|
626
|
+
"type": "",
|
|
627
|
+
"value": "0"
|
|
628
|
+
},
|
|
629
|
+
{
|
|
630
|
+
"kind": "number",
|
|
631
|
+
"nodeType": "YulLiteral",
|
|
632
|
+
"src": "679:77:4",
|
|
633
|
+
"type": "",
|
|
634
|
+
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
|
|
635
|
+
}
|
|
636
|
+
],
|
|
637
|
+
"functionName": {
|
|
638
|
+
"name": "mstore",
|
|
639
|
+
"nodeType": "YulIdentifier",
|
|
640
|
+
"src": "669:6:4"
|
|
641
|
+
},
|
|
642
|
+
"nodeType": "YulFunctionCall",
|
|
643
|
+
"src": "669:88:4"
|
|
644
|
+
},
|
|
645
|
+
"nodeType": "YulExpressionStatement",
|
|
646
|
+
"src": "669:88:4"
|
|
647
|
+
},
|
|
648
|
+
{
|
|
649
|
+
"expression": {
|
|
650
|
+
"arguments": [
|
|
651
|
+
{
|
|
652
|
+
"kind": "number",
|
|
653
|
+
"nodeType": "YulLiteral",
|
|
654
|
+
"src": "773:1:4",
|
|
655
|
+
"type": "",
|
|
656
|
+
"value": "4"
|
|
657
|
+
},
|
|
658
|
+
{
|
|
659
|
+
"kind": "number",
|
|
660
|
+
"nodeType": "YulLiteral",
|
|
661
|
+
"src": "776:4:4",
|
|
662
|
+
"type": "",
|
|
663
|
+
"value": "0x41"
|
|
664
|
+
}
|
|
665
|
+
],
|
|
666
|
+
"functionName": {
|
|
667
|
+
"name": "mstore",
|
|
668
|
+
"nodeType": "YulIdentifier",
|
|
669
|
+
"src": "766:6:4"
|
|
670
|
+
},
|
|
671
|
+
"nodeType": "YulFunctionCall",
|
|
672
|
+
"src": "766:15:4"
|
|
673
|
+
},
|
|
674
|
+
"nodeType": "YulExpressionStatement",
|
|
675
|
+
"src": "766:15:4"
|
|
676
|
+
},
|
|
677
|
+
{
|
|
678
|
+
"expression": {
|
|
679
|
+
"arguments": [
|
|
680
|
+
{
|
|
681
|
+
"kind": "number",
|
|
682
|
+
"nodeType": "YulLiteral",
|
|
683
|
+
"src": "797:1:4",
|
|
684
|
+
"type": "",
|
|
685
|
+
"value": "0"
|
|
686
|
+
},
|
|
687
|
+
{
|
|
688
|
+
"kind": "number",
|
|
689
|
+
"nodeType": "YulLiteral",
|
|
690
|
+
"src": "800:4:4",
|
|
691
|
+
"type": "",
|
|
692
|
+
"value": "0x24"
|
|
693
|
+
}
|
|
694
|
+
],
|
|
695
|
+
"functionName": {
|
|
696
|
+
"name": "revert",
|
|
697
|
+
"nodeType": "YulIdentifier",
|
|
698
|
+
"src": "790:6:4"
|
|
699
|
+
},
|
|
700
|
+
"nodeType": "YulFunctionCall",
|
|
701
|
+
"src": "790:15:4"
|
|
702
|
+
},
|
|
703
|
+
"nodeType": "YulExpressionStatement",
|
|
704
|
+
"src": "790:15:4"
|
|
705
|
+
}
|
|
706
|
+
]
|
|
707
|
+
},
|
|
708
|
+
"name": "panic_error_0x41",
|
|
709
|
+
"nodeType": "YulFunctionDefinition",
|
|
710
|
+
"src": "627:184:4"
|
|
711
|
+
},
|
|
712
|
+
{
|
|
713
|
+
"body": {
|
|
714
|
+
"nodeType": "YulBlock",
|
|
715
|
+
"src": "912:952:4",
|
|
716
|
+
"statements": [
|
|
717
|
+
{
|
|
718
|
+
"body": {
|
|
719
|
+
"nodeType": "YulBlock",
|
|
720
|
+
"src": "958:16:4",
|
|
721
|
+
"statements": [
|
|
722
|
+
{
|
|
723
|
+
"expression": {
|
|
724
|
+
"arguments": [
|
|
725
|
+
{
|
|
726
|
+
"kind": "number",
|
|
727
|
+
"nodeType": "YulLiteral",
|
|
728
|
+
"src": "967:1:4",
|
|
729
|
+
"type": "",
|
|
730
|
+
"value": "0"
|
|
731
|
+
},
|
|
732
|
+
{
|
|
733
|
+
"kind": "number",
|
|
734
|
+
"nodeType": "YulLiteral",
|
|
735
|
+
"src": "970:1:4",
|
|
736
|
+
"type": "",
|
|
737
|
+
"value": "0"
|
|
738
|
+
}
|
|
739
|
+
],
|
|
740
|
+
"functionName": {
|
|
741
|
+
"name": "revert",
|
|
742
|
+
"nodeType": "YulIdentifier",
|
|
743
|
+
"src": "960:6:4"
|
|
744
|
+
},
|
|
745
|
+
"nodeType": "YulFunctionCall",
|
|
746
|
+
"src": "960:12:4"
|
|
747
|
+
},
|
|
748
|
+
"nodeType": "YulExpressionStatement",
|
|
749
|
+
"src": "960:12:4"
|
|
750
|
+
}
|
|
751
|
+
]
|
|
752
|
+
},
|
|
753
|
+
"condition": {
|
|
754
|
+
"arguments": [
|
|
755
|
+
{
|
|
756
|
+
"arguments": [
|
|
757
|
+
{
|
|
758
|
+
"name": "dataEnd",
|
|
759
|
+
"nodeType": "YulIdentifier",
|
|
760
|
+
"src": "933:7:4"
|
|
761
|
+
},
|
|
762
|
+
{
|
|
763
|
+
"name": "headStart",
|
|
764
|
+
"nodeType": "YulIdentifier",
|
|
765
|
+
"src": "942:9:4"
|
|
766
|
+
}
|
|
767
|
+
],
|
|
768
|
+
"functionName": {
|
|
769
|
+
"name": "sub",
|
|
770
|
+
"nodeType": "YulIdentifier",
|
|
771
|
+
"src": "929:3:4"
|
|
772
|
+
},
|
|
773
|
+
"nodeType": "YulFunctionCall",
|
|
774
|
+
"src": "929:23:4"
|
|
775
|
+
},
|
|
776
|
+
{
|
|
777
|
+
"kind": "number",
|
|
778
|
+
"nodeType": "YulLiteral",
|
|
779
|
+
"src": "954:2:4",
|
|
780
|
+
"type": "",
|
|
781
|
+
"value": "64"
|
|
782
|
+
}
|
|
783
|
+
],
|
|
784
|
+
"functionName": {
|
|
785
|
+
"name": "slt",
|
|
786
|
+
"nodeType": "YulIdentifier",
|
|
787
|
+
"src": "925:3:4"
|
|
788
|
+
},
|
|
789
|
+
"nodeType": "YulFunctionCall",
|
|
790
|
+
"src": "925:32:4"
|
|
791
|
+
},
|
|
792
|
+
"nodeType": "YulIf",
|
|
793
|
+
"src": "922:52:4"
|
|
794
|
+
},
|
|
795
|
+
{
|
|
796
|
+
"nodeType": "YulAssignment",
|
|
797
|
+
"src": "983:33:4",
|
|
798
|
+
"value": {
|
|
799
|
+
"arguments": [
|
|
800
|
+
{
|
|
801
|
+
"name": "headStart",
|
|
802
|
+
"nodeType": "YulIdentifier",
|
|
803
|
+
"src": "1006:9:4"
|
|
804
|
+
}
|
|
805
|
+
],
|
|
806
|
+
"functionName": {
|
|
807
|
+
"name": "calldataload",
|
|
808
|
+
"nodeType": "YulIdentifier",
|
|
809
|
+
"src": "993:12:4"
|
|
810
|
+
},
|
|
811
|
+
"nodeType": "YulFunctionCall",
|
|
812
|
+
"src": "993:23:4"
|
|
813
|
+
},
|
|
814
|
+
"variableNames": [
|
|
815
|
+
{
|
|
816
|
+
"name": "value0",
|
|
817
|
+
"nodeType": "YulIdentifier",
|
|
818
|
+
"src": "983:6:4"
|
|
819
|
+
}
|
|
820
|
+
]
|
|
821
|
+
},
|
|
822
|
+
{
|
|
823
|
+
"nodeType": "YulVariableDeclaration",
|
|
824
|
+
"src": "1025:46:4",
|
|
825
|
+
"value": {
|
|
826
|
+
"arguments": [
|
|
827
|
+
{
|
|
828
|
+
"arguments": [
|
|
829
|
+
{
|
|
830
|
+
"name": "headStart",
|
|
831
|
+
"nodeType": "YulIdentifier",
|
|
832
|
+
"src": "1056:9:4"
|
|
833
|
+
},
|
|
834
|
+
{
|
|
835
|
+
"kind": "number",
|
|
836
|
+
"nodeType": "YulLiteral",
|
|
837
|
+
"src": "1067:2:4",
|
|
838
|
+
"type": "",
|
|
839
|
+
"value": "32"
|
|
840
|
+
}
|
|
841
|
+
],
|
|
842
|
+
"functionName": {
|
|
843
|
+
"name": "add",
|
|
844
|
+
"nodeType": "YulIdentifier",
|
|
845
|
+
"src": "1052:3:4"
|
|
846
|
+
},
|
|
847
|
+
"nodeType": "YulFunctionCall",
|
|
848
|
+
"src": "1052:18:4"
|
|
849
|
+
}
|
|
850
|
+
],
|
|
851
|
+
"functionName": {
|
|
852
|
+
"name": "calldataload",
|
|
853
|
+
"nodeType": "YulIdentifier",
|
|
854
|
+
"src": "1039:12:4"
|
|
855
|
+
},
|
|
856
|
+
"nodeType": "YulFunctionCall",
|
|
857
|
+
"src": "1039:32:4"
|
|
858
|
+
},
|
|
859
|
+
"variables": [
|
|
860
|
+
{
|
|
861
|
+
"name": "offset",
|
|
862
|
+
"nodeType": "YulTypedName",
|
|
863
|
+
"src": "1029:6:4",
|
|
864
|
+
"type": ""
|
|
865
|
+
}
|
|
866
|
+
]
|
|
867
|
+
},
|
|
868
|
+
{
|
|
869
|
+
"nodeType": "YulVariableDeclaration",
|
|
870
|
+
"src": "1080:28:4",
|
|
871
|
+
"value": {
|
|
872
|
+
"kind": "number",
|
|
873
|
+
"nodeType": "YulLiteral",
|
|
874
|
+
"src": "1090:18:4",
|
|
875
|
+
"type": "",
|
|
876
|
+
"value": "0xffffffffffffffff"
|
|
877
|
+
},
|
|
878
|
+
"variables": [
|
|
879
|
+
{
|
|
880
|
+
"name": "_1",
|
|
881
|
+
"nodeType": "YulTypedName",
|
|
882
|
+
"src": "1084:2:4",
|
|
883
|
+
"type": ""
|
|
884
|
+
}
|
|
885
|
+
]
|
|
886
|
+
},
|
|
887
|
+
{
|
|
888
|
+
"body": {
|
|
889
|
+
"nodeType": "YulBlock",
|
|
890
|
+
"src": "1135:16:4",
|
|
891
|
+
"statements": [
|
|
892
|
+
{
|
|
893
|
+
"expression": {
|
|
894
|
+
"arguments": [
|
|
895
|
+
{
|
|
896
|
+
"kind": "number",
|
|
897
|
+
"nodeType": "YulLiteral",
|
|
898
|
+
"src": "1144:1:4",
|
|
899
|
+
"type": "",
|
|
900
|
+
"value": "0"
|
|
901
|
+
},
|
|
902
|
+
{
|
|
903
|
+
"kind": "number",
|
|
904
|
+
"nodeType": "YulLiteral",
|
|
905
|
+
"src": "1147:1:4",
|
|
906
|
+
"type": "",
|
|
907
|
+
"value": "0"
|
|
908
|
+
}
|
|
909
|
+
],
|
|
910
|
+
"functionName": {
|
|
911
|
+
"name": "revert",
|
|
912
|
+
"nodeType": "YulIdentifier",
|
|
913
|
+
"src": "1137:6:4"
|
|
914
|
+
},
|
|
915
|
+
"nodeType": "YulFunctionCall",
|
|
916
|
+
"src": "1137:12:4"
|
|
917
|
+
},
|
|
918
|
+
"nodeType": "YulExpressionStatement",
|
|
919
|
+
"src": "1137:12:4"
|
|
920
|
+
}
|
|
921
|
+
]
|
|
922
|
+
},
|
|
923
|
+
"condition": {
|
|
924
|
+
"arguments": [
|
|
925
|
+
{
|
|
926
|
+
"name": "offset",
|
|
927
|
+
"nodeType": "YulIdentifier",
|
|
928
|
+
"src": "1123:6:4"
|
|
929
|
+
},
|
|
930
|
+
{
|
|
931
|
+
"name": "_1",
|
|
932
|
+
"nodeType": "YulIdentifier",
|
|
933
|
+
"src": "1131:2:4"
|
|
934
|
+
}
|
|
935
|
+
],
|
|
936
|
+
"functionName": {
|
|
937
|
+
"name": "gt",
|
|
938
|
+
"nodeType": "YulIdentifier",
|
|
939
|
+
"src": "1120:2:4"
|
|
940
|
+
},
|
|
941
|
+
"nodeType": "YulFunctionCall",
|
|
942
|
+
"src": "1120:14:4"
|
|
943
|
+
},
|
|
944
|
+
"nodeType": "YulIf",
|
|
945
|
+
"src": "1117:34:4"
|
|
946
|
+
},
|
|
947
|
+
{
|
|
948
|
+
"nodeType": "YulVariableDeclaration",
|
|
949
|
+
"src": "1160:32:4",
|
|
950
|
+
"value": {
|
|
951
|
+
"arguments": [
|
|
952
|
+
{
|
|
953
|
+
"name": "headStart",
|
|
954
|
+
"nodeType": "YulIdentifier",
|
|
955
|
+
"src": "1174:9:4"
|
|
956
|
+
},
|
|
957
|
+
{
|
|
958
|
+
"name": "offset",
|
|
959
|
+
"nodeType": "YulIdentifier",
|
|
960
|
+
"src": "1185:6:4"
|
|
961
|
+
}
|
|
962
|
+
],
|
|
963
|
+
"functionName": {
|
|
964
|
+
"name": "add",
|
|
965
|
+
"nodeType": "YulIdentifier",
|
|
966
|
+
"src": "1170:3:4"
|
|
967
|
+
},
|
|
968
|
+
"nodeType": "YulFunctionCall",
|
|
969
|
+
"src": "1170:22:4"
|
|
970
|
+
},
|
|
971
|
+
"variables": [
|
|
972
|
+
{
|
|
973
|
+
"name": "_2",
|
|
974
|
+
"nodeType": "YulTypedName",
|
|
975
|
+
"src": "1164:2:4",
|
|
976
|
+
"type": ""
|
|
977
|
+
}
|
|
978
|
+
]
|
|
979
|
+
},
|
|
980
|
+
{
|
|
981
|
+
"body": {
|
|
982
|
+
"nodeType": "YulBlock",
|
|
983
|
+
"src": "1240:16:4",
|
|
984
|
+
"statements": [
|
|
985
|
+
{
|
|
986
|
+
"expression": {
|
|
987
|
+
"arguments": [
|
|
988
|
+
{
|
|
989
|
+
"kind": "number",
|
|
990
|
+
"nodeType": "YulLiteral",
|
|
991
|
+
"src": "1249:1:4",
|
|
992
|
+
"type": "",
|
|
993
|
+
"value": "0"
|
|
994
|
+
},
|
|
995
|
+
{
|
|
996
|
+
"kind": "number",
|
|
997
|
+
"nodeType": "YulLiteral",
|
|
998
|
+
"src": "1252:1:4",
|
|
999
|
+
"type": "",
|
|
1000
|
+
"value": "0"
|
|
1001
|
+
}
|
|
1002
|
+
],
|
|
1003
|
+
"functionName": {
|
|
1004
|
+
"name": "revert",
|
|
1005
|
+
"nodeType": "YulIdentifier",
|
|
1006
|
+
"src": "1242:6:4"
|
|
1007
|
+
},
|
|
1008
|
+
"nodeType": "YulFunctionCall",
|
|
1009
|
+
"src": "1242:12:4"
|
|
1010
|
+
},
|
|
1011
|
+
"nodeType": "YulExpressionStatement",
|
|
1012
|
+
"src": "1242:12:4"
|
|
1013
|
+
}
|
|
1014
|
+
]
|
|
1015
|
+
},
|
|
1016
|
+
"condition": {
|
|
1017
|
+
"arguments": [
|
|
1018
|
+
{
|
|
1019
|
+
"arguments": [
|
|
1020
|
+
{
|
|
1021
|
+
"arguments": [
|
|
1022
|
+
{
|
|
1023
|
+
"name": "_2",
|
|
1024
|
+
"nodeType": "YulIdentifier",
|
|
1025
|
+
"src": "1219:2:4"
|
|
1026
|
+
},
|
|
1027
|
+
{
|
|
1028
|
+
"kind": "number",
|
|
1029
|
+
"nodeType": "YulLiteral",
|
|
1030
|
+
"src": "1223:4:4",
|
|
1031
|
+
"type": "",
|
|
1032
|
+
"value": "0x1f"
|
|
1033
|
+
}
|
|
1034
|
+
],
|
|
1035
|
+
"functionName": {
|
|
1036
|
+
"name": "add",
|
|
1037
|
+
"nodeType": "YulIdentifier",
|
|
1038
|
+
"src": "1215:3:4"
|
|
1039
|
+
},
|
|
1040
|
+
"nodeType": "YulFunctionCall",
|
|
1041
|
+
"src": "1215:13:4"
|
|
1042
|
+
},
|
|
1043
|
+
{
|
|
1044
|
+
"name": "dataEnd",
|
|
1045
|
+
"nodeType": "YulIdentifier",
|
|
1046
|
+
"src": "1230:7:4"
|
|
1047
|
+
}
|
|
1048
|
+
],
|
|
1049
|
+
"functionName": {
|
|
1050
|
+
"name": "slt",
|
|
1051
|
+
"nodeType": "YulIdentifier",
|
|
1052
|
+
"src": "1211:3:4"
|
|
1053
|
+
},
|
|
1054
|
+
"nodeType": "YulFunctionCall",
|
|
1055
|
+
"src": "1211:27:4"
|
|
1056
|
+
}
|
|
1057
|
+
],
|
|
1058
|
+
"functionName": {
|
|
1059
|
+
"name": "iszero",
|
|
1060
|
+
"nodeType": "YulIdentifier",
|
|
1061
|
+
"src": "1204:6:4"
|
|
1062
|
+
},
|
|
1063
|
+
"nodeType": "YulFunctionCall",
|
|
1064
|
+
"src": "1204:35:4"
|
|
1065
|
+
},
|
|
1066
|
+
"nodeType": "YulIf",
|
|
1067
|
+
"src": "1201:55:4"
|
|
1068
|
+
},
|
|
1069
|
+
{
|
|
1070
|
+
"nodeType": "YulVariableDeclaration",
|
|
1071
|
+
"src": "1265:26:4",
|
|
1072
|
+
"value": {
|
|
1073
|
+
"arguments": [
|
|
1074
|
+
{
|
|
1075
|
+
"name": "_2",
|
|
1076
|
+
"nodeType": "YulIdentifier",
|
|
1077
|
+
"src": "1288:2:4"
|
|
1078
|
+
}
|
|
1079
|
+
],
|
|
1080
|
+
"functionName": {
|
|
1081
|
+
"name": "calldataload",
|
|
1082
|
+
"nodeType": "YulIdentifier",
|
|
1083
|
+
"src": "1275:12:4"
|
|
1084
|
+
},
|
|
1085
|
+
"nodeType": "YulFunctionCall",
|
|
1086
|
+
"src": "1275:16:4"
|
|
1087
|
+
},
|
|
1088
|
+
"variables": [
|
|
1089
|
+
{
|
|
1090
|
+
"name": "_3",
|
|
1091
|
+
"nodeType": "YulTypedName",
|
|
1092
|
+
"src": "1269:2:4",
|
|
1093
|
+
"type": ""
|
|
1094
|
+
}
|
|
1095
|
+
]
|
|
1096
|
+
},
|
|
1097
|
+
{
|
|
1098
|
+
"body": {
|
|
1099
|
+
"nodeType": "YulBlock",
|
|
1100
|
+
"src": "1314:22:4",
|
|
1101
|
+
"statements": [
|
|
1102
|
+
{
|
|
1103
|
+
"expression": {
|
|
1104
|
+
"arguments": [],
|
|
1105
|
+
"functionName": {
|
|
1106
|
+
"name": "panic_error_0x41",
|
|
1107
|
+
"nodeType": "YulIdentifier",
|
|
1108
|
+
"src": "1316:16:4"
|
|
1109
|
+
},
|
|
1110
|
+
"nodeType": "YulFunctionCall",
|
|
1111
|
+
"src": "1316:18:4"
|
|
1112
|
+
},
|
|
1113
|
+
"nodeType": "YulExpressionStatement",
|
|
1114
|
+
"src": "1316:18:4"
|
|
1115
|
+
}
|
|
1116
|
+
]
|
|
1117
|
+
},
|
|
1118
|
+
"condition": {
|
|
1119
|
+
"arguments": [
|
|
1120
|
+
{
|
|
1121
|
+
"name": "_3",
|
|
1122
|
+
"nodeType": "YulIdentifier",
|
|
1123
|
+
"src": "1306:2:4"
|
|
1124
|
+
},
|
|
1125
|
+
{
|
|
1126
|
+
"name": "_1",
|
|
1127
|
+
"nodeType": "YulIdentifier",
|
|
1128
|
+
"src": "1310:2:4"
|
|
1129
|
+
}
|
|
1130
|
+
],
|
|
1131
|
+
"functionName": {
|
|
1132
|
+
"name": "gt",
|
|
1133
|
+
"nodeType": "YulIdentifier",
|
|
1134
|
+
"src": "1303:2:4"
|
|
1135
|
+
},
|
|
1136
|
+
"nodeType": "YulFunctionCall",
|
|
1137
|
+
"src": "1303:10:4"
|
|
1138
|
+
},
|
|
1139
|
+
"nodeType": "YulIf",
|
|
1140
|
+
"src": "1300:36:4"
|
|
1141
|
+
},
|
|
1142
|
+
{
|
|
1143
|
+
"nodeType": "YulVariableDeclaration",
|
|
1144
|
+
"src": "1345:76:4",
|
|
1145
|
+
"value": {
|
|
1146
|
+
"kind": "number",
|
|
1147
|
+
"nodeType": "YulLiteral",
|
|
1148
|
+
"src": "1355:66:4",
|
|
1149
|
+
"type": "",
|
|
1150
|
+
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"
|
|
1151
|
+
},
|
|
1152
|
+
"variables": [
|
|
1153
|
+
{
|
|
1154
|
+
"name": "_4",
|
|
1155
|
+
"nodeType": "YulTypedName",
|
|
1156
|
+
"src": "1349:2:4",
|
|
1157
|
+
"type": ""
|
|
1158
|
+
}
|
|
1159
|
+
]
|
|
1160
|
+
},
|
|
1161
|
+
{
|
|
1162
|
+
"nodeType": "YulVariableDeclaration",
|
|
1163
|
+
"src": "1430:23:4",
|
|
1164
|
+
"value": {
|
|
1165
|
+
"arguments": [
|
|
1166
|
+
{
|
|
1167
|
+
"kind": "number",
|
|
1168
|
+
"nodeType": "YulLiteral",
|
|
1169
|
+
"src": "1450:2:4",
|
|
1170
|
+
"type": "",
|
|
1171
|
+
"value": "64"
|
|
1172
|
+
}
|
|
1173
|
+
],
|
|
1174
|
+
"functionName": {
|
|
1175
|
+
"name": "mload",
|
|
1176
|
+
"nodeType": "YulIdentifier",
|
|
1177
|
+
"src": "1444:5:4"
|
|
1178
|
+
},
|
|
1179
|
+
"nodeType": "YulFunctionCall",
|
|
1180
|
+
"src": "1444:9:4"
|
|
1181
|
+
},
|
|
1182
|
+
"variables": [
|
|
1183
|
+
{
|
|
1184
|
+
"name": "memPtr",
|
|
1185
|
+
"nodeType": "YulTypedName",
|
|
1186
|
+
"src": "1434:6:4",
|
|
1187
|
+
"type": ""
|
|
1188
|
+
}
|
|
1189
|
+
]
|
|
1190
|
+
},
|
|
1191
|
+
{
|
|
1192
|
+
"nodeType": "YulVariableDeclaration",
|
|
1193
|
+
"src": "1462:71:4",
|
|
1194
|
+
"value": {
|
|
1195
|
+
"arguments": [
|
|
1196
|
+
{
|
|
1197
|
+
"name": "memPtr",
|
|
1198
|
+
"nodeType": "YulIdentifier",
|
|
1199
|
+
"src": "1484:6:4"
|
|
1200
|
+
},
|
|
1201
|
+
{
|
|
1202
|
+
"arguments": [
|
|
1203
|
+
{
|
|
1204
|
+
"arguments": [
|
|
1205
|
+
{
|
|
1206
|
+
"arguments": [
|
|
1207
|
+
{
|
|
1208
|
+
"arguments": [
|
|
1209
|
+
{
|
|
1210
|
+
"name": "_3",
|
|
1211
|
+
"nodeType": "YulIdentifier",
|
|
1212
|
+
"src": "1508:2:4"
|
|
1213
|
+
},
|
|
1214
|
+
{
|
|
1215
|
+
"kind": "number",
|
|
1216
|
+
"nodeType": "YulLiteral",
|
|
1217
|
+
"src": "1512:4:4",
|
|
1218
|
+
"type": "",
|
|
1219
|
+
"value": "0x1f"
|
|
1220
|
+
}
|
|
1221
|
+
],
|
|
1222
|
+
"functionName": {
|
|
1223
|
+
"name": "add",
|
|
1224
|
+
"nodeType": "YulIdentifier",
|
|
1225
|
+
"src": "1504:3:4"
|
|
1226
|
+
},
|
|
1227
|
+
"nodeType": "YulFunctionCall",
|
|
1228
|
+
"src": "1504:13:4"
|
|
1229
|
+
},
|
|
1230
|
+
{
|
|
1231
|
+
"name": "_4",
|
|
1232
|
+
"nodeType": "YulIdentifier",
|
|
1233
|
+
"src": "1519:2:4"
|
|
1234
|
+
}
|
|
1235
|
+
],
|
|
1236
|
+
"functionName": {
|
|
1237
|
+
"name": "and",
|
|
1238
|
+
"nodeType": "YulIdentifier",
|
|
1239
|
+
"src": "1500:3:4"
|
|
1240
|
+
},
|
|
1241
|
+
"nodeType": "YulFunctionCall",
|
|
1242
|
+
"src": "1500:22:4"
|
|
1243
|
+
},
|
|
1244
|
+
{
|
|
1245
|
+
"kind": "number",
|
|
1246
|
+
"nodeType": "YulLiteral",
|
|
1247
|
+
"src": "1524:2:4",
|
|
1248
|
+
"type": "",
|
|
1249
|
+
"value": "63"
|
|
1250
|
+
}
|
|
1251
|
+
],
|
|
1252
|
+
"functionName": {
|
|
1253
|
+
"name": "add",
|
|
1254
|
+
"nodeType": "YulIdentifier",
|
|
1255
|
+
"src": "1496:3:4"
|
|
1256
|
+
},
|
|
1257
|
+
"nodeType": "YulFunctionCall",
|
|
1258
|
+
"src": "1496:31:4"
|
|
1259
|
+
},
|
|
1260
|
+
{
|
|
1261
|
+
"name": "_4",
|
|
1262
|
+
"nodeType": "YulIdentifier",
|
|
1263
|
+
"src": "1529:2:4"
|
|
1264
|
+
}
|
|
1265
|
+
],
|
|
1266
|
+
"functionName": {
|
|
1267
|
+
"name": "and",
|
|
1268
|
+
"nodeType": "YulIdentifier",
|
|
1269
|
+
"src": "1492:3:4"
|
|
1270
|
+
},
|
|
1271
|
+
"nodeType": "YulFunctionCall",
|
|
1272
|
+
"src": "1492:40:4"
|
|
1273
|
+
}
|
|
1274
|
+
],
|
|
1275
|
+
"functionName": {
|
|
1276
|
+
"name": "add",
|
|
1277
|
+
"nodeType": "YulIdentifier",
|
|
1278
|
+
"src": "1480:3:4"
|
|
1279
|
+
},
|
|
1280
|
+
"nodeType": "YulFunctionCall",
|
|
1281
|
+
"src": "1480:53:4"
|
|
1282
|
+
},
|
|
1283
|
+
"variables": [
|
|
1284
|
+
{
|
|
1285
|
+
"name": "newFreePtr",
|
|
1286
|
+
"nodeType": "YulTypedName",
|
|
1287
|
+
"src": "1466:10:4",
|
|
1288
|
+
"type": ""
|
|
1289
|
+
}
|
|
1290
|
+
]
|
|
1291
|
+
},
|
|
1292
|
+
{
|
|
1293
|
+
"body": {
|
|
1294
|
+
"nodeType": "YulBlock",
|
|
1295
|
+
"src": "1592:22:4",
|
|
1296
|
+
"statements": [
|
|
1297
|
+
{
|
|
1298
|
+
"expression": {
|
|
1299
|
+
"arguments": [],
|
|
1300
|
+
"functionName": {
|
|
1301
|
+
"name": "panic_error_0x41",
|
|
1302
|
+
"nodeType": "YulIdentifier",
|
|
1303
|
+
"src": "1594:16:4"
|
|
1304
|
+
},
|
|
1305
|
+
"nodeType": "YulFunctionCall",
|
|
1306
|
+
"src": "1594:18:4"
|
|
1307
|
+
},
|
|
1308
|
+
"nodeType": "YulExpressionStatement",
|
|
1309
|
+
"src": "1594:18:4"
|
|
1310
|
+
}
|
|
1311
|
+
]
|
|
1312
|
+
},
|
|
1313
|
+
"condition": {
|
|
1314
|
+
"arguments": [
|
|
1315
|
+
{
|
|
1316
|
+
"arguments": [
|
|
1317
|
+
{
|
|
1318
|
+
"name": "newFreePtr",
|
|
1319
|
+
"nodeType": "YulIdentifier",
|
|
1320
|
+
"src": "1551:10:4"
|
|
1321
|
+
},
|
|
1322
|
+
{
|
|
1323
|
+
"name": "_1",
|
|
1324
|
+
"nodeType": "YulIdentifier",
|
|
1325
|
+
"src": "1563:2:4"
|
|
1326
|
+
}
|
|
1327
|
+
],
|
|
1328
|
+
"functionName": {
|
|
1329
|
+
"name": "gt",
|
|
1330
|
+
"nodeType": "YulIdentifier",
|
|
1331
|
+
"src": "1548:2:4"
|
|
1332
|
+
},
|
|
1333
|
+
"nodeType": "YulFunctionCall",
|
|
1334
|
+
"src": "1548:18:4"
|
|
1335
|
+
},
|
|
1336
|
+
{
|
|
1337
|
+
"arguments": [
|
|
1338
|
+
{
|
|
1339
|
+
"name": "newFreePtr",
|
|
1340
|
+
"nodeType": "YulIdentifier",
|
|
1341
|
+
"src": "1571:10:4"
|
|
1342
|
+
},
|
|
1343
|
+
{
|
|
1344
|
+
"name": "memPtr",
|
|
1345
|
+
"nodeType": "YulIdentifier",
|
|
1346
|
+
"src": "1583:6:4"
|
|
1347
|
+
}
|
|
1348
|
+
],
|
|
1349
|
+
"functionName": {
|
|
1350
|
+
"name": "lt",
|
|
1351
|
+
"nodeType": "YulIdentifier",
|
|
1352
|
+
"src": "1568:2:4"
|
|
1353
|
+
},
|
|
1354
|
+
"nodeType": "YulFunctionCall",
|
|
1355
|
+
"src": "1568:22:4"
|
|
1356
|
+
}
|
|
1357
|
+
],
|
|
1358
|
+
"functionName": {
|
|
1359
|
+
"name": "or",
|
|
1360
|
+
"nodeType": "YulIdentifier",
|
|
1361
|
+
"src": "1545:2:4"
|
|
1362
|
+
},
|
|
1363
|
+
"nodeType": "YulFunctionCall",
|
|
1364
|
+
"src": "1545:46:4"
|
|
1365
|
+
},
|
|
1366
|
+
"nodeType": "YulIf",
|
|
1367
|
+
"src": "1542:72:4"
|
|
1368
|
+
},
|
|
1369
|
+
{
|
|
1370
|
+
"expression": {
|
|
1371
|
+
"arguments": [
|
|
1372
|
+
{
|
|
1373
|
+
"kind": "number",
|
|
1374
|
+
"nodeType": "YulLiteral",
|
|
1375
|
+
"src": "1630:2:4",
|
|
1376
|
+
"type": "",
|
|
1377
|
+
"value": "64"
|
|
1378
|
+
},
|
|
1379
|
+
{
|
|
1380
|
+
"name": "newFreePtr",
|
|
1381
|
+
"nodeType": "YulIdentifier",
|
|
1382
|
+
"src": "1634:10:4"
|
|
1383
|
+
}
|
|
1384
|
+
],
|
|
1385
|
+
"functionName": {
|
|
1386
|
+
"name": "mstore",
|
|
1387
|
+
"nodeType": "YulIdentifier",
|
|
1388
|
+
"src": "1623:6:4"
|
|
1389
|
+
},
|
|
1390
|
+
"nodeType": "YulFunctionCall",
|
|
1391
|
+
"src": "1623:22:4"
|
|
1392
|
+
},
|
|
1393
|
+
"nodeType": "YulExpressionStatement",
|
|
1394
|
+
"src": "1623:22:4"
|
|
1395
|
+
},
|
|
1396
|
+
{
|
|
1397
|
+
"expression": {
|
|
1398
|
+
"arguments": [
|
|
1399
|
+
{
|
|
1400
|
+
"name": "memPtr",
|
|
1401
|
+
"nodeType": "YulIdentifier",
|
|
1402
|
+
"src": "1661:6:4"
|
|
1403
|
+
},
|
|
1404
|
+
{
|
|
1405
|
+
"name": "_3",
|
|
1406
|
+
"nodeType": "YulIdentifier",
|
|
1407
|
+
"src": "1669:2:4"
|
|
1408
|
+
}
|
|
1409
|
+
],
|
|
1410
|
+
"functionName": {
|
|
1411
|
+
"name": "mstore",
|
|
1412
|
+
"nodeType": "YulIdentifier",
|
|
1413
|
+
"src": "1654:6:4"
|
|
1414
|
+
},
|
|
1415
|
+
"nodeType": "YulFunctionCall",
|
|
1416
|
+
"src": "1654:18:4"
|
|
1417
|
+
},
|
|
1418
|
+
"nodeType": "YulExpressionStatement",
|
|
1419
|
+
"src": "1654:18:4"
|
|
1420
|
+
},
|
|
1421
|
+
{
|
|
1422
|
+
"body": {
|
|
1423
|
+
"nodeType": "YulBlock",
|
|
1424
|
+
"src": "1718:16:4",
|
|
1425
|
+
"statements": [
|
|
1426
|
+
{
|
|
1427
|
+
"expression": {
|
|
1428
|
+
"arguments": [
|
|
1429
|
+
{
|
|
1430
|
+
"kind": "number",
|
|
1431
|
+
"nodeType": "YulLiteral",
|
|
1432
|
+
"src": "1727:1:4",
|
|
1433
|
+
"type": "",
|
|
1434
|
+
"value": "0"
|
|
1435
|
+
},
|
|
1436
|
+
{
|
|
1437
|
+
"kind": "number",
|
|
1438
|
+
"nodeType": "YulLiteral",
|
|
1439
|
+
"src": "1730:1:4",
|
|
1440
|
+
"type": "",
|
|
1441
|
+
"value": "0"
|
|
1442
|
+
}
|
|
1443
|
+
],
|
|
1444
|
+
"functionName": {
|
|
1445
|
+
"name": "revert",
|
|
1446
|
+
"nodeType": "YulIdentifier",
|
|
1447
|
+
"src": "1720:6:4"
|
|
1448
|
+
},
|
|
1449
|
+
"nodeType": "YulFunctionCall",
|
|
1450
|
+
"src": "1720:12:4"
|
|
1451
|
+
},
|
|
1452
|
+
"nodeType": "YulExpressionStatement",
|
|
1453
|
+
"src": "1720:12:4"
|
|
1454
|
+
}
|
|
1455
|
+
]
|
|
1456
|
+
},
|
|
1457
|
+
"condition": {
|
|
1458
|
+
"arguments": [
|
|
1459
|
+
{
|
|
1460
|
+
"arguments": [
|
|
1461
|
+
{
|
|
1462
|
+
"arguments": [
|
|
1463
|
+
{
|
|
1464
|
+
"name": "_2",
|
|
1465
|
+
"nodeType": "YulIdentifier",
|
|
1466
|
+
"src": "1695:2:4"
|
|
1467
|
+
},
|
|
1468
|
+
{
|
|
1469
|
+
"name": "_3",
|
|
1470
|
+
"nodeType": "YulIdentifier",
|
|
1471
|
+
"src": "1699:2:4"
|
|
1472
|
+
}
|
|
1473
|
+
],
|
|
1474
|
+
"functionName": {
|
|
1475
|
+
"name": "add",
|
|
1476
|
+
"nodeType": "YulIdentifier",
|
|
1477
|
+
"src": "1691:3:4"
|
|
1478
|
+
},
|
|
1479
|
+
"nodeType": "YulFunctionCall",
|
|
1480
|
+
"src": "1691:11:4"
|
|
1481
|
+
},
|
|
1482
|
+
{
|
|
1483
|
+
"kind": "number",
|
|
1484
|
+
"nodeType": "YulLiteral",
|
|
1485
|
+
"src": "1704:2:4",
|
|
1486
|
+
"type": "",
|
|
1487
|
+
"value": "32"
|
|
1488
|
+
}
|
|
1489
|
+
],
|
|
1490
|
+
"functionName": {
|
|
1491
|
+
"name": "add",
|
|
1492
|
+
"nodeType": "YulIdentifier",
|
|
1493
|
+
"src": "1687:3:4"
|
|
1494
|
+
},
|
|
1495
|
+
"nodeType": "YulFunctionCall",
|
|
1496
|
+
"src": "1687:20:4"
|
|
1497
|
+
},
|
|
1498
|
+
{
|
|
1499
|
+
"name": "dataEnd",
|
|
1500
|
+
"nodeType": "YulIdentifier",
|
|
1501
|
+
"src": "1709:7:4"
|
|
1502
|
+
}
|
|
1503
|
+
],
|
|
1504
|
+
"functionName": {
|
|
1505
|
+
"name": "gt",
|
|
1506
|
+
"nodeType": "YulIdentifier",
|
|
1507
|
+
"src": "1684:2:4"
|
|
1508
|
+
},
|
|
1509
|
+
"nodeType": "YulFunctionCall",
|
|
1510
|
+
"src": "1684:33:4"
|
|
1511
|
+
},
|
|
1512
|
+
"nodeType": "YulIf",
|
|
1513
|
+
"src": "1681:53:4"
|
|
1514
|
+
},
|
|
1515
|
+
{
|
|
1516
|
+
"expression": {
|
|
1517
|
+
"arguments": [
|
|
1518
|
+
{
|
|
1519
|
+
"arguments": [
|
|
1520
|
+
{
|
|
1521
|
+
"name": "memPtr",
|
|
1522
|
+
"nodeType": "YulIdentifier",
|
|
1523
|
+
"src": "1760:6:4"
|
|
1524
|
+
},
|
|
1525
|
+
{
|
|
1526
|
+
"kind": "number",
|
|
1527
|
+
"nodeType": "YulLiteral",
|
|
1528
|
+
"src": "1768:2:4",
|
|
1529
|
+
"type": "",
|
|
1530
|
+
"value": "32"
|
|
1531
|
+
}
|
|
1532
|
+
],
|
|
1533
|
+
"functionName": {
|
|
1534
|
+
"name": "add",
|
|
1535
|
+
"nodeType": "YulIdentifier",
|
|
1536
|
+
"src": "1756:3:4"
|
|
1537
|
+
},
|
|
1538
|
+
"nodeType": "YulFunctionCall",
|
|
1539
|
+
"src": "1756:15:4"
|
|
1540
|
+
},
|
|
1541
|
+
{
|
|
1542
|
+
"arguments": [
|
|
1543
|
+
{
|
|
1544
|
+
"name": "_2",
|
|
1545
|
+
"nodeType": "YulIdentifier",
|
|
1546
|
+
"src": "1777:2:4"
|
|
1547
|
+
},
|
|
1548
|
+
{
|
|
1549
|
+
"kind": "number",
|
|
1550
|
+
"nodeType": "YulLiteral",
|
|
1551
|
+
"src": "1781:2:4",
|
|
1552
|
+
"type": "",
|
|
1553
|
+
"value": "32"
|
|
1554
|
+
}
|
|
1555
|
+
],
|
|
1556
|
+
"functionName": {
|
|
1557
|
+
"name": "add",
|
|
1558
|
+
"nodeType": "YulIdentifier",
|
|
1559
|
+
"src": "1773:3:4"
|
|
1560
|
+
},
|
|
1561
|
+
"nodeType": "YulFunctionCall",
|
|
1562
|
+
"src": "1773:11:4"
|
|
1563
|
+
},
|
|
1564
|
+
{
|
|
1565
|
+
"name": "_3",
|
|
1566
|
+
"nodeType": "YulIdentifier",
|
|
1567
|
+
"src": "1786:2:4"
|
|
1568
|
+
}
|
|
1569
|
+
],
|
|
1570
|
+
"functionName": {
|
|
1571
|
+
"name": "calldatacopy",
|
|
1572
|
+
"nodeType": "YulIdentifier",
|
|
1573
|
+
"src": "1743:12:4"
|
|
1574
|
+
},
|
|
1575
|
+
"nodeType": "YulFunctionCall",
|
|
1576
|
+
"src": "1743:46:4"
|
|
1577
|
+
},
|
|
1578
|
+
"nodeType": "YulExpressionStatement",
|
|
1579
|
+
"src": "1743:46:4"
|
|
1580
|
+
},
|
|
1581
|
+
{
|
|
1582
|
+
"expression": {
|
|
1583
|
+
"arguments": [
|
|
1584
|
+
{
|
|
1585
|
+
"arguments": [
|
|
1586
|
+
{
|
|
1587
|
+
"arguments": [
|
|
1588
|
+
{
|
|
1589
|
+
"name": "memPtr",
|
|
1590
|
+
"nodeType": "YulIdentifier",
|
|
1591
|
+
"src": "1813:6:4"
|
|
1592
|
+
},
|
|
1593
|
+
{
|
|
1594
|
+
"name": "_3",
|
|
1595
|
+
"nodeType": "YulIdentifier",
|
|
1596
|
+
"src": "1821:2:4"
|
|
1597
|
+
}
|
|
1598
|
+
],
|
|
1599
|
+
"functionName": {
|
|
1600
|
+
"name": "add",
|
|
1601
|
+
"nodeType": "YulIdentifier",
|
|
1602
|
+
"src": "1809:3:4"
|
|
1603
|
+
},
|
|
1604
|
+
"nodeType": "YulFunctionCall",
|
|
1605
|
+
"src": "1809:15:4"
|
|
1606
|
+
},
|
|
1607
|
+
{
|
|
1608
|
+
"kind": "number",
|
|
1609
|
+
"nodeType": "YulLiteral",
|
|
1610
|
+
"src": "1826:2:4",
|
|
1611
|
+
"type": "",
|
|
1612
|
+
"value": "32"
|
|
1613
|
+
}
|
|
1614
|
+
],
|
|
1615
|
+
"functionName": {
|
|
1616
|
+
"name": "add",
|
|
1617
|
+
"nodeType": "YulIdentifier",
|
|
1618
|
+
"src": "1805:3:4"
|
|
1619
|
+
},
|
|
1620
|
+
"nodeType": "YulFunctionCall",
|
|
1621
|
+
"src": "1805:24:4"
|
|
1622
|
+
},
|
|
1623
|
+
{
|
|
1624
|
+
"kind": "number",
|
|
1625
|
+
"nodeType": "YulLiteral",
|
|
1626
|
+
"src": "1831:1:4",
|
|
1627
|
+
"type": "",
|
|
1628
|
+
"value": "0"
|
|
1629
|
+
}
|
|
1630
|
+
],
|
|
1631
|
+
"functionName": {
|
|
1632
|
+
"name": "mstore",
|
|
1633
|
+
"nodeType": "YulIdentifier",
|
|
1634
|
+
"src": "1798:6:4"
|
|
1635
|
+
},
|
|
1636
|
+
"nodeType": "YulFunctionCall",
|
|
1637
|
+
"src": "1798:35:4"
|
|
1638
|
+
},
|
|
1639
|
+
"nodeType": "YulExpressionStatement",
|
|
1640
|
+
"src": "1798:35:4"
|
|
1641
|
+
},
|
|
1642
|
+
{
|
|
1643
|
+
"nodeType": "YulAssignment",
|
|
1644
|
+
"src": "1842:16:4",
|
|
1645
|
+
"value": {
|
|
1646
|
+
"name": "memPtr",
|
|
1647
|
+
"nodeType": "YulIdentifier",
|
|
1648
|
+
"src": "1852:6:4"
|
|
1649
|
+
},
|
|
1650
|
+
"variableNames": [
|
|
1651
|
+
{
|
|
1652
|
+
"name": "value1",
|
|
1653
|
+
"nodeType": "YulIdentifier",
|
|
1654
|
+
"src": "1842:6:4"
|
|
1655
|
+
}
|
|
1656
|
+
]
|
|
1657
|
+
}
|
|
1658
|
+
]
|
|
1659
|
+
},
|
|
1660
|
+
"name": "abi_decode_tuple_t_bytes32t_bytes_memory_ptr",
|
|
1661
|
+
"nodeType": "YulFunctionDefinition",
|
|
1662
|
+
"parameters": [
|
|
1663
|
+
{
|
|
1664
|
+
"name": "headStart",
|
|
1665
|
+
"nodeType": "YulTypedName",
|
|
1666
|
+
"src": "870:9:4",
|
|
1667
|
+
"type": ""
|
|
1668
|
+
},
|
|
1669
|
+
{
|
|
1670
|
+
"name": "dataEnd",
|
|
1671
|
+
"nodeType": "YulTypedName",
|
|
1672
|
+
"src": "881:7:4",
|
|
1673
|
+
"type": ""
|
|
1674
|
+
}
|
|
1675
|
+
],
|
|
1676
|
+
"returnVariables": [
|
|
1677
|
+
{
|
|
1678
|
+
"name": "value0",
|
|
1679
|
+
"nodeType": "YulTypedName",
|
|
1680
|
+
"src": "893:6:4",
|
|
1681
|
+
"type": ""
|
|
1682
|
+
},
|
|
1683
|
+
{
|
|
1684
|
+
"name": "value1",
|
|
1685
|
+
"nodeType": "YulTypedName",
|
|
1686
|
+
"src": "901:6:4",
|
|
1687
|
+
"type": ""
|
|
1688
|
+
}
|
|
1689
|
+
],
|
|
1690
|
+
"src": "816:1048:4"
|
|
1691
|
+
},
|
|
1692
|
+
{
|
|
1693
|
+
"body": {
|
|
1694
|
+
"nodeType": "YulBlock",
|
|
1695
|
+
"src": "2016:182:4",
|
|
1696
|
+
"statements": [
|
|
1697
|
+
{
|
|
1698
|
+
"expression": {
|
|
1699
|
+
"arguments": [
|
|
1700
|
+
{
|
|
1701
|
+
"name": "pos",
|
|
1702
|
+
"nodeType": "YulIdentifier",
|
|
1703
|
+
"src": "2033:3:4"
|
|
1704
|
+
},
|
|
1705
|
+
{
|
|
1706
|
+
"arguments": [
|
|
1707
|
+
{
|
|
1708
|
+
"arguments": [
|
|
1709
|
+
{
|
|
1710
|
+
"kind": "number",
|
|
1711
|
+
"nodeType": "YulLiteral",
|
|
1712
|
+
"src": "2046:2:4",
|
|
1713
|
+
"type": "",
|
|
1714
|
+
"value": "96"
|
|
1715
|
+
},
|
|
1716
|
+
{
|
|
1717
|
+
"name": "value0",
|
|
1718
|
+
"nodeType": "YulIdentifier",
|
|
1719
|
+
"src": "2050:6:4"
|
|
1720
|
+
}
|
|
1721
|
+
],
|
|
1722
|
+
"functionName": {
|
|
1723
|
+
"name": "shl",
|
|
1724
|
+
"nodeType": "YulIdentifier",
|
|
1725
|
+
"src": "2042:3:4"
|
|
1726
|
+
},
|
|
1727
|
+
"nodeType": "YulFunctionCall",
|
|
1728
|
+
"src": "2042:15:4"
|
|
1729
|
+
},
|
|
1730
|
+
{
|
|
1731
|
+
"kind": "number",
|
|
1732
|
+
"nodeType": "YulLiteral",
|
|
1733
|
+
"src": "2059:66:4",
|
|
1734
|
+
"type": "",
|
|
1735
|
+
"value": "0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"
|
|
1736
|
+
}
|
|
1737
|
+
],
|
|
1738
|
+
"functionName": {
|
|
1739
|
+
"name": "and",
|
|
1740
|
+
"nodeType": "YulIdentifier",
|
|
1741
|
+
"src": "2038:3:4"
|
|
1742
|
+
},
|
|
1743
|
+
"nodeType": "YulFunctionCall",
|
|
1744
|
+
"src": "2038:88:4"
|
|
1745
|
+
}
|
|
1746
|
+
],
|
|
1747
|
+
"functionName": {
|
|
1748
|
+
"name": "mstore",
|
|
1749
|
+
"nodeType": "YulIdentifier",
|
|
1750
|
+
"src": "2026:6:4"
|
|
1751
|
+
},
|
|
1752
|
+
"nodeType": "YulFunctionCall",
|
|
1753
|
+
"src": "2026:101:4"
|
|
1754
|
+
},
|
|
1755
|
+
"nodeType": "YulExpressionStatement",
|
|
1756
|
+
"src": "2026:101:4"
|
|
1757
|
+
},
|
|
1758
|
+
{
|
|
1759
|
+
"expression": {
|
|
1760
|
+
"arguments": [
|
|
1761
|
+
{
|
|
1762
|
+
"arguments": [
|
|
1763
|
+
{
|
|
1764
|
+
"name": "pos",
|
|
1765
|
+
"nodeType": "YulIdentifier",
|
|
1766
|
+
"src": "2147:3:4"
|
|
1767
|
+
},
|
|
1768
|
+
{
|
|
1769
|
+
"kind": "number",
|
|
1770
|
+
"nodeType": "YulLiteral",
|
|
1771
|
+
"src": "2152:2:4",
|
|
1772
|
+
"type": "",
|
|
1773
|
+
"value": "20"
|
|
1774
|
+
}
|
|
1775
|
+
],
|
|
1776
|
+
"functionName": {
|
|
1777
|
+
"name": "add",
|
|
1778
|
+
"nodeType": "YulIdentifier",
|
|
1779
|
+
"src": "2143:3:4"
|
|
1780
|
+
},
|
|
1781
|
+
"nodeType": "YulFunctionCall",
|
|
1782
|
+
"src": "2143:12:4"
|
|
1783
|
+
},
|
|
1784
|
+
{
|
|
1785
|
+
"name": "value1",
|
|
1786
|
+
"nodeType": "YulIdentifier",
|
|
1787
|
+
"src": "2157:6:4"
|
|
1788
|
+
}
|
|
1789
|
+
],
|
|
1790
|
+
"functionName": {
|
|
1791
|
+
"name": "mstore",
|
|
1792
|
+
"nodeType": "YulIdentifier",
|
|
1793
|
+
"src": "2136:6:4"
|
|
1794
|
+
},
|
|
1795
|
+
"nodeType": "YulFunctionCall",
|
|
1796
|
+
"src": "2136:28:4"
|
|
1797
|
+
},
|
|
1798
|
+
"nodeType": "YulExpressionStatement",
|
|
1799
|
+
"src": "2136:28:4"
|
|
1800
|
+
},
|
|
1801
|
+
{
|
|
1802
|
+
"nodeType": "YulAssignment",
|
|
1803
|
+
"src": "2173:19:4",
|
|
1804
|
+
"value": {
|
|
1805
|
+
"arguments": [
|
|
1806
|
+
{
|
|
1807
|
+
"name": "pos",
|
|
1808
|
+
"nodeType": "YulIdentifier",
|
|
1809
|
+
"src": "2184:3:4"
|
|
1810
|
+
},
|
|
1811
|
+
{
|
|
1812
|
+
"kind": "number",
|
|
1813
|
+
"nodeType": "YulLiteral",
|
|
1814
|
+
"src": "2189:2:4",
|
|
1815
|
+
"type": "",
|
|
1816
|
+
"value": "52"
|
|
1817
|
+
}
|
|
1818
|
+
],
|
|
1819
|
+
"functionName": {
|
|
1820
|
+
"name": "add",
|
|
1821
|
+
"nodeType": "YulIdentifier",
|
|
1822
|
+
"src": "2180:3:4"
|
|
1823
|
+
},
|
|
1824
|
+
"nodeType": "YulFunctionCall",
|
|
1825
|
+
"src": "2180:12:4"
|
|
1826
|
+
},
|
|
1827
|
+
"variableNames": [
|
|
1828
|
+
{
|
|
1829
|
+
"name": "end",
|
|
1830
|
+
"nodeType": "YulIdentifier",
|
|
1831
|
+
"src": "2173:3:4"
|
|
1832
|
+
}
|
|
1833
|
+
]
|
|
1834
|
+
}
|
|
1835
|
+
]
|
|
1836
|
+
},
|
|
1837
|
+
"name": "abi_encode_tuple_packed_t_address_t_bytes32__to_t_address_t_bytes32__nonPadded_inplace_fromStack_reversed",
|
|
1838
|
+
"nodeType": "YulFunctionDefinition",
|
|
1839
|
+
"parameters": [
|
|
1840
|
+
{
|
|
1841
|
+
"name": "pos",
|
|
1842
|
+
"nodeType": "YulTypedName",
|
|
1843
|
+
"src": "1984:3:4",
|
|
1844
|
+
"type": ""
|
|
1845
|
+
},
|
|
1846
|
+
{
|
|
1847
|
+
"name": "value1",
|
|
1848
|
+
"nodeType": "YulTypedName",
|
|
1849
|
+
"src": "1989:6:4",
|
|
1850
|
+
"type": ""
|
|
1851
|
+
},
|
|
1852
|
+
{
|
|
1853
|
+
"name": "value0",
|
|
1854
|
+
"nodeType": "YulTypedName",
|
|
1855
|
+
"src": "1997:6:4",
|
|
1856
|
+
"type": ""
|
|
1857
|
+
}
|
|
1858
|
+
],
|
|
1859
|
+
"returnVariables": [
|
|
1860
|
+
{
|
|
1861
|
+
"name": "end",
|
|
1862
|
+
"nodeType": "YulTypedName",
|
|
1863
|
+
"src": "2008:3:4",
|
|
1864
|
+
"type": ""
|
|
1865
|
+
}
|
|
1866
|
+
],
|
|
1867
|
+
"src": "1869:329:4"
|
|
1868
|
+
},
|
|
1869
|
+
{
|
|
1870
|
+
"body": {
|
|
1871
|
+
"nodeType": "YulBlock",
|
|
1872
|
+
"src": "2377:167:4",
|
|
1873
|
+
"statements": [
|
|
1874
|
+
{
|
|
1875
|
+
"expression": {
|
|
1876
|
+
"arguments": [
|
|
1877
|
+
{
|
|
1878
|
+
"name": "headStart",
|
|
1879
|
+
"nodeType": "YulIdentifier",
|
|
1880
|
+
"src": "2394:9:4"
|
|
1881
|
+
},
|
|
1882
|
+
{
|
|
1883
|
+
"kind": "number",
|
|
1884
|
+
"nodeType": "YulLiteral",
|
|
1885
|
+
"src": "2405:2:4",
|
|
1886
|
+
"type": "",
|
|
1887
|
+
"value": "32"
|
|
1888
|
+
}
|
|
1889
|
+
],
|
|
1890
|
+
"functionName": {
|
|
1891
|
+
"name": "mstore",
|
|
1892
|
+
"nodeType": "YulIdentifier",
|
|
1893
|
+
"src": "2387:6:4"
|
|
1894
|
+
},
|
|
1895
|
+
"nodeType": "YulFunctionCall",
|
|
1896
|
+
"src": "2387:21:4"
|
|
1897
|
+
},
|
|
1898
|
+
"nodeType": "YulExpressionStatement",
|
|
1899
|
+
"src": "2387:21:4"
|
|
1900
|
+
},
|
|
1901
|
+
{
|
|
1902
|
+
"expression": {
|
|
1903
|
+
"arguments": [
|
|
1904
|
+
{
|
|
1905
|
+
"arguments": [
|
|
1906
|
+
{
|
|
1907
|
+
"name": "headStart",
|
|
1908
|
+
"nodeType": "YulIdentifier",
|
|
1909
|
+
"src": "2428:9:4"
|
|
1910
|
+
},
|
|
1911
|
+
{
|
|
1912
|
+
"kind": "number",
|
|
1913
|
+
"nodeType": "YulLiteral",
|
|
1914
|
+
"src": "2439:2:4",
|
|
1915
|
+
"type": "",
|
|
1916
|
+
"value": "32"
|
|
1917
|
+
}
|
|
1918
|
+
],
|
|
1919
|
+
"functionName": {
|
|
1920
|
+
"name": "add",
|
|
1921
|
+
"nodeType": "YulIdentifier",
|
|
1922
|
+
"src": "2424:3:4"
|
|
1923
|
+
},
|
|
1924
|
+
"nodeType": "YulFunctionCall",
|
|
1925
|
+
"src": "2424:18:4"
|
|
1926
|
+
},
|
|
1927
|
+
{
|
|
1928
|
+
"kind": "number",
|
|
1929
|
+
"nodeType": "YulLiteral",
|
|
1930
|
+
"src": "2444:2:4",
|
|
1931
|
+
"type": "",
|
|
1932
|
+
"value": "17"
|
|
1933
|
+
}
|
|
1934
|
+
],
|
|
1935
|
+
"functionName": {
|
|
1936
|
+
"name": "mstore",
|
|
1937
|
+
"nodeType": "YulIdentifier",
|
|
1938
|
+
"src": "2417:6:4"
|
|
1939
|
+
},
|
|
1940
|
+
"nodeType": "YulFunctionCall",
|
|
1941
|
+
"src": "2417:30:4"
|
|
1942
|
+
},
|
|
1943
|
+
"nodeType": "YulExpressionStatement",
|
|
1944
|
+
"src": "2417:30:4"
|
|
1945
|
+
},
|
|
1946
|
+
{
|
|
1947
|
+
"expression": {
|
|
1948
|
+
"arguments": [
|
|
1949
|
+
{
|
|
1950
|
+
"arguments": [
|
|
1951
|
+
{
|
|
1952
|
+
"name": "headStart",
|
|
1953
|
+
"nodeType": "YulIdentifier",
|
|
1954
|
+
"src": "2467:9:4"
|
|
1955
|
+
},
|
|
1956
|
+
{
|
|
1957
|
+
"kind": "number",
|
|
1958
|
+
"nodeType": "YulLiteral",
|
|
1959
|
+
"src": "2478:2:4",
|
|
1960
|
+
"type": "",
|
|
1961
|
+
"value": "64"
|
|
1962
|
+
}
|
|
1963
|
+
],
|
|
1964
|
+
"functionName": {
|
|
1965
|
+
"name": "add",
|
|
1966
|
+
"nodeType": "YulIdentifier",
|
|
1967
|
+
"src": "2463:3:4"
|
|
1968
|
+
},
|
|
1969
|
+
"nodeType": "YulFunctionCall",
|
|
1970
|
+
"src": "2463:18:4"
|
|
1971
|
+
},
|
|
1972
|
+
{
|
|
1973
|
+
"hexValue": "4445504c4f594d454e545f4641494c4544",
|
|
1974
|
+
"kind": "string",
|
|
1975
|
+
"nodeType": "YulLiteral",
|
|
1976
|
+
"src": "2483:19:4",
|
|
1977
|
+
"type": "",
|
|
1978
|
+
"value": "DEPLOYMENT_FAILED"
|
|
1979
|
+
}
|
|
1980
|
+
],
|
|
1981
|
+
"functionName": {
|
|
1982
|
+
"name": "mstore",
|
|
1983
|
+
"nodeType": "YulIdentifier",
|
|
1984
|
+
"src": "2456:6:4"
|
|
1985
|
+
},
|
|
1986
|
+
"nodeType": "YulFunctionCall",
|
|
1987
|
+
"src": "2456:47:4"
|
|
1988
|
+
},
|
|
1989
|
+
"nodeType": "YulExpressionStatement",
|
|
1990
|
+
"src": "2456:47:4"
|
|
1991
|
+
},
|
|
1992
|
+
{
|
|
1993
|
+
"nodeType": "YulAssignment",
|
|
1994
|
+
"src": "2512:26:4",
|
|
1995
|
+
"value": {
|
|
1996
|
+
"arguments": [
|
|
1997
|
+
{
|
|
1998
|
+
"name": "headStart",
|
|
1999
|
+
"nodeType": "YulIdentifier",
|
|
2000
|
+
"src": "2524:9:4"
|
|
2001
|
+
},
|
|
2002
|
+
{
|
|
2003
|
+
"kind": "number",
|
|
2004
|
+
"nodeType": "YulLiteral",
|
|
2005
|
+
"src": "2535:2:4",
|
|
2006
|
+
"type": "",
|
|
2007
|
+
"value": "96"
|
|
2008
|
+
}
|
|
2009
|
+
],
|
|
2010
|
+
"functionName": {
|
|
2011
|
+
"name": "add",
|
|
2012
|
+
"nodeType": "YulIdentifier",
|
|
2013
|
+
"src": "2520:3:4"
|
|
2014
|
+
},
|
|
2015
|
+
"nodeType": "YulFunctionCall",
|
|
2016
|
+
"src": "2520:18:4"
|
|
2017
|
+
},
|
|
2018
|
+
"variableNames": [
|
|
2019
|
+
{
|
|
2020
|
+
"name": "tail",
|
|
2021
|
+
"nodeType": "YulIdentifier",
|
|
2022
|
+
"src": "2512:4:4"
|
|
2023
|
+
}
|
|
2024
|
+
]
|
|
2025
|
+
}
|
|
2026
|
+
]
|
|
2027
|
+
},
|
|
2028
|
+
"name": "abi_encode_tuple_t_stringliteral_06b9a079a75ffa7ba441ae4f39a27e137fcdab3674b7b73e6582f52f1f6543e1__to_t_string_memory_ptr__fromStack_reversed",
|
|
2029
|
+
"nodeType": "YulFunctionDefinition",
|
|
2030
|
+
"parameters": [
|
|
2031
|
+
{
|
|
2032
|
+
"name": "headStart",
|
|
2033
|
+
"nodeType": "YulTypedName",
|
|
2034
|
+
"src": "2354:9:4",
|
|
2035
|
+
"type": ""
|
|
2036
|
+
}
|
|
2037
|
+
],
|
|
2038
|
+
"returnVariables": [
|
|
2039
|
+
{
|
|
2040
|
+
"name": "tail",
|
|
2041
|
+
"nodeType": "YulTypedName",
|
|
2042
|
+
"src": "2368:4:4",
|
|
2043
|
+
"type": ""
|
|
2044
|
+
}
|
|
2045
|
+
],
|
|
2046
|
+
"src": "2203:341:4"
|
|
2047
|
+
},
|
|
2048
|
+
{
|
|
2049
|
+
"body": {
|
|
2050
|
+
"nodeType": "YulBlock",
|
|
2051
|
+
"src": "2686:275:4",
|
|
2052
|
+
"statements": [
|
|
2053
|
+
{
|
|
2054
|
+
"nodeType": "YulVariableDeclaration",
|
|
2055
|
+
"src": "2696:27:4",
|
|
2056
|
+
"value": {
|
|
2057
|
+
"arguments": [
|
|
2058
|
+
{
|
|
2059
|
+
"name": "value0",
|
|
2060
|
+
"nodeType": "YulIdentifier",
|
|
2061
|
+
"src": "2716:6:4"
|
|
2062
|
+
}
|
|
2063
|
+
],
|
|
2064
|
+
"functionName": {
|
|
2065
|
+
"name": "mload",
|
|
2066
|
+
"nodeType": "YulIdentifier",
|
|
2067
|
+
"src": "2710:5:4"
|
|
2068
|
+
},
|
|
2069
|
+
"nodeType": "YulFunctionCall",
|
|
2070
|
+
"src": "2710:13:4"
|
|
2071
|
+
},
|
|
2072
|
+
"variables": [
|
|
2073
|
+
{
|
|
2074
|
+
"name": "length",
|
|
2075
|
+
"nodeType": "YulTypedName",
|
|
2076
|
+
"src": "2700:6:4",
|
|
2077
|
+
"type": ""
|
|
2078
|
+
}
|
|
2079
|
+
]
|
|
2080
|
+
},
|
|
2081
|
+
{
|
|
2082
|
+
"nodeType": "YulVariableDeclaration",
|
|
2083
|
+
"src": "2732:10:4",
|
|
2084
|
+
"value": {
|
|
2085
|
+
"kind": "number",
|
|
2086
|
+
"nodeType": "YulLiteral",
|
|
2087
|
+
"src": "2741:1:4",
|
|
2088
|
+
"type": "",
|
|
2089
|
+
"value": "0"
|
|
2090
|
+
},
|
|
2091
|
+
"variables": [
|
|
2092
|
+
{
|
|
2093
|
+
"name": "i",
|
|
2094
|
+
"nodeType": "YulTypedName",
|
|
2095
|
+
"src": "2736:1:4",
|
|
2096
|
+
"type": ""
|
|
2097
|
+
}
|
|
2098
|
+
]
|
|
2099
|
+
},
|
|
2100
|
+
{
|
|
2101
|
+
"body": {
|
|
2102
|
+
"nodeType": "YulBlock",
|
|
2103
|
+
"src": "2803:77:4",
|
|
2104
|
+
"statements": [
|
|
2105
|
+
{
|
|
2106
|
+
"expression": {
|
|
2107
|
+
"arguments": [
|
|
2108
|
+
{
|
|
2109
|
+
"arguments": [
|
|
2110
|
+
{
|
|
2111
|
+
"name": "pos",
|
|
2112
|
+
"nodeType": "YulIdentifier",
|
|
2113
|
+
"src": "2828:3:4"
|
|
2114
|
+
},
|
|
2115
|
+
{
|
|
2116
|
+
"name": "i",
|
|
2117
|
+
"nodeType": "YulIdentifier",
|
|
2118
|
+
"src": "2833:1:4"
|
|
2119
|
+
}
|
|
2120
|
+
],
|
|
2121
|
+
"functionName": {
|
|
2122
|
+
"name": "add",
|
|
2123
|
+
"nodeType": "YulIdentifier",
|
|
2124
|
+
"src": "2824:3:4"
|
|
2125
|
+
},
|
|
2126
|
+
"nodeType": "YulFunctionCall",
|
|
2127
|
+
"src": "2824:11:4"
|
|
2128
|
+
},
|
|
2129
|
+
{
|
|
2130
|
+
"arguments": [
|
|
2131
|
+
{
|
|
2132
|
+
"arguments": [
|
|
2133
|
+
{
|
|
2134
|
+
"arguments": [
|
|
2135
|
+
{
|
|
2136
|
+
"name": "value0",
|
|
2137
|
+
"nodeType": "YulIdentifier",
|
|
2138
|
+
"src": "2851:6:4"
|
|
2139
|
+
},
|
|
2140
|
+
{
|
|
2141
|
+
"name": "i",
|
|
2142
|
+
"nodeType": "YulIdentifier",
|
|
2143
|
+
"src": "2859:1:4"
|
|
2144
|
+
}
|
|
2145
|
+
],
|
|
2146
|
+
"functionName": {
|
|
2147
|
+
"name": "add",
|
|
2148
|
+
"nodeType": "YulIdentifier",
|
|
2149
|
+
"src": "2847:3:4"
|
|
2150
|
+
},
|
|
2151
|
+
"nodeType": "YulFunctionCall",
|
|
2152
|
+
"src": "2847:14:4"
|
|
2153
|
+
},
|
|
2154
|
+
{
|
|
2155
|
+
"kind": "number",
|
|
2156
|
+
"nodeType": "YulLiteral",
|
|
2157
|
+
"src": "2863:4:4",
|
|
2158
|
+
"type": "",
|
|
2159
|
+
"value": "0x20"
|
|
2160
|
+
}
|
|
2161
|
+
],
|
|
2162
|
+
"functionName": {
|
|
2163
|
+
"name": "add",
|
|
2164
|
+
"nodeType": "YulIdentifier",
|
|
2165
|
+
"src": "2843:3:4"
|
|
2166
|
+
},
|
|
2167
|
+
"nodeType": "YulFunctionCall",
|
|
2168
|
+
"src": "2843:25:4"
|
|
2169
|
+
}
|
|
2170
|
+
],
|
|
2171
|
+
"functionName": {
|
|
2172
|
+
"name": "mload",
|
|
2173
|
+
"nodeType": "YulIdentifier",
|
|
2174
|
+
"src": "2837:5:4"
|
|
2175
|
+
},
|
|
2176
|
+
"nodeType": "YulFunctionCall",
|
|
2177
|
+
"src": "2837:32:4"
|
|
2178
|
+
}
|
|
2179
|
+
],
|
|
2180
|
+
"functionName": {
|
|
2181
|
+
"name": "mstore",
|
|
2182
|
+
"nodeType": "YulIdentifier",
|
|
2183
|
+
"src": "2817:6:4"
|
|
2184
|
+
},
|
|
2185
|
+
"nodeType": "YulFunctionCall",
|
|
2186
|
+
"src": "2817:53:4"
|
|
2187
|
+
},
|
|
2188
|
+
"nodeType": "YulExpressionStatement",
|
|
2189
|
+
"src": "2817:53:4"
|
|
2190
|
+
}
|
|
2191
|
+
]
|
|
2192
|
+
},
|
|
2193
|
+
"condition": {
|
|
2194
|
+
"arguments": [
|
|
2195
|
+
{
|
|
2196
|
+
"name": "i",
|
|
2197
|
+
"nodeType": "YulIdentifier",
|
|
2198
|
+
"src": "2762:1:4"
|
|
2199
|
+
},
|
|
2200
|
+
{
|
|
2201
|
+
"name": "length",
|
|
2202
|
+
"nodeType": "YulIdentifier",
|
|
2203
|
+
"src": "2765:6:4"
|
|
2204
|
+
}
|
|
2205
|
+
],
|
|
2206
|
+
"functionName": {
|
|
2207
|
+
"name": "lt",
|
|
2208
|
+
"nodeType": "YulIdentifier",
|
|
2209
|
+
"src": "2759:2:4"
|
|
2210
|
+
},
|
|
2211
|
+
"nodeType": "YulFunctionCall",
|
|
2212
|
+
"src": "2759:13:4"
|
|
2213
|
+
},
|
|
2214
|
+
"nodeType": "YulForLoop",
|
|
2215
|
+
"post": {
|
|
2216
|
+
"nodeType": "YulBlock",
|
|
2217
|
+
"src": "2773:21:4",
|
|
2218
|
+
"statements": [
|
|
2219
|
+
{
|
|
2220
|
+
"nodeType": "YulAssignment",
|
|
2221
|
+
"src": "2775:17:4",
|
|
2222
|
+
"value": {
|
|
2223
|
+
"arguments": [
|
|
2224
|
+
{
|
|
2225
|
+
"name": "i",
|
|
2226
|
+
"nodeType": "YulIdentifier",
|
|
2227
|
+
"src": "2784:1:4"
|
|
2228
|
+
},
|
|
2229
|
+
{
|
|
2230
|
+
"kind": "number",
|
|
2231
|
+
"nodeType": "YulLiteral",
|
|
2232
|
+
"src": "2787:4:4",
|
|
2233
|
+
"type": "",
|
|
2234
|
+
"value": "0x20"
|
|
2235
|
+
}
|
|
2236
|
+
],
|
|
2237
|
+
"functionName": {
|
|
2238
|
+
"name": "add",
|
|
2239
|
+
"nodeType": "YulIdentifier",
|
|
2240
|
+
"src": "2780:3:4"
|
|
2241
|
+
},
|
|
2242
|
+
"nodeType": "YulFunctionCall",
|
|
2243
|
+
"src": "2780:12:4"
|
|
2244
|
+
},
|
|
2245
|
+
"variableNames": [
|
|
2246
|
+
{
|
|
2247
|
+
"name": "i",
|
|
2248
|
+
"nodeType": "YulIdentifier",
|
|
2249
|
+
"src": "2775:1:4"
|
|
2250
|
+
}
|
|
2251
|
+
]
|
|
2252
|
+
}
|
|
2253
|
+
]
|
|
2254
|
+
},
|
|
2255
|
+
"pre": {
|
|
2256
|
+
"nodeType": "YulBlock",
|
|
2257
|
+
"src": "2755:3:4",
|
|
2258
|
+
"statements": []
|
|
2259
|
+
},
|
|
2260
|
+
"src": "2751:129:4"
|
|
2261
|
+
},
|
|
2262
|
+
{
|
|
2263
|
+
"nodeType": "YulVariableDeclaration",
|
|
2264
|
+
"src": "2889:26:4",
|
|
2265
|
+
"value": {
|
|
2266
|
+
"arguments": [
|
|
2267
|
+
{
|
|
2268
|
+
"name": "pos",
|
|
2269
|
+
"nodeType": "YulIdentifier",
|
|
2270
|
+
"src": "2903:3:4"
|
|
2271
|
+
},
|
|
2272
|
+
{
|
|
2273
|
+
"name": "length",
|
|
2274
|
+
"nodeType": "YulIdentifier",
|
|
2275
|
+
"src": "2908:6:4"
|
|
2276
|
+
}
|
|
2277
|
+
],
|
|
2278
|
+
"functionName": {
|
|
2279
|
+
"name": "add",
|
|
2280
|
+
"nodeType": "YulIdentifier",
|
|
2281
|
+
"src": "2899:3:4"
|
|
2282
|
+
},
|
|
2283
|
+
"nodeType": "YulFunctionCall",
|
|
2284
|
+
"src": "2899:16:4"
|
|
2285
|
+
},
|
|
2286
|
+
"variables": [
|
|
2287
|
+
{
|
|
2288
|
+
"name": "_1",
|
|
2289
|
+
"nodeType": "YulTypedName",
|
|
2290
|
+
"src": "2893:2:4",
|
|
2291
|
+
"type": ""
|
|
2292
|
+
}
|
|
2293
|
+
]
|
|
2294
|
+
},
|
|
2295
|
+
{
|
|
2296
|
+
"expression": {
|
|
2297
|
+
"arguments": [
|
|
2298
|
+
{
|
|
2299
|
+
"name": "_1",
|
|
2300
|
+
"nodeType": "YulIdentifier",
|
|
2301
|
+
"src": "2931:2:4"
|
|
2302
|
+
},
|
|
2303
|
+
{
|
|
2304
|
+
"kind": "number",
|
|
2305
|
+
"nodeType": "YulLiteral",
|
|
2306
|
+
"src": "2935:1:4",
|
|
2307
|
+
"type": "",
|
|
2308
|
+
"value": "0"
|
|
2309
|
+
}
|
|
2310
|
+
],
|
|
2311
|
+
"functionName": {
|
|
2312
|
+
"name": "mstore",
|
|
2313
|
+
"nodeType": "YulIdentifier",
|
|
2314
|
+
"src": "2924:6:4"
|
|
2315
|
+
},
|
|
2316
|
+
"nodeType": "YulFunctionCall",
|
|
2317
|
+
"src": "2924:13:4"
|
|
2318
|
+
},
|
|
2319
|
+
"nodeType": "YulExpressionStatement",
|
|
2320
|
+
"src": "2924:13:4"
|
|
2321
|
+
},
|
|
2322
|
+
{
|
|
2323
|
+
"nodeType": "YulAssignment",
|
|
2324
|
+
"src": "2946:9:4",
|
|
2325
|
+
"value": {
|
|
2326
|
+
"name": "_1",
|
|
2327
|
+
"nodeType": "YulIdentifier",
|
|
2328
|
+
"src": "2953:2:4"
|
|
2329
|
+
},
|
|
2330
|
+
"variableNames": [
|
|
2331
|
+
{
|
|
2332
|
+
"name": "end",
|
|
2333
|
+
"nodeType": "YulIdentifier",
|
|
2334
|
+
"src": "2946:3:4"
|
|
2335
|
+
}
|
|
2336
|
+
]
|
|
2337
|
+
}
|
|
2338
|
+
]
|
|
2339
|
+
},
|
|
2340
|
+
"name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed",
|
|
2341
|
+
"nodeType": "YulFunctionDefinition",
|
|
2342
|
+
"parameters": [
|
|
2343
|
+
{
|
|
2344
|
+
"name": "pos",
|
|
2345
|
+
"nodeType": "YulTypedName",
|
|
2346
|
+
"src": "2662:3:4",
|
|
2347
|
+
"type": ""
|
|
2348
|
+
},
|
|
2349
|
+
{
|
|
2350
|
+
"name": "value0",
|
|
2351
|
+
"nodeType": "YulTypedName",
|
|
2352
|
+
"src": "2667:6:4",
|
|
2353
|
+
"type": ""
|
|
2354
|
+
}
|
|
2355
|
+
],
|
|
2356
|
+
"returnVariables": [
|
|
2357
|
+
{
|
|
2358
|
+
"name": "end",
|
|
2359
|
+
"nodeType": "YulTypedName",
|
|
2360
|
+
"src": "2678:3:4",
|
|
2361
|
+
"type": ""
|
|
2362
|
+
}
|
|
2363
|
+
],
|
|
2364
|
+
"src": "2549:412:4"
|
|
2365
|
+
},
|
|
2366
|
+
{
|
|
2367
|
+
"body": {
|
|
2368
|
+
"nodeType": "YulBlock",
|
|
2369
|
+
"src": "3140:171:4",
|
|
2370
|
+
"statements": [
|
|
2371
|
+
{
|
|
2372
|
+
"expression": {
|
|
2373
|
+
"arguments": [
|
|
2374
|
+
{
|
|
2375
|
+
"name": "headStart",
|
|
2376
|
+
"nodeType": "YulIdentifier",
|
|
2377
|
+
"src": "3157:9:4"
|
|
2378
|
+
},
|
|
2379
|
+
{
|
|
2380
|
+
"kind": "number",
|
|
2381
|
+
"nodeType": "YulLiteral",
|
|
2382
|
+
"src": "3168:2:4",
|
|
2383
|
+
"type": "",
|
|
2384
|
+
"value": "32"
|
|
2385
|
+
}
|
|
2386
|
+
],
|
|
2387
|
+
"functionName": {
|
|
2388
|
+
"name": "mstore",
|
|
2389
|
+
"nodeType": "YulIdentifier",
|
|
2390
|
+
"src": "3150:6:4"
|
|
2391
|
+
},
|
|
2392
|
+
"nodeType": "YulFunctionCall",
|
|
2393
|
+
"src": "3150:21:4"
|
|
2394
|
+
},
|
|
2395
|
+
"nodeType": "YulExpressionStatement",
|
|
2396
|
+
"src": "3150:21:4"
|
|
2397
|
+
},
|
|
2398
|
+
{
|
|
2399
|
+
"expression": {
|
|
2400
|
+
"arguments": [
|
|
2401
|
+
{
|
|
2402
|
+
"arguments": [
|
|
2403
|
+
{
|
|
2404
|
+
"name": "headStart",
|
|
2405
|
+
"nodeType": "YulIdentifier",
|
|
2406
|
+
"src": "3191:9:4"
|
|
2407
|
+
},
|
|
2408
|
+
{
|
|
2409
|
+
"kind": "number",
|
|
2410
|
+
"nodeType": "YulLiteral",
|
|
2411
|
+
"src": "3202:2:4",
|
|
2412
|
+
"type": "",
|
|
2413
|
+
"value": "32"
|
|
2414
|
+
}
|
|
2415
|
+
],
|
|
2416
|
+
"functionName": {
|
|
2417
|
+
"name": "add",
|
|
2418
|
+
"nodeType": "YulIdentifier",
|
|
2419
|
+
"src": "3187:3:4"
|
|
2420
|
+
},
|
|
2421
|
+
"nodeType": "YulFunctionCall",
|
|
2422
|
+
"src": "3187:18:4"
|
|
2423
|
+
},
|
|
2424
|
+
{
|
|
2425
|
+
"kind": "number",
|
|
2426
|
+
"nodeType": "YulLiteral",
|
|
2427
|
+
"src": "3207:2:4",
|
|
2428
|
+
"type": "",
|
|
2429
|
+
"value": "21"
|
|
2430
|
+
}
|
|
2431
|
+
],
|
|
2432
|
+
"functionName": {
|
|
2433
|
+
"name": "mstore",
|
|
2434
|
+
"nodeType": "YulIdentifier",
|
|
2435
|
+
"src": "3180:6:4"
|
|
2436
|
+
},
|
|
2437
|
+
"nodeType": "YulFunctionCall",
|
|
2438
|
+
"src": "3180:30:4"
|
|
2439
|
+
},
|
|
2440
|
+
"nodeType": "YulExpressionStatement",
|
|
2441
|
+
"src": "3180:30:4"
|
|
2442
|
+
},
|
|
2443
|
+
{
|
|
2444
|
+
"expression": {
|
|
2445
|
+
"arguments": [
|
|
2446
|
+
{
|
|
2447
|
+
"arguments": [
|
|
2448
|
+
{
|
|
2449
|
+
"name": "headStart",
|
|
2450
|
+
"nodeType": "YulIdentifier",
|
|
2451
|
+
"src": "3230:9:4"
|
|
2452
|
+
},
|
|
2453
|
+
{
|
|
2454
|
+
"kind": "number",
|
|
2455
|
+
"nodeType": "YulLiteral",
|
|
2456
|
+
"src": "3241:2:4",
|
|
2457
|
+
"type": "",
|
|
2458
|
+
"value": "64"
|
|
2459
|
+
}
|
|
2460
|
+
],
|
|
2461
|
+
"functionName": {
|
|
2462
|
+
"name": "add",
|
|
2463
|
+
"nodeType": "YulIdentifier",
|
|
2464
|
+
"src": "3226:3:4"
|
|
2465
|
+
},
|
|
2466
|
+
"nodeType": "YulFunctionCall",
|
|
2467
|
+
"src": "3226:18:4"
|
|
2468
|
+
},
|
|
2469
|
+
{
|
|
2470
|
+
"hexValue": "494e495449414c495a4154494f4e5f4641494c4544",
|
|
2471
|
+
"kind": "string",
|
|
2472
|
+
"nodeType": "YulLiteral",
|
|
2473
|
+
"src": "3246:23:4",
|
|
2474
|
+
"type": "",
|
|
2475
|
+
"value": "INITIALIZATION_FAILED"
|
|
2476
|
+
}
|
|
2477
|
+
],
|
|
2478
|
+
"functionName": {
|
|
2479
|
+
"name": "mstore",
|
|
2480
|
+
"nodeType": "YulIdentifier",
|
|
2481
|
+
"src": "3219:6:4"
|
|
2482
|
+
},
|
|
2483
|
+
"nodeType": "YulFunctionCall",
|
|
2484
|
+
"src": "3219:51:4"
|
|
2485
|
+
},
|
|
2486
|
+
"nodeType": "YulExpressionStatement",
|
|
2487
|
+
"src": "3219:51:4"
|
|
2488
|
+
},
|
|
2489
|
+
{
|
|
2490
|
+
"nodeType": "YulAssignment",
|
|
2491
|
+
"src": "3279:26:4",
|
|
2492
|
+
"value": {
|
|
2493
|
+
"arguments": [
|
|
2494
|
+
{
|
|
2495
|
+
"name": "headStart",
|
|
2496
|
+
"nodeType": "YulIdentifier",
|
|
2497
|
+
"src": "3291:9:4"
|
|
2498
|
+
},
|
|
2499
|
+
{
|
|
2500
|
+
"kind": "number",
|
|
2501
|
+
"nodeType": "YulLiteral",
|
|
2502
|
+
"src": "3302:2:4",
|
|
2503
|
+
"type": "",
|
|
2504
|
+
"value": "96"
|
|
2505
|
+
}
|
|
2506
|
+
],
|
|
2507
|
+
"functionName": {
|
|
2508
|
+
"name": "add",
|
|
2509
|
+
"nodeType": "YulIdentifier",
|
|
2510
|
+
"src": "3287:3:4"
|
|
2511
|
+
},
|
|
2512
|
+
"nodeType": "YulFunctionCall",
|
|
2513
|
+
"src": "3287:18:4"
|
|
2514
|
+
},
|
|
2515
|
+
"variableNames": [
|
|
2516
|
+
{
|
|
2517
|
+
"name": "tail",
|
|
2518
|
+
"nodeType": "YulIdentifier",
|
|
2519
|
+
"src": "3279:4:4"
|
|
2520
|
+
}
|
|
2521
|
+
]
|
|
2522
|
+
}
|
|
2523
|
+
]
|
|
2524
|
+
},
|
|
2525
|
+
"name": "abi_encode_tuple_t_stringliteral_0f225f2de9716551751e4d6d194f155e7a15812a52c33d3c6df80cb5145c2aa4__to_t_string_memory_ptr__fromStack_reversed",
|
|
2526
|
+
"nodeType": "YulFunctionDefinition",
|
|
2527
|
+
"parameters": [
|
|
2528
|
+
{
|
|
2529
|
+
"name": "headStart",
|
|
2530
|
+
"nodeType": "YulTypedName",
|
|
2531
|
+
"src": "3117:9:4",
|
|
2532
|
+
"type": ""
|
|
2533
|
+
}
|
|
2534
|
+
],
|
|
2535
|
+
"returnVariables": [
|
|
2536
|
+
{
|
|
2537
|
+
"name": "tail",
|
|
2538
|
+
"nodeType": "YulTypedName",
|
|
2539
|
+
"src": "3131:4:4",
|
|
2540
|
+
"type": ""
|
|
2541
|
+
}
|
|
2542
|
+
],
|
|
2543
|
+
"src": "2966:345:4"
|
|
2544
|
+
},
|
|
2545
|
+
{
|
|
2546
|
+
"body": {
|
|
2547
|
+
"nodeType": "YulBlock",
|
|
2548
|
+
"src": "3517:328:4",
|
|
2549
|
+
"statements": [
|
|
2550
|
+
{
|
|
2551
|
+
"expression": {
|
|
2552
|
+
"arguments": [
|
|
2553
|
+
{
|
|
2554
|
+
"name": "pos",
|
|
2555
|
+
"nodeType": "YulIdentifier",
|
|
2556
|
+
"src": "3534:3:4"
|
|
2557
|
+
},
|
|
2558
|
+
{
|
|
2559
|
+
"arguments": [
|
|
2560
|
+
{
|
|
2561
|
+
"name": "value0",
|
|
2562
|
+
"nodeType": "YulIdentifier",
|
|
2563
|
+
"src": "3543:6:4"
|
|
2564
|
+
},
|
|
2565
|
+
{
|
|
2566
|
+
"kind": "number",
|
|
2567
|
+
"nodeType": "YulLiteral",
|
|
2568
|
+
"src": "3551:66:4",
|
|
2569
|
+
"type": "",
|
|
2570
|
+
"value": "0xff00000000000000000000000000000000000000000000000000000000000000"
|
|
2571
|
+
}
|
|
2572
|
+
],
|
|
2573
|
+
"functionName": {
|
|
2574
|
+
"name": "and",
|
|
2575
|
+
"nodeType": "YulIdentifier",
|
|
2576
|
+
"src": "3539:3:4"
|
|
2577
|
+
},
|
|
2578
|
+
"nodeType": "YulFunctionCall",
|
|
2579
|
+
"src": "3539:79:4"
|
|
2580
|
+
}
|
|
2581
|
+
],
|
|
2582
|
+
"functionName": {
|
|
2583
|
+
"name": "mstore",
|
|
2584
|
+
"nodeType": "YulIdentifier",
|
|
2585
|
+
"src": "3527:6:4"
|
|
2586
|
+
},
|
|
2587
|
+
"nodeType": "YulFunctionCall",
|
|
2588
|
+
"src": "3527:92:4"
|
|
2589
|
+
},
|
|
2590
|
+
"nodeType": "YulExpressionStatement",
|
|
2591
|
+
"src": "3527:92:4"
|
|
2592
|
+
},
|
|
2593
|
+
{
|
|
2594
|
+
"expression": {
|
|
2595
|
+
"arguments": [
|
|
2596
|
+
{
|
|
2597
|
+
"arguments": [
|
|
2598
|
+
{
|
|
2599
|
+
"name": "pos",
|
|
2600
|
+
"nodeType": "YulIdentifier",
|
|
2601
|
+
"src": "3639:3:4"
|
|
2602
|
+
},
|
|
2603
|
+
{
|
|
2604
|
+
"kind": "number",
|
|
2605
|
+
"nodeType": "YulLiteral",
|
|
2606
|
+
"src": "3644:1:4",
|
|
2607
|
+
"type": "",
|
|
2608
|
+
"value": "1"
|
|
2609
|
+
}
|
|
2610
|
+
],
|
|
2611
|
+
"functionName": {
|
|
2612
|
+
"name": "add",
|
|
2613
|
+
"nodeType": "YulIdentifier",
|
|
2614
|
+
"src": "3635:3:4"
|
|
2615
|
+
},
|
|
2616
|
+
"nodeType": "YulFunctionCall",
|
|
2617
|
+
"src": "3635:11:4"
|
|
2618
|
+
},
|
|
2619
|
+
{
|
|
2620
|
+
"arguments": [
|
|
2621
|
+
{
|
|
2622
|
+
"arguments": [
|
|
2623
|
+
{
|
|
2624
|
+
"kind": "number",
|
|
2625
|
+
"nodeType": "YulLiteral",
|
|
2626
|
+
"src": "3656:2:4",
|
|
2627
|
+
"type": "",
|
|
2628
|
+
"value": "96"
|
|
2629
|
+
},
|
|
2630
|
+
{
|
|
2631
|
+
"name": "value1",
|
|
2632
|
+
"nodeType": "YulIdentifier",
|
|
2633
|
+
"src": "3660:6:4"
|
|
2634
|
+
}
|
|
2635
|
+
],
|
|
2636
|
+
"functionName": {
|
|
2637
|
+
"name": "shl",
|
|
2638
|
+
"nodeType": "YulIdentifier",
|
|
2639
|
+
"src": "3652:3:4"
|
|
2640
|
+
},
|
|
2641
|
+
"nodeType": "YulFunctionCall",
|
|
2642
|
+
"src": "3652:15:4"
|
|
2643
|
+
},
|
|
2644
|
+
{
|
|
2645
|
+
"kind": "number",
|
|
2646
|
+
"nodeType": "YulLiteral",
|
|
2647
|
+
"src": "3669:66:4",
|
|
2648
|
+
"type": "",
|
|
2649
|
+
"value": "0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"
|
|
2650
|
+
}
|
|
2651
|
+
],
|
|
2652
|
+
"functionName": {
|
|
2653
|
+
"name": "and",
|
|
2654
|
+
"nodeType": "YulIdentifier",
|
|
2655
|
+
"src": "3648:3:4"
|
|
2656
|
+
},
|
|
2657
|
+
"nodeType": "YulFunctionCall",
|
|
2658
|
+
"src": "3648:88:4"
|
|
2659
|
+
}
|
|
2660
|
+
],
|
|
2661
|
+
"functionName": {
|
|
2662
|
+
"name": "mstore",
|
|
2663
|
+
"nodeType": "YulIdentifier",
|
|
2664
|
+
"src": "3628:6:4"
|
|
2665
|
+
},
|
|
2666
|
+
"nodeType": "YulFunctionCall",
|
|
2667
|
+
"src": "3628:109:4"
|
|
2668
|
+
},
|
|
2669
|
+
"nodeType": "YulExpressionStatement",
|
|
2670
|
+
"src": "3628:109:4"
|
|
2671
|
+
},
|
|
2672
|
+
{
|
|
2673
|
+
"expression": {
|
|
2674
|
+
"arguments": [
|
|
2675
|
+
{
|
|
2676
|
+
"arguments": [
|
|
2677
|
+
{
|
|
2678
|
+
"name": "pos",
|
|
2679
|
+
"nodeType": "YulIdentifier",
|
|
2680
|
+
"src": "3757:3:4"
|
|
2681
|
+
},
|
|
2682
|
+
{
|
|
2683
|
+
"kind": "number",
|
|
2684
|
+
"nodeType": "YulLiteral",
|
|
2685
|
+
"src": "3762:2:4",
|
|
2686
|
+
"type": "",
|
|
2687
|
+
"value": "21"
|
|
2688
|
+
}
|
|
2689
|
+
],
|
|
2690
|
+
"functionName": {
|
|
2691
|
+
"name": "add",
|
|
2692
|
+
"nodeType": "YulIdentifier",
|
|
2693
|
+
"src": "3753:3:4"
|
|
2694
|
+
},
|
|
2695
|
+
"nodeType": "YulFunctionCall",
|
|
2696
|
+
"src": "3753:12:4"
|
|
2697
|
+
},
|
|
2698
|
+
{
|
|
2699
|
+
"name": "value2",
|
|
2700
|
+
"nodeType": "YulIdentifier",
|
|
2701
|
+
"src": "3767:6:4"
|
|
2702
|
+
}
|
|
2703
|
+
],
|
|
2704
|
+
"functionName": {
|
|
2705
|
+
"name": "mstore",
|
|
2706
|
+
"nodeType": "YulIdentifier",
|
|
2707
|
+
"src": "3746:6:4"
|
|
2708
|
+
},
|
|
2709
|
+
"nodeType": "YulFunctionCall",
|
|
2710
|
+
"src": "3746:28:4"
|
|
2711
|
+
},
|
|
2712
|
+
"nodeType": "YulExpressionStatement",
|
|
2713
|
+
"src": "3746:28:4"
|
|
2714
|
+
},
|
|
2715
|
+
{
|
|
2716
|
+
"expression": {
|
|
2717
|
+
"arguments": [
|
|
2718
|
+
{
|
|
2719
|
+
"arguments": [
|
|
2720
|
+
{
|
|
2721
|
+
"name": "pos",
|
|
2722
|
+
"nodeType": "YulIdentifier",
|
|
2723
|
+
"src": "3794:3:4"
|
|
2724
|
+
},
|
|
2725
|
+
{
|
|
2726
|
+
"kind": "number",
|
|
2727
|
+
"nodeType": "YulLiteral",
|
|
2728
|
+
"src": "3799:2:4",
|
|
2729
|
+
"type": "",
|
|
2730
|
+
"value": "53"
|
|
2731
|
+
}
|
|
2732
|
+
],
|
|
2733
|
+
"functionName": {
|
|
2734
|
+
"name": "add",
|
|
2735
|
+
"nodeType": "YulIdentifier",
|
|
2736
|
+
"src": "3790:3:4"
|
|
2737
|
+
},
|
|
2738
|
+
"nodeType": "YulFunctionCall",
|
|
2739
|
+
"src": "3790:12:4"
|
|
2740
|
+
},
|
|
2741
|
+
{
|
|
2742
|
+
"name": "value3",
|
|
2743
|
+
"nodeType": "YulIdentifier",
|
|
2744
|
+
"src": "3804:6:4"
|
|
2745
|
+
}
|
|
2746
|
+
],
|
|
2747
|
+
"functionName": {
|
|
2748
|
+
"name": "mstore",
|
|
2749
|
+
"nodeType": "YulIdentifier",
|
|
2750
|
+
"src": "3783:6:4"
|
|
2751
|
+
},
|
|
2752
|
+
"nodeType": "YulFunctionCall",
|
|
2753
|
+
"src": "3783:28:4"
|
|
2754
|
+
},
|
|
2755
|
+
"nodeType": "YulExpressionStatement",
|
|
2756
|
+
"src": "3783:28:4"
|
|
2757
|
+
},
|
|
2758
|
+
{
|
|
2759
|
+
"nodeType": "YulAssignment",
|
|
2760
|
+
"src": "3820:19:4",
|
|
2761
|
+
"value": {
|
|
2762
|
+
"arguments": [
|
|
2763
|
+
{
|
|
2764
|
+
"name": "pos",
|
|
2765
|
+
"nodeType": "YulIdentifier",
|
|
2766
|
+
"src": "3831:3:4"
|
|
2767
|
+
},
|
|
2768
|
+
{
|
|
2769
|
+
"kind": "number",
|
|
2770
|
+
"nodeType": "YulLiteral",
|
|
2771
|
+
"src": "3836:2:4",
|
|
2772
|
+
"type": "",
|
|
2773
|
+
"value": "85"
|
|
2774
|
+
}
|
|
2775
|
+
],
|
|
2776
|
+
"functionName": {
|
|
2777
|
+
"name": "add",
|
|
2778
|
+
"nodeType": "YulIdentifier",
|
|
2779
|
+
"src": "3827:3:4"
|
|
2780
|
+
},
|
|
2781
|
+
"nodeType": "YulFunctionCall",
|
|
2782
|
+
"src": "3827:12:4"
|
|
2783
|
+
},
|
|
2784
|
+
"variableNames": [
|
|
2785
|
+
{
|
|
2786
|
+
"name": "end",
|
|
2787
|
+
"nodeType": "YulIdentifier",
|
|
2788
|
+
"src": "3820:3:4"
|
|
2789
|
+
}
|
|
2790
|
+
]
|
|
2791
|
+
}
|
|
2792
|
+
]
|
|
2793
|
+
},
|
|
2794
|
+
"name": "abi_encode_tuple_packed_t_bytes1_t_address_t_bytes32_t_bytes32__to_t_bytes1_t_address_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed",
|
|
2795
|
+
"nodeType": "YulFunctionDefinition",
|
|
2796
|
+
"parameters": [
|
|
2797
|
+
{
|
|
2798
|
+
"name": "pos",
|
|
2799
|
+
"nodeType": "YulTypedName",
|
|
2800
|
+
"src": "3469:3:4",
|
|
2801
|
+
"type": ""
|
|
2802
|
+
},
|
|
2803
|
+
{
|
|
2804
|
+
"name": "value3",
|
|
2805
|
+
"nodeType": "YulTypedName",
|
|
2806
|
+
"src": "3474:6:4",
|
|
2807
|
+
"type": ""
|
|
2808
|
+
},
|
|
2809
|
+
{
|
|
2810
|
+
"name": "value2",
|
|
2811
|
+
"nodeType": "YulTypedName",
|
|
2812
|
+
"src": "3482:6:4",
|
|
2813
|
+
"type": ""
|
|
2814
|
+
},
|
|
2815
|
+
{
|
|
2816
|
+
"name": "value1",
|
|
2817
|
+
"nodeType": "YulTypedName",
|
|
2818
|
+
"src": "3490:6:4",
|
|
2819
|
+
"type": ""
|
|
2820
|
+
},
|
|
2821
|
+
{
|
|
2822
|
+
"name": "value0",
|
|
2823
|
+
"nodeType": "YulTypedName",
|
|
2824
|
+
"src": "3498:6:4",
|
|
2825
|
+
"type": ""
|
|
2826
|
+
}
|
|
2827
|
+
],
|
|
2828
|
+
"returnVariables": [
|
|
2829
|
+
{
|
|
2830
|
+
"name": "end",
|
|
2831
|
+
"nodeType": "YulTypedName",
|
|
2832
|
+
"src": "3509:3:4",
|
|
2833
|
+
"type": ""
|
|
2834
|
+
}
|
|
2835
|
+
],
|
|
2836
|
+
"src": "3316:529:4"
|
|
2837
|
+
},
|
|
2838
|
+
{
|
|
2839
|
+
"body": {
|
|
2840
|
+
"nodeType": "YulBlock",
|
|
2841
|
+
"src": "4171:338:4",
|
|
2842
|
+
"statements": [
|
|
2843
|
+
{
|
|
2844
|
+
"expression": {
|
|
2845
|
+
"arguments": [
|
|
2846
|
+
{
|
|
2847
|
+
"name": "pos",
|
|
2848
|
+
"nodeType": "YulIdentifier",
|
|
2849
|
+
"src": "4188:3:4"
|
|
2850
|
+
},
|
|
2851
|
+
{
|
|
2852
|
+
"kind": "number",
|
|
2853
|
+
"nodeType": "YulLiteral",
|
|
2854
|
+
"src": "4193:66:4",
|
|
2855
|
+
"type": "",
|
|
2856
|
+
"value": "0xd694000000000000000000000000000000000000000000000000000000000000"
|
|
2857
|
+
}
|
|
2858
|
+
],
|
|
2859
|
+
"functionName": {
|
|
2860
|
+
"name": "mstore",
|
|
2861
|
+
"nodeType": "YulIdentifier",
|
|
2862
|
+
"src": "4181:6:4"
|
|
2863
|
+
},
|
|
2864
|
+
"nodeType": "YulFunctionCall",
|
|
2865
|
+
"src": "4181:79:4"
|
|
2866
|
+
},
|
|
2867
|
+
"nodeType": "YulExpressionStatement",
|
|
2868
|
+
"src": "4181:79:4"
|
|
2869
|
+
},
|
|
2870
|
+
{
|
|
2871
|
+
"expression": {
|
|
2872
|
+
"arguments": [
|
|
2873
|
+
{
|
|
2874
|
+
"arguments": [
|
|
2875
|
+
{
|
|
2876
|
+
"name": "pos",
|
|
2877
|
+
"nodeType": "YulIdentifier",
|
|
2878
|
+
"src": "4280:3:4"
|
|
2879
|
+
},
|
|
2880
|
+
{
|
|
2881
|
+
"kind": "number",
|
|
2882
|
+
"nodeType": "YulLiteral",
|
|
2883
|
+
"src": "4285:1:4",
|
|
2884
|
+
"type": "",
|
|
2885
|
+
"value": "2"
|
|
2886
|
+
}
|
|
2887
|
+
],
|
|
2888
|
+
"functionName": {
|
|
2889
|
+
"name": "add",
|
|
2890
|
+
"nodeType": "YulIdentifier",
|
|
2891
|
+
"src": "4276:3:4"
|
|
2892
|
+
},
|
|
2893
|
+
"nodeType": "YulFunctionCall",
|
|
2894
|
+
"src": "4276:11:4"
|
|
2895
|
+
},
|
|
2896
|
+
{
|
|
2897
|
+
"arguments": [
|
|
2898
|
+
{
|
|
2899
|
+
"arguments": [
|
|
2900
|
+
{
|
|
2901
|
+
"kind": "number",
|
|
2902
|
+
"nodeType": "YulLiteral",
|
|
2903
|
+
"src": "4297:2:4",
|
|
2904
|
+
"type": "",
|
|
2905
|
+
"value": "96"
|
|
2906
|
+
},
|
|
2907
|
+
{
|
|
2908
|
+
"name": "value0",
|
|
2909
|
+
"nodeType": "YulIdentifier",
|
|
2910
|
+
"src": "4301:6:4"
|
|
2911
|
+
}
|
|
2912
|
+
],
|
|
2913
|
+
"functionName": {
|
|
2914
|
+
"name": "shl",
|
|
2915
|
+
"nodeType": "YulIdentifier",
|
|
2916
|
+
"src": "4293:3:4"
|
|
2917
|
+
},
|
|
2918
|
+
"nodeType": "YulFunctionCall",
|
|
2919
|
+
"src": "4293:15:4"
|
|
2920
|
+
},
|
|
2921
|
+
{
|
|
2922
|
+
"kind": "number",
|
|
2923
|
+
"nodeType": "YulLiteral",
|
|
2924
|
+
"src": "4310:66:4",
|
|
2925
|
+
"type": "",
|
|
2926
|
+
"value": "0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"
|
|
2927
|
+
}
|
|
2928
|
+
],
|
|
2929
|
+
"functionName": {
|
|
2930
|
+
"name": "and",
|
|
2931
|
+
"nodeType": "YulIdentifier",
|
|
2932
|
+
"src": "4289:3:4"
|
|
2933
|
+
},
|
|
2934
|
+
"nodeType": "YulFunctionCall",
|
|
2935
|
+
"src": "4289:88:4"
|
|
2936
|
+
}
|
|
2937
|
+
],
|
|
2938
|
+
"functionName": {
|
|
2939
|
+
"name": "mstore",
|
|
2940
|
+
"nodeType": "YulIdentifier",
|
|
2941
|
+
"src": "4269:6:4"
|
|
2942
|
+
},
|
|
2943
|
+
"nodeType": "YulFunctionCall",
|
|
2944
|
+
"src": "4269:109:4"
|
|
2945
|
+
},
|
|
2946
|
+
"nodeType": "YulExpressionStatement",
|
|
2947
|
+
"src": "4269:109:4"
|
|
2948
|
+
},
|
|
2949
|
+
{
|
|
2950
|
+
"expression": {
|
|
2951
|
+
"arguments": [
|
|
2952
|
+
{
|
|
2953
|
+
"arguments": [
|
|
2954
|
+
{
|
|
2955
|
+
"name": "pos",
|
|
2956
|
+
"nodeType": "YulIdentifier",
|
|
2957
|
+
"src": "4398:3:4"
|
|
2958
|
+
},
|
|
2959
|
+
{
|
|
2960
|
+
"kind": "number",
|
|
2961
|
+
"nodeType": "YulLiteral",
|
|
2962
|
+
"src": "4403:2:4",
|
|
2963
|
+
"type": "",
|
|
2964
|
+
"value": "22"
|
|
2965
|
+
}
|
|
2966
|
+
],
|
|
2967
|
+
"functionName": {
|
|
2968
|
+
"name": "add",
|
|
2969
|
+
"nodeType": "YulIdentifier",
|
|
2970
|
+
"src": "4394:3:4"
|
|
2971
|
+
},
|
|
2972
|
+
"nodeType": "YulFunctionCall",
|
|
2973
|
+
"src": "4394:12:4"
|
|
2974
|
+
},
|
|
2975
|
+
{
|
|
2976
|
+
"kind": "number",
|
|
2977
|
+
"nodeType": "YulLiteral",
|
|
2978
|
+
"src": "4408:66:4",
|
|
2979
|
+
"type": "",
|
|
2980
|
+
"value": "0x0100000000000000000000000000000000000000000000000000000000000000"
|
|
2981
|
+
}
|
|
2982
|
+
],
|
|
2983
|
+
"functionName": {
|
|
2984
|
+
"name": "mstore",
|
|
2985
|
+
"nodeType": "YulIdentifier",
|
|
2986
|
+
"src": "4387:6:4"
|
|
2987
|
+
},
|
|
2988
|
+
"nodeType": "YulFunctionCall",
|
|
2989
|
+
"src": "4387:88:4"
|
|
2990
|
+
},
|
|
2991
|
+
"nodeType": "YulExpressionStatement",
|
|
2992
|
+
"src": "4387:88:4"
|
|
2993
|
+
},
|
|
2994
|
+
{
|
|
2995
|
+
"nodeType": "YulAssignment",
|
|
2996
|
+
"src": "4484:19:4",
|
|
2997
|
+
"value": {
|
|
2998
|
+
"arguments": [
|
|
2999
|
+
{
|
|
3000
|
+
"name": "pos",
|
|
3001
|
+
"nodeType": "YulIdentifier",
|
|
3002
|
+
"src": "4495:3:4"
|
|
3003
|
+
},
|
|
3004
|
+
{
|
|
3005
|
+
"kind": "number",
|
|
3006
|
+
"nodeType": "YulLiteral",
|
|
3007
|
+
"src": "4500:2:4",
|
|
3008
|
+
"type": "",
|
|
3009
|
+
"value": "23"
|
|
3010
|
+
}
|
|
3011
|
+
],
|
|
3012
|
+
"functionName": {
|
|
3013
|
+
"name": "add",
|
|
3014
|
+
"nodeType": "YulIdentifier",
|
|
3015
|
+
"src": "4491:3:4"
|
|
3016
|
+
},
|
|
3017
|
+
"nodeType": "YulFunctionCall",
|
|
3018
|
+
"src": "4491:12:4"
|
|
3019
|
+
},
|
|
3020
|
+
"variableNames": [
|
|
3021
|
+
{
|
|
3022
|
+
"name": "end",
|
|
3023
|
+
"nodeType": "YulIdentifier",
|
|
3024
|
+
"src": "4484:3:4"
|
|
3025
|
+
}
|
|
3026
|
+
]
|
|
3027
|
+
}
|
|
3028
|
+
]
|
|
3029
|
+
},
|
|
3030
|
+
"name": "abi_encode_tuple_packed_t_stringliteral_4fdc04d28c8d22070e5fd0f23f00bae0b21cc4e5091b5fd7a9cad9babd3668cf_t_address_t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2__to_t_string_memory_ptr_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed",
|
|
3031
|
+
"nodeType": "YulFunctionDefinition",
|
|
3032
|
+
"parameters": [
|
|
3033
|
+
{
|
|
3034
|
+
"name": "pos",
|
|
3035
|
+
"nodeType": "YulTypedName",
|
|
3036
|
+
"src": "4147:3:4",
|
|
3037
|
+
"type": ""
|
|
3038
|
+
},
|
|
3039
|
+
{
|
|
3040
|
+
"name": "value0",
|
|
3041
|
+
"nodeType": "YulTypedName",
|
|
3042
|
+
"src": "4152:6:4",
|
|
3043
|
+
"type": ""
|
|
3044
|
+
}
|
|
3045
|
+
],
|
|
3046
|
+
"returnVariables": [
|
|
3047
|
+
{
|
|
3048
|
+
"name": "end",
|
|
3049
|
+
"nodeType": "YulTypedName",
|
|
3050
|
+
"src": "4163:3:4",
|
|
3051
|
+
"type": ""
|
|
3052
|
+
}
|
|
3053
|
+
],
|
|
3054
|
+
"src": "3850:659:4"
|
|
3055
|
+
}
|
|
3056
|
+
]
|
|
3057
|
+
},
|
|
3058
|
+
"contents": "{\n { }\n function abi_decode_tuple_t_addresst_bytes32(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, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n value0 := value\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n }\n function panic_error_0x41()\n {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_tuple_t_bytes32t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let _3 := calldataload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n mstore(add(add(memPtr, _3), 32), 0)\n value1 := memPtr\n }\n function abi_encode_tuple_packed_t_address_t_bytes32__to_t_address_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, and(shl(96, value0), 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))\n mstore(add(pos, 20), value1)\n end := add(pos, 52)\n }\n function abi_encode_tuple_t_stringliteral_06b9a079a75ffa7ba441ae4f39a27e137fcdab3674b7b73e6582f52f1f6543e1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 17)\n mstore(add(headStart, 64), \"DEPLOYMENT_FAILED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n mstore(add(pos, i), mload(add(add(value0, i), 0x20)))\n }\n let _1 := add(pos, length)\n mstore(_1, 0)\n end := _1\n }\n function abi_encode_tuple_t_stringliteral_0f225f2de9716551751e4d6d194f155e7a15812a52c33d3c6df80cb5145c2aa4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 21)\n mstore(add(headStart, 64), \"INITIALIZATION_FAILED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_packed_t_bytes1_t_address_t_bytes32_t_bytes32__to_t_bytes1_t_address_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value3, value2, value1, value0) -> end\n {\n mstore(pos, and(value0, 0xff00000000000000000000000000000000000000000000000000000000000000))\n mstore(add(pos, 1), and(shl(96, value1), 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))\n mstore(add(pos, 21), value2)\n mstore(add(pos, 53), value3)\n end := add(pos, 85)\n }\n function abi_encode_tuple_packed_t_stringliteral_4fdc04d28c8d22070e5fd0f23f00bae0b21cc4e5091b5fd7a9cad9babd3668cf_t_address_t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2__to_t_string_memory_ptr_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n mstore(pos, 0xd694000000000000000000000000000000000000000000000000000000000000)\n mstore(add(pos, 2), and(shl(96, value0), 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))\n mstore(add(pos, 22), 0x0100000000000000000000000000000000000000000000000000000000000000)\n end := add(pos, 23)\n }\n}",
|
|
3059
|
+
"id": 4,
|
|
3060
|
+
"language": "Yul",
|
|
3061
|
+
"name": "#utility.yul"
|
|
3062
|
+
}
|
|
3063
|
+
],
|
|
3064
|
+
"immutableReferences": {},
|
|
3065
|
+
"linkReferences": {},
|
|
3066
|
+
"object": "6080604052600436106100295760003560e01c806350f1c4641461002e578063cdcb760a14610077575b600080fd5b34801561003a57600080fd5b5061004e6100493660046104a4565b61008a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61004e610085366004610518565b6100ee565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b166020820152603481018290526000906054016040516020818303038152906040528051906020012091506100e78261014c565b9392505050565b6040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b166020820152603481018390526000906054016040516020818303038152906040528051906020012092506100e783833461015e565b60006101588230610335565b92915050565b6000806040518060400160405280601081526020017f67363d3d37363d34f03d5260086018f30000000000000000000000000000000081525090506000858251602084016000f5905073ffffffffffffffffffffffffffffffffffffffff8116610229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4445504c4f594d454e545f4641494c454400000000000000000000000000000060448201526064015b60405180910390fd5b6102328661014c565b925060008173ffffffffffffffffffffffffffffffffffffffff16858760405161025c91906105f1565b60006040518083038185875af1925050503d8060008114610299576040519150601f19603f3d011682016040523d82523d6000602084013e61029e565b606091505b505090508080156102c5575073ffffffffffffffffffffffffffffffffffffffff84163b15155b61032b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f494e495449414c495a4154494f4e5f4641494c454400000000000000000000006044820152606401610220565b5050509392505050565b604080518082018252601081527f67363d3d37363d34f03d5260086018f30000000000000000000000000000000060209182015290517fff00000000000000000000000000000000000000000000000000000000000000918101919091527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606083901b166021820152603581018390527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f60558201526000908190610412906075015b6040516020818303038152906040528051906020012090565b6040517fd69400000000000000000000000000000000000000000000000000000000000060208201527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606083901b1660228201527f0100000000000000000000000000000000000000000000000000000000000000603682015290915061049c906037016103f9565b949350505050565b600080604083850312156104b757600080fd5b823573ffffffffffffffffffffffffffffffffffffffff811681146104db57600080fd5b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561052b57600080fd5b82359150602083013567ffffffffffffffff8082111561054a57600080fd5b818501915085601f83011261055e57600080fd5b813581811115610570576105706104e9565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156105b6576105b66104e9565b816040528281528860208487010111156105cf57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b8181101561061257602081860181015185830152016105f8565b50600092019182525091905056fea26469706673582212206b6380cfdb8c09de9f5e19deecf088d43d289d060eeea9f3deea2b54d96f56d264736f6c63430008120033",
|
|
3067
|
+
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x50F1C464 EQ PUSH2 0x2E JUMPI DUP1 PUSH4 0xCDCB760A EQ PUSH2 0x77 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x4A4 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x85 CALLDATASIZE PUSH1 0x4 PUSH2 0x518 JUMP JUMPDEST PUSH2 0xEE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 PUSH1 0x60 DUP5 SWAP1 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP2 POP PUSH2 0xE7 DUP3 PUSH2 0x14C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 CALLER PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP3 POP PUSH2 0xE7 DUP4 DUP4 CALLVALUE PUSH2 0x15E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x158 DUP3 ADDRESS PUSH2 0x335 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x67363D3D37363D34F03D5260086018F300000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH1 0x0 DUP6 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH1 0x0 CREATE2 SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x229 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4445504C4F594D454E545F4641494C4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x232 DUP7 PUSH2 0x14C JUMP JUMPDEST SWAP3 POP PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x25C SWAP2 SWAP1 PUSH2 0x5F1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x299 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 0x29E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 DUP1 ISZERO PUSH2 0x2C5 JUMPI POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND EXTCODESIZE ISZERO ISZERO JUMPDEST PUSH2 0x32B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x494E495449414C495A4154494F4E5F4641494C45440000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x220 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH32 0x67363D3D37363D34F03D5260086018F300000000000000000000000000000000 PUSH1 0x20 SWAP2 DUP3 ADD MSTORE SWAP1 MLOAD PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 PUSH1 0x60 DUP4 SWAP1 SHL AND PUSH1 0x21 DUP3 ADD MSTORE PUSH1 0x35 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x21C35DBE1B344A2488CF3321D6CE542F8E9F305544FF09E4993A62319A497C1F PUSH1 0x55 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0x412 SWAP1 PUSH1 0x75 ADD JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xD694000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 PUSH1 0x60 DUP4 SWAP1 SHL AND PUSH1 0x22 DUP3 ADD MSTORE PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 PUSH1 0x36 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x49C SWAP1 PUSH1 0x37 ADD PUSH2 0x3F9 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x4DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x52B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x55E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x570 JUMPI PUSH2 0x570 PUSH2 0x4E9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x5B6 JUMPI PUSH2 0x5B6 PUSH2 0x4E9 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP9 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x5CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x612 JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0x5F8 JUMP JUMPDEST POP PUSH1 0x0 SWAP3 ADD SWAP2 DUP3 MSTORE POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH12 0x6380CFDB8C09DE9F5E19DEEC CREATE DUP9 0xD4 RETURNDATASIZE 0x28 SWAP14 MOD 0xE 0xEE 0xA9 RETURN 0xDE 0xEA 0x2B SLOAD 0xD9 PUSH16 0x56D264736F6C63430008120033000000 ",
|
|
3068
|
+
"sourceMap": "400:756:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;855:299;;;;;;;;;;-1:-1:-1;855:299:2;;;;;:::i;:::-;;:::i;:::-;;;572:42:4;560:55;;;542:74;;530:2;515:18;855:299:2;;;;;;;485:328;;;;;;:::i;:::-;;:::i;855:299::-;1072:32;;2059:66:4;2046:2;2042:15;;;2038:88;1072:32:2;;;2026:101:4;2143:12;;;2136:28;;;940:16:2;;2180:12:4;;1072:32:2;;;;;;;;;;;;1062:43;;;;;;1055:50;;1122:25;1142:4;1122:19;:25::i;:::-;1115:32;855:299;-1:-1:-1;;;855:299:2:o;485:328::-;709:34;;2059:66:4;726:10:2;2046:2:4;2042:15;2038:88;709:34:2;;;2026:101:4;2143:12;;;2136:28;;;577:16:2;;2180:12:4;;709:34:2;;;;;;;;;;;;699:45;;;;;;692:52;;761:45;776:4;782:12;796:9;761:14;:45::i;3294:123:1:-;3352:7;3378:32;3390:4;3404;3378:11;:32::i;:::-;3371:39;3294:123;-1:-1:-1;;3294:123:1:o;2520:768::-;2610:16;2638:31;2672:14;;;;;;;;;;;;;;;;;2638:48;;2697:13;3020:4;2999:18;2993:25;2988:2;2968:18;2964:27;2961:1;2953:72;2944:81;-1:-1:-1;3052:19:1;;;3044:49;;;;;;;2405:2:4;3044:49:1;;;2387:21:4;2444:2;2424:18;;;2417:30;2483:19;2463:18;;;2456:47;2520:18;;3044:49:1;;;;;;;;;3115:17;3127:4;3115:11;:17::i;:::-;3104:28;;3143:12;3161:5;:10;;3180:5;3188:12;3161:40;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3142:59;;;3219:7;:36;;;;-1:-1:-1;3230:20:1;;;;:25;;3219:36;3211:70;;;;;;;3168:2:4;3211:70:1;;;3150:21:4;3207:2;3187:18;;;3180:30;3246:23;3226:18;;;3219:51;3287:18;;3211:70:1;2966:345:4;3211:70:1;2628:660;;;2520:768;;;;;:::o;3423:862::-;2498:14;;;;;;;;;;;;;;;;;3556:258;;3617:12;3556:258;;;3527:92:4;;;;3669:66;3656:2;3652:15;;;3648:88;3635:11;;;3628:109;3753:12;;;3746:28;;;2488:25:1;3790:12:4;;;3783:28;-1:-1:-1;;;;3533:309:1;;3827:12:4;;3556:258:1;;;;;;;;;;;;;3533:291;;;;;;393:10:0;275:138;3533:309:1;3899:347;;4193:66:4;3899:347:1;;;4181:79:4;4310:66;4297:2;4293:15;;;4289:88;4276:11;;;4269:109;4408:66;4394:12;;;4387:88;3517:325:1;;-1:-1:-1;3872:406:1;;4491:12:4;;3899:347:1;3850:659:4;3872:406:1;3853:425;3423:862;-1:-1:-1;;;;3423:862:1:o;14:377:4:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;198:9;185:23;248:42;241:5;237:54;230:5;227:65;217:93;;306:1;303;296:12;217:93;329:5;381:2;366:18;;;;353:32;;-1:-1:-1;;;14:377:4:o;627:184::-;679:77;676:1;669:88;776:4;773:1;766:15;800:4;797:1;790:15;816:1048;893:6;901;954:2;942:9;933:7;929:23;925:32;922:52;;;970:1;967;960:12;922:52;1006:9;993:23;983:33;;1067:2;1056:9;1052:18;1039:32;1090:18;1131:2;1123:6;1120:14;1117:34;;;1147:1;1144;1137:12;1117:34;1185:6;1174:9;1170:22;1160:32;;1230:7;1223:4;1219:2;1215:13;1211:27;1201:55;;1252:1;1249;1242:12;1201:55;1288:2;1275:16;1310:2;1306;1303:10;1300:36;;;1316:18;;:::i;:::-;1450:2;1444:9;1512:4;1504:13;;1355:66;1500:22;;;1524:2;1496:31;1492:40;1480:53;;;1548:18;;;1568:22;;;1545:46;1542:72;;;1594:18;;:::i;:::-;1634:10;1630:2;1623:22;1669:2;1661:6;1654:18;1709:7;1704:2;1699;1695;1691:11;1687:20;1684:33;1681:53;;;1730:1;1727;1720:12;1681:53;1786:2;1781;1777;1773:11;1768:2;1760:6;1756:15;1743:46;1831:1;1826:2;1821;1813:6;1809:15;1805:24;1798:35;1852:6;1842:16;;;;;;;816:1048;;;;;:::o;2549:412::-;2678:3;2716:6;2710:13;2741:1;2751:129;2765:6;2762:1;2759:13;2751:129;;;2863:4;2847:14;;;2843:25;;2837:32;2824:11;;;2817:53;2780:12;2751:129;;;-1:-1:-1;2935:1:4;2899:16;;2924:13;;;-1:-1:-1;2899:16:4;2549:412;-1:-1:-1;2549:412:4:o"
|
|
3069
|
+
},
|
|
3070
|
+
"gasEstimates": {
|
|
3071
|
+
"creation": {
|
|
3072
|
+
"codeDepositCost": "324400",
|
|
3073
|
+
"executionCost": "362",
|
|
3074
|
+
"totalCost": "324762"
|
|
3075
|
+
},
|
|
3076
|
+
"external": {
|
|
3077
|
+
"deploy(bytes32,bytes)": "infinite",
|
|
3078
|
+
"getDeployed(address,bytes32)": "infinite"
|
|
3079
|
+
}
|
|
3080
|
+
},
|
|
3081
|
+
"methodIdentifiers": {
|
|
3082
|
+
"deploy(bytes32,bytes)": "cdcb760a",
|
|
3083
|
+
"getDeployed(address,bytes32)": "50f1c464"
|
|
3084
|
+
}
|
|
3085
|
+
},
|
|
3086
|
+
"metadata": "{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"creationCode\",\"type\":\"bytes\"}],\"name\":\"deploy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployed\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"getDeployed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployed\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"zefram.eth\",\"kind\":\"dev\",\"methods\":{\"deploy(bytes32,bytes)\":{\"details\":\"The provided salt is hashed together with msg.sender to generate the final salt\",\"params\":{\"creationCode\":\"The creation code of the contract to deploy\",\"salt\":\"The deployer-specific salt for determining the deployed contract's address\"},\"returns\":{\"deployed\":\"The address of the deployed contract\"}},\"getDeployed(address,bytes32)\":{\"details\":\"The provided salt is hashed together with the deployer address to generate the final salt\",\"params\":{\"deployer\":\"The deployer account that will call deploy()\",\"salt\":\"The deployer-specific salt for determining the deployed contract's address\"},\"returns\":{\"deployed\":\"The address of the contract that will be deployed\"}}},\"title\":\"Factory for deploying contracts to deterministic addresses via CREATE3\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"deploy(bytes32,bytes)\":{\"notice\":\"Deploys a contract using CREATE3\"},\"getDeployed(address,bytes32)\":{\"notice\":\"Predicts the address of a deployed contract\"}},\"notice\":\"Enables deploying contracts using CREATE3. Each deployer (msg.sender) has its own namespace for deployed addresses.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/CREATE3Factory.sol\":\"CREATE3Factory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":30000},\"remappings\":[]},\"sources\":{\"contracts/Bytes32AddressLib.sol\":{\"content\":\"// SPDX-License-Identifier: AGPL-3.0\\npragma solidity >=0.8.0;\\n\\n/// @notice Library for converting between addresses and bytes32 values.\\n/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/Bytes32AddressLib.sol)\\nlibrary Bytes32AddressLib {\\n function fromLast20Bytes(bytes32 bytesValue) internal pure returns (address) {\\n return address(uint160(uint256(bytesValue)));\\n }\\n\\n function fillLast12Bytes(address addressValue) internal pure returns (bytes32) {\\n return bytes32(bytes20(addressValue));\\n }\\n}\\n\",\"keccak256\":\"0x1fef64595d11ea4363319297e8d0e751968b6f0cd23cfd9a1046cfe80fa3c1a1\",\"license\":\"AGPL-3.0\"},\"contracts/CREATE3.sol\":{\"content\":\"// SPDX-License-Identifier: AGPL-3.0\\npragma solidity >=0.8.0;\\n\\nimport { Bytes32AddressLib } from \\\"./Bytes32AddressLib.sol\\\";\\n\\n/// @notice Deploy to deterministic addresses without an initcode factor.\\n/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/CREATE3.sol)\\n/// @author Modified from 0xSequence (https://github.com/0xSequence/create3/blob/master/contracts/Create3.sol)\\nlibrary CREATE3 {\\n using Bytes32AddressLib for bytes32;\\n\\n //--------------------------------------------------------------------------------//\\n // Opcode | Opcode + Arguments | Description | Stack View //\\n //--------------------------------------------------------------------------------//\\n // 0x36 | 0x36 | CALLDATASIZE | size //\\n // 0x3d | 0x3d | RETURNDATASIZE | 0 size //\\n // 0x3d | 0x3d | RETURNDATASIZE | 0 0 size //\\n // 0x37 | 0x37 | CALLDATACOPY | //\\n // 0x36 | 0x36 | CALLDATASIZE | size //\\n // 0x3d | 0x3d | RETURNDATASIZE | 0 size //\\n // 0x34 | 0x34 | CALLVALUE | value 0 size //\\n // 0xf0 | 0xf0 | CREATE | newContract //\\n //--------------------------------------------------------------------------------//\\n // Opcode | Opcode + Arguments | Description | Stack View //\\n //--------------------------------------------------------------------------------//\\n // 0x67 | 0x67XXXXXXXXXXXXXXXX | PUSH8 bytecode | bytecode //\\n // 0x3d | 0x3d | RETURNDATASIZE | 0 bytecode //\\n // 0x52 | 0x52 | MSTORE | //\\n // 0x60 | 0x6008 | PUSH1 08 | 8 //\\n // 0x60 | 0x6018 | PUSH1 18 | 24 8 //\\n // 0xf3 | 0xf3 | RETURN | //\\n //--------------------------------------------------------------------------------//\\n bytes internal constant PROXY_BYTECODE = hex\\\"67_36_3d_3d_37_36_3d_34_f0_3d_52_60_08_60_18_f3\\\";\\n\\n bytes32 internal constant PROXY_BYTECODE_HASH = keccak256(PROXY_BYTECODE);\\n\\n function deploy(bytes32 salt, bytes memory creationCode, uint256 value) internal returns (address deployed) {\\n bytes memory proxyChildBytecode = PROXY_BYTECODE;\\n\\n address proxy;\\n /// @solidity memory-safe-assembly\\n assembly {\\n // Deploy a new contract with our pre-made bytecode via CREATE2.\\n // We start 32 bytes into the code to avoid copying the byte length.\\n proxy := create2(0, add(proxyChildBytecode, 32), mload(proxyChildBytecode), salt)\\n }\\n require(proxy != address(0), \\\"DEPLOYMENT_FAILED\\\");\\n\\n deployed = getDeployed(salt);\\n (bool success, ) = proxy.call{ value: value }(creationCode);\\n require(success && deployed.code.length != 0, \\\"INITIALIZATION_FAILED\\\");\\n }\\n\\n function getDeployed(bytes32 salt) internal view returns (address) {\\n return getDeployed(salt, address(this));\\n }\\n\\n function getDeployed(bytes32 salt, address creator) internal pure returns (address) {\\n address proxy = keccak256(\\n abi.encodePacked(\\n // Prefix:\\n bytes1(0xFF),\\n // Creator:\\n creator,\\n // Salt:\\n salt,\\n // Bytecode hash:\\n PROXY_BYTECODE_HASH\\n )\\n ).fromLast20Bytes();\\n\\n return\\n keccak256(\\n abi.encodePacked(\\n // 0xd6 = 0xc0 (short RLP prefix) + 0x16 (length of: 0x94 ++ proxy ++ 0x01)\\n // 0x94 = 0x80 + 0x14 (0x14 = the length of an address, 20 bytes, in hex)\\n hex\\\"d6_94\\\",\\n proxy,\\n hex\\\"01\\\" // Nonce of the proxy contract (1)\\n )\\n ).fromLast20Bytes();\\n }\\n}\\n\",\"keccak256\":\"0xf39b6e7200f8debc79f7e17317d38416d915fa555de667867c2649497991dd4c\",\"license\":\"AGPL-3.0\"},\"contracts/CREATE3Factory.sol\":{\"content\":\"// SPDX-License-Identifier: AGPL-3.0\\npragma solidity ^0.8.13;\\n\\nimport { CREATE3 } from \\\"./CREATE3.sol\\\";\\n\\nimport { ICREATE3Factory } from \\\"./ICREATE3Factory.sol\\\";\\n\\n/// @title Factory for deploying contracts to deterministic addresses via CREATE3\\n/// @author zefram.eth\\n/// @notice Enables deploying contracts using CREATE3. Each deployer (msg.sender) has\\n/// its own namespace for deployed addresses.\\ncontract CREATE3Factory is ICREATE3Factory {\\n /// @inheritdoc\\tICREATE3Factory\\n function deploy(bytes32 salt, bytes memory creationCode) external payable override returns (address deployed) {\\n // hash salt with the deployer address to give each deployer its own namespace\\n salt = keccak256(abi.encodePacked(msg.sender, salt));\\n return CREATE3.deploy(salt, creationCode, msg.value);\\n }\\n\\n /// @inheritdoc\\tICREATE3Factory\\n function getDeployed(address deployer, bytes32 salt) external view override returns (address deployed) {\\n // hash salt with the deployer address to give each deployer its own namespace\\n salt = keccak256(abi.encodePacked(deployer, salt));\\n return CREATE3.getDeployed(salt);\\n }\\n}\\n\",\"keccak256\":\"0xcd8982e1f03dc675e0730899ae03a6dd57784305fb58b0be29bcd43b3f63aea9\",\"license\":\"AGPL-3.0\"},\"contracts/ICREATE3Factory.sol\":{\"content\":\"// SPDX-License-Identifier: AGPL-3.0\\npragma solidity >=0.6.0;\\n\\n/// @title Factory for deploying contracts to deterministic addresses via CREATE3\\n/// @author zefram.eth\\n/// @notice Enables deploying contracts using CREATE3. Each deployer (msg.sender) has\\n/// its own namespace for deployed addresses.\\ninterface ICREATE3Factory {\\n /// @notice Deploys a contract using CREATE3\\n /// @dev The provided salt is hashed together with msg.sender to generate the final salt\\n /// @param salt The deployer-specific salt for determining the deployed contract's address\\n /// @param creationCode The creation code of the contract to deploy\\n /// @return deployed The address of the deployed contract\\n function deploy(bytes32 salt, bytes memory creationCode) external payable returns (address deployed);\\n\\n /// @notice Predicts the address of a deployed contract\\n /// @dev The provided salt is hashed together with the deployer address to generate the final salt\\n /// @param deployer The deployer account that will call deploy()\\n /// @param salt The deployer-specific salt for determining the deployed contract's address\\n /// @return deployed The address of the contract that will be deployed\\n function getDeployed(address deployer, bytes32 salt) external view returns (address deployed);\\n}\\n\",\"keccak256\":\"0x562e0200ed0c86ccaea5f7f0b948281ed4baa82ad278f7a53060dcdc63acc11a\",\"license\":\"AGPL-3.0\"}},\"version\":1}",
|
|
3087
|
+
"storageLayout": {
|
|
3088
|
+
"storage": [],
|
|
3089
|
+
"types": null
|
|
3090
|
+
},
|
|
3091
|
+
"userdoc": {
|
|
3092
|
+
"kind": "user",
|
|
3093
|
+
"methods": {
|
|
3094
|
+
"deploy(bytes32,bytes)": {
|
|
3095
|
+
"notice": "Deploys a contract using CREATE3"
|
|
3096
|
+
},
|
|
3097
|
+
"getDeployed(address,bytes32)": {
|
|
3098
|
+
"notice": "Predicts the address of a deployed contract"
|
|
3099
|
+
}
|
|
3100
|
+
},
|
|
3101
|
+
"notice": "Enables deploying contracts using CREATE3. Each deployer (msg.sender) has its own namespace for deployed addresses.",
|
|
3102
|
+
"version": 1
|
|
3103
|
+
},
|
|
3104
|
+
"solcInput": "{\n \"language\": \"Solidity\",\n \"sources\": {\n \"contracts/Bytes32AddressLib.sol\": {\n \"content\": \"// SPDX-License-Identifier: AGPL-3.0\\npragma solidity >=0.8.0;\\n\\n/// @notice Library for converting between addresses and bytes32 values.\\n/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/Bytes32AddressLib.sol)\\nlibrary Bytes32AddressLib {\\n function fromLast20Bytes(bytes32 bytesValue) internal pure returns (address) {\\n return address(uint160(uint256(bytesValue)));\\n }\\n\\n function fillLast12Bytes(address addressValue) internal pure returns (bytes32) {\\n return bytes32(bytes20(addressValue));\\n }\\n}\\n\"\n },\n \"contracts/CREATE3.sol\": {\n \"content\": \"// SPDX-License-Identifier: AGPL-3.0\\npragma solidity >=0.8.0;\\n\\nimport { Bytes32AddressLib } from \\\"./Bytes32AddressLib.sol\\\";\\n\\n/// @notice Deploy to deterministic addresses without an initcode factor.\\n/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/CREATE3.sol)\\n/// @author Modified from 0xSequence (https://github.com/0xSequence/create3/blob/master/contracts/Create3.sol)\\nlibrary CREATE3 {\\n using Bytes32AddressLib for bytes32;\\n\\n //--------------------------------------------------------------------------------//\\n // Opcode | Opcode + Arguments | Description | Stack View //\\n //--------------------------------------------------------------------------------//\\n // 0x36 | 0x36 | CALLDATASIZE | size //\\n // 0x3d | 0x3d | RETURNDATASIZE | 0 size //\\n // 0x3d | 0x3d | RETURNDATASIZE | 0 0 size //\\n // 0x37 | 0x37 | CALLDATACOPY | //\\n // 0x36 | 0x36 | CALLDATASIZE | size //\\n // 0x3d | 0x3d | RETURNDATASIZE | 0 size //\\n // 0x34 | 0x34 | CALLVALUE | value 0 size //\\n // 0xf0 | 0xf0 | CREATE | newContract //\\n //--------------------------------------------------------------------------------//\\n // Opcode | Opcode + Arguments | Description | Stack View //\\n //--------------------------------------------------------------------------------//\\n // 0x67 | 0x67XXXXXXXXXXXXXXXX | PUSH8 bytecode | bytecode //\\n // 0x3d | 0x3d | RETURNDATASIZE | 0 bytecode //\\n // 0x52 | 0x52 | MSTORE | //\\n // 0x60 | 0x6008 | PUSH1 08 | 8 //\\n // 0x60 | 0x6018 | PUSH1 18 | 24 8 //\\n // 0xf3 | 0xf3 | RETURN | //\\n //--------------------------------------------------------------------------------//\\n bytes internal constant PROXY_BYTECODE = hex\\\"67_36_3d_3d_37_36_3d_34_f0_3d_52_60_08_60_18_f3\\\";\\n\\n bytes32 internal constant PROXY_BYTECODE_HASH = keccak256(PROXY_BYTECODE);\\n\\n function deploy(bytes32 salt, bytes memory creationCode, uint256 value) internal returns (address deployed) {\\n bytes memory proxyChildBytecode = PROXY_BYTECODE;\\n\\n address proxy;\\n /// @solidity memory-safe-assembly\\n assembly {\\n // Deploy a new contract with our pre-made bytecode via CREATE2.\\n // We start 32 bytes into the code to avoid copying the byte length.\\n proxy := create2(0, add(proxyChildBytecode, 32), mload(proxyChildBytecode), salt)\\n }\\n require(proxy != address(0), \\\"DEPLOYMENT_FAILED\\\");\\n\\n deployed = getDeployed(salt);\\n (bool success, ) = proxy.call{ value: value }(creationCode);\\n require(success && deployed.code.length != 0, \\\"INITIALIZATION_FAILED\\\");\\n }\\n\\n function getDeployed(bytes32 salt) internal view returns (address) {\\n return getDeployed(salt, address(this));\\n }\\n\\n function getDeployed(bytes32 salt, address creator) internal pure returns (address) {\\n address proxy = keccak256(\\n abi.encodePacked(\\n // Prefix:\\n bytes1(0xFF),\\n // Creator:\\n creator,\\n // Salt:\\n salt,\\n // Bytecode hash:\\n PROXY_BYTECODE_HASH\\n )\\n ).fromLast20Bytes();\\n\\n return\\n keccak256(\\n abi.encodePacked(\\n // 0xd6 = 0xc0 (short RLP prefix) + 0x16 (length of: 0x94 ++ proxy ++ 0x01)\\n // 0x94 = 0x80 + 0x14 (0x14 = the length of an address, 20 bytes, in hex)\\n hex\\\"d6_94\\\",\\n proxy,\\n hex\\\"01\\\" // Nonce of the proxy contract (1)\\n )\\n ).fromLast20Bytes();\\n }\\n}\\n\"\n },\n \"contracts/CREATE3Factory.sol\": {\n \"content\": \"// SPDX-License-Identifier: AGPL-3.0\\npragma solidity ^0.8.13;\\n\\nimport { CREATE3 } from \\\"./CREATE3.sol\\\";\\n\\nimport { ICREATE3Factory } from \\\"./ICREATE3Factory.sol\\\";\\n\\n/// @title Factory for deploying contracts to deterministic addresses via CREATE3\\n/// @author zefram.eth\\n/// @notice Enables deploying contracts using CREATE3. Each deployer (msg.sender) has\\n/// its own namespace for deployed addresses.\\ncontract CREATE3Factory is ICREATE3Factory {\\n /// @inheritdoc\\tICREATE3Factory\\n function deploy(bytes32 salt, bytes memory creationCode) external payable override returns (address deployed) {\\n // hash salt with the deployer address to give each deployer its own namespace\\n salt = keccak256(abi.encodePacked(msg.sender, salt));\\n return CREATE3.deploy(salt, creationCode, msg.value);\\n }\\n\\n /// @inheritdoc\\tICREATE3Factory\\n function getDeployed(address deployer, bytes32 salt) external view override returns (address deployed) {\\n // hash salt with the deployer address to give each deployer its own namespace\\n salt = keccak256(abi.encodePacked(deployer, salt));\\n return CREATE3.getDeployed(salt);\\n }\\n}\\n\"\n },\n \"contracts/ICREATE3Factory.sol\": {\n \"content\": \"// SPDX-License-Identifier: AGPL-3.0\\npragma solidity >=0.6.0;\\n\\n/// @title Factory for deploying contracts to deterministic addresses via CREATE3\\n/// @author zefram.eth\\n/// @notice Enables deploying contracts using CREATE3. Each deployer (msg.sender) has\\n/// its own namespace for deployed addresses.\\ninterface ICREATE3Factory {\\n /// @notice Deploys a contract using CREATE3\\n /// @dev The provided salt is hashed together with msg.sender to generate the final salt\\n /// @param salt The deployer-specific salt for determining the deployed contract's address\\n /// @param creationCode The creation code of the contract to deploy\\n /// @return deployed The address of the deployed contract\\n function deploy(bytes32 salt, bytes memory creationCode) external payable returns (address deployed);\\n\\n /// @notice Predicts the address of a deployed contract\\n /// @dev The provided salt is hashed together with the deployer address to generate the final salt\\n /// @param deployer The deployer account that will call deploy()\\n /// @param salt The deployer-specific salt for determining the deployed contract's address\\n /// @return deployed The address of the contract that will be deployed\\n function getDeployed(address deployer, bytes32 salt) external view returns (address deployed);\\n}\\n\"\n }\n },\n \"settings\": {\n \"optimizer\": {\n \"enabled\": true,\n \"runs\": 30000\n },\n \"outputSelection\": {\n \"*\": {\n \"*\": [\n \"abi\",\n \"evm.bytecode\",\n \"evm.deployedBytecode\",\n \"evm.methodIdentifiers\",\n \"metadata\",\n \"devdoc\",\n \"userdoc\",\n \"storageLayout\",\n \"evm.gasEstimates\"\n ],\n \"\": [\n \"ast\"\n ]\n }\n },\n \"metadata\": {\n \"useLiteralContent\": true\n }\n }\n}",
|
|
3105
|
+
"solcInputHash": "38b0c9933807d1cf29142f846a11b5fb",
|
|
3106
|
+
"transactionHash": "0x2f828e9962c6e4a83fcb26b59bf336ed2d0db0dd0f4b092e3516ea9959651515",
|
|
3107
|
+
"args": []
|
|
3108
|
+
},
|
|
3109
|
+
"decoded": {
|
|
3110
|
+
"from": "0x7A880d63292345e8bc0C2499b7f440814fDab698",
|
|
3111
|
+
"maxFeePerGas": "1500000100",
|
|
3112
|
+
"maxPriorityFeePerGas": "1500000000",
|
|
3113
|
+
"gasLimit": "400278",
|
|
3114
|
+
"to": null,
|
|
3115
|
+
"value": "0",
|
|
3116
|
+
"nonce": 0,
|
|
3117
|
+
"data": "0x608060405234801561001057600080fd5b50610656806100206000396000f3fe6080604052600436106100295760003560e01c806350f1c4641461002e578063cdcb760a14610077575b600080fd5b34801561003a57600080fd5b5061004e6100493660046104a4565b61008a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61004e610085366004610518565b6100ee565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b166020820152603481018290526000906054016040516020818303038152906040528051906020012091506100e78261014c565b9392505050565b6040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b166020820152603481018390526000906054016040516020818303038152906040528051906020012092506100e783833461015e565b60006101588230610335565b92915050565b6000806040518060400160405280601081526020017f67363d3d37363d34f03d5260086018f30000000000000000000000000000000081525090506000858251602084016000f5905073ffffffffffffffffffffffffffffffffffffffff8116610229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4445504c4f594d454e545f4641494c454400000000000000000000000000000060448201526064015b60405180910390fd5b6102328661014c565b925060008173ffffffffffffffffffffffffffffffffffffffff16858760405161025c91906105f1565b60006040518083038185875af1925050503d8060008114610299576040519150601f19603f3d011682016040523d82523d6000602084013e61029e565b606091505b505090508080156102c5575073ffffffffffffffffffffffffffffffffffffffff84163b15155b61032b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f494e495449414c495a4154494f4e5f4641494c454400000000000000000000006044820152606401610220565b5050509392505050565b604080518082018252601081527f67363d3d37363d34f03d5260086018f30000000000000000000000000000000060209182015290517fff00000000000000000000000000000000000000000000000000000000000000918101919091527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606083901b166021820152603581018390527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f60558201526000908190610412906075015b6040516020818303038152906040528051906020012090565b6040517fd69400000000000000000000000000000000000000000000000000000000000060208201527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606083901b1660228201527f0100000000000000000000000000000000000000000000000000000000000000603682015290915061049c906037016103f9565b949350505050565b600080604083850312156104b757600080fd5b823573ffffffffffffffffffffffffffffffffffffffff811681146104db57600080fd5b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561052b57600080fd5b82359150602083013567ffffffffffffffff8082111561054a57600080fd5b818501915085601f83011261055e57600080fd5b813581811115610570576105706104e9565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156105b6576105b66104e9565b816040528281528860208487010111156105cf57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b8181101561061257602081860181015185830152016105f8565b50600092019182525091905056fea26469706673582212206b6380cfdb8c09de9f5e19deecf088d43d289d060eeea9f3deea2b54d96f56d264736f6c63430008120033",
|
|
3118
|
+
"r": "0xa777192e3c0839ee5cb0a8363603f35e78871baf640e48d3ba35774f57c85cbc",
|
|
3119
|
+
"s": "0x554e1eb33d88a636f6e97dddbda61f0cfbe34fe702adf7b72740cb600d5f1b1c",
|
|
3120
|
+
"v": 0,
|
|
3121
|
+
"chainId": 3441005
|
|
3122
|
+
}
|
|
3123
|
+
}
|
|
3124
|
+
}
|