Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 217 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Multi Call | 21693127 | 26 mins ago | IN | 0 ETH | 0.00968278 | ||||
Multi Call | 21693127 | 26 mins ago | IN | 0 ETH | 0.00861951 | ||||
Multi Call | 21691585 | 5 hrs ago | IN | 0 ETH | 0.00840956 | ||||
Multi Call | 21687823 | 18 hrs ago | IN | 0 ETH | 0.01463017 | ||||
Multi Call | 21687818 | 18 hrs ago | IN | 0 ETH | 0.00616218 | ||||
Multi Call | 21677254 | 2 days ago | IN | 0 ETH | 0.01578681 | ||||
Multi Call | 21669643 | 3 days ago | IN | 0 ETH | 0.00781633 | ||||
Multi Call | 21669632 | 3 days ago | IN | 0 ETH | 0.00347288 | ||||
Multi Call | 21662927 | 4 days ago | IN | 0 ETH | 0.05369601 | ||||
Multi Call | 21648991 | 6 days ago | IN | 0 ETH | 0.00950208 | ||||
Multi Call | 21648984 | 6 days ago | IN | 0 ETH | 0.00420079 | ||||
Multi Call | 21648598 | 6 days ago | IN | 0 ETH | 0.01841106 | ||||
Multi Call | 21634272 | 8 days ago | IN | 0 ETH | 0.00445663 | ||||
Multi Call | 21622859 | 9 days ago | IN | 0 ETH | 0.00477329 | ||||
Multi Call | 21622849 | 9 days ago | IN | 0 ETH | 0.00214463 | ||||
Multi Call | 21619949 | 10 days ago | IN | 0 ETH | 0.00395666 | ||||
Multi Call | 21613606 | 11 days ago | IN | 0 ETH | 0.0058582 | ||||
Multi Call | 21613606 | 11 days ago | IN | 0 ETH | 0.00539906 | ||||
Multi Call | 21613556 | 11 days ago | IN | 0 ETH | 0.00115053 | ||||
Multi Call | 21607043 | 12 days ago | IN | 0 ETH | 0.00154322 | ||||
Multi Call | 21607030 | 12 days ago | IN | 0 ETH | 0.00065176 | ||||
Multi Call | 21605632 | 12 days ago | IN | 0 ETH | 0.00381146 | ||||
Multi Call | 21594769 | 13 days ago | IN | 0 ETH | 0.00920021 | ||||
Multi Call | 21594758 | 13 days ago | IN | 0 ETH | 0.00320304 | ||||
Multi Call | 21591308 | 14 days ago | IN | 0 ETH | 0.00652344 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Manager
Compiler Version
v0.8.25+commit.b61c2a91
Optimization Enabled:
Yes with 10000 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.25; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/utils/Address.sol"; import "./libraries/Errors.sol"; /** * @title Manager * @author Naturelab * @dev This contract is used to manage KMS addresses for batch operations. */ contract Manager is Ownable { mapping(address => bool) public operators; /** * @dev Initializes the contract by setting the admin and adding the initial operator to the whitelist. * @param _admin The address of the contract owner, it will be a multisignature address. * @param _initialOperator The address of the initial operator. */ constructor(address _admin, address _initialOperator) Ownable(_admin) { operators[_initialOperator] = true; } // Event emitted when an operator is added to the whitelist event OperatorAdded(address operator); // Event emitted when an operator is removed from the whitelist event OperatorRemoved(address operator); // Modifier to restrict function access to the operators in the whitelist modifier onlyOperator() { if (!operators[msg.sender]) revert Errors.CallerNotOperator(); _; } /** * @dev Allows the owner to add a new operator to the whitelist. * Emits an OperatorAdded event. * @param _operator The address of the operator to add. */ function addOperator(address _operator) external onlyOwner { if (_operator == address(0)) revert Errors.InvalidOperator(); operators[_operator] = true; emit OperatorAdded(_operator); } /** * @dev Allows the owner to remove an operator from the whitelist. * Emits an OperatorRemoved event. * @param _operator The address of the operator to remove. */ function removeOperator(address _operator) external onlyOwner { if (!operators[_operator]) revert Errors.InvalidOperator(); operators[_operator] = false; emit OperatorRemoved(_operator); } /** * @dev Allows operators to make multiple calls to different addresses in a single transaction. * @param _addresses An array of addresses to call. * @param _callBytes An array of call data bytes, each corresponding to a call to be made to the addresses. */ function multiCall(address[] calldata _addresses, bytes[] calldata _callBytes) external onlyOperator { if (_callBytes.length != _addresses.length || _addresses.length == 0) revert Errors.InvalidLength(); for (uint256 i = 0; i < _callBytes.length; ++i) { Address.functionCall(_addresses[i], _callBytes[i]); } } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) pragma solidity ^0.8.20; import {Context} from "../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. * * The initial owner is set to the address provided by the deployer. 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; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } /** * @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 { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @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 { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _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 v5.0.0) (utils/Address.sol) pragma solidity ^0.8.20; /** * @dev Collection of functions related to the address type */ library Address { /** * @dev The ETH balance of the account is not enough to perform the operation. */ error AddressInsufficientBalance(address account); /** * @dev There's no code at `target` (it is not a contract). */ error AddressEmptyCode(address target); /** * @dev A call to an address target failed. The target may have reverted. */ error FailedInnerCall(); /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { if (address(this).balance < amount) { revert AddressInsufficientBalance(address(this)); } (bool success, ) = recipient.call{value: amount}(""); if (!success) { revert FailedInnerCall(); } } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason or custom error, it is bubbled * up by this function (like regular Solidity function calls). However, if * the call reverted with no returned reason, this function reverts with a * {FailedInnerCall} error. * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCallWithValue(target, data, 0); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { if (address(this).balance < value) { revert AddressInsufficientBalance(address(this)); } (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResultFromTarget(target, success, returndata); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResultFromTarget(target, success, returndata); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResultFromTarget(target, success, returndata); } /** * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target * was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an * unsuccessful call. */ function verifyCallResultFromTarget( address target, bool success, bytes memory returndata ) internal view returns (bytes memory) { if (!success) { _revert(returndata); } else { // only check if target is a contract if the call was successful and the return data is empty // otherwise we already know that it was a contract if (returndata.length == 0 && target.code.length == 0) { revert AddressEmptyCode(target); } return returndata; } } /** * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the * revert reason or with a default {FailedInnerCall} error. */ function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) { if (!success) { _revert(returndata); } else { return returndata; } } /** * @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}. */ function _revert(bytes memory returndata) private pure { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly /// @solidity memory-safe-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert FailedInnerCall(); } } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol) pragma solidity ^0.8.20; /** * @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; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } }
// SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.25; library Errors { // Revert Errors: error CallerNotOperator(); // 0xa5523ee5 error CallerNotRebalancer(); // 0xbd72e291 error CallerNotVault(); // 0xedd7338f error ExitFeeRateTooHigh(); // 0xf4d1caab error FlashloanInProgress(); // 0x772ac4e8 error IncorrectState(); // 0x508c9390 error InfoExpired(); // 0x4ddf4a65 error InvalidAccount(); // 0x6d187b28 error InvalidAdapter(); // 0xfbf66df1 error InvalidAdmin(); // 0xb5eba9f0 error InvalidAsset(); // 0xc891add2 error InvalidCaller(); // 0x48f5c3ed error InvalidClaimTime(); // 0x1221b97b error InvalidFeeReceiver(); // 0xd200485c error InvalidFlashloanCall(); // 0xd2208d52 error InvalidFlashloanHelper(); // 0x8690f016 error InvalidFlashloanProvider(); // 0xb6b48551 error InvalidGasLimit(); // 0x98bdb2e0 error InvalidInitiator(); // 0xbfda1f28 error InvalidLength(); // 0x947d5a84 error InvalidLimit(); // 0xe55fb509 error InvalidManagementFeeClaimPeriod(); // 0x4022e4f6 error InvalidManagementFeeRate(); // 0x09aa66eb error InvalidMarketCapacity(); // 0xc9034604 error InvalidNetAssets(); // 0x6da79d69 error InvalidNewOperator(); // 0xba0cdec5 error InvalidOperator(); // 0xccea9e6f error InvalidRebalancer(); // 0xff288a8e error InvalidRedeemOperator(); // 0xd214a597 error InvalidSafeProtocolRatio(); // 0x7c6b23d6 error InvalidShares(); // 0x6edcc523 error InvalidTarget(); // 0x82d5d76a error InvalidToken(); // 0xc1ab6dc1 error InvalidTokenId(); // 0x3f6cc768 error InvalidUnderlyingToken(); // 0x2fb86f96 error InvalidVault(); // 0xd03a6320 error InvalidWithdrawalUser(); // 0x36c17319 error ManagementFeeRateTooHigh(); // 0x09aa66eb error ManagementFeeClaimPeriodTooShort(); // 0x4022e4f6 error MarketCapacityTooLow(); // 0xc9034604 error NotSupportedYet(); // 0xfb89ba2a error PriceNotUpdated(); // 0x1f4bcb2b error PriceUpdatePeriodTooLong(); // 0xe88d3ecb error RatioOutOfRange(); // 0x9179cbfa error RevenueFeeRateTooHigh(); // 0x0674143f error UnSupportedOperation(); // 0xe9ec8129 error UnsupportedToken(); // 0x6a172882 error WithdrawZero(); // 0x7ea773a9 // for 1inch swap error OneInchInvalidReceiver(); // 0xd540519e error OneInchInvalidToken(); // 0x8e7ad912 error OneInchInvalidInputAmount(); // 0x672b500f error OneInchInvalidFunctionSignature(); // 0x247f51aa error OneInchUnexpectedSpentAmount(); // 0x295ada05 error OneInchUnexpectedReturnAmount(); // 0x05e64ca8 error OneInchNotSupported(); // 0x04b2de78 }
{ "optimizer": { "enabled": true, "runs": 10000 }, "evmVersion": "cancun", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"address","name":"_initialOperator","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"AddressInsufficientBalance","type":"error"},{"inputs":[],"name":"CallerNotOperator","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"inputs":[],"name":"InvalidLength","type":"error"},{"inputs":[],"name":"InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"operator","type":"address"}],"name":"OperatorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"operator","type":"address"}],"name":"OperatorRemoved","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"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"name":"addOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"bytes[]","name":"_callBytes","type":"bytes[]"}],"name":"multiCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"operators","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"name":"removeOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561000f575f80fd5b506040516109f43803806109f483398101604081905261002e916100fa565b816001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61006581610090565b506001600160a01b03165f908152600160208190526040909120805460ff191690911790555061012b565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146100f5575f80fd5b919050565b5f806040838503121561010b575f80fd5b610114836100df565b9150610122602084016100df565b90509250929050565b6108bc806101385f395ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80639870d7fe116100585780639870d7fe146100e6578063ac8a584a146100f9578063da5b4ffd1461010c578063f2fde38b1461011f575f80fd5b806313e7c9d81461007e578063715018a6146100b55780638da5cb5b146100bf575b5f80fd5b6100a061008c366004610700565b60016020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100bd610132565b005b5f5460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ac565b6100bd6100f4366004610700565b610145565b6100bd610107366004610700565b610220565b6100bd61011a36600461077b565b610301565b6100bd61012d366004610700565b61042e565b61013a610496565b6101435f6104e8565b565b61014d610496565b73ffffffffffffffffffffffffffffffffffffffff811661019a576040517fccea9e6f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f8181526001602081815260409283902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690921790915590519182527fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d91015b60405180910390a150565b610228610496565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001602052604090205460ff16610286576040517fccea9e6f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f8181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905590519182527f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d9101610215565b335f9081526001602052604090205460ff16610349576040517fa5523ee500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8083141580610356575082155b1561038d576040517f947d5a8400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b818110156104275761041e8585838181106103ac576103ac6107e2565b90506020020160208101906103c19190610700565b8484848181106103d3576103d36107e2565b90506020028101906103e5919061080f565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061055c92505050565b5060010161038f565b5050505050565b610436610496565b73ffffffffffffffffffffffffffffffffffffffff811661048a576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610493816104e8565b50565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610143576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610481565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606061056983835f610570565b9392505050565b6060814710156105ae576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610481565b5f808573ffffffffffffffffffffffffffffffffffffffff1684866040516105d69190610870565b5f6040518083038185875af1925050503d805f8114610610576040519150601f19603f3d011682016040523d82523d5f602084013e610615565b606091505b509150915061062586838361062f565b9695505050505050565b6060826106445761063f826106be565b610569565b8151158015610668575073ffffffffffffffffffffffffffffffffffffffff84163b155b156106b7576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610481565b5080610569565b8051156106ce5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60208284031215610710575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610569575f80fd5b5f8083601f840112610743575f80fd5b50813567ffffffffffffffff81111561075a575f80fd5b6020830191508360208260051b8501011115610774575f80fd5b9250929050565b5f805f806040858703121561078e575f80fd5b843567ffffffffffffffff808211156107a5575f80fd5b6107b188838901610733565b909650945060208701359150808211156107c9575f80fd5b506107d687828801610733565b95989497509550505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610842575f80fd5b83018035915067ffffffffffffffff82111561085c575f80fd5b602001915036819003821315610774575f80fd5b5f82518060208501845e5f92019182525091905056fea26469706673582212204d4a5826cccceedb1ed8c30493d057a92e1562da6766fb09d6c095d50730c26464736f6c634300081900330000000000000000000000008fa9aa69a6e94c1cd49fbf214c833b2911d02553000000000000000000000000994cc8ef6ac289d0016dc28e691cf75eae4e776b
Deployed Bytecode
0x608060405234801561000f575f80fd5b506004361061007a575f3560e01c80639870d7fe116100585780639870d7fe146100e6578063ac8a584a146100f9578063da5b4ffd1461010c578063f2fde38b1461011f575f80fd5b806313e7c9d81461007e578063715018a6146100b55780638da5cb5b146100bf575b5f80fd5b6100a061008c366004610700565b60016020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100bd610132565b005b5f5460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ac565b6100bd6100f4366004610700565b610145565b6100bd610107366004610700565b610220565b6100bd61011a36600461077b565b610301565b6100bd61012d366004610700565b61042e565b61013a610496565b6101435f6104e8565b565b61014d610496565b73ffffffffffffffffffffffffffffffffffffffff811661019a576040517fccea9e6f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f8181526001602081815260409283902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690921790915590519182527fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d91015b60405180910390a150565b610228610496565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001602052604090205460ff16610286576040517fccea9e6f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f8181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905590519182527f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d9101610215565b335f9081526001602052604090205460ff16610349576040517fa5523ee500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8083141580610356575082155b1561038d576040517f947d5a8400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b818110156104275761041e8585838181106103ac576103ac6107e2565b90506020020160208101906103c19190610700565b8484848181106103d3576103d36107e2565b90506020028101906103e5919061080f565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061055c92505050565b5060010161038f565b5050505050565b610436610496565b73ffffffffffffffffffffffffffffffffffffffff811661048a576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610493816104e8565b50565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610143576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610481565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606061056983835f610570565b9392505050565b6060814710156105ae576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610481565b5f808573ffffffffffffffffffffffffffffffffffffffff1684866040516105d69190610870565b5f6040518083038185875af1925050503d805f8114610610576040519150601f19603f3d011682016040523d82523d5f602084013e610615565b606091505b509150915061062586838361062f565b9695505050505050565b6060826106445761063f826106be565b610569565b8151158015610668575073ffffffffffffffffffffffffffffffffffffffff84163b155b156106b7576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610481565b5080610569565b8051156106ce5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60208284031215610710575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610569575f80fd5b5f8083601f840112610743575f80fd5b50813567ffffffffffffffff81111561075a575f80fd5b6020830191508360208260051b8501011115610774575f80fd5b9250929050565b5f805f806040858703121561078e575f80fd5b843567ffffffffffffffff808211156107a5575f80fd5b6107b188838901610733565b909650945060208701359150808211156107c9575f80fd5b506107d687828801610733565b95989497509550505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610842575f80fd5b83018035915067ffffffffffffffff82111561085c575f80fd5b602001915036819003821315610774575f80fd5b5f82518060208501845e5f92019182525091905056fea26469706673582212204d4a5826cccceedb1ed8c30493d057a92e1562da6766fb09d6c095d50730c26464736f6c63430008190033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008fa9aa69a6e94c1cd49fbf214c833b2911d02553000000000000000000000000994cc8ef6ac289d0016dc28e691cf75eae4e776b
-----Decoded View---------------
Arg [0] : _admin (address): 0x8FA9aa69a6e94c1cd49FbF214C833B2911D02553
Arg [1] : _initialOperator (address): 0x994Cc8Ef6aC289d0016dC28E691CF75eaE4e776b
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000008fa9aa69a6e94c1cd49fbf214c833b2911d02553
Arg [1] : 000000000000000000000000994cc8ef6ac289d0016dc28e691cf75eae4e776b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 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.