2019-03-07 08:33:22 -08: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": "publicGetCoordinatorApprovalHash",
"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": "0x60806040526200001060a06200025f565b6040516020818303038152906040528051906020012060405180606001604052806027815260200162000a6c602791398051602091820120604080518082018252600581527f312e302e300000000000000000000000000000000000000000000000000000009084015251620000ac93927f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c913091016200020f565b60408051601f198184030181529190528051602090910120600055620002ae565b620000e2620000dc82620002ab565b620002ab565b82525050565b6000620000f7600c83620002a6565b7f737472696e67206e616d652c00000000000000000000000000000000000000008152600c0192915050565b600062000132601983620002a6565b7f6164647265737320766572696679696e67436f6e747261637400000000000000815260190192915050565b60006200016d600183620002a6565b7f2900000000000000000000000000000000000000000000000000000000000000815260010192915050565b6000620001a8600f83620002a6565b7f737472696e672076657273696f6e2c00000000000000000000000000000000008152600f0192915050565b6000620001e3600d83620002a6565b7f454950373132446f6d61696e28000000000000000000000000000000000000008152600d0192915050565b60006200021d8287620000cd565b6020820191506200022f8286620000cd565b602082019150620002418285620000cd565b602082019150620002538284620000cd565b50602001949350505050565b60006200026c82620001d4565b91506200027982620000e8565b9150620002868262000199565b9150620002938262000123565b9150620002a0826200015e565b92915050565b919050565b90565b6107ae80620002be6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80637b837ad114610046578063a2d7c53d1461006f578063e306f77914610082575b600080fd5b61005961005436600461038a565b61008a565b6040516100669190610693565b60405180910390f35b61005961007d36600461034d565b61009b565b6100596100a6565b6000610095826100ac565b92915050565b6000610095826100bf565b60005481565b60006100956100ba836100cd565b610153565b60006100956100ba83610193565b6000806040516020016100df90610630565b6040516020818303038152906040528051906020012090506000836040015160405161010b9190610624565b60408051918290038220865160208089015196855284015273ffffffffffffffffffffffffffffffffffffffff90941690820152606081019290925250608090209050919050565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6000806040516020016101a590610667565b604051602081830303815290604052805190602001209050600083602001516040516101d19190610624565b604080519182900382208651968201519483526020830196909652810194909452506060830152506080902090565b600061020c823561071a565b9392505050565b600061020c8235610717565b6000601f8201831361023057600080fd5b813561024361023e826106c8565b6106a1565b9150808252602083016020830185838301111561025f57600080fd5b61026a838284610738565b50505092915050565b60006060828403121561028557600080fd5b61028f60606106a1565b9050600061029d8484610213565b825250602082013567ffffffffffffffff8111156102ba57600080fd5b6102c68482850161021f565b60208301525060406102da84828501610213565b60408301525092915050565b6000606082840312156102f857600080fd5b61030260606106a1565b905060006103108484610213565b825250602061032184848301610200565b602083015250604082013567ffffffffffffffff81111561034157600080fd5b6102da8482850161021f565b60006020828403121561035f57600080fd5b813567ffffffffffffffff81111561037657600080fd5b61038284828501610273565b949350505050565b60006020828403121561039c57600080fd5b813567ffffffffffffffff8111156103b357600080fd5b610382848285016102e6565b6103c881610717565b82525050565b60006103d98261070e565b6103e38185610712565b93506103f3818560208601610744565b9290920192915050565b600061040a601283610712565b7f5a65726f45785472616e73616374696f6e280000000000000000000000000000815260120192915050565b6000610443601b83610712565b7f6279746573207472616e73616374696f6e5369676e61747572652c00000000008152601b0192915050565b600061047c600183610712565b7f2900000000000000000000000000000000000000000000000000000000000000815260010192915050565b60006104b5601483610712565b7f436f6f7264696e61746f72417070726f76616c28000000000000000000000000815260140192915050565b60006104ee600d83610712565b7f75696e743235362073616c742c000000000000000000000000000000000000008152600d0192915050565b6000610527600a83610712565b7f62797465732064617461000000000000000000000000000000000000000000008152600a0192915050565b6000610560602583610712565b7f75696e7432353620617070726f76616c45787069726174696f6e54696d65536581527f636f6e6473000000000000000000000000000000000000000000000000000000602082015260250192915050565b60006105bf601683610712565b7f61646472657373207369676e6572416464726573732c00000000000000000000815260160192915050565b60006105f8601883610712565b7f62797465733332207472616e73616374696f6e486173682c0000000000000000815260180192915050565b600061020c82846103ce565b600061063b826103fd565b9150610646826104e1565b9150610651826105b2565b915061065c8261051a565b91506100958261046f565b6000610672826104a8565b915061067d826105eb565b915061068882610436565b915061065c82610553565b6020810161009582846103bf565b60405181810167ffffffffffffffff811182821017156106c057600080fd5b604052919050565b600067ffffffffffffffff8211156106df57600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b919050565b90565b600073ffffffffffffffffffffffffffffffffffffffff8216610095565b82818337506000910152565b60005b8381101561075f578181015183820152602001610747565b8381111561076e576000848401525b5050505056fea265627a7a72305820fd18db31ffe951b55e945cfc55ca4f3efee15343884f5c93eca886fc4800e74d6c6578706572696d656e74616cf5003730782050726f746f636f6c20547261646520457865637574696f6e20436f6f7264696e61746f72",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH3 0x10 PUSH1 0xA0 PUSH3 0x25F 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 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0xA6C 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 0xAC SWAP4 SWAP3 PUSH32 0x6C015BD22B4C69690933C1058878EBDFEF31F9AAAE40BBE86D8A09FE1B2972C SWAP2 ADDRESS SWAP2 ADD PUSH3 0x20F 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 0x2AE JUMP JUMPDEST PUSH3 0xE2 PUSH3 0xDC DUP3 PUSH3 0x2AB JUMP JUMPDEST PUSH3 0x2AB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xF7 PUSH1 0xC DUP4 PUSH3 0x2A6 JUMP JUMPDEST PUSH32 0x737472696E67206E616D652C0000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xC ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x132 PUSH1 0x19 DUP4 PUSH3 0x2A6 JUMP JUMPDEST PUSH32 0x6164647265737320766572696679696E67436F6E747261637400000000000000 DUP2 MSTORE PUSH1 0x19 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x16D PUSH1 0x1 DUP4 PUSH3 0x2A6 JUMP JUMPDEST PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1A8 PUSH1 0xF DUP4 PUSH3 0x2A6 JUMP JUMPDEST PUSH32 0x737472696E672076657273696F6E2C0000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xF ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1E3 PUSH1 0xD DUP4 PUSH3 0x2A6 JUMP JUMPDEST PUSH32 0x454950373132446F6D61696E2800000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xD ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x21D DUP3 DUP8 PUSH3 0xCD JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH3 0x22F DUP3 DUP7 PUSH3 0xCD JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH3 0x241 DUP3 DUP6 PUSH3 0xCD JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH3 0x253 DUP3 DUP5 PUSH3 0xCD JUMP JUMPDEST POP PUSH1 0x20 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x26C DUP3 PUSH3 0x1D4 JUMP JUMPDEST SWAP2 POP PUSH3 0x279 DUP3 PUSH3 0xE8 JUMP JUMPDEST SWAP2 POP PUSH3 0x286 DUP3 PUSH3 0x199 JUMP JUMPDEST SWAP2 POP PUSH3 0x293 DUP3 PUSH3 0x123 JUMP JUMPDEST SWAP2 POP PUSH3 0x2A0 DUP3 PUSH3 0x15E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x7AE DUP1 PUSH3 0x2BE PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B837AD1 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0xA2D7C53D EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0x82 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0x54 CALLDATASIZE PUSH1 0x4 PUSH2 0x38A JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x693 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x59 PUSH2 0x7D CALLDATASIZE PUSH1 0x4 PUSH2 0x34D JUMP JUMPDEST PUSH2 0x9B JUMP JUMPDEST PUSH2 0x59 PUSH2 0xA6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x95 DUP3 PUSH2 0xAC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x95 DUP3 PUSH2 0xBF JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x95 PUSH2 0xBA DUP4 PUSH2 0xCD JUMP JUMPDEST PUSH2 0x153 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x95 PUSH2 0xBA DUP4 PUSH2 0x193 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDF SWAP1 PUSH2 0x630 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 0x10B SWAP2 SWAP1 PUSH2 0x624 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 0x1A5 SWAP1 PUSH2 0x667 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 0x1D1 SWAP2 SWAP1 PUSH2 0x624 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 0x20C DUP3 CALLDATALOAD PUSH2 0x71A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20C DUP3 CALLDATALOAD PUSH2 0x717 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x230 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x243 PUSH2 0x23E DUP3 PUSH2 0x6C8 JUMP JUMPDEST PUSH2 0x6A1 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x25F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26A DUP4 DUP3 DUP5 PUSH2 0x738 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x285 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28F PUSH1 0x60 PUSH2 0x6A1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x29D DUP5 DUP5 PUSH2 0x213 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C6 DUP5 DUP3 DUP6 ADD PUSH2 0x21F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2DA DUP5 DUP3 DUP6 ADD PUSH2 0x213 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x302 PUSH1 0x60 PUSH2 0x6A1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x310 DUP5 DUP5 PUSH2 0x213 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x321 DUP5 DUP5 DUP4 ADD PUSH2 0x200 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x341 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DA DUP5 DUP3 DUP6 ADD PUSH2 0x21F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x35F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x376 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x382 DUP5 DUP3 DUP6 ADD PUSH2 0x273 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x39C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x382 DUP5 DUP3 DUP6 ADD PUSH2 0x2E6 JUMP JUMPDEST PUSH2 0x3C8 DUP2 PUSH2 0x717 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D9 DUP3 PUSH2 0x70E JUMP JUMPDEST PUSH2 0x3E3 DUP2 DUP6 PUSH2 0x712 JUMP JUMPDEST SWAP4 POP PUSH2 0x3F3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x744 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40A PUSH1 0x12 DUP4 PUSH2 0x712 JUMP JUMPDEST PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 DUP2 MSTORE PUSH1 0x12 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x443 PUSH1 0x1B DUP4 PUSH2 0x712 JUMP JUMPDEST PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 DUP2 MSTORE PUSH1 0x1B ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x47C PUSH1 0x1 DUP4 PUSH2 0x712 JUMP JUMPDEST PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B5 PUSH1 0x14 DUP4 PUSH2 0x712 JUMP JUMPDEST PUSH32 0x436F6F7264696E61746F72417070726F76616C28000000000000000000000000 DUP2 MSTORE PUSH1 0x14 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4EE PUSH1 0xD DUP4 PUSH2 0x712 JUMP JUMPDEST PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xD ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x527 PUSH1 0xA DUP4 PUSH2 0x712 JUMP JUMPDEST PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xA ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x560 PUSH1 0x25 DUP4 PUSH2 0x712 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 0x5BF PUSH1 0x16 DUP4 PUSH2 0x712 JUMP JUMPDEST PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 DUP2 MSTORE PUSH1 0x16 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5F8 PUSH1 0x18 DUP4 PUSH2 0x712 JUMP JUMPDEST PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 DUP2 MSTORE PUSH1 0x18 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20C DUP3 DUP5 PUSH2 0x3CE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x63B DUP3 PUSH2 0x3FD JUMP JUMPDEST SWAP2 POP PUSH2 0x646 DUP3 PUSH2 0x4E1 JUMP JUMPDEST SWAP2 POP PUSH2 0x651 DUP3 PUSH2 0x5B2 JUMP JUMPDEST SWAP2 POP PUSH2 0x65C DUP3 PUSH2 0x51A JUMP JUMPDEST SWAP2 POP PUSH2 0x95 DUP3 PUSH2 0x46F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x672 DUP3 PUSH2 0x4A8 JUMP JUMPDEST SWAP2 POP PUSH2 0x67D DUP3 PUSH2 0x5EB JUMP JUMPDEST SWAP2 POP PUSH2 0x688 DUP3 PUSH2 0x436 JUMP JUMPDEST SWAP2 POP PUSH2 0x65C DUP3 PUSH2 0x553 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x95 DUP3 DUP5 PUSH2 0x3BF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x6C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x6DF 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 0x95 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x75F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x747 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x76E JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 REVERT XOR 0xdb BALANCE SELFDESTRUCT 0xe9 MLOAD 0xb5 0x5e SWAP5 0x5c 0xfc SSTORE 0xca 0x4f RETURNDATACOPY INVALID 0xe1 MSTORE8 NUMBER DUP9 0x4f 0x5c SWAP4 0xec 0xa8 DUP7 0xfc 0x48 STOP 0xe7 0x4d PUSH13 0x6578706572696D656E74616CF5 STOP CALLDATACOPY ADDRESS PUSH25 0x2050726F746F636F6C20547261646520457865637574696F6E KECCAK256 NUMBER PUSH16 0x6F7264696E61746F7200000000000000 ",
"sourceMap": "739:1230:3:-;;;1083:148:1;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1083:148:1;;;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:1;;;1444:225;;49:4:-1;1444:225:1;;;;1423:18;:246;739:1230: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;;739:1230:3;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80637b837ad114610046578063a2d7c53d1461006f578063e306f77914610082575b600080fd5b61005961005436600461038a565b61008a565b6040516100669190610693565b60405180910390f35b61005961007d36600461034d565b61009b565b6100596100a6565b6000610095826100ac565b92915050565b6000610095826100bf565b60005481565b60006100956100ba836100cd565b610153565b60006100956100ba83610193565b6000806040516020016100df90610630565b6040516020818303038152906040528051906020012090506000836040015160405161010b9190610624565b60408051918290038220865160208089015196855284015273ffffffffffffffffffffffffffffffffffffffff90941690820152606081019290925250608090209050919050565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6000806040516020016101a590610667565b604051602081830303815290604052805190602001209050600083602001516040516101d19190610624565b604080519182900382208651968201519483526020830196909652810194909452506060830152506080902090565b600061020c823561071a565b9392505050565b600061020c8235610717565b6000601f8201831361023057600080fd5b813561024361023e826106c8565b6106a1565b9150808252602083016020830185838301111561025f57600080fd5b61026a838284610738565b50505092915050565b60006060828403121561028557600080fd5b61028f60606106a1565b9050600061029d8484610213565b825250602082013567ffffffffffffffff8111156102ba57600080fd5b6102c68482850161021f565b60208301525060406102da84828501610213565b60408301525092915050565b6000606082840312156102f857600080fd5b61030260606106a1565b905060006103108484610213565b825250602061032184848301610200565b602083015250604082013567ffffffffffffffff81111561034157600080fd5b6102da8482850161021f565b60006020828403121561035f57600080fd5b813567ffffffffffffffff81111561037657600080fd5b61038284828501610273565b949350505050565b60006020828403121561039c57600080fd5b813567ffffffffffffffff8111156103b357600080fd5b610382848285016102e6565b6103c881610717565b82525050565b60006103d98261070e565b6103e38185610712565b93506103f3818560208601610744565b9290920192915050565b600061040a601283610712565b7f5a65726f45785472616e73616374696f6e280000000000000000000000000000815260120192915050565b6000610443601b83610712565b7f6279746573207472616e73616374696f6e5369676e61747572652c00000000008152601b0192915050565b600061047c600183610712565b7f2900000000000000000000000000000000000000000000000000000000000000815260010192915050565b60006104b5601483610712565b7f436f6f7264696e61746f72417070726f76616c28000000000000000000000000815260140192915050565b60006104ee600d83610712565b7f75696e743235362073616c742c000000000000000000000000000000000000008152600d0192915050565b6000610527600a83610712565b7f62797465732064617461000000000000000000000000000000000000000000008152600a0192915050565b6000610560602583610712565b7f75696e7432353620617070726f76616c45787069726174696f6e54696d65536581527f636f6e6473000000000000000000000000000000000000000000000000000000602082015260250192915050565b60006105bf601683610712565b7f61646472657373207369676e6572416464726573732c00000000000000000000815260160192915050565b60006105f8601883610712565b7f62797465733332207472616e73616374696f6e486173682c0000000000000000815260180192915050565b600061020c82846103ce565b600061063b826103fd565b9150610646826104e1565b9150610651826105b2565b915061065c8261051a565b91506100958261046f565b6000610672826104a8565b915061067d826105eb565b915061068882610436565b915061065c82610553565b6020810161009582846103bf565b60405181810167ffffffffffffffff811182821017156106c057600080fd5b604052919050565b600067ffffffffffffffff8211156106df57600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b919050565b90565b600073ffffffffffffffffffffffffffffffffffffffff8216610095565b82818337506000910152565b60005b8381101561075f578181015183820152602001610747565b8381111561076e576000848401525b5050505056fea265627a7a72305820fd18db31ffe951b55e945cfc55ca4f3efee15343884f5c93eca886fc4800e74d6c6578706572696d656e74616cf50037",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B837AD1 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0xA2D7C53D EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0x82 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0x54 CALLDATASIZE PUSH1 0x4 PUSH2 0x38A JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x693 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x59 PUSH2 0x7D CALLDATASIZE PUSH1 0x4 PUSH2 0x34D JUMP JUMPDEST PUSH2 0x9B JUMP JUMPDEST PUSH2 0x59 PUSH2 0xA6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x95 DUP3 PUSH2 0xAC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x95 DUP3 PUSH2 0xBF JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x95 PUSH2 0xBA DUP4 PUSH2 0xCD JUMP JUMPDEST PUSH2 0x153 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x95 PUSH2 0xBA DUP4 PUSH2 0x193 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDF SWAP1 PUSH2 0x630 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 0x10B SWAP2 SWAP1 PUSH2 0x624 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 0x1A5 SWAP1 PUSH2 0x667 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 0x1D1 SWAP2 SWAP1 PUSH2 0x624 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 0x20C DUP3 CALLDATALOAD PUSH2 0x71A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20C DUP3 CALLDATALOAD PUSH2 0x717 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x230 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x243 PUSH2 0x23E DUP3 PUSH2 0x6C8 JUMP JUMPDEST PUSH2 0x6A1 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x25F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26A DUP4 DUP3 DUP5 PUSH2 0x738 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x285 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28F PUSH1 0x60 PUSH2 0x6A1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x29D DUP5 DUP5 PUSH2 0x213 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C6 DUP5 DUP3 DUP6 ADD PUSH2 0x21F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2DA DUP5 DUP3 DUP6 ADD PUSH2 0x213 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x302 PUSH1 0x60 PUSH2 0x6A1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x310 DUP5 DUP5 PUSH2 0x213 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x321 DUP5 DUP5 DUP4 ADD PUSH2 0x200 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x341 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DA DUP5 DUP3 DUP6 ADD PUSH2 0x21F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x35F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x376 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x382 DUP5 DUP3 DUP6 ADD PUSH2 0x273 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x39C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x382 DUP5 DUP3 DUP6 ADD PUSH2 0x2E6 JUMP JUMPDEST PUSH2 0x3C8 DUP2 PUSH2 0x717 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D9 DUP3 PUSH2 0x70E JUMP JUMPDEST PUSH2 0x3E3 DUP2 DUP6 PUSH2 0x712 JUMP JUMPDEST SWAP4 POP PUSH2 0x3F3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x744 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40A PUSH1 0x12 DUP4 PUSH2 0x712 JUMP JUMPDEST PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 DUP2 MSTORE PUSH1 0x12 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x443 PUSH1 0x1B DUP4 PUSH2 0x712 JUMP JUMPDEST PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 DUP2 MSTORE PUSH1 0x1B ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x47C PUSH1 0x1 DUP4 PUSH2 0x712 JUMP JUMPDEST PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B5 PUSH1 0x14 DUP4 PUSH2 0x712 JUMP JUMPDEST PUSH32 0x436F6F7264696E61746F72417070726F76616C28000000000000000000000000 DUP2 MSTORE PUSH1 0x14 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4EE PUSH1 0xD DUP4 PUSH2 0x712 JUMP JUMPDEST PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xD ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x527 PUSH1 0xA DUP4 PUSH2 0x712 JUMP JUMPDEST PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xA ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x560 PUSH1 0x25 DUP4 PUSH2 0x712 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 0x5BF PUSH1 0x16 DUP4 PUSH2 0x712 JUMP JUMPDEST PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 DUP2 MSTORE PUSH1 0x16 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5F8 PUSH1 0x18 DUP4 PUSH2 0x712 JUMP JUMPDEST PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 DUP2 MSTORE PUSH1 0x18 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20C DUP3 DUP5 PUSH2 0x3CE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x63B DUP3 PUSH2 0x3FD JUMP JUMPDEST SWAP2 POP PUSH2 0x646 DUP3 PUSH2 0x4E1 JUMP JUMPDEST SWAP2 POP PUSH2 0x651 DUP3 PUSH2 0x5B2 JUMP JUMPDEST SWAP2 POP PUSH2 0x65C DUP3 PUSH2 0x51A JUMP JUMPDEST SWAP2 POP PUSH2 0x95 DUP3 PUSH2 0x46F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x672 DUP3 PUSH2 0x4A8 JUMP JUMPDEST SWAP2 POP PUSH2 0x67D DUP3 PUSH2 0x5EB JUMP JUMPDEST SWAP2 POP PUSH2 0x688 DUP3 PUSH2 0x436 JUMP JUMPDEST SWAP2 POP PUSH2 0x65C DUP3 PUSH2 0x553 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x95 DUP3 DUP5 PUSH2 0x3BF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x6C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x6DF 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 0x95 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x75F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x747 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x76E JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 REVERT XOR 0xdb BALANCE SELFDESTRUCT 0xe9 MLOAD 0xb5 0x5e SWAP5 0x5c 0xfc SSTORE 0xca 0x4f RETURNDATACOPY INVALID 0xe1 MSTORE8 NUMBER DUP9 0x4f 0x5c SWAP4 0xec 0xa8 DUP7 0xfc 0x48 STOP 0xe7 0x4d PUSH13 0x6578706572696D656E74616CF5 STOP CALLDATACOPY ",
"sourceMap": "739:1230:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;739:1230:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1723:244;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1190:247;;;;;;;;;:::i;1339:33:1:-;;;:::i;1723:244:3:-;1840:23;1897:31;1916:11;1897:18;:31::i;:::-;1879:49;1723:244;-1:-1:-1;;1723:244:3:o;1190:247::-;1314:20;1365:36;1392:8;1365:26;:36::i;1339:33:1:-;;;;:::o;1514:406:2:-;1627:23;1828:53;1846:34;1868:11;1846:21;:34::i;:::-;1828:17;:53::i;1761:259:0:-;1881:20;1932:52;1950:33;1974:8;1950:23;:33::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:1:-;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;2360:1389:0:-;2477:14;2507:18;834:191;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;834:191:0;;;824:202;;;;;;2507:60;;2577:32;2622:8;:29;;;2612:40;;;;;;;;;;;;;;;;;2761:24;;2835:38;;;;3280:26;;;3385:2;3373:15;;3366:40;;;;3460:15;;3453:49;;;;-1:-1:-1;3568:2:0;3556:15;;3549:54;-1:-1:-1;3706:3:0;3688:22;;;2360:1389::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;;;;;;;;752:763;;876:4;864:9;859:3;855:19;851:30;848:2;;;894:1;891;884:12;848:2;912:20;927:4;912:20;;;903:29;-1:-1;993:1;1024:49;1069:3;1049:9;1024:49;;;1000:74;;-1:-1;1179:2;1164:18;;1151:32;1203:18;1192:30;;1189:2;;;1235:1;1232;1225:12;1189:2;1270:54;1320:3;1311:6;1300:9;1296:22;1270:54;;;1263:4;1256:5;1252:16;1245:80;1095:241;1411:2;1444:49;1489:3;1480:6;1469:9;1465:22;1444:49;;;1437:4;1430:5;1426:16;1419:75;1346:159;842:673;;;;;1574:719;;1697:4;1685:9;1680:3;1676:19;1672:30;1669:2;;;1715:1;1712;1705:12;1669:2;1733:20;1748:4;1733:20;;;1724:29;-1:-1;1803:1;1834:49;1879:3;1859:9;1834:49;;;1810:74;;-1:-1;1954:2;1987:49;2032:3;2008:22;;;1987:49;;;1980:4;1973:5;1969:16;1962:75;1905:143;2126:2;2115:9;2111:18;2098:32;2150:18;2142:6;2139:30;2136:2;;;2182:1;2179;2172:12;2136:2;2217:54;2267:3;2258:6;2247:9;2243:22;2217:54;;2425:397;;2564:2;2552:9;2543:7;2539:23;2535:32;2532:2;;;2580:1;2577;2570:12;2532:2;2615:31;;2666:18;2655:30;;2652:2;;;2698:1;2695;2688:12;2652:2;2718:88;2798:7;2789:6;2778:9;2774:22;2718:88;;;2708:98;2526:296;-1:-1;;;;2526:296;2829:395;;2967:2;2955:9;2946:7;2942:23;2938:32;2935:2;;;2983:1;2980;2973:12;2935:2;3018:31;;3069:18;3058:30;;3055:2;;;3101:1;3098;3091:12;3055:2;3121:87;3200:7;3191:6;3180:9;3176:22;3121:87;;3231:120;3314:31;3339:5;3314:31;;;3309:3;3302:44;3296:55;;;3358:348;;3482:34;3510:5;3482:34;;;3528:88;3609:6;3604:3;3528:88;;;3521:95;;3621:52;3666:6;3661:3;3654:4;3647:5;3643:16;3621:52;;;3685:16;;;;;3462:244;-1:-1;;3462:244;3714:400;;3892:85;3974:2;3969:3;3892:85;;;4010:66;3990:87;;4105:2;4096:12;;3878:236;-1:-1;;3878:236;4123:400;;4301:85;4383:2;4378:3;4301:85;;;4419:66;4399:87;;4514:2;4505:12;;4287:236;-1:-1;;4287:236;4532:398;;4710:84;4792:1;4787:3;4710:84;;;4827:66;4807:87;;4922:1;4913:11;;4696:234;-1:-1;;4696:234;4939:400;;5117:85;5199:2;5194:3;5117:85;;;5235:66;5215:87;;5330:2;5321:12;;5103:236;-1:-1;;5103:236;5348:400;;5526:85;5608:2;5603:3;5526:85;;;5644:66;5624:87;;5739:2;5730:12;;5512:236;-1:-1;;5512:236;5757:400;;5935:85;6017:2;6012:3;5935:85;;;6053:66;6033:87;;6148:2;6139:12;;5921:236;-1:-1;;5921:236;6166:501;;6344:85;6426:2;6421:3;6344:85;;;6462:66;6442:87;;6563:66;6558:2;6549:12;;6542:88;6658:2;6649:12;;6330:337;-1:-1;;6330:337;6676:400;;6854:85;6936:2;6931:3;6854:85;;;6972:66;6952:87;;7067:2;7058:12;;6840:236;-1:-1;;6840:236;7085:400;;7263:85;7345:2;7340:3;7263:85;;;7381:66;7361:87;;7476:2;7467:12;;7249:236;-1:-1;;7249:236;7493:254;;7633:89;7718:3;7709:6;7633:89;;7754:1440;;8357:148;8501:3;8357:148;;;8350:155;;8523:148;8667:3;8523:148;;;8516:155;;8689:148;8833:3;8689:148;;;8682:155;;8855:148;8999:3;8855:148;;;8848:155;;9021:148;9165:3;9021:148;;9201:1440;;9804:148;9948:3;9804:148;;;9797:155;;9970:148;10114:3;9970:148;;;9963:155;;10136:148;10280:3;10136:148;;;10129:155;;10302:148;10446:3;10302:148;;10648:213;10766:2;10751:18;;10780:71;10755:9;10824:6;10780:71;;10868:256;10930:2;10924:9;10956:17;;;11031:18;11016:34;;11052:22;;;11013:62;11010:2;;;11088:1;11085;11078:12;11010:2;11104;11097:22;10908:216;;-1:-1;10908:216;11131:254;;11270:18;11262:6;11259:30;11256:2;;;11302:1;11299;11292:12;11256:2;-1:-1;11375:4;11346;11323:17;;;;11342:9;11319:33;11365:15;;11193:192;11392:87;11462:12;;11446:33;11487:144;11622:3;11600:31;-1:-1;11600:31;11793:79;11862:5;11845:27;11879:105;;12157:42;12146:54;;11948:31;12129:76;12299:145;12380:6;12375:3;12370;12357:30;-1:-1;12436:1;12418:16;;12411:27;12350:94;12453:268;12518:1;12525:101;12539:6;12536:1;12533:13;12525:101;;;12606:11;;;12600:18;12587:11;;;12580:39;12561:2;12554:10;12525:101;;;12641:6;12638:1;12635:13;12632:2;;;12706:1;12697:6;12692:3;12688:16;12681:27;12632:2;12502:219;;;;"
}
}
},
"sources": {
"test/TestLibs.sol": {
"id": 3
},
"src/libs/LibCoordinatorApproval.sol": {
"id": 0
},
"src/libs/LibEIP712Domain.sol": {
"id": 1
},
"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/LibCoordinatorApproval.sol\";\nimport \"../src/libs/LibZeroExTransaction.sol\";\n\n\ncontract TestLibs is\n LibCoordinatorApproval,\n LibZeroExTransaction\n{\n /// @dev Calculated the EIP712 hash of the Coordinator approval mesasage using the domain separator of this contract.\n /// @param approval Coordinator approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the Coordinator approval message with the domain separator of this contract.\n function publicGetCoordinatorApprovalHash(CoordinatorApproval memory approval)\n public\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = getCoordinatorApprovalHash(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/LibCoordinatorApproval.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 LibCoordinatorApproval is\n LibEIP712Domain\n{\n // Hash for the EIP712 Coordinator approval message\n bytes32 constant internal EIP712_Coordinator_APPROVAL_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"CoordinatorApproval(\",\n \"bytes32 transactionHash,\",\n \"bytes transactionSignature,\",\n \"uint256 approvalExpirationTimeSeconds\",\n \")\"\n ));\n\n struct CoordinatorApproval {\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 Coordinator approval mesasage using the domain separator of this contract.\n /// @param approval Coordinator approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the Coordinator approval message with the domain separator of this contract.\n function getCoordinatorApprovalHash(CoordinatorApproval memory approval)\n internal\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = hashEIP712Message(hashCoordinatorApproval(approval));\n return approvalHash;\n }\n\n /// @dev Calculated the EIP712 hash of the Coordinator approval mesasage with no domain separator.\n /// @param approval Coordinator approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the Coordinator approval message with no domain separator.\n function hashCoordinatorApproval(CoordinatorApproval memory approval)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_Coordinator_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_Coordinator_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": "0x3b6621340f3b596b4e0d4a7d3cab17a64f54b61312d53ca9b90831b420b3c6a9",
"compiler": {
"name": "solc",
"version": "0.5.5+commit.47a71e8f.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/greg/dev/0x-monorepo/contracts/tec/node_modules/@0x/contracts-utils",
"@0x/contracts-exchange-libs=/Users/greg/dev/0x-monorepo/contracts/tec/node_modules/@0x/contracts-exchange-libs"
]
}
},
"networks": {}
}