Overview
ETH Balance
0.000889592656523036 ETH
Eth Value
$3.04 (@ $3,412.63/ETH)More Info
Private Name Tags
ContractCreator
Latest 6 from a total of 6 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Set Owner | 20111179 | 15 days ago | IN | 0 ETH | 0.0001522 | ||||
Execute | 15092493 | 726 days ago | IN | 0 ETH | 0.00086586 | ||||
Transfer | 15030775 | 737 days ago | IN | 0 ETH | 0.00061082 | ||||
Transfer | 15000193 | 742 days ago | IN | 0.00088959 ETH | 0.00079838 | ||||
Init | 12373618 | 1154 days ago | IN | 0 ETH | 0.00347101 | ||||
0x60806040 | 9773171 | 1555 days ago | IN | Create: BaseWallet | 0 ETH | 0.0181049 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
BaseWallet
Compiler Version
v0.5.4+commit.9549d8ff
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-03-30 */ // Copyright (C) 2018 Argent Labs Ltd. <https://argent.xyz> // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. pragma solidity ^0.5.4; /** * @title Module * @dev Interface for a module. * A module MUST implement the addModule() method to ensure that a wallet with at least one module * can never end up in a "frozen" state. * @author Julien Niset - <[email protected]> */ interface Module { /** * @dev Inits a module for a wallet by e.g. setting some wallet specific parameters in storage. * @param _wallet The wallet. */ function init(BaseWallet _wallet) external; /** * @dev Adds a module to a wallet. * @param _wallet The target wallet. * @param _module The modules to authorise. */ function addModule(BaseWallet _wallet, Module _module) external; /** * @dev Utility method to recover any ERC20 token that was sent to the * module by mistake. * @param _token The token to recover. */ function recoverToken(address _token) external; } /** * @title BaseWallet * @dev Simple modular wallet that authorises modules to call its invoke() method. * @author Julien Niset - <[email protected]> */ contract BaseWallet { // The implementation of the proxy address public implementation; // The owner address public owner; // The authorised modules mapping (address => bool) public authorised; // The enabled static calls mapping (bytes4 => address) public enabled; // The number of modules uint public modules; event AuthorisedModule(address indexed module, bool value); event EnabledStaticCall(address indexed module, bytes4 indexed method); event Invoked(address indexed module, address indexed target, uint indexed value, bytes data); event Received(uint indexed value, address indexed sender, bytes data); event OwnerChanged(address owner); /** * @dev Throws if the sender is not an authorised module. */ modifier moduleOnly { require(authorised[msg.sender], "BW: msg.sender not an authorized module"); _; } /** * @dev Inits the wallet by setting the owner and authorising a list of modules. * @param _owner The owner. * @param _modules The modules to authorise. */ function init(address _owner, address[] calldata _modules) external { require(owner == address(0) && modules == 0, "BW: wallet already initialised"); require(_modules.length > 0, "BW: construction requires at least 1 module"); owner = _owner; modules = _modules.length; for (uint256 i = 0; i < _modules.length; i++) { require(authorised[_modules[i]] == false, "BW: module is already added"); authorised[_modules[i]] = true; Module(_modules[i]).init(this); emit AuthorisedModule(_modules[i], true); } if (address(this).balance > 0) { emit Received(address(this).balance, address(0), ""); } } /** * @dev Enables/Disables a module. * @param _module The target module. * @param _value Set to true to authorise the module. */ function authoriseModule(address _module, bool _value) external moduleOnly { if (authorised[_module] != _value) { emit AuthorisedModule(_module, _value); if (_value == true) { modules += 1; authorised[_module] = true; Module(_module).init(this); } else { modules -= 1; require(modules > 0, "BW: wallet must have at least one module"); delete authorised[_module]; } } } /** * @dev Enables a static method by specifying the target module to which the call * must be delegated. * @param _module The target module. * @param _method The static method signature. */ function enableStaticCall(address _module, bytes4 _method) external moduleOnly { require(authorised[_module], "BW: must be an authorised module for static call"); enabled[_method] = _module; emit EnabledStaticCall(_module, _method); } /** * @dev Sets a new owner for the wallet. * @param _newOwner The new owner. */ function setOwner(address _newOwner) external moduleOnly { require(_newOwner != address(0), "BW: address cannot be null"); owner = _newOwner; emit OwnerChanged(_newOwner); } /** * @dev Performs a generic transaction. * @param _target The address for the transaction. * @param _value The value of the transaction. * @param _data The data of the transaction. */ function invoke(address _target, uint _value, bytes calldata _data) external moduleOnly returns (bytes memory _result) { bool success; // solium-disable-next-line security/no-call-value (success, _result) = _target.call.value(_value)(_data); if (!success) { // solium-disable-next-line security/no-inline-assembly assembly { returndatacopy(0, 0, returndatasize) revert(0, returndatasize) } } emit Invoked(msg.sender, _target, _value, _data); } /** * @dev This method makes it possible for the wallet to comply to interfaces expecting the wallet to * implement specific static methods. It delegates the static call to a target contract if the data corresponds * to an enabled method, or logs the call otherwise. */ function() external payable { if (msg.data.length > 0) { address module = enabled[msg.sig]; if (module == address(0)) { emit Received(msg.value, msg.sender, msg.data); } else { require(authorised[module], "BW: must be an authorised module for static call"); // solium-disable-next-line security/no-inline-assembly assembly { calldatacopy(0, 0, calldatasize()) let result := staticcall(gas, module, 0, calldatasize(), 0, 0) returndatacopy(0, 0, returndatasize()) switch result case 0 {revert(0, returndatasize())} default {return (0, returndatasize())} } } } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_module","type":"address"},{"name":"_method","type":"bytes4"}],"name":"enableStaticCall","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_module","type":"address"},{"name":"_value","type":"bool"}],"name":"authoriseModule","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_modules","type":"address[]"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes4"}],"name":"enabled","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"invoke","outputs":[{"name":"_result","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"authorised","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"modules","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"module","type":"address"},{"indexed":false,"name":"value","type":"bool"}],"name":"AuthorisedModule","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"module","type":"address"},{"indexed":true,"name":"method","type":"bytes4"}],"name":"EnabledStaticCall","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"module","type":"address"},{"indexed":true,"name":"target","type":"address"},{"indexed":true,"name":"value","type":"uint256"},{"indexed":false,"name":"data","type":"bytes"}],"name":"Invoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"value","type":"uint256"},{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"data","type":"bytes"}],"name":"Received","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"}],"name":"OwnerChanged","type":"event"}]
Contract Creation Code
608060405234801561001057600080fd5b50610f77806100206000396000f3fe6080604052600436106100ce576000357c0100000000000000000000000000000000000000000000000000000000900480635f54892b116100865780638f6f03321161006b5780638f6f0332146103fb578063d6eb1bbf14610502578063f7e80e9814610549576100ce565b80635f54892b1461039a5780638da5cb5b146103e6576100ce565b80631f17732d116100b75780631f17732d146102a15780633c5a3cea146102dc5780635c60da1b14610369576100ce565b806313af40351461021357806313da30b214610246575b600036111561021157600080357fffffffff0000000000000000000000000000000000000000000000000000000016815260036020526040902054600160a060020a031680151561018a5733600160a060020a0316347f606834f57405380c4fb88d1f4850326ad3885f014bab3b568dfbf7a041eef73860003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a361020f565b600160a060020a03811660009081526002602052604090205460ff1615156101eb57604051600080516020610ed58339815191528152600401808060200182810382526030815260200180610ef56030913960400191505060405180910390fd5b3660008037600080366000845afa3d6000803e80801561020a573d6000f35b3d6000fd5b505b005b34801561021f57600080fd5b506102116004803603602081101561023657600080fd5b5035600160a060020a0316610570565b34801561025257600080fd5b506102116004803603604081101561026957600080fd5b508035600160a060020a031690602001357fffffffff000000000000000000000000000000000000000000000000000000001661068e565b3480156102ad57600080fd5b50610211600480360360408110156102c457600080fd5b50600160a060020a03813516906020013515156107cd565b3480156102e857600080fd5b50610211600480360360408110156102ff57600080fd5b600160a060020a03823516919081019060408101602082013564010000000081111561032a57600080fd5b82018360208201111561033c57600080fd5b8035906020019184602083028401116401000000008311171561035e57600080fd5b5090925090506109af565b34801561037557600080fd5b5061037e610cd9565b60408051600160a060020a039092168252519081900360200190f35b3480156103a657600080fd5b5061037e600480360360208110156103bd57600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610ce8565b3480156103f257600080fd5b5061037e610d03565b34801561040757600080fd5b5061048d6004803603606081101561041e57600080fd5b600160a060020a038235169160208101359181019060608101604082013564010000000081111561044e57600080fd5b82018360208201111561046057600080fd5b8035906020019184600183028401116401000000008311171561048257600080fd5b509092509050610d12565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104c75781810151838201526020016104af565b50505050905090810190601f1680156104f45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561050e57600080fd5b506105356004803603602081101561052557600080fd5b5035600160a060020a0316610e66565b604080519115158252519081900360200190f35b34801561055557600080fd5b5061055e610e7b565b60408051918252519081900360200190f35b3360009081526002602052604090205460ff1615156105c857604051600080516020610ed58339815191528152600401808060200182810382526027815260200180610f256027913960400191505060405180910390fd5b600160a060020a038116151561062d5760408051600080516020610ed5833981519152815260206004820152601a60248201527f42573a20616464726573732063616e6e6f74206265206e756c6c000000000000604482015290519081900360640190fd5b60018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b3360009081526002602052604090205460ff1615156106e657604051600080516020610ed58339815191528152600401808060200182810382526027815260200180610f256027913960400191505060405180910390fd5b600160a060020a03821660009081526002602052604090205460ff16151561074757604051600080516020610ed58339815191528152600401808060200182810382526030815260200180610ef56030913960400191505060405180910390fd5b7fffffffff000000000000000000000000000000000000000000000000000000008116600081815260036020526040808220805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038716908117909155905190917fd04b9de96b5ba21173fd97c509db394c9e07a59ffb10c26da7f6ce38a8102fcb91a35050565b3360009081526002602052604090205460ff16151561082557604051600080516020610ed58339815191528152600401808060200182810382526027815260200180610f256027913960400191505060405180910390fd5b600160a060020a03821660009081526002602052604090205460ff161515811515146109ab576040805182151581529051600160a060020a038416917f8da3ff870ae294081392139550e167f1f31f277f22015ee22fbffdbd7758f4e1919081900360200190a260018115151415610938576004805460019081018255600160a060020a038416600081815260026020526040808220805460ff191690941790935582517f19ab453c0000000000000000000000000000000000000000000000000000000081523094810194909452915190926319ab453c92602480830193919282900301818387803b15801561091b57600080fd5b505af115801561092f573d6000803e3d6000fd5b505050506109ab565b60048054600019019081905560001061098a57604051600080516020610ed58339815191528152600401808060200182810382526028815260200180610e826028913960400191505060405180910390fd5b600160a060020a0382166000908152600260205260409020805460ff191690555b5050565b600154600160a060020a03161580156109c85750600454155b1515610a235760408051600080516020610ed5833981519152815260206004820152601e60248201527f42573a2077616c6c657420616c726561647920696e697469616c697365640000604482015290519081900360640190fd5b60008111610a6a57604051600080516020610ed5833981519152815260040180806020018281038252602b815260200180610eaa602b913960400191505060405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038516179055600481905560005b81811015610c875760026000848484818110610ab257fe5b60209081029290920135600160a060020a03168352508101919091526040016000205460ff1615610b325760408051600080516020610ed5833981519152815260206004820152601b60248201527f42573a206d6f64756c6520697320616c72656164792061646465640000000000604482015290519081900360640190fd5b600160026000858585818110610b4457fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff1916911515919091179055828282818110610b8157fe5b90506020020135600160a060020a0316600160a060020a03166319ab453c306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610c0457600080fd5b505af1158015610c18573d6000803e3d6000fd5b505050508282828181101515610c2a57fe5b90506020020135600160a060020a0316600160a060020a03167f8da3ff870ae294081392139550e167f1f31f277f22015ee22fbffdbd7758f4e16001604051808215151515815260200191505060405180910390a2600101610a9a565b50600030311115610cd457604080516020808252600090820181905291513031917f606834f57405380c4fb88d1f4850326ad3885f014bab3b568dfbf7a041eef738919081900360600190a35b505050565b600054600160a060020a031681565b600360205260009081526040902054600160a060020a031681565b600154600160a060020a031681565b3360009081526002602052604090205460609060ff161515610d6d57604051600080516020610ed58339815191528152600401808060200182810382526027815260200180610f256027913960400191505060405180910390fd5b600085600160a060020a0316858585604051808383808284376040519201945060009350909150508083038185875af1925050503d8060008114610dcd576040519150601f19603f3d011682016040523d82523d6000602084013e610dd2565b606091505b5092509050801515610de8573d6000803e3d6000fd5b8486600160a060020a031633600160a060020a03167f7d2476ab50663f025cff0be85655bcf355f62768615c0c478f3cd5293f807365878760405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a450949350505050565b60026020526000908152604090205460ff1681565b6004548156fe42573a2077616c6c6574206d7573742068617665206174206c65617374206f6e65206d6f64756c6542573a20636f6e737472756374696f6e207265717569726573206174206c656173742031206d6f64756c6508c379a00000000000000000000000000000000000000000000000000000000042573a206d75737420626520616e20617574686f7269736564206d6f64756c6520666f72207374617469632063616c6c42573a206d73672e73656e646572206e6f7420616e20617574686f72697a6564206d6f64756c65a165627a7a72305820b006dfbc2c336045fc14f05576b37e93870a076202db4360484f2efd240c18510029
Deployed Bytecode
0x6080604052600436106100ce576000357c0100000000000000000000000000000000000000000000000000000000900480635f54892b116100865780638f6f03321161006b5780638f6f0332146103fb578063d6eb1bbf14610502578063f7e80e9814610549576100ce565b80635f54892b1461039a5780638da5cb5b146103e6576100ce565b80631f17732d116100b75780631f17732d146102a15780633c5a3cea146102dc5780635c60da1b14610369576100ce565b806313af40351461021357806313da30b214610246575b600036111561021157600080357fffffffff0000000000000000000000000000000000000000000000000000000016815260036020526040902054600160a060020a031680151561018a5733600160a060020a0316347f606834f57405380c4fb88d1f4850326ad3885f014bab3b568dfbf7a041eef73860003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a361020f565b600160a060020a03811660009081526002602052604090205460ff1615156101eb57604051600080516020610ed58339815191528152600401808060200182810382526030815260200180610ef56030913960400191505060405180910390fd5b3660008037600080366000845afa3d6000803e80801561020a573d6000f35b3d6000fd5b505b005b34801561021f57600080fd5b506102116004803603602081101561023657600080fd5b5035600160a060020a0316610570565b34801561025257600080fd5b506102116004803603604081101561026957600080fd5b508035600160a060020a031690602001357fffffffff000000000000000000000000000000000000000000000000000000001661068e565b3480156102ad57600080fd5b50610211600480360360408110156102c457600080fd5b50600160a060020a03813516906020013515156107cd565b3480156102e857600080fd5b50610211600480360360408110156102ff57600080fd5b600160a060020a03823516919081019060408101602082013564010000000081111561032a57600080fd5b82018360208201111561033c57600080fd5b8035906020019184602083028401116401000000008311171561035e57600080fd5b5090925090506109af565b34801561037557600080fd5b5061037e610cd9565b60408051600160a060020a039092168252519081900360200190f35b3480156103a657600080fd5b5061037e600480360360208110156103bd57600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610ce8565b3480156103f257600080fd5b5061037e610d03565b34801561040757600080fd5b5061048d6004803603606081101561041e57600080fd5b600160a060020a038235169160208101359181019060608101604082013564010000000081111561044e57600080fd5b82018360208201111561046057600080fd5b8035906020019184600183028401116401000000008311171561048257600080fd5b509092509050610d12565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104c75781810151838201526020016104af565b50505050905090810190601f1680156104f45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561050e57600080fd5b506105356004803603602081101561052557600080fd5b5035600160a060020a0316610e66565b604080519115158252519081900360200190f35b34801561055557600080fd5b5061055e610e7b565b60408051918252519081900360200190f35b3360009081526002602052604090205460ff1615156105c857604051600080516020610ed58339815191528152600401808060200182810382526027815260200180610f256027913960400191505060405180910390fd5b600160a060020a038116151561062d5760408051600080516020610ed5833981519152815260206004820152601a60248201527f42573a20616464726573732063616e6e6f74206265206e756c6c000000000000604482015290519081900360640190fd5b60018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b3360009081526002602052604090205460ff1615156106e657604051600080516020610ed58339815191528152600401808060200182810382526027815260200180610f256027913960400191505060405180910390fd5b600160a060020a03821660009081526002602052604090205460ff16151561074757604051600080516020610ed58339815191528152600401808060200182810382526030815260200180610ef56030913960400191505060405180910390fd5b7fffffffff000000000000000000000000000000000000000000000000000000008116600081815260036020526040808220805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038716908117909155905190917fd04b9de96b5ba21173fd97c509db394c9e07a59ffb10c26da7f6ce38a8102fcb91a35050565b3360009081526002602052604090205460ff16151561082557604051600080516020610ed58339815191528152600401808060200182810382526027815260200180610f256027913960400191505060405180910390fd5b600160a060020a03821660009081526002602052604090205460ff161515811515146109ab576040805182151581529051600160a060020a038416917f8da3ff870ae294081392139550e167f1f31f277f22015ee22fbffdbd7758f4e1919081900360200190a260018115151415610938576004805460019081018255600160a060020a038416600081815260026020526040808220805460ff191690941790935582517f19ab453c0000000000000000000000000000000000000000000000000000000081523094810194909452915190926319ab453c92602480830193919282900301818387803b15801561091b57600080fd5b505af115801561092f573d6000803e3d6000fd5b505050506109ab565b60048054600019019081905560001061098a57604051600080516020610ed58339815191528152600401808060200182810382526028815260200180610e826028913960400191505060405180910390fd5b600160a060020a0382166000908152600260205260409020805460ff191690555b5050565b600154600160a060020a03161580156109c85750600454155b1515610a235760408051600080516020610ed5833981519152815260206004820152601e60248201527f42573a2077616c6c657420616c726561647920696e697469616c697365640000604482015290519081900360640190fd5b60008111610a6a57604051600080516020610ed5833981519152815260040180806020018281038252602b815260200180610eaa602b913960400191505060405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038516179055600481905560005b81811015610c875760026000848484818110610ab257fe5b60209081029290920135600160a060020a03168352508101919091526040016000205460ff1615610b325760408051600080516020610ed5833981519152815260206004820152601b60248201527f42573a206d6f64756c6520697320616c72656164792061646465640000000000604482015290519081900360640190fd5b600160026000858585818110610b4457fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff1916911515919091179055828282818110610b8157fe5b90506020020135600160a060020a0316600160a060020a03166319ab453c306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610c0457600080fd5b505af1158015610c18573d6000803e3d6000fd5b505050508282828181101515610c2a57fe5b90506020020135600160a060020a0316600160a060020a03167f8da3ff870ae294081392139550e167f1f31f277f22015ee22fbffdbd7758f4e16001604051808215151515815260200191505060405180910390a2600101610a9a565b50600030311115610cd457604080516020808252600090820181905291513031917f606834f57405380c4fb88d1f4850326ad3885f014bab3b568dfbf7a041eef738919081900360600190a35b505050565b600054600160a060020a031681565b600360205260009081526040902054600160a060020a031681565b600154600160a060020a031681565b3360009081526002602052604090205460609060ff161515610d6d57604051600080516020610ed58339815191528152600401808060200182810382526027815260200180610f256027913960400191505060405180910390fd5b600085600160a060020a0316858585604051808383808284376040519201945060009350909150508083038185875af1925050503d8060008114610dcd576040519150601f19603f3d011682016040523d82523d6000602084013e610dd2565b606091505b5092509050801515610de8573d6000803e3d6000fd5b8486600160a060020a031633600160a060020a03167f7d2476ab50663f025cff0be85655bcf355f62768615c0c478f3cd5293f807365878760405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a450949350505050565b60026020526000908152604090205460ff1681565b6004548156fe42573a2077616c6c6574206d7573742068617665206174206c65617374206f6e65206d6f64756c6542573a20636f6e737472756374696f6e207265717569726573206174206c656173742031206d6f64756c6508c379a00000000000000000000000000000000000000000000000000000000042573a206d75737420626520616e20617574686f7269736564206d6f64756c6520666f72207374617469632063616c6c42573a206d73672e73656e646572206e6f7420616e20617574686f72697a6564206d6f64756c65a165627a7a72305820b006dfbc2c336045fc14f05576b37e93870a076202db4360484f2efd240c18510029
Deployed Bytecode Sourcemap
1827:5348:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6388:1;6370:8;:19;6366:799;;;6406:14;6431:7;;;;6423:16;;:7;:16;;;;;;-1:-1:-1;;;;;6423:16:0;6458:20;;6454:700;;;6524:10;-1:-1:-1;;;;;6504:41:0;6513:9;6504:41;6536:8;;6504:41;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;;74:27;6504:41:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;6504:41:0;;;;-1:-1:-1;6504:41:0;;-1:-1:-1;;;;6504:41:0;6454:700;;;-1:-1:-1;;;;;6594:18:0;;;;;;:10;:18;;;;;;;;6586:79;;;;;;-1:-1:-1;;;;;;;;;;;6586:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6808:14;6805:1;6802;6789:34;6905:1;6902;6886:14;6883:1;6875:6;6870:3;6859:48;6950:16;6947:1;6944;6929:38;6996:6;7024:36;;;;7102:16;7099:1;7091:28;7024:36;7042:16;7039:1;7032:27;6766:373;6366:799;;1827:5348;5011:205;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5011:205:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5011:205:0;-1:-1:-1;;;;;5011:205:0;;:::i;4633:266::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4633:266:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4633:266:0;;-1:-1:-1;;;;;4633:266:0;;;;;;;;:::i;3859:545::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3859:545:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3859:545:0;;;;;;;;;;:::i;2960:732::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2960:732:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;2960:732:0;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;2960:732:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2960:732:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;2960:732:0;;-1:-1:-1;2960:732:0;-1:-1:-1;2960:732:0;:::i;1896:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1896:29:0;;;:::i;:::-;;;;-1:-1:-1;;;;;1896:29:0;;;;;;;;;;;;;;2091:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2091:42:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2091:42:0;;;;:::i;1950:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1950:20:0;;;:::i;5445:575::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5445:575:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;5445:575:0;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;5445:575:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5445:575:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;5445:575:0;;-1:-1:-1;5445:575:0;-1:-1:-1;5445:575:0;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5445:575:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2008:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2008:43:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2008:43:0;-1:-1:-1;;;;;2008:43:0;;:::i;:::-;;;;;;;;;;;;;;;;;;2170:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2170:19:0;;;:::i;:::-;;;;;;;;;;;;;;;;5011:205;2690:10;2679:22;;;;:10;:22;;;;;;;;2671:74;;;;;;-1:-1:-1;;;;;;;;;;;2671:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5087:23:0;;;;5079:62;;;;;-1:-1:-1;;;;;;;;;;;5079:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5152:5;:17;;-1:-1:-1;;;;;5152:17:0;;-1:-1:-1;;5152:17:0;;;;;;;;5185:23;;;;;;;;;;;;;;;;5011:205;:::o;4633:266::-;2690:10;2679:22;;;;:10;:22;;;;;;;;2671:74;;;;;;-1:-1:-1;;;;;;;;;;;2671:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4731:19:0;;;;;;:10;:19;;;;;;;;4723:80;;;;;;-1:-1:-1;;;;;;;;;;;4723:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4814:16;;;;;;;:7;:16;;;;;;:26;;-1:-1:-1;;4814:26:0;-1:-1:-1;;;;;4814:26:0;;;;;;;;4856:35;;4814:26;;4856:35;;;4633:266;;:::o;3859:545::-;2690:10;2679:22;;;;:10;:22;;;;;;;;2671:74;;;;;;-1:-1:-1;;;;;;;;;;;2671:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3949:19:0;;;;;;:10;:19;;;;;;;;:29;;;;;;3945:452;;4000:33;;;;;;;;;;-1:-1:-1;;;;;4000:33:0;;;;;;;;;;;;;4062:4;4052:14;;;;4048:338;;;4087:7;:12;;4098:1;4087:12;;;;;-1:-1:-1;;;;;4118:19:0;;4087:7;4118:19;;;:10;:19;;;;;;:26;;-1:-1:-1;;4118:26:0;;;;;;;4163;;;;;4184:4;4163:26;;;;;;;;;4118:19;;4163:20;;:26;;;;;4087:7;;4163:26;;;;;4087:7;4118:19;4163:26;;;5:2:-1;;;;30:1;27;20:12;5:2;4163:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4163:26:0;;;;4048:338;;;4230:7;:12;;-1:-1:-1;;4230:12:0;;;;;:7;-1:-1:-1;4261:64:0;;;;-1:-1:-1;;;;;;;;;;;4261:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4351:19:0;;;;;;:10;:19;;;;;4344:26;;-1:-1:-1;;4344:26:0;;;4048:338;3859:545;;:::o;2960:732::-;3047:5;;-1:-1:-1;;;;;3047:5:0;:19;:35;;;;-1:-1:-1;3070:7:0;;:12;3047:35;3039:78;;;;;;;-1:-1:-1;;;;;;;;;;;3039:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3154:1;3136:19;;3128:75;;;;-1:-1:-1;;;;;;;;;;;3128:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3214:5;:14;;-1:-1:-1;;3214:14:0;-1:-1:-1;;;;;3214:14:0;;;;;3239:7;:25;;;-1:-1:-1;3275:290:0;3295:19;;;3275:290;;;3344:10;:23;3355:8;;3364:1;3355:11;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3355:11:0;3344:23;;-1:-1:-1;3344:23:0;;;;;;;;-1:-1:-1;3344:23:0;;;;:32;3336:72;;;;;-1:-1:-1;;;;;;;;;;;3336:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3449:4;3423:10;:23;3434:8;;3443:1;3434:11;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3434:11:0;3423:23;;-1:-1:-1;3423:23:0;;;;;;;;-1:-1:-1;3423:23:0;:30;;-1:-1:-1;;3423:30:0;;;;;;;;;;3475:8;;3484:1;3475:11;;;;;;;;;;;;;-1:-1:-1;;;;;3475:11:0;-1:-1:-1;;;;;3468:24:0;;3493:4;3468:30;;;;;;;;;;;;;-1:-1:-1;;;;;3468:30:0;-1:-1:-1;;;;;3468:30:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3468:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3468:30:0;;;;3535:8;;3544:1;3535:11;;;;;;;;;;;;;;;-1:-1:-1;;;;;3535:11:0;-1:-1:-1;;;;;3518:35:0;;3548:4;3518:35;;;;;;;;;;;;;;;;;;;;;;3316:3;;3275:290;;;-1:-1:-1;3603:1:0;3587:4;3579:21;:25;3575:110;;;3626:47;;;;;;;3666:1;3626:47;;;;;;;;3643:4;3635:21;;3626:47;;;;;;;;;;3575:110;2960:732;;;:::o;1896:29::-;;;-1:-1:-1;;;;;1896:29:0;;:::o;2091:42::-;;;;;;;;;;;;-1:-1:-1;;;;;2091:42:0;;:::o;1950:20::-;;;-1:-1:-1;;;;;1950:20:0;;:::o;5445:575::-;2690:10;2679:22;;;;:10;:22;;;;;;5542:20;;2679:22;;2671:74;;;;;;-1:-1:-1;;;;;;;;;;;2671:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5575:12;5679:7;-1:-1:-1;;;;;5679:12:0;5698:6;5706:5;;5679:33;;;;;30:3:-1;22:6;14;1:33;5679::0;;45:16:-1;;;-1:-1;5679:33:0;;-1:-1:-1;5679:33:0;;-1:-1:-1;;5679:33:0;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;-1:-1;5658:54:0;-1:-1:-1;5658:54:0;-1:-1:-1;5727:8:0;;5723:231;;;5870:14;5867:1;5864;5849:36;5913:14;5910:1;5903:25;5830:113;5998:6;5989:7;-1:-1:-1;;;;;5969:43:0;5977:10;-1:-1:-1;;;;;5969:43:0;;6006:5;;5969:43;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;;74:27;5969:43:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;5969:43:0;;;;-1:-1:-1;5969:43:0;;-1:-1:-1;;;;5969:43:0;2756:1;5445:575;;;;;;:::o;2008:43::-;;;;;;;;;;;;;;;:::o;2170:19::-;;;;:::o
Swarm Source
bzzr://b006dfbc2c336045fc14f05576b37e93870a076202db4360484f2efd240c1851
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $3,412.68 | 0.00088959 | $3.04 |
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.