Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 122,784 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 24386726 | 25 hrs ago | IN | 0 ETH | 0.00002977 | ||||
| Approve | 24381243 | 43 hrs ago | IN | 0 ETH | 0.00023219 | ||||
| Approve | 24381237 | 43 hrs ago | IN | 0 ETH | 0.00023126 | ||||
| Approve | 24381224 | 43 hrs ago | IN | 0 ETH | 0.00024063 | ||||
| Transfer | 24381218 | 43 hrs ago | IN | 0 ETH | 0.00013746 | ||||
| Transfer | 24381206 | 43 hrs ago | IN | 0 ETH | 0.00013804 | ||||
| Transfer | 24381200 | 44 hrs ago | IN | 0 ETH | 0.0001377 | ||||
| Approve | 24381173 | 44 hrs ago | IN | 0 ETH | 0.00024311 | ||||
| Approve | 24380123 | 47 hrs ago | IN | 0 ETH | 0.00012345 | ||||
| Transfer | 24376548 | 2 days ago | IN | 0 ETH | 0.00005765 | ||||
| Transfer | 24375308 | 2 days ago | IN | 0 ETH | 0.000018 | ||||
| Transfer | 24375292 | 2 days ago | IN | 0 ETH | 0.00001755 | ||||
| Transfer | 24375282 | 2 days ago | IN | 0 ETH | 0.00004149 | ||||
| Approve | 24372551 | 3 days ago | IN | 0 ETH | 0.00011945 | ||||
| Approve | 24366015 | 3 days ago | IN | 0 ETH | 0.00001156 | ||||
| Approve | 24358650 | 4 days ago | IN | 0 ETH | 0.0000105 | ||||
| Transfer | 24356944 | 5 days ago | IN | 0 ETH | 0.00105377 | ||||
| Approve | 24353794 | 5 days ago | IN | 0 ETH | 0.00013242 | ||||
| Transfer | 24353448 | 5 days ago | IN | 0 ETH | 0.00017297 | ||||
| Transfer | 24351280 | 6 days ago | IN | 0 ETH | 0.00005069 | ||||
| Approve | 24350118 | 6 days ago | IN | 0 ETH | 0.00011025 | ||||
| Approve | 24345022 | 6 days ago | IN | 0 ETH | 0.00001127 | ||||
| Approve | 24336856 | 8 days ago | IN | 0 ETH | 0.00011982 | ||||
| Approve | 24335471 | 8 days ago | IN | 0 ETH | 0.0000182 | ||||
| Transfer | 24327109 | 9 days ago | IN | 0 ETH | 0.00002303 |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
HealthCareToken
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-06-14
*/
pragma solidity 0.4.15;
contract RegistryICAPInterface {
function parse(bytes32 _icap) constant returns(address, bytes32, bool);
function institutions(bytes32 _institution) constant returns(address);
}
contract EToken2Interface {
function registryICAP() constant returns(RegistryICAPInterface);
function baseUnit(bytes32 _symbol) constant returns(uint8);
function description(bytes32 _symbol) constant returns(string);
function owner(bytes32 _symbol) constant returns(address);
function isOwner(address _owner, bytes32 _symbol) constant returns(bool);
function totalSupply(bytes32 _symbol) constant returns(uint);
function balanceOf(address _holder, bytes32 _symbol) constant returns(uint);
function isLocked(bytes32 _symbol) constant returns(bool);
function issueAsset(bytes32 _symbol, uint _value, string _name, string _description, uint8 _baseUnit, bool _isReissuable) returns(bool);
function reissueAsset(bytes32 _symbol, uint _value) returns(bool);
function revokeAsset(bytes32 _symbol, uint _value) returns(bool);
function setProxy(address _address, bytes32 _symbol) returns(bool);
function lockAsset(bytes32 _symbol) returns(bool);
function proxyTransferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference, address _sender) returns(bool);
function proxyApprove(address _spender, uint _value, bytes32 _symbol, address _sender) returns(bool);
function allowance(address _from, address _spender, bytes32 _symbol) constant returns(uint);
function proxyTransferFromWithReference(address _from, address _to, uint _value, bytes32 _symbol, string _reference, address _sender) returns(bool);
}
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();
}
}
contract ERC20Interface {
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed from, address indexed spender, uint256 value);
function totalSupply() constant returns(uint256 supply);
function balanceOf(address _owner) constant returns(uint256 balance);
function transfer(address _to, uint256 _value) returns(bool success);
function transferFrom(address _from, address _to, uint256 _value) returns(bool success);
function approve(address _spender, uint256 _value) returns(bool success);
function allowance(address _owner, address _spender) constant returns(uint256 remaining);
// function symbol() constant returns(string);
function decimals() constant returns(uint8);
// function name() constant returns(string);
}
contract AssetProxyInterface {
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);
}
contract Bytes32 {
function _bytes32(string _input) internal constant returns(bytes32 result) {
assembly {
result := mload(add(_input, 32))
}
}
}
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)
}
}
}
/**
* @title EToken2 Asset Proxy.
*
* Proxy implements ERC20 interface and acts as a gateway to a single EToken2 asset.
* Proxy adds etoken2Symbol and caller(sender) when forwarding requests to EToken2.
* Every request that is made by caller first sent to the specific asset implementation
* contract, which then calls back to be forwarded onto EToken2.
*
* Calls flow: Caller ->
* Proxy.func(...) ->
* Asset._performFunc(..., Caller.address) ->
* Proxy._forwardFunc(..., Caller.address) ->
* Platform.proxyFunc(..., symbol, Caller.address)
*
* Generic call flow: Caller ->
* Proxy.unknownFunc(...) ->
* Asset._performGeneric(..., Caller.address) ->
* Asset.unknownFunc(...)
*
* Asset implementation contract is mutable, but each user have an option to stick with
* old implementation, through explicit decision made in timely manner, if he doesn't agree
* with new rules.
* Each user have a possibility to upgrade to latest asset contract implementation, without the
* possibility to rollback.
*
* Note: all the non constant functions return false instead of throwing in case if state change
* didn't happen yet.
*/
contract HealthCareToken is ERC20Interface, AssetProxyInterface, Bytes32, ReturnData {
// Assigned EToken2, immutable.
EToken2Interface public etoken2;
// Assigned symbol, immutable.
bytes32 public etoken2Symbol;
// Assigned name, immutable. For UI.
string public name;
string public symbol;
/**
* Sets EToken2 address, assigns symbol and name.
*
* Can be set only once.
*
* @param _etoken2 EToken2 contract address.
* @param _symbol assigned symbol.
* @param _name assigned name.
*
* @return success.
*/
function init(EToken2Interface _etoken2, string _symbol, string _name) returns(bool) {
if (address(etoken2) != 0x0) {
return false;
}
etoken2 = _etoken2;
etoken2Symbol = _bytes32(_symbol);
name = _name;
symbol = _symbol;
return true;
}
/**
* Only EToken2 is allowed to call.
*/
modifier onlyEToken2() {
if (msg.sender == address(etoken2)) {
_;
}
}
/**
* Only current asset owner is allowed to call.
*/
modifier onlyAssetOwner() {
if (etoken2.isOwner(msg.sender, etoken2Symbol)) {
_;
}
}
/**
* Returns asset implementation contract for current caller.
*
* @return asset implementation contract.
*/
function _getAsset() internal returns(AssetInterface) {
return AssetInterface(getVersionFor(msg.sender));
}
function recoverTokens(uint _value) onlyAssetOwner() returns(bool) {
return this.transferWithReference(msg.sender, _value, 'Tokens recovery');
}
/**
* Returns asset total supply.
*
* @return asset total supply.
*/
function totalSupply() constant returns(uint) {
return etoken2.totalSupply(etoken2Symbol);
}
/**
* Returns asset balance for a particular holder.
*
* @param _owner holder address.
*
* @return holder balance.
*/
function balanceOf(address _owner) constant returns(uint) {
return etoken2.balanceOf(_owner, etoken2Symbol);
}
/**
* Returns asset allowance from one holder to another.
*
* @param _from holder that allowed spending.
* @param _spender holder that is allowed to spend.
*
* @return holder to spender allowance.
*/
function allowance(address _from, address _spender) constant returns(uint) {
return etoken2.allowance(_from, _spender, etoken2Symbol);
}
/**
* Returns asset decimals.
*
* @return asset decimals.
*/
function decimals() constant returns(uint8) {
return etoken2.baseUnit(etoken2Symbol);
}
/**
* Transfers asset balance from the caller to specified receiver.
*
* @param _to holder address to give to.
* @param _value amount to transfer.
*
* @return success.
*/
function transfer(address _to, uint _value) returns(bool) {
return transferWithReference(_to, _value, '');
}
/**
* Transfers asset balance from the caller to specified receiver adding specified comment.
* Resolves asset implementation contract for the caller and forwards there arguments along with
* the caller address.
*
* @param _to holder address to give to.
* @param _value amount to transfer.
* @param _reference transfer comment to be included in a EToken2's Transfer event.
*
* @return success.
*/
function transferWithReference(address _to, uint _value, string _reference) returns(bool) {
return _getAsset()._performTransferWithReference(_to, _value, _reference, msg.sender);
}
/**
* Transfers asset balance from the caller to specified ICAP.
*
* @param _icap recipient ICAP to give to.
* @param _value amount to transfer.
*
* @return success.
*/
function transferToICAP(bytes32 _icap, uint _value) returns(bool) {
return transferToICAPWithReference(_icap, _value, '');
}
/**
* Transfers asset balance from the caller to specified ICAP adding specified comment.
* Resolves asset implementation contract for the caller and forwards there arguments along with
* the caller address.
*
* @param _icap recipient ICAP to give to.
* @param _value amount to transfer.
* @param _reference transfer comment to be included in a EToken2's Transfer event.
*
* @return success.
*/
function transferToICAPWithReference(bytes32 _icap, uint _value, string _reference) returns(bool) {
return _getAsset()._performTransferToICAPWithReference(_icap, _value, _reference, msg.sender);
}
/**
* Prforms allowance transfer of asset balance between holders.
*
* @param _from holder address to take from.
* @param _to holder address to give to.
* @param _value amount to transfer.
*
* @return success.
*/
function transferFrom(address _from, address _to, uint _value) returns(bool) {
return transferFromWithReference(_from, _to, _value, '');
}
/**
* Prforms allowance transfer of asset balance between holders adding specified comment.
* Resolves asset implementation contract for the caller and forwards there arguments along with
* the caller address.
*
* @param _from holder address to take from.
* @param _to holder address to give to.
* @param _value amount to transfer.
* @param _reference transfer comment to be included in a EToken2's Transfer event.
*
* @return success.
*/
function transferFromWithReference(address _from, address _to, uint _value, string _reference) returns(bool) {
return _getAsset()._performTransferFromWithReference(_from, _to, _value, _reference, msg.sender);
}
/**
* Performs transfer call on the EToken2 by the name of specified sender.
*
* Can only be called by asset implementation contract assigned to sender.
*
* @param _from holder address to take from.
* @param _to holder address to give to.
* @param _value amount to transfer.
* @param _reference transfer comment to be included in a EToken2's Transfer event.
* @param _sender initial caller.
*
* @return success.
*/
function _forwardTransferFromWithReference(address _from, address _to, uint _value, string _reference, address _sender) onlyImplementationFor(_sender) returns(bool) {
return etoken2.proxyTransferFromWithReference(_from, _to, _value, etoken2Symbol, _reference, _sender);
}
/**
* Prforms allowance transfer of asset balance between holders.
*
* @param _from holder address to take from.
* @param _icap recipient ICAP address to give to.
* @param _value amount to transfer.
*
* @return success.
*/
function transferFromToICAP(address _from, bytes32 _icap, uint _value) returns(bool) {
return transferFromToICAPWithReference(_from, _icap, _value, '');
}
/**
* Prforms allowance transfer of asset balance between holders adding specified comment.
* Resolves asset implementation contract for the caller and forwards there arguments along with
* the caller address.
*
* @param _from holder address to take from.
* @param _icap recipient ICAP address to give to.
* @param _value amount to transfer.
* @param _reference transfer comment to be included in a EToken2's Transfer event.
*
* @return success.
*/
function transferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference) returns(bool) {
return _getAsset()._performTransferFromToICAPWithReference(_from, _icap, _value, _reference, msg.sender);
}
/**
* Performs allowance transfer to ICAP call on the EToken2 by the name of specified sender.
*
* Can only be called by asset implementation contract assigned to sender.
*
* @param _from holder address to take from.
* @param _icap recipient ICAP address to give to.
* @param _value amount to transfer.
* @param _reference transfer comment to be included in a EToken2's Transfer event.
* @param _sender initial caller.
*
* @return success.
*/
function _forwardTransferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference, address _sender) onlyImplementationFor(_sender) returns(bool) {
return etoken2.proxyTransferFromToICAPWithReference(_from, _icap, _value, _reference, _sender);
}
/**
* Sets asset spending allowance for a specified spender.
* Resolves asset implementation contract for the caller and forwards there arguments along with
* the caller address.
*
* @param _spender holder address to set allowance to.
* @param _value amount to allow.
*
* @return success.
*/
function approve(address _spender, uint _value) returns(bool) {
return _getAsset()._performApprove(_spender, _value, msg.sender);
}
/**
* Performs allowance setting call on the EToken2 by the name of specified sender.
*
* Can only be called by asset implementation contract assigned to sender.
*
* @param _spender holder address to set allowance to.
* @param _value amount to allow.
* @param _sender initial caller.
*
* @return success.
*/
function _forwardApprove(address _spender, uint _value, address _sender) onlyImplementationFor(_sender) returns(bool) {
return etoken2.proxyApprove(_spender, _value, etoken2Symbol, _sender);
}
/**
* Emits ERC20 Transfer event on this contract.
*
* Can only be, and, called by assigned EToken2 when asset transfer happens.
*/
function emitTransfer(address _from, address _to, uint _value) onlyEToken2() {
Transfer(_from, _to, _value);
}
/**
* Emits ERC20 Approval event on this contract.
*
* Can only be, and, called by assigned EToken2 when asset allowance set happens.
*/
function emitApprove(address _from, address _spender, uint _value) onlyEToken2() {
Approval(_from, _spender, _value);
}
/**
* Resolves asset implementation contract for the caller and forwards there transaction data,
* along with the value. This allows for proxy interface growth.
*/
function () payable {
_getAsset()._performGeneric.value(msg.value)(msg.data, msg.sender);
_returnReturnData(true);
}
// 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);
}
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);
}
/**
* Indicates an upgrade freeze-time start, and the next asset implementation contract.
*/
event UpgradeProposed(address newVersion);
event UpgradePurged(address newVersion);
event UpgradeCommited(address newVersion);
event OptedOut(address sender, address version);
event OptedIn(address sender, address version);
// Current asset implementation contract address.
address latestVersion;
// Proposed next asset implementation contract address.
address pendingVersion;
// Upgrade freeze-time start.
uint pendingVersionTimestamp;
// Timespan for users to review the new implementation and make decision.
uint constant UPGRADE_FREEZE_TIME = 3 days;
// Asset implementation contract address that user decided to stick with.
// 0x0 means that user uses latest version.
mapping(address => address) userOptOutVersion;
/**
* Only asset implementation contract assigned to sender is allowed to call.
*/
modifier onlyImplementationFor(address _sender) {
if (getVersionFor(_sender) == msg.sender) {
_;
}
}
/**
* Returns asset implementation contract address assigned to sender.
*
* @param _sender sender address.
*
* @return asset implementation contract address.
*/
function getVersionFor(address _sender) constant returns(address) {
return userOptOutVersion[_sender] == 0 ? latestVersion : userOptOutVersion[_sender];
}
/**
* Returns current asset implementation contract address.
*
* @return asset implementation contract address.
*/
function getLatestVersion() constant returns(address) {
return latestVersion;
}
/**
* Returns proposed next asset implementation contract address.
*
* @return asset implementation contract address.
*/
function getPendingVersion() constant returns(address) {
return pendingVersion;
}
/**
* Returns upgrade freeze-time start.
*
* @return freeze-time start.
*/
function getPendingVersionTimestamp() constant returns(uint) {
return pendingVersionTimestamp;
}
/**
* Propose next asset implementation contract address.
*
* Can only be called by current asset owner.
*
* Note: freeze-time should not be applied for the initial setup.
*
* @param _newVersion asset implementation contract address.
*
* @return success.
*/
function proposeUpgrade(address _newVersion) onlyAssetOwner() returns(bool) {
// Should not already be in the upgrading process.
if (pendingVersion != 0x0) {
return false;
}
// New version address should be other than 0x0.
if (_newVersion == 0x0) {
return false;
}
// Don't apply freeze-time for the initial setup.
if (latestVersion == 0x0) {
latestVersion = _newVersion;
return true;
}
pendingVersion = _newVersion;
pendingVersionTimestamp = now;
UpgradeProposed(_newVersion);
return true;
}
/**
* Cancel the pending upgrade process.
*
* Can only be called by current asset owner.
*
* @return success.
*/
function purgeUpgrade() onlyAssetOwner() returns(bool) {
if (pendingVersion == 0x0) {
return false;
}
UpgradePurged(pendingVersion);
delete pendingVersion;
delete pendingVersionTimestamp;
return true;
}
/**
* Finalize an upgrade process setting new asset implementation contract address.
*
* Can only be called after an upgrade freeze-time.
*
* @return success.
*/
function commitUpgrade() returns(bool) {
if (pendingVersion == 0x0) {
return false;
}
if (pendingVersionTimestamp + UPGRADE_FREEZE_TIME > now) {
return false;
}
latestVersion = pendingVersion;
delete pendingVersion;
delete pendingVersionTimestamp;
UpgradeCommited(latestVersion);
return true;
}
/**
* Disagree with proposed upgrade, and stick with current asset implementation
* until further explicit agreement to upgrade.
*
* @return success.
*/
function optOut() returns(bool) {
if (userOptOutVersion[msg.sender] != 0x0) {
return false;
}
userOptOutVersion[msg.sender] = latestVersion;
OptedOut(msg.sender, latestVersion);
return true;
}
/**
* Implicitly agree to upgrade to current and future asset implementation upgrades,
* until further explicit disagreement.
*
* @return success.
*/
function optIn() returns(bool) {
delete userOptOutVersion[msg.sender];
OptedIn(msg.sender, latestVersion);
return true;
}
// Backwards compatibility.
function multiAsset() constant returns(EToken2Interface) {
return etoken2;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"multiAsset","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"commitUpgrade","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getLatestVersion","outputs":[{"name":"","type":"address"}],"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":"_forwardTransferFromWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"emitApprove","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"emitTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"recoverTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"etoken2","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getPendingVersionTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"purgeUpgrade","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"optIn","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":"transferFromWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_icap","type":"bytes32"},{"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":"transferFromToICAP","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"transferToICAPWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_sender","type":"address"}],"name":"_forwardApprove","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":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"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":false,"inputs":[{"name":"_from","type":"address"},{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"},{"name":"_sender","type":"address"}],"name":"_forwardTransferFromToICAPWithReference","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":"transferFromToICAPWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"}],"name":"transferFromToICAP","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"etoken2Symbol","outputs":[{"name":"","type":"bytes32"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getPendingVersion","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"transferWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_etoken2","type":"address"},{"name":"_symbol","type":"string"},{"name":"_name","type":"string"}],"name":"init","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newVersion","type":"address"}],"name":"proposeUpgrade","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"optOut","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_from","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"}],"name":"getVersionFor","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newVersion","type":"address"}],"name":"UpgradeProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newVersion","type":"address"}],"name":"UpgradePurged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newVersion","type":"address"}],"name":"UpgradeCommited","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"version","type":"address"}],"name":"OptedOut","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"version","type":"address"}],"name":"OptedIn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]Contract Creation Code
6060604052341561000f57600080fd5b5b612a688061001f6000396000f300606060405236156101d55763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663029a8bf781146102a657806306fdde03146102e2578063095ea7b31461036d5780630ba12c83146103b05780630e6d1de9146103d757806314cba0021461041357806318160ddd146104b857806323385089146104dd57806323b872dd1461051457806323de66511461055d57806330599fc514610594578063313ce567146105be578063406838b3146105e75780634bfaf2e8146106235780634dfe950d146106485780635b48684e1461066f5780636461fe391461069657806370a0823114610723578063733480b7146107615780637609c5a91461078e57806377fe38a4146108105780637bcdc2f01461088057806381d434e9146108ca57806384c5c34d1461093157806395d89b41146109fc5780639ab253cc14610a875780639b487f3f14610b37578063a48a663c14610bd8578063a525f42c14610c61578063a66e6e5c14610ca7578063a883fb9014610ccc578063a9059cbb14610d08578063ac35caee14610d4b578063b2b45df514610dd1578063c915fc9314610e93578063d4eec5a614610ed3578063dd62ed3e14610efa578063fe8beb7114610f3e575b5b6101de610f93565b73ffffffffffffffffffffffffffffffffffffffff1663db00b84834600036336040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff821660248201526040600482019081526044820184905290819060640185858082843782019150509450505050506000604051808303818588803b151561028457600080fd5b6125ee5a03f1151561029557600080fd5b505050506102a36001610fa4565b5b005b34156102b157600080fd5b6102b9610fc5565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6102f5610fe2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156103325780820151818401525b602001610319565b50505050905090810190601f16801561035f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561037857600080fd5b61039c73ffffffffffffffffffffffffffffffffffffffff60043516602435611080565b604051901515815260200160405180910390f35b34156103bb57600080fd5b61039c611148565b604051901515815260200160405180910390f35b34156103e257600080fd5b6102b961122e565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561041e57600080fd5b61039c73ffffffffffffffffffffffffffffffffffffffff6004803582169160248035909116916044359160849060643590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923573ffffffffffffffffffffffffffffffffffffffff16925061124b915050565b604051901515815260200160405180910390f35b34156104c357600080fd5b6104cb6113f8565b60405190815260200160405180910390f35b34156104e857600080fd5b6102a373ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435611495565b005b341561051f57600080fd5b61039c73ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435611522565b604051901515815260200160405180910390f35b341561056857600080fd5b6102a373ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435611548565b005b341561059f57600080fd5b61039c6004356115d5565b604051901515815260200160405180910390f35b34156105c957600080fd5b6105d1611776565b60405160ff909116815260200160405180910390f35b34156105f257600080fd5b6102b9611813565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561062e57600080fd5b6104cb61182f565b60405190815260200160405180910390f35b341561065357600080fd5b61039c611836565b604051901515815260200160405180910390f35b341561067a57600080fd5b61039c6119af565b604051901515815260200160405180910390f35b34156106a157600080fd5b61039c73ffffffffffffffffffffffffffffffffffffffff6004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611a5c95505050505050565b604051901515815260200160405180910390f35b341561072e57600080fd5b6104cb73ffffffffffffffffffffffffffffffffffffffff60043516611ba3565b60405190815260200160405180910390f35b341561076c57600080fd5b61039c600435602435611c5e565b604051901515815260200160405180910390f35b341561079957600080fd5b61039c6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505093359350611c8292505050565b604051901515815260200160405180910390f35b341561081b57600080fd5b61039c600480359060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611ca895505050505050565b604051901515815260200160405180910390f35b341561088b57600080fd5b61039c73ffffffffffffffffffffffffffffffffffffffff6004358116906024359060443516611de0565b604051901515815260200160405180910390f35b34156108d557600080fd5b61039c60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505093359350611ef692505050565b604051901515815260200160405180910390f35b341561093c57600080fd5b61039c6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650611f1a95505050505050565b604051901515815260200160405180910390f35b3415610a0757600080fd5b6102f5611f3b565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156103325780820151818401525b602001610319565b50505050905090810190601f16801561035f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610a9257600080fd5b61039c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650611fd995505050505050565b604051901515815260200160405180910390f35b3415610b4257600080fd5b61039c6004803573ffffffffffffffffffffffffffffffffffffffff169060248035916044359160849060643590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923573ffffffffffffffffffffffffffffffffffffffff169250611ff8915050565b604051901515815260200160405180910390f35b3415610be357600080fd5b61039c6004803573ffffffffffffffffffffffffffffffffffffffff169060248035916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061218095505050505050565b604051901515815260200160405180910390f35b3415610c6c57600080fd5b61039c73ffffffffffffffffffffffffffffffffffffffff600435166024356044356122c6565b604051901515815260200160405180910390f35b3415610cb257600080fd5b6104cb6122ec565b60405190815260200160405180910390f35b3415610cd757600080fd5b6102b96122f2565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3415610d1357600080fd5b61039c73ffffffffffffffffffffffffffffffffffffffff6004351660243561230f565b604051901515815260200160405180910390f35b3415610d5657600080fd5b61039c6004803573ffffffffffffffffffffffffffffffffffffffff169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061233395505050505050565b604051901515815260200160405180910390f35b3415610ddc57600080fd5b61039c6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496506124aa95505050505050565b604051901515815260200160405180910390f35b3415610e9e57600080fd5b61039c73ffffffffffffffffffffffffffffffffffffffff60043516612551565b604051901515815260200160405180910390f35b3415610ede57600080fd5b61039c612755565b604051901515815260200160405180910390f35b3415610f0557600080fd5b6104cb73ffffffffffffffffffffffffffffffffffffffff60043581169060243516612845565b60405190815260200160405180910390f35b3415610f4957600080fd5b6102b973ffffffffffffffffffffffffffffffffffffffff6004351661290f565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6000610f9e3361290f565b90505b90565b593d81016040523d6000823e818015610fbb573d82f35b3d82fd5b50505b50565b60005473ffffffffffffffffffffffffffffffffffffffff165b90565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110785780601f1061104d57610100808354040283529160200191611078565b820191906000526020600020905b81548152906001019060200180831161105b57829003601f168201915b505050505081565b600061108a610f93565b73ffffffffffffffffffffffffffffffffffffffff1663e34f71378484336000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff938416600482015260248101929092529091166044820152606401602060405180830381600087803b151561112557600080fd5b6102c65a03f1151561113657600080fd5b50505060405180519150505b92915050565b60055460009073ffffffffffffffffffffffffffffffffffffffff16151561117257506000610fa1565b426203f48060065401111561118957506000610fa1565b600580546004805473ffffffffffffffffffffffffffffffffffffffff8084167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161792839055921690925560006006557f3d14778962aac3ae6130883f4c9d2e995d6fc2a644b7867087a59e92b954b4ed911660405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a15060015b90565b60045473ffffffffffffffffffffffffffffffffffffffff165b90565b6000813373ffffffffffffffffffffffffffffffffffffffff1661126e8261290f565b73ffffffffffffffffffffffffffffffffffffffff1614156113ec576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663161ff66288888860015489896000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808816600483019081528782166024840152604483018790526064830186905290831660a483015260c060848301908152909160c40184818151815260200191508051906020019080838360005b8381101561137f5780820151818401525b602001611366565b50505050905090810190601f1680156113ac5780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b15156113cf57600080fd5b6102c65a03f115156113e057600080fd5b50505060405180519250505b5b5b5095945050505050565b6000805460015473ffffffffffffffffffffffffffffffffffffffff9091169063b524abcf9083604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561147557600080fd5b6102c65a03f1151561148657600080fd5b50505060405180519150505b90565b6000543373ffffffffffffffffffffffffffffffffffffffff90811691161415610fbf578173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405190815260200160405180910390a35b5b5b505050565b600061153e848484602060405190810160405260008152611a5c565b90505b9392505050565b6000543373ffffffffffffffffffffffffffffffffffffffff90811691161415610fbf578173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a35b5b5b505050565b6000805460015473ffffffffffffffffffffffffffffffffffffffff9091169063e96b462a90339084604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff851602815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401602060405180830381600087803b151561166e57600080fd5b6102c65a03f1151561167f57600080fd5b505050604051805190501561176f573073ffffffffffffffffffffffffffffffffffffffff1663ac35caee33846000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff851602815273ffffffffffffffffffffffffffffffffffffffff9092166004830152602482015260606044820152600f60648201527f546f6b656e73207265636f766572790000000000000000000000000000000000608482015260a401602060405180830381600087803b151561175257600080fd5b6102c65a03f1151561176357600080fd5b50505060405180519150505b5b5b919050565b6000805460015473ffffffffffffffffffffffffffffffffffffffff9091169063dc86e6f09083604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561147557600080fd5b6102c65a03f1151561148657600080fd5b50505060405180519150505b90565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6006545b90565b6000805460015473ffffffffffffffffffffffffffffffffffffffff9091169063e96b462a90339084604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff851602815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401602060405180830381600087803b15156118cf57600080fd5b6102c65a03f115156118e057600080fd5b5050506040518051905015610fa15760055473ffffffffffffffffffffffffffffffffffffffff16151561191657506000610fa1565b6005547f076759518ae32ffdfd36b17503d14cdd8042c074645c635aa26dceea2719acef9073ffffffffffffffffffffffffffffffffffffffff1660405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a150600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055600060065560015b5b5b90565b73ffffffffffffffffffffffffffffffffffffffff3381811660009081526007602052604080822080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905560045491937fd70d37e6618959bdba868db2d4138b221ef96101565dfc1a0bd38af1d3ab63c1939216905173ffffffffffffffffffffffffffffffffffffffff9283168152911660208201526040908101905180910390a15060015b90565b6000611a66610f93565b73ffffffffffffffffffffffffffffffffffffffff1663cca9702586868686336000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff881602815273ffffffffffffffffffffffffffffffffffffffff80871660048301908152868216602484015260448301869052908316608483015260a060648301908152909160a40184818151815260200191508051906020019080838360005b83811015611b2f5780820151818401525b602001611b16565b50505050905090810190601f168015611b5c5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1515611b7e57600080fd5b6102c65a03f11515611b8f57600080fd5b50505060405180519150505b949350505050565b6000805460015473ffffffffffffffffffffffffffffffffffffffff90911690634d30b6be90849084604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff851602815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401602060405180830381600087803b151561175257600080fd5b6102c65a03f1151561176357600080fd5b50505060405180519150505b919050565b6000611c798383602060405190810160405260008152611ca8565b90505b92915050565b600061153e848484602060405190810160405260008152611f1a565b90505b9392505050565b6000611cb2610f93565b73ffffffffffffffffffffffffffffffffffffffff1663c10796df858585336000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8716028152600481018581526024820185905273ffffffffffffffffffffffffffffffffffffffff83166064830152608060448301908152909160840184818151815260200191508051906020019080838360005b83811015611d6e5780820151818401525b602001611d55565b50505050905090810190601f168015611d9b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515611dbc57600080fd5b6102c65a03f11515611dcd57600080fd5b50505060405180519150505b9392505050565b6000813373ffffffffffffffffffffffffffffffffffffffff16611e038261290f565b73ffffffffffffffffffffffffffffffffffffffff161415611eec576000805460015473ffffffffffffffffffffffffffffffffffffffff909116916314712e2f9188918891908890604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff9485166004820152602481019390935260448301919091529091166064820152608401602060405180830381600087803b1515611ecf57600080fd5b6102c65a03f11515611ee057600080fd5b50505060405180519250505b5b5b509392505050565b6000611c798383602060405190810160405260008152611fd9565b90505b92915050565b6000611f3085611f298661298d565b8585612180565b90505b949350505050565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110785780601f1061104d57610100808354040283529160200191611078565b820191906000526020600020905b81548152906001019060200180831161105b57829003601f168201915b505050505081565b600061153e611fe78561298d565b8484611ca8565b90505b9392505050565b6000813373ffffffffffffffffffffffffffffffffffffffff1661201b8261290f565b73ffffffffffffffffffffffffffffffffffffffff1614156113ec576000805473ffffffffffffffffffffffffffffffffffffffff169063a69032ee9089908990899089908990604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff881602815273ffffffffffffffffffffffffffffffffffffffff808716600483019081526024830187905260448301869052908316608483015260a060648301908152909160a40184818151815260200191508051906020019080838360005b838110156121085780820151818401525b6020016120ef565b50505050905090810190601f1680156121355780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15156113cf57600080fd5b6102c65a03f115156113e057600080fd5b50505060405180519250505b5b5b5095945050505050565b600061218a610f93565b73ffffffffffffffffffffffffffffffffffffffff1663eb58705b86868686336000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff881602815273ffffffffffffffffffffffffffffffffffffffff808716600483019081526024830187905260448301869052908316608483015260a060648301908152909160a40184818151815260200191508051906020019080838360005b83811015611b2f5780820151818401525b602001611b16565b50505050905090810190601f168015611b5c5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1515611b7e57600080fd5b6102c65a03f11515611b8f57600080fd5b50505060405180519150505b949350505050565b600061153e848484602060405190810160405260008152612180565b90505b9392505050565b60015481565b60055473ffffffffffffffffffffffffffffffffffffffff165b90565b6000611c798383602060405190810160405260008152612333565b90505b92915050565b600061233d610f93565b73ffffffffffffffffffffffffffffffffffffffff16631962df71858585336000604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611d6e5780820151818401525b602001611d55565b50505050905090810190601f168015611d9b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515611dbc57600080fd5b6102c65a03f11515611dcd57600080fd5b50505060405180519150505b9392505050565b6000805473ffffffffffffffffffffffffffffffffffffffff16156124d157506000611541565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861617905561251a8361298d565b600155600282805161253092916020019061299c565b50600383805161254492916020019061299c565b50600190505b9392505050565b6000805460015473ffffffffffffffffffffffffffffffffffffffff9091169063e96b462a90339084604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff851602815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401602060405180830381600087803b15156125ea57600080fd5b6102c65a03f115156125fb57600080fd5b505050604051805190501561176f5760055473ffffffffffffffffffffffffffffffffffffffff16156126305750600061176f565b73ffffffffffffffffffffffffffffffffffffffff821615156126555750600061176f565b60045473ffffffffffffffffffffffffffffffffffffffff1615156126bc5750600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316179055600161176f565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416179055426006557f8ddc9aa7b538ef74fb9f825a27578614d8cd88e4062392c6613d2d65ed987d768260405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a15060015b5b5b919050565b73ffffffffffffffffffffffffffffffffffffffff3381166000908152600760205260408120549091161561278c57506000610fa1565b600480543373ffffffffffffffffffffffffffffffffffffffff8181166000908152600760205260409081902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169483169490941790935592547fe1dc7792699a69777c1f0b1695b7c1b9a2677af13bb0b61b9b9b975d30acf7b29391929116905173ffffffffffffffffffffffffffffffffffffffff9283168152911660208201526040908101905180910390a15060015b90565b6000805460015473ffffffffffffffffffffffffffffffffffffffff90911690631c8d5d38908590859085604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff93841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561112557600080fd5b6102c65a03f1151561113657600080fd5b50505060405180519150505b92915050565b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600760205260408120549091161561296b5773ffffffffffffffffffffffffffffffffffffffff80831660009081526007602052604090205416612985565b60045473ffffffffffffffffffffffffffffffffffffffff165b90505b919050565b6000602082015190505b919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106129dd57805160ff1916838001178555612a0a565b82800160010185558215612a0a579182015b82811115612a0a5782518255916020019190600101906129ef565b5b50612a17929150612a1b565b5090565b610fa191905b80821115612a175760008155600101612a21565b5090565b905600a165627a7a723058201a2cb6f0b9ce5118a7a7ea93082b2bb8a88e598cef9f60a42e1244104d9ebfbb0029
Deployed Bytecode
0x606060405236156101d55763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663029a8bf781146102a657806306fdde03146102e2578063095ea7b31461036d5780630ba12c83146103b05780630e6d1de9146103d757806314cba0021461041357806318160ddd146104b857806323385089146104dd57806323b872dd1461051457806323de66511461055d57806330599fc514610594578063313ce567146105be578063406838b3146105e75780634bfaf2e8146106235780634dfe950d146106485780635b48684e1461066f5780636461fe391461069657806370a0823114610723578063733480b7146107615780637609c5a91461078e57806377fe38a4146108105780637bcdc2f01461088057806381d434e9146108ca57806384c5c34d1461093157806395d89b41146109fc5780639ab253cc14610a875780639b487f3f14610b37578063a48a663c14610bd8578063a525f42c14610c61578063a66e6e5c14610ca7578063a883fb9014610ccc578063a9059cbb14610d08578063ac35caee14610d4b578063b2b45df514610dd1578063c915fc9314610e93578063d4eec5a614610ed3578063dd62ed3e14610efa578063fe8beb7114610f3e575b5b6101de610f93565b73ffffffffffffffffffffffffffffffffffffffff1663db00b84834600036336040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff821660248201526040600482019081526044820184905290819060640185858082843782019150509450505050506000604051808303818588803b151561028457600080fd5b6125ee5a03f1151561029557600080fd5b505050506102a36001610fa4565b5b005b34156102b157600080fd5b6102b9610fc5565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6102f5610fe2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156103325780820151818401525b602001610319565b50505050905090810190601f16801561035f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561037857600080fd5b61039c73ffffffffffffffffffffffffffffffffffffffff60043516602435611080565b604051901515815260200160405180910390f35b34156103bb57600080fd5b61039c611148565b604051901515815260200160405180910390f35b34156103e257600080fd5b6102b961122e565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561041e57600080fd5b61039c73ffffffffffffffffffffffffffffffffffffffff6004803582169160248035909116916044359160849060643590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923573ffffffffffffffffffffffffffffffffffffffff16925061124b915050565b604051901515815260200160405180910390f35b34156104c357600080fd5b6104cb6113f8565b60405190815260200160405180910390f35b34156104e857600080fd5b6102a373ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435611495565b005b341561051f57600080fd5b61039c73ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435611522565b604051901515815260200160405180910390f35b341561056857600080fd5b6102a373ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435611548565b005b341561059f57600080fd5b61039c6004356115d5565b604051901515815260200160405180910390f35b34156105c957600080fd5b6105d1611776565b60405160ff909116815260200160405180910390f35b34156105f257600080fd5b6102b9611813565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561062e57600080fd5b6104cb61182f565b60405190815260200160405180910390f35b341561065357600080fd5b61039c611836565b604051901515815260200160405180910390f35b341561067a57600080fd5b61039c6119af565b604051901515815260200160405180910390f35b34156106a157600080fd5b61039c73ffffffffffffffffffffffffffffffffffffffff6004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611a5c95505050505050565b604051901515815260200160405180910390f35b341561072e57600080fd5b6104cb73ffffffffffffffffffffffffffffffffffffffff60043516611ba3565b60405190815260200160405180910390f35b341561076c57600080fd5b61039c600435602435611c5e565b604051901515815260200160405180910390f35b341561079957600080fd5b61039c6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505093359350611c8292505050565b604051901515815260200160405180910390f35b341561081b57600080fd5b61039c600480359060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611ca895505050505050565b604051901515815260200160405180910390f35b341561088b57600080fd5b61039c73ffffffffffffffffffffffffffffffffffffffff6004358116906024359060443516611de0565b604051901515815260200160405180910390f35b34156108d557600080fd5b61039c60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505093359350611ef692505050565b604051901515815260200160405180910390f35b341561093c57600080fd5b61039c6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650611f1a95505050505050565b604051901515815260200160405180910390f35b3415610a0757600080fd5b6102f5611f3b565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156103325780820151818401525b602001610319565b50505050905090810190601f16801561035f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610a9257600080fd5b61039c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650611fd995505050505050565b604051901515815260200160405180910390f35b3415610b4257600080fd5b61039c6004803573ffffffffffffffffffffffffffffffffffffffff169060248035916044359160849060643590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923573ffffffffffffffffffffffffffffffffffffffff169250611ff8915050565b604051901515815260200160405180910390f35b3415610be357600080fd5b61039c6004803573ffffffffffffffffffffffffffffffffffffffff169060248035916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061218095505050505050565b604051901515815260200160405180910390f35b3415610c6c57600080fd5b61039c73ffffffffffffffffffffffffffffffffffffffff600435166024356044356122c6565b604051901515815260200160405180910390f35b3415610cb257600080fd5b6104cb6122ec565b60405190815260200160405180910390f35b3415610cd757600080fd5b6102b96122f2565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3415610d1357600080fd5b61039c73ffffffffffffffffffffffffffffffffffffffff6004351660243561230f565b604051901515815260200160405180910390f35b3415610d5657600080fd5b61039c6004803573ffffffffffffffffffffffffffffffffffffffff169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061233395505050505050565b604051901515815260200160405180910390f35b3415610ddc57600080fd5b61039c6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496506124aa95505050505050565b604051901515815260200160405180910390f35b3415610e9e57600080fd5b61039c73ffffffffffffffffffffffffffffffffffffffff60043516612551565b604051901515815260200160405180910390f35b3415610ede57600080fd5b61039c612755565b604051901515815260200160405180910390f35b3415610f0557600080fd5b6104cb73ffffffffffffffffffffffffffffffffffffffff60043581169060243516612845565b60405190815260200160405180910390f35b3415610f4957600080fd5b6102b973ffffffffffffffffffffffffffffffffffffffff6004351661290f565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6000610f9e3361290f565b90505b90565b593d81016040523d6000823e818015610fbb573d82f35b3d82fd5b50505b50565b60005473ffffffffffffffffffffffffffffffffffffffff165b90565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110785780601f1061104d57610100808354040283529160200191611078565b820191906000526020600020905b81548152906001019060200180831161105b57829003601f168201915b505050505081565b600061108a610f93565b73ffffffffffffffffffffffffffffffffffffffff1663e34f71378484336000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff938416600482015260248101929092529091166044820152606401602060405180830381600087803b151561112557600080fd5b6102c65a03f1151561113657600080fd5b50505060405180519150505b92915050565b60055460009073ffffffffffffffffffffffffffffffffffffffff16151561117257506000610fa1565b426203f48060065401111561118957506000610fa1565b600580546004805473ffffffffffffffffffffffffffffffffffffffff8084167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161792839055921690925560006006557f3d14778962aac3ae6130883f4c9d2e995d6fc2a644b7867087a59e92b954b4ed911660405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a15060015b90565b60045473ffffffffffffffffffffffffffffffffffffffff165b90565b6000813373ffffffffffffffffffffffffffffffffffffffff1661126e8261290f565b73ffffffffffffffffffffffffffffffffffffffff1614156113ec576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663161ff66288888860015489896000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808816600483019081528782166024840152604483018790526064830186905290831660a483015260c060848301908152909160c40184818151815260200191508051906020019080838360005b8381101561137f5780820151818401525b602001611366565b50505050905090810190601f1680156113ac5780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b15156113cf57600080fd5b6102c65a03f115156113e057600080fd5b50505060405180519250505b5b5b5095945050505050565b6000805460015473ffffffffffffffffffffffffffffffffffffffff9091169063b524abcf9083604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561147557600080fd5b6102c65a03f1151561148657600080fd5b50505060405180519150505b90565b6000543373ffffffffffffffffffffffffffffffffffffffff90811691161415610fbf578173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405190815260200160405180910390a35b5b5b505050565b600061153e848484602060405190810160405260008152611a5c565b90505b9392505050565b6000543373ffffffffffffffffffffffffffffffffffffffff90811691161415610fbf578173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a35b5b5b505050565b6000805460015473ffffffffffffffffffffffffffffffffffffffff9091169063e96b462a90339084604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff851602815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401602060405180830381600087803b151561166e57600080fd5b6102c65a03f1151561167f57600080fd5b505050604051805190501561176f573073ffffffffffffffffffffffffffffffffffffffff1663ac35caee33846000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff851602815273ffffffffffffffffffffffffffffffffffffffff9092166004830152602482015260606044820152600f60648201527f546f6b656e73207265636f766572790000000000000000000000000000000000608482015260a401602060405180830381600087803b151561175257600080fd5b6102c65a03f1151561176357600080fd5b50505060405180519150505b5b5b919050565b6000805460015473ffffffffffffffffffffffffffffffffffffffff9091169063dc86e6f09083604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561147557600080fd5b6102c65a03f1151561148657600080fd5b50505060405180519150505b90565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6006545b90565b6000805460015473ffffffffffffffffffffffffffffffffffffffff9091169063e96b462a90339084604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff851602815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401602060405180830381600087803b15156118cf57600080fd5b6102c65a03f115156118e057600080fd5b5050506040518051905015610fa15760055473ffffffffffffffffffffffffffffffffffffffff16151561191657506000610fa1565b6005547f076759518ae32ffdfd36b17503d14cdd8042c074645c635aa26dceea2719acef9073ffffffffffffffffffffffffffffffffffffffff1660405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a150600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055600060065560015b5b5b90565b73ffffffffffffffffffffffffffffffffffffffff3381811660009081526007602052604080822080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905560045491937fd70d37e6618959bdba868db2d4138b221ef96101565dfc1a0bd38af1d3ab63c1939216905173ffffffffffffffffffffffffffffffffffffffff9283168152911660208201526040908101905180910390a15060015b90565b6000611a66610f93565b73ffffffffffffffffffffffffffffffffffffffff1663cca9702586868686336000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff881602815273ffffffffffffffffffffffffffffffffffffffff80871660048301908152868216602484015260448301869052908316608483015260a060648301908152909160a40184818151815260200191508051906020019080838360005b83811015611b2f5780820151818401525b602001611b16565b50505050905090810190601f168015611b5c5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1515611b7e57600080fd5b6102c65a03f11515611b8f57600080fd5b50505060405180519150505b949350505050565b6000805460015473ffffffffffffffffffffffffffffffffffffffff90911690634d30b6be90849084604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff851602815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401602060405180830381600087803b151561175257600080fd5b6102c65a03f1151561176357600080fd5b50505060405180519150505b919050565b6000611c798383602060405190810160405260008152611ca8565b90505b92915050565b600061153e848484602060405190810160405260008152611f1a565b90505b9392505050565b6000611cb2610f93565b73ffffffffffffffffffffffffffffffffffffffff1663c10796df858585336000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8716028152600481018581526024820185905273ffffffffffffffffffffffffffffffffffffffff83166064830152608060448301908152909160840184818151815260200191508051906020019080838360005b83811015611d6e5780820151818401525b602001611d55565b50505050905090810190601f168015611d9b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515611dbc57600080fd5b6102c65a03f11515611dcd57600080fd5b50505060405180519150505b9392505050565b6000813373ffffffffffffffffffffffffffffffffffffffff16611e038261290f565b73ffffffffffffffffffffffffffffffffffffffff161415611eec576000805460015473ffffffffffffffffffffffffffffffffffffffff909116916314712e2f9188918891908890604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff9485166004820152602481019390935260448301919091529091166064820152608401602060405180830381600087803b1515611ecf57600080fd5b6102c65a03f11515611ee057600080fd5b50505060405180519250505b5b5b509392505050565b6000611c798383602060405190810160405260008152611fd9565b90505b92915050565b6000611f3085611f298661298d565b8585612180565b90505b949350505050565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110785780601f1061104d57610100808354040283529160200191611078565b820191906000526020600020905b81548152906001019060200180831161105b57829003601f168201915b505050505081565b600061153e611fe78561298d565b8484611ca8565b90505b9392505050565b6000813373ffffffffffffffffffffffffffffffffffffffff1661201b8261290f565b73ffffffffffffffffffffffffffffffffffffffff1614156113ec576000805473ffffffffffffffffffffffffffffffffffffffff169063a69032ee9089908990899089908990604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff881602815273ffffffffffffffffffffffffffffffffffffffff808716600483019081526024830187905260448301869052908316608483015260a060648301908152909160a40184818151815260200191508051906020019080838360005b838110156121085780820151818401525b6020016120ef565b50505050905090810190601f1680156121355780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15156113cf57600080fd5b6102c65a03f115156113e057600080fd5b50505060405180519250505b5b5b5095945050505050565b600061218a610f93565b73ffffffffffffffffffffffffffffffffffffffff1663eb58705b86868686336000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff881602815273ffffffffffffffffffffffffffffffffffffffff808716600483019081526024830187905260448301869052908316608483015260a060648301908152909160a40184818151815260200191508051906020019080838360005b83811015611b2f5780820151818401525b602001611b16565b50505050905090810190601f168015611b5c5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1515611b7e57600080fd5b6102c65a03f11515611b8f57600080fd5b50505060405180519150505b949350505050565b600061153e848484602060405190810160405260008152612180565b90505b9392505050565b60015481565b60055473ffffffffffffffffffffffffffffffffffffffff165b90565b6000611c798383602060405190810160405260008152612333565b90505b92915050565b600061233d610f93565b73ffffffffffffffffffffffffffffffffffffffff16631962df71858585336000604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611d6e5780820151818401525b602001611d55565b50505050905090810190601f168015611d9b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515611dbc57600080fd5b6102c65a03f11515611dcd57600080fd5b50505060405180519150505b9392505050565b6000805473ffffffffffffffffffffffffffffffffffffffff16156124d157506000611541565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861617905561251a8361298d565b600155600282805161253092916020019061299c565b50600383805161254492916020019061299c565b50600190505b9392505050565b6000805460015473ffffffffffffffffffffffffffffffffffffffff9091169063e96b462a90339084604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff851602815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401602060405180830381600087803b15156125ea57600080fd5b6102c65a03f115156125fb57600080fd5b505050604051805190501561176f5760055473ffffffffffffffffffffffffffffffffffffffff16156126305750600061176f565b73ffffffffffffffffffffffffffffffffffffffff821615156126555750600061176f565b60045473ffffffffffffffffffffffffffffffffffffffff1615156126bc5750600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316179055600161176f565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416179055426006557f8ddc9aa7b538ef74fb9f825a27578614d8cd88e4062392c6613d2d65ed987d768260405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a15060015b5b5b919050565b73ffffffffffffffffffffffffffffffffffffffff3381166000908152600760205260408120549091161561278c57506000610fa1565b600480543373ffffffffffffffffffffffffffffffffffffffff8181166000908152600760205260409081902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169483169490941790935592547fe1dc7792699a69777c1f0b1695b7c1b9a2677af13bb0b61b9b9b975d30acf7b29391929116905173ffffffffffffffffffffffffffffffffffffffff9283168152911660208201526040908101905180910390a15060015b90565b6000805460015473ffffffffffffffffffffffffffffffffffffffff90911690631c8d5d38908590859085604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff93841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561112557600080fd5b6102c65a03f1151561113657600080fd5b50505060405180519150505b92915050565b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600760205260408120549091161561296b5773ffffffffffffffffffffffffffffffffffffffff80831660009081526007602052604090205416612985565b60045473ffffffffffffffffffffffffffffffffffffffff165b90505b919050565b6000602082015190505b919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106129dd57805160ff1916838001178555612a0a565b82800160010185558215612a0a579182015b82811115612a0a5782518255916020019190600101906129ef565b5b50612a17929150612a1b565b5090565b610fa191905b80821115612a175760008155600101612a21565b5090565b905600a165627a7a723058201a2cb6f0b9ce5118a7a7ea93082b2bb8a88e598cef9f60a42e1244104d9ebfbb0029
Swarm Source
bzzr://1a2cb6f0b9ce5118a7a7ea93082b2bb8a88e598cef9f60a42e1244104d9ebfbb
Loading...
Loading
Loading...
Loading
OVERVIEW
Solve.Care is a global Blockchain platform and ecosystem for coordination, administration and payments of healthcare.Net Worth in USD
$328.40
Net Worth in ETH
0.175984
Token Allocations
SOLVE
94.97%
AAVE
2.92%
RCN
0.84%
Others
1.27%
Multichain Portfolio | 34 Chains
Loading...
Loading
Loading...
Loading
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.