Overview
S Balance
0 S
S Value
-More Info
Private Name Tags
ContractCreator
Latest 5 from a total of 5 transactions
Loading...
Loading
Contract Name:
WooAccessManager
Compiler Version
v0.8.14+commit.80d49f37
Optimization Enabled:
Yes with 20000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity =0.8.14; /* ░██╗░░░░░░░██╗░█████╗░░█████╗░░░░░░░███████╗██╗ ░██║░░██╗░░██║██╔══██╗██╔══██╗░░░░░░██╔════╝██║ ░╚██╗████╗██╔╝██║░░██║██║░░██║█████╗█████╗░░██║ ░░████╔═████║░██║░░██║██║░░██║╚════╝██╔══╝░░██║ ░░╚██╔╝░╚██╔╝░╚█████╔╝╚█████╔╝░░░░░░██║░░░░░██║ ░░░╚═╝░░░╚═╝░░░╚════╝░░╚════╝░░░░░░░╚═╝░░░░░╚═╝ * * MIT License * =========== * * Copyright (c) 2020 WooTrade * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ import "./interfaces/IWooAccessManager.sol"; import {Pausable} from "@openzeppelin/contracts/security/Pausable.sol"; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; contract WooAccessManager is IWooAccessManager, Ownable, Pausable { /* ----- State variables ----- */ mapping(address => bool) public override isFeeAdmin; mapping(address => bool) public override isVaultAdmin; mapping(address => bool) public override isRebateAdmin; mapping(address => bool) public override isZeroFeeVault; /* ----- Admin Functions ----- */ /// @inheritdoc IWooAccessManager function setFeeAdmin(address feeAdmin, bool flag) external override onlyOwner whenNotPaused { require(feeAdmin != address(0), "WooAccessManager: feeAdmin_ZERO_ADDR"); isFeeAdmin[feeAdmin] = flag; emit FeeAdminUpdated(feeAdmin, flag); } /// @inheritdoc IWooAccessManager function setVaultAdmin(address vaultAdmin, bool flag) external override onlyOwner whenNotPaused { require(vaultAdmin != address(0), "WooAccessManager: vaultAdmin_ZERO_ADDR"); isVaultAdmin[vaultAdmin] = flag; emit VaultAdminUpdated(vaultAdmin, flag); } /// @inheritdoc IWooAccessManager function setRebateAdmin(address rebateAdmin, bool flag) external override onlyOwner whenNotPaused { require(rebateAdmin != address(0), "WooAccessManager: rebateAdmin_ZERO_ADDR"); isRebateAdmin[rebateAdmin] = flag; emit RebateAdminUpdated(rebateAdmin, flag); } /// @inheritdoc IWooAccessManager function setZeroFeeVault(address vault, bool flag) external override onlyOwner whenNotPaused { require(vault != address(0), "WooAccessManager: vault_ZERO_ADDR"); isZeroFeeVault[vault] = flag; emit ZeroFeeVaultUpdated(vault, flag); } /// @notice Pause the contract. function pause() external onlyOwner { super._pause(); } /// @notice Restart the contract. function unpause() external onlyOwner { super._unpause(); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { _requireNotPaused(); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { _requirePaused(); _; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Throws if the contract is paused. */ function _requireNotPaused() internal view virtual { require(!paused(), "Pausable: paused"); } /** * @dev Throws if the contract is not paused. */ function _requirePaused() internal view virtual { require(paused(), "Pausable: not paused"); } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @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; } }
// SPDX-License-Identifier: MIT pragma solidity =0.8.14; /* ░██╗░░░░░░░██╗░█████╗░░█████╗░░░░░░░███████╗██╗ ░██║░░██╗░░██║██╔══██╗██╔══██╗░░░░░░██╔════╝██║ ░╚██╗████╗██╔╝██║░░██║██║░░██║█████╗█████╗░░██║ ░░████╔═████║░██║░░██║██║░░██║╚════╝██╔══╝░░██║ ░░╚██╔╝░╚██╔╝░╚█████╔╝╚█████╔╝░░░░░░██║░░░░░██║ ░░░╚═╝░░░╚═╝░░░╚════╝░░╚════╝░░░░░░░╚═╝░░░░░╚═╝ * * MIT License * =========== * * Copyright (c) 2020 WooTrade * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /// @title Reward manager interface for WooFi Swap. /// @notice this is for swap rebate or potential incentive program interface IWooAccessManager { /* ----- Events ----- */ event FeeAdminUpdated(address indexed feeAdmin, bool flag); event VaultAdminUpdated(address indexed vaultAdmin, bool flag); event RebateAdminUpdated(address indexed rebateAdmin, bool flag); event ZeroFeeVaultUpdated(address indexed vault, bool flag); /* ----- External Functions ----- */ function isFeeAdmin(address feeAdmin) external returns (bool); function isVaultAdmin(address vaultAdmin) external returns (bool); function isRebateAdmin(address rebateAdmin) external returns (bool); function isZeroFeeVault(address vault) external returns (bool); /* ----- Admin Functions ----- */ /// @notice Sets feeAdmin function setFeeAdmin(address feeAdmin, bool flag) external; /// @notice Sets vaultAdmin function setVaultAdmin(address vaultAdmin, bool flag) external; /// @notice Sets rebateAdmin function setRebateAdmin(address rebateAdmin, bool flag) external; /// @notice Sets zeroFeeVault function setZeroFeeVault(address vault, bool flag) external; }
{ "optimizer": { "enabled": true, "runs": 20000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"feeAdmin","type":"address"},{"indexed":false,"internalType":"bool","name":"flag","type":"bool"}],"name":"FeeAdminUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rebateAdmin","type":"address"},{"indexed":false,"internalType":"bool","name":"flag","type":"bool"}],"name":"RebateAdminUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"vaultAdmin","type":"address"},{"indexed":false,"internalType":"bool","name":"flag","type":"bool"}],"name":"VaultAdminUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"vault","type":"address"},{"indexed":false,"internalType":"bool","name":"flag","type":"bool"}],"name":"ZeroFeeVaultUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isRebateAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isVaultAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isZeroFeeVault","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"feeAdmin","type":"address"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"setFeeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"rebateAdmin","type":"address"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"setRebateAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"vaultAdmin","type":"address"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"setVaultAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"setZeroFeeVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5061001a3361002c565b6000805460ff60a01b1916905561007c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610bc78061008b6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638456cb591161008c578063af5b052b11610066578063af5b052b146101e4578063cd8afbd814610207578063d62477651461021a578063f2fde38b1461023d57600080fd5b80638456cb5914610191578063871e6ca6146101995780638da5cb5b146101bc57600080fd5b806370a1c375116100c857806370a1c37514610140578063715018a614610163578063780cdd201461016b5780637fa583731461017e57600080fd5b80633ba260a2146100ef5780633f4ba83a146101045780635c975abb1461010c575b600080fd5b6101026100fd366004610b33565b610250565b005b610102610393565b60005474010000000000000000000000000000000000000000900460ff165b60405190151581526020015b60405180910390f35b61012b61014e366004610b6f565b60036020526000908152604090205460ff1681565b6101026103a5565b610102610179366004610b33565b6103b7565b61010261018c366004610b33565b6104ed565b610102610622565b61012b6101a7366004610b6f565b60046020526000908152604090205460ff1681565b60005460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610137565b61012b6101f2366004610b6f565b60026020526000908152604090205460ff1681565b610102610215366004610b33565b610632565b61012b610228366004610b6f565b60016020526000908152604090205460ff1681565b61010261024b366004610b6f565b610768565b61025861081f565b6102606108a0565b73ffffffffffffffffffffffffffffffffffffffff8216610308576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f576f6f4163636573734d616e616765723a2072656261746541646d696e5f5a4560448201527f524f5f414444520000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660008181526003602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527fb7a2f95cea0ed74f47257b21f4d0117d925c602444bc35bf8453b8a5f585108291015b60405180910390a25050565b61039b61081f565b6103a3610925565b565b6103ad61081f565b6103a360006109a2565b6103bf61081f565b6103c76108a0565b73ffffffffffffffffffffffffffffffffffffffff821661046a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f576f6f4163636573734d616e616765723a207661756c745f5a45524f5f41444460448201527f520000000000000000000000000000000000000000000000000000000000000060648201526084016102ff565b73ffffffffffffffffffffffffffffffffffffffff821660008181526004602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f513f4d51265a4970f16df06cf36647618604ffd748fd1e047d7f23f17f74eadc9101610387565b6104f561081f565b6104fd6108a0565b73ffffffffffffffffffffffffffffffffffffffff821661059f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f576f6f4163636573734d616e616765723a2066656541646d696e5f5a45524f5f60448201527f414444520000000000000000000000000000000000000000000000000000000060648201526084016102ff565b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f369bc16e2505dfc67d65706f176eca5287a64a1892b44e0e09b3a777051d375a9101610387565b61062a61081f565b6103a3610a17565b61063a61081f565b6106426108a0565b73ffffffffffffffffffffffffffffffffffffffff82166106e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f576f6f4163636573734d616e616765723a207661756c7441646d696e5f5a455260448201527f4f5f41444452000000000000000000000000000000000000000000000000000060648201526084016102ff565b73ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527fc2baf4508c461b6edaa92eb174acdf7df5db80a422ab358f7a66e29ea1c32e499101610387565b61077061081f565b73ffffffffffffffffffffffffffffffffffffffff8116610813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102ff565b61081c816109a2565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102ff565b60005474010000000000000000000000000000000000000000900460ff16156103a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016102ff565b61092d610a86565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a1f6108a0565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586109783390565b60005474010000000000000000000000000000000000000000900460ff166103a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016102ff565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b2e57600080fd5b919050565b60008060408385031215610b4657600080fd5b610b4f83610b0a565b915060208301358015158114610b6457600080fd5b809150509250929050565b600060208284031215610b8157600080fd5b610b8a82610b0a565b939250505056fea264697066735822122084997f95329bfbfd71f74cdfd8980a3d291210742c9c3e60705041988f6c20e464736f6c634300080e0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638456cb591161008c578063af5b052b11610066578063af5b052b146101e4578063cd8afbd814610207578063d62477651461021a578063f2fde38b1461023d57600080fd5b80638456cb5914610191578063871e6ca6146101995780638da5cb5b146101bc57600080fd5b806370a1c375116100c857806370a1c37514610140578063715018a614610163578063780cdd201461016b5780637fa583731461017e57600080fd5b80633ba260a2146100ef5780633f4ba83a146101045780635c975abb1461010c575b600080fd5b6101026100fd366004610b33565b610250565b005b610102610393565b60005474010000000000000000000000000000000000000000900460ff165b60405190151581526020015b60405180910390f35b61012b61014e366004610b6f565b60036020526000908152604090205460ff1681565b6101026103a5565b610102610179366004610b33565b6103b7565b61010261018c366004610b33565b6104ed565b610102610622565b61012b6101a7366004610b6f565b60046020526000908152604090205460ff1681565b60005460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610137565b61012b6101f2366004610b6f565b60026020526000908152604090205460ff1681565b610102610215366004610b33565b610632565b61012b610228366004610b6f565b60016020526000908152604090205460ff1681565b61010261024b366004610b6f565b610768565b61025861081f565b6102606108a0565b73ffffffffffffffffffffffffffffffffffffffff8216610308576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f576f6f4163636573734d616e616765723a2072656261746541646d696e5f5a4560448201527f524f5f414444520000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660008181526003602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527fb7a2f95cea0ed74f47257b21f4d0117d925c602444bc35bf8453b8a5f585108291015b60405180910390a25050565b61039b61081f565b6103a3610925565b565b6103ad61081f565b6103a360006109a2565b6103bf61081f565b6103c76108a0565b73ffffffffffffffffffffffffffffffffffffffff821661046a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f576f6f4163636573734d616e616765723a207661756c745f5a45524f5f41444460448201527f520000000000000000000000000000000000000000000000000000000000000060648201526084016102ff565b73ffffffffffffffffffffffffffffffffffffffff821660008181526004602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f513f4d51265a4970f16df06cf36647618604ffd748fd1e047d7f23f17f74eadc9101610387565b6104f561081f565b6104fd6108a0565b73ffffffffffffffffffffffffffffffffffffffff821661059f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f576f6f4163636573734d616e616765723a2066656541646d696e5f5a45524f5f60448201527f414444520000000000000000000000000000000000000000000000000000000060648201526084016102ff565b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f369bc16e2505dfc67d65706f176eca5287a64a1892b44e0e09b3a777051d375a9101610387565b61062a61081f565b6103a3610a17565b61063a61081f565b6106426108a0565b73ffffffffffffffffffffffffffffffffffffffff82166106e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f576f6f4163636573734d616e616765723a207661756c7441646d696e5f5a455260448201527f4f5f41444452000000000000000000000000000000000000000000000000000060648201526084016102ff565b73ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527fc2baf4508c461b6edaa92eb174acdf7df5db80a422ab358f7a66e29ea1c32e499101610387565b61077061081f565b73ffffffffffffffffffffffffffffffffffffffff8116610813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102ff565b61081c816109a2565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102ff565b60005474010000000000000000000000000000000000000000900460ff16156103a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016102ff565b61092d610a86565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a1f6108a0565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586109783390565b60005474010000000000000000000000000000000000000000900460ff166103a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016102ff565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b2e57600080fd5b919050565b60008060408385031215610b4657600080fd5b610b4f83610b0a565b915060208301358015158114610b6457600080fd5b809150509250929050565b600060208284031215610b8157600080fd5b610b8a82610b0a565b939250505056fea264697066735822122084997f95329bfbfd71f74cdfd8980a3d291210742c9c3e60705041988f6c20e464736f6c634300080e0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.