Overview
ETH Balance
0.000889592656523036 ETH
Eth Value
$2.73 (@ $3,063.66/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 | 17 days ago | IN | 0 ETH | 0.0001522 | ||||
Execute | 15092493 | 728 days ago | IN | 0 ETH | 0.00086586 | ||||
Transfer | 15030775 | 739 days ago | IN | 0 ETH | 0.00061082 | ||||
Transfer | 15000193 | 744 days ago | IN | 0.00088959 ETH | 0.00079838 | ||||
Init | 12373618 | 1156 days ago | IN | 0 ETH | 0.00347101 | ||||
0x60806040 | 9773171 | 1557 days ago | IN | Create: BaseWallet | 0 ETH | 0.0181049 |
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers. Name tag integration is not available in advanced view.
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | Value | |||
---|---|---|---|---|---|---|---|
20234326 | 7 hrs ago | 0 ETH | |||||
20234326 | 7 hrs ago | 0 ETH | |||||
20234326 | 7 hrs ago | 0 ETH | |||||
20233883 | 8 hrs ago | 0 ETH | |||||
20233883 | 8 hrs ago | 0 ETH | |||||
20233748 | 9 hrs ago | 0 ETH | |||||
20233748 | 9 hrs ago | 0 ETH | |||||
20233748 | 9 hrs ago | 0 ETH | |||||
20233742 | 9 hrs ago | 0 ETH | |||||
20233742 | 9 hrs ago | 0 ETH | |||||
20233742 | 9 hrs ago | 0 ETH | |||||
20231204 | 17 hrs ago | 0 ETH | |||||
20231204 | 17 hrs ago | 0 ETH | |||||
20231204 | 17 hrs ago | 0 ETH | |||||
20230537 | 20 hrs ago | 0 ETH | |||||
20230537 | 20 hrs ago | 0 ETH | |||||
20229515 | 23 hrs ago | 0 ETH | |||||
20229515 | 23 hrs ago | 0 ETH | |||||
20229515 | 23 hrs ago | 0 ETH | |||||
20228114 | 28 hrs ago | 0 ETH | |||||
20228114 | 28 hrs ago | 0 ETH | |||||
20228005 | 28 hrs ago | 0 ETH | |||||
20228005 | 28 hrs ago | 0 ETH | |||||
20227998 | 28 hrs ago | 0 ETH | |||||
20227921 | 28 hrs ago | 0 ETH |
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 | Ether (ETH) | 100.00% | $3,063.66 | 0.00088959 | $2.73 |
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.