Source Code
Latest 25 from a total of 15,591 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Execute Contract | 31233980 | 7 mins ago | IN | 0 FRAX | 0.0000159 | ||||
| Execute Contract | 31227269 | 3 hrs ago | IN | 0 FRAX | 0.00001082 | ||||
| Execute Contract | 31225883 | 4 hrs ago | IN | 0 FRAX | 0.0000063 | ||||
| Execute Contract | 31225883 | 4 hrs ago | IN | 0 FRAX | 0.00000632 | ||||
| Execute Contract | 31225865 | 4 hrs ago | IN | 0 FRAX | 0.00000653 | ||||
| Execute Contract | 31221887 | 6 hrs ago | IN | 0 FRAX | 0.00000486 | ||||
| Execute Contract | 31221857 | 6 hrs ago | IN | 0 FRAX | 0.00000535 | ||||
| Execute Contract | 31213991 | 11 hrs ago | IN | 0 FRAX | 0.00000462 | ||||
| Execute Contract | 31213985 | 11 hrs ago | IN | 0 FRAX | 0.00000473 | ||||
| Execute Contract | 31200744 | 18 hrs ago | IN | 0 FRAX | 0.0000063 | ||||
| Execute Contract | 31188809 | 25 hrs ago | IN | 0 FRAX | 0.00002834 | ||||
| Execute Contract | 31184790 | 27 hrs ago | IN | 0 FRAX | 0.00003979 | ||||
| Execute Contract | 31176779 | 31 hrs ago | IN | 0 FRAX | 0.00000787 | ||||
| Execute Contract | 31172889 | 34 hrs ago | IN | 0 FRAX | 0.00000571 | ||||
| Execute Contract | 31171571 | 34 hrs ago | IN | 0 FRAX | 0.00000504 | ||||
| Execute Contract | 31163494 | 39 hrs ago | IN | 0 FRAX | 0.00000462 | ||||
| Execute Contract | 31157932 | 42 hrs ago | IN | 0 FRAX | 0.00000458 | ||||
| Execute Contract | 31157875 | 42 hrs ago | IN | 0 FRAX | 0.00000398 | ||||
| Execute Contract | 31152933 | 45 hrs ago | IN | 0 FRAX | 0.00000654 | ||||
| Execute Contract | 31145052 | 2 days ago | IN | 0 FRAX | 0.00002111 | ||||
| Execute Contract | 31138334 | 2 days ago | IN | 0 FRAX | 0.00006289 | ||||
| Execute Contract | 31135634 | 2 days ago | IN | 0 FRAX | 0.00002158 | ||||
| Execute Contract | 31123149 | 2 days ago | IN | 0 FRAX | 0.0000063 | ||||
| Execute Contract | 31115109 | 2 days ago | IN | 0 FRAX | 0.00000549 | ||||
| Execute Contract | 31111296 | 2 days ago | IN | 0 FRAX | 0.00000939 |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Operators
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/**
*Submitted for verification at fraxscan.com on 2024-03-18
*/
// Source: contracts/utils/Operators.sol
pragma solidity ^0.8.0;
// SPDX-License-Identifier: MIT
// File contracts/interfaces/IContractExecutor.sol
/**
* @title IContractExecutor Interface
* @notice This interface defines the execute function used to interact with external contracts.
*/
interface IContractExecutor {
/**
* @notice Executes a call to an external contract.
* @dev Execution logic is left up to the implementation.
* @param target The address of the contract to be called
* @param callData The calldata to be sent
* @param nativeValue The amount of native token (e.g., Ether) to be sent along with the call
* @return bytes The data returned from the executed call
*/
function executeContract(
address target,
bytes calldata callData,
uint256 nativeValue
) external payable returns (bytes memory);
}
// File contracts/interfaces/IOwnable.sol
/**
* @title IOwnable Interface
* @notice IOwnable is an interface that abstracts the implementation of a
* contract with ownership control features. It's commonly used in upgradable
* contracts and includes the functionality to get current owner, transfer
* ownership, and propose and accept ownership.
*/
interface IOwnable {
error NotOwner();
error InvalidOwner();
error InvalidOwnerAddress();
event OwnershipTransferStarted(address indexed newOwner);
event OwnershipTransferred(address indexed newOwner);
/**
* @notice Returns the current owner of the contract.
* @return address The address of the current owner
*/
function owner() external view returns (address);
/**
* @notice Returns the address of the pending owner of the contract.
* @return address The address of the pending owner
*/
function pendingOwner() external view returns (address);
/**
* @notice Transfers ownership of the contract to a new address
* @param newOwner The address to transfer ownership to
*/
function transferOwnership(address newOwner) external;
/**
* @notice Proposes to transfer the contract's ownership to a new address.
* The new owner needs to accept the ownership explicitly.
* @param newOwner The address to transfer ownership to
*/
function proposeOwnership(address newOwner) external;
/**
* @notice Transfers ownership to the pending owner.
* @dev Can only be called by the pending owner
*/
function acceptOwnership() external;
}
// File contracts/interfaces/IOperators.sol
/**
* @title IOperators Interface
* @notice Interface for an access control mechanism where operators have exclusive
* permissions to execute functions.
*/
interface IOperators is IOwnable, IContractExecutor {
error NotOperator();
error InvalidOperator();
error OperatorAlreadyAdded();
error NotAnOperator();
error ExecutionFailed();
event OperatorAdded(address indexed operator);
event OperatorRemoved(address indexed operator);
/**
* @notice Check if an account is an operator.
* @param account Address of the account to check
* @return bool True if the account is an operator, false otherwise
*/
function isOperator(address account) external view returns (bool);
/**
* @notice Adds an operator.
* @param operator The address to add as an operator
*/
function addOperator(address operator) external;
/**
* @notice Removes an operator.
* @param operator The address of the operator to remove
*/
function removeOperator(address operator) external;
/**
* @notice Executes an external contract call.
* @dev Execution logic is left up to the implementation.
* @param target The contract to call
* @param callData The data to call the target contract with
* @param nativeValue The amount of native asset to send with the call
* @return bytes The data returned from the contract call
*/
function executeContract(
address target,
bytes calldata callData,
uint256 nativeValue
) external payable returns (bytes memory);
}
// File contracts/utils/Ownable.sol
/**
* @title Ownable
* @notice A 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 owner account is set through ownership transfer. This module makes
* it possible to transfer the ownership of the contract to a new account in one
* step, as well as to an interim pending owner. In the second flow the ownership does not
* change until the pending owner accepts the ownership transfer.
*/
abstract contract Ownable is IOwnable {
// keccak256('owner')
bytes32 internal constant _OWNER_SLOT = 0x02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0;
// keccak256('ownership-transfer')
bytes32 internal constant _OWNERSHIP_TRANSFER_SLOT =
0x9855384122b55936fbfb8ca5120e63c6537a1ac40caf6ae33502b3c5da8c87d1;
/**
* @notice Initializes the contract by transferring ownership to the owner parameter.
* @param _owner Address to set as the initial owner of the contract
*/
constructor(address _owner) {
_transferOwnership(_owner);
}
/**
* @notice Modifier that throws an error if called by any account other than the owner.
*/
modifier onlyOwner() {
if (owner() != msg.sender) revert NotOwner();
_;
}
/**
* @notice Returns the current owner of the contract.
* @return owner_ The current owner of the contract
*/
function owner() public view returns (address owner_) {
assembly {
owner_ := sload(_OWNER_SLOT)
}
}
/**
* @notice Returns the pending owner of the contract.
* @return owner_ The pending owner of the contract
*/
function pendingOwner() public view returns (address owner_) {
assembly {
owner_ := sload(_OWNERSHIP_TRANSFER_SLOT)
}
}
/**
* @notice Transfers ownership of the contract to a new account `newOwner`.
* @dev Can only be called by the current owner.
* @param newOwner The address to transfer ownership to
*/
function transferOwnership(address newOwner) external virtual onlyOwner {
_transferOwnership(newOwner);
}
/**
* @notice Propose to transfer ownership of the contract to a new account `newOwner`.
* @dev Can only be called by the current owner. The ownership does not change
* until the new owner accepts the ownership transfer.
* @param newOwner The address to transfer ownership to
*/
function proposeOwnership(address newOwner) external virtual onlyOwner {
if (newOwner == address(0)) revert InvalidOwnerAddress();
emit OwnershipTransferStarted(newOwner);
assembly {
sstore(_OWNERSHIP_TRANSFER_SLOT, newOwner)
}
}
/**
* @notice Accepts ownership of the contract.
* @dev Can only be called by the pending owner
*/
function acceptOwnership() external virtual {
address newOwner = pendingOwner();
if (newOwner != msg.sender) revert InvalidOwner();
_transferOwnership(newOwner);
}
/**
* @notice Internal function to transfer ownership of the contract to a new account `newOwner`.
* @dev Called in the constructor to set the initial owner.
* @param newOwner The address to transfer ownership to
*/
function _transferOwnership(address newOwner) internal virtual {
if (newOwner == address(0)) revert InvalidOwnerAddress();
emit OwnershipTransferred(newOwner);
assembly {
sstore(_OWNER_SLOT, newOwner)
sstore(_OWNERSHIP_TRANSFER_SLOT, 0)
}
}
}
// File contracts/utils/Operators.sol
/**
* @title Operators
* @notice This contract provides an access control mechanism, where an owner can register
* operator accounts that can call arbitrary contracts on behalf of this contract.
* @dev The owner account is initially set as the deployer address.
*/
contract Operators is Ownable, IOperators {
mapping(address => bool) public operators;
/**
* @notice Sets the initial owner of the contract.
*/
constructor(address initialOwner) Ownable(initialOwner) {}
/**
* @notice Modifier that requires the `msg.sender` to be an operator.
* @dev Reverts with a NotOperator error if the condition is not met.
*/
modifier onlyOperator() {
if (!operators[msg.sender]) revert NotOperator();
_;
}
/**
* @notice Returns whether an address is an operator.
* @param account Address to check
* @return boolean whether the address is an operator
*/
function isOperator(address account) external view returns (bool) {
return operators[account];
}
/**
* @notice Adds an address as an operator.
* @dev Can only be called by the current owner.
* @param operator address to be added as operator
*/
function addOperator(address operator) external onlyOwner {
if (operator == address(0)) revert InvalidOperator();
if (operators[operator]) revert OperatorAlreadyAdded();
operators[operator] = true;
emit OperatorAdded(operator);
}
/**
* @notice Removes an address as an operator.
* @dev Can only be called by the current owner.
* @param operator address to be removed as operator
*/
function removeOperator(address operator) external onlyOwner {
if (operator == address(0)) revert InvalidOperator();
if (!operators[operator]) revert NotAnOperator();
operators[operator] = false;
emit OperatorRemoved(operator);
}
/**
* @notice Allows an operator to execute arbitrary functions on any smart contract.
* @dev Can only be called by an operator.
* @param target address of the contract to execute the function on. Existence is not checked.
* @param callData ABI encoded function call to execute on target
* @param nativeValue The amount of native asset to send with the call. If `nativeValue` is set to `0`, then `msg.value` is forwarded instead.
* @return data return data from executed function call
*/
function executeContract(
address target,
bytes calldata callData,
uint256 nativeValue
) external payable onlyOperator returns (bytes memory) {
if (nativeValue == 0) {
nativeValue = msg.value;
}
(bool success, bytes memory data) = target.call{ value: nativeValue }(callData);
if (!success) {
revert ExecutionFailed();
}
return data;
}
/**
* @notice This function enables the contract to accept native value transfers.
*/
receive() external payable {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ExecutionFailed","type":"error"},{"inputs":[],"name":"InvalidOperator","type":"error"},{"inputs":[],"name":"InvalidOwner","type":"error"},{"inputs":[],"name":"InvalidOwnerAddress","type":"error"},{"inputs":[],"name":"NotAnOperator","type":"error"},{"inputs":[],"name":"NotOperator","type":"error"},{"inputs":[],"name":"NotOwner","type":"error"},{"inputs":[],"name":"OperatorAlreadyAdded","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"}],"name":"OperatorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"}],"name":"OperatorRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"addOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"uint256","name":"nativeValue","type":"uint256"}],"name":"executeContract","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"owner_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"proposeOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"removeOperator","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
608060405234801561001057600080fd5b50604051610c6a380380610c6a83398101604081905261002f916100e3565b8061003981610040565b5050610113565b6001600160a01b03811661006757604051633649397d60e21b815260040160405180910390fd5b6040516001600160a01b038216907f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616390600090a27f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c05560007f9855384122b55936fbfb8ca5120e63c6537a1ac40caf6ae33502b3c5da8c87d155565b6000602082840312156100f557600080fd5b81516001600160a01b038116811461010c57600080fd5b9392505050565b610b48806101226000396000f3fe6080604052600436106100b55760003560e01c80639870d7fe11610069578063b80886ac1161004e578063b80886ac14610218578063e30c397814610238578063f2fde38b1461026c57600080fd5b80639870d7fe146101d8578063ac8a584a146101f857600080fd5b8063710bf3221161009a578063710bf3221461014c57806379ba50971461016e5780638da5cb5b1461018357600080fd5b806313e7c9d8146100c15780636d70f7ae1461010657600080fd5b366100bc57005b600080fd5b3480156100cd57600080fd5b506100f16100dc3660046109eb565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561011257600080fd5b506100f16101213660046109eb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205460ff1690565b34801561015857600080fd5b5061016c6101673660046109eb565b61028c565b005b34801561017a57600080fd5b5061016c6103b4565b34801561018f57600080fd5b507f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0545b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100fd565b3480156101e457600080fd5b5061016c6101f33660046109eb565b61043b565b34801561020457600080fd5b5061016c6102133660046109eb565b6105d5565b61022b610226366004610a0d565b61076b565b6040516100fd9190610a96565b34801561024457600080fd5b507f9855384122b55936fbfb8ca5120e63c6537a1ac40caf6ae33502b3c5da8c87d1546101b3565b34801561027857600080fd5b5061016c6102873660046109eb565b610876565b336102b57f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c05490565b73ffffffffffffffffffffffffffffffffffffffff1614610302576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811661034f576040517fd924e5f400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff8216907fd9be0e8e07417e00f2521db636cb53e316fd288f5051f16d2aa2bf0c3938a87690600090a27f9855384122b55936fbfb8ca5120e63c6537a1ac40caf6ae33502b3c5da8c87d155565b60006103de7f9855384122b55936fbfb8ca5120e63c6537a1ac40caf6ae33502b3c5da8c87d15490565b905073ffffffffffffffffffffffffffffffffffffffff8116331461042f576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610438816108ec565b50565b336104647f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c05490565b73ffffffffffffffffffffffffffffffffffffffff16146104b1576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166104fe576040517fccea9e6f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526020819052604090205460ff161561055e576040517f56272c9400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526020819052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d9190a250565b336105fe7f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c05490565b73ffffffffffffffffffffffffffffffffffffffff161461064b576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610698576040517fccea9e6f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526020819052604090205460ff166106f7576040517fd857ba2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526020819052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d9190a250565b3360009081526020819052604090205460609060ff166107b7576040517f7c214f0400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816000036107c3573491505b6000808673ffffffffffffffffffffffffffffffffffffffff168487876040516107ee929190610b02565b60006040518083038185875af1925050503d806000811461082b576040519150601f19603f3d011682016040523d82523d6000602084013e610830565b606091505b50915091508161086c576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9695505050505050565b3361089f7f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c05490565b73ffffffffffffffffffffffffffffffffffffffff161461042f576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610939576040517fd924e5f400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff8216907f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616390600090a27f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c05560007f9855384122b55936fbfb8ca5120e63c6537a1ac40caf6ae33502b3c5da8c87d155565b803573ffffffffffffffffffffffffffffffffffffffff811681146109e657600080fd5b919050565b6000602082840312156109fd57600080fd5b610a06826109c2565b9392505050565b60008060008060608587031215610a2357600080fd5b610a2c856109c2565b9350602085013567ffffffffffffffff80821115610a4957600080fd5b818701915087601f830112610a5d57600080fd5b813581811115610a6c57600080fd5b886020828501011115610a7e57600080fd5b95986020929092019750949560400135945092505050565b600060208083528351808285015260005b81811015610ac357858101830151858201604001528201610aa7565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b818382376000910190815291905056fea2646970667358221220e26dd4711320eb50e6ba86624e9c9a8ccc851394e19eb180d7096be0b157ecce64736f6c634300081300330000000000000000000000006f24a47fc8ae5441eb47effc3665e70e69ac3f05
Deployed Bytecode
0x6080604052600436106100b55760003560e01c80639870d7fe11610069578063b80886ac1161004e578063b80886ac14610218578063e30c397814610238578063f2fde38b1461026c57600080fd5b80639870d7fe146101d8578063ac8a584a146101f857600080fd5b8063710bf3221161009a578063710bf3221461014c57806379ba50971461016e5780638da5cb5b1461018357600080fd5b806313e7c9d8146100c15780636d70f7ae1461010657600080fd5b366100bc57005b600080fd5b3480156100cd57600080fd5b506100f16100dc3660046109eb565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561011257600080fd5b506100f16101213660046109eb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205460ff1690565b34801561015857600080fd5b5061016c6101673660046109eb565b61028c565b005b34801561017a57600080fd5b5061016c6103b4565b34801561018f57600080fd5b507f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0545b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100fd565b3480156101e457600080fd5b5061016c6101f33660046109eb565b61043b565b34801561020457600080fd5b5061016c6102133660046109eb565b6105d5565b61022b610226366004610a0d565b61076b565b6040516100fd9190610a96565b34801561024457600080fd5b507f9855384122b55936fbfb8ca5120e63c6537a1ac40caf6ae33502b3c5da8c87d1546101b3565b34801561027857600080fd5b5061016c6102873660046109eb565b610876565b336102b57f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c05490565b73ffffffffffffffffffffffffffffffffffffffff1614610302576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811661034f576040517fd924e5f400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff8216907fd9be0e8e07417e00f2521db636cb53e316fd288f5051f16d2aa2bf0c3938a87690600090a27f9855384122b55936fbfb8ca5120e63c6537a1ac40caf6ae33502b3c5da8c87d155565b60006103de7f9855384122b55936fbfb8ca5120e63c6537a1ac40caf6ae33502b3c5da8c87d15490565b905073ffffffffffffffffffffffffffffffffffffffff8116331461042f576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610438816108ec565b50565b336104647f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c05490565b73ffffffffffffffffffffffffffffffffffffffff16146104b1576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166104fe576040517fccea9e6f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526020819052604090205460ff161561055e576040517f56272c9400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526020819052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d9190a250565b336105fe7f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c05490565b73ffffffffffffffffffffffffffffffffffffffff161461064b576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610698576040517fccea9e6f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526020819052604090205460ff166106f7576040517fd857ba2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526020819052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d9190a250565b3360009081526020819052604090205460609060ff166107b7576040517f7c214f0400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816000036107c3573491505b6000808673ffffffffffffffffffffffffffffffffffffffff168487876040516107ee929190610b02565b60006040518083038185875af1925050503d806000811461082b576040519150601f19603f3d011682016040523d82523d6000602084013e610830565b606091505b50915091508161086c576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9695505050505050565b3361089f7f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c05490565b73ffffffffffffffffffffffffffffffffffffffff161461042f576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610939576040517fd924e5f400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff8216907f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616390600090a27f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c05560007f9855384122b55936fbfb8ca5120e63c6537a1ac40caf6ae33502b3c5da8c87d155565b803573ffffffffffffffffffffffffffffffffffffffff811681146109e657600080fd5b919050565b6000602082840312156109fd57600080fd5b610a06826109c2565b9392505050565b60008060008060608587031215610a2357600080fd5b610a2c856109c2565b9350602085013567ffffffffffffffff80821115610a4957600080fd5b818701915087601f830112610a5d57600080fd5b813581811115610a6c57600080fd5b886020828501011115610a7e57600080fd5b95986020929092019750949560400135945092505050565b600060208083528351808285015260005b81811015610ac357858101830151858201604001528201610aa7565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b818382376000910190815291905056fea2646970667358221220e26dd4711320eb50e6ba86624e9c9a8ccc851394e19eb180d7096be0b157ecce64736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000006f24a47fc8ae5441eb47effc3665e70e69ac3f05
-----Decoded View---------------
Arg [0] : initialOwner (address): 0x6f24A47Fc8AE5441Eb47EFfC3665e70e69Ac3F05
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006f24a47fc8ae5441eb47effc3665e70e69ac3f05
Deployed Bytecode Sourcemap
8431:2866:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8480:41;;;;;;;;;;-1:-1:-1;8480:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;571:14:1;;564:22;546:41;;534:2;519:18;8480:41:0;;;;;;;;9125:110;;;;;;;;;;-1:-1:-1;9125:110:0;;;;;:::i;:::-;9209:18;;9185:4;9209:18;;;;;;;;;;;;;;9125:110;6929:287;;;;;;;;;;-1:-1:-1;6929:287:0;;;;;:::i;:::-;;:::i;:::-;;7346:197;;;;;;;;;;;;;:::i;5834:135::-;;;;;;;;;;-1:-1:-1;5939:11:0;5933:18;5834:135;;;774:42:1;762:55;;;744:74;;732:2;717:18;5834:135:0;598:226:1;9419:274:0;;;;;;;;;;-1:-1:-1;9419:274:0;;;;;:::i;:::-;;:::i;9882:::-;;;;;;;;;;-1:-1:-1;9882:274:0;;;;;:::i;:::-;;:::i;10699:455::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6111:155::-;;;;;;;;;;-1:-1:-1;6223:24:0;6217:31;6111:155;;6488:119;;;;;;;;;;-1:-1:-1;6488:119:0;;;;;:::i;:::-;;:::i;6929:287::-;5641:10;5630:7;5939:11;5933:18;;5834:135;5630:7;:21;;;5626:44;;5660:10;;;;;;;;;;;;;;5626:44;7015:22:::1;::::0;::::1;7011:56;;7046:21;;;;;;;;;;;;;;7011:56;7085:34;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;7163:24;7156:42:::0;6929:287::o;7346:197::-;7401:16;7420:14;6223:24;6217:31;;6111:155;7420:14;7401:33;-1:-1:-1;7449:22:0;;;7461:10;7449:22;7445:49;;7480:14;;;;;;;;;;;;;;7445:49;7507:28;7526:8;7507:18;:28::i;:::-;7390:153;7346:197::o;9419:274::-;5641:10;5630:7;5939:11;5933:18;;5834:135;5630:7;:21;;;5626:44;;5660:10;;;;;;;;;;;;;;5626:44;9492:22:::1;::::0;::::1;9488:52;;9523:17;;;;;;;;;;;;;;9488:52;9555:19;::::0;::::1;:9;:19:::0;;;::::1;::::0;;;;;;;::::1;;9551:54;;;9583:22;;;;;;;;;;;;;;9551:54;9618:19;::::0;::::1;:9;:19:::0;;;::::1;::::0;;;;;;;:26;;;::::1;9640:4;9618:26;::::0;;9662:23;::::1;::::0;9618:9;9662:23:::1;9419:274:::0;:::o;9882:::-;5641:10;5630:7;5939:11;5933:18;;5834:135;5630:7;:21;;;5626:44;;5660:10;;;;;;;;;;;;;;5626:44;9958:22:::1;::::0;::::1;9954:52;;9989:17;;;;;;;;;;;;;;9954:52;10022:19;::::0;::::1;:9;:19:::0;;;::::1;::::0;;;;;;;::::1;;10017:48;;10050:15;;;;;;;;;;;;;;10017:48;10078:19;::::0;::::1;10100:5;10078:19:::0;;;::::1;::::0;;;;;;;:27;;;::::1;::::0;;10123:25;::::1;::::0;10100:5;10123:25:::1;9882:274:::0;:::o;10699:455::-;8888:10;8878:9;:21;;;;;;;;;;;10859:12;;8878:21;;8873:48;;8908:13;;;;;;;;;;;;;;8873:48;10888:11:::1;10903:1;10888:16:::0;10884:72:::1;;10935:9;10921:23;;10884:72;10969:12;10983:17:::0;11004:6:::1;:11;;11024;11038:8;;11004:43;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10968:79;;;;11063:7;11058:65;;11094:17;;;;;;;;;;;;;;11058:65;11142:4:::0;10699:455;-1:-1:-1;;;;;;10699:455:0:o;6488:119::-;5641:10;5630:7;5939:11;5933:18;;5834:135;5630:7;:21;;;5626:44;;5660:10;;;;;;;;;;;;;;7796:311;7874:22;;;7870:56;;7905:21;;;;;;;;;;;;;;7870:56;7944:30;;;;;;;;;;;8018:11;8011:29;8087:1;8061:24;8054:35;7796:311::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:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;:::-;356:39;215:186;-1:-1:-1;;;215:186:1:o;829:733::-;917:6;925;933;941;994:2;982:9;973:7;969:23;965:32;962:52;;;1010:1;1007;1000:12;962:52;1033:29;1052:9;1033:29;:::i;:::-;1023:39;;1113:2;1102:9;1098:18;1085:32;1136:18;1177:2;1169:6;1166:14;1163:34;;;1193:1;1190;1183:12;1163:34;1231:6;1220:9;1216:22;1206:32;;1276:7;1269:4;1265:2;1261:13;1257:27;1247:55;;1298:1;1295;1288:12;1247:55;1338:2;1325:16;1364:2;1356:6;1353:14;1350:34;;;1380:1;1377;1370:12;1350:34;1425:7;1420:2;1411:6;1407:2;1403:15;1399:24;1396:37;1393:57;;;1446:1;1443;1436:12;1393:57;829:733;;1477:2;1469:11;;;;;-1:-1:-1;1499:6:1;;1552:2;1537:18;1524:32;;-1:-1:-1;829:733:1;-1:-1:-1;;;829:733:1:o;1567:605::-;1677:4;1706:2;1735;1724:9;1717:21;1767:6;1761:13;1810:6;1805:2;1794:9;1790:18;1783:34;1835:1;1845:140;1859:6;1856:1;1853:13;1845:140;;;1954:14;;;1950:23;;1944:30;1920:17;;;1939:2;1916:26;1909:66;1874:10;;1845:140;;;1849:3;2034:1;2029:2;2020:6;2009:9;2005:22;2001:31;1994:42;2163:2;2093:66;2088:2;2080:6;2076:15;2072:88;2061:9;2057:104;2053:113;2045:121;;;;1567:605;;;;:::o;2177:271::-;2360:6;2352;2347:3;2334:33;2316:3;2386:16;;2411:13;;;2386:16;2177:271;-1:-1:-1;2177:271:1:o
Swarm Source
ipfs://e26dd4711320eb50e6ba86624e9c9a8ccc851394e19eb180d7096be0b157ecce
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in FRAX
0.000003
Token Allocations
FRAX
100.00%
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| FRAXTAL | 100.00% | $0.981093 | 0.00000292 | $0.000003 |
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.