UNPKG

@oceanprotocol/keeper-contracts

Version:

Integration of TCRs, CPM and Ocean Tokens in Solidity

603 lines 33.9 kB
{ "abi": [ { "anonymous": false, "inputs": [ { "indexed": false, "name": "serviceTemplate", "type": "bytes32" }, { "indexed": false, "name": "condition", "type": "bytes32" }, { "indexed": false, "name": "provider", "type": "address" } ], "name": "SetupCondition", "type": "event", "signature": "0xec36701fadda0d20037815dd87b07204966040f00e9c0f5101b8df1e28a7fd29" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "serviceTemplateId", "type": "bytes32" }, { "indexed": false, "name": "provider", "type": "address" } ], "name": "SetupAgreementTemplate", "type": "event", "signature": "0xfc9fb7be661208a4b0e3dac92cac3c582a8845a9023dd5a3b0b9ac4286c45fe1" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "serviceAgreementId", "type": "bytes32" }, { "indexed": false, "name": "condition", "type": "bytes32" }, { "indexed": false, "name": "did", "type": "bytes32" }, { "indexed": false, "name": "status", "type": "bool" }, { "indexed": false, "name": "templateOwner", "type": "address" }, { "indexed": false, "name": "consumer", "type": "address" } ], "name": "ExecuteCondition", "type": "event", "signature": "0xbd82e7ff93e27f0baf2320f8cfc23d2e24dad532e3e45ce11b227eeff11d874e" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "serviceAgreementId", "type": "bytes32" }, { "indexed": false, "name": "templateId", "type": "bytes32" }, { "indexed": false, "name": "did", "type": "bytes32" }, { "indexed": false, "name": "status", "type": "bool" }, { "indexed": false, "name": "templateOwner", "type": "address" }, { "indexed": false, "name": "consumer", "type": "address" }, { "indexed": false, "name": "state", "type": "bool" } ], "name": "ExecuteAgreement", "type": "event", "signature": "0x02f4e4cbde0b4c4a5ca38e71b7440b62d1ea776a206795eab0e8e08e30c59a8d" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "serviceAgreementId", "type": "bytes32" }, { "indexed": false, "name": "templateId", "type": "bytes32" }, { "indexed": false, "name": "condition", "type": "bytes32" } ], "name": "ConditionFulfilled", "type": "event", "signature": "0x72441ea9864ea2b53241fbe77e3de1d358281107ca9e4dd669dd7c6a91d411f9" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "serviceAgreementId", "type": "bytes32" }, { "indexed": false, "name": "templateId", "type": "bytes32" }, { "indexed": false, "name": "owner", "type": "address" } ], "name": "AgreementFulfilled", "type": "event", "signature": "0xdaa374b93bc4c8d37af73993d946a8d4cbaa31db7f22edfabe29418a97c49c34" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "templateId", "type": "bytes32" }, { "indexed": false, "name": "state", "type": "bool" } ], "name": "SLATemplateRevoked", "type": "event", "signature": "0x8ffa8a0ebd3979e33b1ea2a6d52f914dc8fb932af766cfdb8db4c9b590bcab54" }, { "constant": false, "inputs": [ { "name": "templateId", "type": "bytes32" }, { "name": "contracts", "type": "address[]" }, { "name": "fingerprints", "type": "bytes4[]" }, { "name": "dependenciesBits", "type": "uint256[]" }, { "name": "service", "type": "bytes32" }, { "name": "fulfillmentIndices", "type": "uint8[]" }, { "name": "fulfillmentOperator", "type": "uint8" } ], "name": "setupAgreementTemplate", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function", "signature": "0x2939af71" }, { "constant": false, "inputs": [ { "name": "templateId", "type": "bytes32" }, { "name": "signature", "type": "bytes" }, { "name": "consumer", "type": "address" }, { "name": "valueHashes", "type": "bytes32[]" }, { "name": "timeoutValues", "type": "uint256[]" }, { "name": "serviceAgreementId", "type": "bytes32" }, { "name": "did", "type": "bytes32" } ], "name": "executeAgreement", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function", "signature": "0xdc554fa6" }, { "constant": false, "inputs": [ { "name": "serviceId", "type": "bytes32" } ], "name": "fulfillAgreement", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function", "signature": "0x43d9e78e" }, { "constant": false, "inputs": [ { "name": "serviceId", "type": "bytes32" }, { "name": "fingerprint", "type": "bytes4" }, { "name": "valueHash", "type": "bytes32" } ], "name": "fulfillCondition", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function", "signature": "0xed25e7c9" }, { "constant": false, "inputs": [ { "name": "templateId", "type": "bytes32" } ], "name": "revokeAgreementTemplate", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function", "signature": "0x43835b35" }, { "constant": true, "inputs": [ { "name": "serviceId", "type": "bytes32" } ], "name": "getTemplateId", "outputs": [ { "name": "templateId", "type": "bytes32" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x0c37eaf9" }, { "constant": true, "inputs": [ { "name": "templateId", "type": "bytes32" } ], "name": "getTemplateStatus", "outputs": [ { "name": "status", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x4cb62de8" }, { "constant": true, "inputs": [ { "name": "serviceId", "type": "bytes32" }, { "name": "condition", "type": "bytes32" } ], "name": "hasUnfulfilledDependencies", "outputs": [ { "name": "status", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x5f9766f5" }, { "constant": true, "inputs": [ { "name": "serviceId", "type": "bytes32" }, { "name": "condition", "type": "bytes32" } ], "name": "conditionTimedOut", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0xe48d5c44" }, { "constant": true, "inputs": [], "name": "getCurrentBlockNumber", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x6fd902e1" }, { "constant": true, "inputs": [ { "name": "serviceId", "type": "bytes32" }, { "name": "condition", "type": "bytes32" } ], "name": "getConditionStatus", "outputs": [ { "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0xca7e4fd0" }, { "constant": true, "inputs": [ { "name": "serviceId", "type": "bytes32" } ], "name": "getAgreementStatus", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0xcbc3a796" }, { "constant": true, "inputs": [ { "name": "serviceId", "type": "bytes32" } ], "name": "getAgreementPublisher", "outputs": [ { "name": "publisher", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x9ed4858a" }, { "constant": true, "inputs": [ { "name": "templateId", "type": "bytes32" } ], "name": "getTemplateOwner", "outputs": [ { "name": "owner", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x3f03415d" }, { "constant": true, "inputs": [ { "name": "serviceId", "type": "bytes32" } ], "name": "getServiceAgreementConsumer", "outputs": [ { "name": "consumer", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x5349a8ae" }, { "constant": true, "inputs": [ { "name": "serviceId", "type": "bytes32" }, { "name": "_contract", "type": "address" }, { "name": "fingerprint", "type": "bytes4" } ], "name": "getConditionByFingerprint", "outputs": [ { "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0xfbb7f209" }, { "constant": true, "inputs": [ { "name": "serviceAgreementId", "type": "bytes32" } ], "name": "isAgreementTerminated", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x576f2124" } ], "bytecode": "0x608060405234801561001057600080fd5b50612953806100206000396000f3006080604052600436106100f05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630c37eaf981146100f55780632939af711461011f5780633f03415d1461024457806343835b351461027857806343d9e78e146102905780634cb62de8146102a85780635349a8ae146102c0578063576f2124146102d85780635f9766f5146102f05780636fd902e11461030b5780639ed4858a14610320578063ca7e4fd014610338578063cbc3a79614610369578063dc554fa614610381578063e48d5c441461046a578063ed25e7c914610485578063fbb7f209146104ad575b600080fd5b34801561010157600080fd5b5061010d6004356104de565b60408051918252519081900360200190f35b34801561012b57600080fd5b5060408051602060046024803582810135848102808701860190975280865261023096843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375050604080516020808901358a01803580830284810184018652818552999c8b359c909b909a9501985092965081019450909250829190850190849080828437509497505050923560ff1693506104f392505050565b604080519115158252519081900360200190f35b34801561025057600080fd5b5061025c600435610b80565b60408051600160a060020a039092168252519081900360200190f35b34801561028457600080fd5b50610230600435610ba0565b34801561029c57600080fd5b50610230600435610d29565b3480156102b457600080fd5b50610230600435611189565b3480156102cc57600080fd5b5061025c60043561119e565b3480156102e457600080fd5b506102306004356111bc565b3480156102fc57600080fd5b506102306004356024356111d7565b34801561031757600080fd5b5061010d61136c565b34801561032c57600080fd5b5061025c600435611371565b34801561034457600080fd5b5061035360043560243561138f565b6040805160ff9092168252519081900360200190f35b34801561037557600080fd5b506102306004356113e5565b34801561038d57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261023095833595369560449491939091019190819084018382808284375050604080516020808901358a01803580830284810184018652818552999c600160a060020a038c35169c909b909a950198509296508101945090925082919085019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497505084359550505060209092013591506113fa9050565b34801561047657600080fd5b50610230600435602435611a4c565b34801561049157600080fd5b50610230600435600160e060020a031960243516604435611a9c565b3480156104b957600080fd5b5061010d600435600160a060020a0360243516600160e060020a031960443516611f0a565b60009081526002602052604090206003015490565b6000878152600160205260408120548190899060ff161561055e576040805160e560020a62461bcd02815260206004820152601a60248201527f54656d706c61746520494420616c726561647920657869737473000000000000604482015290519081900360640190fd5b87518951146105dd576040805160e560020a62461bcd02815260206004820152602e60248201527f66696e6765727072696e747320616e6420636f6e747261637473206c656e677460448201527f6820646f206e6f74206d61746368000000000000000000000000000000000000606482015290519081900360840190fd5b865189511461065c576040805160e560020a62461bcd02815260206004820152602760248201527f636f6e74726163747320616e6420646570656e64656e6369657320646f206e6f60448201527f74206d6174636800000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b8851855111156106b6576040805160e560020a62461bcd02815260206004820152601b60248201527f496e76616c69642066756c66696c6c6d656e7420696e64696365730000000000604482015290519081900360640190fd5b845160ff85161115610712576040805160e560020a62461bcd02815260206004820152601c60248201527f496e76616c69642066756c66696c6c6d656e74206f70657261746f7200000000604482015290519081900360640190fd5b6040805160c081018252600181523360208083019190915282516000808252918101845291928301919050815260208082018a9052604080830189905260ff881660609093019290925260008d81526001808352908390208451815486850151600160a060020a03166101000274ffffffffffffffffffffffffffffffffffffffff001992151560ff1990921691909117919091161781559284015180516107c2939285019291909101906127c5565b50606082015180516107de916002840191602090910190612812565b50608082015180516107fa91600384019160209091019061284d565b5060a091909101516004909101805460ff191660ff909216919091179055600091505b8851821015610b365760008a81526001602081905260409091208a519101908b908b908590811061084a57fe5b906020019060200201518a8581518110151561086257fe5b6020908102919091018101516040805180840195909552600160a060020a03939093166c010000000000000000000000000284840152600160e060020a031916605484015281518084036038018152605890930191829052825182918401908083835b602083106108e45780518252601f1990920191602091820191016108c5565b51815160209384036101000a6000190180199092169116179052604051919093018190039020855460018101875560009687529286209092019190915550508a518492915081908d908d908590811061093957fe5b906020019060200201518c8781518110151561095157fe5b6020908102919091018101516040805180840195909552600160a060020a03939093166c010000000000000000000000000284840152600160e060020a031916605484015281518084036038018152605890930191829052825182918401908083835b602083106109d35780518252601f1990920191602091820191016109b4565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916600019168152602001908152602001600020819055507fec36701fadda0d20037815dd87b07204966040f00e9c0f5101b8df1e28a7fd298a8b8b85815181101515610a4b57fe5b906020019060200201518b86815181101515610a6357fe5b6020908102919091018101516040805180840195909552600160a060020a03939093166c010000000000000000000000000284840152600160e060020a031916605484015281518084036038018152605890930191829052825182918401908083835b60208310610ae55780518252601f199092019160209182019101610ac6565b51815160001960209485036101000a019081169019919091161790526040805194909201849003842096845283019590955250338185015292519283900360600192915050a160019091019061081d565b604080518b815233602082015281517ffc9fb7be661208a4b0e3dac92cac3c582a8845a9023dd5a3b0b9ac4286c45fe1929181900390910190a15060019998505050505050505050565b6000908152600160205260409020546101009004600160a060020a031690565b60008181526001602052604081205482906101009004600160a060020a03163314610c15576040805160e560020a62461bcd02815260206004820152601460248201527f4e6f7420612074656d706c617465206f776e6572000000000000000000000000604482015290519081900360640190fd5b8260005b600082815260036020526040902054811015610cce5760008281526003602052604081208054600292919084908110610c4e57fe5b6000918252602080832090910154835282019290925260400190205460ff161515600114610cc6576040805160e560020a62461bcd02815260206004820152601e60248201527f4f776e65722063616e206e6f74207265766f6b652074656d706c617465210000604482015290519081900360640190fd5b600101610c19565b600085815260016020818152604092839020805460ff1916905582518881529081019190915281517f8ffa8a0ebd3979e33b1ea2a6d52f914dc8fb932af766cfdb8db4c9b590bcab54929181900390910190a1505050919050565b600081600080600060016000610d3e866104de565b815260208101919091526040016000206004015460ff161515610ea557600092505b60016000610d6d866104de565b8152602081019190915260400160002060030154831015610ea0576000848152600260205260408120600190810191610da5876104de565b81526020810191909152604001600020600301805485908110610dc457fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff16815481101515610df357fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff166001141515610e95576040805160e560020a62461bcd02815260206004820152603560248201527f496e6469636174696e67206f6e65206f66207468652066756c66696c6c6d656e60448201527f7420636f6e646974696f6e732069732066616c73650000000000000000000000606482015290519081900360840190fd5b600190920191610d60565b6110f6565b5060009050805b60016000610eb9866104de565b8152602081019190915260400160002060030154811015610f79576000848152600260205260408120600190810191610ef1876104de565b81526020810191909152604001600020600301805483908110610f1057fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff16815481101515610f3f57fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff1660011415610f71576001820191505b600101610eac565b60016000610f86866104de565b815260208101919091526040016000206004015460ff166001141561102657600160ff831614611026576040805160e560020a62461bcd02815260206004820152602f60248201527f496e6469636174696e6720616c6c2066756c66696c6c6d656e7420636f6e646960448201527f74696f6e73206172652066616c73650000000000000000000000000000000000606482015290519081900360840190fd5b6001806000611034876104de565b815260208101919091526040016000206004015460ff1611156110f6576001600061105e866104de565b815260208101919091526040016000206004015460ff90811690831610156110f6576040805160e560020a62461bcd02815260206004820152603260248201527f496e6469636174696e67204e206f66204d2066756c66696c6c6d656e7420636f60448201527f6e646974696f6e73206172652066616c73650000000000000000000000000000606482015290519081900360840190fd5b6000868152600260209081526040808320805462010000600160ff19909216821762ff00001916178255600390910154808552908352928190205481518a815292830193909352610100909204600160a060020a03168183015290517fdaa374b93bc4c8d37af73993d946a8d4cbaa31db7f22edfabe29418a97c49c34916060908290030190a150600195945050505050565b60009081526001602052604090205460ff1690565b600090815260026020526040902060040154600160a060020a031690565b60009081526002602052604090205462010000900460ff1690565b6000828152600260208181526040808420600301548452600182528084208585529184905283205491018054839283928392909190811061121457fe5b9060005260206000200154925082600014156112335760009350611363565b600091505b6000868152600260209081526040808320600301548352600191829052909120015461ffff8316101561135e57611273838360006002611fc3565b60ff161561135357611289838360016002611fc3565b90508060ff1660011415611303576000868152600260205260409020600101805461ffff84169081106112b857fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff16600114806112f057506112ee8686611a4c565b155b156112fe5760019350611363565b611353565b6000868152600260205260409020600101805461ffff841690811061132457fe5b60009182526020918290209181049091015460ff601f9092166101000a90041615156113535760019350611363565b600190910190611238565b600093505b50505092915050565b435b90565b600090815260026020526040902060050154600160a060020a031690565b6000828152600260209081526040808320848452918390528220546001909101805490919081106113bc57fe5b90600052602060002090602091828204019190069054906101000a900460ff1690505b92915050565b60009081526002602052604090205460ff1690565b6000878152600160208190526040822054829182918b91879160ff1615151461146d576040805160e560020a62461bcd02815260206004820152601360248201527f54656d706c617465206973207265766f6b656400000000000000000000000000604482015290519081900360640190fd5b600081815260026020526040902054610100900460ff16156114d9576040805160e560020a62461bcd02815260206004820152601860248201527f496e6469636174696e67205265706c61792061747461636b0000000000000000604482015290519081900360640190fd5b60008c81526001602081905260409091200154885114611543576040805160e560020a62461bcd02815260206004820152601d60248201527f696e76616c69642074696d656f75742076616c756573206c656e677468000000604482015290519081900360640190fd5b600160008d60001916600019168152602001908152602001600020935061168c8c856001018b8b8b60405160200180866000191660001916815260200185805480156115af57602002820191906000526020600020905b8154815260019091019060200180831161159a575b505084516020808701910280838360005b838110156115d85781810151838201526020016115c0565b50505050905001838051906020019060200280838360005b838110156116085781810151838201526020016115f0565b50505050919091019283525050604080518083038152602092830191829052805190965090945084935090850191508083835b6020831061165a5780518252601f19909201916020918201910161163b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020611fee565b9250611699838c8c612098565b156119ca5760408051610160810182526000808252600160208084019190915282840182905283518281528082018552606084015283518281529081019093529091608083019150815260208082018f9052600160a060020a038d166040808401919091523360608401528051600080825281840183526080850191909152815181815292830190915260a09092019150815260209081018890526000898152600282526040908190208351815485850151938601511515620100000262ff0000199415156101000261ff001993151560ff199093169290921792909216179290921691909117815560608301518051919261179d9260018501929091019061284d565b50608082015180516117b991600284019160209091019061284d565b5060a0820151600382015560c0820151600482018054600160a060020a0392831673ffffffffffffffffffffffffffffffffffffffff199182161790915560e084015160058401805491909316911617905561010082015180516118279160068401916020909101906127c5565b506101208201518051611844916007840191602090910190612812565b5061014091909101516008909101556118608c888b8b8a6120c1565b15156118b6576040805160e560020a62461bcd02815260206004820152601960248201527f756e61626c6520746f20696e697420636f6e646974696f6e7300000000000000604482015290519081900360640190fd5b600360008d600019166000191681526020019081526020016000208790806001815401808255809150509060018203906000526020600020016000909192909190915090600019169055507f02f4e4cbde0b4c4a5ca38e71b7440b62d1ea776a206795eab0e8e08e30c59a8d878d8860008860000160019054906101000a9004600160a060020a03168f6001604051808860001916600019168152602001876000191660001916815260200186600019166000191681526020018515151515815260200184600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a031681526020018215151515815260200197505050505050505060405180910390a1611a3a565b835460408051898152602081018f9052808201899052600060608201819052600160a060020a0361010090940484166080830152928d1660a082015260c0810192909252517f02f4e4cbde0b4c4a5ca38e71b7440b62d1ea776a206795eab0e8e08e30c59a8d9181900360e00190a15b5060019b9a5050505050505050505050565b600082815260026020908152604080832084845291839052822054600790910180549091908110611a7957fe5b9060005260206000200154421115611a93575060016113df565b50600092915050565b60008060008585856000611ab1843385611f0a565b6040805160208082018490528183018690528251808303840181526060909201928390528151939450909282918401908083835b60208310611b045780518252601f199092019160209182019101611ae5565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060008a8152600283528481208882529281905293909320546006909101805493955093509182109050611b5b57fe5b60009182526020909120015414611be2576040805160e560020a62461bcd02815260206004820152602e60248201527f756e61626c6520746f207265636f6e737472756374207468652072696768742060448201527f636f6e646974696f6e2068617368000000000000000000000000000000000000606482015290519081900360840190fd5b60008481526002602081815260408084208585529184905290922054910180549091908110611c0d57fe5b60009182526020918290209181049091015460ff601f9092166101000a90041615611ca8576040805160e560020a62461bcd02815260206004820152602860248201527f5468697320636f6e646974696f6e206973206c6f636b65642c2061636365737360448201527f2064656e6965642e000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b611cb284826111d7565b15611d2d576040805160e560020a62461bcd02815260206004820152602960248201527f5468697320636f6e646974696f6e2068617320756e66756c66696c6c6564206460448201527f6570656e64656e63790000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008a815260026020908152604091829020600301548251808301919091526c01000000000000000000000000330281840152600160e060020a03198c1660548201528251603881830301815260589091019283905280519092918291908401908083835b60208310611db15780518252601f199092019160209182019101611d92565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902095506001600260008c60001916600019168152602001908152602001600020600101600080896000191660001916815260200190815260200160002054815481101515611e2757fe5b6000918252602080832081830401805460ff958616601f9094166101000a93840295909302199092169390931790558b815260028083526040808320600301548352600184528083208a84529383905290912054910180549091908110611e8a57fe5b60009182526020909120015494508415611ea957611ea98a8787612532565b60008a8152600260209081526040918290206003015482518d81529182015280820188905290517f72441ea9864ea2b53241fbe77e3de1d358281107ca9e4dd669dd7c6a91d411f99181900360600190a15060019998505050505050505050565b6000611f15846104de565b604080516020808201939093526c01000000000000000000000000600160a060020a0387160281830152600160e060020a03198516605482015281516038818303018152605890910191829052805190928291908401908083835b60208310611f8f5780518252601f199092019160209182019101611f70565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120979650505050505050565b600060ff61ffff85840285011660020a86161615611fe2576001611fe5565b60005b95945050505050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c80830185905283518084039091018152605c909201928390528151600093918291908401908083835b602083106120665780518252601f199092019160209182019101612047565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b60006120a484846126f5565b600160a060020a031682600160a060020a03161490509392505050565b6000805b600087815260016020819052604090912001548110156125255783818151811015156120ed57fe5b6020908102909101015115612201576002848281518110151561210c57fe5b60209081029091010151116121b7576040805160e560020a62461bcd02815260206004820152606060248201527f696e76616c69642074696d656f757420776974682061206d617267696e20287e60448201527f20333020746f203430207365636f6e6473203d203220626c6f636b7320696e7460648201527f657276616c732920746f2061766f6964207261636520636f6e646974696f6e73608482015290519081900360a40190fd5b600086815260026020526040902084516007909101908590839081106121d957fe5b6020908102909101810151825460018101845560009384529190922042909201910155612225565b60008681526002602090815260408220600701805460018101825590835290822001555b600086815260026020818152604080842060018082018054808301825590875284872085820401805460ff601f93841661010090810a820219909216909255968401805480850182559089528689208782040180549190931690970a02199095169094558b855291839052909220018054600690920191839081106122a657fe5b906000526020600020015486838151811015156122bf57fe5b6020908102909101810151604080518084019490945283810191909152805180840382018152606090930190819052825190918291908401908083835b6020831061231b5780518252601f1990920191602091820191016122fc565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208654600180820189556000988952838920909101919091558d875290819052919094200180547fbd82e7ff93e27f0baf2320f8cfc23d2e24dad532e3e45ce11b227eeff11d874e94508a93509091508490811061239c57fe5b906000526020600020015487848151811015156123b557fe5b6020908102909101810151604080518084019490945283810191909152805180840382018152606090930190819052825190918291908401908083835b602083106124115780518252601f1990920191602091820191016123f2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020856000600160008d6000191660001916815260200190815260200160002060000160019054906101000a9004600160a060020a0316600260008d6000191660001916815260200190815260200160002060040160009054906101000a9004600160a060020a0316604051808760001916600019168152602001866000191660001916815260200185600019166000191681526020018415151515815260200183600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a03168152602001965050505050505060405180910390a16001016120c5565b5060019695505050505050565b6000805b6000858152600260209081526040808320600301548352600191829052909120015461ffff831610156126ee57612571838360006002611fc3565b60ff16156126e357612587838360016002611fc3565b600086815260026020526040902060010180549192509061ffff84169081106125ac57fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff16600114806125f057508060ff1660011480156125f057506125f08585611a4c565b1515612692576040805160e560020a62461bcd02815260206004820152605460248201527f496e76616c69642073746174652c206368696c6420646570656e64656e63792060448201527f657870656374656420746f2062652066756c66696c6c6564206f72207061726560648201527f6e742074696d656f7574206f636375727265642e000000000000000000000000608482015290519081900360a40190fd5b60008581526002602081905260409091200180546001919061ffff85169081106126b857fe5b90600052602060002090602091828204019190066101000a81548160ff021916908360ff1602179055505b600190910190612536565b5050505050565b6000806000808451604114151561270f5760009350611363565b50505060208201516040830151606084015160001a601b60ff8216101561273457601b015b8060ff16601b1415801561274c57508060ff16601c14155b1561275a5760009350611363565b60408051600080825260208083018085528a905260ff8516838501526060830187905260808301869052925160019360a0808501949193601f19840193928390039091019190865af11580156127b4573d6000803e3d6000fd5b505050602060405103519350611363565b828054828255906000526020600020908101928215612802579160200282015b8281111561280257825182556020909201916001909101906127e5565b5061280e9291506128ef565b5090565b828054828255906000526020600020908101928215612802579160200282015b82811115612802578251825591602001919060010190612832565b82805482825590600052602060002090601f016020900481019282156128e35791602002820160005b838211156128b457835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302612876565b80156128e15782816101000a81549060ff02191690556001016020816000010492830192600103026128b4565b505b5061280e929150612909565b61136e91905b8082111561280e57600081556001016128f5565b61136e91905b8082111561280e57805460ff1916815560010161290f5600a165627a7a72305820c156ab725840056d834df6e15ec4b57f717b42606df2cfaeefa66f3096662bb10029", "address": "0x905372C0ACFddC4c8E1ecAa14A7386ec451366F2" }