Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
MultiTokenNetwork
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-10-05
*/
pragma solidity ^0.4.24;
// File: openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol
/**
* @title ERC20Basic
* @dev Simpler version of ERC20 interface
* See https://github.com/ethereum/EIPs/issues/179
*/
contract ERC20Basic {
function totalSupply() public view returns (uint256);
function balanceOf(address _who) public view returns (uint256);
function transfer(address _to, uint256 _value) public returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
}
// File: openzeppelin-solidity/contracts/token/ERC20/ERC20.sol
/**
* @title ERC20 interface
* @dev see https://github.com/ethereum/EIPs/issues/20
*/
contract ERC20 is ERC20Basic {
function allowance(address _owner, address _spender)
public view returns (uint256);
function transferFrom(address _from, address _to, uint256 _value)
public returns (bool);
function approve(address _spender, uint256 _value) public returns (bool);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
}
// File: openzeppelin-solidity/contracts/ownership/Ownable.sol
/**
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions, this simplifies the implementation of "user permissions".
*/
contract Ownable {
address public owner;
event OwnershipRenounced(address indexed previousOwner);
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* account.
*/
constructor() public {
owner = msg.sender;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
/**
* @dev Allows the current owner to relinquish control of the contract.
* @notice Renouncing to ownership will leave the contract without an owner.
* It will not be possible to call the functions with the `onlyOwner`
* modifier anymore.
*/
function renounceOwnership() public onlyOwner {
emit OwnershipRenounced(owner);
owner = address(0);
}
/**
* @dev Allows the current owner to transfer control of the contract to a newOwner.
* @param _newOwner The address to transfer ownership to.
*/
function transferOwnership(address _newOwner) public onlyOwner {
_transferOwnership(_newOwner);
}
/**
* @dev Transfers control of the contract to a newOwner.
* @param _newOwner The address to transfer ownership to.
*/
function _transferOwnership(address _newOwner) internal {
require(_newOwner != address(0));
emit OwnershipTransferred(owner, _newOwner);
owner = _newOwner;
}
}
// File: openzeppelin-solidity/contracts/lifecycle/Pausable.sol
/**
* @title Pausable
* @dev Base contract which allows children to implement an emergency stop mechanism.
*/
contract Pausable is Ownable {
event Pause();
event Unpause();
bool public paused = false;
/**
* @dev Modifier to make a function callable only when the contract is not paused.
*/
modifier whenNotPaused() {
require(!paused);
_;
}
/**
* @dev Modifier to make a function callable only when the contract is paused.
*/
modifier whenPaused() {
require(paused);
_;
}
/**
* @dev called by the owner to pause, triggers stopped state
*/
function pause() public onlyOwner whenNotPaused {
paused = true;
emit Pause();
}
/**
* @dev called by the owner to unpause, returns to normal state
*/
function unpause() public onlyOwner whenPaused {
paused = false;
emit Unpause();
}
}
// File: contracts/network/AbstractDeployer.sol
contract AbstractDeployer is Ownable {
function title() public view returns(string);
function deploy(bytes data)
external onlyOwner returns(address result)
{
// solium-disable-next-line security/no-low-level-calls
require(address(this).call(data), "Arbitrary call failed");
// solium-disable-next-line security/no-inline-assembly
assembly {
returndatacopy(0, 0, 32)
result := mload(0)
}
}
}
// File: contracts/interface/IBasicMultiToken.sol
contract IBasicMultiToken is ERC20 {
event Bundle(address indexed who, address indexed beneficiary, uint256 value);
event Unbundle(address indexed who, address indexed beneficiary, uint256 value);
function tokensCount() public view returns(uint256);
function tokens(uint i) public view returns(ERC20);
function bundleFirstTokens(address _beneficiary, uint256 _amount, uint256[] _tokenAmounts) public;
function bundle(address _beneficiary, uint256 _amount) public;
function unbundle(address _beneficiary, uint256 _value) public;
function unbundleSome(address _beneficiary, uint256 _value, ERC20[] _tokens) public;
function disableBundling() public;
function enableBundling() public;
}
// File: contracts/interface/IMultiToken.sol
contract IMultiToken is IBasicMultiToken {
event Update();
event Change(address indexed _fromToken, address indexed _toToken, address indexed _changer, uint256 _amount, uint256 _return);
function weights(address _token) public view returns(uint256);
function getReturn(address _fromToken, address _toToken, uint256 _amount) public view returns (uint256 returnAmount);
function change(address _fromToken, address _toToken, uint256 _amount, uint256 _minReturn) public returns (uint256 returnAmount);
function disableChanges() public;
}
// File: contracts/network/MultiTokenNetwork.sol
contract MultiTokenNetwork is Pausable {
address[] private _multitokens;
AbstractDeployer[] private _deployers;
event NewMultitoken(address indexed mtkn);
event NewDeployer(uint256 indexed index, address indexed oldDeployer, address indexed newDeployer);
function multitokensCount() public view returns(uint256) {
return _multitokens.length;
}
function multitokens(uint i) public view returns(address) {
return _multitokens[i];
}
function allMultitokens() public view returns(address[]) {
return _multitokens;
}
function deployersCount() public view returns(uint256) {
return _deployers.length;
}
function deployers(uint i) public view returns(AbstractDeployer) {
return _deployers[i];
}
function allWalletBalances(address wallet) public view returns(uint256[]) {
uint256[] memory balances = new uint256[](_multitokens.length);
for (uint i = 0; i < _multitokens.length; i++) {
balances[i] = ERC20(_multitokens[i]).balanceOf(wallet);
}
return balances;
}
function deleteMultitoken(uint index) public onlyOwner {
require(index < _multitokens.length, "deleteMultitoken: index out of range");
if (index != _multitokens.length - 1) {
_multitokens[index] = _multitokens[_multitokens.length - 1];
}
_multitokens.length -= 1;
}
function deleteDeployer(uint index) public onlyOwner {
require(index < _deployers.length, "deleteDeployer: index out of range");
if (index != _deployers.length - 1) {
_deployers[index] = _deployers[_deployers.length - 1];
}
_deployers.length -= 1;
}
function disableBundlingMultitoken(uint index) public onlyOwner {
IBasicMultiToken(_multitokens[index]).disableBundling();
}
function enableBundlingMultitoken(uint index) public onlyOwner {
IBasicMultiToken(_multitokens[index]).enableBundling();
}
function disableChangesMultitoken(uint index) public onlyOwner {
IMultiToken(_multitokens[index]).disableChanges();
}
function addDeployer(AbstractDeployer deployer) public onlyOwner whenNotPaused {
require(deployer.owner() == address(this), "addDeployer: first set MultiTokenNetwork as owner");
emit NewDeployer(_deployers.length, address(0), deployer);
_deployers.push(deployer);
}
function setDeployer(uint256 index, AbstractDeployer deployer) public onlyOwner whenNotPaused {
require(deployer.owner() == address(this), "setDeployer: first set MultiTokenNetwork as owner");
emit NewDeployer(index, _deployers[index], deployer);
_deployers[index] = deployer;
}
function deploy(uint256 index, bytes data) public whenNotPaused {
address mtkn = _deployers[index].deploy(data);
_multitokens.push(mtkn);
emit NewMultitoken(mtkn);
}
function makeCall(address target, uint256 value, bytes data) public onlyOwner {
// solium-disable-next-line security/no-call-value
require(target.call.value(value)(data), "Arbitrary call failed");
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[{"name":"wallet","type":"address"}],"name":"allWalletBalances","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"}],"name":"disableBundlingMultitoken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"},{"name":"data","type":"bytes"}],"name":"deploy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"multitokensCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"}],"name":"disableChangesMultitoken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"}],"name":"makeCall","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"deployer","type":"address"}],"name":"addDeployer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"i","type":"uint256"}],"name":"deployers","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"}],"name":"deleteDeployer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"}],"name":"enableBundlingMultitoken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"deployersCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"i","type":"uint256"}],"name":"multitokens","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"allMultitokens","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"}],"name":"deleteMultitoken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"},{"name":"deployer","type":"address"}],"name":"setDeployer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"mtkn","type":"address"}],"name":"NewMultitoken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"index","type":"uint256"},{"indexed":true,"name":"oldDeployer","type":"address"},{"indexed":true,"name":"newDeployer","type":"address"}],"name":"NewDeployer","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]Contract Creation Code
608060405260008054600160a860020a03191633179055611281806100256000396000f3006080604052600436106101035763ffffffff60e060020a6000350416630d0cd4f4811461010857806313f9cf76146101795780633f4ba83a146101935780635c975abb146101a857806361ff715f146101d15780636c69ab241461022f578063715018a614610256578063817725aa1461026b5780638456cb59146102835780638482167e14610298578063880f4039146103015780638da5cb5b146103225780638faa77b2146103535780639a8414131461036b578063a36b15d014610383578063a9b69e7c1461039b578063aa974eff146103b0578063c30b06e8146103c8578063e770390d146103dd578063eec786a6146103f5578063f2fde38b14610419575b600080fd5b34801561011457600080fd5b50610129600160a060020a036004351661043a565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561016557818101518382015260200161014d565b505050509050019250505060405180910390f35b34801561018557600080fd5b50610191600435610553565b005b34801561019f57600080fd5b506101916105f4565b3480156101b457600080fd5b506101bd61066a565b604080519115158252519081900360200190f35b3480156101dd57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261019195833595369560449491939091019190819084018382808284375094975061067a9650505050505050565b34801561023b57600080fd5b50610244610824565b60408051918252519081900360200190f35b34801561026257600080fd5b5061019161082b565b34801561027757600080fd5b50610191600435610897565b34801561028f57600080fd5b5061019161091d565b3480156102a457600080fd5b50604080516020600460443581810135601f8101849004840285018401909552848452610191948235600160a060020a03169460248035953695946064949201919081908401838280828437509497506109989650505050505050565b34801561030d57600080fd5b50610191600160a060020a0360043516610a82565b34801561032e57600080fd5b50610337610c40565b60408051600160a060020a039092168252519081900360200190f35b34801561035f57600080fd5b50610337600435610c4f565b34801561037757600080fd5b50610191600435610c7b565b34801561038f57600080fd5b50610191600435610d9c565b3480156103a757600080fd5b50610244610e22565b3480156103bc57600080fd5b50610337600435610e28565b3480156103d457600080fd5b50610129610e39565b3480156103e957600080fd5b50610191600435610e9b565b34801561040157600080fd5b50610191600435600160a060020a0360243516610fb7565b34801561042557600080fd5b50610191600160a060020a0360043516611178565b606080600060018054905060405190808252806020026020018201604052801561046e578160200160208202803883390190505b509150600090505b60015481101561054c57600180548290811061048e57fe5b6000918252602080832090910154604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152915191909216936370a0823193602480850194919392918390030190829087803b15801561050057600080fd5b505af1158015610514573d6000803e3d6000fd5b505050506040513d602081101561052a57600080fd5b5051825183908390811061053a57fe5b60209081029091010152600101610476565b5092915050565b600054600160a060020a0316331461056a57600080fd5b600180548290811061057857fe5b6000918252602082200154604080517f30e26cb80000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216926330e26cb89260048084019382900301818387803b1580156105d957600080fd5b505af11580156105ed573d6000803e3d6000fd5b5050505050565b600054600160a060020a0316331461060b57600080fd5b60005460a060020a900460ff16151561062357600080fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b60005460a060020a900460ff1681565b6000805460a060020a900460ff161561069257600080fd5b60028054849081106106a057fe5b60009182526020808320909101546040517e77436000000000000000000000000000000000000000000000000000000000815260048101838152865160248301528651600160a060020a03909316946277436094889492938493604490910192918601918190849084905b8381101561072357818101518382015260200161070b565b50505050905090810190601f1680156107505780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561076f57600080fd5b505af1158015610783573d6000803e3d6000fd5b505050506040513d602081101561079957600080fd5b505160018054808201825560009182527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038416908117909155604051929350917fd903a822601c41fd626c692dbb615e3b4ace9ebe82a9da25f26f4f656df014959190a2505050565b6001545b90565b600054600160a060020a0316331461084257600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031633146108ae57600080fd5b60018054829081106108bc57fe5b6000918252602082200154604080517fc5e2f4180000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169263c5e2f4189260048084019382900301818387803b1580156105d957600080fd5b600054600160a060020a0316331461093457600080fd5b60005460a060020a900460ff161561094b57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b600054600160a060020a031633146109af57600080fd5b82600160a060020a0316828260405180828051906020019080838360005b838110156109e55781810151838201526020016109cd565b50505050905090810190601f168015610a125780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af1925050501515610a7d576040805160e560020a62461bcd02815260206004820152601560248201527f4172626974726172792063616c6c206661696c65640000000000000000000000604482015290519081900360640190fd5b505050565b600054600160a060020a03163314610a9957600080fd5b60005460a060020a900460ff1615610ab057600080fd5b30600160a060020a031681600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610af857600080fd5b505af1158015610b0c573d6000803e3d6000fd5b505050506040513d6020811015610b2257600080fd5b5051600160a060020a031614610ba8576040805160e560020a62461bcd02815260206004820152603160248201527f6164644465706c6f7965723a20666972737420736574204d756c7469546f6b6560448201527f6e4e6574776f726b206173206f776e6572000000000000000000000000000000606482015290519081900360840190fd5b600254604051600160a060020a038316916000917ff353db33002786ddb63310214b9c47747dd55610bd96dc7ab366fd8d545d4bd5908390a4600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b6000600282815481101515610c6057fe5b600091825260209091200154600160a060020a031692915050565b600054600160a060020a03163314610c9257600080fd5b6002548110610d11576040805160e560020a62461bcd02815260206004820152602260248201527f64656c6574654465706c6f7965723a20696e646578206f7574206f662072616e60448201527f6765000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600254600019018114610d8557600280546000198101908110610d3057fe5b60009182526020909120015460028054600160a060020a039092169183908110610d5657fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055505b600280546000190190610d989082611218565b5050565b600054600160a060020a03163314610db357600080fd5b6001805482908110610dc157fe5b6000918252602082200154604080517feec034440000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169263eec034449260048084019382900301818387803b1580156105d957600080fd5b60025490565b6000600182815481101515610c6057fe5b60606001805480602002602001604051908101604052809291908181526020018280548015610e9157602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610e73575b5050505050905090565b600054600160a060020a03163314610eb257600080fd5b6001548110610f30576040805160e560020a62461bcd028152602060048201526024808201527f64656c6574654d756c7469746f6b656e3a20696e646578206f7574206f66207260448201527f616e676500000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600154600019018114610fa457600180546000198101908110610f4f57fe5b60009182526020909120015460018054600160a060020a039092169183908110610f7557fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055505b600180546000190190610d989082611218565b600054600160a060020a03163314610fce57600080fd5b60005460a060020a900460ff1615610fe557600080fd5b30600160a060020a031681600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561102d57600080fd5b505af1158015611041573d6000803e3d6000fd5b505050506040513d602081101561105757600080fd5b5051600160a060020a0316146110dd576040805160e560020a62461bcd02815260206004820152603160248201527f7365744465706c6f7965723a20666972737420736574204d756c7469546f6b6560448201527f6e4e6574776f726b206173206f776e6572000000000000000000000000000000606482015290519081900360840190fd5b80600160a060020a03166002838154811015156110f657fe5b6000918252602082200154604051600160a060020a039091169185917ff353db33002786ddb63310214b9c47747dd55610bd96dc7ab366fd8d545d4bd59190a48060028381548110151561114657fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055505050565b600054600160a060020a0316331461118f57600080fd5b6111988161119b565b50565b600160a060020a03811615156111b057600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b815481835581811115610a7d57600083815260209020610a7d91810190830161082891905b80821115611251576000815560010161123d565b50905600a165627a7a7230582092e0cbf4f20473d2badcec5fef9085359eea756c037359e29e35eccc9fcdad800029
Deployed Bytecode
0x6080604052600436106101035763ffffffff60e060020a6000350416630d0cd4f4811461010857806313f9cf76146101795780633f4ba83a146101935780635c975abb146101a857806361ff715f146101d15780636c69ab241461022f578063715018a614610256578063817725aa1461026b5780638456cb59146102835780638482167e14610298578063880f4039146103015780638da5cb5b146103225780638faa77b2146103535780639a8414131461036b578063a36b15d014610383578063a9b69e7c1461039b578063aa974eff146103b0578063c30b06e8146103c8578063e770390d146103dd578063eec786a6146103f5578063f2fde38b14610419575b600080fd5b34801561011457600080fd5b50610129600160a060020a036004351661043a565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561016557818101518382015260200161014d565b505050509050019250505060405180910390f35b34801561018557600080fd5b50610191600435610553565b005b34801561019f57600080fd5b506101916105f4565b3480156101b457600080fd5b506101bd61066a565b604080519115158252519081900360200190f35b3480156101dd57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261019195833595369560449491939091019190819084018382808284375094975061067a9650505050505050565b34801561023b57600080fd5b50610244610824565b60408051918252519081900360200190f35b34801561026257600080fd5b5061019161082b565b34801561027757600080fd5b50610191600435610897565b34801561028f57600080fd5b5061019161091d565b3480156102a457600080fd5b50604080516020600460443581810135601f8101849004840285018401909552848452610191948235600160a060020a03169460248035953695946064949201919081908401838280828437509497506109989650505050505050565b34801561030d57600080fd5b50610191600160a060020a0360043516610a82565b34801561032e57600080fd5b50610337610c40565b60408051600160a060020a039092168252519081900360200190f35b34801561035f57600080fd5b50610337600435610c4f565b34801561037757600080fd5b50610191600435610c7b565b34801561038f57600080fd5b50610191600435610d9c565b3480156103a757600080fd5b50610244610e22565b3480156103bc57600080fd5b50610337600435610e28565b3480156103d457600080fd5b50610129610e39565b3480156103e957600080fd5b50610191600435610e9b565b34801561040157600080fd5b50610191600435600160a060020a0360243516610fb7565b34801561042557600080fd5b50610191600160a060020a0360043516611178565b606080600060018054905060405190808252806020026020018201604052801561046e578160200160208202803883390190505b509150600090505b60015481101561054c57600180548290811061048e57fe5b6000918252602080832090910154604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152915191909216936370a0823193602480850194919392918390030190829087803b15801561050057600080fd5b505af1158015610514573d6000803e3d6000fd5b505050506040513d602081101561052a57600080fd5b5051825183908390811061053a57fe5b60209081029091010152600101610476565b5092915050565b600054600160a060020a0316331461056a57600080fd5b600180548290811061057857fe5b6000918252602082200154604080517f30e26cb80000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216926330e26cb89260048084019382900301818387803b1580156105d957600080fd5b505af11580156105ed573d6000803e3d6000fd5b5050505050565b600054600160a060020a0316331461060b57600080fd5b60005460a060020a900460ff16151561062357600080fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b60005460a060020a900460ff1681565b6000805460a060020a900460ff161561069257600080fd5b60028054849081106106a057fe5b60009182526020808320909101546040517e77436000000000000000000000000000000000000000000000000000000000815260048101838152865160248301528651600160a060020a03909316946277436094889492938493604490910192918601918190849084905b8381101561072357818101518382015260200161070b565b50505050905090810190601f1680156107505780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561076f57600080fd5b505af1158015610783573d6000803e3d6000fd5b505050506040513d602081101561079957600080fd5b505160018054808201825560009182527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038416908117909155604051929350917fd903a822601c41fd626c692dbb615e3b4ace9ebe82a9da25f26f4f656df014959190a2505050565b6001545b90565b600054600160a060020a0316331461084257600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031633146108ae57600080fd5b60018054829081106108bc57fe5b6000918252602082200154604080517fc5e2f4180000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169263c5e2f4189260048084019382900301818387803b1580156105d957600080fd5b600054600160a060020a0316331461093457600080fd5b60005460a060020a900460ff161561094b57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b600054600160a060020a031633146109af57600080fd5b82600160a060020a0316828260405180828051906020019080838360005b838110156109e55781810151838201526020016109cd565b50505050905090810190601f168015610a125780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af1925050501515610a7d576040805160e560020a62461bcd02815260206004820152601560248201527f4172626974726172792063616c6c206661696c65640000000000000000000000604482015290519081900360640190fd5b505050565b600054600160a060020a03163314610a9957600080fd5b60005460a060020a900460ff1615610ab057600080fd5b30600160a060020a031681600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610af857600080fd5b505af1158015610b0c573d6000803e3d6000fd5b505050506040513d6020811015610b2257600080fd5b5051600160a060020a031614610ba8576040805160e560020a62461bcd02815260206004820152603160248201527f6164644465706c6f7965723a20666972737420736574204d756c7469546f6b6560448201527f6e4e6574776f726b206173206f776e6572000000000000000000000000000000606482015290519081900360840190fd5b600254604051600160a060020a038316916000917ff353db33002786ddb63310214b9c47747dd55610bd96dc7ab366fd8d545d4bd5908390a4600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b6000600282815481101515610c6057fe5b600091825260209091200154600160a060020a031692915050565b600054600160a060020a03163314610c9257600080fd5b6002548110610d11576040805160e560020a62461bcd02815260206004820152602260248201527f64656c6574654465706c6f7965723a20696e646578206f7574206f662072616e60448201527f6765000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600254600019018114610d8557600280546000198101908110610d3057fe5b60009182526020909120015460028054600160a060020a039092169183908110610d5657fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055505b600280546000190190610d989082611218565b5050565b600054600160a060020a03163314610db357600080fd5b6001805482908110610dc157fe5b6000918252602082200154604080517feec034440000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169263eec034449260048084019382900301818387803b1580156105d957600080fd5b60025490565b6000600182815481101515610c6057fe5b60606001805480602002602001604051908101604052809291908181526020018280548015610e9157602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610e73575b5050505050905090565b600054600160a060020a03163314610eb257600080fd5b6001548110610f30576040805160e560020a62461bcd028152602060048201526024808201527f64656c6574654d756c7469746f6b656e3a20696e646578206f7574206f66207260448201527f616e676500000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600154600019018114610fa457600180546000198101908110610f4f57fe5b60009182526020909120015460018054600160a060020a039092169183908110610f7557fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055505b600180546000190190610d989082611218565b600054600160a060020a03163314610fce57600080fd5b60005460a060020a900460ff1615610fe557600080fd5b30600160a060020a031681600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561102d57600080fd5b505af1158015611041573d6000803e3d6000fd5b505050506040513d602081101561105757600080fd5b5051600160a060020a0316146110dd576040805160e560020a62461bcd02815260206004820152603160248201527f7365744465706c6f7965723a20666972737420736574204d756c7469546f6b6560448201527f6e4e6574776f726b206173206f776e6572000000000000000000000000000000606482015290519081900360840190fd5b80600160a060020a03166002838154811015156110f657fe5b6000918252602082200154604051600160a060020a039091169185917ff353db33002786ddb63310214b9c47747dd55610bd96dc7ab366fd8d545d4bd59190a48060028381548110151561114657fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055505050565b600054600160a060020a0316331461118f57600080fd5b6111988161119b565b50565b600160a060020a03811615156111b057600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b815481835581811115610a7d57600083815260209020610a7d91810190830161082891905b80821115611251576000815560010161123d565b50905600a165627a7a7230582092e0cbf4f20473d2badcec5fef9085359eea756c037359e29e35eccc9fcdad800029
Swarm Source
bzzr://92e0cbf4f20473d2badcec5fef9085359eea756c037359e29e35eccc9fcdad80
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.