Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 8 from a total of 8 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Allow Transfer F... | 16064986 | 682 days ago | IN | 0 ETH | 0.0003203 | ||||
Block Transfer F... | 16064750 | 682 days ago | IN | 0 ETH | 0.00033331 | ||||
Remove Restricti... | 15907930 | 703 days ago | IN | 0 ETH | 0.00027704 | ||||
Set Expiration | 4894619 | 2462 days ago | IN | 0 ETH | 0.00136389 | ||||
Allow Transfer F... | 4892056 | 2463 days ago | IN | 0 ETH | 0.00139953 | ||||
Setup Ambi2 | 4892038 | 2463 days ago | IN | 0 ETH | 0.0026748 | ||||
Init | 4892038 | 2463 days ago | IN | 0 ETH | 0.0012987 | ||||
0x60606040 | 4892021 | 2463 days ago | IN | 0 ETH | 0.06847806 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
17748405 | 445 days ago | 0.03444053 ETH | ||||
17748405 | 445 days ago | 0.03444053 ETH | ||||
17748402 | 445 days ago | 0.03179216 ETH | ||||
17748402 | 445 days ago | 0.03179216 ETH | ||||
17748386 | 445 days ago | 0.03178934 ETH | ||||
17748386 | 445 days ago | 0.03178934 ETH | ||||
13396773 | 1094 days ago | 0.08371797 ETH | ||||
13396773 | 1094 days ago | 0.08371797 ETH | ||||
13082688 | 1143 days ago | 0.0965 ETH | ||||
13082688 | 1143 days ago | 0.0965 ETH | ||||
12942370 | 1165 days ago | 0.0002 ETH | ||||
12942370 | 1165 days ago | 0.0002 ETH | ||||
12942361 | 1165 days ago | 0.0002 ETH | ||||
12942361 | 1165 days ago | 0.0002 ETH | ||||
12476394 | 1237 days ago | 0.00552382 ETH | ||||
12476394 | 1237 days ago | 0.00552382 ETH | ||||
12469992 | 1238 days ago | 0.06397453 ETH | ||||
12469992 | 1238 days ago | 0.06397453 ETH | ||||
12469896 | 1238 days ago | 0.05 ETH | ||||
12469896 | 1238 days ago | 0.05 ETH | ||||
12173146 | 1284 days ago | 0.03967034 ETH | ||||
12173146 | 1284 days ago | 0.03967034 ETH | ||||
11380713 | 1406 days ago | 4.37818681 ETH | ||||
11380713 | 1406 days ago | 4.37818681 ETH | ||||
11173253 | 1438 days ago | 0.255 ETH |
Loading...
Loading
Contract Name:
AssetWithWhitelist
Compiler Version
v0.4.15+commit.bbb8e64f
Optimization Enabled:
Yes with 10000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-07-24 */ // This software is a subject to Ambisafe License Agreement. // No use or distribution is allowed without written permission from Ambisafe. // https://www.ambisafe.co/terms-of-use/ pragma solidity 0.4.15; contract Ambi2 { function claimFor(address _address, address _owner) returns(bool); function hasRole(address _from, bytes32 _role, address _to) constant returns(bool); function isOwner(address _node, address _owner) constant returns(bool); } contract Ambi2Enabled { Ambi2 ambi2; modifier onlyRole(bytes32 _role) { if (address(ambi2) != 0x0 && ambi2.hasRole(this, _role, msg.sender)) { _; } } // Perform only after claiming the node, or claim in the same tx. function setupAmbi2(Ambi2 _ambi2) returns(bool) { if (address(ambi2) != 0x0) { return false; } ambi2 = _ambi2; return true; } } contract Ambi2EnabledFull is Ambi2Enabled { // Setup and claim atomically. function setupAmbi2(Ambi2 _ambi2) returns(bool) { if (address(ambi2) != 0x0) { return false; } if (!_ambi2.claimFor(this, msg.sender) && !_ambi2.isOwner(this, msg.sender)) { return false; } ambi2 = _ambi2; return true; } } contract ReturnData { function _returnReturnData(bool _success) internal { assembly { let returndatastart := msize() mstore(0x40, add(returndatastart, returndatasize)) returndatacopy(returndatastart, 0, returndatasize) switch _success case 0 { revert(returndatastart, returndatasize) } default { return(returndatastart, returndatasize) } } } function _assemblyCall(address _destination, uint _value, bytes _data) internal returns(bool success) { assembly { success := call(div(mul(gas, 63), 64), _destination, _value, add(_data, 32), mload(_data), 0, 0) } } } contract Bytes32 { function _bytes32(string _input) internal constant returns(bytes32 result) { assembly { result := mload(add(_input, 32)) } } } contract AssetInterface { function _performTransferWithReference(address _to, uint _value, string _reference, address _sender) returns(bool); function _performTransferToICAPWithReference(bytes32 _icap, uint _value, string _reference, address _sender) returns(bool); function _performApprove(address _spender, uint _value, address _sender) returns(bool); function _performTransferFromWithReference(address _from, address _to, uint _value, string _reference, address _sender) returns(bool); function _performTransferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference, address _sender) returns(bool); function _performGeneric(bytes, address) payable { revert(); } } /** * @title EToken2 Asset implementation contract. * * Basic asset implementation contract, without any additional logic. * Every other asset implementation contracts should derive from this one. * Receives calls from the proxy, and calls back immediatly without arguments modification. * * Note: all the non constant functions return false instead of throwing in case if state change * didn't happen yet. */ contract Asset is AssetInterface, Bytes32, ReturnData { // Assigned asset proxy contract, immutable. AssetProxy public proxy; /** * Only assigned proxy is allowed to call. */ modifier onlyProxy() { if (proxy == msg.sender) { _; } } /** * Sets asset proxy address. * * Can be set only once. * * @param _proxy asset proxy contract address. * * @return success. * @dev function is final, and must not be overridden. */ function init(AssetProxy _proxy) returns(bool) { if (address(proxy) != 0x0) { return false; } proxy = _proxy; return true; } /** * Passes execution into virtual function. * * Can only be called by assigned asset proxy. * * @return success. * @dev function is final, and must not be overridden. */ function _performTransferWithReference(address _to, uint _value, string _reference, address _sender) onlyProxy() returns(bool) { if (isICAP(_to)) { return _transferToICAPWithReference(bytes32(_to) << 96, _value, _reference, _sender); } return _transferWithReference(_to, _value, _reference, _sender); } /** * Calls back without modifications. * * @return success. * @dev function is virtual, and meant to be overridden. */ function _transferWithReference(address _to, uint _value, string _reference, address _sender) internal returns(bool) { return proxy._forwardTransferFromWithReference(_sender, _to, _value, _reference, _sender); } /** * Passes execution into virtual function. * * Can only be called by assigned asset proxy. * * @return success. * @dev function is final, and must not be overridden. */ function _performTransferToICAPWithReference(bytes32 _icap, uint _value, string _reference, address _sender) onlyProxy() returns(bool) { return _transferToICAPWithReference(_icap, _value, _reference, _sender); } /** * Calls back without modifications. * * @return success. * @dev function is virtual, and meant to be overridden. */ function _transferToICAPWithReference(bytes32 _icap, uint _value, string _reference, address _sender) internal returns(bool) { return proxy._forwardTransferFromToICAPWithReference(_sender, _icap, _value, _reference, _sender); } /** * Passes execution into virtual function. * * Can only be called by assigned asset proxy. * * @return success. * @dev function is final, and must not be overridden. */ function _performTransferFromWithReference(address _from, address _to, uint _value, string _reference, address _sender) onlyProxy() returns(bool) { if (isICAP(_to)) { return _transferFromToICAPWithReference(_from, bytes32(_to) << 96, _value, _reference, _sender); } return _transferFromWithReference(_from, _to, _value, _reference, _sender); } /** * Calls back without modifications. * * @return success. * @dev function is virtual, and meant to be overridden. */ function _transferFromWithReference(address _from, address _to, uint _value, string _reference, address _sender) internal returns(bool) { return proxy._forwardTransferFromWithReference(_from, _to, _value, _reference, _sender); } /** * Passes execution into virtual function. * * Can only be called by assigned asset proxy. * * @return success. * @dev function is final, and must not be overridden. */ function _performTransferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference, address _sender) onlyProxy() returns(bool) { return _transferFromToICAPWithReference(_from, _icap, _value, _reference, _sender); } /** * Calls back without modifications. * * @return success. * @dev function is virtual, and meant to be overridden. */ function _transferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference, address _sender) internal returns(bool) { return proxy._forwardTransferFromToICAPWithReference(_from, _icap, _value, _reference, _sender); } /** * Passes execution into virtual function. * * Can only be called by assigned asset proxy. * * @return success. * @dev function is final, and must not be overridden. */ function _performApprove(address _spender, uint _value, address _sender) onlyProxy() returns(bool) { return _approve(_spender, _value, _sender); } /** * Calls back without modifications. * * @return success. * @dev function is virtual, and meant to be overridden. */ function _approve(address _spender, uint _value, address _sender) internal returns(bool) { return proxy._forwardApprove(_spender, _value, _sender); } /** * Passes execution into virtual function. * * Can only be called by assigned asset proxy. * * @return bytes32 result. * @dev function is final, and must not be overridden. */ function _performGeneric(bytes _data, address _sender) payable onlyProxy() { _generic(_data, msg.value, _sender); } modifier onlyMe() { if (this == msg.sender) { _; } } // Most probably the following should never be redefined in child contracts. address genericSender; function _generic(bytes _data, uint _value, address _msgSender) internal { // Restrict reentrancy. require(genericSender == 0x0); genericSender = _msgSender; bool success = _assemblyCall(address(this), _value, _data); delete genericSender; _returnReturnData(success); } // Decsendants should use _sender() instead of msg.sender to properly process proxied calls. function _sender() constant internal returns(address) { return this == msg.sender ? genericSender : msg.sender; } // Interface functions to allow specifying ICAP addresses as strings. function transferToICAP(string _icap, uint _value) returns(bool) { return transferToICAPWithReference(_icap, _value, ''); } function transferToICAPWithReference(string _icap, uint _value, string _reference) returns(bool) { return _transferToICAPWithReference(_bytes32(_icap), _value, _reference, _sender()); } function transferFromToICAP(address _from, string _icap, uint _value) returns(bool) { return transferFromToICAPWithReference(_from, _icap, _value, ''); } function transferFromToICAPWithReference(address _from, string _icap, uint _value, string _reference) returns(bool) { return _transferFromToICAPWithReference(_from, _bytes32(_icap), _value, _reference, _sender()); } function isICAP(address _address) constant returns(bool) { bytes32 a = bytes32(_address) << 96; if (a[0] != 'X' || a[1] != 'E') { return false; } if (a[2] < 48 || a[2] > 57 || a[3] < 48 || a[3] > 57) { return false; } for (uint i = 4; i < 20; i++) { uint char = uint(a[i]); if (char < 48 || char > 90 || (char > 57 && char < 65)) { return false; } } return true; } } contract AssetWithAmbi is Asset, Ambi2EnabledFull { modifier onlyRole(bytes32 _role) { if (address(ambi2) != 0x0 && (ambi2.hasRole(this, _role, _sender()))) { _; } } } contract AssetProxy { function _forwardApprove(address _spender, uint _value, address _sender) returns(bool); function _forwardTransferFromWithReference(address _from, address _to, uint _value, string _reference, address _sender) returns(bool); function _forwardTransferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference, address _sender) returns(bool); function balanceOf(address _owner) constant returns(uint); } /** * @title EToken2 Asset with whitelist implementation contract. */ contract AssetWithWhitelist is AssetWithAmbi { mapping(address => bool) public whitelist; uint public restrictionExpiraton; bool public restrictionRemoved; event Error(bytes32 _errorText); function allowTransferFrom(address _from) onlyRole('admin') returns(bool) { whitelist[_from] = true; return true; } function blockTransferFrom(address _from) onlyRole('admin') returns(bool) { whitelist[_from] = false; return true; } function transferIsAllowed(address _from) constant returns(bool) { return restrictionRemoved || whitelist[_from] || (now >= restrictionExpiraton); } function removeRestriction() onlyRole('admin') returns(bool) { restrictionRemoved = true; return true; } modifier transferAllowed(address _sender) { if (!transferIsAllowed(_sender)) { Error('Transfer not allowed'); return; } _; } function setExpiration(uint _time) onlyRole('admin') returns(bool) { if (restrictionExpiraton != 0) { Error('Expiration time already set'); return false; } if (_time < now) { Error('Expiration time invalid'); return false; } restrictionExpiraton = _time; return true; } // Transfers function _transferWithReference(address _to, uint _value, string _reference, address _sender) transferAllowed(_sender) internal returns(bool) { return super._transferWithReference(_to, _value, _reference, _sender); } function _transferToICAPWithReference(bytes32 _icap, uint _value, string _reference, address _sender) transferAllowed(_sender) internal returns(bool) { return super._transferToICAPWithReference(_icap, _value, _reference, _sender); } function _transferFromWithReference(address _from, address _to, uint _value, string _reference, address _sender) transferAllowed(_from) internal returns(bool) { return super._transferFromWithReference(_from, _to, _value, _reference, _sender); } function _transferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference, address _sender) transferAllowed(_from) internal returns(bool) { return super._transferFromToICAPWithReference(_from, _icap, _value, _reference, _sender); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"},{"name":"_sender","type":"address"}],"name":"_performTransferWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_proxy","type":"address"}],"name":"init","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"isICAP","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"removeRestriction","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"}],"name":"blockTransferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"restrictionExpiraton","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_time","type":"uint256"}],"name":"setExpiration","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_icap","type":"string"},{"name":"_value","type":"uint256"}],"name":"transferFromToICAP","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_ambi2","type":"address"}],"name":"setupAmbi2","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_icap","type":"string"},{"name":"_value","type":"uint256"}],"name":"transferToICAP","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_icap","type":"string"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"transferFromToICAPWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"}],"name":"allowTransferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_icap","type":"string"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"transferToICAPWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_from","type":"address"}],"name":"transferIsAllowed","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"},{"name":"_sender","type":"address"}],"name":"_performTransferToICAPWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"},{"name":"_sender","type":"address"}],"name":"_performTransferFromWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_data","type":"bytes"},{"name":"_sender","type":"address"}],"name":"_performGeneric","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_sender","type":"address"}],"name":"_performApprove","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"},{"name":"_sender","type":"address"}],"name":"_performTransferFromToICAPWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"proxy","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"restrictionRemoved","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_errorText","type":"bytes32"}],"name":"Error","type":"event"}]
Contract Creation Code
6060604052341561000f57600080fd5b5b61218d8061001f6000396000f300606060405236156101255763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631962df71811461012a57806319ab453c146101c8578063307e38ca146102085780634830d5d91461024857806348849c5a1461026f5780634bb37790146102af578063515a20ba146102d45780637609c5a9146102fe5780637a386e881461038057806381d434e9146103c057806384c5c34d146104275780638a74ee43146104f25780639ab253cc146105325780639b19251a146105e2578063bfd94c8c14610622578063c10796df14610662578063cca97025146106ea578063db00b8481461078f578063e34f7137146107ef578063eb58705b14610839578063ec556889146108da578063f5a9855814610916575b600080fd5b341561013557600080fd5b6101b46004803573ffffffffffffffffffffffffffffffffffffffff169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923573ffffffffffffffffffffffffffffffffffffffff16925061093d915050565b604051901515815260200160405180910390f35b34156101d357600080fd5b6101b473ffffffffffffffffffffffffffffffffffffffff600435166109c1565b604051901515815260200160405180910390f35b341561021357600080fd5b6101b473ffffffffffffffffffffffffffffffffffffffff60043516610a31565b604051901515815260200160405180910390f35b341561025357600080fd5b6101b4610dc5565b604051901515815260200160405180910390f35b341561027a57600080fd5b6101b473ffffffffffffffffffffffffffffffffffffffff60043516610f09565b604051901515815260200160405180910390f35b34156102ba57600080fd5b6102c261106e565b60405190815260200160405180910390f35b34156102df57600080fd5b6101b4600435611074565b604051901515815260200160405180910390f35b341561030957600080fd5b6101b46004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650509335935061125992505050565b604051901515815260200160405180910390f35b341561038b57600080fd5b6101b473ffffffffffffffffffffffffffffffffffffffff6004351661127f565b604051901515815260200160405180910390f35b34156103cb57600080fd5b6101b460046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650509335935061146292505050565b604051901515815260200160405180910390f35b341561043257600080fd5b6101b46004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965061148695505050505050565b604051901515815260200160405180910390f35b34156104fd57600080fd5b6101b473ffffffffffffffffffffffffffffffffffffffff600435166114af565b604051901515815260200160405180910390f35b341561053d57600080fd5b6101b460046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965061161895505050505050565b604051901515815260200160405180910390f35b34156105ed57600080fd5b6101b473ffffffffffffffffffffffffffffffffffffffff6004351661163f565b604051901515815260200160405180910390f35b341561062d57600080fd5b6101b473ffffffffffffffffffffffffffffffffffffffff60043516611654565b604051901515815260200160405180910390f35b341561066d57600080fd5b6101b4600480359060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923573ffffffffffffffffffffffffffffffffffffffff1692506116a2915050565b604051901515815260200160405180910390f35b34156106f557600080fd5b6101b473ffffffffffffffffffffffffffffffffffffffff6004803582169160248035909116916044359160849060643590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923573ffffffffffffffffffffffffffffffffffffffff1692506116e0915050565b604051901515815260200160405180910390f35b6107ed60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923573ffffffffffffffffffffffffffffffffffffffff169250611767915050565b005b34156107fa57600080fd5b6101b473ffffffffffffffffffffffffffffffffffffffff600435811690602435906044351661179d565b604051901515815260200160405180910390f35b341561084457600080fd5b6101b46004803573ffffffffffffffffffffffffffffffffffffffff169060248035916044359160849060643590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923573ffffffffffffffffffffffffffffffffffffffff1692506117d9915050565b604051901515815260200160405180910390f35b34156108e557600080fd5b6108ed611819565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561092157600080fd5b6101b4611835565b604051901515815260200160405180910390f35b600080543373ffffffffffffffffffffffffffffffffffffffff908116911614156109b75761096b85610a31565b156109a8576109a16c0100000000000000000000000073ffffffffffffffffffffffffffffffffffffffff87160285858561183e565b90506109b7565b6109b4858585856118c0565b90505b5b5b949350505050565b6000805473ffffffffffffffffffffffffffffffffffffffff16156109e857506000610a2c565b50600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905560015b919050565b60006c0100000000000000000000000073ffffffffffffffffffffffffffffffffffffffff831602818082815b1a7f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f5800000000000000000000000000000000000000000000000000000000000000141580610b3957508260015b1a7f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f450000000000000000000000000000000000000000000000000000000000000014155b15610b475760009350610dbd565b7f30000000000000000000000000000000000000000000000000000000000000008360025b1a7f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161080610c2457507f39000000000000000000000000000000000000000000000000000000000000008360025b1a7f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916115b80610c9657507f30000000000000000000000000000000000000000000000000000000000000008360035b1a7f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916105b80610d0857507f39000000000000000000000000000000000000000000000000000000000000008360035b1a7f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916115b15610d165760009350610dbd565b600491505b6014821015610db857828260208110610d3057fe5b1a7f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900490506030811080610d875750605a81115b80610d9d5750603981118015610d9d5750604181105b5b15610dac5760009350610dbd565b5b600190910190610d1b565b600193505b505050919050565b6002546000907f61646d696e0000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff1615801590610ecd575060025473ffffffffffffffffffffffffffffffffffffffff16632d3e579a3083610e34611942565b6000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff938416600482015260248101929092529091166044820152606401602060405180830381600087803b1515610eb157600080fd5b6102c65a03f11515610ec257600080fd5b505050604051805190505b15610f0357600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915591505b5b5b5090565b6002546000907f61646d696e0000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff1615801590611011575060025473ffffffffffffffffffffffffffffffffffffffff16632d3e579a3083610f78611942565b6000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff938416600482015260248101929092529091166044820152606401602060405180830381600087803b1515610ff557600080fd5b6102c65a03f1151561100657600080fd5b505050604051805190505b156110665773ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600191505b5b5b50919050565b60045481565b6002546000907f61646d696e0000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff161580159061117c575060025473ffffffffffffffffffffffffffffffffffffffff16632d3e579a30836110e3611942565b6000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff938416600482015260248101929092529091166044820152606401602060405180830381600087803b151561116057600080fd5b6102c65a03f1151561117157600080fd5b505050604051805190505b1561106657600454156111e4577fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c6040517f45787069726174696f6e2074696d6520616c7265616479207365740000000000815260200160405180910390a160009150611066565b42831015611247577fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c6040517f45787069726174696f6e2074696d6520696e76616c6964000000000000000000815260200160405180910390a160009150611066565b6004839055600191505b5b5b50919050565b6000611275848484602060405190810160405260008152611486565b90505b9392505050565b60025460009073ffffffffffffffffffffffffffffffffffffffff16156112a857506000610a2c565b8173ffffffffffffffffffffffffffffffffffffffff1663b4ba9e1130336000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff851602815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604401602060405180830381600087803b151561133a57600080fd5b6102c65a03f1151561134b57600080fd5b5050506040518051905015801561140c57508173ffffffffffffffffffffffffffffffffffffffff16637ddc02d430336000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff851602815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604401602060405180830381600087803b15156113ef57600080fd5b6102c65a03f1151561140057600080fd5b50505060405180519050155b1561141957506000610a2c565b50600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905560015b919050565b600061147d8383602060405190810160405260008152611618565b90505b92915050565b60006109b4856114958661199d565b858561149f611942565b6119ac565b90505b949350505050565b6002546000907f61646d696e0000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff16158015906115b7575060025473ffffffffffffffffffffffffffffffffffffffff16632d3e579a308361151e611942565b6000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff938416600482015260248101929092529091166044820152606401602060405180830381600087803b151561159b57600080fd5b6102c65a03f115156115ac57600080fd5b505050604051805190505b156110665773ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915591505b5b5b50919050565b60006112756116268561199d565b8484611630611942565b61183e565b90505b9392505050565b60036020526000908152604090205460ff1681565b60055460009060ff168061168d575073ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604090205460ff165b8061169a57506004544210155b90505b919050565b600080543373ffffffffffffffffffffffffffffffffffffffff908116911614156109b7576109b48585858561183e565b90505b5b5b949350505050565b600080543373ffffffffffffffffffffffffffffffffffffffff9081169116141561175c5761170e85610a31565b1561174c57611745866c0100000000000000000000000073ffffffffffffffffffffffffffffffffffffffff8816028686866119ac565b905061175c565b6117598686868686611a30565b90505b5b5b95945050505050565b6000543373ffffffffffffffffffffffffffffffffffffffff9081169116141561179657611796823483611ab4565b5b5b5b5050565b600080543373ffffffffffffffffffffffffffffffffffffffff9081169116141561127857611275848484611b5f565b90505b5b5b9392505050565b600080543373ffffffffffffffffffffffffffffffffffffffff9081169116141561175c5761175986868686866119ac565b90505b5b5b95945050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60055460ff1681565b60008161184a81611654565b15156118a7577fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c6040517f5472616e73666572206e6f7420616c6c6f776564000000000000000000000000815260200160405180910390a16118b6565b6118b386868686611c21565b91505b5b50949350505050565b6000816118cc81611654565b1515611929577fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c6040517f5472616e73666572206e6f7420616c6c6f776564000000000000000000000000815260200160405180910390a16118b6565b6118b386868686611d60565b91505b5b50949350505050565b60003373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161461197d5733611997565b60015473ffffffffffffffffffffffffffffffffffffffff165b90505b90565b6000602082015190505b919050565b6000856119b881611654565b1515611a15577fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c6040517f5472616e73666572206e6f7420616c6c6f776564000000000000000000000000815260200160405180910390a1611a25565b611a228787878787611ea0565b91505b5b5095945050505050565b600085611a3c81611654565b1515611a99577fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c6040517f5472616e73666572206e6f7420616c6c6f776564000000000000000000000000815260200160405180910390a1611a25565b611a228787878787611fe0565b91505b5b5095945050505050565b60015460009073ffffffffffffffffffffffffffffffffffffffff1615611ada57600080fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416179055611b25308486612121565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559050611b5881612140565b5b50505050565b6000805473ffffffffffffffffffffffffffffffffffffffff16637bcdc2f085858585604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff938416600482015260248101929092529091166044820152606401602060405180830381600087803b1515611bfd57600080fd5b6102c65a03f11515611c0e57600080fd5b50505060405180519150505b9392505050565b6000805473ffffffffffffffffffffffffffffffffffffffff16639b487f3f838787878387604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff881602815273ffffffffffffffffffffffffffffffffffffffff808716600483019081526024830187905260448301869052908316608483015260a060648301908152909160a40184818151815260200191508051906020019080838360005b83811015611cec5780820151818401525b602001611cd3565b50505050905090810190601f168015611d195780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1515611d3b57600080fd5b6102c65a03f11515611d4c57600080fd5b50505060405180519150505b949350505050565b6000805473ffffffffffffffffffffffffffffffffffffffff166314cba002838787878387604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff881602815273ffffffffffffffffffffffffffffffffffffffff80871660048301908152868216602484015260448301869052908316608483015260a060648301908152909160a40184818151815260200191508051906020019080838360005b83811015611cec5780820151818401525b602001611cd3565b50505050905090810190601f168015611d195780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1515611d3b57600080fd5b6102c65a03f11515611d4c57600080fd5b50505060405180519150505b949350505050565b6000805473ffffffffffffffffffffffffffffffffffffffff16639b487f3f878787878787604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff881602815273ffffffffffffffffffffffffffffffffffffffff808716600483019081526024830187905260448301869052908316608483015260a060648301908152909160a40184818151815260200191508051906020019080838360005b83811015611f6b5780820151818401525b602001611f52565b50505050905090810190601f168015611f985780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1515611fba57600080fd5b6102c65a03f11515611fcb57600080fd5b50505060405180519150505b95945050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff166314cba002878787878787604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff881602815273ffffffffffffffffffffffffffffffffffffffff80871660048301908152868216602484015260448301869052908316608483015260a060648301908152909160a40184818151815260200191508051906020019080838360005b83811015611f6b5780820151818401525b602001611f52565b50505050905090810190601f168015611f985780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1515611fba57600080fd5b6102c65a03f11515611fcb57600080fd5b50505060405180519150505b95945050505050565b600080600083516020850186886040603f5a0204f190505b9392505050565b593d81016040523d6000823e818015612157573d82f35b3d82fd5b50505b505600a165627a7a7230582074ceb8dcb943af3413eee57e49596ee4b43f1e93b09842fddf34c602e819c9a90029
Deployed Bytecode
0x606060405236156101255763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631962df71811461012a57806319ab453c146101c8578063307e38ca146102085780634830d5d91461024857806348849c5a1461026f5780634bb37790146102af578063515a20ba146102d45780637609c5a9146102fe5780637a386e881461038057806381d434e9146103c057806384c5c34d146104275780638a74ee43146104f25780639ab253cc146105325780639b19251a146105e2578063bfd94c8c14610622578063c10796df14610662578063cca97025146106ea578063db00b8481461078f578063e34f7137146107ef578063eb58705b14610839578063ec556889146108da578063f5a9855814610916575b600080fd5b341561013557600080fd5b6101b46004803573ffffffffffffffffffffffffffffffffffffffff169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923573ffffffffffffffffffffffffffffffffffffffff16925061093d915050565b604051901515815260200160405180910390f35b34156101d357600080fd5b6101b473ffffffffffffffffffffffffffffffffffffffff600435166109c1565b604051901515815260200160405180910390f35b341561021357600080fd5b6101b473ffffffffffffffffffffffffffffffffffffffff60043516610a31565b604051901515815260200160405180910390f35b341561025357600080fd5b6101b4610dc5565b604051901515815260200160405180910390f35b341561027a57600080fd5b6101b473ffffffffffffffffffffffffffffffffffffffff60043516610f09565b604051901515815260200160405180910390f35b34156102ba57600080fd5b6102c261106e565b60405190815260200160405180910390f35b34156102df57600080fd5b6101b4600435611074565b604051901515815260200160405180910390f35b341561030957600080fd5b6101b46004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650509335935061125992505050565b604051901515815260200160405180910390f35b341561038b57600080fd5b6101b473ffffffffffffffffffffffffffffffffffffffff6004351661127f565b604051901515815260200160405180910390f35b34156103cb57600080fd5b6101b460046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650509335935061146292505050565b604051901515815260200160405180910390f35b341561043257600080fd5b6101b46004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965061148695505050505050565b604051901515815260200160405180910390f35b34156104fd57600080fd5b6101b473ffffffffffffffffffffffffffffffffffffffff600435166114af565b604051901515815260200160405180910390f35b341561053d57600080fd5b6101b460046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965061161895505050505050565b604051901515815260200160405180910390f35b34156105ed57600080fd5b6101b473ffffffffffffffffffffffffffffffffffffffff6004351661163f565b604051901515815260200160405180910390f35b341561062d57600080fd5b6101b473ffffffffffffffffffffffffffffffffffffffff60043516611654565b604051901515815260200160405180910390f35b341561066d57600080fd5b6101b4600480359060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923573ffffffffffffffffffffffffffffffffffffffff1692506116a2915050565b604051901515815260200160405180910390f35b34156106f557600080fd5b6101b473ffffffffffffffffffffffffffffffffffffffff6004803582169160248035909116916044359160849060643590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923573ffffffffffffffffffffffffffffffffffffffff1692506116e0915050565b604051901515815260200160405180910390f35b6107ed60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923573ffffffffffffffffffffffffffffffffffffffff169250611767915050565b005b34156107fa57600080fd5b6101b473ffffffffffffffffffffffffffffffffffffffff600435811690602435906044351661179d565b604051901515815260200160405180910390f35b341561084457600080fd5b6101b46004803573ffffffffffffffffffffffffffffffffffffffff169060248035916044359160849060643590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923573ffffffffffffffffffffffffffffffffffffffff1692506117d9915050565b604051901515815260200160405180910390f35b34156108e557600080fd5b6108ed611819565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561092157600080fd5b6101b4611835565b604051901515815260200160405180910390f35b600080543373ffffffffffffffffffffffffffffffffffffffff908116911614156109b75761096b85610a31565b156109a8576109a16c0100000000000000000000000073ffffffffffffffffffffffffffffffffffffffff87160285858561183e565b90506109b7565b6109b4858585856118c0565b90505b5b5b949350505050565b6000805473ffffffffffffffffffffffffffffffffffffffff16156109e857506000610a2c565b50600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905560015b919050565b60006c0100000000000000000000000073ffffffffffffffffffffffffffffffffffffffff831602818082815b1a7f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f5800000000000000000000000000000000000000000000000000000000000000141580610b3957508260015b1a7f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f450000000000000000000000000000000000000000000000000000000000000014155b15610b475760009350610dbd565b7f30000000000000000000000000000000000000000000000000000000000000008360025b1a7f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161080610c2457507f39000000000000000000000000000000000000000000000000000000000000008360025b1a7f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916115b80610c9657507f30000000000000000000000000000000000000000000000000000000000000008360035b1a7f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916105b80610d0857507f39000000000000000000000000000000000000000000000000000000000000008360035b1a7f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916115b15610d165760009350610dbd565b600491505b6014821015610db857828260208110610d3057fe5b1a7f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900490506030811080610d875750605a81115b80610d9d5750603981118015610d9d5750604181105b5b15610dac5760009350610dbd565b5b600190910190610d1b565b600193505b505050919050565b6002546000907f61646d696e0000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff1615801590610ecd575060025473ffffffffffffffffffffffffffffffffffffffff16632d3e579a3083610e34611942565b6000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff938416600482015260248101929092529091166044820152606401602060405180830381600087803b1515610eb157600080fd5b6102c65a03f11515610ec257600080fd5b505050604051805190505b15610f0357600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915591505b5b5b5090565b6002546000907f61646d696e0000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff1615801590611011575060025473ffffffffffffffffffffffffffffffffffffffff16632d3e579a3083610f78611942565b6000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff938416600482015260248101929092529091166044820152606401602060405180830381600087803b1515610ff557600080fd5b6102c65a03f1151561100657600080fd5b505050604051805190505b156110665773ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600191505b5b5b50919050565b60045481565b6002546000907f61646d696e0000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff161580159061117c575060025473ffffffffffffffffffffffffffffffffffffffff16632d3e579a30836110e3611942565b6000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff938416600482015260248101929092529091166044820152606401602060405180830381600087803b151561116057600080fd5b6102c65a03f1151561117157600080fd5b505050604051805190505b1561106657600454156111e4577fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c6040517f45787069726174696f6e2074696d6520616c7265616479207365740000000000815260200160405180910390a160009150611066565b42831015611247577fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c6040517f45787069726174696f6e2074696d6520696e76616c6964000000000000000000815260200160405180910390a160009150611066565b6004839055600191505b5b5b50919050565b6000611275848484602060405190810160405260008152611486565b90505b9392505050565b60025460009073ffffffffffffffffffffffffffffffffffffffff16156112a857506000610a2c565b8173ffffffffffffffffffffffffffffffffffffffff1663b4ba9e1130336000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff851602815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604401602060405180830381600087803b151561133a57600080fd5b6102c65a03f1151561134b57600080fd5b5050506040518051905015801561140c57508173ffffffffffffffffffffffffffffffffffffffff16637ddc02d430336000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff851602815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604401602060405180830381600087803b15156113ef57600080fd5b6102c65a03f1151561140057600080fd5b50505060405180519050155b1561141957506000610a2c565b50600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905560015b919050565b600061147d8383602060405190810160405260008152611618565b90505b92915050565b60006109b4856114958661199d565b858561149f611942565b6119ac565b90505b949350505050565b6002546000907f61646d696e0000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff16158015906115b7575060025473ffffffffffffffffffffffffffffffffffffffff16632d3e579a308361151e611942565b6000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff938416600482015260248101929092529091166044820152606401602060405180830381600087803b151561159b57600080fd5b6102c65a03f115156115ac57600080fd5b505050604051805190505b156110665773ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915591505b5b5b50919050565b60006112756116268561199d565b8484611630611942565b61183e565b90505b9392505050565b60036020526000908152604090205460ff1681565b60055460009060ff168061168d575073ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604090205460ff165b8061169a57506004544210155b90505b919050565b600080543373ffffffffffffffffffffffffffffffffffffffff908116911614156109b7576109b48585858561183e565b90505b5b5b949350505050565b600080543373ffffffffffffffffffffffffffffffffffffffff9081169116141561175c5761170e85610a31565b1561174c57611745866c0100000000000000000000000073ffffffffffffffffffffffffffffffffffffffff8816028686866119ac565b905061175c565b6117598686868686611a30565b90505b5b5b95945050505050565b6000543373ffffffffffffffffffffffffffffffffffffffff9081169116141561179657611796823483611ab4565b5b5b5b5050565b600080543373ffffffffffffffffffffffffffffffffffffffff9081169116141561127857611275848484611b5f565b90505b5b5b9392505050565b600080543373ffffffffffffffffffffffffffffffffffffffff9081169116141561175c5761175986868686866119ac565b90505b5b5b95945050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60055460ff1681565b60008161184a81611654565b15156118a7577fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c6040517f5472616e73666572206e6f7420616c6c6f776564000000000000000000000000815260200160405180910390a16118b6565b6118b386868686611c21565b91505b5b50949350505050565b6000816118cc81611654565b1515611929577fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c6040517f5472616e73666572206e6f7420616c6c6f776564000000000000000000000000815260200160405180910390a16118b6565b6118b386868686611d60565b91505b5b50949350505050565b60003373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161461197d5733611997565b60015473ffffffffffffffffffffffffffffffffffffffff165b90505b90565b6000602082015190505b919050565b6000856119b881611654565b1515611a15577fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c6040517f5472616e73666572206e6f7420616c6c6f776564000000000000000000000000815260200160405180910390a1611a25565b611a228787878787611ea0565b91505b5b5095945050505050565b600085611a3c81611654565b1515611a99577fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c6040517f5472616e73666572206e6f7420616c6c6f776564000000000000000000000000815260200160405180910390a1611a25565b611a228787878787611fe0565b91505b5b5095945050505050565b60015460009073ffffffffffffffffffffffffffffffffffffffff1615611ada57600080fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416179055611b25308486612121565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559050611b5881612140565b5b50505050565b6000805473ffffffffffffffffffffffffffffffffffffffff16637bcdc2f085858585604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff938416600482015260248101929092529091166044820152606401602060405180830381600087803b1515611bfd57600080fd5b6102c65a03f11515611c0e57600080fd5b50505060405180519150505b9392505050565b6000805473ffffffffffffffffffffffffffffffffffffffff16639b487f3f838787878387604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff881602815273ffffffffffffffffffffffffffffffffffffffff808716600483019081526024830187905260448301869052908316608483015260a060648301908152909160a40184818151815260200191508051906020019080838360005b83811015611cec5780820151818401525b602001611cd3565b50505050905090810190601f168015611d195780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1515611d3b57600080fd5b6102c65a03f11515611d4c57600080fd5b50505060405180519150505b949350505050565b6000805473ffffffffffffffffffffffffffffffffffffffff166314cba002838787878387604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff881602815273ffffffffffffffffffffffffffffffffffffffff80871660048301908152868216602484015260448301869052908316608483015260a060648301908152909160a40184818151815260200191508051906020019080838360005b83811015611cec5780820151818401525b602001611cd3565b50505050905090810190601f168015611d195780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1515611d3b57600080fd5b6102c65a03f11515611d4c57600080fd5b50505060405180519150505b949350505050565b6000805473ffffffffffffffffffffffffffffffffffffffff16639b487f3f878787878787604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff881602815273ffffffffffffffffffffffffffffffffffffffff808716600483019081526024830187905260448301869052908316608483015260a060648301908152909160a40184818151815260200191508051906020019080838360005b83811015611f6b5780820151818401525b602001611f52565b50505050905090810190601f168015611f985780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1515611fba57600080fd5b6102c65a03f11515611fcb57600080fd5b50505060405180519150505b95945050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff166314cba002878787878787604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff881602815273ffffffffffffffffffffffffffffffffffffffff80871660048301908152868216602484015260448301869052908316608483015260a060648301908152909160a40184818151815260200191508051906020019080838360005b83811015611f6b5780820151818401525b602001611f52565b50505050905090810190601f168015611f985780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1515611fba57600080fd5b6102c65a03f11515611fcb57600080fd5b50505060405180519150505b95945050505050565b600080600083516020850186886040603f5a0204f190505b9392505050565b593d81016040523d6000823e818015612157573d82f35b3d82fd5b50505b505600a165627a7a7230582074ceb8dcb943af3413eee57e49596ee4b43f1e93b09842fddf34c602e819c9a90029
Swarm Source
bzzr://74ceb8dcb943af3413eee57e49596ee4b43f1e93b09842fddf34c602e819c9a9
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ 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.