Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 from a total of 301 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Multi Call | 24452020 | 47 hrs ago | IN | 0 ETH | 0.00000291 | ||||
| Multi Call | 24451913 | 47 hrs ago | IN | 0 ETH | 0.00001136 | ||||
| Multi Call With ... | 24451804 | 2 days ago | IN | 0.00005123 ETH | 0.00001717 | ||||
| Multi Call | 24451797 | 2 days ago | IN | 0 ETH | 0.00000906 | ||||
| Multi Call | 24445380 | 2 days ago | IN | 0 ETH | 0.00001088 | ||||
| Multi Call | 24437599 | 3 days ago | IN | 0 ETH | 0.0000096 | ||||
| Multi Call With ... | 24437476 | 4 days ago | IN | 0.00005123 ETH | 0.00001402 | ||||
| Multi Call | 24437470 | 4 days ago | IN | 0 ETH | 0.00000676 | ||||
| Multi Call | 24430744 | 4 days ago | IN | 0 ETH | 0.00000739 | ||||
| Multi Call | 24430516 | 4 days ago | IN | 0 ETH | 0.00000932 | ||||
| Multi Call | 24423293 | 5 days ago | IN | 0 ETH | 0.00000882 | ||||
| Multi Call With ... | 24423152 | 6 days ago | IN | 0.00004782 ETH | 0.00001329 | ||||
| Multi Call | 24423138 | 6 days ago | IN | 0 ETH | 0.00000722 | ||||
| Multi Call With ... | 24416178 | 6 days ago | IN | 0.00004782 ETH | 0.00001548 | ||||
| Multi Call | 24416174 | 6 days ago | IN | 0 ETH | 0.00000902 | ||||
| Multi Call | 24416098 | 6 days ago | IN | 0 ETH | 0.00000893 | ||||
| Multi Call With ... | 24415928 | 7 days ago | IN | 0.00004782 ETH | 0.00001506 | ||||
| Multi Call | 24415926 | 7 days ago | IN | 0 ETH | 0.0000075 | ||||
| Multi Call | 24409286 | 7 days ago | IN | 0 ETH | 0.00001332 | ||||
| Multi Call | 24408867 | 8 days ago | IN | 0 ETH | 0.00001816 | ||||
| Multi Call | 24402178 | 8 days ago | IN | 0 ETH | 0.00004017 | ||||
| Multi Call | 24401841 | 8 days ago | IN | 0 ETH | 0.0000482 | ||||
| Multi Call | 24396982 | 9 days ago | IN | 0 ETH | 0.0000475 | ||||
| Multi Call | 24396895 | 9 days ago | IN | 0 ETH | 0.00019972 | ||||
| Multi Call | 24394923 | 9 days ago | IN | 0 ETH | 0.00011479 |
Latest 15 internal transactions
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Send USDT | 24451804 | 2 days ago | 0.00005123 ETH | ||||
| Send USDT | 24437476 | 4 days ago | 0.00005123 ETH | ||||
| Send USDT | 24423152 | 6 days ago | 0.00004782 ETH | ||||
| Send USDT | 24416178 | 6 days ago | 0.00004782 ETH | ||||
| Send USDT | 24415928 | 7 days ago | 0.00004782 ETH | ||||
| Send USDT | 24394683 | 9 days ago | 0.00005461 ETH | ||||
| Send USDT | 24380201 | 12 days ago | 0.00004368 ETH | ||||
| Send USDT | 24351332 | 16 days ago | 0.00003684 ETH | ||||
| Send USDT | 24294349 | 23 days ago | 0.00003406 ETH | ||||
| Send USDT | 24280179 | 25 days ago | 0.00003406 ETH | ||||
| Send USDT | 24265528 | 28 days ago | 0.00003136 ETH | ||||
| Send USDT | 24251686 | 29 days ago | 0.00003136 ETH | ||||
| Send USDT | 24251629 | 29 days ago | 0.00003136 ETH | ||||
| Send USDT | 24244067 | 30 days ago | 0.00003136 ETH | ||||
| Send USDT | 24236967 | 31 days ago | 0.00003136 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Manager
Compiler Version
v0.8.25+commit.b61c2a91
Optimization Enabled:
Yes with 200 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 {Errors as CustomErrors} from "./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 CustomErrors.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 CustomErrors.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 CustomErrors.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 CustomErrors.InvalidLength();
for (uint256 i = 0; i < _callBytes.length; ++i) {
Address.functionCall(_addresses[i], _callBytes[i]);
}
}
function multiCallWithValues(address[] calldata _addresses, bytes[] calldata _callBytes, uint256[] calldata _values)
external
payable
onlyOperator
{
if (_callBytes.length != _addresses.length || _addresses.length == 0) revert CustomErrors.InvalidLength();
for (uint256 i = 0; i < _callBytes.length; ++i) {
Address.functionCallWithValue(_addresses[i], _callBytes[i], _values[i]);
}
payable(msg.sender).transfer(address(this).balance);
}
receive() external payable {}
}// 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: BUSL-1.1
pragma solidity ^0.8.25;
library Errors {
// Revert Errors:
error CallerNotOperator(); // 0xa5523ee5
error CallerNotRebalancer(); // 0xbd72e291
error CallerNotVault(); // 0xedd7338f
error CallerNotMinter(); // 0x5eee367a
error CallerNotWhiteList(); // 0xf37be7b6
error ExitFeeRateTooHigh(); // 0xf4d1caab
error ExceededMaxDeposit(); // 0x3bc9ae09
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 InvalidL1Receiver(); // 0xc17a1851
error InvalidL2Receiver(); // 0x6305ce43
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 InvalidOracle(); // 0x9589a27d
error InvalidOrderSigner(); // 0x68e1ceaf
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 MisMatchHoldRatio(); // 0xa6a3aabc
error InterestNotUpdated(); // 0xd76ec0c2
error NotSupportedYet(); // 0xfb89ba2a
error PriceNotUpdated(); // 0x1f4bcb2b
error PriceUpdatePeriodTooLong(); // 0xe88d3ecb
error RatioOutOfRange(); // 0x9179cbfa
error RevenueFeeRateTooHigh(); // 0x0674143f
error UnSupportedOperation(); // 0xe9ec8129
error UnsupportedToken(); // 0x6a172882
error WithdrawZero(); // 0x7ea773a9
error DepositHalted(); // 0x3ddeeb34
// for 1inch swap
error OneInchInvalidReceiver(); // 0xd540519e
error OneInchInvalidToken(); // 0x8e7ad912
error OneInchInvalidInputAmount(); // 0x672b500f
error OneInchInvalidFunctionSignature(); // 0x247f51aa
error OneInchUnexpectedSpentAmount(); // 0x295ada05
error OneInchUnexpectedReturnAmount(); // 0x05e64ca8
error OneInchNotSupported(); // 0x04b2de78
}// 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;
}
}{
"remappings": [
"@openzeppelin-contracts-5.0.2/=dependencies/@openzeppelin-contracts-5.0.2/",
"@openzeppelin-contracts-upgradeable-5.0.2/=dependencies/@openzeppelin-contracts-upgradeable-5.0.2/",
"@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.0.2/",
"@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.0.2/",
"forge-std-1.10.0/=dependencies/forge-std-1.10.0/src/",
"forge-std/=dependencies/forge-std-1.10.0/src/",
"openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.0.2/",
"openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.0.2/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"useLiteralContent": false,
"bytecodeHash": "ipfs",
"appendCBOR": true
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"evmVersion": "cancun",
"viaIR": true
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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":"_addresses","type":"address[]"},{"internalType":"bytes[]","name":"_callBytes","type":"bytes[]"},{"internalType":"uint256[]","name":"_values","type":"uint256[]"}],"name":"multiCallWithValues","outputs":[],"stateMutability":"payable","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"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080346100df57601f61086938819003918201601f19168301916001600160401b038311848410176100e35780849260409485528339810103126100df57610052602061004b836100f7565b92016100f7565b6001600160a01b03918216919082156100c7575f80546001600160a01b03198116851782556040519491908416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3165f52600160205260405f20600160ff1982541617905561075d908161010c8239f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100df5756fe6080604081815260049182361015610021575b505050361561001f575f80fd5b005b5f3560e01c908163045da742146103eb5750806313e7c9d8146103ab578063715018a6146103545780638da5cb5b1461032d5780639870d7fe146102b7578063ac8a584a14610228578063da5b4ffd146101175763f2fde38b146100855780610012565b34610113576020366003190112610113576001600160a01b03823581811693919290849003610113576100b6610699565b83156100fd5750505f54826bffffffffffffffffffffffff60a01b8216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b5f80fd5b503461011357806003193601126101135767ffffffffffffffff823581811161011357610147903690850161056d565b92909160243590811161011357610161903690860161056d565b92335f52600195602093600160205260ff815f2054161561021b57868614801590610213575b6102065750505f5b84811061019857005b806101f76101b06101ab8a948a8761059e565b6105c2565b5f806101c76101c0868c8b6105d6565b369161066e565b898151910182855af13d156101fe573d916101e96101e484610652565b610618565b9283523d5f8a85013e6106c4565b500161018f565b6060916106c4565b5163251f56a160e21b8152fd5b508615610187565b5163a5523ee560e01b8152fd5b50346101135760203660031901126101135781356001600160a01b038116929083900361011357610257610699565b825f52600160205260ff825f205416156102a9577f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d60208484815f5260018352805f2060ff19815416905551908152a1005b905163ccea9e6f60e01b8152fd5b50346101135760203660031901126101135781356001600160a01b0381169290839003610113576102e6610699565b82156102a9577fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d60208484815f5260018352805f20600160ff1982541617905551908152a1005b5034610113575f366003190112610113575f5490516001600160a01b039091168152602090f35b34610113575f3660031901126101135761036c610699565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b50903461011357602036600319011261011357356001600160a01b0381169190829003610113576020915f526001825260ff815f20541690519015158152f35b90508260609160606003193601126101135767ffffffffffffffff9282358481116101135761041d903690850161056d565b94906024803583811161011357610437903690880161056d565b96909360443590811161011357610451903690830161056d565b9390335f52600199602098600160205260ff8d5f2054161561055f5750808a14801590610557575b610547575f5b8a81106104b0578c5f808080478181156104a7575b3390f11561049e57005b513d5f823e3d90fd5b506108fc610494565b8a6104e36104cd836104c66101ab82888b61059e565b938c6105d6565b91906104da858c8961059e565b3592369161066e565b90804710610532578e93925f808f939461052395858251920190855af1903d1561052a573d6105146101e482610652565b9081525f81943d92013e6106c4565b500161047f565b8d92506106c4565b8f5163cd78605960e01b815230818a01528990fd5b8b5163251f56a160e21b81528490fd5b508015610479565b63a5523ee560e01b81528490fd5b9181601f840112156101135782359167ffffffffffffffff8311610113576020808501948460051b01011161011357565b91908110156105ae5760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b03811681036101135790565b91908110156105ae5760051b81013590601e198136030182121561011357019081359167ffffffffffffffff8311610113576020018236038113610113579190565b6040519190601f01601f1916820167ffffffffffffffff81118382101761063e57604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff811161063e57601f01601f191660200190565b92919261067d6101e483610652565b938285528282011161011357815f926020928387013784010152565b5f546001600160a01b031633036106ac57565b60405163118cdaa760e01b8152336004820152602490fd5b906106eb57508051156106d957805190602001fd5b604051630a12f52160e11b8152600490fd5b8151158061071e575b6106fc575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156106f456fea2646970667358221220a49fb097eb309914a0fc952b327d4c0c4af2e69a6290ef0a24b490f2bc31e5fb64736f6c634300081900330000000000000000000000008fa9aa69a6e94c1cd49fbf214c833b2911d02553000000000000000000000000994cc8ef6ac289d0016dc28e691cf75eae4e776b
Deployed Bytecode
0x6080604081815260049182361015610021575b505050361561001f575f80fd5b005b5f3560e01c908163045da742146103eb5750806313e7c9d8146103ab578063715018a6146103545780638da5cb5b1461032d5780639870d7fe146102b7578063ac8a584a14610228578063da5b4ffd146101175763f2fde38b146100855780610012565b34610113576020366003190112610113576001600160a01b03823581811693919290849003610113576100b6610699565b83156100fd5750505f54826bffffffffffffffffffffffff60a01b8216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b5f80fd5b503461011357806003193601126101135767ffffffffffffffff823581811161011357610147903690850161056d565b92909160243590811161011357610161903690860161056d565b92335f52600195602093600160205260ff815f2054161561021b57868614801590610213575b6102065750505f5b84811061019857005b806101f76101b06101ab8a948a8761059e565b6105c2565b5f806101c76101c0868c8b6105d6565b369161066e565b898151910182855af13d156101fe573d916101e96101e484610652565b610618565b9283523d5f8a85013e6106c4565b500161018f565b6060916106c4565b5163251f56a160e21b8152fd5b508615610187565b5163a5523ee560e01b8152fd5b50346101135760203660031901126101135781356001600160a01b038116929083900361011357610257610699565b825f52600160205260ff825f205416156102a9577f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d60208484815f5260018352805f2060ff19815416905551908152a1005b905163ccea9e6f60e01b8152fd5b50346101135760203660031901126101135781356001600160a01b0381169290839003610113576102e6610699565b82156102a9577fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d60208484815f5260018352805f20600160ff1982541617905551908152a1005b5034610113575f366003190112610113575f5490516001600160a01b039091168152602090f35b34610113575f3660031901126101135761036c610699565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b50903461011357602036600319011261011357356001600160a01b0381169190829003610113576020915f526001825260ff815f20541690519015158152f35b90508260609160606003193601126101135767ffffffffffffffff9282358481116101135761041d903690850161056d565b94906024803583811161011357610437903690880161056d565b96909360443590811161011357610451903690830161056d565b9390335f52600199602098600160205260ff8d5f2054161561055f5750808a14801590610557575b610547575f5b8a81106104b0578c5f808080478181156104a7575b3390f11561049e57005b513d5f823e3d90fd5b506108fc610494565b8a6104e36104cd836104c66101ab82888b61059e565b938c6105d6565b91906104da858c8961059e565b3592369161066e565b90804710610532578e93925f808f939461052395858251920190855af1903d1561052a573d6105146101e482610652565b9081525f81943d92013e6106c4565b500161047f565b8d92506106c4565b8f5163cd78605960e01b815230818a01528990fd5b8b5163251f56a160e21b81528490fd5b508015610479565b63a5523ee560e01b81528490fd5b9181601f840112156101135782359167ffffffffffffffff8311610113576020808501948460051b01011161011357565b91908110156105ae5760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b03811681036101135790565b91908110156105ae5760051b81013590601e198136030182121561011357019081359167ffffffffffffffff8311610113576020018236038113610113579190565b6040519190601f01601f1916820167ffffffffffffffff81118382101761063e57604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff811161063e57601f01601f191660200190565b92919261067d6101e483610652565b938285528282011161011357815f926020928387013784010152565b5f546001600160a01b031633036106ac57565b60405163118cdaa760e01b8152336004820152602490fd5b906106eb57508051156106d957805190602001fd5b604051630a12f52160e11b8152600490fd5b8151158061071e575b6106fc575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156106f456fea2646970667358221220a49fb097eb309914a0fc952b327d4c0c4af2e69a6290ef0a24b490f2bc31e5fb64736f6c63430008190033
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
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.