Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 19 from a total of 19 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Blacklist | 17676447 | 383 days ago | IN | 0 ETH | 0.00049383 | ||||
Set Whitelist | 17676444 | 383 days ago | IN | 0 ETH | 0.00048816 | ||||
Set Blacklist | 17464812 | 413 days ago | IN | 0 ETH | 0.00163611 | ||||
Set Whitelist | 17464807 | 413 days ago | IN | 0 ETH | 0.00168315 | ||||
Set Blacklist | 17464751 | 413 days ago | IN | 0 ETH | 0.00128343 | ||||
Set Blacklist | 17412193 | 420 days ago | IN | 0 ETH | 0.00050606 | ||||
Set Whitelist | 17412190 | 420 days ago | IN | 0 ETH | 0.0005478 | ||||
Set Whitelist | 17412174 | 420 days ago | IN | 0 ETH | 0.00059157 | ||||
Set Blacklist | 17412150 | 420 days ago | IN | 0 ETH | 0.00056372 | ||||
Set Whitelist | 17412148 | 420 days ago | IN | 0 ETH | 0.0006634 | ||||
Set Blacklist | 17408549 | 421 days ago | IN | 0 ETH | 0.00066941 | ||||
Set Whitelist | 17408544 | 421 days ago | IN | 0 ETH | 0.00072954 | ||||
Set Blacklist | 17408501 | 421 days ago | IN | 0 ETH | 0.00075865 | ||||
Set Whitelist | 17408493 | 421 days ago | IN | 0 ETH | 0.00087672 | ||||
Set Whitelist | 17285485 | 438 days ago | IN | 0 ETH | 0.00192752 | ||||
Set Whitelist | 17285463 | 438 days ago | IN | 0 ETH | 0.00098353 | ||||
Set Blacklist | 17280233 | 439 days ago | IN | 0 ETH | 0.00250218 | ||||
Set Whitelist | 17280229 | 439 days ago | IN | 0 ETH | 0.00370883 | ||||
0x60806040 | 17229280 | 446 days ago | IN | 0 ETH | 0.0574603 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
LosslessControllerV4
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-11 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } interface ILERC20 { function name() external view returns (string memory); function admin() external view returns (address); function getAdmin() external view returns (address); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address _account) external view returns (uint256); function transfer(address _recipient, uint256 _amount) external returns (bool); function allowance(address _owner, address _spender) external view returns (uint256); function approve(address _spender, uint256 _amount) external returns (bool); function transferFrom(address _sender, address _recipient, uint256 _amount) external returns (bool); function increaseAllowance(address _spender, uint256 _addedValue) external returns (bool); function decreaseAllowance(address _spender, uint256 _subtractedValue) external returns (bool); function transferOutBlacklistedFunds(address[] calldata _from) external; function setLosslessAdmin(address _newAdmin) external; function transferRecoveryAdminOwnership(address _candidate, bytes32 _keyHash) external; function acceptRecoveryAdminOwnership(bytes memory _key) external; function proposeLosslessTurnOff() external; function executeLosslessTurnOff() external; function executeLosslessTurnOn() external; event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); event NewAdmin(address indexed _newAdmin); event NewRecoveryAdminProposal(address indexed _candidate); event NewRecoveryAdmin(address indexed _newAdmin); event LosslessTurnOffProposal(uint256 _turnOffDate); event LosslessOff(); event LosslessOn(); } interface ILssController { // function getLockedAmount(ILERC20 _token, address _account) returns (uint256); // function getAvailableAmount(ILERC20 _token, address _account) external view returns (uint256 amount); function whitelist(address _adr) external view returns (bool); function blacklist(address _adr) external view returns (bool); function admin() external view returns (address); function recoveryAdmin() external view returns (address); function setAdmin(address _newAdmin) external; function setRecoveryAdmin(address _newRecoveryAdmin) external; function setWhitelist(address[] calldata _addrList, bool _value) external; function setBlacklist(address[] calldata _addrList, bool _value) external; function beforeTransfer(address _sender, address _recipient, uint256 _amount) external; function beforeTransferFrom(address _msgSender, address _sender, address _recipient, uint256 _amount) external; function beforeApprove(address _sender, address _spender, uint256 _amount) external; function beforeIncreaseAllowance(address _msgSender, address _spender, uint256 _addedValue) external; function beforeDecreaseAllowance(address _msgSender, address _spender, uint256 _subtractedValue) external; function beforeMint(address _to, uint256 _amount) external; function beforeBurn(address _account, uint256 _amount) external; function afterTransfer(address _sender, address _recipient, uint256 _amount) external; event AdminChange(address indexed _newAdmin); event RecoveryAdminChange(address indexed _newAdmin); event PauseAdminChange(address indexed _newAdmin); } /// @title Lossless Controller Contract /// @notice The controller contract is in charge of the communication and senstive data among all Lossless Environment Smart Contracts contract LosslessControllerV4 is ILssController, Context { // IMPORTANT!: For future reference, when adding new variables for following versions of the controller. // All the previous ones should be kept in place and not change locations, types or names. // If thye're modified this would cause issues with the memory slots. address override public admin; address override public recoveryAdmin; // --- V3 VARIABLES --- mapping(address => bool) override public whitelist; mapping(address => bool) override public blacklist; constructor(address _admin, address _recoveryAdmin) { admin = _admin; recoveryAdmin = _recoveryAdmin; } // --- MODIFIERS --- /// @notice Avoids execution from other than the Recovery Admin modifier onlyRecoveryAdmin() { require(msg.sender == recoveryAdmin, "LSS: Must be recoveryAdmin"); _; } /// @notice Avoids execution from other than the Lossless Admin modifier onlyAdmin() { require(msg.sender == admin, "LSS: Must be admin"); _; } // --- ADMINISTRATION --- /// @notice This function sets a new admin /// @dev Only can be called by the Recovery admin /// @param _newAdmin Address corresponding to the new Lossless Admin function setAdmin(address _newAdmin) override public onlyRecoveryAdmin { require(_newAdmin != address(0), "LERC20: Cannot set same address"); emit AdminChange(_newAdmin); admin = _newAdmin; } /// @notice This function sets a new recovery admin /// @dev Only can be called by the previous Recovery admin /// @param _newRecoveryAdmin Address corresponding to the new Lossless Recovery Admin function setRecoveryAdmin(address _newRecoveryAdmin) override public onlyRecoveryAdmin { require(_newRecoveryAdmin != address(0), "LERC20: Cannot set same address"); emit RecoveryAdminChange(_newRecoveryAdmin); recoveryAdmin = _newRecoveryAdmin; } // --- V3 SETTERS --- /// @notice This function removes or adds an array of addresses from the whitelst /// @dev Only can be called by the Lossless Admin, only Lossless addresses /// @param _addrList List of addresses to add or remove /// @param _value True if the addresses are being added, false if removed function setWhitelist(address[] calldata _addrList, bool _value) override public onlyAdmin { for(uint256 i = 0; i < _addrList.length;) { address adr = _addrList[i]; whitelist[adr] = _value; unchecked {i++;} } } /// @notice This function removes or adds an array of addresses from the whitelst /// @dev Only can be called by the Lossless Admin, only Lossless addresses /// @param _addrList List of addresses to add or remove /// @param _value True if the addresses are being added, false if removed function setBlacklist(address[] calldata _addrList, bool _value) override public onlyAdmin { for(uint256 i = 0; i < _addrList.length;) { address adr = _addrList[i]; blacklist[adr] = _value; unchecked {i++;} } } // --- BEFORE HOOKS --- /// @notice If address is protected, transfer validation rules have to be run inside the strategy. /// @dev isTransferAllowed reverts in case transfer can not be done by the defined rules. function beforeTransfer(address _sender, address _recipient, uint256 _amount) override external { if (!whitelist[_sender]) { require(!blacklist[_recipient], "LSS: _recipient is blacklisted"); } else { require(!blacklist[_sender], "LSS: _sender is blacklisted"); } } /// @notice If address is protected, transfer validation rules have to be run inside the strategy. /// @dev isTransferAllowed reverts in case transfer can not be done by the defined rules. function beforeTransferFrom(address _msgSender, address _sender, address _recipient, uint256 _amount) override external { if (!whitelist[_msgSender] && !whitelist[_sender]) { require(!blacklist[_recipient], "LSS: _recipient is blacklisted"); } } // The following before hooks are in place as a placeholder for future products. // Also to preserve legacy LERC20 compatibility function beforeMint(address _to, uint256 _amount) override external {} function beforeBurn(address _account, uint256 _amount) override external {} function beforeApprove(address _sender, address _spender, uint256 _amount) override external {} function beforeIncreaseAllowance(address _msgSender, address _spender, uint256 _addedValue) override external {} function beforeDecreaseAllowance(address _msgSender, address _spender, uint256 _subtractedValue) override external {} // --- AFTER HOOKS --- // * After hooks are deprecated in LERC20 but we have to keep them // here in order to support legacy LERC20. function afterMint(address _to, uint256 _amount) external {} function afterApprove(address _sender, address _spender, uint256 _amount) external {} function afterBurn(address _account, uint256 _amount) external {} function afterTransfer(address _sender, address _recipient, uint256 _amount) override external {} function afterTransferFrom(address _msgSender, address _sender, address _recipient, uint256 _amount) external {} function afterIncreaseAllowance(address _sender, address _spender, uint256 _addedValue) external {} function afterDecreaseAllowance(address _sender, address _spender, uint256 _subtractedValue) external {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"address","name":"_recoveryAdmin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newAdmin","type":"address"}],"name":"AdminChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newAdmin","type":"address"}],"name":"PauseAdminChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newAdmin","type":"address"}],"name":"RecoveryAdminChange","type":"event"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"afterApprove","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"afterBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_subtractedValue","type":"uint256"}],"name":"afterDecreaseAllowance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_addedValue","type":"uint256"}],"name":"afterIncreaseAllowance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"afterMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_msgSender","type":"address"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"afterTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"beforeApprove","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"beforeBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_msgSender","type":"address"},{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_subtractedValue","type":"uint256"}],"name":"beforeDecreaseAllowance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_msgSender","type":"address"},{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_addedValue","type":"uint256"}],"name":"beforeIncreaseAllowance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"beforeMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"beforeTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_msgSender","type":"address"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"beforeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoveryAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newAdmin","type":"address"}],"name":"setAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addrList","type":"address[]"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newRecoveryAdmin","type":"address"}],"name":"setRecoveryAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addrList","type":"address[]"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"setWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051610d05380380610d0583398101604081905261002f9161007c565b600080546001600160a01b039384166001600160a01b031991821617909155600180549290931691161790556100af565b80516001600160a01b038116811461007757600080fd5b919050565b6000806040838503121561008f57600080fd5b61009883610060565b91506100a660208401610060565b90509250929050565b610c47806100be6000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c8063704b6c02116100d8578063a56e8adf1161008c578063f49062ca11610066578063f49062ca146101c1578063f851a440146102b1578063f9f92be4146102d157600080fd5b8063a56e8adf1461029d578063cf5961bb146101c1578063ded1f4d0146101c157600080fd5b8063900f66ef116100bd578063900f66ef146101c1578063971c34b4146101875780639b19251a1461026a57600080fd5b8063704b6c02146102575780638a2fa94c1461018757600080fd5b80633c271a051161013a578063568c75a911610114578063568c75a9146101c15780635937f650146101fa5780635f6529a31461020d57600080fd5b80633c271a05146101e757806347abf3be146101c15780634a1fefbd1461018757600080fd5b80631ffb811f1161016b5780631ffb811f146101ae57806334d01aa8146101c1578063379f5c69146101d457600080fd5b80630628a2c0146101875780630e85d1e31461019b575b600080fd5b610199610195366004610a84565b5050565b005b6101996101a9366004610aae565b6102f4565b6101996101bc366004610b39565b610405565b6101996101cf366004610b39565b505050565b6101996101e2366004610b75565b610552565b6101996101f5366004610aae565b610643565b610199610208366004610bc0565b61074f565b60015461022d9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610199610265366004610bc0565b6108d5565b61028d610278366004610bc0565b60026020526000908152604090205460ff1681565b604051901515815260200161024e565b6101996102ab366004610b75565b50505050565b60005461022d9073ffffffffffffffffffffffffffffffffffffffff1681565b61028d6102df366004610bc0565b60036020526000908152604090205460ff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461037a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4c53533a204d7573742062652061646d696e000000000000000000000000000060448201526064015b60405180910390fd5b60005b828110156102ab57600084848381811061039957610399610be2565b90506020020160208101906103ae9190610bc0565b73ffffffffffffffffffffffffffffffffffffffff16600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168415151790555060010161037d565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602052604090205460ff166104c25773ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604090205460ff16156101cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4c53533a205f726563697069656e7420697320626c61636b6c697374656400006044820152606401610371565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604090205460ff16156101cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4c53533a205f73656e64657220697320626c61636b6c697374656400000000006044820152606401610371565b73ffffffffffffffffffffffffffffffffffffffff841660009081526002602052604090205460ff161580156105ae575073ffffffffffffffffffffffffffffffffffffffff831660009081526002602052604090205460ff16155b156102ab5773ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604090205460ff16156102ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4c53533a205f726563697069656e7420697320626c61636b6c697374656400006044820152606401610371565b60005473ffffffffffffffffffffffffffffffffffffffff1633146106c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4c53533a204d7573742062652061646d696e00000000000000000000000000006044820152606401610371565b60005b828110156102ab5760008484838181106106e3576106e3610be2565b90506020020160208101906106f89190610bc0565b73ffffffffffffffffffffffffffffffffffffffff16600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016841515179055506001016106c7565b60015473ffffffffffffffffffffffffffffffffffffffff1633146107d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4c53533a204d757374206265207265636f7665727941646d696e0000000000006044820152606401610371565b73ffffffffffffffffffffffffffffffffffffffff811661084d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4c45524332303a2043616e6e6f74207365742073616d652061646472657373006044820152606401610371565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f0aace6c261e446b4d35ed5adecc1bf2f5b0e638314eaadadb3c6d8d9821d78f790600090a2600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015473ffffffffffffffffffffffffffffffffffffffff163314610956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4c53533a204d757374206265207265636f7665727941646d696e0000000000006044820152606401610371565b73ffffffffffffffffffffffffffffffffffffffff81166109d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4c45524332303a2043616e6e6f74207365742073616d652061646472657373006044820152606401610371565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f9d265e758c034bca309f830c735a448c07cef1737a6922813e39b50a3827644090600090a2600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a7f57600080fd5b919050565b60008060408385031215610a9757600080fd5b610aa083610a5b565b946020939093013593505050565b600080600060408486031215610ac357600080fd5b833567ffffffffffffffff80821115610adb57600080fd5b818601915086601f830112610aef57600080fd5b813581811115610afe57600080fd5b8760208260051b8501011115610b1357600080fd5b602092830195509350508401358015158114610b2e57600080fd5b809150509250925092565b600080600060608486031215610b4e57600080fd5b610b5784610a5b565b9250610b6560208501610a5b565b9150604084013590509250925092565b60008060008060808587031215610b8b57600080fd5b610b9485610a5b565b9350610ba260208601610a5b565b9250610bb060408601610a5b565b9396929550929360600135925050565b600060208284031215610bd257600080fd5b610bdb82610a5b565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220b2259358e22b7fbbdd0cb0347ab1aac2405dec77b532ed8032f2a341b3968fd764736f6c63430008130033000000000000000000000000073a8c4c668c3a42cf5df61ec84a7e83872902f8000000000000000000000000073a8c4c668c3a42cf5df61ec84a7e83872902f8
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101825760003560e01c8063704b6c02116100d8578063a56e8adf1161008c578063f49062ca11610066578063f49062ca146101c1578063f851a440146102b1578063f9f92be4146102d157600080fd5b8063a56e8adf1461029d578063cf5961bb146101c1578063ded1f4d0146101c157600080fd5b8063900f66ef116100bd578063900f66ef146101c1578063971c34b4146101875780639b19251a1461026a57600080fd5b8063704b6c02146102575780638a2fa94c1461018757600080fd5b80633c271a051161013a578063568c75a911610114578063568c75a9146101c15780635937f650146101fa5780635f6529a31461020d57600080fd5b80633c271a05146101e757806347abf3be146101c15780634a1fefbd1461018757600080fd5b80631ffb811f1161016b5780631ffb811f146101ae57806334d01aa8146101c1578063379f5c69146101d457600080fd5b80630628a2c0146101875780630e85d1e31461019b575b600080fd5b610199610195366004610a84565b5050565b005b6101996101a9366004610aae565b6102f4565b6101996101bc366004610b39565b610405565b6101996101cf366004610b39565b505050565b6101996101e2366004610b75565b610552565b6101996101f5366004610aae565b610643565b610199610208366004610bc0565b61074f565b60015461022d9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610199610265366004610bc0565b6108d5565b61028d610278366004610bc0565b60026020526000908152604090205460ff1681565b604051901515815260200161024e565b6101996102ab366004610b75565b50505050565b60005461022d9073ffffffffffffffffffffffffffffffffffffffff1681565b61028d6102df366004610bc0565b60036020526000908152604090205460ff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461037a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4c53533a204d7573742062652061646d696e000000000000000000000000000060448201526064015b60405180910390fd5b60005b828110156102ab57600084848381811061039957610399610be2565b90506020020160208101906103ae9190610bc0565b73ffffffffffffffffffffffffffffffffffffffff16600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168415151790555060010161037d565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602052604090205460ff166104c25773ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604090205460ff16156101cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4c53533a205f726563697069656e7420697320626c61636b6c697374656400006044820152606401610371565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604090205460ff16156101cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4c53533a205f73656e64657220697320626c61636b6c697374656400000000006044820152606401610371565b73ffffffffffffffffffffffffffffffffffffffff841660009081526002602052604090205460ff161580156105ae575073ffffffffffffffffffffffffffffffffffffffff831660009081526002602052604090205460ff16155b156102ab5773ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604090205460ff16156102ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4c53533a205f726563697069656e7420697320626c61636b6c697374656400006044820152606401610371565b60005473ffffffffffffffffffffffffffffffffffffffff1633146106c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4c53533a204d7573742062652061646d696e00000000000000000000000000006044820152606401610371565b60005b828110156102ab5760008484838181106106e3576106e3610be2565b90506020020160208101906106f89190610bc0565b73ffffffffffffffffffffffffffffffffffffffff16600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016841515179055506001016106c7565b60015473ffffffffffffffffffffffffffffffffffffffff1633146107d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4c53533a204d757374206265207265636f7665727941646d696e0000000000006044820152606401610371565b73ffffffffffffffffffffffffffffffffffffffff811661084d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4c45524332303a2043616e6e6f74207365742073616d652061646472657373006044820152606401610371565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f0aace6c261e446b4d35ed5adecc1bf2f5b0e638314eaadadb3c6d8d9821d78f790600090a2600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015473ffffffffffffffffffffffffffffffffffffffff163314610956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4c53533a204d757374206265207265636f7665727941646d696e0000000000006044820152606401610371565b73ffffffffffffffffffffffffffffffffffffffff81166109d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4c45524332303a2043616e6e6f74207365742073616d652061646472657373006044820152606401610371565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f9d265e758c034bca309f830c735a448c07cef1737a6922813e39b50a3827644090600090a2600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a7f57600080fd5b919050565b60008060408385031215610a9757600080fd5b610aa083610a5b565b946020939093013593505050565b600080600060408486031215610ac357600080fd5b833567ffffffffffffffff80821115610adb57600080fd5b818601915086601f830112610aef57600080fd5b813581811115610afe57600080fd5b8760208260051b8501011115610b1357600080fd5b602092830195509350508401358015158114610b2e57600080fd5b809150509250925092565b600080600060608486031215610b4e57600080fd5b610b5784610a5b565b9250610b6560208501610a5b565b9150604084013590509250925092565b60008060008060808587031215610b8b57600080fd5b610b9485610a5b565b9350610ba260208601610a5b565b9250610bb060408601610a5b565b9396929550929360600135925050565b600060208284031215610bd257600080fd5b610bdb82610a5b565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220b2259358e22b7fbbdd0cb0347ab1aac2405dec77b532ed8032f2a341b3968fd764736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000073a8c4c668c3a42cf5df61ec84a7e83872902f8000000000000000000000000073a8c4c668c3a42cf5df61ec84a7e83872902f8
-----Decoded View---------------
Arg [0] : _admin (address): 0x073a8C4c668c3a42CF5DF61eC84a7E83872902F8
Arg [1] : _recoveryAdmin (address): 0x073a8C4c668c3a42CF5DF61eC84a7E83872902F8
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000073a8c4c668c3a42cf5df61ec84a7e83872902f8
Arg [1] : 000000000000000000000000073a8c4c668c3a42cf5df61ec84a7e83872902f8
Deployed Bytecode Sourcemap
4650:5787:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9101:70;;;;;;:::i;:::-;;;;;;7633:272;;;;;;:::i;:::-;;:::i;8141:323::-;;;;;;:::i;:::-;;:::i;10223:99::-;;;;;;:::i;:::-;8141:323;;;;8671:281;;;;;;:::i;:::-;;:::i;7046:272::-;;;;;;:::i;:::-;;:::i;6422:279::-;;;;;;:::i;:::-;;:::i;5034:37::-;;;;;;;;;;;;2369:42:1;2357:55;;;2339:74;;2327:2;2312:18;5034:37:0;;;;;;;;5979:223;;;;;;:::i;:::-;;:::i;5111:50::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2589:14:1;;2582:22;2564:41;;2552:2;2537:18;5111:50:0;2424:187:1;10103:112:0;;;;;;:::i;:::-;7735:163:::1;7633:272:::0;;;;4998:29;;;;;;;;;5168:50;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7633:272;5711:5;;;;5697:10;:19;5689:50;;;;;;;2818:2:1;5689:50:0;;;2800:21:1;2857:2;2837:18;;;2830:30;2896:20;2876:18;;;2869:48;2934:18;;5689:50:0;;;;;;;;;7739:9:::1;7735:163;7754:20:::0;;::::1;7735:163;;;7792:11;7806:9;;7816:1;7806:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7833:14;;;::::0;;;:9:::1;:14;::::0;;;;:23;;;::::1;::::0;::::1;;;::::0;;-1:-1:-1;;7882:3:0::1;7735:163;;8141:323:::0;8253:18;;;;;;;:9;:18;;;;;;;;8248:209;;8297:21;;;;;;;:9;:21;;;;;;;;8296:22;8288:65;;;;;;;3354:2:1;8288:65:0;;;3336:21:1;3393:2;3373:18;;;3366:30;3432:32;3412:18;;;3405:60;3482:18;;8288:65:0;3152:354:1;8248:209:0;8395:18;;;;;;;:9;:18;;;;;;;;8394:19;8386:59;;;;;;;3713:2:1;8386:59:0;;;3695:21:1;3752:2;3732:18;;;3725:30;3791:29;3771:18;;;3764:57;3838:18;;8386:59:0;3511:351:1;8671:281:0;8807:21;;;;;;;:9;:21;;;;;;;;8806:22;:45;;;;-1:-1:-1;8833:18:0;;;;;;;:9;:18;;;;;;;;8832:19;8806:45;8802:143;;;8877:21;;;;;;;:9;:21;;;;;;;;8876:22;8868:65;;;;;;;3354:2:1;8868:65:0;;;3336:21:1;3393:2;3373:18;;;3366:30;3432:32;3412:18;;;3405:60;3482:18;;8868:65:0;3152:354:1;7046:272:0;5711:5;;;;5697:10;:19;5689:50;;;;;;;2818:2:1;5689:50:0;;;2800:21:1;2857:2;2837:18;;;2830:30;2896:20;2876:18;;;2869:48;2934:18;;5689:50:0;2616:342:1;5689:50:0;7152:9:::1;7148:163;7167:20:::0;;::::1;7148:163;;;7205:11;7219:9;;7229:1;7219:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7246:14;;;::::0;;;:9:::1;:14;::::0;;;;:23;;;::::1;::::0;::::1;;;::::0;;-1:-1:-1;;7295:3:0::1;7148:163;;6422:279:::0;5516:13;;;;5502:10;:27;5494:66;;;;;;;4069:2:1;5494:66:0;;;4051:21:1;4108:2;4088:18;;;4081:30;4147:28;4127:18;;;4120:56;4193:18;;5494:66:0;3867:350:1;5494:66:0;6528:31:::1;::::0;::::1;6520:75;;;::::0;::::1;::::0;;4424:2:1;6520:75:0::1;::::0;::::1;4406:21:1::0;4463:2;4443:18;;;4436:30;4502:33;4482:18;;;4475:61;4553:18;;6520:75:0::1;4222:355:1::0;6520:75:0::1;6611:38;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;6660:13;:33:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;6422:279::o;5979:223::-;5516:13;;;;5502:10;:27;5494:66;;;;;;;4069:2:1;5494:66:0;;;4051:21:1;4108:2;4088:18;;;4081:30;4147:28;4127:18;;;4120:56;4193:18;;5494:66:0;3867:350:1;5494:66:0;6069:23:::1;::::0;::::1;6061:67;;;::::0;::::1;::::0;;4424:2:1;6061:67:0::1;::::0;::::1;4406:21:1::0;4463:2;4443:18;;;4436:30;4502:33;4482:18;;;4475:61;4553:18;;6061:67:0::1;4222:355:1::0;6061:67:0::1;6144:22;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;6177:5;:17:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;5979:223::o;14:196:1:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:254::-;283:6;291;344:2;332:9;323:7;319:23;315:32;312:52;;;360:1;357;350:12;312:52;383:29;402:9;383:29;:::i;:::-;373:39;459:2;444:18;;;;431:32;;-1:-1:-1;;;215:254:1:o;474:782::-;566:6;574;582;635:2;623:9;614:7;610:23;606:32;603:52;;;651:1;648;641:12;603:52;691:9;678:23;720:18;761:2;753:6;750:14;747:34;;;777:1;774;767:12;747:34;815:6;804:9;800:22;790:32;;860:7;853:4;849:2;845:13;841:27;831:55;;882:1;879;872:12;831:55;922:2;909:16;948:2;940:6;937:14;934:34;;;964:1;961;954:12;934:34;1019:7;1012:4;1002:6;999:1;995:14;991:2;987:23;983:34;980:47;977:67;;;1040:1;1037;1030:12;977:67;1071:4;1063:13;;;;-1:-1:-1;1095:6:1;-1:-1:-1;;1136:20:1;;1123:34;1193:13;;1186:21;1176:32;;1166:60;;1222:1;1219;1212:12;1166:60;1245:5;1235:15;;;474:782;;;;;:::o;1261:328::-;1338:6;1346;1354;1407:2;1395:9;1386:7;1382:23;1378:32;1375:52;;;1423:1;1420;1413:12;1375:52;1446:29;1465:9;1446:29;:::i;:::-;1436:39;;1494:38;1528:2;1517:9;1513:18;1494:38;:::i;:::-;1484:48;;1579:2;1568:9;1564:18;1551:32;1541:42;;1261:328;;;;;:::o;1594:403::-;1680:6;1688;1696;1704;1757:3;1745:9;1736:7;1732:23;1728:33;1725:53;;;1774:1;1771;1764:12;1725:53;1797:29;1816:9;1797:29;:::i;:::-;1787:39;;1845:38;1879:2;1868:9;1864:18;1845:38;:::i;:::-;1835:48;;1902:38;1936:2;1925:9;1921:18;1902:38;:::i;:::-;1594:403;;;;-1:-1:-1;1892:48:1;;1987:2;1972:18;1959:32;;-1:-1:-1;;1594:403:1:o;2002:186::-;2061:6;2114:2;2102:9;2093:7;2089:23;2085:32;2082:52;;;2130:1;2127;2120:12;2082:52;2153:29;2172:9;2153:29;:::i;:::-;2143:39;2002:186;-1:-1:-1;;;2002:186:1:o;2963:184::-;3015:77;3012:1;3005:88;3112:4;3109:1;3102:15;3136:4;3133:1;3126:15
Swarm Source
ipfs://b2259358e22b7fbbdd0cb0347ab1aac2405dec77b532ed8032f2a341b3968fd7
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.