Overview
FRAX Balance | FXTL Balance
FRAX Value
$0.00Latest 1 from a total of 1 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Set Fraxlend Dep... | 948239 | 702 days ago | IN | 0 FRAX | 0.00013756 |
Latest 17 internal transactions
| Parent Transaction Hash | Block | From | To | ||||
|---|---|---|---|---|---|---|---|
| 9585607 | 503 days ago | 0 FRAX | |||||
| 8038839 | 538 days ago | 0 FRAX | |||||
| 7776589 | 544 days ago | 0 FRAX | |||||
| 7253243 | 557 days ago | 0 FRAX | |||||
| 7217767 | 557 days ago | 0 FRAX | |||||
| 4802673 | 613 days ago | 0 FRAX | |||||
| 4802597 | 613 days ago | 0 FRAX | |||||
| 3972783 | 632 days ago | 0 FRAX | |||||
| 3890183 | 634 days ago | 0 FRAX | |||||
| 3839395 | 636 days ago | 0 FRAX | |||||
| 3839351 | 636 days ago | 0 FRAX | |||||
| 3838270 | 636 days ago | 0 FRAX | |||||
| 3836582 | 636 days ago | 0 FRAX | |||||
| 3836502 | 636 days ago | 0 FRAX | |||||
| 1132521 | 698 days ago | 0 FRAX | |||||
| 1127813 | 698 days ago | 0 FRAX | |||||
| 1120970 | 698 days ago | 0 FRAX |
Cross-Chain Transactions
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: ISC
pragma solidity ^0.8.19;
// ====================================================================
// | ______ _______ |
// | / _____________ __ __ / ____(_____ ____ _____ ________ |
// | / /_ / ___/ __ `| |/_/ / /_ / / __ \/ __ `/ __ \/ ___/ _ \ |
// | / __/ / / / /_/ _> < / __/ / / / / / /_/ / / / / /__/ __/ |
// | /_/ /_/ \__,_/_/|_| /_/ /_/_/ /_/\__,_/_/ /_/\___/\___/ |
// | |
// ====================================================================
// ======================= FraxlendWhitelist ==========================
// ====================================================================
// Frax Finance: https://github.com/FraxFinance
// Primary Author
// Drake Evans: https://github.com/DrakeEvans
// Reviewers
// Dennis: https://github.com/denett
// Sam Kazemian: https://github.com/samkazemian
// Travis Moore: https://github.com/FortisFortuna
// Jack Corddry: https://github.com/corddry
// Rich Gee: https://github.com/zer0blockchain
// ====================================================================
import { Ownable2Step } from "@openzeppelin/contracts/access/Ownable2Step.sol";
contract FraxlendWhitelist is Ownable2Step {
/// @notice Fraxlend Deployer Whitelist mapping.
mapping(address => bool) public fraxlendDeployerWhitelist;
constructor() Ownable2Step() {}
/// @notice The ```SetFraxlendDeployerWhitelist``` event fires whenever a status is set for a given address.
/// @param _address address being set.
/// @param _bool approval being set.
event SetFraxlendDeployerWhitelist(address indexed _address, bool _bool);
/// @notice The ```setFraxlendDeployerWhitelist``` function sets a given address to true/false for use as a custom deployer.
/// @param _addresses addresses to set status for.
/// @param _bool status of approval.
function setFraxlendDeployerWhitelist(address[] calldata _addresses, bool _bool) external onlyOwner {
for (uint256 i = 0; i < _addresses.length; i++) {
fraxlendDeployerWhitelist[_addresses[i]] = _bool;
emit SetFraxlendDeployerWhitelist(_addresses[i], _bool);
}
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (access/Ownable2Step.sol)
pragma solidity ^0.8.0;
import "./Ownable.sol";
/**
* @dev Contract module which provides access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership} and {acceptOwnership}.
*
* This module is used through inheritance. It will make available all functions
* from parent (Ownable).
*/
abstract contract Ownable2Step is Ownable {
address private _pendingOwner;
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);
/**
* @dev Returns the address of the pending owner.
*/
function pendingOwner() public view virtual returns (address) {
return _pendingOwner;
}
/**
* @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual override onlyOwner {
_pendingOwner = newOwner;
emit OwnershipTransferStarted(owner(), newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual override {
delete _pendingOwner;
super._transferOwnership(newOwner);
}
/**
* @dev The new owner accepts the ownership transfer.
*/
function acceptOwnership() external {
address sender = _msgSender();
require(pendingOwner() == sender, "Ownable2Step: caller is not the new owner");
_transferOwnership(sender);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)
pragma solidity ^0.8.0;
import "../utils/Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(_msgSender());
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
pragma solidity ^0.8.0;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}{
"remappings": [
"ds-test/=node_modules/ds-test/src/",
"forge-std/=node_modules/forge-std/src/",
"frax-std/=node_modules/frax-standard-solidity/src/",
"script/=script/",
"src/=src/",
"deploy/=deploy/",
"test/=test/",
"@chainlink/=node_modules/@chainlink/",
"@ensdomains/=node_modules/@ensdomains/",
"@eth-optimism/=node_modules/@eth-optimism/",
"@mean-finance/=node_modules/@mean-finance/",
"@openzeppelin/=node_modules/@openzeppelin/",
"@rari-capital/=node_modules/@rari-capital/",
"@uniswap/=node_modules/@uniswap/",
"base64-sol/=node_modules/base64-sol/",
"eth-gas-reporter/=node_modules/eth-gas-reporter/",
"frax-standard-solidity/=node_modules/frax-standard-solidity/",
"hardhat/=node_modules/hardhat/",
"solady/=node_modules/solady/",
"solidity-bytes-utils/=node_modules/solidity-bytes-utils/"
],
"optimizer": {
"enabled": false,
"runs": 1000000
},
"metadata": {
"useLiteralContent": false,
"bytecodeHash": "none",
"appendCBOR": true
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"evmVersion": "paris",
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"_bool","type":"bool"}],"name":"SetFraxlendDeployerWhitelist","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"fraxlendDeployerWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setFraxlendDeployerWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b5061002d61002261003260201b60201c565b61003a60201b60201c565b610135565b600033905090565b600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561006e8161007160201b60201c565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61094a806101446000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100b2578063a3e982d8146100d0578063e30c397814610100578063f2fde38b1461011e5761007d565b8063715018a61461008257806379ba50971461008c57806384c134d714610096575b600080fd5b61008a61013a565b005b61009461014e565b005b6100b060048036038101906100ab919061063f565b6101db565b005b6100ba6102fd565b6040516100c791906106e0565b60405180910390f35b6100ea60048036038101906100e59190610727565b610326565b6040516100f79190610763565b60405180910390f35b610108610346565b60405161011591906106e0565b60405180910390f35b61013860048036038101906101339190610727565b610370565b005b61014261041d565b61014c600061049b565b565b60006101586104cc565b90508073ffffffffffffffffffffffffffffffffffffffff16610179610346565b73ffffffffffffffffffffffffffffffffffffffff16146101cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101c690610801565b60405180910390fd5b6101d88161049b565b50565b6101e361041d565b60005b838390508110156102f757816002600086868581811061020957610208610821565b5b905060200201602081019061021e9190610727565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555083838281811061028257610281610821565b5b90506020020160208101906102979190610727565b73ffffffffffffffffffffffffffffffffffffffff167fda0d883e158071aaff93f07b843290deebb2143a8637d6059f1fba27b06c1bf6836040516102dc9190610763565b60405180910390a280806102ef90610889565b9150506101e6565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60026020528060005260406000206000915054906101000a900460ff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61037861041d565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff166103d86102fd565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6104256104cc565b73ffffffffffffffffffffffffffffffffffffffff166104436102fd565b73ffffffffffffffffffffffffffffffffffffffff1614610499576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104909061091d565b60405180910390fd5b565b600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556104c9816104d4565b50565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126105c7576105c66105a2565b5b8235905067ffffffffffffffff8111156105e4576105e36105a7565b5b602083019150836020820283011115610600576105ff6105ac565b5b9250929050565b60008115159050919050565b61061c81610607565b811461062757600080fd5b50565b60008135905061063981610613565b92915050565b60008060006040848603121561065857610657610598565b5b600084013567ffffffffffffffff8111156106765761067561059d565b5b610682868287016105b1565b935093505060206106958682870161062a565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006106ca8261069f565b9050919050565b6106da816106bf565b82525050565b60006020820190506106f560008301846106d1565b92915050565b610704816106bf565b811461070f57600080fd5b50565b600081359050610721816106fb565b92915050565b60006020828403121561073d5761073c610598565b5b600061074b84828501610712565b91505092915050565b61075d81610607565b82525050565b60006020820190506107786000830184610754565b92915050565b600082825260208201905092915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b60006107eb60298361077e565b91506107f68261078f565b604082019050919050565b6000602082019050818103600083015261081a816107de565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b60006108948261087f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036108c6576108c5610850565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061090760208361077e565b9150610912826108d1565b602082019050919050565b60006020820190508181036000830152610936816108fa565b905091905056fea164736f6c6343000813000a
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100b2578063a3e982d8146100d0578063e30c397814610100578063f2fde38b1461011e5761007d565b8063715018a61461008257806379ba50971461008c57806384c134d714610096575b600080fd5b61008a61013a565b005b61009461014e565b005b6100b060048036038101906100ab919061063f565b6101db565b005b6100ba6102fd565b6040516100c791906106e0565b60405180910390f35b6100ea60048036038101906100e59190610727565b610326565b6040516100f79190610763565b60405180910390f35b610108610346565b60405161011591906106e0565b60405180910390f35b61013860048036038101906101339190610727565b610370565b005b61014261041d565b61014c600061049b565b565b60006101586104cc565b90508073ffffffffffffffffffffffffffffffffffffffff16610179610346565b73ffffffffffffffffffffffffffffffffffffffff16146101cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101c690610801565b60405180910390fd5b6101d88161049b565b50565b6101e361041d565b60005b838390508110156102f757816002600086868581811061020957610208610821565b5b905060200201602081019061021e9190610727565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555083838281811061028257610281610821565b5b90506020020160208101906102979190610727565b73ffffffffffffffffffffffffffffffffffffffff167fda0d883e158071aaff93f07b843290deebb2143a8637d6059f1fba27b06c1bf6836040516102dc9190610763565b60405180910390a280806102ef90610889565b9150506101e6565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60026020528060005260406000206000915054906101000a900460ff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61037861041d565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff166103d86102fd565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6104256104cc565b73ffffffffffffffffffffffffffffffffffffffff166104436102fd565b73ffffffffffffffffffffffffffffffffffffffff1614610499576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104909061091d565b60405180910390fd5b565b600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556104c9816104d4565b50565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126105c7576105c66105a2565b5b8235905067ffffffffffffffff8111156105e4576105e36105a7565b5b602083019150836020820283011115610600576105ff6105ac565b5b9250929050565b60008115159050919050565b61061c81610607565b811461062757600080fd5b50565b60008135905061063981610613565b92915050565b60008060006040848603121561065857610657610598565b5b600084013567ffffffffffffffff8111156106765761067561059d565b5b610682868287016105b1565b935093505060206106958682870161062a565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006106ca8261069f565b9050919050565b6106da816106bf565b82525050565b60006020820190506106f560008301846106d1565b92915050565b610704816106bf565b811461070f57600080fd5b50565b600081359050610721816106fb565b92915050565b60006020828403121561073d5761073c610598565b5b600061074b84828501610712565b91505092915050565b61075d81610607565b82525050565b60006020820190506107786000830184610754565b92915050565b600082825260208201905092915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b60006107eb60298361077e565b91506107f68261078f565b604082019050919050565b6000602082019050818103600083015261081a816107de565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b60006108948261087f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036108c6576108c5610850565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061090760208361077e565b9150610912826108d1565b602082019050919050565b60006020820190508181036000830152610936816108fa565b905091905056fea164736f6c6343000813000a
Net Worth in USD
Net Worth in FRAX
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.