Source Code
Overview
ETH Balance
0 ETH
More Info
ContractCreator
Multichain Info
N/A
Latest 25 from a total of 261 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Submit Preimage | 528978 | 360 days ago | IN | 0 ETH | 0.00021868 | ||||
Submit Hash | 528977 | 360 days ago | IN | 0 ETH | 0.00007685 | ||||
Submit Preimage | 528775 | 360 days ago | IN | 0 ETH | 0.00021362 | ||||
Submit Hash | 528773 | 360 days ago | IN | 0 ETH | 0.00007685 | ||||
Submit Preimage | 523400 | 361 days ago | IN | 0 ETH | 0.00020856 | ||||
Submit Hash | 523398 | 361 days ago | IN | 0 ETH | 0.00007685 | ||||
Submit Preimage | 523320 | 361 days ago | IN | 0 ETH | 0.0002035 | ||||
Submit Preimage | 523320 | 361 days ago | IN | 0 ETH | 0.00016303 | ||||
Submit Preimage | 523319 | 361 days ago | IN | 0 ETH | 0.00015228 | ||||
Submit Preimage | 523319 | 361 days ago | IN | 0 ETH | 0.00015734 | ||||
Submit Preimage | 523319 | 361 days ago | IN | 0 ETH | 0.00016302 | ||||
Submit Preimage | 523319 | 361 days ago | IN | 0 ETH | 0.00016303 | ||||
Submit Hash | 523318 | 361 days ago | IN | 0 ETH | 0.00007685 | ||||
Submit Hash | 523318 | 361 days ago | IN | 0 ETH | 0.00007684 | ||||
Submit Hash | 523318 | 361 days ago | IN | 0 ETH | 0.00007685 | ||||
Submit Hash | 523318 | 361 days ago | IN | 0 ETH | 0.00007685 | ||||
Submit Hash | 523317 | 361 days ago | IN | 0 ETH | 0.00007685 | ||||
Submit Hash | 523317 | 361 days ago | IN | 0 ETH | 0.00007685 | ||||
Submit Preimage | 523285 | 361 days ago | IN | 0 ETH | 0.00015797 | ||||
Submit Preimage | 523284 | 361 days ago | IN | 0 ETH | 0.00014722 | ||||
Submit Preimage | 523283 | 361 days ago | IN | 0 ETH | 0.00019844 | ||||
Submit Preimage | 523283 | 361 days ago | IN | 0 ETH | 0.00015797 | ||||
Submit Hash | 523282 | 361 days ago | IN | 0 ETH | 0.00007685 | ||||
Submit Hash | 523282 | 361 days ago | IN | 0 ETH | 0.00007685 | ||||
Submit Preimage | 523282 | 361 days ago | IN | 0 ETH | 0.00015228 |
Loading...
Loading
Contract Name:
HashVerification
Compiler Version
v0.5.0+commit.1d4f565a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-29 */ // SPDX-License-Identifier: MIT pragma solidity ^0.5.0; contract HashVerification { struct StateCheck { bytes32 submittedHash; bytes32 submittedPreimage; bool verified; uint256 blockNumber; } mapping(address => mapping(address => StateCheck[])) public stateChecks; modifier onlyOriginatorBank(address _originatorBank) { require(msg.sender == _originatorBank, "Only the originator bank can use this function"); _; } modifier onlyRecipientBank(address _recipientBank) { require(msg.sender == _recipientBank, "Only the recipient bank can use this function"); _; } modifier preimageNotSubmitted( address _originatorBank, address _recipientBank, uint256 _blockNumber ) { StateCheck[] storage senderStateChecks = stateChecks[_originatorBank][_recipientBank]; require(senderStateChecks.length > 0, "No submissions found for the given parties"); bool found = false; for (uint256 i = 0; i < senderStateChecks.length; i++) { if ( senderStateChecks[i].blockNumber == _blockNumber && senderStateChecks[i].verified ) { found = true; break; } } require(!found, "Preimage already submitted and verified for the given blockNumber"); _; } constructor() public {} function submitHash( address _originatorBank, address _recipientBank, bytes32 _hash ) external onlyOriginatorBank(_originatorBank) { uint256 currentBlock = block.number; stateChecks[_originatorBank][_recipientBank].push( StateCheck({ submittedHash: _hash, submittedPreimage: bytes32(0), verified: false, blockNumber: currentBlock }) ); } function submitPreimage( address _originatorBank, address _recipientBank, bytes32 _preimage, uint256 _blockNumber ) external onlyRecipientBank(_recipientBank) preimageNotSubmitted(_originatorBank, _recipientBank, _blockNumber){ StateCheck[] storage senderStateChecks = stateChecks[_originatorBank][_recipientBank]; for (uint256 i = 0; i < senderStateChecks.length; i++) { if (!senderStateChecks[i].verified && senderStateChecks[i].blockNumber == _blockNumber) { senderStateChecks[i].submittedPreimage = _preimage; senderStateChecks[i].verified = keccak256(abi.encodePacked(_preimage)) == senderStateChecks[i].submittedHash; break; } } } function getPendingSubmissions( address _originatorBank, address _recipientBank ) external view onlyRecipientBank(_recipientBank) returns (uint256[] memory) { StateCheck[] storage senderStateChecks = stateChecks[_originatorBank][_recipientBank]; uint256[] memory pendingBlocks = new uint256[](senderStateChecks.length); uint256 pendingCount = 0; for (uint256 i = 0; i < senderStateChecks.length; i++) { if (!senderStateChecks[i].verified) { pendingBlocks[pendingCount] = senderStateChecks[i].blockNumber; pendingCount++; } } // Resize the array to the number of pending blocks assembly { mstore(pendingBlocks, pendingCount) } return pendingBlocks; } function getStateCheckByIndex( address _originatorBank, address _recipientBank, uint256 index ) external view returns ( bytes32 submittedHash, bytes32 submittedPreimage, bool verified, uint256 blockNumber ) { StateCheck storage stateCheck = stateChecks[_originatorBank][_recipientBank][index]; return ( stateCheck.submittedHash, stateCheck.submittedPreimage, stateCheck.verified, stateCheck.blockNumber ); } function getStateCheckByBlockNumber( address _originatorBank, address _recipientBank, uint256 _blockNumber ) external view returns ( bytes32 submittedHash, bytes32 submittedPreimage, bool verified, uint256 blockNumber ) { StateCheck[] storage senderStateChecks = stateChecks[_originatorBank][_recipientBank]; for (uint256 i = 0; i < senderStateChecks.length; i++) { if (senderStateChecks[i].blockNumber == _blockNumber) { return ( senderStateChecks[i].submittedHash, senderStateChecks[i].submittedPreimage, senderStateChecks[i].verified, senderStateChecks[i].blockNumber ); } } revert("No state check found for the given blockNumber"); } function version() external pure returns (string memory) { return "1.0.0"; } }
[{"constant":false,"inputs":[{"name":"_originatorBank","type":"address"},{"name":"_recipientBank","type":"address"},{"name":"_preimage","type":"bytes32"},{"name":"_blockNumber","type":"uint256"}],"name":"submitPreimage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_originatorBank","type":"address"},{"name":"_recipientBank","type":"address"},{"name":"_hash","type":"bytes32"}],"name":"submitHash","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"stateChecks","outputs":[{"name":"submittedHash","type":"bytes32"},{"name":"submittedPreimage","type":"bytes32"},{"name":"verified","type":"bool"},{"name":"blockNumber","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_originatorBank","type":"address"},{"name":"_recipientBank","type":"address"},{"name":"index","type":"uint256"}],"name":"getStateCheckByIndex","outputs":[{"name":"submittedHash","type":"bytes32"},{"name":"submittedPreimage","type":"bytes32"},{"name":"verified","type":"bool"},{"name":"blockNumber","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_originatorBank","type":"address"},{"name":"_recipientBank","type":"address"}],"name":"getPendingSubmissions","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_originatorBank","type":"address"},{"name":"_recipientBank","type":"address"},{"name":"_blockNumber","type":"uint256"}],"name":"getStateCheckByBlockNumber","outputs":[{"name":"submittedHash","type":"bytes32"},{"name":"submittedPreimage","type":"bytes32"},{"name":"verified","type":"bool"},{"name":"blockNumber","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]
Contract Creation Code
608060405234801561001057600080fd5b5061117d806100206000396000f3fe608060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632eb0562514610088578063542686b01461010d57806354fd4d501461018857806396535fed14610218578063a7f0ab94146102c0578063c392db8414610368578063d80e96d51461042e575b600080fd5b34801561009457600080fd5b5061010b600480360360808110156100ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506104d6565b005b34801561011957600080fd5b506101866004803603606081101561013057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109c0565b005b34801561019457600080fd5b5061019d610ba6565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101dd5780820151818401526020810190506101c2565b50505050905090810190601f16801561020a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022457600080fd5b506102916004803603606081101561023b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610be3565b604051808581526020018481526020018315151515815260200182815260200194505050505060405180910390f35b3480156102cc57600080fd5b50610339600480360360608110156102e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c49565b604051808581526020018481526020018315151515815260200182815260200194505050505060405180910390f35b34801561037457600080fd5b506103d76004803603604081101561038b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d1c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561041a5780820151818401526020810190506103ff565b505050509050019250505060405180910390f35b34801561043a57600080fd5b506104a76004803603606081101561045157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f4c565b604051808581526020018481526020018315151515815260200182815260200194505050505060405180910390f35b828073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f4f6e6c792074686520726563697069656e742062616e6b2063616e207573652081526020017f746869732066756e6374696f6e0000000000000000000000000000000000000081525060400191505060405180910390fd5b84848360008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081805490501115156106c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4e6f207375626d697373696f6e7320666f756e6420666f72207468652067697681526020017f656e20706172746965730000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600080905060008090505b828054905081101561074d578383828154811015156106ea57fe5b9060005260206000209060040201600301541480156107325750828181548110151561071257fe5b906000526020600020906004020160020160009054906101000a900460ff165b15610740576001915061074d565b80806001019150506106cf565b5080151515610810576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260418152602001807f507265696d61676520616c7265616479207375626d697474656420616e64207681526020017f6572696669656420666f722074686520676976656e20626c6f636b4e756d626581526020017f720000000000000000000000000000000000000000000000000000000000000081525060600191505060405180910390fd5b60008060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008090505b81805490508110156109b25781818154811015156108af57fe5b906000526020600020906004020160020160009054906101000a900460ff161580156108f957508882828154811015156108e557fe5b906000526020600020906004020160030154145b156109a55789828281548110151561090d57fe5b906000526020600020906004020160010181905550818181548110151561093057fe5b9060005260206000209060040201600001548a604051602001808281526020019150506040516020818303038152906040528051906020012014828281548110151561097857fe5b906000526020600020906004020160020160006101000a81548160ff0219169083151502179055506109b2565b8080600101915050610895565b505050505050505050505050565b828073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4f6e6c7920746865206f726967696e61746f722062616e6b2063616e2075736581526020017f20746869732066756e6374696f6e00000000000000000000000000000000000081525060400191505060405180910390fd5b60004390506000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020608060405190810160405280858152602001600060010281526020016000151581526020018381525090806001815401808255809150509060018203906000526020600020906004020160009091929091909150600082015181600001556020820151816001015560408201518160020160006101000a81548160ff021916908315150217905550606082015181600301555050505050505050565b60606040805190810160405280600581526020017f312e302e30000000000000000000000000000000000000000000000000000000815250905090565b600060205282600052604060002060205281600052604060002081815481101515610c0a57fe5b906000526020600020906004020160009250925050508060000154908060010154908060020160009054906101000a900460ff16908060030154905084565b60008060008060008060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002086815481101515610cd957fe5b90600052602060002090600402019050806000015481600101548260020160009054906101000a900460ff16836003015494509450945094505093509350935093565b6060818073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610de8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f4f6e6c792074686520726563697069656e742062616e6b2063616e207573652081526020017f746869732066756e6374696f6e0000000000000000000000000000000000000081525060400191505060405180910390fd5b60008060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060608180549050604051908082528060200260200182016040528015610e9c5781602001602082028038833980820191505090505b509050600080905060008090505b8380549050811015610f3b578381815481101515610ec457fe5b906000526020600020906004020160020160009054906101000a900460ff161515610f2e578381815481101515610ef757fe5b9060005260206000209060040201600301548383815181101515610f1757fe5b906020019060200201818152505081806001019250505b8080600101915050610eaa565b508082528194505050505092915050565b60008060008060008060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008090505b81805490508110156110b357868282815481101515610ff257fe5b90600052602060002090600402016003015414156110a657818181548110151561101857fe5b906000526020600020906004020160000154828281548110151561103857fe5b906000526020600020906004020160010154838381548110151561105857fe5b906000526020600020906004020160020160009054906101000a900460ff16848481548110151561108557fe5b90600052602060002090600402016003015495509550955095505050611148565b8080600101915050610fd7565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4e6f20737461746520636865636b20666f756e6420666f72207468652067697681526020017f656e20626c6f636b4e756d62657200000000000000000000000000000000000081525060400191505060405180910390fd5b9350935093509356fea165627a7a72305820e005828b1f7ee29212f2adf94e262a0a3c54e425b67bf6e70b0c94e92e16bc9d0029
Deployed Bytecode
0x608060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632eb0562514610088578063542686b01461010d57806354fd4d501461018857806396535fed14610218578063a7f0ab94146102c0578063c392db8414610368578063d80e96d51461042e575b600080fd5b34801561009457600080fd5b5061010b600480360360808110156100ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506104d6565b005b34801561011957600080fd5b506101866004803603606081101561013057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109c0565b005b34801561019457600080fd5b5061019d610ba6565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101dd5780820151818401526020810190506101c2565b50505050905090810190601f16801561020a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022457600080fd5b506102916004803603606081101561023b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610be3565b604051808581526020018481526020018315151515815260200182815260200194505050505060405180910390f35b3480156102cc57600080fd5b50610339600480360360608110156102e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c49565b604051808581526020018481526020018315151515815260200182815260200194505050505060405180910390f35b34801561037457600080fd5b506103d76004803603604081101561038b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d1c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561041a5780820151818401526020810190506103ff565b505050509050019250505060405180910390f35b34801561043a57600080fd5b506104a76004803603606081101561045157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f4c565b604051808581526020018481526020018315151515815260200182815260200194505050505060405180910390f35b828073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f4f6e6c792074686520726563697069656e742062616e6b2063616e207573652081526020017f746869732066756e6374696f6e0000000000000000000000000000000000000081525060400191505060405180910390fd5b84848360008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081805490501115156106c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4e6f207375626d697373696f6e7320666f756e6420666f72207468652067697681526020017f656e20706172746965730000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600080905060008090505b828054905081101561074d578383828154811015156106ea57fe5b9060005260206000209060040201600301541480156107325750828181548110151561071257fe5b906000526020600020906004020160020160009054906101000a900460ff165b15610740576001915061074d565b80806001019150506106cf565b5080151515610810576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260418152602001807f507265696d61676520616c7265616479207375626d697474656420616e64207681526020017f6572696669656420666f722074686520676976656e20626c6f636b4e756d626581526020017f720000000000000000000000000000000000000000000000000000000000000081525060600191505060405180910390fd5b60008060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008090505b81805490508110156109b25781818154811015156108af57fe5b906000526020600020906004020160020160009054906101000a900460ff161580156108f957508882828154811015156108e557fe5b906000526020600020906004020160030154145b156109a55789828281548110151561090d57fe5b906000526020600020906004020160010181905550818181548110151561093057fe5b9060005260206000209060040201600001548a604051602001808281526020019150506040516020818303038152906040528051906020012014828281548110151561097857fe5b906000526020600020906004020160020160006101000a81548160ff0219169083151502179055506109b2565b8080600101915050610895565b505050505050505050505050565b828073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4f6e6c7920746865206f726967696e61746f722062616e6b2063616e2075736581526020017f20746869732066756e6374696f6e00000000000000000000000000000000000081525060400191505060405180910390fd5b60004390506000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020608060405190810160405280858152602001600060010281526020016000151581526020018381525090806001815401808255809150509060018203906000526020600020906004020160009091929091909150600082015181600001556020820151816001015560408201518160020160006101000a81548160ff021916908315150217905550606082015181600301555050505050505050565b60606040805190810160405280600581526020017f312e302e30000000000000000000000000000000000000000000000000000000815250905090565b600060205282600052604060002060205281600052604060002081815481101515610c0a57fe5b906000526020600020906004020160009250925050508060000154908060010154908060020160009054906101000a900460ff16908060030154905084565b60008060008060008060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002086815481101515610cd957fe5b90600052602060002090600402019050806000015481600101548260020160009054906101000a900460ff16836003015494509450945094505093509350935093565b6060818073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610de8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f4f6e6c792074686520726563697069656e742062616e6b2063616e207573652081526020017f746869732066756e6374696f6e0000000000000000000000000000000000000081525060400191505060405180910390fd5b60008060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060608180549050604051908082528060200260200182016040528015610e9c5781602001602082028038833980820191505090505b509050600080905060008090505b8380549050811015610f3b578381815481101515610ec457fe5b906000526020600020906004020160020160009054906101000a900460ff161515610f2e578381815481101515610ef757fe5b9060005260206000209060040201600301548383815181101515610f1757fe5b906020019060200201818152505081806001019250505b8080600101915050610eaa565b508082528194505050505092915050565b60008060008060008060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008090505b81805490508110156110b357868282815481101515610ff257fe5b90600052602060002090600402016003015414156110a657818181548110151561101857fe5b906000526020600020906004020160000154828281548110151561103857fe5b906000526020600020906004020160010154838381548110151561105857fe5b906000526020600020906004020160020160009054906101000a900460ff16848481548110151561108557fe5b90600052602060002090600402016003015495509550955095505050611148565b8080600101915050610fd7565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4e6f20737461746520636865636b20666f756e6420666f72207468652067697681526020017f656e20626c6f636b4e756d62657200000000000000000000000000000000000081525060400191505060405180910390fd5b9350935093509356fea165627a7a72305820e005828b1f7ee29212f2adf94e262a0a3c54e425b67bf6e70b0c94e92e16bc9d0029
Deployed Bytecode Sourcemap
60:5258:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2004:832;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2004:832:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2004:832:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1499:497;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1499:497:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1499:497:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5225:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5225:90:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5225:90:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;249:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;249:71:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;249:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3691:592;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3691:592:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3691:592:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2844:839;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2844:839:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2844:839:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2844:839:0;;;;;;;;;;;;;;;;;4291:926;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4291:926:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4291:926:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2004:832;2188:14;593;579:28;;:10;:28;;;571:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:15;2242:14;2258:12;831:38;872:11;:28;884:15;872:28;;;;;;;;;;;;;;;:44;901:14;872:44;;;;;;;;;;;;;;;831:85;;964:1;937:17;:24;;;;:28;929:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1025:10;1038:5;1025:18;;1059:9;1071:1;1059:13;;1054:288;1078:17;:24;;;;1074:1;:28;1054:288;;;1182:12;1146:17;1164:1;1146:20;;;;;;;;;;;;;;;;;;;;:32;;;:48;:98;;;;;1215:17;1233:1;1215:20;;;;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;1146:98;1124:207;;;1287:4;1279:12;;1310:5;;1124:207;1104:3;;;;;;;1054:288;;;;1363:5;1362:6;1354:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2284:38;2325:11;:28;2337:15;2325:28;;;;;;;;;;;;;;;:44;2354:14;2325:44;;;;;;;;;;;;;;;2284:85;;2387:9;2399:1;2387:13;;2382:447;2406:17;:24;;;;2402:1;:28;2382:447;;;2457:17;2475:1;2457:20;;;;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;2456:30;:82;;;;;2526:12;2490:17;2508:1;2490:20;;;;;;;;;;;;;;;;;;;;:32;;;:48;2456:82;2452:366;;;2600:9;2559:17;2577:1;2559:20;;;;;;;;;;;;;;;;;;;;:38;;:50;;;;2744:17;2762:1;2744:20;;;;;;;;;;;;;;;;;;;;:34;;;2708:9;2691:27;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2691:27:0;;;2681:38;;;;;;:97;2628:17;2646:1;2628:20;;;;;;;;;;;;;;;;;;;;:29;;;:150;;;;;;;;;;;;;;;;;;2797:5;;2452:366;2432:3;;;;;;;2382:447;;;;1449:1;668;;;;;2004:832;;;;;:::o;1499:497::-;1645:15;415;401:29;;:10;:29;;;393:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1673:20;1696:12;1673:35;;1721:11;:28;1733:15;1721:28;;;;;;;;;;;;;;;:44;1750:14;1721:44;;;;;;;;;;;;;;;1785:192;;;;;;;;;1830:5;1785:192;;;;1881:1;1873:10;;1785:192;;;;1912:5;1785:192;;;;;;1949:12;1785:192;;;1721:267;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;1721:267:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;492:1;1499:497;;;;:::o;5225:90::-;5267:13;5293:14;;;;;;;;;;;;;;;;;;;;5225:90;:::o;249:71::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3691:592::-;3858:21;3894:25;3934:13;3962:19;4010:29;4042:11;:28;4054:15;4042:28;;;;;;;;;;;;;;;:44;4071:14;4042:44;;;;;;;;;;;;;;;4087:5;4042:51;;;;;;;;;;;;;;;;;;;;4010:83;;4126:10;:24;;;4165:10;:28;;;4208:10;:19;;;;;;;;;;;;4242:10;:22;;;4104:171;;;;;;;;;3691:592;;;;;;;:::o;2844:839::-;3006:16;2981:14;593;579:28;;:10;:28;;;571:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3037:38;3078:11;:28;3090:15;3078:28;;;;;;;;;;;;;;;:44;3107:14;3078:44;;;;;;;;;;;;;;;3037:85;;3133:30;3180:17;:24;;;;3166:39;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3166:39:0;;;;3133:72;;3218:20;3241:1;3218:24;;3258:9;3270:1;3258:13;;3253:247;3277:17;:24;;;;3273:1;:28;3253:247;;;3328:17;3346:1;3328:20;;;;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;3327:30;3323:166;;;3408:17;3426:1;3408:20;;;;;;;;;;;;;;;;;;;;:32;;;3378:13;3392:12;3378:27;;;;;;;;;;;;;;;;;:62;;;;;3459:14;;;;;;;3323:166;3303:3;;;;;;;3253:247;;;;3619:12;3604:13;3597:35;3662:13;3655:20;;;;;2844:839;;;;;:::o;4291:926::-;4471:21;4507:25;4547:13;4575:19;4622:38;4663:11;:28;4675:15;4663:28;;;;;;;;;;;;;;;:44;4692:14;4663:44;;;;;;;;;;;;;;;4622:85;;4725:9;4737:1;4725:13;;4720:421;4744:17;:24;;;;4740:1;:28;4720:421;;;4830:12;4794:17;4812:1;4794:20;;;;;;;;;;;;;;;;;;;;:32;;;:48;4790:340;;;4893:17;4911:1;4893:20;;;;;;;;;;;;;;;;;;;;:34;;;4950:17;4968:1;4950:20;;;;;;;;;;;;;;;;;;;;:38;;;5011:17;5029:1;5011:20;;;;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;5063:17;5081:1;5063:20;;;;;;;;;;;;;;;;;;;;:32;;;4863:251;;;;;;;;;;;;4790:340;4770:3;;;;;;;4720:421;;;;5153:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4291:926;;;;;;;;:::o
Swarm Source
bzzr://e005828b1f7ee29212f2adf94e262a0a3c54e425b67bf6e70b0c94e92e16bc9d
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.