Files
protocol/contracts/tec/generated-artifacts/TestLibs.json
Leonid Logvinov 3f9fd7c060 Updated CHANGELOGS
2019-03-20 15:26:43 +01:00

149 lines
51 KiB
JSON

{
"schemaVersion": "2.0.0",
"contractName": "TestLibs",
"compilerOutput": {
"abi": [
{
"constant": true,
"inputs": [
{
"components": [
{
"name": "salt",
"type": "uint256"
},
{
"name": "signerAddress",
"type": "address"
},
{
"name": "data",
"type": "bytes"
}
],
"name": "transaction",
"type": "tuple"
}
],
"name": "publicGetTransactionHash",
"outputs": [
{
"name": "transactionHash",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"components": [
{
"name": "transactionHash",
"type": "bytes32"
},
{
"name": "transactionSignature",
"type": "bytes"
},
{
"name": "approvalExpirationTimeSeconds",
"type": "uint256"
}
],
"name": "approval",
"type": "tuple"
}
],
"name": "publicGetTECApprovalHash",
"outputs": [
{
"name": "approvalHash",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "EIP712_DOMAIN_HASH",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
],
"evm": {
"bytecode": {
"linkReferences": {},
"object": "0x60806040526200001060a062000260565b604051602081830303815290604052805190602001206060604051908101604052806027815260200162000a89602791398051602091820120604080518082018252600581527f312e302e300000000000000000000000000000000000000000000000000000009084015251620000ad93927f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c9130910162000210565b60408051601f198184030181529190528051602090910120600055620002af565b620000e3620000dd82620002ac565b620002ac565b82525050565b6000620000f8600c83620002a7565b7f737472696e67206e616d652c00000000000000000000000000000000000000008152600c0192915050565b600062000133601983620002a7565b7f6164647265737320766572696679696e67436f6e747261637400000000000000815260190192915050565b60006200016e600183620002a7565b7f2900000000000000000000000000000000000000000000000000000000000000815260010192915050565b6000620001a9600f83620002a7565b7f737472696e672076657273696f6e2c00000000000000000000000000000000008152600f0192915050565b6000620001e4600d83620002a7565b7f454950373132446f6d61696e28000000000000000000000000000000000000008152600d0192915050565b60006200021e8287620000ce565b602082019150620002308286620000ce565b602082019150620002428285620000ce565b602082019150620002548284620000ce565b50602001949350505050565b60006200026d82620001d5565b91506200027a82620000e9565b915062000287826200019a565b9150620002948262000124565b9150620002a1826200015f565b92915050565b919050565b90565b6107ca80620002bf6000396000f3fe608060405234801561001057600080fd5b506004361061005d577c010000000000000000000000000000000000000000000000000000000060003504637b837ad18114610062578063c27af17d1461008b578063e306f7791461009e575b600080fd5b6100756100703660046103a6565b6100a6565b60405161008291906106af565b60405180910390f35b610075610099366004610369565b6100b7565b6100756100c2565b60006100b1826100c8565b92915050565b60006100b1826100db565b60005481565b60006100b16100d6836100e9565b61016f565b60006100b16100d6836101af565b6000806040516020016100fb9061064c565b604051602081830303815290604052805190602001209050600083604001516040516101279190610640565b60408051918290038220865160208089015196855284015273ffffffffffffffffffffffffffffffffffffffff90941690820152606081019290925250608090209050919050565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6000806040516020016101c190610683565b604051602081830303815290604052805190602001209050600083602001516040516101ed9190610640565b604080519182900382208651968201519483526020830196909652810194909452506060830152506080902090565b60006102288235610736565b9392505050565b60006102288235610733565b6000601f8201831361024c57600080fd5b813561025f61025a826106e4565b6106bd565b9150808252602083016020830185838301111561027b57600080fd5b610286838284610754565b50505092915050565b6000606082840312156102a157600080fd5b6102ab60606106bd565b905060006102b9848461022f565b825250602082013567ffffffffffffffff8111156102d657600080fd5b6102e28482850161023b565b60208301525060406102f68482850161022f565b60408301525092915050565b60006060828403121561031457600080fd5b61031e60606106bd565b9050600061032c848461022f565b825250602061033d8484830161021c565b602083015250604082013567ffffffffffffffff81111561035d57600080fd5b6102f68482850161023b565b60006020828403121561037b57600080fd5b813567ffffffffffffffff81111561039257600080fd5b61039e8482850161028f565b949350505050565b6000602082840312156103b857600080fd5b813567ffffffffffffffff8111156103cf57600080fd5b61039e84828501610302565b6103e481610733565b82525050565b60006103f58261072a565b6103ff818561072e565b935061040f818560208601610760565b9290920192915050565b600061042660128361072e565b7f5a65726f45785472616e73616374696f6e280000000000000000000000000000815260120192915050565b600061045f601b8361072e565b7f6279746573207472616e73616374696f6e5369676e61747572652c00000000008152601b0192915050565b600061049860018361072e565b7f2900000000000000000000000000000000000000000000000000000000000000815260010192915050565b60006104d1600c8361072e565b7f544543417070726f76616c2800000000000000000000000000000000000000008152600c0192915050565b600061050a600d8361072e565b7f75696e743235362073616c742c000000000000000000000000000000000000008152600d0192915050565b6000610543600a8361072e565b7f62797465732064617461000000000000000000000000000000000000000000008152600a0192915050565b600061057c60258361072e565b7f75696e7432353620617070726f76616c45787069726174696f6e54696d65536581527f636f6e6473000000000000000000000000000000000000000000000000000000602082015260250192915050565b60006105db60168361072e565b7f61646472657373207369676e6572416464726573732c00000000000000000000815260160192915050565b600061061460188361072e565b7f62797465733332207472616e73616374696f6e486173682c0000000000000000815260180192915050565b600061022882846103ea565b600061065782610419565b9150610662826104fd565b915061066d826105ce565b915061067882610536565b91506100b18261048b565b600061068e826104c4565b915061069982610607565b91506106a482610452565b91506106788261056f565b602081016100b182846103db565b60405181810167ffffffffffffffff811182821017156106dc57600080fd5b604052919050565b600067ffffffffffffffff8211156106fb57600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b919050565b90565b600073ffffffffffffffffffffffffffffffffffffffff82166100b1565b82818337506000910152565b60005b8381101561077b578181015183820152602001610763565b8381111561078a576000848401525b5050505056fea265627a7a72305820e79099828fe54268e059e14b945d673ffe00fbab54c6062a3ae99557212dffc96c6578706572696d656e74616cf5003730782050726f746f636f6c20547261646520457865637574696f6e20436f6f7264696e61746f72",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH3 0x10 PUSH1 0xA0 PUSH3 0x260 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0xA89 PUSH1 0x27 SWAP2 CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH32 0x312E302E30000000000000000000000000000000000000000000000000000000 SWAP1 DUP5 ADD MSTORE MLOAD PUSH3 0xAD SWAP4 SWAP3 PUSH32 0x6C015BD22B4C69690933C1058878EBDFEF31F9AAAE40BBE86D8A09FE1B2972C SWAP2 ADDRESS SWAP2 ADD PUSH3 0x210 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 PUSH1 0x0 SSTORE PUSH3 0x2AF JUMP JUMPDEST PUSH3 0xE3 PUSH3 0xDD DUP3 PUSH3 0x2AC JUMP JUMPDEST PUSH3 0x2AC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xF8 PUSH1 0xC DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x737472696E67206E616D652C0000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xC ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x133 PUSH1 0x19 DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x6164647265737320766572696679696E67436F6E747261637400000000000000 DUP2 MSTORE PUSH1 0x19 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x16E PUSH1 0x1 DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1A9 PUSH1 0xF DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x737472696E672076657273696F6E2C0000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xF ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1E4 PUSH1 0xD DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x454950373132446F6D61696E2800000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xD ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x21E DUP3 DUP8 PUSH3 0xCE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH3 0x230 DUP3 DUP7 PUSH3 0xCE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH3 0x242 DUP3 DUP6 PUSH3 0xCE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH3 0x254 DUP3 DUP5 PUSH3 0xCE JUMP JUMPDEST POP PUSH1 0x20 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x26D DUP3 PUSH3 0x1D5 JUMP JUMPDEST SWAP2 POP PUSH3 0x27A DUP3 PUSH3 0xE9 JUMP JUMPDEST SWAP2 POP PUSH3 0x287 DUP3 PUSH3 0x19A JUMP JUMPDEST SWAP2 POP PUSH3 0x294 DUP3 PUSH3 0x124 JUMP JUMPDEST SWAP2 POP PUSH3 0x2A1 DUP3 PUSH3 0x15F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x7CA DUP1 PUSH3 0x2BF PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x5D JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0x7B837AD1 DUP2 EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0xC27AF17D EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0x9E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x75 PUSH2 0x70 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A6 JUMP JUMPDEST PUSH2 0xA6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x82 SWAP2 SWAP1 PUSH2 0x6AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x75 PUSH2 0x99 CALLDATASIZE PUSH1 0x4 PUSH2 0x369 JUMP JUMPDEST PUSH2 0xB7 JUMP JUMPDEST PUSH2 0x75 PUSH2 0xC2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 DUP3 PUSH2 0xC8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 DUP3 PUSH2 0xDB JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 PUSH2 0xD6 DUP4 PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x16F JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 PUSH2 0xD6 DUP4 PUSH2 0x1AF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xFB SWAP1 PUSH2 0x64C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x640 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP7 MLOAD PUSH1 0x20 DUP1 DUP10 ADD MLOAD SWAP7 DUP6 MSTORE DUP5 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1C1 SWAP1 PUSH2 0x683 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x1ED SWAP2 SWAP1 PUSH2 0x640 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP7 MLOAD SWAP7 DUP3 ADD MLOAD SWAP5 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 CALLDATALOAD PUSH2 0x736 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 CALLDATALOAD PUSH2 0x733 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x25F PUSH2 0x25A DUP3 PUSH2 0x6E4 JUMP JUMPDEST PUSH2 0x6BD JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286 DUP4 DUP3 DUP5 PUSH2 0x754 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AB PUSH1 0x60 PUSH2 0x6BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2B9 DUP5 DUP5 PUSH2 0x22F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E2 DUP5 DUP3 DUP6 ADD PUSH2 0x23B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x314 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x31E PUSH1 0x60 PUSH2 0x6BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x32C DUP5 DUP5 PUSH2 0x22F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x33D DUP5 DUP5 DUP4 ADD PUSH2 0x21C JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x23B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x37B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39E DUP5 DUP3 DUP6 ADD PUSH2 0x28F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39E DUP5 DUP3 DUP6 ADD PUSH2 0x302 JUMP JUMPDEST PUSH2 0x3E4 DUP2 PUSH2 0x733 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F5 DUP3 PUSH2 0x72A JUMP JUMPDEST PUSH2 0x3FF DUP2 DUP6 PUSH2 0x72E JUMP JUMPDEST SWAP4 POP PUSH2 0x40F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x760 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x426 PUSH1 0x12 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 DUP2 MSTORE PUSH1 0x12 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x45F PUSH1 0x1B DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 DUP2 MSTORE PUSH1 0x1B ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x498 PUSH1 0x1 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D1 PUSH1 0xC DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xC ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x50A PUSH1 0xD DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xD ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x543 PUSH1 0xA DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xA ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x57C PUSH1 0x25 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x75696E7432353620617070726F76616C45787069726174696F6E54696D655365 DUP2 MSTORE PUSH32 0x636F6E6473000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x25 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DB PUSH1 0x16 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 DUP2 MSTORE PUSH1 0x16 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x614 PUSH1 0x18 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 DUP2 MSTORE PUSH1 0x18 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 DUP5 PUSH2 0x3EA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x657 DUP3 PUSH2 0x419 JUMP JUMPDEST SWAP2 POP PUSH2 0x662 DUP3 PUSH2 0x4FD JUMP JUMPDEST SWAP2 POP PUSH2 0x66D DUP3 PUSH2 0x5CE JUMP JUMPDEST SWAP2 POP PUSH2 0x678 DUP3 PUSH2 0x536 JUMP JUMPDEST SWAP2 POP PUSH2 0xB1 DUP3 PUSH2 0x48B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x68E DUP3 PUSH2 0x4C4 JUMP JUMPDEST SWAP2 POP PUSH2 0x699 DUP3 PUSH2 0x607 JUMP JUMPDEST SWAP2 POP PUSH2 0x6A4 DUP3 PUSH2 0x452 JUMP JUMPDEST SWAP2 POP PUSH2 0x678 DUP3 PUSH2 0x56F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xB1 DUP3 DUP5 PUSH2 0x3DB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x6DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x6FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0xB1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x77B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x763 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x78A JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 0xe7 SWAP1 SWAP10 DUP3 DUP16 0xe5 TIMESTAMP PUSH9 0xE059E14B945D673FFE STOP 0xfb 0xab SLOAD 0xc6 MOD 0x2a GASPRICE 0xe9 SWAP6 JUMPI 0x21 0x2d SELFDESTRUCT 0xc9 PUSH13 0x6578706572696D656E74616CF5 STOP CALLDATACOPY ADDRESS PUSH25 0x2050726F746F636F6C20547261646520457865637574696F6E KECCAK256 NUMBER PUSH16 0x6F7264696E61746F7200000000000000 ",
"sourceMap": "731:1174:3:-;;;1083:148:0;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1083:148:0;;;1073:159;;;;;;1549:18;;;;;;;;;;;;;;;;;;1533:36;;;;;;;1599:21;;;;;;;;;;;;;;;;1454:214;;;;1583:39;;1652:4;;1454:214;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;1454:214:0;;;1444:225;;49:4:-1;1444:225:0;;;;1423:18;:246;731:1174:3;;5:159:-1;106:52;126:31;151:5;126:31;;;106:52;;;101:3;94:65;88:76;;;172:400;;350:85;432:2;427:3;350:85;;;468:66;448:87;;563:2;554:12;;336:236;-1:-1;;336:236;581:400;;759:85;841:2;836:3;759:85;;;877:66;857:87;;972:2;963:12;;745:236;-1:-1;;745:236;990:398;;1168:84;1250:1;1245:3;1168:84;;;1285:66;1265:87;;1380:1;1371:11;;1154:234;-1:-1;;1154:234;1397:400;;1575:85;1657:2;1652:3;1575:85;;;1693:66;1673:87;;1788:2;1779:12;;1561:236;-1:-1;;1561:236;1806:400;;1984:85;2066:2;2061:3;1984:85;;;2102:66;2082:87;;2197:2;2188:12;;1970:236;-1:-1;;1970:236;2380:661;;2583:75;2654:3;2645:6;2583:75;;;2680:2;2675:3;2671:12;2664:19;;2694:75;2765:3;2756:6;2694:75;;;2791:2;2786:3;2782:12;2775:19;;2805:75;2876:3;2867:6;2805:75;;;2902:2;2897:3;2893:12;2886:19;;2916:75;2987:3;2978:6;2916:75;;;-1:-1;3013:2;3004:12;;2571:470;-1:-1;;;;2571:470;3048:1440;;3651:148;3795:3;3651:148;;;3644:155;;3817:148;3961:3;3817:148;;;3810:155;;3983:148;4127:3;3983:148;;;3976:155;;4149:148;4293:3;4149:148;;;4142:155;;4315:148;4459:3;4315:148;;;4308:155;3632:856;-1:-1;;3632:856;4496:145;4632:3;4610:31;-1:-1;4610:31;4649:79;4718:5;4701:27;;731:1174:3;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "0x608060405234801561001057600080fd5b506004361061005d577c010000000000000000000000000000000000000000000000000000000060003504637b837ad18114610062578063c27af17d1461008b578063e306f7791461009e575b600080fd5b6100756100703660046103a6565b6100a6565b60405161008291906106af565b60405180910390f35b610075610099366004610369565b6100b7565b6100756100c2565b60006100b1826100c8565b92915050565b60006100b1826100db565b60005481565b60006100b16100d6836100e9565b61016f565b60006100b16100d6836101af565b6000806040516020016100fb9061064c565b604051602081830303815290604052805190602001209050600083604001516040516101279190610640565b60408051918290038220865160208089015196855284015273ffffffffffffffffffffffffffffffffffffffff90941690820152606081019290925250608090209050919050565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6000806040516020016101c190610683565b604051602081830303815290604052805190602001209050600083602001516040516101ed9190610640565b604080519182900382208651968201519483526020830196909652810194909452506060830152506080902090565b60006102288235610736565b9392505050565b60006102288235610733565b6000601f8201831361024c57600080fd5b813561025f61025a826106e4565b6106bd565b9150808252602083016020830185838301111561027b57600080fd5b610286838284610754565b50505092915050565b6000606082840312156102a157600080fd5b6102ab60606106bd565b905060006102b9848461022f565b825250602082013567ffffffffffffffff8111156102d657600080fd5b6102e28482850161023b565b60208301525060406102f68482850161022f565b60408301525092915050565b60006060828403121561031457600080fd5b61031e60606106bd565b9050600061032c848461022f565b825250602061033d8484830161021c565b602083015250604082013567ffffffffffffffff81111561035d57600080fd5b6102f68482850161023b565b60006020828403121561037b57600080fd5b813567ffffffffffffffff81111561039257600080fd5b61039e8482850161028f565b949350505050565b6000602082840312156103b857600080fd5b813567ffffffffffffffff8111156103cf57600080fd5b61039e84828501610302565b6103e481610733565b82525050565b60006103f58261072a565b6103ff818561072e565b935061040f818560208601610760565b9290920192915050565b600061042660128361072e565b7f5a65726f45785472616e73616374696f6e280000000000000000000000000000815260120192915050565b600061045f601b8361072e565b7f6279746573207472616e73616374696f6e5369676e61747572652c00000000008152601b0192915050565b600061049860018361072e565b7f2900000000000000000000000000000000000000000000000000000000000000815260010192915050565b60006104d1600c8361072e565b7f544543417070726f76616c2800000000000000000000000000000000000000008152600c0192915050565b600061050a600d8361072e565b7f75696e743235362073616c742c000000000000000000000000000000000000008152600d0192915050565b6000610543600a8361072e565b7f62797465732064617461000000000000000000000000000000000000000000008152600a0192915050565b600061057c60258361072e565b7f75696e7432353620617070726f76616c45787069726174696f6e54696d65536581527f636f6e6473000000000000000000000000000000000000000000000000000000602082015260250192915050565b60006105db60168361072e565b7f61646472657373207369676e6572416464726573732c00000000000000000000815260160192915050565b600061061460188361072e565b7f62797465733332207472616e73616374696f6e486173682c0000000000000000815260180192915050565b600061022882846103ea565b600061065782610419565b9150610662826104fd565b915061066d826105ce565b915061067882610536565b91506100b18261048b565b600061068e826104c4565b915061069982610607565b91506106a482610452565b91506106788261056f565b602081016100b182846103db565b60405181810167ffffffffffffffff811182821017156106dc57600080fd5b604052919050565b600067ffffffffffffffff8211156106fb57600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b919050565b90565b600073ffffffffffffffffffffffffffffffffffffffff82166100b1565b82818337506000910152565b60005b8381101561077b578181015183820152602001610763565b8381111561078a576000848401525b5050505056fea265627a7a72305820e79099828fe54268e059e14b945d673ffe00fbab54c6062a3ae99557212dffc96c6578706572696d656e74616cf50037",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x5D JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0x7B837AD1 DUP2 EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0xC27AF17D EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0x9E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x75 PUSH2 0x70 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A6 JUMP JUMPDEST PUSH2 0xA6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x82 SWAP2 SWAP1 PUSH2 0x6AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x75 PUSH2 0x99 CALLDATASIZE PUSH1 0x4 PUSH2 0x369 JUMP JUMPDEST PUSH2 0xB7 JUMP JUMPDEST PUSH2 0x75 PUSH2 0xC2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 DUP3 PUSH2 0xC8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 DUP3 PUSH2 0xDB JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 PUSH2 0xD6 DUP4 PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x16F JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 PUSH2 0xD6 DUP4 PUSH2 0x1AF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xFB SWAP1 PUSH2 0x64C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x640 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP7 MLOAD PUSH1 0x20 DUP1 DUP10 ADD MLOAD SWAP7 DUP6 MSTORE DUP5 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1C1 SWAP1 PUSH2 0x683 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x1ED SWAP2 SWAP1 PUSH2 0x640 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP7 MLOAD SWAP7 DUP3 ADD MLOAD SWAP5 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 CALLDATALOAD PUSH2 0x736 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 CALLDATALOAD PUSH2 0x733 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x25F PUSH2 0x25A DUP3 PUSH2 0x6E4 JUMP JUMPDEST PUSH2 0x6BD JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286 DUP4 DUP3 DUP5 PUSH2 0x754 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AB PUSH1 0x60 PUSH2 0x6BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2B9 DUP5 DUP5 PUSH2 0x22F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E2 DUP5 DUP3 DUP6 ADD PUSH2 0x23B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x314 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x31E PUSH1 0x60 PUSH2 0x6BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x32C DUP5 DUP5 PUSH2 0x22F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x33D DUP5 DUP5 DUP4 ADD PUSH2 0x21C JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x23B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x37B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39E DUP5 DUP3 DUP6 ADD PUSH2 0x28F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39E DUP5 DUP3 DUP6 ADD PUSH2 0x302 JUMP JUMPDEST PUSH2 0x3E4 DUP2 PUSH2 0x733 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F5 DUP3 PUSH2 0x72A JUMP JUMPDEST PUSH2 0x3FF DUP2 DUP6 PUSH2 0x72E JUMP JUMPDEST SWAP4 POP PUSH2 0x40F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x760 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x426 PUSH1 0x12 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 DUP2 MSTORE PUSH1 0x12 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x45F PUSH1 0x1B DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 DUP2 MSTORE PUSH1 0x1B ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x498 PUSH1 0x1 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D1 PUSH1 0xC DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xC ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x50A PUSH1 0xD DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xD ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x543 PUSH1 0xA DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xA ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x57C PUSH1 0x25 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x75696E7432353620617070726F76616C45787069726174696F6E54696D655365 DUP2 MSTORE PUSH32 0x636F6E6473000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x25 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DB PUSH1 0x16 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 DUP2 MSTORE PUSH1 0x16 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x614 PUSH1 0x18 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 DUP2 MSTORE PUSH1 0x18 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 DUP5 PUSH2 0x3EA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x657 DUP3 PUSH2 0x419 JUMP JUMPDEST SWAP2 POP PUSH2 0x662 DUP3 PUSH2 0x4FD JUMP JUMPDEST SWAP2 POP PUSH2 0x66D DUP3 PUSH2 0x5CE JUMP JUMPDEST SWAP2 POP PUSH2 0x678 DUP3 PUSH2 0x536 JUMP JUMPDEST SWAP2 POP PUSH2 0xB1 DUP3 PUSH2 0x48B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x68E DUP3 PUSH2 0x4C4 JUMP JUMPDEST SWAP2 POP PUSH2 0x699 DUP3 PUSH2 0x607 JUMP JUMPDEST SWAP2 POP PUSH2 0x6A4 DUP3 PUSH2 0x452 JUMP JUMPDEST SWAP2 POP PUSH2 0x678 DUP3 PUSH2 0x56F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xB1 DUP3 DUP5 PUSH2 0x3DB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x6DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x6FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0xB1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x77B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x763 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x78A JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 0xe7 SWAP1 SWAP10 DUP3 DUP16 0xe5 TIMESTAMP PUSH9 0xE059E14B945D673FFE STOP 0xfb 0xab SLOAD 0xc6 MOD 0x2a GASPRICE 0xe9 SWAP6 JUMPI 0x21 0x2d SELFDESTRUCT 0xc9 PUSH13 0x6578706572696D656E74616CF5 STOP CALLDATACOPY ",
"sourceMap": "731:1174:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;731:1174:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1659:244;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1150:223;;;;;;;;;:::i;1339:33:0:-;;;:::i;1659:244:3:-;1776:23;1833:31;1852:11;1833:18;:31::i;:::-;1815:49;1659:244;-1:-1:-1;;1659:244:3:o;1150:223::-;1258:20;1309:28;1328:8;1309:18;:28::i;1339:33:0:-;;;;:::o;1514:406:2:-;1627:23;1828:53;1846:34;1868:11;1846:21;:34::i;:::-;1828:17;:53::i;1697:235:1:-;1801:20;1852:44;1870:25;1886:8;1870:15;:25::i;2167:1395:2:-;2283:14;2313:18;823:146;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;823:146:2;;;813:157;;;;;;2313:58;;2381:16;2410:11;:16;;;2400:27;;;;;;;;;;;;;;;;;2525:16;;2575:25;;;;;2999:26;;;3125:15;;3118:29;3270:42;3251:62;;;3234:15;;;3227:87;3364:2;3352:15;;3345:33;;;;-1:-1:-1;3519:3:2;3501:22;;;-1:-1:-1;2167:1395:2;;;:::o;1872:924:0:-;1966:14;2023:18;2335:2;2329:9;2367:66;2352:82;;2484:1;2472:14;;2465:40;;;;2602:2;2590:15;;2583:35;;;;2754:2;2736:21;;;1872:924::o;2248:1357:1:-;2349:14;2379:18;810:183;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;810:183:1;;;800:194;;;;;;2379:52;;2441:32;2486:8;:29;;;2476:40;;;;;;;;;;;;;;;;;2625:24;;2699:38;;;;3136:26;;;3241:2;3229:15;;3222:40;;;;3316:15;;3309:49;;;;-1:-1:-1;3424:2:1;3412:15;;3405:54;-1:-1:-1;3562:3:1;3544:22;;;2248:1357::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;57:66;-1:-1;;;57:66;130:118;;197:46;235:6;222:20;197:46;;256:432;;346:4;334:17;;330:27;-1:-1;320:2;;371:1;368;361:12;320:2;408:6;395:20;430:60;445:44;482:6;445:44;;;430:60;;;421:69;;510:6;503:5;496:21;546:4;538:6;534:17;579:4;572:5;568:16;614:3;605:6;600:3;596:16;593:25;590:2;;;631:1;628;621:12;590:2;641:41;675:6;670:3;665;641:41;;;313:375;;;;;;;;736:755;;852:4;840:9;835:3;831:19;827:30;824:2;;;870:1;867;860:12;824:2;888:20;903:4;888:20;;;879:29;-1:-1;969:1;1000:49;1045:3;1025:9;1000:49;;;976:74;;-1:-1;1155:2;1140:18;;1127:32;1179:18;1168:30;;1165:2;;;1211:1;1208;1201:12;1165:2;1246:54;1296:3;1287:6;1276:9;1272:22;1246:54;;;1239:4;1232:5;1228:16;1221:80;1071:241;1387:2;1420:49;1465:3;1456:6;1445:9;1441:22;1420:49;;;1413:4;1406:5;1402:16;1395:75;1322:159;818:673;;;;;1550:719;;1673:4;1661:9;1656:3;1652:19;1648:30;1645:2;;;1691:1;1688;1681:12;1645:2;1709:20;1724:4;1709:20;;;1700:29;-1:-1;1779:1;1810:49;1855:3;1835:9;1810:49;;;1786:74;;-1:-1;1930:2;1963:49;2008:3;1984:22;;;1963:49;;;1956:4;1949:5;1945:16;1938:75;1881:143;2102:2;2091:9;2087:18;2074:32;2126:18;2118:6;2115:30;2112:2;;;2158:1;2155;2148:12;2112:2;2193:54;2243:3;2234:6;2223:9;2219:22;2193:54;;2401:381;;2532:2;2520:9;2511:7;2507:23;2503:32;2500:2;;;2548:1;2545;2538:12;2500:2;2583:31;;2634:18;2623:30;;2620:2;;;2666:1;2663;2656:12;2620:2;2686:80;2758:7;2749:6;2738:9;2734:22;2686:80;;;2676:90;2494:288;-1:-1;;;;2494:288;2789:395;;2927:2;2915:9;2906:7;2902:23;2898:32;2895:2;;;2943:1;2940;2933:12;2895:2;2978:31;;3029:18;3018:30;;3015:2;;;3061:1;3058;3051:12;3015:2;3081:87;3160:7;3151:6;3140:9;3136:22;3081:87;;3191:120;3274:31;3299:5;3274:31;;;3269:3;3262:44;3256:55;;;3318:348;;3442:34;3470:5;3442:34;;;3488:88;3569:6;3564:3;3488:88;;;3481:95;;3581:52;3626:6;3621:3;3614:4;3607:5;3603:16;3581:52;;;3645:16;;;;;3422:244;-1:-1;;3422:244;3674:400;;3852:85;3934:2;3929:3;3852:85;;;3970:66;3950:87;;4065:2;4056:12;;3838:236;-1:-1;;3838:236;4083:400;;4261:85;4343:2;4338:3;4261:85;;;4379:66;4359:87;;4474:2;4465:12;;4247:236;-1:-1;;4247:236;4492:398;;4670:84;4752:1;4747:3;4670:84;;;4787:66;4767:87;;4882:1;4873:11;;4656:234;-1:-1;;4656:234;4899:400;;5077:85;5159:2;5154:3;5077:85;;;5195:66;5175:87;;5290:2;5281:12;;5063:236;-1:-1;;5063:236;5308:400;;5486:85;5568:2;5563:3;5486:85;;;5604:66;5584:87;;5699:2;5690:12;;5472:236;-1:-1;;5472:236;5717:400;;5895:85;5977:2;5972:3;5895:85;;;6013:66;5993:87;;6108:2;6099:12;;5881:236;-1:-1;;5881:236;6126:501;;6304:85;6386:2;6381:3;6304:85;;;6422:66;6402:87;;6523:66;6518:2;6509:12;;6502:88;6618:2;6609:12;;6290:337;-1:-1;;6290:337;6636:400;;6814:85;6896:2;6891:3;6814:85;;;6932:66;6912:87;;7027:2;7018:12;;6800:236;-1:-1;;6800:236;7045:400;;7223:85;7305:2;7300:3;7223:85;;;7341:66;7321:87;;7436:2;7427:12;;7209:236;-1:-1;;7209:236;7453:254;;7593:89;7678:3;7669:6;7593:89;;7714:1440;;8317:148;8461:3;8317:148;;;8310:155;;8483:148;8627:3;8483:148;;;8476:155;;8649:148;8793:3;8649:148;;;8642:155;;8815:148;8959:3;8815:148;;;8808:155;;8981:148;9125:3;8981:148;;9161:1440;;9764:148;9908:3;9764:148;;;9757:155;;9930:148;10074:3;9930:148;;;9923:155;;10096:148;10240:3;10096:148;;;10089:155;;10262:148;10406:3;10262:148;;10608:213;10726:2;10711:18;;10740:71;10715:9;10784:6;10740:71;;10828:256;10890:2;10884:9;10916:17;;;10991:18;10976:34;;11012:22;;;10973:62;10970:2;;;11048:1;11045;11038:12;10970:2;11064;11057:22;10868:216;;-1:-1;10868:216;11091:254;;11230:18;11222:6;11219:30;11216:2;;;11262:1;11259;11252:12;11216:2;-1:-1;11335:4;11306;11283:17;;;;11302:9;11279:33;11325:15;;11153:192;11352:87;11422:12;;11406:33;11447:144;11582:3;11560:31;-1:-1;11560:31;11753:79;11822:5;11805:27;11839:105;;12117:42;12106:54;;11908:31;12089:76;12259:145;12340:6;12335:3;12330;12317:30;-1:-1;12396:1;12378:16;;12371:27;12310:94;12413:268;12478:1;12485:101;12499:6;12496:1;12493:13;12485:101;;;12566:11;;;12560:18;12547:11;;;12540:39;12521:2;12514:10;12485:101;;;12601:6;12598:1;12595:13;12592:2;;;12666:1;12657:6;12652:3;12648:16;12641:27;12592:2;12462:219;;;;"
}
}
},
"sources": {
"test/TestLibs.sol": {
"id": 3
},
"src/libs/LibTECApproval.sol": {
"id": 1
},
"src/libs/LibEIP712Domain.sol": {
"id": 0
},
"src/libs/LibZeroExTransaction.sol": {
"id": 2
}
},
"sourceCodes": {
"test/TestLibs.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"../src/libs/LibTECApproval.sol\";\nimport \"../src/libs/LibZeroExTransaction.sol\";\n\n\ncontract TestLibs is\n LibTECApproval,\n LibZeroExTransaction\n{\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage using the domain separator of this contract.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with the domain separator of this contract.\n function publicGetTECApprovalHash(TECApproval memory approval)\n public\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = getTECApprovalHash(approval);\n return approvalHash;\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function publicGetTransactionHash(ZeroExTransaction memory transaction)\n public\n view\n returns (bytes32 transactionHash)\n {\n transactionHash = getTransactionHash(transaction);\n return transactionHash;\n }\n}\n",
"src/libs/LibTECApproval.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibTECApproval is\n LibEIP712Domain\n{\n // Hash for the EIP712 TEC approval message\n bytes32 constant internal EIP712_TEC_APPROVAL_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"TECApproval(\",\n \"bytes32 transactionHash,\",\n \"bytes transactionSignature,\",\n \"uint256 approvalExpirationTimeSeconds\",\n \")\"\n ));\n\n struct TECApproval {\n bytes32 transactionHash; // EIP712 hash of the transaction, using the domain separator of this contract.\n bytes transactionSignature; // Signature of the 0x transaction.\n uint256 approvalExpirationTimeSeconds; // Timestamp in seconds for which the signature expires.\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage using the domain separator of this contract.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with the domain separator of this contract.\n function getTECApprovalHash(TECApproval memory approval)\n internal\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = hashEIP712Message(hashTECApproval(approval));\n return approvalHash;\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage with no domain separator.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with no domain separator.\n function hashTECApproval(TECApproval memory approval)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_TEC_APPROVAL_SCHEMA_HASH;\n bytes32 transactionSignatureHash = keccak256(approval.transactionSignature);\n // TODO(abandeali1): optimize by loading from memory in assembly\n bytes32 transactionHash = approval.transactionHash;\n uint256 approvalExpirationTimeSeconds = approval.approvalExpirationTimeSeconds;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_TEC_APPROVAL_SCHEMA_HASH,\n // approval.transactionHash,\n // keccak256(approval.transactionSignature)\n // approval.expiration,\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), transactionHash) // transactionHash\n mstore(add(memPtr, 64), transactionSignatureHash) // transactionSignatureHash\n mstore(add(memPtr, 96), approvalExpirationTimeSeconds) // approvalExpirationTimeSeconds\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n",
"src/libs/LibEIP712Domain.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712Domain {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol Trade Execution Coordinator\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"1.0.0\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n",
"src/libs/LibZeroExTransaction.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibZeroExTransaction is\n LibEIP712Domain\n{\n // Hash for the EIP712 0x transaction schema\n bytes32 constant internal EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"ZeroExTransaction(\",\n \"uint256 salt,\",\n \"address signerAddress,\",\n \"bytes data\",\n \")\"\n ));\n\n struct ZeroExTransaction {\n uint256 salt; // Arbitrary number to ensure uniqueness of transaction hash.\n address signerAddress; // Address of transaction signer.\n bytes data; // AbiV2 encoded calldata.\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function getTransactionHash(ZeroExTransaction memory transaction)\n internal\n view\n returns (bytes32 transactionHash)\n {\n // Note: this transaction hash will differ from the hash produced by the Exchange contract because it utilizes a different domain hash.\n transactionHash = hashEIP712Message(hashZeroExTransaction(transaction));\n return transactionHash;\n }\n\n /// @dev Calculates EIP712 hash of the 0x transaction with no domain separator.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with no domain separator.\n function hashZeroExTransaction(ZeroExTransaction memory transaction)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH;\n bytes32 dataHash = keccak256(transaction.data);\n // TODO(abandeali1): optimize by loading from memory in assembly\n uint256 salt = transaction.salt;\n address signerAddress = transaction.signerAddress;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH,\n // transaction.salt,\n // uint256(transaction.signerAddress),\n // keccak256(transaction.data)\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), salt) // salt\n mstore(add(memPtr, 64), and(signerAddress, 0xffffffffffffffffffffffffffffffffffffffff)) // signerAddress\n mstore(add(memPtr, 96), dataHash) // hash of data\n\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n"
},
"sourceTreeHashHex": "0x2d256b13f2542ebde5880e37c88e2fee3a815d26882e4fdaefd5df58adfa3005",
"compiler": {
"name": "solc",
"version": "0.5.4+commit.9549d8ff.Linux.g++",
"settings": {
"optimizer": {
"enabled": true,
"runs": 1000000
},
"outputSelection": {
"*": {
"*": [
"abi",
"evm.bytecode.object",
"evm.bytecode.sourceMap",
"evm.deployedBytecode.object",
"evm.deployedBytecode.sourceMap"
]
}
},
"remappings": [
"@0x/contracts-utils=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-utils",
"@0x/contracts-exchange-libs=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-exchange-libs"
]
}
},
"networks": {}
}