Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 1 from a total of 1 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 10453795 | 464 days ago | IN | 0 ETH | 0.00000015 |
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 7645863 | 529 days ago | Contract Creation | 0 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
BlastWrappedCollateral
Compiler Version
v0.8.24+commit.e11b9ed9
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;
import {BlastERC20RebasingYield} from "../Blast/BlastERC20RebasingYield.sol";
import {IAddressFinder} from "../Blast/interfaces/IAddressFinder.sol";
import {WrappedCollateral} from "./WrappedCollateral.sol";
contract BlastWrappedCollateral is WrappedCollateral, BlastERC20RebasingYield {
IAddressFinder public immutable ADDRESS_FINDER;
error NotYieldOperator();
constructor(
address _addressFinder,
address _underlying,
uint8 _decimals
) WrappedCollateral(_underlying, _decimals) BlastERC20RebasingYield(_addressFinder) {
ADDRESS_FINDER = IAddressFinder(_addressFinder);
}
function claimYield(address wethReceiver, address usdbReceiver) external {
if (ADDRESS_FINDER.getImplementationAddress("Governor") != msg.sender) {
revert NotYieldOperator();
}
_claimERC20RebasingYield(wethReceiver, usdbReceiver);
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;
import {BlastNativeYield} from "./BlastNativeYield.sol";
import {IERC20Rebasing, YieldMode} from "./interfaces/IERC20Rebasing.sol";
import {IAddressFinder} from "./interfaces/IAddressFinder.sol";
/**
* @title BlastERC20RebasingYield
* @notice This contract is a base contract for inheriting functions to claim Blast WETH or USDB yield
*/
contract BlastERC20RebasingYield is BlastNativeYield {
address public immutable WETH;
address public immutable USDB;
/**
* @param addressFinder Blast address finder
*/
constructor(address addressFinder) BlastNativeYield(addressFinder) {
WETH = IAddressFinder(addressFinder).getImplementationAddress("WETH");
USDB = IAddressFinder(addressFinder).getImplementationAddress("USDB");
IERC20Rebasing(WETH).configure(YieldMode.CLAIMABLE);
IERC20Rebasing(USDB).configure(YieldMode.CLAIMABLE);
}
/**
* @notice Claim Blast yield. Guarding of the function is dependent on the inherited contract.
* Inheriting does not allow claiming by default.
* A public or external function is required in the child contract to access the _claim function.
* @param wethReceiver The receiver of WETH.
* @param usdbReceiver The receiver of USDB.
*/
function _claimERC20RebasingYield(address wethReceiver, address usdbReceiver) internal {
uint256 claimableWETH = IERC20Rebasing(WETH).getClaimableAmount(address(this));
if (claimableWETH != 0) {
IERC20Rebasing(WETH).claim(wethReceiver, claimableWETH);
}
uint256 claimableUSDB = IERC20Rebasing(USDB).getClaimableAmount(address(this));
if (claimableUSDB != 0) {
IERC20Rebasing(USDB).claim(usdbReceiver, claimableUSDB);
}
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;
import {IBlast, YieldMode, GasMode} from "./interfaces/IBlast.sol";
import {IAddressFinder} from "./interfaces/IAddressFinder.sol";
import {BlastPoints} from "./BlastPoints.sol";
/**
* @title BlastNativeYield
* @notice This contract is a base contract for inheriting functions to claim native yield and for those that wish to receive Blast points
*/
contract BlastNativeYield is BlastPoints {
/**
* @param addressFinder Blast address finder
*/
constructor(address addressFinder) BlastPoints(addressFinder) {
address blast = IAddressFinder(addressFinder).getImplementationAddress("Blast");
address governor = IAddressFinder(addressFinder).getImplementationAddress("Governor");
IBlast(blast).configure(YieldMode.CLAIMABLE, GasMode.CLAIMABLE, governor);
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;
import {IBlastPoints} from "./interfaces/IBlastPoints.sol";
import {IAddressFinder} from "./interfaces/IAddressFinder.sol";
/**
* @title BlastPoints
* @notice This contract is a base for future contracts that wish to be recipients of Blast points to inherit from
*/
contract BlastPoints {
/**
* @param addressFinder Blast address finder
*/
constructor(address addressFinder) {
address blastPoints = IAddressFinder(addressFinder).getImplementationAddress("BlastPoints");
address blastPointsOperator = IAddressFinder(addressFinder).getImplementationAddress("BlastPointsOperator");
IBlastPoints(blastPoints).configurePointsOperator(blastPointsOperator);
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;
/**
* @title Provides addresses of the live contracts implementing certain interfaces.
* @dev Examples are the Oracle or Store interfaces.
* @notice This is a straight fork of UMA's Finder contract and we are using it for non-contracts as well.
*/
interface IAddressFinder {
/**
* @notice Updates the address of the contract that implements `interfaceName`.
* @param interfaceName bytes32 encoding of the interface name that is either changed or registered.
* @param implementationAddress address of the deployed contract that implements the interface.
*/
function changeImplementationAddress(bytes32 interfaceName, address implementationAddress) external;
/**
* @notice Gets the address of the contract that implements the given `interfaceName`.
* @param interfaceName queried interface.
* @return implementationAddress address of the deployed contract that implements the interface.
*/
function getImplementationAddress(bytes32 interfaceName) external view returns (address);
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;
enum YieldMode {
AUTOMATIC,
VOID,
CLAIMABLE
}
enum GasMode {
VOID,
CLAIMABLE
}
interface IBlast {
// configure
function configureContract(address contractAddress, YieldMode _yield, GasMode gasMode, address governor) external;
function configure(YieldMode _yield, GasMode gasMode, address governor) external;
// base configuration options
function configureClaimableYield() external;
function configureClaimableYieldOnBehalf(address contractAddress) external;
function configureAutomaticYield() external;
function configureAutomaticYieldOnBehalf(address contractAddress) external;
function configureVoidYield() external;
function configureVoidYieldOnBehalf(address contractAddress) external;
function configureClaimableGas() external;
function configureClaimableGasOnBehalf(address contractAddress) external;
function configureVoidGas() external;
function configureVoidGasOnBehalf(address contractAddress) external;
function configureGovernor(address _governor) external;
function configureGovernorOnBehalf(address _newGovernor, address contractAddress) external;
// claim yield
function claimYield(address contractAddress, address recipientOfYield, uint256 amount) external returns (uint256);
function claimAllYield(address contractAddress, address recipientOfYield) external returns (uint256);
// claim gas
function claimAllGas(address contractAddress, address recipientOfGas) external returns (uint256);
function claimGasAtMinClaimRate(
address contractAddress,
address recipientOfGas,
uint256 minClaimRateBips
) external returns (uint256);
function claimMaxGas(address contractAddress, address recipientOfGas) external returns (uint256);
function claimGas(
address contractAddress,
address recipientOfGas,
uint256 gasToClaim,
uint256 gasSecondsToConsume
) external returns (uint256);
// read functions
function readClaimableYield(address contractAddress) external view returns (uint256);
function readYieldConfiguration(address contractAddress) external view returns (uint8);
function readGasParams(
address contractAddress
) external view returns (uint256 etherSeconds, uint256 etherBalance, uint256 lastUpdated, GasMode);
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;
interface IBlastPoints {
function configurePointsOperator(address operator) external;
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;
enum YieldMode {
AUTOMATIC,
VOID,
CLAIMABLE
}
interface IERC20Rebasing {
// changes the yield mode of the caller and update the balance
// to reflect the configuration
function configure(YieldMode) external returns (uint256);
// "claimable" yield mode accounts can call this this claim their yield
// to another address
function claim(address recipient, uint256 amount) external returns (uint256);
// read the claimable amount for an account
function getClaimableAmount(address account) external view returns (uint256);
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;
import {ERC20} from "solmate/src/tokens/ERC20.sol";
import {SafeTransferLib} from "solmate/src/utils/SafeTransferLib.sol";
/// @title IWrappedCollateralEE
/// @notice WrappedCollateral Errors and Events
interface IWrappedCollateralEE {
error OnlyOwner();
}
string constant NAME = "Wrapped Collateral";
string constant SYMBOL = "WCOL";
/// @title WrappedCollateral
/// @notice Wraps an ERC20 token to be used as collateral in the CTF
contract WrappedCollateral is IWrappedCollateralEE, ERC20 {
using SafeTransferLib for ERC20;
/*//////////////////////////////////////////////////////////////
STATE
//////////////////////////////////////////////////////////////*/
address public immutable owner;
address public immutable underlying;
/*//////////////////////////////////////////////////////////////
MODIFIERS
//////////////////////////////////////////////////////////////*/
modifier onlyOwner() {
if (msg.sender != owner) revert OnlyOwner();
_;
}
/*//////////////////////////////////////////////////////////////
CONSTRUCTOR
//////////////////////////////////////////////////////////////*/
/// @param _underlying The address of the underlying ERC20 token
/// @param _decimals The number of decimals of the underlying ERC20 token
constructor(address _underlying, uint8 _decimals) ERC20(NAME, SYMBOL, _decimals) {
owner = msg.sender;
underlying = _underlying;
}
/*//////////////////////////////////////////////////////////////
UNWRAP
//////////////////////////////////////////////////////////////*/
/// @notice Unwraps the specified amount of tokens
/// @param _to The address to send the unwrapped tokens to
/// @param _amount The amount of tokens to unwrap
function unwrap(address _to, uint256 _amount) external {
_burn(msg.sender, _amount);
ERC20(underlying).safeTransfer(_to, _amount);
}
/*//////////////////////////////////////////////////////////////
ADMIN
//////////////////////////////////////////////////////////////*/
/// @notice Wraps the specified amount of tokens
/// @notice Can only be called by the owner
/// @param _to - the address to send the wrapped tokens to
/// @param _amount - the amount of tokens to wrap
function wrap(address _to, uint256 _amount) external onlyOwner {
ERC20(underlying).safeTransferFrom(msg.sender, address(this), _amount);
_mint(_to, _amount);
}
/// @notice Burns the specified amount of tokens
/// @notice Can only be called by the owner
/// @param _amount - the amount of tokens to burn
function burn(uint256 _amount) external onlyOwner {
_burn(msg.sender, _amount);
}
/// @notice Mints the specified amount of tokens
/// @notice Can only be called by the owner
/// @param _amount - the amount of tokens to mint
function mint(uint256 _amount) external onlyOwner {
_mint(msg.sender, _amount);
}
/// @notice Releases the specified amount of the underlying token
/// @notice Can only be called by the owner
/// @param _to - the address to send the released tokens to
/// @param _amount - the amount of tokens to release
function release(address _to, uint256 _amount) external onlyOwner {
ERC20(underlying).safeTransfer(_to, _amount);
}
}// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;
/// @notice Modern and gas efficient ERC20 + EIP-2612 implementation.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)
/// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)
/// @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it.
abstract contract ERC20 {
/*//////////////////////////////////////////////////////////////
EVENTS
//////////////////////////////////////////////////////////////*/
event Transfer(address indexed from, address indexed to, uint256 amount);
event Approval(address indexed owner, address indexed spender, uint256 amount);
/*//////////////////////////////////////////////////////////////
METADATA STORAGE
//////////////////////////////////////////////////////////////*/
string public name;
string public symbol;
uint8 public immutable decimals;
/*//////////////////////////////////////////////////////////////
ERC20 STORAGE
//////////////////////////////////////////////////////////////*/
uint256 public totalSupply;
mapping(address => uint256) public balanceOf;
mapping(address => mapping(address => uint256)) public allowance;
/*//////////////////////////////////////////////////////////////
EIP-2612 STORAGE
//////////////////////////////////////////////////////////////*/
uint256 internal immutable INITIAL_CHAIN_ID;
bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR;
mapping(address => uint256) public nonces;
/*//////////////////////////////////////////////////////////////
CONSTRUCTOR
//////////////////////////////////////////////////////////////*/
constructor(
string memory _name,
string memory _symbol,
uint8 _decimals
) {
name = _name;
symbol = _symbol;
decimals = _decimals;
INITIAL_CHAIN_ID = block.chainid;
INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator();
}
/*//////////////////////////////////////////////////////////////
ERC20 LOGIC
//////////////////////////////////////////////////////////////*/
function approve(address spender, uint256 amount) public virtual returns (bool) {
allowance[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function transfer(address to, uint256 amount) public virtual returns (bool) {
balanceOf[msg.sender] -= amount;
// Cannot overflow because the sum of all user
// balances can't exceed the max uint256 value.
unchecked {
balanceOf[to] += amount;
}
emit Transfer(msg.sender, to, amount);
return true;
}
function transferFrom(
address from,
address to,
uint256 amount
) public virtual returns (bool) {
uint256 allowed = allowance[from][msg.sender]; // Saves gas for limited approvals.
if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount;
balanceOf[from] -= amount;
// Cannot overflow because the sum of all user
// balances can't exceed the max uint256 value.
unchecked {
balanceOf[to] += amount;
}
emit Transfer(from, to, amount);
return true;
}
/*//////////////////////////////////////////////////////////////
EIP-2612 LOGIC
//////////////////////////////////////////////////////////////*/
function permit(
address owner,
address spender,
uint256 value,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) public virtual {
require(deadline >= block.timestamp, "PERMIT_DEADLINE_EXPIRED");
// Unchecked because the only math done is incrementing
// the owner's nonce which cannot realistically overflow.
unchecked {
address recoveredAddress = ecrecover(
keccak256(
abi.encodePacked(
"\x19\x01",
DOMAIN_SEPARATOR(),
keccak256(
abi.encode(
keccak256(
"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"
),
owner,
spender,
value,
nonces[owner]++,
deadline
)
)
)
),
v,
r,
s
);
require(recoveredAddress != address(0) && recoveredAddress == owner, "INVALID_SIGNER");
allowance[recoveredAddress][spender] = value;
}
emit Approval(owner, spender, value);
}
function DOMAIN_SEPARATOR() public view virtual returns (bytes32) {
return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator();
}
function computeDomainSeparator() internal view virtual returns (bytes32) {
return
keccak256(
abi.encode(
keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
keccak256(bytes(name)),
keccak256("1"),
block.chainid,
address(this)
)
);
}
/*//////////////////////////////////////////////////////////////
INTERNAL MINT/BURN LOGIC
//////////////////////////////////////////////////////////////*/
function _mint(address to, uint256 amount) internal virtual {
totalSupply += amount;
// Cannot overflow because the sum of all user
// balances can't exceed the max uint256 value.
unchecked {
balanceOf[to] += amount;
}
emit Transfer(address(0), to, amount);
}
function _burn(address from, uint256 amount) internal virtual {
balanceOf[from] -= amount;
// Cannot underflow because a user's balance
// will never be larger than the total supply.
unchecked {
totalSupply -= amount;
}
emit Transfer(from, address(0), amount);
}
}// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;
import {ERC20} from "../tokens/ERC20.sol";
/// @notice Safe ETH and ERC20 transfer library that gracefully handles missing return values.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SafeTransferLib.sol)
/// @dev Use with caution! Some functions in this library knowingly create dirty bits at the destination of the free memory pointer.
/// @dev Note that none of the functions in this library check that a token has code at all! That responsibility is delegated to the caller.
library SafeTransferLib {
/*//////////////////////////////////////////////////////////////
ETH OPERATIONS
//////////////////////////////////////////////////////////////*/
function safeTransferETH(address to, uint256 amount) internal {
bool success;
/// @solidity memory-safe-assembly
assembly {
// Transfer the ETH and store if it succeeded or not.
success := call(gas(), to, amount, 0, 0, 0, 0)
}
require(success, "ETH_TRANSFER_FAILED");
}
/*//////////////////////////////////////////////////////////////
ERC20 OPERATIONS
//////////////////////////////////////////////////////////////*/
function safeTransferFrom(
ERC20 token,
address from,
address to,
uint256 amount
) internal {
bool success;
/// @solidity memory-safe-assembly
assembly {
// Get a pointer to some free memory.
let freeMemoryPointer := mload(0x40)
// Write the abi-encoded calldata into memory, beginning with the function selector.
mstore(freeMemoryPointer, 0x23b872dd00000000000000000000000000000000000000000000000000000000)
mstore(add(freeMemoryPointer, 4), and(from, 0xffffffffffffffffffffffffffffffffffffffff)) // Append and mask the "from" argument.
mstore(add(freeMemoryPointer, 36), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Append and mask the "to" argument.
mstore(add(freeMemoryPointer, 68), amount) // Append the "amount" argument. Masking not required as it's a full 32 byte type.
success := and(
// Set success to whether the call reverted, if not we check it either
// returned exactly 1 (can't just be non-zero data), or had no return data.
or(and(eq(mload(0), 1), gt(returndatasize(), 31)), iszero(returndatasize())),
// We use 100 because the length of our calldata totals up like so: 4 + 32 * 3.
// We use 0 and 32 to copy up to 32 bytes of return data into the scratch space.
// Counterintuitively, this call must be positioned second to the or() call in the
// surrounding and() call or else returndatasize() will be zero during the computation.
call(gas(), token, 0, freeMemoryPointer, 100, 0, 32)
)
}
require(success, "TRANSFER_FROM_FAILED");
}
function safeTransfer(
ERC20 token,
address to,
uint256 amount
) internal {
bool success;
/// @solidity memory-safe-assembly
assembly {
// Get a pointer to some free memory.
let freeMemoryPointer := mload(0x40)
// Write the abi-encoded calldata into memory, beginning with the function selector.
mstore(freeMemoryPointer, 0xa9059cbb00000000000000000000000000000000000000000000000000000000)
mstore(add(freeMemoryPointer, 4), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Append and mask the "to" argument.
mstore(add(freeMemoryPointer, 36), amount) // Append the "amount" argument. Masking not required as it's a full 32 byte type.
success := and(
// Set success to whether the call reverted, if not we check it either
// returned exactly 1 (can't just be non-zero data), or had no return data.
or(and(eq(mload(0), 1), gt(returndatasize(), 31)), iszero(returndatasize())),
// We use 68 because the length of our calldata totals up like so: 4 + 32 * 2.
// We use 0 and 32 to copy up to 32 bytes of return data into the scratch space.
// Counterintuitively, this call must be positioned second to the or() call in the
// surrounding and() call or else returndatasize() will be zero during the computation.
call(gas(), token, 0, freeMemoryPointer, 68, 0, 32)
)
}
require(success, "TRANSFER_FAILED");
}
function safeApprove(
ERC20 token,
address to,
uint256 amount
) internal {
bool success;
/// @solidity memory-safe-assembly
assembly {
// Get a pointer to some free memory.
let freeMemoryPointer := mload(0x40)
// Write the abi-encoded calldata into memory, beginning with the function selector.
mstore(freeMemoryPointer, 0x095ea7b300000000000000000000000000000000000000000000000000000000)
mstore(add(freeMemoryPointer, 4), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Append and mask the "to" argument.
mstore(add(freeMemoryPointer, 36), amount) // Append the "amount" argument. Masking not required as it's a full 32 byte type.
success := and(
// Set success to whether the call reverted, if not we check it either
// returned exactly 1 (can't just be non-zero data), or had no return data.
or(and(eq(mload(0), 1), gt(returndatasize(), 31)), iszero(returndatasize())),
// We use 68 because the length of our calldata totals up like so: 4 + 32 * 2.
// We use 0 and 32 to copy up to 32 bytes of return data into the scratch space.
// Counterintuitively, this call must be positioned second to the or() call in the
// surrounding and() call or else returndatasize() will be zero during the computation.
call(gas(), token, 0, freeMemoryPointer, 68, 0, 32)
)
}
require(success, "APPROVE_FAILED");
}
}{
"viaIR": true,
"optimizer": {
"enabled": true,
"runs": 200
},
"evmVersion": "paris",
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_addressFinder","type":"address"},{"internalType":"address","name":"_underlying","type":"address"},{"internalType":"uint8","name":"_decimals","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NotYieldOperator","type":"error"},{"inputs":[],"name":"OnlyOwner","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ADDRESS_FINDER","outputs":[{"internalType":"contract IAddressFinder","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USDB","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wethReceiver","type":"address"},{"internalType":"address","name":"usdbReceiver","type":"address"}],"name":"claimYield","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"underlying","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"unwrap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"wrap","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
6101806040818152346200050d57600060608362001cdb80380380916200002782856200098a565b83398101031262000941576200003d83620009ae565b91602090806200004f838701620009ae565b9501519160ff8316830362000686578151946200006c866200096e565b601286527115dc985c1c19590810dbdb1b185d195c985b60721b8287015282519462000098866200096e565b60048087526315d0d3d360e21b8488015287516001600160401b039891969190898111620008695780620000cd8554620009c3565b92601f93848111620008f0575b508790848311600114620008885786926200087c575b50508160011b916000199060031b1c19161783555b87519089821162000869578190600199620001218b54620009c3565b82811162000814575b5087918311600114620007b0578592620007a4575b5050600019600383901b1c191690881b1787555b6080524660a052835181549082816200016c84620009c3565b9182825287820194888c821691826000146200078757505060011462000746575b6200019b925003826200098a565b51902094845195848701907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8252868801527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608801524660808801523060a088015260a0875260c0870198878a10908a111762000733578886528651902060c0523360e0526101009889526302abf57960e61b8089526a426c617374506f696e747360a81b60c48801526024986001600160a01b039485169891979086818c818d5afa918215620005575787908693620006f4575b5050508651908882527f426c617374506f696e74734f70657261746f72000000000000000000000000008483015286828c818d5afa91821562000557579086918693620006b2575b501690813b156200060957858b8692838b5195869485936336b91f2b60e01b855216898401525af1801562000692576200069c575b5085519087825264109b185cdd60da1b8383015285828b818c5afa918215620006925784926200064f575b508651918883526723b7bb32b93737b960c11b8484015286838c818d5afa928315620005575790869186946200060d575b5016803b1562000609579060648b868094898c51978896879563c8992e6160e01b875260028c8801528601521660448401525af18015620005a457908391620005ed575b5050845197868952630ae8aa8960e31b828a0152848982818b5afa988915620005a4578399620005ae575b506101209889528551968752632aa9a22160e11b82880152848782818b5afa968715620005a457839762000561575b50610140968752838951169386518681848188631a33757d60e01b9a8b835260028a8401525af18015620005575790879493929162000525575b5094846002968a51168951978895869485528401525af19081156200051a5750620004e6575b505061016092835251926112da948562000a01863960805185610c1b015260a05185610fd3015260c05185610ffa015260e05185818161041d015281816108ce01528181610a0d01528181610b060152610e5901525184818161046b01528181610ac101528181610b6c0152610e8c01525183818161050c01526106460152518281816106a10152610bd201525181818161013501526106030152f35b813d831162000512575b620004fc81836200098a565b810103126200050d57388062000449565b600080fd5b503d620004f0565b8451903d90823e3d90fd5b8491943d83116200054f575b6200053d81836200098a565b810103126200050d5785923862000423565b503d62000531565b88513d87823e3d90fd5b9096508481813d83116200059c575b6200057c81836200098a565b8101031262000598576200059090620009ae565b9538620003e9565b8280fd5b503d62000570565b86513d85823e3d90fd5b9098508481813d8311620005e5575b620005c981836200098a565b810103126200059857620005dd90620009ae565b9738620003ba565b503d620005bd565b620005f89062000944565b620006055781386200038f565b5080fd5b8480fd5b88809295508193503d831162000647575b6200062a81836200098a565b8101031262000609576200063f8691620009ae565b92386200034b565b503d6200061e565b9091508581813d83116200068a575b6200066a81836200098a565b8101031262000686576200067e90620009ae565b90386200031a565b8380fd5b503d6200065e565b87513d86823e3d90fd5b620006aa9093919362000944565b9138620002ef565b88809294508193503d8311620006ec575b620006cf81836200098a565b810103126200060957620006e48691620009ae565b9138620002ba565b503d620006c3565b90809293503d83116200072b575b6200070e81856200098a565b8101031262000686576200072290620009ae565b38868162000272565b503d62000702565b634e487b7160e01b835260418252602483fd5b505083805281868086208b87915b8583106200076d5750506200019b93508201016200018d565b80919294505483858801015201910187908b859362000754565b60ff191687526200019b94151560051b84010191506200018d9050565b0151905038806200013f565b8a86528786208b94509190601f198416875b8a828210620007fd5750508411620007e3575b505050811b01875562000153565b015160001960f88460031b161c19169055388080620007d5565b8385015186558e97909501949384019301620007c2565b909192508a86528786208380860160051c8201928a87106200085f575b9186958e929594930160051c01915b828110620008505750506200012a565b8881558695508d910162000840565b9250819262000831565b634e487b7160e01b845260418852602484fd5b015190503880620000f0565b8680528887209250601f198416875b8a828210620008d9575050908460019594939210620008bf575b505050811b01835562000105565b015160001960f88460031b161c19169055388080620008b1565b600185968293968601518155019501930162000897565b9091508580528786208480850160051c8201928a861062000937575b9085949392910160051c01905b818110620009285750620000da565b87815584935060010162000919565b925081926200090c565b80fd5b6001600160401b0381116200095857604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176200095857604052565b601f909101601f19168101906001600160401b038211908210176200095857604052565b51906001600160a01b03821682036200050d57565b90600182811c92168015620009f5575b6020831014620009df57565b634e487b7160e01b600052602260045260246000fd5b91607f1691620009d356fe608060408181526004918236101561001657600080fd5b600092833560e01c9182630357371d14610e345750816306fdde0314610d8e578163095ea7b314610d1f57816318160ddd14610d0057816323b872dd14610c3f578163313ce56714610c0157816331a0edec14610bbd5781633644e51514610b9957816339f4769314610b4057816342966c6814610af05781636f307dc314610aac57816370a0823114610a745781637ecebe0014610a3c5781638da5cb5b146109f857816395d89b4114610915578163a0712d68146108b8578163a53da0a0146105ad578163a9059cbb1461053b578163ad5c4648146104f7578163bf376c7a146103f4578163d505accf146101b5578163dd62ed3e14610168575063f7c94e871461012257600080fd5b34610164578160031936011261016457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5080fd5b9050346101b157816003193601126101b1576020928291610187610ebf565b61018f610eda565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b8383346101645760e0366003190112610164576101d0610ebf565b906101d9610eda565b91604435606435926084359260ff84168094036103f0574285106103ad576101ff610fce565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff9484821086831117610399578188528451902061010085019261190160f01b8452610102860152610122850152604281526101608401948186109086111761038657848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa1561037c578651169687151580610373575b156103415786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b508488146102fe565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b8391503461016457826003193601126101645761040f610ebf565b602435916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811633036104e857846064602092828951916323b872dd60e01b835233878401523060248401528860448401527f0000000000000000000000000000000000000000000000000000000000000000165af13d15601f3d116001875114161716156104ae5750906104ab9161123b565b80f35b606490602086519162461bcd60e51b835282015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152fd5b508451635fc483c560e01b8152fd5b505034610164578160031936011261016457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b505034610164578060031936011261016457602091610558610ebf565b826024359133845260038652818420610572848254610fab565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020611285833981519152908590a35160018152f35b839150346101645782600319360112610164576105c8610ebf565b926105d1610eda565b81516302abf57960e61b81526723b7bb32b93737b960c11b818501526001600160a01b039560209492909185816024817f00000000000000000000000000000000000000000000000000000000000000008c165afa9081156108ae578791610878575b508733911603610868578686979695967f00000000000000000000000000000000000000000000000000000000000000001692855163e12f3a6160e01b9485825230878301528982602481845afa91821561085e57908a92918a92610829575b50816107ac575b505050507f00000000000000000000000000000000000000000000000000000000000000001690845192835230848401528683602481855afa9283156107a257869361076f575b50826106ec578580f35b8451635569f64b60e11b81526001600160a01b039091169381019384526020840192909252909385928592918391829060400103925af1908115610766575061073a575b8080808086948580f35b813d831161075f575b61074d8183610f2a565b8101031261075c578180610730565b80fd5b503d610743565b513d85823e3d90fd5b9092508681813d831161079b575b6107878183610f2a565b81010312610797575191886106e2565b8580fd5b503d61077d565b85513d88823e3d90fd5b8851635569f64b60e11b81526001600160a01b039094168885019081526020810192909252839182908b90829060400103925af1801561081f579088916107f6575b80829161069b565b813d8311610818575b6108098183610f2a565b810103126107975786896107ee565b503d6107ff565b86513d89823e3d90fd5b8381949293503d8311610857575b6108418183610f2a565b8101031261085357899151908c610694565b8880fd5b503d610837565b88513d8b823e3d90fd5b8351630fb48b4b60e31b81528390fd5b90508581813d83116108a7575b61088f8183610f2a565b810103126103f0575187811681036103f05788610634565b503d610885565b85513d89823e3d90fd5b919050346101b15760203660031901126101b1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361090857506104ab90353361123b565b51635fc483c560e01b8152fd5b82843461075c578060031936011261075c5781519080600180549061093982610ef0565b80865292602092600181169081156109cb5750600114610973575b61096f868861096582890383610f2a565b5191829182610f62565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106109b8575050505081016020016109658261096f86610954565b805486860184015293820193810161099b565b905061096f9795508693506020925061096594915060ff191682840152151560051b820101929486610954565b505034610164578160031936011261016457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5050346101645760203660031901126101645760209181906001600160a01b03610a64610ebf565b1681526005845220549051908152f35b5050346101645760203660031901126101645760209181906001600160a01b03610a9c610ebf565b1681526003845220549051908152f35b505034610164578160031936011261016457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b919050346101b15760203660031901126101b1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361090857506104ab9035336111f4565b5050346101645736600319011261075c576104ab610b5c610ebf565b60243590610b6a82336111f4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611175565b505034610164578160031936011261016457602090610bb6610fce565b9051908152f35b505034610164578160031936011261016457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5050346101645781600319360112610164576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b82843461075c57606036600319011261075c57610c5a610ebf565b600080516020611285833981519152610c71610eda565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610cdd575b50505086885260038552828820610cbe858254610fab565b9055169586815260038452208181540190558551908152a35160018152f35b610ce691610fab565b90888a528652838920338a528652838920558a8085610ca6565b5050346101645781600319360112610164576020906002549051908152f35b9050346101b157816003193601126101b157602092610d3c610ebf565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b82843461075c578060031936011261075c5781519080805490610db082610ef0565b808552916020916001918281169081156109cb5750600114610ddd5761096f868861096582890383610f2a565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610e21575050505081016020016109658261096f86610954565b8054868601840152938201938101610e04565b849084346101b15736600319011261016457610e4e610ebf565b6001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610eb15750906104ab91602435917f000000000000000000000000000000000000000000000000000000000000000016611175565b635fc483c560e01b81528490fd5b600435906001600160a01b0382168203610ed557565b600080fd5b602435906001600160a01b0382168203610ed557565b90600182811c92168015610f20575b6020831014610f0a57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610eff565b90601f8019910116810190811067ffffffffffffffff821117610f4c57604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610f9757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610f75565b91908203918211610fb857565b634e487b7160e01b600052601160045260246000fd5b6000467f00000000000000000000000000000000000000000000000000000000000000000361101c57507f000000000000000000000000000000000000000000000000000000000000000090565b6040518154829161102c82610ef0565b8082528160209485820194600190876001821691826000146111575750506001146110fe575b5061105f92500382610f2a565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff8311176110ea575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b85831061113f57505061105f935082010138611052565b80548388018501528694508893909201918101611128565b60ff1916885261105f95151560051b85010192503891506110529050565b60405163a9059cbb60e01b81526001600160a01b039092166004830152602482019290925260209160009160449183905af13d15601f3d11600160005114161716156111bd57565b60405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b90600080516020611285833981519152602060009360018060a01b0316928385526003825260408520611228828254610fab565b90558060025403600255604051908152a3565b60025490828201809211610fb85760206000805160206112858339815191529160009360025560018060a01b0316938484526003825260408420818154019055604051908152a356feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c11da8a87f13743bcf660aad6e18a8290e1a762918b193f4e933a9290ef158da64736f6c63430008180033000000000000000000000000c31bb90ee75706911faf6b831699026e5eb6f24a00000000000000000000000043000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000012
Deployed Bytecode
0x608060408181526004918236101561001657600080fd5b600092833560e01c9182630357371d14610e345750816306fdde0314610d8e578163095ea7b314610d1f57816318160ddd14610d0057816323b872dd14610c3f578163313ce56714610c0157816331a0edec14610bbd5781633644e51514610b9957816339f4769314610b4057816342966c6814610af05781636f307dc314610aac57816370a0823114610a745781637ecebe0014610a3c5781638da5cb5b146109f857816395d89b4114610915578163a0712d68146108b8578163a53da0a0146105ad578163a9059cbb1461053b578163ad5c4648146104f7578163bf376c7a146103f4578163d505accf146101b5578163dd62ed3e14610168575063f7c94e871461012257600080fd5b34610164578160031936011261016457517f000000000000000000000000c31bb90ee75706911faf6b831699026e5eb6f24a6001600160a01b03168152602090f35b5080fd5b9050346101b157816003193601126101b1576020928291610187610ebf565b61018f610eda565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b8383346101645760e0366003190112610164576101d0610ebf565b906101d9610eda565b91604435606435926084359260ff84168094036103f0574285106103ad576101ff610fce565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff9484821086831117610399578188528451902061010085019261190160f01b8452610102860152610122850152604281526101608401948186109086111761038657848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa1561037c578651169687151580610373575b156103415786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b508488146102fe565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b8391503461016457826003193601126101645761040f610ebf565b602435916001600160a01b037f000000000000000000000000c55687812285d05b74815ee2716d046faf61b003811633036104e857846064602092828951916323b872dd60e01b835233878401523060248401528860448401527f0000000000000000000000004300000000000000000000000000000000000003165af13d15601f3d116001875114161716156104ae5750906104ab9161123b565b80f35b606490602086519162461bcd60e51b835282015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152fd5b508451635fc483c560e01b8152fd5b505034610164578160031936011261016457517f00000000000000000000000043000000000000000000000000000000000000046001600160a01b03168152602090f35b505034610164578060031936011261016457602091610558610ebf565b826024359133845260038652818420610572848254610fab565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020611285833981519152908590a35160018152f35b839150346101645782600319360112610164576105c8610ebf565b926105d1610eda565b81516302abf57960e61b81526723b7bb32b93737b960c11b818501526001600160a01b039560209492909185816024817f000000000000000000000000c31bb90ee75706911faf6b831699026e5eb6f24a8c165afa9081156108ae578791610878575b508733911603610868578686979695967f00000000000000000000000043000000000000000000000000000000000000041692855163e12f3a6160e01b9485825230878301528982602481845afa91821561085e57908a92918a92610829575b50816107ac575b505050507f00000000000000000000000043000000000000000000000000000000000000031690845192835230848401528683602481855afa9283156107a257869361076f575b50826106ec578580f35b8451635569f64b60e11b81526001600160a01b039091169381019384526020840192909252909385928592918391829060400103925af1908115610766575061073a575b8080808086948580f35b813d831161075f575b61074d8183610f2a565b8101031261075c578180610730565b80fd5b503d610743565b513d85823e3d90fd5b9092508681813d831161079b575b6107878183610f2a565b81010312610797575191886106e2565b8580fd5b503d61077d565b85513d88823e3d90fd5b8851635569f64b60e11b81526001600160a01b039094168885019081526020810192909252839182908b90829060400103925af1801561081f579088916107f6575b80829161069b565b813d8311610818575b6108098183610f2a565b810103126107975786896107ee565b503d6107ff565b86513d89823e3d90fd5b8381949293503d8311610857575b6108418183610f2a565b8101031261085357899151908c610694565b8880fd5b503d610837565b88513d8b823e3d90fd5b8351630fb48b4b60e31b81528390fd5b90508581813d83116108a7575b61088f8183610f2a565b810103126103f0575187811681036103f05788610634565b503d610885565b85513d89823e3d90fd5b919050346101b15760203660031901126101b1577f000000000000000000000000c55687812285d05b74815ee2716d046faf61b0036001600160a01b0316330361090857506104ab90353361123b565b51635fc483c560e01b8152fd5b82843461075c578060031936011261075c5781519080600180549061093982610ef0565b80865292602092600181169081156109cb5750600114610973575b61096f868861096582890383610f2a565b5191829182610f62565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106109b8575050505081016020016109658261096f86610954565b805486860184015293820193810161099b565b905061096f9795508693506020925061096594915060ff191682840152151560051b820101929486610954565b505034610164578160031936011261016457517f000000000000000000000000c55687812285d05b74815ee2716d046faf61b0036001600160a01b03168152602090f35b5050346101645760203660031901126101645760209181906001600160a01b03610a64610ebf565b1681526005845220549051908152f35b5050346101645760203660031901126101645760209181906001600160a01b03610a9c610ebf565b1681526003845220549051908152f35b505034610164578160031936011261016457517f00000000000000000000000043000000000000000000000000000000000000036001600160a01b03168152602090f35b919050346101b15760203660031901126101b1577f000000000000000000000000c55687812285d05b74815ee2716d046faf61b0036001600160a01b0316330361090857506104ab9035336111f4565b5050346101645736600319011261075c576104ab610b5c610ebf565b60243590610b6a82336111f4565b7f00000000000000000000000043000000000000000000000000000000000000036001600160a01b0316611175565b505034610164578160031936011261016457602090610bb6610fce565b9051908152f35b505034610164578160031936011261016457517f00000000000000000000000043000000000000000000000000000000000000036001600160a01b03168152602090f35b5050346101645781600319360112610164576020905160ff7f0000000000000000000000000000000000000000000000000000000000000012168152f35b82843461075c57606036600319011261075c57610c5a610ebf565b600080516020611285833981519152610c71610eda565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610cdd575b50505086885260038552828820610cbe858254610fab565b9055169586815260038452208181540190558551908152a35160018152f35b610ce691610fab565b90888a528652838920338a528652838920558a8085610ca6565b5050346101645781600319360112610164576020906002549051908152f35b9050346101b157816003193601126101b157602092610d3c610ebf565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b82843461075c578060031936011261075c5781519080805490610db082610ef0565b808552916020916001918281169081156109cb5750600114610ddd5761096f868861096582890383610f2a565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610e21575050505081016020016109658261096f86610954565b8054868601840152938201938101610e04565b849084346101b15736600319011261016457610e4e610ebf565b6001600160a01b03917f000000000000000000000000c55687812285d05b74815ee2716d046faf61b00383163303610eb15750906104ab91602435917f000000000000000000000000430000000000000000000000000000000000000316611175565b635fc483c560e01b81528490fd5b600435906001600160a01b0382168203610ed557565b600080fd5b602435906001600160a01b0382168203610ed557565b90600182811c92168015610f20575b6020831014610f0a57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610eff565b90601f8019910116810190811067ffffffffffffffff821117610f4c57604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610f9757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610f75565b91908203918211610fb857565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000013e310361101c57507f119af3e668ed51b4caaf2e140d47ce1c334daf1a1acc9910cd35df9ebfb28f3090565b6040518154829161102c82610ef0565b8082528160209485820194600190876001821691826000146111575750506001146110fe575b5061105f92500382610f2a565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff8311176110ea575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b85831061113f57505061105f935082010138611052565b80548388018501528694508893909201918101611128565b60ff1916885261105f95151560051b85010192503891506110529050565b60405163a9059cbb60e01b81526001600160a01b039092166004830152602482019290925260209160009160449183905af13d15601f3d11600160005114161716156111bd57565b60405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b90600080516020611285833981519152602060009360018060a01b0316928385526003825260408520611228828254610fab565b90558060025403600255604051908152a3565b60025490828201809211610fb85760206000805160206112858339815191529160009360025560018060a01b0316938484526003825260408420818154019055604051908152a356feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c11da8a87f13743bcf660aad6e18a8290e1a762918b193f4e933a9290ef158da64736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c31bb90ee75706911faf6b831699026e5eb6f24a00000000000000000000000043000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000012
-----Decoded View---------------
Arg [0] : _addressFinder (address): 0xc31BB90Ee75706911faf6b831699026e5eB6f24a
Arg [1] : _underlying (address): 0x4300000000000000000000000000000000000003
Arg [2] : _decimals (uint8): 18
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000c31bb90ee75706911faf6b831699026e5eb6f24a
Arg [1] : 0000000000000000000000004300000000000000000000000000000000000003
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$15,901.89
Net Worth in ETH
6.032095
Token Allocations
USDB
100.00%
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| BLAST | 100.00% | $1 | 15,870.154 | $15,901.89 |
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.