Created
July 15, 2021 19:02
-
-
Save leonardoalt/39511873f2750be5fd44fcf032ae6c97 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.code | |
PUSH 80 contract Verifier {\n using... | |
PUSH 40 contract Verifier {\n using... | |
MSTORE contract Verifier {\n using... | |
CALLVALUE contract Verifier {\n using... | |
DUP1 contract Verifier {\n using... | |
ISZERO contract Verifier {\n using... | |
PUSH [tag] 1 contract Verifier {\n using... | |
JUMPI contract Verifier {\n using... | |
PUSH 0 contract Verifier {\n using... | |
DUP1 contract Verifier {\n using... | |
REVERT contract Verifier {\n using... | |
tag 1 contract Verifier {\n using... | |
JUMPDEST contract Verifier {\n using... | |
POP contract Verifier {\n using... | |
PUSH #[$] 0000000000000000000000000000000000000000000000000000000000000000 contract Verifier {\n using... | |
DUP1 contract Verifier {\n using... | |
PUSH [$] 0000000000000000000000000000000000000000000000000000000000000000 contract Verifier {\n using... | |
PUSH 0 contract Verifier {\n using... | |
CODECOPY contract Verifier {\n using... | |
PUSH 0 contract Verifier {\n using... | |
RETURN contract Verifier {\n using... | |
.data | |
0: | |
.code | |
PUSH 80 contract Verifier {\n using... | |
PUSH 40 contract Verifier {\n using... | |
MSTORE contract Verifier {\n using... | |
CALLVALUE contract Verifier {\n using... | |
DUP1 contract Verifier {\n using... | |
ISZERO contract Verifier {\n using... | |
PUSH [tag] 1 contract Verifier {\n using... | |
JUMPI contract Verifier {\n using... | |
PUSH 0 contract Verifier {\n using... | |
DUP1 contract Verifier {\n using... | |
REVERT contract Verifier {\n using... | |
tag 1 contract Verifier {\n using... | |
JUMPDEST contract Verifier {\n using... | |
POP contract Verifier {\n using... | |
PUSH 4 contract Verifier {\n using... | |
CALLDATASIZE contract Verifier {\n using... | |
LT contract Verifier {\n using... | |
PUSH [tag] 2 contract Verifier {\n using... | |
JUMPI contract Verifier {\n using... | |
PUSH 0 contract Verifier {\n using... | |
CALLDATALOAD contract Verifier {\n using... | |
PUSH E0 contract Verifier {\n using... | |
SHR contract Verifier {\n using... | |
DUP1 contract Verifier {\n using... | |
PUSH 415DF87C contract Verifier {\n using... | |
EQ contract Verifier {\n using... | |
PUSH [tag] 3 contract Verifier {\n using... | |
JUMPI contract Verifier {\n using... | |
tag 2 contract Verifier {\n using... | |
JUMPDEST contract Verifier {\n using... | |
PUSH 0 contract Verifier {\n using... | |
DUP1 contract Verifier {\n using... | |
REVERT contract Verifier {\n using... | |
tag 3 function verifyTx(\n ... | |
JUMPDEST function verifyTx(\n ... | |
PUSH [tag] 4 function verifyTx(\n ... | |
PUSH 4 function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
CALLDATASIZE function verifyTx(\n ... | |
SUB function verifyTx(\n ... | |
PUSH 160 function verifyTx(\n ... | |
DUP2 function verifyTx(\n ... | |
LT function verifyTx(\n ... | |
ISZERO function verifyTx(\n ... | |
PUSH [tag] 5 function verifyTx(\n ... | |
JUMPI function verifyTx(\n ... | |
PUSH 0 function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
REVERT function verifyTx(\n ... | |
tag 5 function verifyTx(\n ... | |
JUMPDEST function verifyTx(\n ... | |
DUP2 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
PUSH 40 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
PUSH 2 function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
PUSH 20 function verifyTx(\n ... | |
MUL function verifyTx(\n ... | |
PUSH 40 function verifyTx(\n ... | |
MLOAD function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
DUP2 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
PUSH 40 function verifyTx(\n ... | |
MSTORE function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
SWAP3 function verifyTx(\n ... | |
SWAP2 function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
DUP3 function verifyTx(\n ... | |
PUSH 2 function verifyTx(\n ... | |
PUSH 20 function verifyTx(\n ... | |
MUL function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
DUP3 function verifyTx(\n ... | |
DUP5 function verifyTx(\n ... | |
CALLDATACOPY function verifyTx(\n ... | |
PUSH 0 function verifyTx(\n ... | |
DUP2 function verifyTx(\n ... | |
DUP5 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
MSTORE function verifyTx(\n ... | |
PUSH 1F function verifyTx(\n ... | |
NOT function verifyTx(\n ... | |
PUSH 1F function verifyTx(\n ... | |
DUP3 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
AND function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
DUP4 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
SWAP3 function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
SWAP2 function verifyTx(\n ... | |
SWAP3 function verifyTx(\n ... | |
SWAP2 function verifyTx(\n ... | |
SWAP3 function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
PUSH 80 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
PUSH 2 function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
PUSH 20 function verifyTx(\n ... | |
MUL function verifyTx(\n ... | |
PUSH 40 function verifyTx(\n ... | |
MLOAD function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
DUP2 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
PUSH 40 function verifyTx(\n ... | |
MSTORE function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
SWAP3 function verifyTx(\n ... | |
SWAP2 function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
PUSH 0 function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
tag 6 function verifyTx(\n ... | |
JUMPDEST function verifyTx(\n ... | |
DUP3 function verifyTx(\n ... | |
DUP3 function verifyTx(\n ... | |
LT function verifyTx(\n ... | |
ISZERO function verifyTx(\n ... | |
PUSH [tag] 7 function verifyTx(\n ... | |
JUMPI function verifyTx(\n ... | |
DUP4 function verifyTx(\n ... | |
DUP3 function verifyTx(\n ... | |
PUSH 40 function verifyTx(\n ... | |
MUL function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
PUSH 2 function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
PUSH 20 function verifyTx(\n ... | |
MUL function verifyTx(\n ... | |
PUSH 40 function verifyTx(\n ... | |
MLOAD function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
DUP2 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
PUSH 40 function verifyTx(\n ... | |
MSTORE function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
SWAP3 function verifyTx(\n ... | |
SWAP2 function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
DUP3 function verifyTx(\n ... | |
PUSH 2 function verifyTx(\n ... | |
PUSH 20 function verifyTx(\n ... | |
MUL function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
DUP3 function verifyTx(\n ... | |
DUP5 function verifyTx(\n ... | |
CALLDATACOPY function verifyTx(\n ... | |
PUSH 0 function verifyTx(\n ... | |
DUP2 function verifyTx(\n ... | |
DUP5 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
MSTORE function verifyTx(\n ... | |
PUSH 1F function verifyTx(\n ... | |
NOT function verifyTx(\n ... | |
PUSH 1F function verifyTx(\n ... | |
DUP3 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
AND function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
DUP4 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
SWAP3 function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
DUP2 function verifyTx(\n ... | |
MSTORE function verifyTx(\n ... | |
PUSH 20 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
PUSH 1 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
PUSH [tag] 6 function verifyTx(\n ... | |
JUMP function verifyTx(\n ... | |
tag 7 function verifyTx(\n ... | |
JUMPDEST function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
SWAP2 function verifyTx(\n ... | |
SWAP3 function verifyTx(\n ... | |
SWAP2 function verifyTx(\n ... | |
SWAP3 function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
PUSH 40 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
PUSH 2 function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
PUSH 20 function verifyTx(\n ... | |
MUL function verifyTx(\n ... | |
PUSH 40 function verifyTx(\n ... | |
MLOAD function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
DUP2 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
PUSH 40 function verifyTx(\n ... | |
MSTORE function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
SWAP3 function verifyTx(\n ... | |
SWAP2 function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
DUP3 function verifyTx(\n ... | |
PUSH 2 function verifyTx(\n ... | |
PUSH 20 function verifyTx(\n ... | |
MUL function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
DUP3 function verifyTx(\n ... | |
DUP5 function verifyTx(\n ... | |
CALLDATACOPY function verifyTx(\n ... | |
PUSH 0 function verifyTx(\n ... | |
DUP2 function verifyTx(\n ... | |
DUP5 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
MSTORE function verifyTx(\n ... | |
PUSH 1F function verifyTx(\n ... | |
NOT function verifyTx(\n ... | |
PUSH 1F function verifyTx(\n ... | |
DUP3 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
AND function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
DUP4 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
SWAP3 function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
SWAP2 function verifyTx(\n ... | |
SWAP3 function verifyTx(\n ... | |
SWAP2 function verifyTx(\n ... | |
SWAP3 function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
PUSH 60 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
PUSH 3 function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
PUSH 20 function verifyTx(\n ... | |
MUL function verifyTx(\n ... | |
PUSH 40 function verifyTx(\n ... | |
MLOAD function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
DUP2 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
PUSH 40 function verifyTx(\n ... | |
MSTORE function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
SWAP3 function verifyTx(\n ... | |
SWAP2 function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
DUP3 function verifyTx(\n ... | |
PUSH 3 function verifyTx(\n ... | |
PUSH 20 function verifyTx(\n ... | |
MUL function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
DUP3 function verifyTx(\n ... | |
DUP5 function verifyTx(\n ... | |
CALLDATACOPY function verifyTx(\n ... | |
PUSH 0 function verifyTx(\n ... | |
DUP2 function verifyTx(\n ... | |
DUP5 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
MSTORE function verifyTx(\n ... | |
PUSH 1F function verifyTx(\n ... | |
NOT function verifyTx(\n ... | |
PUSH 1F function verifyTx(\n ... | |
DUP3 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
AND function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
DUP4 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
SWAP3 function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
SWAP2 function verifyTx(\n ... | |
SWAP3 function verifyTx(\n ... | |
SWAP2 function verifyTx(\n ... | |
SWAP3 function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
PUSH [tag] 8 function verifyTx(\n ... | |
JUMP [in] function verifyTx(\n ... | |
tag 4 function verifyTx(\n ... | |
JUMPDEST function verifyTx(\n ... | |
PUSH 40 function verifyTx(\n ... | |
MLOAD function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
DUP3 function verifyTx(\n ... | |
ISZERO function verifyTx(\n ... | |
ISZERO function verifyTx(\n ... | |
DUP2 function verifyTx(\n ... | |
MSTORE function verifyTx(\n ... | |
PUSH 20 function verifyTx(\n ... | |
ADD function verifyTx(\n ... | |
SWAP2 function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
PUSH 40 function verifyTx(\n ... | |
MLOAD function verifyTx(\n ... | |
DUP1 function verifyTx(\n ... | |
SWAP2 function verifyTx(\n ... | |
SUB function verifyTx(\n ... | |
SWAP1 function verifyTx(\n ... | |
RETURN function verifyTx(\n ... | |
tag 8 function verifyTx(\n ... | |
JUMPDEST function verifyTx(\n ... | |
PUSH 0 bool r | |
PUSH [tag] 10 Proof memory proof | |
PUSH [tag] 11 Proof memory proof | |
JUMP [in] Proof memory proof | |
tag 10 Proof memory proof | |
JUMPDEST Proof memory proof | |
PUSH 40 Pairing.G1Point(a[0], a[1]) | |
MLOAD Pairing.G1Point(a[0], a[1]) | |
DUP1 Pairing.G1Point(a[0], a[1]) | |
PUSH 40 Pairing.G1Point(a[0], a[1]) | |
ADD Pairing.G1Point(a[0], a[1]) | |
PUSH 40 Pairing.G1Point(a[0], a[1]) | |
MSTORE Pairing.G1Point(a[0], a[1]) | |
DUP1 Pairing.G1Point(a[0], a[1]) | |
DUP8 a | |
PUSH 0 0 | |
PUSH 2 a[0] | |
DUP2 a[0] | |
LT a[0] | |
PUSH [tag] 12 a[0] | |
JUMPI a[0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 a[0] | |
PUSH 0 a[0] | |
MSTORE a[0] | |
PUSH 32 a[0] | |
PUSH 4 a[0] | |
MSTORE a[0] | |
PUSH 24 a[0] | |
PUSH 0 a[0] | |
REVERT a[0] | |
tag 12 a[0] | |
JUMPDEST a[0] | |
PUSH 20 a[0] | |
MUL a[0] | |
ADD a[0] | |
MLOAD a[0] | |
DUP2 Pairing.G1Point(a[0], a[1]) | |
MSTORE Pairing.G1Point(a[0], a[1]) | |
PUSH 20 Pairing.G1Point(a[0], a[1]) | |
ADD Pairing.G1Point(a[0], a[1]) | |
DUP8 a | |
PUSH 1 1 | |
PUSH 2 a[1] | |
DUP2 a[1] | |
LT a[1] | |
PUSH [tag] 13 a[1] | |
JUMPI a[1] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 a[1] | |
PUSH 0 a[1] | |
MSTORE a[1] | |
PUSH 32 a[1] | |
PUSH 4 a[1] | |
MSTORE a[1] | |
PUSH 24 a[1] | |
PUSH 0 a[1] | |
REVERT a[1] | |
tag 13 a[1] | |
JUMPDEST a[1] | |
PUSH 20 a[1] | |
MUL a[1] | |
ADD a[1] | |
MLOAD a[1] | |
DUP2 Pairing.G1Point(a[0], a[1]) | |
MSTORE Pairing.G1Point(a[0], a[1]) | |
POP Pairing.G1Point(a[0], a[1]) | |
DUP2 proof | |
PUSH 0 proof.a | |
ADD proof.a | |
DUP2 proof.a = Pairing.G1Point(a[0]... | |
SWAP1 proof.a = Pairing.G1Point(a[0]... | |
MSTORE proof.a = Pairing.G1Point(a[0]... | |
POP proof.a = Pairing.G1Point(a[0]... | |
PUSH 40 Pairing.G2Point([b[0][0], b[0]... | |
MLOAD Pairing.G2Point([b[0][0], b[0]... | |
DUP1 Pairing.G2Point([b[0][0], b[0]... | |
PUSH 40 Pairing.G2Point([b[0][0], b[0]... | |
ADD Pairing.G2Point([b[0][0], b[0]... | |
PUSH 40 Pairing.G2Point([b[0][0], b[0]... | |
MSTORE Pairing.G2Point([b[0][0], b[0]... | |
DUP1 Pairing.G2Point([b[0][0], b[0]... | |
PUSH 40 Pairing.G2Point([b[0][0], b[0]... | |
MLOAD Pairing.G2Point([b[0][0], b[0]... | |
DUP1 Pairing.G2Point([b[0][0], b[0]... | |
PUSH 40 Pairing.G2Point([b[0][0], b[0]... | |
ADD Pairing.G2Point([b[0][0], b[0]... | |
PUSH 40 Pairing.G2Point([b[0][0], b[0]... | |
MSTORE Pairing.G2Point([b[0][0], b[0]... | |
DUP1 Pairing.G2Point([b[0][0], b[0]... | |
DUP9 b | |
PUSH 0 0 | |
PUSH 2 b[0] | |
DUP2 b[0] | |
LT b[0] | |
PUSH [tag] 14 b[0] | |
JUMPI b[0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 b[0] | |
PUSH 0 b[0] | |
MSTORE b[0] | |
PUSH 32 b[0] | |
PUSH 4 b[0] | |
MSTORE b[0] | |
PUSH 24 b[0] | |
PUSH 0 b[0] | |
REVERT b[0] | |
tag 14 b[0] | |
JUMPDEST b[0] | |
PUSH 20 b[0] | |
MUL b[0] | |
ADD b[0] | |
MLOAD b[0] | |
PUSH 0 0 | |
PUSH 2 b[0][0] | |
DUP2 b[0][0] | |
LT b[0][0] | |
PUSH [tag] 15 b[0][0] | |
JUMPI b[0][0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 b[0][0] | |
PUSH 0 b[0][0] | |
MSTORE b[0][0] | |
PUSH 32 b[0][0] | |
PUSH 4 b[0][0] | |
MSTORE b[0][0] | |
PUSH 24 b[0][0] | |
PUSH 0 b[0][0] | |
REVERT b[0][0] | |
tag 15 b[0][0] | |
JUMPDEST b[0][0] | |
PUSH 20 b[0][0] | |
MUL b[0][0] | |
ADD b[0][0] | |
MLOAD b[0][0] | |
DUP2 Pairing.G2Point([b[0][0], b[0]... | |
MSTORE Pairing.G2Point([b[0][0], b[0]... | |
PUSH 20 Pairing.G2Point([b[0][0], b[0]... | |
ADD Pairing.G2Point([b[0][0], b[0]... | |
DUP9 b | |
PUSH 0 0 | |
PUSH 2 b[0] | |
DUP2 b[0] | |
LT b[0] | |
PUSH [tag] 16 b[0] | |
JUMPI b[0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 b[0] | |
PUSH 0 b[0] | |
MSTORE b[0] | |
PUSH 32 b[0] | |
PUSH 4 b[0] | |
MSTORE b[0] | |
PUSH 24 b[0] | |
PUSH 0 b[0] | |
REVERT b[0] | |
tag 16 b[0] | |
JUMPDEST b[0] | |
PUSH 20 b[0] | |
MUL b[0] | |
ADD b[0] | |
MLOAD b[0] | |
PUSH 1 1 | |
PUSH 2 b[0][1] | |
DUP2 b[0][1] | |
LT b[0][1] | |
PUSH [tag] 17 b[0][1] | |
JUMPI b[0][1] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 b[0][1] | |
PUSH 0 b[0][1] | |
MSTORE b[0][1] | |
PUSH 32 b[0][1] | |
PUSH 4 b[0][1] | |
MSTORE b[0][1] | |
PUSH 24 b[0][1] | |
PUSH 0 b[0][1] | |
REVERT b[0][1] | |
tag 17 b[0][1] | |
JUMPDEST b[0][1] | |
PUSH 20 b[0][1] | |
MUL b[0][1] | |
ADD b[0][1] | |
MLOAD b[0][1] | |
DUP2 Pairing.G2Point([b[0][0], b[0]... | |
MSTORE Pairing.G2Point([b[0][0], b[0]... | |
POP Pairing.G2Point([b[0][0], b[0]... | |
DUP2 Pairing.G2Point([b[0][0], b[0]... | |
MSTORE Pairing.G2Point([b[0][0], b[0]... | |
PUSH 20 Pairing.G2Point([b[0][0], b[0]... | |
ADD Pairing.G2Point([b[0][0], b[0]... | |
PUSH 40 Pairing.G2Point([b[0][0], b[0]... | |
MLOAD Pairing.G2Point([b[0][0], b[0]... | |
DUP1 Pairing.G2Point([b[0][0], b[0]... | |
PUSH 40 Pairing.G2Point([b[0][0], b[0]... | |
ADD Pairing.G2Point([b[0][0], b[0]... | |
PUSH 40 Pairing.G2Point([b[0][0], b[0]... | |
MSTORE Pairing.G2Point([b[0][0], b[0]... | |
DUP1 Pairing.G2Point([b[0][0], b[0]... | |
DUP9 b | |
PUSH 1 1 | |
PUSH 2 b[1] | |
DUP2 b[1] | |
LT b[1] | |
PUSH [tag] 18 b[1] | |
JUMPI b[1] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 b[1] | |
PUSH 0 b[1] | |
MSTORE b[1] | |
PUSH 32 b[1] | |
PUSH 4 b[1] | |
MSTORE b[1] | |
PUSH 24 b[1] | |
PUSH 0 b[1] | |
REVERT b[1] | |
tag 18 b[1] | |
JUMPDEST b[1] | |
PUSH 20 b[1] | |
MUL b[1] | |
ADD b[1] | |
MLOAD b[1] | |
PUSH 0 0 | |
PUSH 2 b[1][0] | |
DUP2 b[1][0] | |
LT b[1][0] | |
PUSH [tag] 19 b[1][0] | |
JUMPI b[1][0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 b[1][0] | |
PUSH 0 b[1][0] | |
MSTORE b[1][0] | |
PUSH 32 b[1][0] | |
PUSH 4 b[1][0] | |
MSTORE b[1][0] | |
PUSH 24 b[1][0] | |
PUSH 0 b[1][0] | |
REVERT b[1][0] | |
tag 19 b[1][0] | |
JUMPDEST b[1][0] | |
PUSH 20 b[1][0] | |
MUL b[1][0] | |
ADD b[1][0] | |
MLOAD b[1][0] | |
DUP2 Pairing.G2Point([b[0][0], b[0]... | |
MSTORE Pairing.G2Point([b[0][0], b[0]... | |
PUSH 20 Pairing.G2Point([b[0][0], b[0]... | |
ADD Pairing.G2Point([b[0][0], b[0]... | |
DUP9 b | |
PUSH 1 1 | |
PUSH 2 b[1] | |
DUP2 b[1] | |
LT b[1] | |
PUSH [tag] 20 b[1] | |
JUMPI b[1] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 b[1] | |
PUSH 0 b[1] | |
MSTORE b[1] | |
PUSH 32 b[1] | |
PUSH 4 b[1] | |
MSTORE b[1] | |
PUSH 24 b[1] | |
PUSH 0 b[1] | |
REVERT b[1] | |
tag 20 b[1] | |
JUMPDEST b[1] | |
PUSH 20 b[1] | |
MUL b[1] | |
ADD b[1] | |
MLOAD b[1] | |
PUSH 1 1 | |
PUSH 2 b[1][1] | |
DUP2 b[1][1] | |
LT b[1][1] | |
PUSH [tag] 21 b[1][1] | |
JUMPI b[1][1] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 b[1][1] | |
PUSH 0 b[1][1] | |
MSTORE b[1][1] | |
PUSH 32 b[1][1] | |
PUSH 4 b[1][1] | |
MSTORE b[1][1] | |
PUSH 24 b[1][1] | |
PUSH 0 b[1][1] | |
REVERT b[1][1] | |
tag 21 b[1][1] | |
JUMPDEST b[1][1] | |
PUSH 20 b[1][1] | |
MUL b[1][1] | |
ADD b[1][1] | |
MLOAD b[1][1] | |
DUP2 Pairing.G2Point([b[0][0], b[0]... | |
MSTORE Pairing.G2Point([b[0][0], b[0]... | |
POP Pairing.G2Point([b[0][0], b[0]... | |
DUP2 Pairing.G2Point([b[0][0], b[0]... | |
MSTORE Pairing.G2Point([b[0][0], b[0]... | |
POP Pairing.G2Point([b[0][0], b[0]... | |
DUP2 proof | |
PUSH 20 proof.b | |
ADD proof.b | |
DUP2 proof.b = Pairing.G2Point([b[0... | |
SWAP1 proof.b = Pairing.G2Point([b[0... | |
MSTORE proof.b = Pairing.G2Point([b[0... | |
POP proof.b = Pairing.G2Point([b[0... | |
PUSH 40 Pairing.G1Point(c[0], c[1]) | |
MLOAD Pairing.G1Point(c[0], c[1]) | |
DUP1 Pairing.G1Point(c[0], c[1]) | |
PUSH 40 Pairing.G1Point(c[0], c[1]) | |
ADD Pairing.G1Point(c[0], c[1]) | |
PUSH 40 Pairing.G1Point(c[0], c[1]) | |
MSTORE Pairing.G1Point(c[0], c[1]) | |
DUP1 Pairing.G1Point(c[0], c[1]) | |
DUP6 c | |
PUSH 0 0 | |
PUSH 2 c[0] | |
DUP2 c[0] | |
LT c[0] | |
PUSH [tag] 22 c[0] | |
JUMPI c[0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 c[0] | |
PUSH 0 c[0] | |
MSTORE c[0] | |
PUSH 32 c[0] | |
PUSH 4 c[0] | |
MSTORE c[0] | |
PUSH 24 c[0] | |
PUSH 0 c[0] | |
REVERT c[0] | |
tag 22 c[0] | |
JUMPDEST c[0] | |
PUSH 20 c[0] | |
MUL c[0] | |
ADD c[0] | |
MLOAD c[0] | |
DUP2 Pairing.G1Point(c[0], c[1]) | |
MSTORE Pairing.G1Point(c[0], c[1]) | |
PUSH 20 Pairing.G1Point(c[0], c[1]) | |
ADD Pairing.G1Point(c[0], c[1]) | |
DUP6 c | |
PUSH 1 1 | |
PUSH 2 c[1] | |
DUP2 c[1] | |
LT c[1] | |
PUSH [tag] 23 c[1] | |
JUMPI c[1] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 c[1] | |
PUSH 0 c[1] | |
MSTORE c[1] | |
PUSH 32 c[1] | |
PUSH 4 c[1] | |
MSTORE c[1] | |
PUSH 24 c[1] | |
PUSH 0 c[1] | |
REVERT c[1] | |
tag 23 c[1] | |
JUMPDEST c[1] | |
PUSH 20 c[1] | |
MUL c[1] | |
ADD c[1] | |
MLOAD c[1] | |
DUP2 Pairing.G1Point(c[0], c[1]) | |
MSTORE Pairing.G1Point(c[0], c[1]) | |
POP Pairing.G1Point(c[0], c[1]) | |
DUP2 proof | |
PUSH 40 proof.c | |
ADD proof.c | |
DUP2 proof.c = Pairing.G1Point(c[0]... | |
SWAP1 proof.c = Pairing.G1Point(c[0]... | |
MSTORE proof.c = Pairing.G1Point(c[0]... | |
POP proof.c = Pairing.G1Point(c[0]... | |
PUSH 0 uint[] memory inputValues | |
PUSH 3 3 | |
PUSH FFFFFFFFFFFFFFFF new uint[](3) | |
DUP2 new uint[](3) | |
GT new uint[](3) | |
ISZERO new uint[](3) | |
PUSH [tag] 24 new uint[](3) | |
JUMPI new uint[](3) | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 new uint[](3) | |
PUSH 0 new uint[](3) | |
MSTORE new uint[](3) | |
PUSH 41 new uint[](3) | |
PUSH 4 new uint[](3) | |
MSTORE new uint[](3) | |
PUSH 24 new uint[](3) | |
PUSH 0 new uint[](3) | |
REVERT new uint[](3) | |
tag 24 new uint[](3) | |
JUMPDEST new uint[](3) | |
PUSH 40 new uint[](3) | |
MLOAD new uint[](3) | |
SWAP1 new uint[](3) | |
DUP1 new uint[](3) | |
DUP3 new uint[](3) | |
MSTORE new uint[](3) | |
DUP1 new uint[](3) | |
PUSH 20 new uint[](3) | |
MUL new uint[](3) | |
PUSH 20 new uint[](3) | |
ADD new uint[](3) | |
DUP3 new uint[](3) | |
ADD new uint[](3) | |
PUSH 40 new uint[](3) | |
MSTORE new uint[](3) | |
DUP1 new uint[](3) | |
ISZERO new uint[](3) | |
PUSH [tag] 25 new uint[](3) | |
JUMPI new uint[](3) | |
DUP2 new uint[](3) | |
PUSH 20 new uint[](3) | |
ADD new uint[](3) | |
PUSH 20 new uint[](3) | |
DUP3 new uint[](3) | |
MUL new uint[](3) | |
DUP1 new uint[](3) | |
CALLDATASIZE new uint[](3) | |
DUP4 new uint[](3) | |
CALLDATACOPY new uint[](3) | |
DUP1 new uint[](3) | |
DUP3 new uint[](3) | |
ADD new uint[](3) | |
SWAP2 new uint[](3) | |
POP new uint[](3) | |
POP new uint[](3) | |
SWAP1 new uint[](3) | |
POP new uint[](3) | |
tag 25 new uint[](3) | |
JUMPDEST new uint[](3) | |
POP new uint[](3) | |
SWAP1 uint[] memory inputValues = ne... | |
POP uint[] memory inputValues = ne... | |
PUSH 0 uint i | |
tag 26 for(uint i = 0; i < input.leng... | |
JUMPDEST for(uint i = 0; i < input.leng... | |
PUSH 3 input.length | |
DUP2 i | |
LT i < input.length | |
ISZERO for(uint i = 0; i < input.leng... | |
PUSH [tag] 27 for(uint i = 0; i < input.leng... | |
JUMPI for(uint i = 0; i < input.leng... | |
DUP5 input | |
DUP2 i | |
PUSH 3 input[i] | |
DUP2 input[i] | |
LT input[i] | |
PUSH [tag] 29 input[i] | |
JUMPI input[i] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[i] | |
PUSH 0 input[i] | |
MSTORE input[i] | |
PUSH 32 input[i] | |
PUSH 4 input[i] | |
MSTORE input[i] | |
PUSH 24 input[i] | |
PUSH 0 input[i] | |
REVERT input[i] | |
tag 29 input[i] | |
JUMPDEST input[i] | |
PUSH 20 input[i] | |
MUL input[i] | |
ADD input[i] | |
MLOAD input[i] | |
DUP3 inputValues | |
DUP3 i | |
DUP2 inputValues[i] | |
MLOAD inputValues[i] | |
DUP2 inputValues[i] | |
LT inputValues[i] | |
PUSH [tag] 30 inputValues[i] | |
JUMPI inputValues[i] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 inputValues[i] | |
PUSH 0 inputValues[i] | |
MSTORE inputValues[i] | |
PUSH 32 inputValues[i] | |
PUSH 4 inputValues[i] | |
MSTORE inputValues[i] | |
PUSH 24 inputValues[i] | |
PUSH 0 inputValues[i] | |
REVERT inputValues[i] | |
tag 30 inputValues[i] | |
JUMPDEST inputValues[i] | |
PUSH 20 inputValues[i] | |
MUL inputValues[i] | |
PUSH 20 inputValues[i] | |
ADD inputValues[i] | |
ADD inputValues[i] | |
DUP2 inputValues[i] = input[i] | |
DUP2 inputValues[i] = input[i] | |
MSTORE inputValues[i] = input[i] | |
POP inputValues[i] = input[i] | |
POP inputValues[i] = input[i] | |
PUSH [tag] 31 i.inc() | |
DUP2 i | |
PUSH [tag] 32 i.inc | |
JUMP [in] i.inc() | |
tag 31 i.inc() | |
JUMPDEST i.inc() | |
SWAP1 i = i.inc() | |
POP i = i.inc() | |
PUSH [tag] 26 for(uint i = 0; i < input.leng... | |
JUMP for(uint i = 0; i < input.leng... | |
tag 27 for(uint i = 0; i < input.leng... | |
JUMPDEST for(uint i = 0; i < input.leng... | |
POP for(uint i = 0; i < input.leng... | |
PUSH 0 0 | |
PUSH [tag] 33 verify(inputValues, proof) | |
DUP3 inputValues | |
DUP5 proof | |
PUSH [tag] 34 verify | |
JUMP [in] verify(inputValues, proof) | |
tag 33 verify(inputValues, proof) | |
JUMPDEST verify(inputValues, proof) | |
EQ verify(inputValues, proof) == ... | |
ISZERO if (verify(inputValues, proof)... | |
PUSH [tag] 35 if (verify(inputValues, proof)... | |
JUMPI if (verify(inputValues, proof)... | |
PUSH 1 true | |
SWAP3 return true | |
POP return true | |
POP return true | |
POP return true | |
PUSH [tag] 9 return true | |
JUMP return true | |
tag 35 if (verify(inputValues, proof)... | |
JUMPDEST if (verify(inputValues, proof)... | |
PUSH 0 false | |
SWAP3 return false | |
POP return false | |
POP return false | |
POP return false | |
tag 9 function verifyTx(\n ... | |
JUMPDEST function verifyTx(\n ... | |
SWAP5 function verifyTx(\n ... | |
SWAP4 function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
POP function verifyTx(\n ... | |
JUMP [out] function verifyTx(\n ... | |
tag 32 function inc(uint a) internal ... | |
JUMPDEST function inc(uint a) internal ... | |
PUSH 0 uint c | |
PUSH [tag] 38 add(a, 1) | |
DUP3 a | |
PUSH 1 1 | |
PUSH [tag] 39 add | |
JUMP [in] add(a, 1) | |
tag 38 add(a, 1) | |
JUMPDEST add(a, 1) | |
SWAP1 return add(a, 1) | |
POP return add(a, 1) | |
SWAP2 function inc(uint a) internal ... | |
SWAP1 function inc(uint a) internal ... | |
POP function inc(uint a) internal ... | |
JUMP [out] function inc(uint a) internal ... | |
tag 34 function verify(uint[] memory ... | |
JUMPDEST function verify(uint[] memory ... | |
PUSH 0 uint | |
DUP1 uint256 snark_scalar_field | |
PUSH 30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 218882428718392752222464057452... | |
SWAP1 uint256 snark_scalar_field = 2... | |
POP uint256 snark_scalar_field = 2... | |
PUSH 0 VerifyingKey memory vk | |
PUSH [tag] 41 verifyingKey() | |
PUSH [tag] 42 verifyingKey | |
JUMP [in] verifyingKey() | |
tag 41 verifyingKey() | |
JUMPDEST verifyingKey() | |
SWAP1 VerifyingKey memory vk = verif... | |
POP VerifyingKey memory vk = verif... | |
DUP1 vk | |
PUSH A0 vk.query | |
ADD vk.query | |
MLOAD vk.query | |
MLOAD vk.query.length | |
PUSH [tag] 43 input.length.inc() | |
DUP7 input | |
MLOAD input.length | |
PUSH [tag] 32 input.length.inc | |
JUMP [in] input.length.inc() | |
tag 43 input.length.inc() | |
JUMPDEST input.length.inc() | |
EQ input.length.inc() == vk.query... | |
PUSH [tag] 44 require(input.length.inc() == ... | |
JUMPI require(input.length.inc() == ... | |
PUSH 0 require(input.length.inc() == ... | |
DUP1 require(input.length.inc() == ... | |
REVERT require(input.length.inc() == ... | |
tag 44 require(input.length.inc() == ... | |
JUMPDEST require(input.length.inc() == ... | |
PUSH 0 Pairing.G1Point memory vk_x | |
PUSH 40 Pairing.G1Point(0, 0) | |
MLOAD Pairing.G1Point(0, 0) | |
DUP1 Pairing.G1Point(0, 0) | |
PUSH 40 Pairing.G1Point(0, 0) | |
ADD Pairing.G1Point(0, 0) | |
PUSH 40 Pairing.G1Point(0, 0) | |
MSTORE Pairing.G1Point(0, 0) | |
DUP1 Pairing.G1Point(0, 0) | |
PUSH 0 0 | |
DUP2 Pairing.G1Point(0, 0) | |
MSTORE Pairing.G1Point(0, 0) | |
PUSH 20 Pairing.G1Point(0, 0) | |
ADD Pairing.G1Point(0, 0) | |
PUSH 0 0 | |
DUP2 Pairing.G1Point(0, 0) | |
MSTORE Pairing.G1Point(0, 0) | |
POP Pairing.G1Point(0, 0) | |
SWAP1 Pairing.G1Point memory vk_x = ... | |
POP Pairing.G1Point memory vk_x = ... | |
PUSH 0 uint i | |
tag 45 for (uint i = 0; i < input.len... | |
JUMPDEST for (uint i = 0; i < input.len... | |
DUP7 input | |
MLOAD input.length | |
DUP2 i | |
LT i < input.length | |
ISZERO for (uint i = 0; i < input.len... | |
PUSH [tag] 46 for (uint i = 0; i < input.len... | |
JUMPI for (uint i = 0; i < input.len... | |
DUP4 snark_scalar_field | |
DUP8 input | |
DUP3 i | |
DUP2 input[i] | |
MLOAD input[i] | |
DUP2 input[i] | |
LT input[i] | |
PUSH [tag] 48 input[i] | |
JUMPI input[i] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[i] | |
PUSH 0 input[i] | |
MSTORE input[i] | |
PUSH 32 input[i] | |
PUSH 4 input[i] | |
MSTORE input[i] | |
PUSH 24 input[i] | |
PUSH 0 input[i] | |
REVERT input[i] | |
tag 48 input[i] | |
JUMPDEST input[i] | |
PUSH 20 input[i] | |
MUL input[i] | |
PUSH 20 input[i] | |
ADD input[i] | |
ADD input[i] | |
MLOAD input[i] | |
LT input[i] < snark_scalar_field | |
PUSH [tag] 49 require(input[i] < snark_scala... | |
JUMPI require(input[i] < snark_scala... | |
PUSH 0 require(input[i] < snark_scala... | |
DUP1 require(input[i] < snark_scala... | |
REVERT require(input[i] < snark_scala... | |
tag 49 require(input[i] < snark_scala... | |
JUMPDEST require(input[i] < snark_scala... | |
PUSH [tag] 50 Pairing.addition(vk_x, Pairing... | |
DUP3 vk_x | |
PUSH [tag] 51 Pairing.scalar_mul(vk.query[i.... | |
DUP6 vk | |
PUSH A0 vk.query | |
ADD vk.query | |
MLOAD vk.query | |
PUSH [tag] 52 i.inc() | |
DUP6 i | |
PUSH [tag] 32 i.inc | |
JUMP [in] i.inc() | |
tag 52 i.inc() | |
JUMPDEST i.inc() | |
DUP2 vk.query[i.inc()] | |
MLOAD vk.query[i.inc()] | |
DUP2 vk.query[i.inc()] | |
LT vk.query[i.inc()] | |
PUSH [tag] 53 vk.query[i.inc()] | |
JUMPI vk.query[i.inc()] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 vk.query[i.inc()] | |
PUSH 0 vk.query[i.inc()] | |
MSTORE vk.query[i.inc()] | |
PUSH 32 vk.query[i.inc()] | |
PUSH 4 vk.query[i.inc()] | |
MSTORE vk.query[i.inc()] | |
PUSH 24 vk.query[i.inc()] | |
PUSH 0 vk.query[i.inc()] | |
REVERT vk.query[i.inc()] | |
tag 53 vk.query[i.inc()] | |
JUMPDEST vk.query[i.inc()] | |
PUSH 20 vk.query[i.inc()] | |
MUL vk.query[i.inc()] | |
PUSH 20 vk.query[i.inc()] | |
ADD vk.query[i.inc()] | |
ADD vk.query[i.inc()] | |
MLOAD vk.query[i.inc()] | |
DUP11 input | |
DUP6 i | |
DUP2 input[i] | |
MLOAD input[i] | |
DUP2 input[i] | |
LT input[i] | |
PUSH [tag] 54 input[i] | |
JUMPI input[i] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[i] | |
PUSH 0 input[i] | |
MSTORE input[i] | |
PUSH 32 input[i] | |
PUSH 4 input[i] | |
MSTORE input[i] | |
PUSH 24 input[i] | |
PUSH 0 input[i] | |
REVERT input[i] | |
tag 54 input[i] | |
JUMPDEST input[i] | |
PUSH 20 input[i] | |
MUL input[i] | |
PUSH 20 input[i] | |
ADD input[i] | |
ADD input[i] | |
MLOAD input[i] | |
PUSH [tag] 55 Pairing.scalar_mul | |
JUMP [in] Pairing.scalar_mul(vk.query[i.... | |
tag 51 Pairing.scalar_mul(vk.query[i.... | |
JUMPDEST Pairing.scalar_mul(vk.query[i.... | |
PUSH [tag] 56 Pairing.addition | |
JUMP [in] Pairing.addition(vk_x, Pairing... | |
tag 50 Pairing.addition(vk_x, Pairing... | |
JUMPDEST Pairing.addition(vk_x, Pairing... | |
SWAP2 vk_x = Pairing.addition(vk_x, ... | |
POP vk_x = Pairing.addition(vk_x, ... | |
PUSH [tag] 57 i.inc() | |
DUP2 i | |
PUSH [tag] 32 i.inc | |
JUMP [in] i.inc() | |
tag 57 i.inc() | |
JUMPDEST i.inc() | |
SWAP1 i = i.inc() | |
POP i = i.inc() | |
PUSH [tag] 45 for (uint i = 0; i < input.len... | |
JUMP for (uint i = 0; i < input.len... | |
tag 46 for (uint i = 0; i < input.len... | |
JUMPDEST for (uint i = 0; i < input.len... | |
POP for (uint i = 0; i < input.len... | |
PUSH [tag] 58 Pairing.addition(vk_x, vk.quer... | |
DUP2 vk_x | |
DUP4 vk | |
PUSH A0 vk.query | |
ADD vk.query | |
MLOAD vk.query | |
PUSH 0 0 | |
DUP2 vk.query[0] | |
MLOAD vk.query[0] | |
DUP2 vk.query[0] | |
LT vk.query[0] | |
PUSH [tag] 59 vk.query[0] | |
JUMPI vk.query[0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 vk.query[0] | |
PUSH 0 vk.query[0] | |
MSTORE vk.query[0] | |
PUSH 32 vk.query[0] | |
PUSH 4 vk.query[0] | |
MSTORE vk.query[0] | |
PUSH 24 vk.query[0] | |
PUSH 0 vk.query[0] | |
REVERT vk.query[0] | |
tag 59 vk.query[0] | |
JUMPDEST vk.query[0] | |
PUSH 20 vk.query[0] | |
MUL vk.query[0] | |
PUSH 20 vk.query[0] | |
ADD vk.query[0] | |
ADD vk.query[0] | |
MLOAD vk.query[0] | |
PUSH [tag] 56 Pairing.addition | |
JUMP [in] Pairing.addition(vk_x, vk.quer... | |
tag 58 Pairing.addition(vk_x, vk.quer... | |
JUMPDEST Pairing.addition(vk_x, vk.quer... | |
SWAP1 vk_x = Pairing.addition(vk_x, ... | |
POP vk_x = Pairing.addition(vk_x, ... | |
PUSH [tag] 60 Pairing.pairingProd4(vk.g_alph... | |
DUP3 vk | |
PUSH 20 vk.g_alpha | |
ADD vk.g_alpha | |
MLOAD vk.g_alpha | |
DUP4 vk | |
PUSH 40 vk.h_beta | |
ADD vk.h_beta | |
MLOAD vk.h_beta | |
DUP4 vk_x | |
DUP6 vk | |
PUSH 80 vk.h_gamma | |
ADD vk.h_gamma | |
MLOAD vk.h_gamma | |
DUP10 proof | |
PUSH 40 proof.c | |
ADD proof.c | |
MLOAD proof.c | |
DUP8 vk | |
PUSH 0 vk.h | |
ADD vk.h | |
MLOAD vk.h | |
PUSH [tag] 61 Pairing.negate(Pairing.additio... | |
PUSH [tag] 62 Pairing.addition(proof.a, vk.g... | |
DUP14 proof | |
PUSH 0 proof.a | |
ADD proof.a | |
MLOAD proof.a | |
DUP12 vk | |
PUSH 20 vk.g_alpha | |
ADD vk.g_alpha | |
MLOAD vk.g_alpha | |
PUSH [tag] 56 Pairing.addition | |
JUMP [in] Pairing.addition(proof.a, vk.g... | |
tag 62 Pairing.addition(proof.a, vk.g... | |
JUMPDEST Pairing.addition(proof.a, vk.g... | |
PUSH [tag] 63 Pairing.negate | |
JUMP [in] Pairing.negate(Pairing.additio... | |
tag 61 Pairing.negate(Pairing.additio... | |
JUMPDEST Pairing.negate(Pairing.additio... | |
PUSH [tag] 64 Pairing.addition(proof.b, vk.h... | |
DUP14 proof | |
PUSH 20 proof.b | |
ADD proof.b | |
MLOAD proof.b | |
DUP12 vk | |
PUSH 40 vk.h_beta | |
ADD vk.h_beta | |
MLOAD vk.h_beta | |
PUSH [tag] 65 Pairing.addition | |
JUMP [in] Pairing.addition(proof.b, vk.h... | |
tag 64 Pairing.addition(proof.b, vk.h... | |
JUMPDEST Pairing.addition(proof.b, vk.h... | |
PUSH [tag] 66 Pairing.pairingProd4 | |
JUMP [in] Pairing.pairingProd4(vk.g_alph... | |
tag 60 Pairing.pairingProd4(vk.g_alph... | |
JUMPDEST Pairing.pairingProd4(vk.g_alph... | |
PUSH [tag] 67 if (!Pairing.pairingProd4(vk.g... | |
JUMPI if (!Pairing.pairingProd4(vk.g... | |
PUSH 1 1 | |
SWAP4 return 1 | |
POP return 1 | |
POP return 1 | |
POP return 1 | |
POP return 1 | |
PUSH [tag] 40 return 1 | |
JUMP return 1 | |
tag 67 if (!Pairing.pairingProd4(vk.g... | |
JUMPDEST if (!Pairing.pairingProd4(vk.g... | |
PUSH [tag] 68 Pairing.pairingProd2(proof.a, ... | |
DUP6 proof | |
PUSH 0 proof.a | |
ADD proof.a | |
MLOAD proof.a | |
DUP4 vk | |
PUSH 80 vk.h_gamma | |
ADD vk.h_gamma | |
MLOAD vk.h_gamma | |
PUSH [tag] 69 Pairing.negate(vk.g_gamma) | |
DUP6 vk | |
PUSH 60 vk.g_gamma | |
ADD vk.g_gamma | |
MLOAD vk.g_gamma | |
PUSH [tag] 63 Pairing.negate | |
JUMP [in] Pairing.negate(vk.g_gamma) | |
tag 69 Pairing.negate(vk.g_gamma) | |
JUMPDEST Pairing.negate(vk.g_gamma) | |
DUP9 proof | |
PUSH 20 proof.b | |
ADD proof.b | |
MLOAD proof.b | |
PUSH [tag] 70 Pairing.pairingProd2 | |
JUMP [in] Pairing.pairingProd2(proof.a, ... | |
tag 68 Pairing.pairingProd2(proof.a, ... | |
JUMPDEST Pairing.pairingProd2(proof.a, ... | |
PUSH [tag] 71 if (!Pairing.pairingProd2(proo... | |
JUMPI if (!Pairing.pairingProd2(proo... | |
PUSH 2 2 | |
SWAP4 return 2 | |
POP return 2 | |
POP return 2 | |
POP return 2 | |
POP return 2 | |
PUSH [tag] 40 return 2 | |
JUMP return 2 | |
tag 71 if (!Pairing.pairingProd2(proo... | |
JUMPDEST if (!Pairing.pairingProd2(proo... | |
PUSH 0 0 | |
SWAP4 return 0 | |
POP return 0 | |
POP return 0 | |
POP return 0 | |
POP return 0 | |
tag 40 function verify(uint[] memory ... | |
JUMPDEST function verify(uint[] memory ... | |
SWAP3 function verify(uint[] memory ... | |
SWAP2 function verify(uint[] memory ... | |
POP function verify(uint[] memory ... | |
POP function verify(uint[] memory ... | |
JUMP [out] function verify(uint[] memory ... | |
tag 39 function add(uint a, uint b) i... | |
JUMPDEST function add(uint a, uint b) i... | |
PUSH 0 uint c | |
DUP2 b | |
DUP4 a | |
ADD a + b | |
SWAP1 c = a + b | |
POP c = a + b | |
SWAP3 function add(uint a, uint b) i... | |
SWAP2 function add(uint a, uint b) i... | |
POP function add(uint a, uint b) i... | |
POP function add(uint a, uint b) i... | |
JUMP [out] function add(uint a, uint b) i... | |
tag 42 function verifyingKey() pure i... | |
JUMPDEST function verifyingKey() pure i... | |
PUSH [tag] 73 VerifyingKey memory vk | |
PUSH [tag] 74 VerifyingKey memory vk | |
JUMP [in] VerifyingKey memory vk | |
tag 73 VerifyingKey memory vk | |
JUMPDEST VerifyingKey memory vk | |
PUSH 40 Pairing.G2Point([uint256(0x0ce... | |
MLOAD Pairing.G2Point([uint256(0x0ce... | |
DUP1 Pairing.G2Point([uint256(0x0ce... | |
PUSH 40 Pairing.G2Point([uint256(0x0ce... | |
ADD Pairing.G2Point([uint256(0x0ce... | |
PUSH 40 Pairing.G2Point([uint256(0x0ce... | |
MSTORE Pairing.G2Point([uint256(0x0ce... | |
DUP1 Pairing.G2Point([uint256(0x0ce... | |
PUSH 40 Pairing.G2Point([uint256(0x0ce... | |
MLOAD Pairing.G2Point([uint256(0x0ce... | |
DUP1 Pairing.G2Point([uint256(0x0ce... | |
PUSH 40 Pairing.G2Point([uint256(0x0ce... | |
ADD Pairing.G2Point([uint256(0x0ce... | |
PUSH 40 Pairing.G2Point([uint256(0x0ce... | |
MSTORE Pairing.G2Point([uint256(0x0ce... | |
DUP1 Pairing.G2Point([uint256(0x0ce... | |
PUSH CE10097D5C6A0CF03C7FB606BABE12E12D6CFDE31BA1EC4B6FC93E72E5080CF 0x0ce10097d5c6a0cf03c7fb606bab... | |
DUP2 Pairing.G2Point([uint256(0x0ce... | |
MSTORE Pairing.G2Point([uint256(0x0ce... | |
PUSH 20 Pairing.G2Point([uint256(0x0ce... | |
ADD Pairing.G2Point([uint256(0x0ce... | |
PUSH BDBD8F805A60DD0B5C999CBA090CF05455C7C30556625D1DBE960D8BA7F82D3 0x0bdbd8f805a60dd0b5c999cba090... | |
DUP2 Pairing.G2Point([uint256(0x0ce... | |
MSTORE Pairing.G2Point([uint256(0x0ce... | |
POP Pairing.G2Point([uint256(0x0ce... | |
DUP2 Pairing.G2Point([uint256(0x0ce... | |
MSTORE Pairing.G2Point([uint256(0x0ce... | |
PUSH 20 Pairing.G2Point([uint256(0x0ce... | |
ADD Pairing.G2Point([uint256(0x0ce... | |
PUSH 40 Pairing.G2Point([uint256(0x0ce... | |
MLOAD Pairing.G2Point([uint256(0x0ce... | |
DUP1 Pairing.G2Point([uint256(0x0ce... | |
PUSH 40 Pairing.G2Point([uint256(0x0ce... | |
ADD Pairing.G2Point([uint256(0x0ce... | |
PUSH 40 Pairing.G2Point([uint256(0x0ce... | |
MSTORE Pairing.G2Point([uint256(0x0ce... | |
DUP1 Pairing.G2Point([uint256(0x0ce... | |
PUSH 2836CE51D9F4B076E3A94F554ED10EE863B31A6E9F9702B998730464578690B3 0x2836ce51d9f4b076e3a94f554ed1... | |
DUP2 Pairing.G2Point([uint256(0x0ce... | |
MSTORE Pairing.G2Point([uint256(0x0ce... | |
PUSH 20 Pairing.G2Point([uint256(0x0ce... | |
ADD Pairing.G2Point([uint256(0x0ce... | |
PUSH 1408687D2A7CFE83F01BC94BFC7CE3A43D92A95EC074F6D628210B412EE7AFF0 0x1408687d2a7cfe83f01bc94bfc7c... | |
DUP2 Pairing.G2Point([uint256(0x0ce... | |
MSTORE Pairing.G2Point([uint256(0x0ce... | |
POP Pairing.G2Point([uint256(0x0ce... | |
DUP2 Pairing.G2Point([uint256(0x0ce... | |
MSTORE Pairing.G2Point([uint256(0x0ce... | |
POP Pairing.G2Point([uint256(0x0ce... | |
DUP2 vk | |
PUSH 0 vk.h | |
ADD vk.h | |
DUP2 vk.h = Pairing.G2Point([uint25... | |
SWAP1 vk.h = Pairing.G2Point([uint25... | |
MSTORE vk.h = Pairing.G2Point([uint25... | |
POP vk.h = Pairing.G2Point([uint25... | |
PUSH 40 Pairing.G1Point(uint256(0x0524... | |
MLOAD Pairing.G1Point(uint256(0x0524... | |
DUP1 Pairing.G1Point(uint256(0x0524... | |
PUSH 40 Pairing.G1Point(uint256(0x0524... | |
ADD Pairing.G1Point(uint256(0x0524... | |
PUSH 40 Pairing.G1Point(uint256(0x0524... | |
MSTORE Pairing.G1Point(uint256(0x0524... | |
DUP1 Pairing.G1Point(uint256(0x0524... | |
PUSH 5246753074F70484BB47C60E869F92EBFDBF9D2BA5012874730973E9AF228D6 0x05246753074f70484bb47c60e869... | |
DUP2 Pairing.G1Point(uint256(0x0524... | |
MSTORE Pairing.G1Point(uint256(0x0524... | |
PUSH 20 Pairing.G1Point(uint256(0x0524... | |
ADD Pairing.G1Point(uint256(0x0524... | |
PUSH 177778527A6605BF6D2D9B3E0FE86ECC8E97BCEB23497692E043AD9BB3E4C9D3 0x177778527a6605bf6d2d9b3e0fe8... | |
DUP2 Pairing.G1Point(uint256(0x0524... | |
MSTORE Pairing.G1Point(uint256(0x0524... | |
POP Pairing.G1Point(uint256(0x0524... | |
DUP2 vk | |
PUSH 20 vk.g_alpha | |
ADD vk.g_alpha | |
DUP2 vk.g_alpha = Pairing.G1Point(u... | |
SWAP1 vk.g_alpha = Pairing.G1Point(u... | |
MSTORE vk.g_alpha = Pairing.G1Point(u... | |
POP vk.g_alpha = Pairing.G1Point(u... | |
PUSH 40 Pairing.G2Point([uint256(0x0da... | |
MLOAD Pairing.G2Point([uint256(0x0da... | |
DUP1 Pairing.G2Point([uint256(0x0da... | |
PUSH 40 Pairing.G2Point([uint256(0x0da... | |
ADD Pairing.G2Point([uint256(0x0da... | |
PUSH 40 Pairing.G2Point([uint256(0x0da... | |
MSTORE Pairing.G2Point([uint256(0x0da... | |
DUP1 Pairing.G2Point([uint256(0x0da... | |
PUSH 40 Pairing.G2Point([uint256(0x0da... | |
MLOAD Pairing.G2Point([uint256(0x0da... | |
DUP1 Pairing.G2Point([uint256(0x0da... | |
PUSH 40 Pairing.G2Point([uint256(0x0da... | |
ADD Pairing.G2Point([uint256(0x0da... | |
PUSH 40 Pairing.G2Point([uint256(0x0da... | |
MSTORE Pairing.G2Point([uint256(0x0da... | |
DUP1 Pairing.G2Point([uint256(0x0da... | |
PUSH DA415966FD2B4C39F5FCAC5091CBED6C0A2CF64162C2A672D61BD5784C73A59 0x0da415966fd2b4c39f5fcac5091c... | |
DUP2 Pairing.G2Point([uint256(0x0da... | |
MSTORE Pairing.G2Point([uint256(0x0da... | |
PUSH 20 Pairing.G2Point([uint256(0x0da... | |
ADD Pairing.G2Point([uint256(0x0da... | |
PUSH C279BCF71893C6B2164491F691EF6A9003CE03FB443657718DBCCEE9C10CC99 0x0c279bcf71893c6b2164491f691e... | |
DUP2 Pairing.G2Point([uint256(0x0da... | |
MSTORE Pairing.G2Point([uint256(0x0da... | |
POP Pairing.G2Point([uint256(0x0da... | |
DUP2 Pairing.G2Point([uint256(0x0da... | |
MSTORE Pairing.G2Point([uint256(0x0da... | |
PUSH 20 Pairing.G2Point([uint256(0x0da... | |
ADD Pairing.G2Point([uint256(0x0da... | |
PUSH 40 Pairing.G2Point([uint256(0x0da... | |
MLOAD Pairing.G2Point([uint256(0x0da... | |
DUP1 Pairing.G2Point([uint256(0x0da... | |
PUSH 40 Pairing.G2Point([uint256(0x0da... | |
ADD Pairing.G2Point([uint256(0x0da... | |
PUSH 40 Pairing.G2Point([uint256(0x0da... | |
MSTORE Pairing.G2Point([uint256(0x0da... | |
DUP1 Pairing.G2Point([uint256(0x0da... | |
PUSH 5DA6588AA911D1D73C2CBC146A7C50359C68FC20E302CC06A1F0FDCE77462CE 0x05da6588aa911d1d73c2cbc146a7... | |
DUP2 Pairing.G2Point([uint256(0x0da... | |
MSTORE Pairing.G2Point([uint256(0x0da... | |
PUSH 20 Pairing.G2Point([uint256(0x0da... | |
ADD Pairing.G2Point([uint256(0x0da... | |
PUSH 2C24E4392C0535A23E84D08508126C8F255ECD1E98AD0A50B04EA1F500CF08E6 0x2c24e4392c0535a23e84d0850812... | |
DUP2 Pairing.G2Point([uint256(0x0da... | |
MSTORE Pairing.G2Point([uint256(0x0da... | |
POP Pairing.G2Point([uint256(0x0da... | |
DUP2 Pairing.G2Point([uint256(0x0da... | |
MSTORE Pairing.G2Point([uint256(0x0da... | |
POP Pairing.G2Point([uint256(0x0da... | |
DUP2 vk | |
PUSH 40 vk.h_beta | |
ADD vk.h_beta | |
DUP2 vk.h_beta = Pairing.G2Point([u... | |
SWAP1 vk.h_beta = Pairing.G2Point([u... | |
MSTORE vk.h_beta = Pairing.G2Point([u... | |
POP vk.h_beta = Pairing.G2Point([u... | |
PUSH 40 Pairing.G1Point(uint256(0x145d... | |
MLOAD Pairing.G1Point(uint256(0x145d... | |
DUP1 Pairing.G1Point(uint256(0x145d... | |
PUSH 40 Pairing.G1Point(uint256(0x145d... | |
ADD Pairing.G1Point(uint256(0x145d... | |
PUSH 40 Pairing.G1Point(uint256(0x145d... | |
MSTORE Pairing.G1Point(uint256(0x145d... | |
DUP1 Pairing.G1Point(uint256(0x145d... | |
PUSH 145D6456AA166A2C03DB37F10CA96DD9F69AA2094DF52B5CD9AE2B4ACC54EE62 0x145d6456aa166a2c03db37f10ca9... | |
DUP2 Pairing.G1Point(uint256(0x145d... | |
MSTORE Pairing.G1Point(uint256(0x145d... | |
PUSH 20 Pairing.G1Point(uint256(0x145d... | |
ADD Pairing.G1Point(uint256(0x145d... | |
PUSH 7D69B903C13FC8AAA950A7B923188FDE64229E73A83EA2C0D75D7951D802126 0x07d69b903c13fc8aaa950a7b9231... | |
DUP2 Pairing.G1Point(uint256(0x145d... | |
MSTORE Pairing.G1Point(uint256(0x145d... | |
POP Pairing.G1Point(uint256(0x145d... | |
DUP2 vk | |
PUSH 60 vk.g_gamma | |
ADD vk.g_gamma | |
DUP2 vk.g_gamma = Pairing.G1Point(u... | |
SWAP1 vk.g_gamma = Pairing.G1Point(u... | |
MSTORE vk.g_gamma = Pairing.G1Point(u... | |
POP vk.g_gamma = Pairing.G1Point(u... | |
PUSH 40 Pairing.G2Point([uint256(0x0ce... | |
MLOAD Pairing.G2Point([uint256(0x0ce... | |
DUP1 Pairing.G2Point([uint256(0x0ce... | |
PUSH 40 Pairing.G2Point([uint256(0x0ce... | |
ADD Pairing.G2Point([uint256(0x0ce... | |
PUSH 40 Pairing.G2Point([uint256(0x0ce... | |
MSTORE Pairing.G2Point([uint256(0x0ce... | |
DUP1 Pairing.G2Point([uint256(0x0ce... | |
PUSH 40 Pairing.G2Point([uint256(0x0ce... | |
MLOAD Pairing.G2Point([uint256(0x0ce... | |
DUP1 Pairing.G2Point([uint256(0x0ce... | |
PUSH 40 Pairing.G2Point([uint256(0x0ce... | |
ADD Pairing.G2Point([uint256(0x0ce... | |
PUSH 40 Pairing.G2Point([uint256(0x0ce... | |
MSTORE Pairing.G2Point([uint256(0x0ce... | |
DUP1 Pairing.G2Point([uint256(0x0ce... | |
PUSH CE10097D5C6A0CF03C7FB606BABE12E12D6CFDE31BA1EC4B6FC93E72E5080CF 0x0ce10097d5c6a0cf03c7fb606bab... | |
DUP2 Pairing.G2Point([uint256(0x0ce... | |
MSTORE Pairing.G2Point([uint256(0x0ce... | |
PUSH 20 Pairing.G2Point([uint256(0x0ce... | |
ADD Pairing.G2Point([uint256(0x0ce... | |
PUSH BDBD8F805A60DD0B5C999CBA090CF05455C7C30556625D1DBE960D8BA7F82D3 0x0bdbd8f805a60dd0b5c999cba090... | |
DUP2 Pairing.G2Point([uint256(0x0ce... | |
MSTORE Pairing.G2Point([uint256(0x0ce... | |
POP Pairing.G2Point([uint256(0x0ce... | |
DUP2 Pairing.G2Point([uint256(0x0ce... | |
MSTORE Pairing.G2Point([uint256(0x0ce... | |
PUSH 20 Pairing.G2Point([uint256(0x0ce... | |
ADD Pairing.G2Point([uint256(0x0ce... | |
PUSH 40 Pairing.G2Point([uint256(0x0ce... | |
MLOAD Pairing.G2Point([uint256(0x0ce... | |
DUP1 Pairing.G2Point([uint256(0x0ce... | |
PUSH 40 Pairing.G2Point([uint256(0x0ce... | |
ADD Pairing.G2Point([uint256(0x0ce... | |
PUSH 40 Pairing.G2Point([uint256(0x0ce... | |
MSTORE Pairing.G2Point([uint256(0x0ce... | |
DUP1 Pairing.G2Point([uint256(0x0ce... | |
PUSH 2836CE51D9F4B076E3A94F554ED10EE863B31A6E9F9702B998730464578690B3 0x2836ce51d9f4b076e3a94f554ed1... | |
DUP2 Pairing.G2Point([uint256(0x0ce... | |
MSTORE Pairing.G2Point([uint256(0x0ce... | |
PUSH 20 Pairing.G2Point([uint256(0x0ce... | |
ADD Pairing.G2Point([uint256(0x0ce... | |
PUSH 1408687D2A7CFE83F01BC94BFC7CE3A43D92A95EC074F6D628210B412EE7AFF0 0x1408687d2a7cfe83f01bc94bfc7c... | |
DUP2 Pairing.G2Point([uint256(0x0ce... | |
MSTORE Pairing.G2Point([uint256(0x0ce... | |
POP Pairing.G2Point([uint256(0x0ce... | |
DUP2 Pairing.G2Point([uint256(0x0ce... | |
MSTORE Pairing.G2Point([uint256(0x0ce... | |
POP Pairing.G2Point([uint256(0x0ce... | |
DUP2 vk | |
PUSH 80 vk.h_gamma | |
ADD vk.h_gamma | |
DUP2 vk.h_gamma = Pairing.G2Point([... | |
SWAP1 vk.h_gamma = Pairing.G2Point([... | |
MSTORE vk.h_gamma = Pairing.G2Point([... | |
POP vk.h_gamma = Pairing.G2Point([... | |
PUSH 4 4 | |
PUSH FFFFFFFFFFFFFFFF new Pairing.G1Point[](4) | |
DUP2 new Pairing.G1Point[](4) | |
GT new Pairing.G1Point[](4) | |
ISZERO new Pairing.G1Point[](4) | |
PUSH [tag] 76 new Pairing.G1Point[](4) | |
JUMPI new Pairing.G1Point[](4) | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 new Pairing.G1Point[](4) | |
PUSH 0 new Pairing.G1Point[](4) | |
MSTORE new Pairing.G1Point[](4) | |
PUSH 41 new Pairing.G1Point[](4) | |
PUSH 4 new Pairing.G1Point[](4) | |
MSTORE new Pairing.G1Point[](4) | |
PUSH 24 new Pairing.G1Point[](4) | |
PUSH 0 new Pairing.G1Point[](4) | |
REVERT new Pairing.G1Point[](4) | |
tag 76 new Pairing.G1Point[](4) | |
JUMPDEST new Pairing.G1Point[](4) | |
PUSH 40 new Pairing.G1Point[](4) | |
MLOAD new Pairing.G1Point[](4) | |
SWAP1 new Pairing.G1Point[](4) | |
DUP1 new Pairing.G1Point[](4) | |
DUP3 new Pairing.G1Point[](4) | |
MSTORE new Pairing.G1Point[](4) | |
DUP1 new Pairing.G1Point[](4) | |
PUSH 20 new Pairing.G1Point[](4) | |
MUL new Pairing.G1Point[](4) | |
PUSH 20 new Pairing.G1Point[](4) | |
ADD new Pairing.G1Point[](4) | |
DUP3 new Pairing.G1Point[](4) | |
ADD new Pairing.G1Point[](4) | |
PUSH 40 new Pairing.G1Point[](4) | |
MSTORE new Pairing.G1Point[](4) | |
DUP1 new Pairing.G1Point[](4) | |
ISZERO new Pairing.G1Point[](4) | |
PUSH [tag] 77 new Pairing.G1Point[](4) | |
JUMPI new Pairing.G1Point[](4) | |
DUP2 new Pairing.G1Point[](4) | |
PUSH 20 new Pairing.G1Point[](4) | |
ADD new Pairing.G1Point[](4) | |
tag 78 new Pairing.G1Point[](4) | |
JUMPDEST new Pairing.G1Point[](4) | |
PUSH [tag] 79 new Pairing.G1Point[](4) | |
PUSH [tag] 80 new Pairing.G1Point[](4) | |
JUMP [in] new Pairing.G1Point[](4) | |
tag 79 new Pairing.G1Point[](4) | |
JUMPDEST new Pairing.G1Point[](4) | |
DUP2 new Pairing.G1Point[](4) | |
MSTORE new Pairing.G1Point[](4) | |
PUSH 20 new Pairing.G1Point[](4) | |
ADD new Pairing.G1Point[](4) | |
SWAP1 new Pairing.G1Point[](4) | |
PUSH 1 new Pairing.G1Point[](4) | |
SWAP1 new Pairing.G1Point[](4) | |
SUB new Pairing.G1Point[](4) | |
SWAP1 new Pairing.G1Point[](4) | |
DUP2 new Pairing.G1Point[](4) | |
PUSH [tag] 78 new Pairing.G1Point[](4) | |
JUMPI new Pairing.G1Point[](4) | |
SWAP1 new Pairing.G1Point[](4) | |
POP new Pairing.G1Point[](4) | |
tag 77 new Pairing.G1Point[](4) | |
JUMPDEST new Pairing.G1Point[](4) | |
POP new Pairing.G1Point[](4) | |
DUP2 vk | |
PUSH A0 vk.query | |
ADD vk.query | |
DUP2 vk.query = new Pairing.G1Point... | |
SWAP1 vk.query = new Pairing.G1Point... | |
MSTORE vk.query = new Pairing.G1Point... | |
POP vk.query = new Pairing.G1Point... | |
PUSH 40 Pairing.G1Point(uint256(0x1e6e... | |
MLOAD Pairing.G1Point(uint256(0x1e6e... | |
DUP1 Pairing.G1Point(uint256(0x1e6e... | |
PUSH 40 Pairing.G1Point(uint256(0x1e6e... | |
ADD Pairing.G1Point(uint256(0x1e6e... | |
PUSH 40 Pairing.G1Point(uint256(0x1e6e... | |
MSTORE Pairing.G1Point(uint256(0x1e6e... | |
DUP1 Pairing.G1Point(uint256(0x1e6e... | |
PUSH 1E6E68DEA497A5B44334557A5039BE4DEE9F61F577A2CF6F76F5234F41C12A0A 0x1e6e68dea497a5b44334557a5039... | |
DUP2 Pairing.G1Point(uint256(0x1e6e... | |
MSTORE Pairing.G1Point(uint256(0x1e6e... | |
PUSH 20 Pairing.G1Point(uint256(0x1e6e... | |
ADD Pairing.G1Point(uint256(0x1e6e... | |
PUSH C1BF41A806D1AB9D2D4DC0C4A975AE1A8842D76ADB3A87EE0E8DC8703BD2F8C 0x0c1bf41a806d1ab9d2d4dc0c4a97... | |
DUP2 Pairing.G1Point(uint256(0x1e6e... | |
MSTORE Pairing.G1Point(uint256(0x1e6e... | |
POP Pairing.G1Point(uint256(0x1e6e... | |
DUP2 vk | |
PUSH A0 vk.query | |
ADD vk.query | |
MLOAD vk.query | |
PUSH 0 0 | |
DUP2 vk.query[0] | |
MLOAD vk.query[0] | |
DUP2 vk.query[0] | |
LT vk.query[0] | |
PUSH [tag] 81 vk.query[0] | |
JUMPI vk.query[0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 vk.query[0] | |
PUSH 0 vk.query[0] | |
MSTORE vk.query[0] | |
PUSH 32 vk.query[0] | |
PUSH 4 vk.query[0] | |
MSTORE vk.query[0] | |
PUSH 24 vk.query[0] | |
PUSH 0 vk.query[0] | |
REVERT vk.query[0] | |
tag 81 vk.query[0] | |
JUMPDEST vk.query[0] | |
PUSH 20 vk.query[0] | |
MUL vk.query[0] | |
PUSH 20 vk.query[0] | |
ADD vk.query[0] | |
ADD vk.query[0] | |
DUP2 vk.query[0] = Pairing.G1Point(... | |
SWAP1 vk.query[0] = Pairing.G1Point(... | |
MSTORE vk.query[0] = Pairing.G1Point(... | |
POP vk.query[0] = Pairing.G1Point(... | |
PUSH 40 Pairing.G1Point(uint256(0x0b68... | |
MLOAD Pairing.G1Point(uint256(0x0b68... | |
DUP1 Pairing.G1Point(uint256(0x0b68... | |
PUSH 40 Pairing.G1Point(uint256(0x0b68... | |
ADD Pairing.G1Point(uint256(0x0b68... | |
PUSH 40 Pairing.G1Point(uint256(0x0b68... | |
MSTORE Pairing.G1Point(uint256(0x0b68... | |
DUP1 Pairing.G1Point(uint256(0x0b68... | |
PUSH B68155CA571B382E0CADCAE4BE90FC53C899A50954304E420832484EB259445 0x0b68155ca571b382e0cadcae4be9... | |
DUP2 Pairing.G1Point(uint256(0x0b68... | |
MSTORE Pairing.G1Point(uint256(0x0b68... | |
PUSH 20 Pairing.G1Point(uint256(0x0b68... | |
ADD Pairing.G1Point(uint256(0x0b68... | |
PUSH 2C337E2C12D4C40567FC57386A264BF980B7728AC5B92F9F33A717DEC817E809 0x2c337e2c12d4c40567fc57386a26... | |
DUP2 Pairing.G1Point(uint256(0x0b68... | |
MSTORE Pairing.G1Point(uint256(0x0b68... | |
POP Pairing.G1Point(uint256(0x0b68... | |
DUP2 vk | |
PUSH A0 vk.query | |
ADD vk.query | |
MLOAD vk.query | |
PUSH 1 1 | |
DUP2 vk.query[1] | |
MLOAD vk.query[1] | |
DUP2 vk.query[1] | |
LT vk.query[1] | |
PUSH [tag] 82 vk.query[1] | |
JUMPI vk.query[1] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 vk.query[1] | |
PUSH 0 vk.query[1] | |
MSTORE vk.query[1] | |
PUSH 32 vk.query[1] | |
PUSH 4 vk.query[1] | |
MSTORE vk.query[1] | |
PUSH 24 vk.query[1] | |
PUSH 0 vk.query[1] | |
REVERT vk.query[1] | |
tag 82 vk.query[1] | |
JUMPDEST vk.query[1] | |
PUSH 20 vk.query[1] | |
MUL vk.query[1] | |
PUSH 20 vk.query[1] | |
ADD vk.query[1] | |
ADD vk.query[1] | |
DUP2 vk.query[1] = Pairing.G1Point(... | |
SWAP1 vk.query[1] = Pairing.G1Point(... | |
MSTORE vk.query[1] = Pairing.G1Point(... | |
POP vk.query[1] = Pairing.G1Point(... | |
PUSH 40 Pairing.G1Point(uint256(0x0845... | |
MLOAD Pairing.G1Point(uint256(0x0845... | |
DUP1 Pairing.G1Point(uint256(0x0845... | |
PUSH 40 Pairing.G1Point(uint256(0x0845... | |
ADD Pairing.G1Point(uint256(0x0845... | |
PUSH 40 Pairing.G1Point(uint256(0x0845... | |
MSTORE Pairing.G1Point(uint256(0x0845... | |
DUP1 Pairing.G1Point(uint256(0x0845... | |
PUSH 8454581770B4499BC77706FA8F4CC10E05B0A601C1400216E8E0A46F1940AFD 0x08454581770b4499bc77706fa8f4... | |
DUP2 Pairing.G1Point(uint256(0x0845... | |
MSTORE Pairing.G1Point(uint256(0x0845... | |
PUSH 20 Pairing.G1Point(uint256(0x0845... | |
ADD Pairing.G1Point(uint256(0x0845... | |
PUSH 8741809E693926211674D3D4CC627067352E8BD6C585CC67CF56E03034BC6BF 0x08741809e693926211674d3d4cc6... | |
DUP2 Pairing.G1Point(uint256(0x0845... | |
MSTORE Pairing.G1Point(uint256(0x0845... | |
POP Pairing.G1Point(uint256(0x0845... | |
DUP2 vk | |
PUSH A0 vk.query | |
ADD vk.query | |
MLOAD vk.query | |
PUSH 2 2 | |
DUP2 vk.query[2] | |
MLOAD vk.query[2] | |
DUP2 vk.query[2] | |
LT vk.query[2] | |
PUSH [tag] 83 vk.query[2] | |
JUMPI vk.query[2] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 vk.query[2] | |
PUSH 0 vk.query[2] | |
MSTORE vk.query[2] | |
PUSH 32 vk.query[2] | |
PUSH 4 vk.query[2] | |
MSTORE vk.query[2] | |
PUSH 24 vk.query[2] | |
PUSH 0 vk.query[2] | |
REVERT vk.query[2] | |
tag 83 vk.query[2] | |
JUMPDEST vk.query[2] | |
PUSH 20 vk.query[2] | |
MUL vk.query[2] | |
PUSH 20 vk.query[2] | |
ADD vk.query[2] | |
ADD vk.query[2] | |
DUP2 vk.query[2] = Pairing.G1Point(... | |
SWAP1 vk.query[2] = Pairing.G1Point(... | |
MSTORE vk.query[2] = Pairing.G1Point(... | |
POP vk.query[2] = Pairing.G1Point(... | |
PUSH 40 Pairing.G1Point(uint256(0x17b9... | |
MLOAD Pairing.G1Point(uint256(0x17b9... | |
DUP1 Pairing.G1Point(uint256(0x17b9... | |
PUSH 40 Pairing.G1Point(uint256(0x17b9... | |
ADD Pairing.G1Point(uint256(0x17b9... | |
PUSH 40 Pairing.G1Point(uint256(0x17b9... | |
MSTORE Pairing.G1Point(uint256(0x17b9... | |
DUP1 Pairing.G1Point(uint256(0x17b9... | |
PUSH 17B931E52873060D110BA7E97AA8156D85EE8308602AE566FE0EA08E407251EC 0x17b931e52873060d110ba7e97aa8... | |
DUP2 Pairing.G1Point(uint256(0x17b9... | |
MSTORE Pairing.G1Point(uint256(0x17b9... | |
PUSH 20 Pairing.G1Point(uint256(0x17b9... | |
ADD Pairing.G1Point(uint256(0x17b9... | |
PUSH 2046E7222FE6416843CB0004E3E7428FC29300A5D7CA8EB54899E5844E1223C2 0x2046e7222fe6416843cb0004e3e7... | |
DUP2 Pairing.G1Point(uint256(0x17b9... | |
MSTORE Pairing.G1Point(uint256(0x17b9... | |
POP Pairing.G1Point(uint256(0x17b9... | |
DUP2 vk | |
PUSH A0 vk.query | |
ADD vk.query | |
MLOAD vk.query | |
PUSH 3 3 | |
DUP2 vk.query[3] | |
MLOAD vk.query[3] | |
DUP2 vk.query[3] | |
LT vk.query[3] | |
PUSH [tag] 84 vk.query[3] | |
JUMPI vk.query[3] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 vk.query[3] | |
PUSH 0 vk.query[3] | |
MSTORE vk.query[3] | |
PUSH 32 vk.query[3] | |
PUSH 4 vk.query[3] | |
MSTORE vk.query[3] | |
PUSH 24 vk.query[3] | |
PUSH 0 vk.query[3] | |
REVERT vk.query[3] | |
tag 84 vk.query[3] | |
JUMPDEST vk.query[3] | |
PUSH 20 vk.query[3] | |
MUL vk.query[3] | |
PUSH 20 vk.query[3] | |
ADD vk.query[3] | |
ADD vk.query[3] | |
DUP2 vk.query[3] = Pairing.G1Point(... | |
SWAP1 vk.query[3] = Pairing.G1Point(... | |
MSTORE vk.query[3] = Pairing.G1Point(... | |
POP vk.query[3] = Pairing.G1Point(... | |
SWAP1 function verifyingKey() pure i... | |
JUMP [out] function verifyingKey() pure i... | |
tag 55 function scalar_mul(G1Point me... | |
JUMPDEST function scalar_mul(G1Point me... | |
PUSH [tag] 85 G1Point memory r | |
PUSH [tag] 80 G1Point memory r | |
JUMP [in] G1Point memory r | |
tag 85 G1Point memory r | |
JUMPDEST G1Point memory r | |
PUSH [tag] 87 uint[3] memory input | |
PUSH [tag] 88 uint[3] memory input | |
JUMP [in] uint[3] memory input | |
tag 87 uint[3] memory input | |
JUMPDEST uint[3] memory input | |
DUP4 p | |
PUSH 0 p.X | |
ADD p.X | |
MLOAD p.X | |
DUP2 input | |
PUSH 0 0 | |
PUSH 3 input[0] | |
DUP2 input[0] | |
LT input[0] | |
PUSH [tag] 89 input[0] | |
JUMPI input[0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[0] | |
PUSH 0 input[0] | |
MSTORE input[0] | |
PUSH 32 input[0] | |
PUSH 4 input[0] | |
MSTORE input[0] | |
PUSH 24 input[0] | |
PUSH 0 input[0] | |
REVERT input[0] | |
tag 89 input[0] | |
JUMPDEST input[0] | |
PUSH 20 input[0] | |
MUL input[0] | |
ADD input[0] | |
DUP2 input[0] = p.X | |
DUP2 input[0] = p.X | |
MSTORE input[0] = p.X | |
POP input[0] = p.X | |
POP input[0] = p.X | |
DUP4 p | |
PUSH 20 p.Y | |
ADD p.Y | |
MLOAD p.Y | |
DUP2 input | |
PUSH 1 1 | |
PUSH 3 input[1] | |
DUP2 input[1] | |
LT input[1] | |
PUSH [tag] 90 input[1] | |
JUMPI input[1] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[1] | |
PUSH 0 input[1] | |
MSTORE input[1] | |
PUSH 32 input[1] | |
PUSH 4 input[1] | |
MSTORE input[1] | |
PUSH 24 input[1] | |
PUSH 0 input[1] | |
REVERT input[1] | |
tag 90 input[1] | |
JUMPDEST input[1] | |
PUSH 20 input[1] | |
MUL input[1] | |
ADD input[1] | |
DUP2 input[1] = p.Y | |
DUP2 input[1] = p.Y | |
MSTORE input[1] = p.Y | |
POP input[1] = p.Y | |
POP input[1] = p.Y | |
DUP3 s | |
DUP2 input | |
PUSH 2 2 | |
PUSH 3 input[2] | |
DUP2 input[2] | |
LT input[2] | |
PUSH [tag] 91 input[2] | |
JUMPI input[2] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[2] | |
PUSH 0 input[2] | |
MSTORE input[2] | |
PUSH 32 input[2] | |
PUSH 4 input[2] | |
MSTORE input[2] | |
PUSH 24 input[2] | |
PUSH 0 input[2] | |
REVERT input[2] | |
tag 91 input[2] | |
JUMPDEST input[2] | |
PUSH 20 input[2] | |
MUL input[2] | |
ADD input[2] | |
DUP2 input[2] = s | |
DUP2 input[2] = s | |
MSTORE input[2] = s | |
POP input[2] = s | |
POP input[2] = s | |
PUSH 0 bool success | |
PUSH 60 0x60 | |
DUP4 r | |
PUSH 80 0x80 | |
DUP5 input | |
PUSH 7 7 | |
PUSH 7D0 2000 | |
GAS gas() | |
SUB sub(gas(), 2000) | |
STATICCALL staticcall(sub(gas(), 2000), 7... | |
SWAP1 success := staticcall(sub(gas(... | |
POP success := staticcall(sub(gas(... | |
DUP1 success | |
PUSH 0 0 | |
DUP2 case 0 { invalid() } | |
EQ case 0 { invalid() } | |
PUSH [tag] 93 case 0 { invalid() } | |
JUMPI case 0 { invalid() } | |
PUSH [tag] 92 switch success case 0 { invali... | |
JUMP switch success case 0 { invali... | |
tag 93 case 0 { invalid() } | |
JUMPDEST case 0 { invalid() } | |
INVALID invalid() | |
tag 92 switch success case 0 { invali... | |
JUMPDEST switch success case 0 { invali... | |
POP switch success case 0 { invali... | |
DUP1 success | |
PUSH [tag] 94 require (success) | |
JUMPI require (success) | |
PUSH 0 require (success) | |
DUP1 require (success) | |
REVERT require (success) | |
tag 94 require (success) | |
JUMPDEST require (success) | |
POP function scalar_mul(G1Point me... | |
POP function scalar_mul(G1Point me... | |
SWAP3 function scalar_mul(G1Point me... | |
SWAP2 function scalar_mul(G1Point me... | |
POP function scalar_mul(G1Point me... | |
POP function scalar_mul(G1Point me... | |
JUMP [out] function scalar_mul(G1Point me... | |
tag 56 function addition(G1Point memo... | |
JUMPDEST function addition(G1Point memo... | |
PUSH [tag] 95 G1Point memory r | |
PUSH [tag] 80 G1Point memory r | |
JUMP [in] G1Point memory r | |
tag 95 G1Point memory r | |
JUMPDEST G1Point memory r | |
PUSH [tag] 97 uint[4] memory input | |
PUSH [tag] 98 uint[4] memory input | |
JUMP [in] uint[4] memory input | |
tag 97 uint[4] memory input | |
JUMPDEST uint[4] memory input | |
DUP4 p1 | |
PUSH 0 p1.X | |
ADD p1.X | |
MLOAD p1.X | |
DUP2 input | |
PUSH 0 0 | |
PUSH 4 input[0] | |
DUP2 input[0] | |
LT input[0] | |
PUSH [tag] 99 input[0] | |
JUMPI input[0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[0] | |
PUSH 0 input[0] | |
MSTORE input[0] | |
PUSH 32 input[0] | |
PUSH 4 input[0] | |
MSTORE input[0] | |
PUSH 24 input[0] | |
PUSH 0 input[0] | |
REVERT input[0] | |
tag 99 input[0] | |
JUMPDEST input[0] | |
PUSH 20 input[0] | |
MUL input[0] | |
ADD input[0] | |
DUP2 input[0] = p1.X | |
DUP2 input[0] = p1.X | |
MSTORE input[0] = p1.X | |
POP input[0] = p1.X | |
POP input[0] = p1.X | |
DUP4 p1 | |
PUSH 20 p1.Y | |
ADD p1.Y | |
MLOAD p1.Y | |
DUP2 input | |
PUSH 1 1 | |
PUSH 4 input[1] | |
DUP2 input[1] | |
LT input[1] | |
PUSH [tag] 100 input[1] | |
JUMPI input[1] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[1] | |
PUSH 0 input[1] | |
MSTORE input[1] | |
PUSH 32 input[1] | |
PUSH 4 input[1] | |
MSTORE input[1] | |
PUSH 24 input[1] | |
PUSH 0 input[1] | |
REVERT input[1] | |
tag 100 input[1] | |
JUMPDEST input[1] | |
PUSH 20 input[1] | |
MUL input[1] | |
ADD input[1] | |
DUP2 input[1] = p1.Y | |
DUP2 input[1] = p1.Y | |
MSTORE input[1] = p1.Y | |
POP input[1] = p1.Y | |
POP input[1] = p1.Y | |
DUP3 p2 | |
PUSH 0 p2.X | |
ADD p2.X | |
MLOAD p2.X | |
DUP2 input | |
PUSH 2 2 | |
PUSH 4 input[2] | |
DUP2 input[2] | |
LT input[2] | |
PUSH [tag] 101 input[2] | |
JUMPI input[2] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[2] | |
PUSH 0 input[2] | |
MSTORE input[2] | |
PUSH 32 input[2] | |
PUSH 4 input[2] | |
MSTORE input[2] | |
PUSH 24 input[2] | |
PUSH 0 input[2] | |
REVERT input[2] | |
tag 101 input[2] | |
JUMPDEST input[2] | |
PUSH 20 input[2] | |
MUL input[2] | |
ADD input[2] | |
DUP2 input[2] = p2.X | |
DUP2 input[2] = p2.X | |
MSTORE input[2] = p2.X | |
POP input[2] = p2.X | |
POP input[2] = p2.X | |
DUP3 p2 | |
PUSH 20 p2.Y | |
ADD p2.Y | |
MLOAD p2.Y | |
DUP2 input | |
PUSH 3 3 | |
PUSH 4 input[3] | |
DUP2 input[3] | |
LT input[3] | |
PUSH [tag] 102 input[3] | |
JUMPI input[3] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[3] | |
PUSH 0 input[3] | |
MSTORE input[3] | |
PUSH 32 input[3] | |
PUSH 4 input[3] | |
MSTORE input[3] | |
PUSH 24 input[3] | |
PUSH 0 input[3] | |
REVERT input[3] | |
tag 102 input[3] | |
JUMPDEST input[3] | |
PUSH 20 input[3] | |
MUL input[3] | |
ADD input[3] | |
DUP2 input[3] = p2.Y | |
DUP2 input[3] = p2.Y | |
MSTORE input[3] = p2.Y | |
POP input[3] = p2.Y | |
POP input[3] = p2.Y | |
PUSH 0 bool success | |
PUSH 60 0x60 | |
DUP4 r | |
PUSH C0 0xc0 | |
DUP5 input | |
PUSH 6 6 | |
PUSH 7D0 2000 | |
GAS gas() | |
SUB sub(gas(), 2000) | |
STATICCALL staticcall(sub(gas(), 2000), 6... | |
SWAP1 success := staticcall(sub(gas(... | |
POP success := staticcall(sub(gas(... | |
DUP1 success | |
PUSH 0 0 | |
DUP2 case 0 { invalid() } | |
EQ case 0 { invalid() } | |
PUSH [tag] 104 case 0 { invalid() } | |
JUMPI case 0 { invalid() } | |
PUSH [tag] 103 switch success case 0 { invali... | |
JUMP switch success case 0 { invali... | |
tag 104 case 0 { invalid() } | |
JUMPDEST case 0 { invalid() } | |
INVALID invalid() | |
tag 103 switch success case 0 { invali... | |
JUMPDEST switch success case 0 { invali... | |
POP switch success case 0 { invali... | |
DUP1 success | |
PUSH [tag] 105 require(success) | |
JUMPI require(success) | |
PUSH 0 require(success) | |
DUP1 require(success) | |
REVERT require(success) | |
tag 105 require(success) | |
JUMPDEST require(success) | |
POP function addition(G1Point memo... | |
POP function addition(G1Point memo... | |
SWAP3 function addition(G1Point memo... | |
SWAP2 function addition(G1Point memo... | |
POP function addition(G1Point memo... | |
POP function addition(G1Point memo... | |
JUMP [out] function addition(G1Point memo... | |
tag 63 function negate(G1Point memory... | |
JUMPDEST function negate(G1Point memory... | |
PUSH [tag] 106 G1Point memory | |
PUSH [tag] 80 G1Point memory | |
JUMP [in] G1Point memory | |
tag 106 G1Point memory | |
JUMPDEST G1Point memory | |
PUSH 0 uint q | |
PUSH 30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 218882428718392752222464057452... | |
SWAP1 uint q = 218882428718392752222... | |
POP uint q = 218882428718392752222... | |
PUSH 0 0 | |
DUP4 p | |
PUSH 0 p.X | |
ADD p.X | |
MLOAD p.X | |
EQ p.X == 0 | |
DUP1 p.X == 0 && p.Y == 0 | |
ISZERO p.X == 0 && p.Y == 0 | |
PUSH [tag] 108 p.X == 0 && p.Y == 0 | |
JUMPI p.X == 0 && p.Y == 0 | |
POP p.X == 0 && p.Y == 0 | |
PUSH 0 0 | |
DUP4 p | |
PUSH 20 p.Y | |
ADD p.Y | |
MLOAD p.Y | |
EQ p.Y == 0 | |
tag 108 p.X == 0 && p.Y == 0 | |
JUMPDEST p.X == 0 && p.Y == 0 | |
ISZERO if (p.X == 0 && p.Y == 0)\n ... | |
PUSH [tag] 109 if (p.X == 0 && p.Y == 0)\n ... | |
JUMPI if (p.X == 0 && p.Y == 0)\n ... | |
PUSH 40 G1Point(0, 0) | |
MLOAD G1Point(0, 0) | |
DUP1 G1Point(0, 0) | |
PUSH 40 G1Point(0, 0) | |
ADD G1Point(0, 0) | |
PUSH 40 G1Point(0, 0) | |
MSTORE G1Point(0, 0) | |
DUP1 G1Point(0, 0) | |
PUSH 0 0 | |
DUP2 G1Point(0, 0) | |
MSTORE G1Point(0, 0) | |
PUSH 20 G1Point(0, 0) | |
ADD G1Point(0, 0) | |
PUSH 0 0 | |
DUP2 G1Point(0, 0) | |
MSTORE G1Point(0, 0) | |
POP G1Point(0, 0) | |
SWAP2 return G1Point(0, 0) | |
POP return G1Point(0, 0) | |
POP return G1Point(0, 0) | |
PUSH [tag] 107 return G1Point(0, 0) | |
JUMP return G1Point(0, 0) | |
tag 109 if (p.X == 0 && p.Y == 0)\n ... | |
JUMPDEST if (p.X == 0 && p.Y == 0)\n ... | |
PUSH 40 G1Point(p.X, q.sub(p.Y % q)) | |
MLOAD G1Point(p.X, q.sub(p.Y % q)) | |
DUP1 G1Point(p.X, q.sub(p.Y % q)) | |
PUSH 40 G1Point(p.X, q.sub(p.Y % q)) | |
ADD G1Point(p.X, q.sub(p.Y % q)) | |
PUSH 40 G1Point(p.X, q.sub(p.Y % q)) | |
MSTORE G1Point(p.X, q.sub(p.Y % q)) | |
DUP1 G1Point(p.X, q.sub(p.Y % q)) | |
DUP5 p | |
PUSH 0 p.X | |
ADD p.X | |
MLOAD p.X | |
DUP2 G1Point(p.X, q.sub(p.Y % q)) | |
MSTORE G1Point(p.X, q.sub(p.Y % q)) | |
PUSH 20 G1Point(p.X, q.sub(p.Y % q)) | |
ADD G1Point(p.X, q.sub(p.Y % q)) | |
PUSH [tag] 110 q.sub(p.Y % q) | |
DUP4 q | |
DUP7 p | |
PUSH 20 p.Y | |
ADD p.Y | |
MLOAD p.Y | |
PUSH [tag] 111 p.Y % q | |
SWAP2 p.Y % q | |
SWAP1 p.Y % q | |
PUSH [tag] 112 p.Y % q | |
JUMP [in] p.Y % q | |
tag 111 p.Y % q | |
JUMPDEST p.Y % q | |
DUP5 q | |
PUSH [tag] 113 q.sub | |
SWAP1 q.sub | |
SWAP2 q.sub(p.Y % q) | |
SWAP1 q.sub(p.Y % q) | |
PUSH FFFFFFFF q.sub(p.Y % q) | |
AND q.sub(p.Y % q) | |
JUMP [in] q.sub(p.Y % q) | |
tag 110 q.sub(p.Y % q) | |
JUMPDEST q.sub(p.Y % q) | |
DUP2 G1Point(p.X, q.sub(p.Y % q)) | |
MSTORE G1Point(p.X, q.sub(p.Y % q)) | |
POP G1Point(p.X, q.sub(p.Y % q)) | |
SWAP2 return G1Point(p.X, q.sub(p.Y ... | |
POP return G1Point(p.X, q.sub(p.Y ... | |
POP return G1Point(p.X, q.sub(p.Y ... | |
tag 107 function negate(G1Point memory... | |
JUMPDEST function negate(G1Point memory... | |
SWAP2 function negate(G1Point memory... | |
SWAP1 function negate(G1Point memory... | |
POP function negate(G1Point memory... | |
JUMP [out] function negate(G1Point memory... | |
tag 65 function addition(G2Point memo... | |
JUMPDEST function addition(G2Point memo... | |
PUSH [tag] 114 G2Point memory r | |
PUSH [tag] 115 G2Point memory r | |
JUMP [in] G2Point memory r | |
tag 114 G2Point memory r | |
JUMPDEST G2Point memory r | |
PUSHLIB contracts/1_Storage.sol:BN256G2 BN256G2 | |
PUSH 61A931EC BN256G2.ECTwistAdd | |
DUP5 p1 | |
PUSH 0 p1.X | |
ADD p1.X | |
MLOAD p1.X | |
PUSH 0 0 | |
PUSH 2 p1.X[0] | |
DUP2 p1.X[0] | |
LT p1.X[0] | |
PUSH [tag] 117 p1.X[0] | |
JUMPI p1.X[0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1.X[0] | |
PUSH 0 p1.X[0] | |
MSTORE p1.X[0] | |
PUSH 32 p1.X[0] | |
PUSH 4 p1.X[0] | |
MSTORE p1.X[0] | |
PUSH 24 p1.X[0] | |
PUSH 0 p1.X[0] | |
REVERT p1.X[0] | |
tag 117 p1.X[0] | |
JUMPDEST p1.X[0] | |
PUSH 20 p1.X[0] | |
MUL p1.X[0] | |
ADD p1.X[0] | |
MLOAD p1.X[0] | |
DUP6 p1 | |
PUSH 0 p1.X | |
ADD p1.X | |
MLOAD p1.X | |
PUSH 1 1 | |
PUSH 2 p1.X[1] | |
DUP2 p1.X[1] | |
LT p1.X[1] | |
PUSH [tag] 118 p1.X[1] | |
JUMPI p1.X[1] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1.X[1] | |
PUSH 0 p1.X[1] | |
MSTORE p1.X[1] | |
PUSH 32 p1.X[1] | |
PUSH 4 p1.X[1] | |
MSTORE p1.X[1] | |
PUSH 24 p1.X[1] | |
PUSH 0 p1.X[1] | |
REVERT p1.X[1] | |
tag 118 p1.X[1] | |
JUMPDEST p1.X[1] | |
PUSH 20 p1.X[1] | |
MUL p1.X[1] | |
ADD p1.X[1] | |
MLOAD p1.X[1] | |
DUP7 p1 | |
PUSH 20 p1.Y | |
ADD p1.Y | |
MLOAD p1.Y | |
PUSH 0 0 | |
PUSH 2 p1.Y[0] | |
DUP2 p1.Y[0] | |
LT p1.Y[0] | |
PUSH [tag] 119 p1.Y[0] | |
JUMPI p1.Y[0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1.Y[0] | |
PUSH 0 p1.Y[0] | |
MSTORE p1.Y[0] | |
PUSH 32 p1.Y[0] | |
PUSH 4 p1.Y[0] | |
MSTORE p1.Y[0] | |
PUSH 24 p1.Y[0] | |
PUSH 0 p1.Y[0] | |
REVERT p1.Y[0] | |
tag 119 p1.Y[0] | |
JUMPDEST p1.Y[0] | |
PUSH 20 p1.Y[0] | |
MUL p1.Y[0] | |
ADD p1.Y[0] | |
MLOAD p1.Y[0] | |
DUP8 p1 | |
PUSH 20 p1.Y | |
ADD p1.Y | |
MLOAD p1.Y | |
PUSH 1 1 | |
PUSH 2 p1.Y[1] | |
DUP2 p1.Y[1] | |
LT p1.Y[1] | |
PUSH [tag] 120 p1.Y[1] | |
JUMPI p1.Y[1] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1.Y[1] | |
PUSH 0 p1.Y[1] | |
MSTORE p1.Y[1] | |
PUSH 32 p1.Y[1] | |
PUSH 4 p1.Y[1] | |
MSTORE p1.Y[1] | |
PUSH 24 p1.Y[1] | |
PUSH 0 p1.Y[1] | |
REVERT p1.Y[1] | |
tag 120 p1.Y[1] | |
JUMPDEST p1.Y[1] | |
PUSH 20 p1.Y[1] | |
MUL p1.Y[1] | |
ADD p1.Y[1] | |
MLOAD p1.Y[1] | |
DUP8 p2 | |
PUSH 0 p2.X | |
ADD p2.X | |
MLOAD p2.X | |
PUSH 0 0 | |
PUSH 2 p2.X[0] | |
DUP2 p2.X[0] | |
LT p2.X[0] | |
PUSH [tag] 121 p2.X[0] | |
JUMPI p2.X[0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2.X[0] | |
PUSH 0 p2.X[0] | |
MSTORE p2.X[0] | |
PUSH 32 p2.X[0] | |
PUSH 4 p2.X[0] | |
MSTORE p2.X[0] | |
PUSH 24 p2.X[0] | |
PUSH 0 p2.X[0] | |
REVERT p2.X[0] | |
tag 121 p2.X[0] | |
JUMPDEST p2.X[0] | |
PUSH 20 p2.X[0] | |
MUL p2.X[0] | |
ADD p2.X[0] | |
MLOAD p2.X[0] | |
DUP9 p2 | |
PUSH 0 p2.X | |
ADD p2.X | |
MLOAD p2.X | |
PUSH 1 1 | |
PUSH 2 p2.X[1] | |
DUP2 p2.X[1] | |
LT p2.X[1] | |
PUSH [tag] 122 p2.X[1] | |
JUMPI p2.X[1] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2.X[1] | |
PUSH 0 p2.X[1] | |
MSTORE p2.X[1] | |
PUSH 32 p2.X[1] | |
PUSH 4 p2.X[1] | |
MSTORE p2.X[1] | |
PUSH 24 p2.X[1] | |
PUSH 0 p2.X[1] | |
REVERT p2.X[1] | |
tag 122 p2.X[1] | |
JUMPDEST p2.X[1] | |
PUSH 20 p2.X[1] | |
MUL p2.X[1] | |
ADD p2.X[1] | |
MLOAD p2.X[1] | |
DUP10 p2 | |
PUSH 20 p2.Y | |
ADD p2.Y | |
MLOAD p2.Y | |
PUSH 0 0 | |
PUSH 2 p2.Y[0] | |
DUP2 p2.Y[0] | |
LT p2.Y[0] | |
PUSH [tag] 123 p2.Y[0] | |
JUMPI p2.Y[0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2.Y[0] | |
PUSH 0 p2.Y[0] | |
MSTORE p2.Y[0] | |
PUSH 32 p2.Y[0] | |
PUSH 4 p2.Y[0] | |
MSTORE p2.Y[0] | |
PUSH 24 p2.Y[0] | |
PUSH 0 p2.Y[0] | |
REVERT p2.Y[0] | |
tag 123 p2.Y[0] | |
JUMPDEST p2.Y[0] | |
PUSH 20 p2.Y[0] | |
MUL p2.Y[0] | |
ADD p2.Y[0] | |
MLOAD p2.Y[0] | |
DUP11 p2 | |
PUSH 20 p2.Y | |
ADD p2.Y | |
MLOAD p2.Y | |
PUSH 1 1 | |
PUSH 2 p2.Y[1] | |
DUP2 p2.Y[1] | |
LT p2.Y[1] | |
PUSH [tag] 124 p2.Y[1] | |
JUMPI p2.Y[1] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2.Y[1] | |
PUSH 0 p2.Y[1] | |
MSTORE p2.Y[1] | |
PUSH 32 p2.Y[1] | |
PUSH 4 p2.Y[1] | |
MSTORE p2.Y[1] | |
PUSH 24 p2.Y[1] | |
PUSH 0 p2.Y[1] | |
REVERT p2.Y[1] | |
tag 124 p2.Y[1] | |
JUMPDEST p2.Y[1] | |
PUSH 20 p2.Y[1] | |
MUL p2.Y[1] | |
ADD p2.Y[1] | |
MLOAD p2.Y[1] | |
PUSH 40 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
MLOAD BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP10 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH FFFFFFFF BN256G2.ECTwistAdd(p1.X[0],p1.... | |
AND BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH E0 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SHL BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
MSTORE BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH 4 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
ADD BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP10 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
MSTORE BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
ADD BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP9 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
MSTORE BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
ADD BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP8 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
MSTORE BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
ADD BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP7 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
MSTORE BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
ADD BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP6 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
MSTORE BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
ADD BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP5 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
MSTORE BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
ADD BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP4 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
MSTORE BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
ADD BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP3 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
MSTORE BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
ADD BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SWAP9 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
POP BN256G2.ECTwistAdd(p1.X[0],p1.... | |
POP BN256G2.ECTwistAdd(p1.X[0],p1.... | |
POP BN256G2.ECTwistAdd(p1.X[0],p1.... | |
POP BN256G2.ECTwistAdd(p1.X[0],p1.... | |
POP BN256G2.ECTwistAdd(p1.X[0],p1.... | |
POP BN256G2.ECTwistAdd(p1.X[0],p1.... | |
POP BN256G2.ECTwistAdd(p1.X[0],p1.... | |
POP BN256G2.ECTwistAdd(p1.X[0],p1.... | |
POP BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH 80 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH 40 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
MLOAD BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP4 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SUB BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP7 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
EXTCODESIZE BN256G2.ECTwistAdd(p1.X[0],p1.... | |
ISZERO BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
ISZERO BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH [tag] 125 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
JUMPI BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH 0 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
REVERT BN256G2.ECTwistAdd(p1.X[0],p1.... | |
tag 125 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
JUMPDEST BN256G2.ECTwistAdd(p1.X[0],p1.... | |
POP BN256G2.ECTwistAdd(p1.X[0],p1.... | |
GAS BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DELEGATECALL BN256G2.ECTwistAdd(p1.X[0],p1.... | |
ISZERO BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
ISZERO BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH [tag] 127 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
JUMPI BN256G2.ECTwistAdd(p1.X[0],p1.... | |
RETURNDATASIZE BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH 0 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
RETURNDATACOPY BN256G2.ECTwistAdd(p1.X[0],p1.... | |
RETURNDATASIZE BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH 0 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
REVERT BN256G2.ECTwistAdd(p1.X[0],p1.... | |
tag 127 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
JUMPDEST BN256G2.ECTwistAdd(p1.X[0],p1.... | |
POP BN256G2.ECTwistAdd(p1.X[0],p1.... | |
POP BN256G2.ECTwistAdd(p1.X[0],p1.... | |
POP BN256G2.ECTwistAdd(p1.X[0],p1.... | |
POP BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH 40 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
MLOAD BN256G2.ECTwistAdd(p1.X[0],p1.... | |
RETURNDATASIZE BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH 80 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
LT BN256G2.ECTwistAdd(p1.X[0],p1.... | |
ISZERO BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH [tag] 128 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
JUMPI BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH 0 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
REVERT BN256G2.ECTwistAdd(p1.X[0],p1.... | |
tag 128 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
JUMPDEST BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
ADD BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
MLOAD BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
ADD BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SWAP3 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SWAP2 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
MLOAD BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
ADD BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SWAP3 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SWAP2 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
MLOAD BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
ADD BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SWAP3 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SWAP2 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
MLOAD BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
ADD BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SWAP3 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SWAP2 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1.... | |
POP BN256G2.ECTwistAdd(p1.X[0],p1.... | |
POP BN256G2.ECTwistAdd(p1.X[0],p1.... | |
POP BN256G2.ECTwistAdd(p1.X[0],p1.... | |
DUP5 r | |
PUSH 0 r.X | |
ADD r.X | |
MLOAD r.X | |
PUSH 0 0 | |
PUSH 2 r.X[0] | |
DUP2 r.X[0] | |
LT r.X[0] | |
PUSH [tag] 129 r.X[0] | |
JUMPI r.X[0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 r.X[0] | |
PUSH 0 r.X[0] | |
MSTORE r.X[0] | |
PUSH 32 r.X[0] | |
PUSH 4 r.X[0] | |
MSTORE r.X[0] | |
PUSH 24 r.X[0] | |
PUSH 0 r.X[0] | |
REVERT r.X[0] | |
tag 129 r.X[0] | |
JUMPDEST r.X[0] | |
PUSH 20 r.X[0] | |
MUL r.X[0] | |
ADD r.X[0] | |
DUP6 r | |
PUSH 0 r.X | |
ADD r.X | |
MLOAD r.X | |
PUSH 1 1 | |
PUSH 2 r.X[1] | |
DUP2 r.X[1] | |
LT r.X[1] | |
PUSH [tag] 130 r.X[1] | |
JUMPI r.X[1] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 r.X[1] | |
PUSH 0 r.X[1] | |
MSTORE r.X[1] | |
PUSH 32 r.X[1] | |
PUSH 4 r.X[1] | |
MSTORE r.X[1] | |
PUSH 24 r.X[1] | |
PUSH 0 r.X[1] | |
REVERT r.X[1] | |
tag 130 r.X[1] | |
JUMPDEST r.X[1] | |
PUSH 20 r.X[1] | |
MUL r.X[1] | |
ADD r.X[1] | |
DUP7 r | |
PUSH 20 r.Y | |
ADD r.Y | |
MLOAD r.Y | |
PUSH 0 0 | |
PUSH 2 r.Y[0] | |
DUP2 r.Y[0] | |
LT r.Y[0] | |
PUSH [tag] 131 r.Y[0] | |
JUMPI r.Y[0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 r.Y[0] | |
PUSH 0 r.Y[0] | |
MSTORE r.Y[0] | |
PUSH 32 r.Y[0] | |
PUSH 4 r.Y[0] | |
MSTORE r.Y[0] | |
PUSH 24 r.Y[0] | |
PUSH 0 r.Y[0] | |
REVERT r.Y[0] | |
tag 131 r.Y[0] | |
JUMPDEST r.Y[0] | |
PUSH 20 r.Y[0] | |
MUL r.Y[0] | |
ADD r.Y[0] | |
DUP8 r | |
PUSH 20 r.Y | |
ADD r.Y | |
MLOAD r.Y | |
PUSH 1 1 | |
PUSH 2 r.Y[1] | |
DUP2 r.Y[1] | |
LT r.Y[1] | |
PUSH [tag] 132 r.Y[1] | |
JUMPI r.Y[1] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 r.Y[1] | |
PUSH 0 r.Y[1] | |
MSTORE r.Y[1] | |
PUSH 32 r.Y[1] | |
PUSH 4 r.Y[1] | |
MSTORE r.Y[1] | |
PUSH 24 r.Y[1] | |
PUSH 0 r.Y[1] | |
REVERT r.Y[1] | |
tag 132 r.Y[1] | |
JUMPDEST r.Y[1] | |
PUSH 20 r.Y[1] | |
MUL r.Y[1] | |
ADD r.Y[1] | |
DUP5 (r.X[0], r.X[1], r.Y[0], r.Y[1... | |
DUP2 (r.X[0], r.X[1], r.Y[0], r.Y[1... | |
MSTORE (r.X[0], r.X[1], r.Y[0], r.Y[1... | |
POP (r.X[0], r.X[1], r.Y[0], r.Y[1... | |
DUP5 (r.X[0], r.X[1], r.Y[0], r.Y[1... | |
DUP2 (r.X[0], r.X[1], r.Y[0], r.Y[1... | |
MSTORE (r.X[0], r.X[1], r.Y[0], r.Y[1... | |
POP (r.X[0], r.X[1], r.Y[0], r.Y[1... | |
DUP5 (r.X[0], r.X[1], r.Y[0], r.Y[1... | |
DUP2 (r.X[0], r.X[1], r.Y[0], r.Y[1... | |
MSTORE (r.X[0], r.X[1], r.Y[0], r.Y[1... | |
POP (r.X[0], r.X[1], r.Y[0], r.Y[1... | |
DUP5 (r.X[0], r.X[1], r.Y[0], r.Y[1... | |
DUP2 (r.X[0], r.X[1], r.Y[0], r.Y[1... | |
MSTORE (r.X[0], r.X[1], r.Y[0], r.Y[1... | |
POP (r.X[0], r.X[1], r.Y[0], r.Y[1... | |
POP (r.X[0], r.X[1], r.Y[0], r.Y[1... | |
POP (r.X[0], r.X[1], r.Y[0], r.Y[1... | |
POP (r.X[0], r.X[1], r.Y[0], r.Y[1... | |
POP (r.X[0], r.X[1], r.Y[0], r.Y[1... | |
SWAP3 function addition(G2Point memo... | |
SWAP2 function addition(G2Point memo... | |
POP function addition(G2Point memo... | |
POP function addition(G2Point memo... | |
JUMP [out] function addition(G2Point memo... | |
tag 66 function pairingProd4(\n ... | |
JUMPDEST function pairingProd4(\n ... | |
PUSH 0 bool | |
DUP1 G1Point[] memory p1 | |
PUSH 4 4 | |
PUSH FFFFFFFFFFFFFFFF new G1Point[](4) | |
DUP2 new G1Point[](4) | |
GT new G1Point[](4) | |
ISZERO new G1Point[](4) | |
PUSH [tag] 134 new G1Point[](4) | |
JUMPI new G1Point[](4) | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 new G1Point[](4) | |
PUSH 0 new G1Point[](4) | |
MSTORE new G1Point[](4) | |
PUSH 41 new G1Point[](4) | |
PUSH 4 new G1Point[](4) | |
MSTORE new G1Point[](4) | |
PUSH 24 new G1Point[](4) | |
PUSH 0 new G1Point[](4) | |
REVERT new G1Point[](4) | |
tag 134 new G1Point[](4) | |
JUMPDEST new G1Point[](4) | |
PUSH 40 new G1Point[](4) | |
MLOAD new G1Point[](4) | |
SWAP1 new G1Point[](4) | |
DUP1 new G1Point[](4) | |
DUP3 new G1Point[](4) | |
MSTORE new G1Point[](4) | |
DUP1 new G1Point[](4) | |
PUSH 20 new G1Point[](4) | |
MUL new G1Point[](4) | |
PUSH 20 new G1Point[](4) | |
ADD new G1Point[](4) | |
DUP3 new G1Point[](4) | |
ADD new G1Point[](4) | |
PUSH 40 new G1Point[](4) | |
MSTORE new G1Point[](4) | |
DUP1 new G1Point[](4) | |
ISZERO new G1Point[](4) | |
PUSH [tag] 135 new G1Point[](4) | |
JUMPI new G1Point[](4) | |
DUP2 new G1Point[](4) | |
PUSH 20 new G1Point[](4) | |
ADD new G1Point[](4) | |
tag 136 new G1Point[](4) | |
JUMPDEST new G1Point[](4) | |
PUSH [tag] 137 new G1Point[](4) | |
PUSH [tag] 80 new G1Point[](4) | |
JUMP [in] new G1Point[](4) | |
tag 137 new G1Point[](4) | |
JUMPDEST new G1Point[](4) | |
DUP2 new G1Point[](4) | |
MSTORE new G1Point[](4) | |
PUSH 20 new G1Point[](4) | |
ADD new G1Point[](4) | |
SWAP1 new G1Point[](4) | |
PUSH 1 new G1Point[](4) | |
SWAP1 new G1Point[](4) | |
SUB new G1Point[](4) | |
SWAP1 new G1Point[](4) | |
DUP2 new G1Point[](4) | |
PUSH [tag] 136 new G1Point[](4) | |
JUMPI new G1Point[](4) | |
SWAP1 new G1Point[](4) | |
POP new G1Point[](4) | |
tag 135 new G1Point[](4) | |
JUMPDEST new G1Point[](4) | |
POP new G1Point[](4) | |
SWAP1 G1Point[] memory p1 = new G1Po... | |
POP G1Point[] memory p1 = new G1Po... | |
PUSH 0 G2Point[] memory p2 | |
PUSH 4 4 | |
PUSH FFFFFFFFFFFFFFFF new G2Point[](4) | |
DUP2 new G2Point[](4) | |
GT new G2Point[](4) | |
ISZERO new G2Point[](4) | |
PUSH [tag] 138 new G2Point[](4) | |
JUMPI new G2Point[](4) | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 new G2Point[](4) | |
PUSH 0 new G2Point[](4) | |
MSTORE new G2Point[](4) | |
PUSH 41 new G2Point[](4) | |
PUSH 4 new G2Point[](4) | |
MSTORE new G2Point[](4) | |
PUSH 24 new G2Point[](4) | |
PUSH 0 new G2Point[](4) | |
REVERT new G2Point[](4) | |
tag 138 new G2Point[](4) | |
JUMPDEST new G2Point[](4) | |
PUSH 40 new G2Point[](4) | |
MLOAD new G2Point[](4) | |
SWAP1 new G2Point[](4) | |
DUP1 new G2Point[](4) | |
DUP3 new G2Point[](4) | |
MSTORE new G2Point[](4) | |
DUP1 new G2Point[](4) | |
PUSH 20 new G2Point[](4) | |
MUL new G2Point[](4) | |
PUSH 20 new G2Point[](4) | |
ADD new G2Point[](4) | |
DUP3 new G2Point[](4) | |
ADD new G2Point[](4) | |
PUSH 40 new G2Point[](4) | |
MSTORE new G2Point[](4) | |
DUP1 new G2Point[](4) | |
ISZERO new G2Point[](4) | |
PUSH [tag] 139 new G2Point[](4) | |
JUMPI new G2Point[](4) | |
DUP2 new G2Point[](4) | |
PUSH 20 new G2Point[](4) | |
ADD new G2Point[](4) | |
tag 140 new G2Point[](4) | |
JUMPDEST new G2Point[](4) | |
PUSH [tag] 141 new G2Point[](4) | |
PUSH [tag] 115 new G2Point[](4) | |
JUMP [in] new G2Point[](4) | |
tag 141 new G2Point[](4) | |
JUMPDEST new G2Point[](4) | |
DUP2 new G2Point[](4) | |
MSTORE new G2Point[](4) | |
PUSH 20 new G2Point[](4) | |
ADD new G2Point[](4) | |
SWAP1 new G2Point[](4) | |
PUSH 1 new G2Point[](4) | |
SWAP1 new G2Point[](4) | |
SUB new G2Point[](4) | |
SWAP1 new G2Point[](4) | |
DUP2 new G2Point[](4) | |
PUSH [tag] 140 new G2Point[](4) | |
JUMPI new G2Point[](4) | |
SWAP1 new G2Point[](4) | |
POP new G2Point[](4) | |
tag 139 new G2Point[](4) | |
JUMPDEST new G2Point[](4) | |
POP new G2Point[](4) | |
SWAP1 G2Point[] memory p2 = new G2Po... | |
POP G2Point[] memory p2 = new G2Po... | |
DUP11 a1 | |
DUP3 p1 | |
PUSH 0 0 | |
DUP2 p1[0] | |
MLOAD p1[0] | |
DUP2 p1[0] | |
LT p1[0] | |
PUSH [tag] 142 p1[0] | |
JUMPI p1[0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1[0] | |
PUSH 0 p1[0] | |
MSTORE p1[0] | |
PUSH 32 p1[0] | |
PUSH 4 p1[0] | |
MSTORE p1[0] | |
PUSH 24 p1[0] | |
PUSH 0 p1[0] | |
REVERT p1[0] | |
tag 142 p1[0] | |
JUMPDEST p1[0] | |
PUSH 20 p1[0] | |
MUL p1[0] | |
PUSH 20 p1[0] | |
ADD p1[0] | |
ADD p1[0] | |
DUP2 p1[0] = a1 | |
SWAP1 p1[0] = a1 | |
MSTORE p1[0] = a1 | |
POP p1[0] = a1 | |
DUP9 b1 | |
DUP3 p1 | |
PUSH 1 1 | |
DUP2 p1[1] | |
MLOAD p1[1] | |
DUP2 p1[1] | |
LT p1[1] | |
PUSH [tag] 143 p1[1] | |
JUMPI p1[1] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1[1] | |
PUSH 0 p1[1] | |
MSTORE p1[1] | |
PUSH 32 p1[1] | |
PUSH 4 p1[1] | |
MSTORE p1[1] | |
PUSH 24 p1[1] | |
PUSH 0 p1[1] | |
REVERT p1[1] | |
tag 143 p1[1] | |
JUMPDEST p1[1] | |
PUSH 20 p1[1] | |
MUL p1[1] | |
PUSH 20 p1[1] | |
ADD p1[1] | |
ADD p1[1] | |
DUP2 p1[1] = b1 | |
SWAP1 p1[1] = b1 | |
MSTORE p1[1] = b1 | |
POP p1[1] = b1 | |
DUP7 c1 | |
DUP3 p1 | |
PUSH 2 2 | |
DUP2 p1[2] | |
MLOAD p1[2] | |
DUP2 p1[2] | |
LT p1[2] | |
PUSH [tag] 144 p1[2] | |
JUMPI p1[2] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1[2] | |
PUSH 0 p1[2] | |
MSTORE p1[2] | |
PUSH 32 p1[2] | |
PUSH 4 p1[2] | |
MSTORE p1[2] | |
PUSH 24 p1[2] | |
PUSH 0 p1[2] | |
REVERT p1[2] | |
tag 144 p1[2] | |
JUMPDEST p1[2] | |
PUSH 20 p1[2] | |
MUL p1[2] | |
PUSH 20 p1[2] | |
ADD p1[2] | |
ADD p1[2] | |
DUP2 p1[2] = c1 | |
SWAP1 p1[2] = c1 | |
MSTORE p1[2] = c1 | |
POP p1[2] = c1 | |
DUP5 d1 | |
DUP3 p1 | |
PUSH 3 3 | |
DUP2 p1[3] | |
MLOAD p1[3] | |
DUP2 p1[3] | |
LT p1[3] | |
PUSH [tag] 145 p1[3] | |
JUMPI p1[3] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1[3] | |
PUSH 0 p1[3] | |
MSTORE p1[3] | |
PUSH 32 p1[3] | |
PUSH 4 p1[3] | |
MSTORE p1[3] | |
PUSH 24 p1[3] | |
PUSH 0 p1[3] | |
REVERT p1[3] | |
tag 145 p1[3] | |
JUMPDEST p1[3] | |
PUSH 20 p1[3] | |
MUL p1[3] | |
PUSH 20 p1[3] | |
ADD p1[3] | |
ADD p1[3] | |
DUP2 p1[3] = d1 | |
SWAP1 p1[3] = d1 | |
MSTORE p1[3] = d1 | |
POP p1[3] = d1 | |
DUP10 a2 | |
DUP2 p2 | |
PUSH 0 0 | |
DUP2 p2[0] | |
MLOAD p2[0] | |
DUP2 p2[0] | |
LT p2[0] | |
PUSH [tag] 146 p2[0] | |
JUMPI p2[0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[0] | |
PUSH 0 p2[0] | |
MSTORE p2[0] | |
PUSH 32 p2[0] | |
PUSH 4 p2[0] | |
MSTORE p2[0] | |
PUSH 24 p2[0] | |
PUSH 0 p2[0] | |
REVERT p2[0] | |
tag 146 p2[0] | |
JUMPDEST p2[0] | |
PUSH 20 p2[0] | |
MUL p2[0] | |
PUSH 20 p2[0] | |
ADD p2[0] | |
ADD p2[0] | |
DUP2 p2[0] = a2 | |
SWAP1 p2[0] = a2 | |
MSTORE p2[0] = a2 | |
POP p2[0] = a2 | |
DUP8 b2 | |
DUP2 p2 | |
PUSH 1 1 | |
DUP2 p2[1] | |
MLOAD p2[1] | |
DUP2 p2[1] | |
LT p2[1] | |
PUSH [tag] 147 p2[1] | |
JUMPI p2[1] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[1] | |
PUSH 0 p2[1] | |
MSTORE p2[1] | |
PUSH 32 p2[1] | |
PUSH 4 p2[1] | |
MSTORE p2[1] | |
PUSH 24 p2[1] | |
PUSH 0 p2[1] | |
REVERT p2[1] | |
tag 147 p2[1] | |
JUMPDEST p2[1] | |
PUSH 20 p2[1] | |
MUL p2[1] | |
PUSH 20 p2[1] | |
ADD p2[1] | |
ADD p2[1] | |
DUP2 p2[1] = b2 | |
SWAP1 p2[1] = b2 | |
MSTORE p2[1] = b2 | |
POP p2[1] = b2 | |
DUP6 c2 | |
DUP2 p2 | |
PUSH 2 2 | |
DUP2 p2[2] | |
MLOAD p2[2] | |
DUP2 p2[2] | |
LT p2[2] | |
PUSH [tag] 148 p2[2] | |
JUMPI p2[2] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[2] | |
PUSH 0 p2[2] | |
MSTORE p2[2] | |
PUSH 32 p2[2] | |
PUSH 4 p2[2] | |
MSTORE p2[2] | |
PUSH 24 p2[2] | |
PUSH 0 p2[2] | |
REVERT p2[2] | |
tag 148 p2[2] | |
JUMPDEST p2[2] | |
PUSH 20 p2[2] | |
MUL p2[2] | |
PUSH 20 p2[2] | |
ADD p2[2] | |
ADD p2[2] | |
DUP2 p2[2] = c2 | |
SWAP1 p2[2] = c2 | |
MSTORE p2[2] = c2 | |
POP p2[2] = c2 | |
DUP4 d2 | |
DUP2 p2 | |
PUSH 3 3 | |
DUP2 p2[3] | |
MLOAD p2[3] | |
DUP2 p2[3] | |
LT p2[3] | |
PUSH [tag] 149 p2[3] | |
JUMPI p2[3] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[3] | |
PUSH 0 p2[3] | |
MSTORE p2[3] | |
PUSH 32 p2[3] | |
PUSH 4 p2[3] | |
MSTORE p2[3] | |
PUSH 24 p2[3] | |
PUSH 0 p2[3] | |
REVERT p2[3] | |
tag 149 p2[3] | |
JUMPDEST p2[3] | |
PUSH 20 p2[3] | |
MUL p2[3] | |
PUSH 20 p2[3] | |
ADD p2[3] | |
ADD p2[3] | |
DUP2 p2[3] = d2 | |
SWAP1 p2[3] = d2 | |
MSTORE p2[3] = d2 | |
POP p2[3] = d2 | |
PUSH [tag] 150 pairing(p1, p2) | |
DUP3 p1 | |
DUP3 p2 | |
PUSH [tag] 151 pairing | |
JUMP [in] pairing(p1, p2) | |
tag 150 pairing(p1, p2) | |
JUMPDEST pairing(p1, p2) | |
SWAP3 return pairing(p1, p2) | |
POP return pairing(p1, p2) | |
POP return pairing(p1, p2) | |
POP return pairing(p1, p2) | |
SWAP9 function pairingProd4(\n ... | |
SWAP8 function pairingProd4(\n ... | |
POP function pairingProd4(\n ... | |
POP function pairingProd4(\n ... | |
POP function pairingProd4(\n ... | |
POP function pairingProd4(\n ... | |
POP function pairingProd4(\n ... | |
POP function pairingProd4(\n ... | |
POP function pairingProd4(\n ... | |
POP function pairingProd4(\n ... | |
JUMP [out] function pairingProd4(\n ... | |
tag 70 function pairingProd2(G1Point ... | |
JUMPDEST function pairingProd2(G1Point ... | |
PUSH 0 bool | |
DUP1 G1Point[] memory p1 | |
PUSH 2 2 | |
PUSH FFFFFFFFFFFFFFFF new G1Point[](2) | |
DUP2 new G1Point[](2) | |
GT new G1Point[](2) | |
ISZERO new G1Point[](2) | |
PUSH [tag] 153 new G1Point[](2) | |
JUMPI new G1Point[](2) | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 new G1Point[](2) | |
PUSH 0 new G1Point[](2) | |
MSTORE new G1Point[](2) | |
PUSH 41 new G1Point[](2) | |
PUSH 4 new G1Point[](2) | |
MSTORE new G1Point[](2) | |
PUSH 24 new G1Point[](2) | |
PUSH 0 new G1Point[](2) | |
REVERT new G1Point[](2) | |
tag 153 new G1Point[](2) | |
JUMPDEST new G1Point[](2) | |
PUSH 40 new G1Point[](2) | |
MLOAD new G1Point[](2) | |
SWAP1 new G1Point[](2) | |
DUP1 new G1Point[](2) | |
DUP3 new G1Point[](2) | |
MSTORE new G1Point[](2) | |
DUP1 new G1Point[](2) | |
PUSH 20 new G1Point[](2) | |
MUL new G1Point[](2) | |
PUSH 20 new G1Point[](2) | |
ADD new G1Point[](2) | |
DUP3 new G1Point[](2) | |
ADD new G1Point[](2) | |
PUSH 40 new G1Point[](2) | |
MSTORE new G1Point[](2) | |
DUP1 new G1Point[](2) | |
ISZERO new G1Point[](2) | |
PUSH [tag] 154 new G1Point[](2) | |
JUMPI new G1Point[](2) | |
DUP2 new G1Point[](2) | |
PUSH 20 new G1Point[](2) | |
ADD new G1Point[](2) | |
tag 155 new G1Point[](2) | |
JUMPDEST new G1Point[](2) | |
PUSH [tag] 156 new G1Point[](2) | |
PUSH [tag] 80 new G1Point[](2) | |
JUMP [in] new G1Point[](2) | |
tag 156 new G1Point[](2) | |
JUMPDEST new G1Point[](2) | |
DUP2 new G1Point[](2) | |
MSTORE new G1Point[](2) | |
PUSH 20 new G1Point[](2) | |
ADD new G1Point[](2) | |
SWAP1 new G1Point[](2) | |
PUSH 1 new G1Point[](2) | |
SWAP1 new G1Point[](2) | |
SUB new G1Point[](2) | |
SWAP1 new G1Point[](2) | |
DUP2 new G1Point[](2) | |
PUSH [tag] 155 new G1Point[](2) | |
JUMPI new G1Point[](2) | |
SWAP1 new G1Point[](2) | |
POP new G1Point[](2) | |
tag 154 new G1Point[](2) | |
JUMPDEST new G1Point[](2) | |
POP new G1Point[](2) | |
SWAP1 G1Point[] memory p1 = new G1Po... | |
POP G1Point[] memory p1 = new G1Po... | |
PUSH 0 G2Point[] memory p2 | |
PUSH 2 2 | |
PUSH FFFFFFFFFFFFFFFF new G2Point[](2) | |
DUP2 new G2Point[](2) | |
GT new G2Point[](2) | |
ISZERO new G2Point[](2) | |
PUSH [tag] 157 new G2Point[](2) | |
JUMPI new G2Point[](2) | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 new G2Point[](2) | |
PUSH 0 new G2Point[](2) | |
MSTORE new G2Point[](2) | |
PUSH 41 new G2Point[](2) | |
PUSH 4 new G2Point[](2) | |
MSTORE new G2Point[](2) | |
PUSH 24 new G2Point[](2) | |
PUSH 0 new G2Point[](2) | |
REVERT new G2Point[](2) | |
tag 157 new G2Point[](2) | |
JUMPDEST new G2Point[](2) | |
PUSH 40 new G2Point[](2) | |
MLOAD new G2Point[](2) | |
SWAP1 new G2Point[](2) | |
DUP1 new G2Point[](2) | |
DUP3 new G2Point[](2) | |
MSTORE new G2Point[](2) | |
DUP1 new G2Point[](2) | |
PUSH 20 new G2Point[](2) | |
MUL new G2Point[](2) | |
PUSH 20 new G2Point[](2) | |
ADD new G2Point[](2) | |
DUP3 new G2Point[](2) | |
ADD new G2Point[](2) | |
PUSH 40 new G2Point[](2) | |
MSTORE new G2Point[](2) | |
DUP1 new G2Point[](2) | |
ISZERO new G2Point[](2) | |
PUSH [tag] 158 new G2Point[](2) | |
JUMPI new G2Point[](2) | |
DUP2 new G2Point[](2) | |
PUSH 20 new G2Point[](2) | |
ADD new G2Point[](2) | |
tag 159 new G2Point[](2) | |
JUMPDEST new G2Point[](2) | |
PUSH [tag] 160 new G2Point[](2) | |
PUSH [tag] 115 new G2Point[](2) | |
JUMP [in] new G2Point[](2) | |
tag 160 new G2Point[](2) | |
JUMPDEST new G2Point[](2) | |
DUP2 new G2Point[](2) | |
MSTORE new G2Point[](2) | |
PUSH 20 new G2Point[](2) | |
ADD new G2Point[](2) | |
SWAP1 new G2Point[](2) | |
PUSH 1 new G2Point[](2) | |
SWAP1 new G2Point[](2) | |
SUB new G2Point[](2) | |
SWAP1 new G2Point[](2) | |
DUP2 new G2Point[](2) | |
PUSH [tag] 159 new G2Point[](2) | |
JUMPI new G2Point[](2) | |
SWAP1 new G2Point[](2) | |
POP new G2Point[](2) | |
tag 158 new G2Point[](2) | |
JUMPDEST new G2Point[](2) | |
POP new G2Point[](2) | |
SWAP1 G2Point[] memory p2 = new G2Po... | |
POP G2Point[] memory p2 = new G2Po... | |
DUP7 a1 | |
DUP3 p1 | |
PUSH 0 0 | |
DUP2 p1[0] | |
MLOAD p1[0] | |
DUP2 p1[0] | |
LT p1[0] | |
PUSH [tag] 161 p1[0] | |
JUMPI p1[0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1[0] | |
PUSH 0 p1[0] | |
MSTORE p1[0] | |
PUSH 32 p1[0] | |
PUSH 4 p1[0] | |
MSTORE p1[0] | |
PUSH 24 p1[0] | |
PUSH 0 p1[0] | |
REVERT p1[0] | |
tag 161 p1[0] | |
JUMPDEST p1[0] | |
PUSH 20 p1[0] | |
MUL p1[0] | |
PUSH 20 p1[0] | |
ADD p1[0] | |
ADD p1[0] | |
DUP2 p1[0] = a1 | |
SWAP1 p1[0] = a1 | |
MSTORE p1[0] = a1 | |
POP p1[0] = a1 | |
DUP5 b1 | |
DUP3 p1 | |
PUSH 1 1 | |
DUP2 p1[1] | |
MLOAD p1[1] | |
DUP2 p1[1] | |
LT p1[1] | |
PUSH [tag] 162 p1[1] | |
JUMPI p1[1] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1[1] | |
PUSH 0 p1[1] | |
MSTORE p1[1] | |
PUSH 32 p1[1] | |
PUSH 4 p1[1] | |
MSTORE p1[1] | |
PUSH 24 p1[1] | |
PUSH 0 p1[1] | |
REVERT p1[1] | |
tag 162 p1[1] | |
JUMPDEST p1[1] | |
PUSH 20 p1[1] | |
MUL p1[1] | |
PUSH 20 p1[1] | |
ADD p1[1] | |
ADD p1[1] | |
DUP2 p1[1] = b1 | |
SWAP1 p1[1] = b1 | |
MSTORE p1[1] = b1 | |
POP p1[1] = b1 | |
DUP6 a2 | |
DUP2 p2 | |
PUSH 0 0 | |
DUP2 p2[0] | |
MLOAD p2[0] | |
DUP2 p2[0] | |
LT p2[0] | |
PUSH [tag] 163 p2[0] | |
JUMPI p2[0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[0] | |
PUSH 0 p2[0] | |
MSTORE p2[0] | |
PUSH 32 p2[0] | |
PUSH 4 p2[0] | |
MSTORE p2[0] | |
PUSH 24 p2[0] | |
PUSH 0 p2[0] | |
REVERT p2[0] | |
tag 163 p2[0] | |
JUMPDEST p2[0] | |
PUSH 20 p2[0] | |
MUL p2[0] | |
PUSH 20 p2[0] | |
ADD p2[0] | |
ADD p2[0] | |
DUP2 p2[0] = a2 | |
SWAP1 p2[0] = a2 | |
MSTORE p2[0] = a2 | |
POP p2[0] = a2 | |
DUP4 b2 | |
DUP2 p2 | |
PUSH 1 1 | |
DUP2 p2[1] | |
MLOAD p2[1] | |
DUP2 p2[1] | |
LT p2[1] | |
PUSH [tag] 164 p2[1] | |
JUMPI p2[1] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[1] | |
PUSH 0 p2[1] | |
MSTORE p2[1] | |
PUSH 32 p2[1] | |
PUSH 4 p2[1] | |
MSTORE p2[1] | |
PUSH 24 p2[1] | |
PUSH 0 p2[1] | |
REVERT p2[1] | |
tag 164 p2[1] | |
JUMPDEST p2[1] | |
PUSH 20 p2[1] | |
MUL p2[1] | |
PUSH 20 p2[1] | |
ADD p2[1] | |
ADD p2[1] | |
DUP2 p2[1] = b2 | |
SWAP1 p2[1] = b2 | |
MSTORE p2[1] = b2 | |
POP p2[1] = b2 | |
PUSH [tag] 165 pairing(p1, p2) | |
DUP3 p1 | |
DUP3 p2 | |
PUSH [tag] 151 pairing | |
JUMP [in] pairing(p1, p2) | |
tag 165 pairing(p1, p2) | |
JUMPDEST pairing(p1, p2) | |
SWAP3 return pairing(p1, p2) | |
POP return pairing(p1, p2) | |
POP return pairing(p1, p2) | |
POP return pairing(p1, p2) | |
SWAP5 function pairingProd2(G1Point ... | |
SWAP4 function pairingProd2(G1Point ... | |
POP function pairingProd2(G1Point ... | |
POP function pairingProd2(G1Point ... | |
POP function pairingProd2(G1Point ... | |
POP function pairingProd2(G1Point ... | |
JUMP [out] function pairingProd2(G1Point ... | |
tag 113 function sub(uint a, uint b) i... | |
JUMPDEST function sub(uint a, uint b) i... | |
PUSH 0 uint c | |
DUP2 b | |
DUP4 a | |
SUB a - b | |
SWAP1 c = a - b | |
POP c = a - b | |
SWAP3 function sub(uint a, uint b) i... | |
SWAP2 function sub(uint a, uint b) i... | |
POP function sub(uint a, uint b) i... | |
POP function sub(uint a, uint b) i... | |
JUMP [out] function sub(uint a, uint b) i... | |
tag 151 function pairing(G1Point[] mem... | |
JUMPDEST function pairing(G1Point[] mem... | |
PUSH 0 bool | |
DUP2 p2 | |
MLOAD p2.length | |
DUP4 p1 | |
MLOAD p1.length | |
EQ p1.length == p2.length | |
PUSH [tag] 168 require(p1.length == p2.length... | |
JUMPI require(p1.length == p2.length... | |
PUSH 0 require(p1.length == p2.length... | |
DUP1 require(p1.length == p2.length... | |
REVERT require(p1.length == p2.length... | |
tag 168 require(p1.length == p2.length... | |
JUMPDEST require(p1.length == p2.length... | |
PUSH 0 uint elements | |
DUP4 p1 | |
MLOAD p1.length | |
SWAP1 uint elements = p1.length | |
POP uint elements = p1.length | |
PUSH 0 uint inputSize | |
PUSH [tag] 169 elements.mul(6) | |
PUSH 6 6 | |
DUP4 elements | |
PUSH [tag] 170 elements.mul | |
SWAP1 elements.mul | |
SWAP2 elements.mul(6) | |
SWAP1 elements.mul(6) | |
PUSH FFFFFFFF elements.mul(6) | |
AND elements.mul(6) | |
JUMP [in] elements.mul(6) | |
tag 169 elements.mul(6) | |
JUMPDEST elements.mul(6) | |
SWAP1 uint inputSize = elements.mul(... | |
POP uint inputSize = elements.mul(... | |
PUSH 0 uint[] memory input | |
DUP2 inputSize | |
PUSH FFFFFFFFFFFFFFFF new uint[](inputSize) | |
DUP2 new uint[](inputSize) | |
GT new uint[](inputSize) | |
ISZERO new uint[](inputSize) | |
PUSH [tag] 171 new uint[](inputSize) | |
JUMPI new uint[](inputSize) | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 new uint[](inputSize) | |
PUSH 0 new uint[](inputSize) | |
MSTORE new uint[](inputSize) | |
PUSH 41 new uint[](inputSize) | |
PUSH 4 new uint[](inputSize) | |
MSTORE new uint[](inputSize) | |
PUSH 24 new uint[](inputSize) | |
PUSH 0 new uint[](inputSize) | |
REVERT new uint[](inputSize) | |
tag 171 new uint[](inputSize) | |
JUMPDEST new uint[](inputSize) | |
PUSH 40 new uint[](inputSize) | |
MLOAD new uint[](inputSize) | |
SWAP1 new uint[](inputSize) | |
DUP1 new uint[](inputSize) | |
DUP3 new uint[](inputSize) | |
MSTORE new uint[](inputSize) | |
DUP1 new uint[](inputSize) | |
PUSH 20 new uint[](inputSize) | |
MUL new uint[](inputSize) | |
PUSH 20 new uint[](inputSize) | |
ADD new uint[](inputSize) | |
DUP3 new uint[](inputSize) | |
ADD new uint[](inputSize) | |
PUSH 40 new uint[](inputSize) | |
MSTORE new uint[](inputSize) | |
DUP1 new uint[](inputSize) | |
ISZERO new uint[](inputSize) | |
PUSH [tag] 172 new uint[](inputSize) | |
JUMPI new uint[](inputSize) | |
DUP2 new uint[](inputSize) | |
PUSH 20 new uint[](inputSize) | |
ADD new uint[](inputSize) | |
PUSH 20 new uint[](inputSize) | |
DUP3 new uint[](inputSize) | |
MUL new uint[](inputSize) | |
DUP1 new uint[](inputSize) | |
CALLDATASIZE new uint[](inputSize) | |
DUP4 new uint[](inputSize) | |
CALLDATACOPY new uint[](inputSize) | |
DUP1 new uint[](inputSize) | |
DUP3 new uint[](inputSize) | |
ADD new uint[](inputSize) | |
SWAP2 new uint[](inputSize) | |
POP new uint[](inputSize) | |
POP new uint[](inputSize) | |
SWAP1 new uint[](inputSize) | |
POP new uint[](inputSize) | |
tag 172 new uint[](inputSize) | |
JUMPDEST new uint[](inputSize) | |
POP new uint[](inputSize) | |
SWAP1 uint[] memory input = new uint... | |
POP uint[] memory input = new uint... | |
PUSH 0 uint i | |
tag 173 for (uint i = 0; i < elements;... | |
JUMPDEST for (uint i = 0; i < elements;... | |
DUP4 elements | |
DUP2 i | |
LT i < elements | |
ISZERO for (uint i = 0; i < elements;... | |
PUSH [tag] 174 for (uint i = 0; i < elements;... | |
JUMPI for (uint i = 0; i < elements;... | |
DUP7 p1 | |
DUP2 i | |
DUP2 p1[i] | |
MLOAD p1[i] | |
DUP2 p1[i] | |
LT p1[i] | |
PUSH [tag] 176 p1[i] | |
JUMPI p1[i] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1[i] | |
PUSH 0 p1[i] | |
MSTORE p1[i] | |
PUSH 32 p1[i] | |
PUSH 4 p1[i] | |
MSTORE p1[i] | |
PUSH 24 p1[i] | |
PUSH 0 p1[i] | |
REVERT p1[i] | |
tag 176 p1[i] | |
JUMPDEST p1[i] | |
PUSH 20 p1[i] | |
MUL p1[i] | |
PUSH 20 p1[i] | |
ADD p1[i] | |
ADD p1[i] | |
MLOAD p1[i] | |
PUSH 0 p1[i].X | |
ADD p1[i].X | |
MLOAD p1[i].X | |
DUP3 input | |
PUSH [tag] 177 i.mul(6).add(0) | |
PUSH 0 0 | |
PUSH [tag] 178 i.mul(6) | |
PUSH 6 6 | |
DUP7 i | |
PUSH [tag] 170 i.mul | |
SWAP1 i.mul | |
SWAP2 i.mul(6) | |
SWAP1 i.mul(6) | |
PUSH FFFFFFFF i.mul(6) | |
AND i.mul(6) | |
JUMP [in] i.mul(6) | |
tag 178 i.mul(6) | |
JUMPDEST i.mul(6) | |
PUSH [tag] 39 i.mul(6).add | |
SWAP1 i.mul(6).add | |
SWAP2 i.mul(6).add(0) | |
SWAP1 i.mul(6).add(0) | |
PUSH FFFFFFFF i.mul(6).add(0) | |
AND i.mul(6).add(0) | |
JUMP [in] i.mul(6).add(0) | |
tag 177 i.mul(6).add(0) | |
JUMPDEST i.mul(6).add(0) | |
DUP2 input[i.mul(6).add(0)] | |
MLOAD input[i.mul(6).add(0)] | |
DUP2 input[i.mul(6).add(0)] | |
LT input[i.mul(6).add(0)] | |
PUSH [tag] 179 input[i.mul(6).add(0)] | |
JUMPI input[i.mul(6).add(0)] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[i.mul(6).add(0)] | |
PUSH 0 input[i.mul(6).add(0)] | |
MSTORE input[i.mul(6).add(0)] | |
PUSH 32 input[i.mul(6).add(0)] | |
PUSH 4 input[i.mul(6).add(0)] | |
MSTORE input[i.mul(6).add(0)] | |
PUSH 24 input[i.mul(6).add(0)] | |
PUSH 0 input[i.mul(6).add(0)] | |
REVERT input[i.mul(6).add(0)] | |
tag 179 input[i.mul(6).add(0)] | |
JUMPDEST input[i.mul(6).add(0)] | |
PUSH 20 input[i.mul(6).add(0)] | |
MUL input[i.mul(6).add(0)] | |
PUSH 20 input[i.mul(6).add(0)] | |
ADD input[i.mul(6).add(0)] | |
ADD input[i.mul(6).add(0)] | |
DUP2 input[i.mul(6).add(0)] = p1[i]... | |
DUP2 input[i.mul(6).add(0)] = p1[i]... | |
MSTORE input[i.mul(6).add(0)] = p1[i]... | |
POP input[i.mul(6).add(0)] = p1[i]... | |
POP input[i.mul(6).add(0)] = p1[i]... | |
DUP7 p1 | |
DUP2 i | |
DUP2 p1[i] | |
MLOAD p1[i] | |
DUP2 p1[i] | |
LT p1[i] | |
PUSH [tag] 180 p1[i] | |
JUMPI p1[i] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1[i] | |
PUSH 0 p1[i] | |
MSTORE p1[i] | |
PUSH 32 p1[i] | |
PUSH 4 p1[i] | |
MSTORE p1[i] | |
PUSH 24 p1[i] | |
PUSH 0 p1[i] | |
REVERT p1[i] | |
tag 180 p1[i] | |
JUMPDEST p1[i] | |
PUSH 20 p1[i] | |
MUL p1[i] | |
PUSH 20 p1[i] | |
ADD p1[i] | |
ADD p1[i] | |
MLOAD p1[i] | |
PUSH 20 p1[i].Y | |
ADD p1[i].Y | |
MLOAD p1[i].Y | |
DUP3 input | |
PUSH [tag] 181 i.mul(6).add(1) | |
PUSH 1 1 | |
PUSH [tag] 182 i.mul(6) | |
PUSH 6 6 | |
DUP7 i | |
PUSH [tag] 170 i.mul | |
SWAP1 i.mul | |
SWAP2 i.mul(6) | |
SWAP1 i.mul(6) | |
PUSH FFFFFFFF i.mul(6) | |
AND i.mul(6) | |
JUMP [in] i.mul(6) | |
tag 182 i.mul(6) | |
JUMPDEST i.mul(6) | |
PUSH [tag] 39 i.mul(6).add | |
SWAP1 i.mul(6).add | |
SWAP2 i.mul(6).add(1) | |
SWAP1 i.mul(6).add(1) | |
PUSH FFFFFFFF i.mul(6).add(1) | |
AND i.mul(6).add(1) | |
JUMP [in] i.mul(6).add(1) | |
tag 181 i.mul(6).add(1) | |
JUMPDEST i.mul(6).add(1) | |
DUP2 input[i.mul(6).add(1)] | |
MLOAD input[i.mul(6).add(1)] | |
DUP2 input[i.mul(6).add(1)] | |
LT input[i.mul(6).add(1)] | |
PUSH [tag] 183 input[i.mul(6).add(1)] | |
JUMPI input[i.mul(6).add(1)] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[i.mul(6).add(1)] | |
PUSH 0 input[i.mul(6).add(1)] | |
MSTORE input[i.mul(6).add(1)] | |
PUSH 32 input[i.mul(6).add(1)] | |
PUSH 4 input[i.mul(6).add(1)] | |
MSTORE input[i.mul(6).add(1)] | |
PUSH 24 input[i.mul(6).add(1)] | |
PUSH 0 input[i.mul(6).add(1)] | |
REVERT input[i.mul(6).add(1)] | |
tag 183 input[i.mul(6).add(1)] | |
JUMPDEST input[i.mul(6).add(1)] | |
PUSH 20 input[i.mul(6).add(1)] | |
MUL input[i.mul(6).add(1)] | |
PUSH 20 input[i.mul(6).add(1)] | |
ADD input[i.mul(6).add(1)] | |
ADD input[i.mul(6).add(1)] | |
DUP2 input[i.mul(6).add(1)] = p1[i]... | |
DUP2 input[i.mul(6).add(1)] = p1[i]... | |
MSTORE input[i.mul(6).add(1)] = p1[i]... | |
POP input[i.mul(6).add(1)] = p1[i]... | |
POP input[i.mul(6).add(1)] = p1[i]... | |
DUP6 p2 | |
DUP2 i | |
DUP2 p2[i] | |
MLOAD p2[i] | |
DUP2 p2[i] | |
LT p2[i] | |
PUSH [tag] 184 p2[i] | |
JUMPI p2[i] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[i] | |
PUSH 0 p2[i] | |
MSTORE p2[i] | |
PUSH 32 p2[i] | |
PUSH 4 p2[i] | |
MSTORE p2[i] | |
PUSH 24 p2[i] | |
PUSH 0 p2[i] | |
REVERT p2[i] | |
tag 184 p2[i] | |
JUMPDEST p2[i] | |
PUSH 20 p2[i] | |
MUL p2[i] | |
PUSH 20 p2[i] | |
ADD p2[i] | |
ADD p2[i] | |
MLOAD p2[i] | |
PUSH 0 p2[i].X | |
ADD p2[i].X | |
MLOAD p2[i].X | |
PUSH 1 1 | |
PUSH 2 p2[i].X[1] | |
DUP2 p2[i].X[1] | |
LT p2[i].X[1] | |
PUSH [tag] 185 p2[i].X[1] | |
JUMPI p2[i].X[1] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[i].X[1] | |
PUSH 0 p2[i].X[1] | |
MSTORE p2[i].X[1] | |
PUSH 32 p2[i].X[1] | |
PUSH 4 p2[i].X[1] | |
MSTORE p2[i].X[1] | |
PUSH 24 p2[i].X[1] | |
PUSH 0 p2[i].X[1] | |
REVERT p2[i].X[1] | |
tag 185 p2[i].X[1] | |
JUMPDEST p2[i].X[1] | |
PUSH 20 p2[i].X[1] | |
MUL p2[i].X[1] | |
ADD p2[i].X[1] | |
MLOAD p2[i].X[1] | |
DUP3 input | |
PUSH [tag] 186 i.mul(6).add(2) | |
PUSH 2 2 | |
PUSH [tag] 187 i.mul(6) | |
PUSH 6 6 | |
DUP7 i | |
PUSH [tag] 170 i.mul | |
SWAP1 i.mul | |
SWAP2 i.mul(6) | |
SWAP1 i.mul(6) | |
PUSH FFFFFFFF i.mul(6) | |
AND i.mul(6) | |
JUMP [in] i.mul(6) | |
tag 187 i.mul(6) | |
JUMPDEST i.mul(6) | |
PUSH [tag] 39 i.mul(6).add | |
SWAP1 i.mul(6).add | |
SWAP2 i.mul(6).add(2) | |
SWAP1 i.mul(6).add(2) | |
PUSH FFFFFFFF i.mul(6).add(2) | |
AND i.mul(6).add(2) | |
JUMP [in] i.mul(6).add(2) | |
tag 186 i.mul(6).add(2) | |
JUMPDEST i.mul(6).add(2) | |
DUP2 input[i.mul(6).add(2)] | |
MLOAD input[i.mul(6).add(2)] | |
DUP2 input[i.mul(6).add(2)] | |
LT input[i.mul(6).add(2)] | |
PUSH [tag] 188 input[i.mul(6).add(2)] | |
JUMPI input[i.mul(6).add(2)] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[i.mul(6).add(2)] | |
PUSH 0 input[i.mul(6).add(2)] | |
MSTORE input[i.mul(6).add(2)] | |
PUSH 32 input[i.mul(6).add(2)] | |
PUSH 4 input[i.mul(6).add(2)] | |
MSTORE input[i.mul(6).add(2)] | |
PUSH 24 input[i.mul(6).add(2)] | |
PUSH 0 input[i.mul(6).add(2)] | |
REVERT input[i.mul(6).add(2)] | |
tag 188 input[i.mul(6).add(2)] | |
JUMPDEST input[i.mul(6).add(2)] | |
PUSH 20 input[i.mul(6).add(2)] | |
MUL input[i.mul(6).add(2)] | |
PUSH 20 input[i.mul(6).add(2)] | |
ADD input[i.mul(6).add(2)] | |
ADD input[i.mul(6).add(2)] | |
DUP2 input[i.mul(6).add(2)] = p2[i]... | |
DUP2 input[i.mul(6).add(2)] = p2[i]... | |
MSTORE input[i.mul(6).add(2)] = p2[i]... | |
POP input[i.mul(6).add(2)] = p2[i]... | |
POP input[i.mul(6).add(2)] = p2[i]... | |
DUP6 p2 | |
DUP2 i | |
DUP2 p2[i] | |
MLOAD p2[i] | |
DUP2 p2[i] | |
LT p2[i] | |
PUSH [tag] 189 p2[i] | |
JUMPI p2[i] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[i] | |
PUSH 0 p2[i] | |
MSTORE p2[i] | |
PUSH 32 p2[i] | |
PUSH 4 p2[i] | |
MSTORE p2[i] | |
PUSH 24 p2[i] | |
PUSH 0 p2[i] | |
REVERT p2[i] | |
tag 189 p2[i] | |
JUMPDEST p2[i] | |
PUSH 20 p2[i] | |
MUL p2[i] | |
PUSH 20 p2[i] | |
ADD p2[i] | |
ADD p2[i] | |
MLOAD p2[i] | |
PUSH 0 p2[i].X | |
ADD p2[i].X | |
MLOAD p2[i].X | |
PUSH 0 0 | |
PUSH 2 p2[i].X[0] | |
DUP2 p2[i].X[0] | |
LT p2[i].X[0] | |
PUSH [tag] 190 p2[i].X[0] | |
JUMPI p2[i].X[0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[i].X[0] | |
PUSH 0 p2[i].X[0] | |
MSTORE p2[i].X[0] | |
PUSH 32 p2[i].X[0] | |
PUSH 4 p2[i].X[0] | |
MSTORE p2[i].X[0] | |
PUSH 24 p2[i].X[0] | |
PUSH 0 p2[i].X[0] | |
REVERT p2[i].X[0] | |
tag 190 p2[i].X[0] | |
JUMPDEST p2[i].X[0] | |
PUSH 20 p2[i].X[0] | |
MUL p2[i].X[0] | |
ADD p2[i].X[0] | |
MLOAD p2[i].X[0] | |
DUP3 input | |
PUSH [tag] 191 i.mul(6).add(3) | |
PUSH 3 3 | |
PUSH [tag] 192 i.mul(6) | |
PUSH 6 6 | |
DUP7 i | |
PUSH [tag] 170 i.mul | |
SWAP1 i.mul | |
SWAP2 i.mul(6) | |
SWAP1 i.mul(6) | |
PUSH FFFFFFFF i.mul(6) | |
AND i.mul(6) | |
JUMP [in] i.mul(6) | |
tag 192 i.mul(6) | |
JUMPDEST i.mul(6) | |
PUSH [tag] 39 i.mul(6).add | |
SWAP1 i.mul(6).add | |
SWAP2 i.mul(6).add(3) | |
SWAP1 i.mul(6).add(3) | |
PUSH FFFFFFFF i.mul(6).add(3) | |
AND i.mul(6).add(3) | |
JUMP [in] i.mul(6).add(3) | |
tag 191 i.mul(6).add(3) | |
JUMPDEST i.mul(6).add(3) | |
DUP2 input[i.mul(6).add(3)] | |
MLOAD input[i.mul(6).add(3)] | |
DUP2 input[i.mul(6).add(3)] | |
LT input[i.mul(6).add(3)] | |
PUSH [tag] 193 input[i.mul(6).add(3)] | |
JUMPI input[i.mul(6).add(3)] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[i.mul(6).add(3)] | |
PUSH 0 input[i.mul(6).add(3)] | |
MSTORE input[i.mul(6).add(3)] | |
PUSH 32 input[i.mul(6).add(3)] | |
PUSH 4 input[i.mul(6).add(3)] | |
MSTORE input[i.mul(6).add(3)] | |
PUSH 24 input[i.mul(6).add(3)] | |
PUSH 0 input[i.mul(6).add(3)] | |
REVERT input[i.mul(6).add(3)] | |
tag 193 input[i.mul(6).add(3)] | |
JUMPDEST input[i.mul(6).add(3)] | |
PUSH 20 input[i.mul(6).add(3)] | |
MUL input[i.mul(6).add(3)] | |
PUSH 20 input[i.mul(6).add(3)] | |
ADD input[i.mul(6).add(3)] | |
ADD input[i.mul(6).add(3)] | |
DUP2 input[i.mul(6).add(3)] = p2[i]... | |
DUP2 input[i.mul(6).add(3)] = p2[i]... | |
MSTORE input[i.mul(6).add(3)] = p2[i]... | |
POP input[i.mul(6).add(3)] = p2[i]... | |
POP input[i.mul(6).add(3)] = p2[i]... | |
DUP6 p2 | |
DUP2 i | |
DUP2 p2[i] | |
MLOAD p2[i] | |
DUP2 p2[i] | |
LT p2[i] | |
PUSH [tag] 194 p2[i] | |
JUMPI p2[i] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[i] | |
PUSH 0 p2[i] | |
MSTORE p2[i] | |
PUSH 32 p2[i] | |
PUSH 4 p2[i] | |
MSTORE p2[i] | |
PUSH 24 p2[i] | |
PUSH 0 p2[i] | |
REVERT p2[i] | |
tag 194 p2[i] | |
JUMPDEST p2[i] | |
PUSH 20 p2[i] | |
MUL p2[i] | |
PUSH 20 p2[i] | |
ADD p2[i] | |
ADD p2[i] | |
MLOAD p2[i] | |
PUSH 20 p2[i].Y | |
ADD p2[i].Y | |
MLOAD p2[i].Y | |
PUSH 1 1 | |
PUSH 2 p2[i].Y[1] | |
DUP2 p2[i].Y[1] | |
LT p2[i].Y[1] | |
PUSH [tag] 195 p2[i].Y[1] | |
JUMPI p2[i].Y[1] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[i].Y[1] | |
PUSH 0 p2[i].Y[1] | |
MSTORE p2[i].Y[1] | |
PUSH 32 p2[i].Y[1] | |
PUSH 4 p2[i].Y[1] | |
MSTORE p2[i].Y[1] | |
PUSH 24 p2[i].Y[1] | |
PUSH 0 p2[i].Y[1] | |
REVERT p2[i].Y[1] | |
tag 195 p2[i].Y[1] | |
JUMPDEST p2[i].Y[1] | |
PUSH 20 p2[i].Y[1] | |
MUL p2[i].Y[1] | |
ADD p2[i].Y[1] | |
MLOAD p2[i].Y[1] | |
DUP3 input | |
PUSH [tag] 196 i.mul(6).add(4) | |
PUSH 4 4 | |
PUSH [tag] 197 i.mul(6) | |
PUSH 6 6 | |
DUP7 i | |
PUSH [tag] 170 i.mul | |
SWAP1 i.mul | |
SWAP2 i.mul(6) | |
SWAP1 i.mul(6) | |
PUSH FFFFFFFF i.mul(6) | |
AND i.mul(6) | |
JUMP [in] i.mul(6) | |
tag 197 i.mul(6) | |
JUMPDEST i.mul(6) | |
PUSH [tag] 39 i.mul(6).add | |
SWAP1 i.mul(6).add | |
SWAP2 i.mul(6).add(4) | |
SWAP1 i.mul(6).add(4) | |
PUSH FFFFFFFF i.mul(6).add(4) | |
AND i.mul(6).add(4) | |
JUMP [in] i.mul(6).add(4) | |
tag 196 i.mul(6).add(4) | |
JUMPDEST i.mul(6).add(4) | |
DUP2 input[i.mul(6).add(4)] | |
MLOAD input[i.mul(6).add(4)] | |
DUP2 input[i.mul(6).add(4)] | |
LT input[i.mul(6).add(4)] | |
PUSH [tag] 198 input[i.mul(6).add(4)] | |
JUMPI input[i.mul(6).add(4)] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[i.mul(6).add(4)] | |
PUSH 0 input[i.mul(6).add(4)] | |
MSTORE input[i.mul(6).add(4)] | |
PUSH 32 input[i.mul(6).add(4)] | |
PUSH 4 input[i.mul(6).add(4)] | |
MSTORE input[i.mul(6).add(4)] | |
PUSH 24 input[i.mul(6).add(4)] | |
PUSH 0 input[i.mul(6).add(4)] | |
REVERT input[i.mul(6).add(4)] | |
tag 198 input[i.mul(6).add(4)] | |
JUMPDEST input[i.mul(6).add(4)] | |
PUSH 20 input[i.mul(6).add(4)] | |
MUL input[i.mul(6).add(4)] | |
PUSH 20 input[i.mul(6).add(4)] | |
ADD input[i.mul(6).add(4)] | |
ADD input[i.mul(6).add(4)] | |
DUP2 input[i.mul(6).add(4)] = p2[i]... | |
DUP2 input[i.mul(6).add(4)] = p2[i]... | |
MSTORE input[i.mul(6).add(4)] = p2[i]... | |
POP input[i.mul(6).add(4)] = p2[i]... | |
POP input[i.mul(6).add(4)] = p2[i]... | |
DUP6 p2 | |
DUP2 i | |
DUP2 p2[i] | |
MLOAD p2[i] | |
DUP2 p2[i] | |
LT p2[i] | |
PUSH [tag] 199 p2[i] | |
JUMPI p2[i] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[i] | |
PUSH 0 p2[i] | |
MSTORE p2[i] | |
PUSH 32 p2[i] | |
PUSH 4 p2[i] | |
MSTORE p2[i] | |
PUSH 24 p2[i] | |
PUSH 0 p2[i] | |
REVERT p2[i] | |
tag 199 p2[i] | |
JUMPDEST p2[i] | |
PUSH 20 p2[i] | |
MUL p2[i] | |
PUSH 20 p2[i] | |
ADD p2[i] | |
ADD p2[i] | |
MLOAD p2[i] | |
PUSH 20 p2[i].Y | |
ADD p2[i].Y | |
MLOAD p2[i].Y | |
PUSH 0 0 | |
PUSH 2 p2[i].Y[0] | |
DUP2 p2[i].Y[0] | |
LT p2[i].Y[0] | |
PUSH [tag] 200 p2[i].Y[0] | |
JUMPI p2[i].Y[0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[i].Y[0] | |
PUSH 0 p2[i].Y[0] | |
MSTORE p2[i].Y[0] | |
PUSH 32 p2[i].Y[0] | |
PUSH 4 p2[i].Y[0] | |
MSTORE p2[i].Y[0] | |
PUSH 24 p2[i].Y[0] | |
PUSH 0 p2[i].Y[0] | |
REVERT p2[i].Y[0] | |
tag 200 p2[i].Y[0] | |
JUMPDEST p2[i].Y[0] | |
PUSH 20 p2[i].Y[0] | |
MUL p2[i].Y[0] | |
ADD p2[i].Y[0] | |
MLOAD p2[i].Y[0] | |
DUP3 input | |
PUSH [tag] 201 i.mul(6).add(5) | |
PUSH 5 5 | |
PUSH [tag] 202 i.mul(6) | |
PUSH 6 6 | |
DUP7 i | |
PUSH [tag] 170 i.mul | |
SWAP1 i.mul | |
SWAP2 i.mul(6) | |
SWAP1 i.mul(6) | |
PUSH FFFFFFFF i.mul(6) | |
AND i.mul(6) | |
JUMP [in] i.mul(6) | |
tag 202 i.mul(6) | |
JUMPDEST i.mul(6) | |
PUSH [tag] 39 i.mul(6).add | |
SWAP1 i.mul(6).add | |
SWAP2 i.mul(6).add(5) | |
SWAP1 i.mul(6).add(5) | |
PUSH FFFFFFFF i.mul(6).add(5) | |
AND i.mul(6).add(5) | |
JUMP [in] i.mul(6).add(5) | |
tag 201 i.mul(6).add(5) | |
JUMPDEST i.mul(6).add(5) | |
DUP2 input[i.mul(6).add(5)] | |
MLOAD input[i.mul(6).add(5)] | |
DUP2 input[i.mul(6).add(5)] | |
LT input[i.mul(6).add(5)] | |
PUSH [tag] 203 input[i.mul(6).add(5)] | |
JUMPI input[i.mul(6).add(5)] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[i.mul(6).add(5)] | |
PUSH 0 input[i.mul(6).add(5)] | |
MSTORE input[i.mul(6).add(5)] | |
PUSH 32 input[i.mul(6).add(5)] | |
PUSH 4 input[i.mul(6).add(5)] | |
MSTORE input[i.mul(6).add(5)] | |
PUSH 24 input[i.mul(6).add(5)] | |
PUSH 0 input[i.mul(6).add(5)] | |
REVERT input[i.mul(6).add(5)] | |
tag 203 input[i.mul(6).add(5)] | |
JUMPDEST input[i.mul(6).add(5)] | |
PUSH 20 input[i.mul(6).add(5)] | |
MUL input[i.mul(6).add(5)] | |
PUSH 20 input[i.mul(6).add(5)] | |
ADD input[i.mul(6).add(5)] | |
ADD input[i.mul(6).add(5)] | |
DUP2 input[i.mul(6).add(5)] = p2[i]... | |
DUP2 input[i.mul(6).add(5)] = p2[i]... | |
MSTORE input[i.mul(6).add(5)] = p2[i]... | |
POP input[i.mul(6).add(5)] = p2[i]... | |
POP input[i.mul(6).add(5)] = p2[i]... | |
PUSH [tag] 204 i.inc() | |
DUP2 i | |
PUSH [tag] 32 i.inc | |
JUMP [in] i.inc() | |
tag 204 i.inc() | |
JUMPDEST i.inc() | |
SWAP1 i = i.inc() | |
POP i = i.inc() | |
PUSH [tag] 173 for (uint i = 0; i < elements;... | |
JUMP for (uint i = 0; i < elements;... | |
tag 174 for (uint i = 0; i < elements;... | |
JUMPDEST for (uint i = 0; i < elements;... | |
POP for (uint i = 0; i < elements;... | |
PUSH [tag] 205 uint[1] memory out | |
PUSH [tag] 206 uint[1] memory out | |
JUMP [in] uint[1] memory out | |
tag 205 uint[1] memory out | |
JUMPDEST uint[1] memory out | |
PUSH 0 bool success | |
PUSH 20 0x20 | |
DUP3 out | |
PUSH 20 0x20 | |
DUP7 inputSize | |
MUL mul(inputSize, 0x20) | |
PUSH 20 0x20 | |
DUP7 input | |
ADD add(input, 0x20) | |
PUSH 8 8 | |
PUSH 7D0 2000 | |
GAS gas() | |
SUB sub(gas(), 2000) | |
STATICCALL staticcall(sub(gas(), 2000), 8... | |
SWAP1 success := staticcall(sub(gas(... | |
POP success := staticcall(sub(gas(... | |
DUP1 success | |
PUSH 0 0 | |
DUP2 case 0 { invalid() } | |
EQ case 0 { invalid() } | |
PUSH [tag] 208 case 0 { invalid() } | |
JUMPI case 0 { invalid() } | |
PUSH [tag] 207 switch success case 0 { invali... | |
JUMP switch success case 0 { invali... | |
tag 208 case 0 { invalid() } | |
JUMPDEST case 0 { invalid() } | |
INVALID invalid() | |
tag 207 switch success case 0 { invali... | |
JUMPDEST switch success case 0 { invali... | |
POP switch success case 0 { invali... | |
DUP1 success | |
PUSH [tag] 209 require(success) | |
JUMPI require(success) | |
PUSH 0 require(success) | |
DUP1 require(success) | |
REVERT require(success) | |
tag 209 require(success) | |
JUMPDEST require(success) | |
PUSH 0 0 | |
DUP3 out | |
PUSH 0 0 | |
PUSH 1 out[0] | |
DUP2 out[0] | |
LT out[0] | |
PUSH [tag] 210 out[0] | |
JUMPI out[0] | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 out[0] | |
PUSH 0 out[0] | |
MSTORE out[0] | |
PUSH 32 out[0] | |
PUSH 4 out[0] | |
MSTORE out[0] | |
PUSH 24 out[0] | |
PUSH 0 out[0] | |
REVERT out[0] | |
tag 210 out[0] | |
JUMPDEST out[0] | |
PUSH 20 out[0] | |
MUL out[0] | |
ADD out[0] | |
MLOAD out[0] | |
EQ out[0] != 0 | |
ISZERO out[0] != 0 | |
SWAP6 return out[0] != 0 | |
POP return out[0] != 0 | |
POP return out[0] != 0 | |
POP return out[0] != 0 | |
POP return out[0] != 0 | |
POP return out[0] != 0 | |
POP return out[0] != 0 | |
SWAP3 function pairing(G1Point[] mem... | |
SWAP2 function pairing(G1Point[] mem... | |
POP function pairing(G1Point[] mem... | |
POP function pairing(G1Point[] mem... | |
JUMP [out] function pairing(G1Point[] mem... | |
tag 170 function mul(uint a, uint b) i... | |
JUMPDEST function mul(uint a, uint b) i... | |
PUSH 0 uint c | |
DUP2 b | |
DUP4 a | |
MUL a * b | |
SWAP1 c = a * b | |
POP c = a * b | |
SWAP3 function mul(uint a, uint b) i... | |
SWAP2 function mul(uint a, uint b) i... | |
POP function mul(uint a, uint b) i... | |
POP function mul(uint a, uint b) i... | |
JUMP [out] function mul(uint a, uint b) i... | |
tag 11 | |
JUMPDEST | |
PUSH 40 | |
MLOAD | |
DUP1 | |
PUSH 60 | |
ADD | |
PUSH 40 | |
MSTORE | |
DUP1 | |
PUSH [tag] 212 | |
PUSH [tag] 80 | |
JUMP [in] | |
tag 212 | |
JUMPDEST | |
DUP2 | |
MSTORE | |
PUSH 20 | |
ADD | |
PUSH [tag] 213 | |
PUSH [tag] 115 | |
JUMP [in] | |
tag 213 | |
JUMPDEST | |
DUP2 | |
MSTORE | |
PUSH 20 | |
ADD | |
PUSH [tag] 214 | |
PUSH [tag] 80 | |
JUMP [in] | |
tag 214 | |
JUMPDEST | |
DUP2 | |
MSTORE | |
POP | |
SWAP1 | |
JUMP [out] | |
tag 74 | |
JUMPDEST | |
PUSH 40 | |
MLOAD | |
DUP1 | |
PUSH C0 | |
ADD | |
PUSH 40 | |
MSTORE | |
DUP1 | |
PUSH [tag] 215 | |
PUSH [tag] 115 | |
JUMP [in] | |
tag 215 | |
JUMPDEST | |
DUP2 | |
MSTORE | |
PUSH 20 | |
ADD | |
PUSH [tag] 216 | |
PUSH [tag] 80 | |
JUMP [in] | |
tag 216 | |
JUMPDEST | |
DUP2 | |
MSTORE | |
PUSH 20 | |
ADD | |
PUSH [tag] 217 | |
PUSH [tag] 115 | |
JUMP [in] | |
tag 217 | |
JUMPDEST | |
DUP2 | |
MSTORE | |
PUSH 20 | |
ADD | |
PUSH [tag] 218 | |
PUSH [tag] 80 | |
JUMP [in] | |
tag 218 | |
JUMPDEST | |
DUP2 | |
MSTORE | |
PUSH 20 | |
ADD | |
PUSH [tag] 219 | |
PUSH [tag] 115 | |
JUMP [in] | |
tag 219 | |
JUMPDEST | |
DUP2 | |
MSTORE | |
PUSH 20 | |
ADD | |
PUSH 60 | |
DUP2 | |
MSTORE | |
POP | |
SWAP1 | |
JUMP [out] | |
tag 80 | |
JUMPDEST | |
PUSH 40 | |
MLOAD | |
DUP1 | |
PUSH 40 | |
ADD | |
PUSH 40 | |
MSTORE | |
DUP1 | |
PUSH 0 | |
DUP2 | |
MSTORE | |
PUSH 20 | |
ADD | |
PUSH 0 | |
DUP2 | |
MSTORE | |
POP | |
SWAP1 | |
JUMP [out] | |
tag 88 | |
JUMPDEST | |
PUSH 40 | |
MLOAD | |
DUP1 | |
PUSH 60 | |
ADD | |
PUSH 40 | |
MSTORE | |
DUP1 | |
PUSH 3 | |
SWAP1 | |
PUSH 20 | |
DUP3 | |
MUL | |
DUP1 | |
CALLDATASIZE | |
DUP4 | |
CALLDATACOPY | |
DUP1 | |
DUP3 | |
ADD | |
SWAP2 | |
POP | |
POP | |
SWAP1 | |
POP | |
POP | |
SWAP1 | |
JUMP [out] | |
tag 98 | |
JUMPDEST | |
PUSH 40 | |
MLOAD | |
DUP1 | |
PUSH 80 | |
ADD | |
PUSH 40 | |
MSTORE | |
DUP1 | |
PUSH 4 | |
SWAP1 | |
PUSH 20 | |
DUP3 | |
MUL | |
DUP1 | |
CALLDATASIZE | |
DUP4 | |
CALLDATACOPY | |
DUP1 | |
DUP3 | |
ADD | |
SWAP2 | |
POP | |
POP | |
SWAP1 | |
POP | |
POP | |
SWAP1 | |
JUMP [out] | |
tag 115 | |
JUMPDEST | |
PUSH 40 | |
MLOAD | |
DUP1 | |
PUSH 40 | |
ADD | |
PUSH 40 | |
MSTORE | |
DUP1 | |
PUSH [tag] 220 | |
PUSH [tag] 221 | |
JUMP [in] | |
tag 220 | |
JUMPDEST | |
DUP2 | |
MSTORE | |
PUSH 20 | |
ADD | |
PUSH [tag] 222 | |
PUSH [tag] 221 | |
JUMP [in] | |
tag 222 | |
JUMPDEST | |
DUP2 | |
MSTORE | |
POP | |
SWAP1 | |
JUMP [out] | |
tag 206 | |
JUMPDEST | |
PUSH 40 | |
MLOAD | |
DUP1 | |
PUSH 20 | |
ADD | |
PUSH 40 | |
MSTORE | |
DUP1 | |
PUSH 1 | |
SWAP1 | |
PUSH 20 | |
DUP3 | |
MUL | |
DUP1 | |
CALLDATASIZE | |
DUP4 | |
CALLDATACOPY | |
DUP1 | |
DUP3 | |
ADD | |
SWAP2 | |
POP | |
POP | |
SWAP1 | |
POP | |
POP | |
SWAP1 | |
JUMP [out] | |
tag 221 | |
JUMPDEST | |
PUSH 40 | |
MLOAD | |
DUP1 | |
PUSH 40 | |
ADD | |
PUSH 40 | |
MSTORE | |
DUP1 | |
PUSH 2 | |
SWAP1 | |
PUSH 20 | |
DUP3 | |
MUL | |
DUP1 | |
CALLDATASIZE | |
DUP4 | |
CALLDATACOPY | |
DUP1 | |
DUP3 | |
ADD | |
SWAP2 | |
POP | |
POP | |
SWAP1 | |
POP | |
POP | |
SWAP1 | |
JUMP [out] | |
tag 224 -License-Identifier: LGPL-3.0-... | |
JUMPDEST -License-Identifier: LGPL-3.0-... | |
PUSH 0 -License-Identifier: LGPL-3.0-... | |
DUP2 \n//pr | |
SWAP1 3 Licensed\n\n//pr | |
POP 3 Licensed\n\n//pr | |
SWAP2 le is LGPL3 Licensed\n\n//prag... | |
SWAP1 le is LGPL3 Licensed\n\n//prag... | |
POP le is LGPL3 Licensed\n\n//prag... | |
JUMP [out] le is LGPL3 Licensed\n\n//prag... | |
tag 112 y ^0.8.0;\npragma abicoder v1;... | |
JUMPDEST y ^0.8.0;\npragma abicoder v1;... | |
PUSH 0 y ^0.8.0;\npragma abicoder v1;... | |
PUSH [tag] 227 {\n function add( | |
DUP3 d | |
PUSH [tag] 224 {\n function add( | |
JUMP [in] {\n function add( | |
tag 227 {\n function add( | |
JUMPDEST {\n function add( | |
SWAP2 eMath {\n function add( | |
POP eMath {\n function add( | |
PUSH [tag] 228 ) internal pure retu | |
DUP4 t | |
PUSH [tag] 224 ) internal pure retu | |
JUMP [in] ) internal pure retu | |
tag 228 ) internal pure retu | |
JUMPDEST ) internal pure retu | |
SWAP3 int b) internal pure retu | |
POP int b) internal pure retu | |
DUP3 | |
PUSH [tag] 229 c | |
JUMPI c | |
PUSH [tag] 230 unchecked { c = a | |
PUSH [tag] 231 unchecked { c = a | |
JUMP [in] unchecked { c = a | |
tag 230 unchecked { c = a | |
JUMPDEST unchecked { c = a | |
tag 229 c | |
JUMPDEST c | |
DUP3 i | |
DUP3 n | |
MOD functio | |
SWAP1 }\n\n functio | |
POP }\n\n functio | |
SWAP3 rary UnsafeMath {\n functio... | |
SWAP2 rary UnsafeMath {\n functio... | |
POP rary UnsafeMath {\n functio... | |
POP rary UnsafeMath {\n functio... | |
JUMP [out] rary UnsafeMath {\n functio... | |
tag 231 ) internal pure returns (uint ... | |
JUMPDEST ) internal pure returns (uint ... | |
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 n add(a, 1);\n }\n\n fun... | |
PUSH 0 t | |
MSTORE return add(a, 1);\n }\... | |
PUSH 12 heck | |
PUSH 4 u | |
MSTORE unchecke | |
PUSH 24 }\n | |
PUSH 0 \n | |
REVERT - b; }\n }\n\n | |
.data |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment