Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 11 from a total of 11 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Burn | 16839846 | 1092 days ago | IN | 0 ETH | 0.005664 | ||||
| Mint | 16839809 | 1092 days ago | IN | 0 ETH | 0.0026758 | ||||
| Burn | 16839768 | 1092 days ago | IN | 0 ETH | 0.00171707 | ||||
| Mint | 16839752 | 1092 days ago | IN | 0 ETH | 0.00282591 | ||||
| Burn | 16839712 | 1092 days ago | IN | 0 ETH | 0.0022932 | ||||
| Mint | 16839692 | 1092 days ago | IN | 0 ETH | 0.00221097 | ||||
| Mint | 16835291 | 1092 days ago | IN | 0 ETH | 0.00465974 | ||||
| Mint | 16835244 | 1092 days ago | IN | 0 ETH | 0.00360938 | ||||
| Mint | 16833595 | 1092 days ago | IN | 0 ETH | 0.00581232 | ||||
| Burn | 16831555 | 1093 days ago | IN | 0 ETH | 0.00195996 | ||||
| Mint | 16831549 | 1093 days ago | IN | 0 ETH | 0.00372175 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
LSDTokenVELSD
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-03-15
*/
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;
/**
* @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;
}
}
/**
* @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);
}
}
interface ILSDStorage {
// Depoly status
function getDeployedStatus() external view returns (bool);
// Guardian
function getGuardian() external view returns (address);
function setGuardian(address _newAddress) external;
function confirmGuardian() external;
// Getters
function getAddress(bytes32 _key) external view returns (address);
function getUint(bytes32 _key) external view returns (uint256);
function getString(bytes32 _key) external view returns (string memory);
function getBytes(bytes32 _key) external view returns (bytes memory);
function getBool(bytes32 _key) external view returns (bool);
function getInt(bytes32 _key) external view returns (int256);
function getBytes32(bytes32 _key) external view returns (bytes32);
// Setters
function setAddress(bytes32 _key, address _value) external;
function setUint(bytes32 _key, uint256 _value) external;
function setString(bytes32 _key, string calldata _value) external;
function setBytes(bytes32 _key, bytes calldata _value) external;
function setBool(bytes32 _key, bool _value) external;
function setInt(bytes32 _key, int256 _value) external;
function setBytes32(bytes32 _key, bytes32 _value) external;
// Deleters
function deleteAddress(bytes32 _key) external;
function deleteUint(bytes32 _key) external;
function deleteString(bytes32 _key) external;
function deleteBytes(bytes32 _key) external;
function deleteBool(bytes32 _key) external;
function deleteInt(bytes32 _key) external;
function deleteBytes32(bytes32 _key) external;
// Arithmetic
function addUint(bytes32 _key, uint256 _amount) external;
function subUint(bytes32 _key, uint256 _amount) external;
}
/// @title Base settings / modifiers for each contract in LSD
abstract contract LSDBase {
// Calculate using this as the base
uint256 constant calcBase = 1 ether;
// Version of the contract
uint8 public version;
// The main storage contact where primary persistant storage is maintained
ILSDStorage lsdStorage;
/*** Modifiers ***********************************************************/
/**
* @dev Throws if called by any sender that doesn't match a LSD network contract
*/
modifier onlyLSDNetworkContract() {
require(
getBool(
keccak256(abi.encodePacked("contract.exists", msg.sender))
),
"Invalid contract"
);
_;
}
/**
* @dev Throws if called by any sender that doesn't match one of the supplied contract
*/
modifier onlyLSDContract(
string memory _contractName,
address _contractAddress
) {
require(
_contractAddress ==
getAddress(
keccak256(
abi.encodePacked("contract.address", _contractName)
)
),
"Invalid contract"
);
_;
}
/*** Methods **********************************************************************/
/// @dev Set the main LSD storage address
constructor(ILSDStorage _lsdStorageAddress) {
// Update the contract address
lsdStorage = ILSDStorage(_lsdStorageAddress);
}
/// @dev Get the address of a network contract by name
function getContractAddress(string memory _contractName)
internal
view
returns (address)
{
// Get the current contract address
address contractAddress = getAddress(
keccak256(abi.encodePacked("contract.address", _contractName))
);
// Check it
require(contractAddress != address(0x0), "Contract not found");
return contractAddress;
}
/// @dev Get the name of a network contract by address
function getContractName(address _contractAddress)
internal
view
returns (string memory)
{
// Get the contract name
string memory contractName = getString(
keccak256(abi.encodePacked("contract.name", _contractAddress))
);
// Check it
require(bytes(contractName).length > 0, "Contract not found");
// Return
return contractName;
}
/// @dev Get revert error message from a .call method
function getRevertMsg(bytes memory _returnData)
internal
pure
returns (string memory)
{
// If the _res length is less than 68, then the transaction failed silently (without a revert message)
if (_returnData.length < 68) return "Transaction reverted silently";
assembly {
// Slice the sighash
_returnData := add(_returnData, 0x04)
}
return abi.decode(_returnData, (string)); // All that remains is the revert string
}
/*** LSD Storage Methods ********************************************************/
// Note: Uused helpers have been removed to keep contract sizes down
/// @dev Storage get methods
function getAddress(bytes32 _key) internal view returns (address) {
return lsdStorage.getAddress(_key);
}
function getUint(bytes32 _key) internal view returns (uint256) {
return lsdStorage.getUint(_key);
}
function getString(bytes32 _key) internal view returns (string memory) {
return lsdStorage.getString(_key);
}
function getBytes(bytes32 _key) internal view returns (bytes memory) {
return lsdStorage.getBytes(_key);
}
function getBool(bytes32 _key) internal view returns (bool) {
return lsdStorage.getBool(_key);
}
function getInt(bytes32 _key) internal view returns (int256) {
return lsdStorage.getInt(_key);
}
function getBytes32(bytes32 _key) internal view returns (bytes32) {
return lsdStorage.getBytes32(_key);
}
/// @dev Storage set methods
function setAddress(bytes32 _key, address _value) internal {
lsdStorage.setAddress(_key, _value);
}
function setUint(bytes32 _key, uint256 _value) internal {
lsdStorage.setUint(_key, _value);
}
function setString(bytes32 _key, string memory _value) internal {
lsdStorage.setString(_key, _value);
}
function setBytes(bytes32 _key, bytes memory _value) internal {
lsdStorage.setBytes(_key, _value);
}
function setBool(bytes32 _key, bool _value) internal {
lsdStorage.setBool(_key, _value);
}
function setInt(bytes32 _key, int256 _value) internal {
lsdStorage.setInt(_key, _value);
}
function setBytes32(bytes32 _key, bytes32 _value) internal {
lsdStorage.setBytes32(_key, _value);
}
/// @dev Storage delete methods
function deleteAddress(bytes32 _key) internal {
lsdStorage.deleteAddress(_key);
}
function deleteUint(bytes32 _key) internal {
lsdStorage.deleteUint(_key);
}
function deleteString(bytes32 _key) internal {
lsdStorage.deleteString(_key);
}
function deleteBytes(bytes32 _key) internal {
lsdStorage.deleteBytes(_key);
}
function deleteBool(bytes32 _key) internal {
lsdStorage.deleteBool(_key);
}
function deleteInt(bytes32 _key) internal {
lsdStorage.deleteInt(_key);
}
function deleteBytes32(bytes32 _key) internal {
lsdStorage.deleteBytes32(_key);
}
/// @dev Storage arithmetic methods
function addUint(bytes32 _key, uint256 _amount) internal {
lsdStorage.addUint(_key, _amount);
}
function subUint(bytes32 _key, uint256 _amount) internal {
lsdStorage.subUint(_key, _amount);
}
}
interface ILSDOwner {
function getDepositEnabled() external view returns (bool);
function getIsLock() external view returns (bool);
function getApy() external view returns (uint256);
function getMultiplier() external view returns (uint256);
function getMultiplierUnit() external view returns (uint256);
function getApyUnit() external view returns (uint256);
function getLIDOApy() external view returns (uint256);
function getRPApy() external view returns (uint256);
function getSWISEApy() external view returns (uint256);
function getProtocolFee() external view returns (uint256);
function getMinimumDepositAmount() external view returns (uint256);
function setDepositEnabled(bool _depositEnabled) external;
function setIsLock(bool _isLock) external;
function setApy(uint256 _apy) external;
function setApyUnit(uint256 _apyUnit) external;
function setMultiplier(uint256 _multiplier) external;
function setMultiplierUnit(uint256 _multiplierUnit) external;
function setRPApy(uint256 _rpApy) external;
function setLIDOApy(uint256 _lidoApy) external;
function setSWISEApy(uint256 _swiseApy) external;
function setProtocolFee(uint256 _protocalFee) external;
function setMinimumDepositAmount(uint256 _minimumDepositAmount) external;
function upgrade(string memory _type, string memory _name, string memory _contractAbi, address _contractAddress) external;
}
interface ILSDToken {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(
address recipient,
uint256 amount
) external returns (bool);
function allowance(
address owner,
address spender
) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
}
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `from` to `to` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(
address from,
address to,
uint256 amount
) external returns (bool);
}
interface ILSDTokenVELSD is IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address to, uint256 amount) external returns (bool);
function allowance(address owner, address spender)
external
view
returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(
address from,
address to,
uint256 amount
) external returns (bool);
function mint(uint256 _lsETHAmount) external;
function burn(uint256 _veLSDAmount) external;
}
contract LSDTokenVELSD is LSDBase, Ownable, ILSDTokenVELSD {
// Events
event TokenMinted(address indexed to, uint256 amount, uint256 time);
event TokenBurned(address indexed from, uint256 amount, uint256 time);
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
// Construct with veLSD Token
constructor(
ILSDStorage _lsdStorageAddress,
string memory name_,
string memory symbol_
) LSDBase(_lsdStorageAddress) {
// Version
version = 1;
_name = name_;
_symbol = symbol_;
}
/**
* @dev Returns the name of the token.
*/
function name() public view virtual override returns (string memory) {
return _name;
}
/**
* @dev Returns the symbol of the token, usually a shorter version of the
* name.
*/
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
function decimals() public view virtual override returns (uint8) {
return 9;
}
/**
* @dev See {IERC20-totalSupply}.
*/
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
/**
* @dev See {IERC20-balanceOf}.
*/
function balanceOf(
address account
) public view virtual override returns (uint256) {
return _balances[account];
}
/**
* @dev See {IERC20-transfer}.
*
* Requirements:
*
* - `to` cannot be the zero address.
* - the caller must have a balance of at least `amount`.
*/
function transfer(
address to,
uint256 amount
) public virtual override returns (bool) {
address owner = msg.sender;
_transfer(owner, to, amount);
return true;
}
/**
* @dev See {IERC20-allowance}.
*/
function allowance(
address owner,
address spender
) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
/**
* @dev See {IERC20-approve}.
*
* NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
* `transferFrom`. This is semantically equivalent to an infinite approval.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function approve(
address spender,
uint256 amount
) public virtual override returns (bool) {
address owner = msg.sender;
_approve(owner, spender, amount);
return true;
}
/**
* @dev See {IERC20-transferFrom}.
*
* Emits an {Approval} event indicating the updated allowance. This is not
* required by the EIP. See the note at the beginning of {ERC20}.
*
* NOTE: Does not update the allowance if the current allowance
* is the maximum `uint256`.
*
* Requirements:
*
* - `from` and `to` cannot be the zero address.
* - `from` must have a balance of at least `amount`.
* - the caller must have allowance for ``from``'s tokens of at least
* `amount`.
*/
function transferFrom(
address from,
address to,
uint256 amount
) public virtual override returns (bool) {
address spender = msg.sender;
_spendAllowance(from, spender, amount);
_transfer(from, to, amount);
return true;
}
/**
* @dev Atomically increases the allowance granted to `spender` by the caller.
*
* This is an alternative to {approve} that can be used as a mitigation for
* problems described in {IERC20-approve}.
*
* Emits an {Approval} event indicating the updated allowance.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function increaseAllowance(
address spender,
uint256 addedValue
) public virtual returns (bool) {
address owner = msg.sender;
_approve(owner, spender, allowance(owner, spender) + addedValue);
return true;
}
/**
* @dev Atomically decreases the allowance granted to `spender` by the caller.
*
* This is an alternative to {approve} that can be used as a mitigation for
* problems described in {IERC20-approve}.
*
* Emits an {Approval} event indicating the updated allowance.
*
* Requirements:
*
* - `spender` cannot be the zero address.
* - `spender` must have allowance for the caller of at least
* `subtractedValue`.
*/
function decreaseAllowance(
address spender,
uint256 subtractedValue
) public virtual returns (bool) {
address owner = msg.sender;
uint256 currentAllowance = allowance(owner, spender);
require(
currentAllowance >= subtractedValue,
"ERC20: decreased allowance below zero"
);
unchecked {
_approve(owner, spender, currentAllowance - subtractedValue);
}
return true;
}
/**
* @dev Moves `amount` of tokens from `from` to `to`.
*
* This internal function is equivalent to {transfer}, and can be used to
* e.g. implement automatic token fees, slashing mechanisms, etc.
*
* Emits a {Transfer} event.
*
* Requirements:
*
* - `from` cannot be the zero address.
* - `to` cannot be the zero address.
* - `from` must have a balance of at least `amount`.
*/
function _transfer(
address from,
address to,
uint256 amount
) internal virtual {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(from, to, amount);
uint256 fromBalance = _balances[from];
require(
fromBalance >= amount,
"ERC20: transfer amount exceeds balance"
);
unchecked {
_balances[from] = fromBalance - amount;
// Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
// decrementing then incrementing.
_balances[to] += amount;
}
emit Transfer(from, to, amount);
_afterTokenTransfer(from, to, amount);
}
// Mint veLSD
// Only mint 1:1 ratio with the lsd Token
function mint(uint256 _lsdTokenAmount) external override {
// Check lsd balance
ILSDToken lsdToken = ILSDToken(getContractAddress("lsdToken"));
require(
lsdToken.balanceOf(msg.sender) >= _lsdTokenAmount,
"ERC20: transfer amount exceeds balance"
);
lsdToken.transferFrom(msg.sender, address(this), _lsdTokenAmount);
// Mint veLSD Token
require(msg.sender != address(0), "ERC20: mint to the zero address");
_totalSupply += _lsdTokenAmount;
unchecked {
// Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
_balances[msg.sender] += _lsdTokenAmount;
}
// Emit token minted event
emit TokenMinted(msg.sender, _lsdTokenAmount, block.timestamp);
}
// Burn veLSD
function burn(uint256 _veLSDAmount) external override {
ILSDOwner lsdOwner = ILSDOwner(getContractAddress("lsdOwner"));
require(!lsdOwner.getIsLock(), "Token is locked by the owner");
// Check veLSD balance
require(
balanceOf(msg.sender) >= _veLSDAmount,
"ERC20: transfer amount exceeds balance"
);
uint256 accountBalance = _balances[msg.sender];
unchecked {
_balances[msg.sender] = accountBalance - _veLSDAmount;
// Overflow not possible: amount <= accountBalance <= totalSupply.
_totalSupply -= _veLSDAmount;
}
ILSDToken lsdToken = ILSDToken(getContractAddress("lsdToken"));
lsdToken.transfer(msg.sender, _veLSDAmount);
// Emit token burn event
emit TokenBurned(msg.sender, _veLSDAmount, block.timestamp);
}
/**
* @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
*
* This internal function is equivalent to `approve`, and can be used to
* e.g. set automatic allowances for certain subsystems, etc.
*
* Emits an {Approval} event.
*
* Requirements:
*
* - `owner` cannot be the zero address.
* - `spender` cannot be the zero address.
*/
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
/**
* @dev Updates `owner` s allowance for `spender` based on spent `amount`.
*
* Does not update the allowance amount in case of infinite allowance.
* Revert if not enough allowance is available.
*
* Might emit an {Approval} event.
*/
function _spendAllowance(
address owner,
address spender,
uint256 amount
) internal virtual {
uint256 currentAllowance = allowance(owner, spender);
if (currentAllowance != type(uint256).max) {
require(
currentAllowance >= amount,
"ERC20: insufficient allowance"
);
unchecked {
_approve(owner, spender, currentAllowance - amount);
}
}
}
/**
* @dev Hook that is called before any transfer of tokens. This includes
* minting and burning.
*
* Calling conditions:
*
* - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
* will be transferred to `to`.
* - when `from` is zero, `amount` tokens will be minted for `to`.
* - when `to` is zero, `amount` of ``from``'s tokens will be burned.
* - `from` and `to` are never both zero.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
// This is called by the ERC20 contract before all transfer, mint, and burns
function _beforeTokenTransfer(
address from,
address,
uint256
) internal view {
if (from != address(0)) {
ILSDOwner lsdOwner = ILSDOwner(getContractAddress("lsdOwner"));
require(!lsdOwner.getIsLock(), "Token is locked by the owner");
}
}
function _afterTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"contract ILSDStorage","name":"_lsdStorageAddress","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","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":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"TokenBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"TokenMinted","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":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_veLSDAmount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lsdTokenAmount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"}]Contract Creation Code
60806040523480156200001157600080fd5b50604051620014be380380620014be83398101604081905262000034916200026d565b60008054610100600160a81b0319166101006001600160a01b0386160217905562000066620000603390565b620000a8565b6000805460ff19166001179055815162000088906005906020850190620000fa565b5080516200009e906006906020840190620000fa565b5050505062000334565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280546200010890620002f7565b90600052602060002090601f0160209004810192826200012c576000855562000177565b82601f106200014757805160ff191683800117855562000177565b8280016001018555821562000177579182015b82811115620001775782518255916020019190600101906200015a565b506200018592915062000189565b5090565b5b808211156200018557600081556001016200018a565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001c857600080fd5b81516001600160401b0380821115620001e557620001e5620001a0565b604051601f8301601f19908116603f01168101908282118183101715620002105762000210620001a0565b816040528381526020925086838588010111156200022d57600080fd5b600091505b8382101562000251578582018301518183018401529082019062000232565b83821115620002635760008385830101525b9695505050505050565b6000806000606084860312156200028357600080fd5b83516001600160a01b03811681146200029b57600080fd5b60208501519093506001600160401b0380821115620002b957600080fd5b620002c787838801620001b6565b93506040860151915080821115620002de57600080fd5b50620002ed86828701620001b6565b9150509250925092565b600181811c908216806200030c57607f821691505b602082108114156200032e57634e487b7160e01b600052602260045260246000fd5b50919050565b61117a80620003446000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a2578063a0712d6811610071578063a0712d6814610214578063a457c2d714610227578063a9059cbb1461023a578063dd62ed3e1461024d578063f2fde38b1461026057600080fd5b806370a08231146101c0578063715018a6146101e95780638da5cb5b146101f157806395d89b411461020c57600080fd5b8063313ce567116100de578063313ce56714610176578063395093511461018b57806342966c681461019e57806354fd4d50146101b357600080fd5b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015157806323b872dd14610163575b600080fd5b610118610273565b6040516101259190610ee2565b60405180910390f35b61014161013c366004610f2a565b610305565b6040519015158152602001610125565b6004545b604051908152602001610125565b610141610171366004610f56565b61031d565b60095b60405160ff9091168152602001610125565b610141610199366004610f2a565b610341565b6101b16101ac366004610f97565b610363565b005b6000546101799060ff1681565b6101556101ce366004610fb0565b6001600160a01b031660009081526002602052604090205490565b6101b1610594565b6001546040516001600160a01b039091168152602001610125565b6101186105a8565b6101b1610222366004610f97565b6105b7565b610141610235366004610f2a565b6107c3565b610141610248366004610f2a565b61083e565b61015561025b366004610fd4565b61084c565b6101b161026e366004610fb0565b610877565b6060600580546102829061100d565b80601f01602080910402602001604051908101604052809291908181526020018280546102ae9061100d565b80156102fb5780601f106102d0576101008083540402835291602001916102fb565b820191906000526020600020905b8154815290600101906020018083116102de57829003601f168201915b5050505050905090565b6000336103138185856108f0565b5060019392505050565b60003361032b858285610a14565b610336858585610a8e565b506001949350505050565b600033610313818585610354838361084c565b61035e9190611048565b6108f0565b600061038e604051806040016040528060088152602001673639b227bbb732b960c11b815250610c05565b9050806001600160a01b031663a94659ea6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103c957600080fd5b505afa1580156103dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610401919061106e565b156104535760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e206973206c6f636b656420627920746865206f776e65720000000060448201526064015b60405180910390fd5b336000908152600260205260409020548211156104825760405162461bcd60e51b815260040161044a90611090565b3360009081526002602090815260408083208054868103909155600480548790039055815180830190925260088252673639b22a37b5b2b760c11b928201929092529091906104d090610c05565b60405163a9059cbb60e01b8152336004820152602481018690529091506001600160a01b0382169063a9059cbb90604401602060405180830381600087803b15801561051b57600080fd5b505af115801561052f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610553919061106e565b506040805185815242602082015233917fde3ca466246b0da455138dbea78dacd91d3c40dc98d5846ff0193bf67c24b0e7910160405180910390a250505050565b61059c610c8a565b6105a66000610ce4565b565b6060600680546102829061100d565b60006105e2604051806040016040528060088152602001673639b22a37b5b2b760c11b815250610c05565b6040516370a0823160e01b815233600482015290915082906001600160a01b038316906370a082319060240160206040518083038186803b15801561062657600080fd5b505afa15801561063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065e91906110d6565b101561067c5760405162461bcd60e51b815260040161044a90611090565b6040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b038216906323b872dd90606401602060405180830381600087803b1580156106ca57600080fd5b505af11580156106de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610702919061106e565b50336107505760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161044a565b81600460008282546107629190611048565b90915550503360008181526002602052604090819020805485019055517f96234cb3d6c373a1aaa06497a540bc166d4b0359243a088eaf95e21d7253d0be906107b79085904290918252602082015260400190565b60405180910390a25050565b600033816107d1828661084c565b9050838110156108315760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161044a565b61033682868684036108f0565b600033610313818585610a8e565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61087f610c8a565b6001600160a01b0381166108e45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161044a565b6108ed81610ce4565b50565b6001600160a01b0383166109525760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161044a565b6001600160a01b0382166109b35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161044a565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610a20848461084c565b90506000198114610a885781811015610a7b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161044a565b610a8884848484036108f0565b50505050565b6001600160a01b038316610af25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161044a565b6001600160a01b038216610b545760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161044a565b610b5f838383610d36565b6001600160a01b03831660009081526002602052604090205481811015610b985760405162461bcd60e51b815260040161044a90611090565b6001600160a01b0380851660008181526002602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610bf89086815260200190565b60405180910390a3610a88565b600080610c3783604051602001610c1c91906110ef565b60405160208183030381529060405280519060200120610e35565b90506001600160a01b038116610c845760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081b9bdd08199bdd5b9960721b604482015260640161044a565b92915050565b6001546001600160a01b031633146105a65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161044a565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03831615610e30576000610d70604051806040016040528060088152602001673639b227bbb732b960c11b815250610c05565b9050806001600160a01b031663a94659ea6040518163ffffffff1660e01b815260040160206040518083038186803b158015610dab57600080fd5b505afa158015610dbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de3919061106e565b15610a885760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e206973206c6f636b656420627920746865206f776e657200000000604482015260640161044a565b505050565b600080546040516321f8a72160e01b8152600481018490526101009091046001600160a01b0316906321f8a7219060240160206040518083038186803b158015610e7e57600080fd5b505afa158015610e92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c849190611127565b60005b83811015610ed1578181015183820152602001610eb9565b83811115610a885750506000910152565b6020815260008251806020840152610f01816040850160208701610eb6565b601f01601f19169190910160400192915050565b6001600160a01b03811681146108ed57600080fd5b60008060408385031215610f3d57600080fd5b8235610f4881610f15565b946020939093013593505050565b600080600060608486031215610f6b57600080fd5b8335610f7681610f15565b92506020840135610f8681610f15565b929592945050506040919091013590565b600060208284031215610fa957600080fd5b5035919050565b600060208284031215610fc257600080fd5b8135610fcd81610f15565b9392505050565b60008060408385031215610fe757600080fd5b8235610ff281610f15565b9150602083013561100281610f15565b809150509250929050565b600181811c9082168061102157607f821691505b6020821081141561104257634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561106957634e487b7160e01b600052601160045260246000fd5b500190565b60006020828403121561108057600080fd5b81518015158114610fcd57600080fd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b6000602082840312156110e857600080fd5b5051919050565b6f636f6e74726163742e6164647265737360801b81526000825161111a816010850160208701610eb6565b9190910160100192915050565b60006020828403121561113957600080fd5b8151610fcd81610f1556fea26469706673582212208b4cd38cfce5300cdf805c32974f56dc906f92f258d1c6c81f2b0ece0f8d686864736f6c634300080900330000000000000000000000006e537840ed1320ef1693386961eb5bda8c2a0cf9000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000656452d4c53440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000576654c5344000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a2578063a0712d6811610071578063a0712d6814610214578063a457c2d714610227578063a9059cbb1461023a578063dd62ed3e1461024d578063f2fde38b1461026057600080fd5b806370a08231146101c0578063715018a6146101e95780638da5cb5b146101f157806395d89b411461020c57600080fd5b8063313ce567116100de578063313ce56714610176578063395093511461018b57806342966c681461019e57806354fd4d50146101b357600080fd5b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015157806323b872dd14610163575b600080fd5b610118610273565b6040516101259190610ee2565b60405180910390f35b61014161013c366004610f2a565b610305565b6040519015158152602001610125565b6004545b604051908152602001610125565b610141610171366004610f56565b61031d565b60095b60405160ff9091168152602001610125565b610141610199366004610f2a565b610341565b6101b16101ac366004610f97565b610363565b005b6000546101799060ff1681565b6101556101ce366004610fb0565b6001600160a01b031660009081526002602052604090205490565b6101b1610594565b6001546040516001600160a01b039091168152602001610125565b6101186105a8565b6101b1610222366004610f97565b6105b7565b610141610235366004610f2a565b6107c3565b610141610248366004610f2a565b61083e565b61015561025b366004610fd4565b61084c565b6101b161026e366004610fb0565b610877565b6060600580546102829061100d565b80601f01602080910402602001604051908101604052809291908181526020018280546102ae9061100d565b80156102fb5780601f106102d0576101008083540402835291602001916102fb565b820191906000526020600020905b8154815290600101906020018083116102de57829003601f168201915b5050505050905090565b6000336103138185856108f0565b5060019392505050565b60003361032b858285610a14565b610336858585610a8e565b506001949350505050565b600033610313818585610354838361084c565b61035e9190611048565b6108f0565b600061038e604051806040016040528060088152602001673639b227bbb732b960c11b815250610c05565b9050806001600160a01b031663a94659ea6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103c957600080fd5b505afa1580156103dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610401919061106e565b156104535760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e206973206c6f636b656420627920746865206f776e65720000000060448201526064015b60405180910390fd5b336000908152600260205260409020548211156104825760405162461bcd60e51b815260040161044a90611090565b3360009081526002602090815260408083208054868103909155600480548790039055815180830190925260088252673639b22a37b5b2b760c11b928201929092529091906104d090610c05565b60405163a9059cbb60e01b8152336004820152602481018690529091506001600160a01b0382169063a9059cbb90604401602060405180830381600087803b15801561051b57600080fd5b505af115801561052f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610553919061106e565b506040805185815242602082015233917fde3ca466246b0da455138dbea78dacd91d3c40dc98d5846ff0193bf67c24b0e7910160405180910390a250505050565b61059c610c8a565b6105a66000610ce4565b565b6060600680546102829061100d565b60006105e2604051806040016040528060088152602001673639b22a37b5b2b760c11b815250610c05565b6040516370a0823160e01b815233600482015290915082906001600160a01b038316906370a082319060240160206040518083038186803b15801561062657600080fd5b505afa15801561063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065e91906110d6565b101561067c5760405162461bcd60e51b815260040161044a90611090565b6040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b038216906323b872dd90606401602060405180830381600087803b1580156106ca57600080fd5b505af11580156106de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610702919061106e565b50336107505760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161044a565b81600460008282546107629190611048565b90915550503360008181526002602052604090819020805485019055517f96234cb3d6c373a1aaa06497a540bc166d4b0359243a088eaf95e21d7253d0be906107b79085904290918252602082015260400190565b60405180910390a25050565b600033816107d1828661084c565b9050838110156108315760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161044a565b61033682868684036108f0565b600033610313818585610a8e565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61087f610c8a565b6001600160a01b0381166108e45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161044a565b6108ed81610ce4565b50565b6001600160a01b0383166109525760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161044a565b6001600160a01b0382166109b35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161044a565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610a20848461084c565b90506000198114610a885781811015610a7b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161044a565b610a8884848484036108f0565b50505050565b6001600160a01b038316610af25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161044a565b6001600160a01b038216610b545760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161044a565b610b5f838383610d36565b6001600160a01b03831660009081526002602052604090205481811015610b985760405162461bcd60e51b815260040161044a90611090565b6001600160a01b0380851660008181526002602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610bf89086815260200190565b60405180910390a3610a88565b600080610c3783604051602001610c1c91906110ef565b60405160208183030381529060405280519060200120610e35565b90506001600160a01b038116610c845760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081b9bdd08199bdd5b9960721b604482015260640161044a565b92915050565b6001546001600160a01b031633146105a65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161044a565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03831615610e30576000610d70604051806040016040528060088152602001673639b227bbb732b960c11b815250610c05565b9050806001600160a01b031663a94659ea6040518163ffffffff1660e01b815260040160206040518083038186803b158015610dab57600080fd5b505afa158015610dbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de3919061106e565b15610a885760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e206973206c6f636b656420627920746865206f776e657200000000604482015260640161044a565b505050565b600080546040516321f8a72160e01b8152600481018490526101009091046001600160a01b0316906321f8a7219060240160206040518083038186803b158015610e7e57600080fd5b505afa158015610e92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c849190611127565b60005b83811015610ed1578181015183820152602001610eb9565b83811115610a885750506000910152565b6020815260008251806020840152610f01816040850160208701610eb6565b601f01601f19169190910160400192915050565b6001600160a01b03811681146108ed57600080fd5b60008060408385031215610f3d57600080fd5b8235610f4881610f15565b946020939093013593505050565b600080600060608486031215610f6b57600080fd5b8335610f7681610f15565b92506020840135610f8681610f15565b929592945050506040919091013590565b600060208284031215610fa957600080fd5b5035919050565b600060208284031215610fc257600080fd5b8135610fcd81610f15565b9392505050565b60008060408385031215610fe757600080fd5b8235610ff281610f15565b9150602083013561100281610f15565b809150509250929050565b600181811c9082168061102157607f821691505b6020821081141561104257634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561106957634e487b7160e01b600052601160045260246000fd5b500190565b60006020828403121561108057600080fd5b81518015158114610fcd57600080fd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b6000602082840312156110e857600080fd5b5051919050565b6f636f6e74726163742e6164647265737360801b81526000825161111a816010850160208701610eb6565b9190910160100192915050565b60006020828403121561113957600080fd5b8151610fcd81610f1556fea26469706673582212208b4cd38cfce5300cdf805c32974f56dc906f92f258d1c6c81f2b0ece0f8d686864736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000006e537840ed1320ef1693386961eb5bda8c2a0cf9000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000656452d4c53440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000576654c5344000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _lsdStorageAddress (address): 0x6E537840ED1320ef1693386961eB5BdA8C2a0CF9
Arg [1] : name_ (string): VE-LSD
Arg [2] : symbol_ (string): veLSD
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000006e537840ed1320ef1693386961eb5bda8c2a0cf9
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [4] : 56452d4c53440000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [6] : 76654c5344000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
17260:11312:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18075:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19858:224;;;;;;:::i;:::-;;:::i;:::-;;;1286:14:1;;1279:22;1261:41;;1249:2;1234:18;19858:224:0;1121:187:1;18563:108:0;18651:12;;18563:108;;;1459:25:1;;;1447:2;1432:18;18563:108:0;1313:177:1;20662:293:0;;;;;;:::i;:::-;;:::i;18406:92::-;18489:1;18406:92;;;2128:4:1;2116:17;;;2098:36;;2086:2;2071:18;18406:92:0;1956:184:1;21364:261:0;;;;;;:::i;:::-;;:::i;24929:893::-;;;;;;:::i;:::-;;:::i;:::-;;5421:20;;;;;;;;;18734:143;;;;;;:::i;:::-;-1:-1:-1;;;;;18851:18:0;18824:7;18851:18;;;:9;:18;;;;;;;18734:143;2548:103;;;:::i;1900:87::-;1973:6;;1900:87;;-1:-1:-1;;;;;1973:6:0;;;2728:51:1;;2716:2;2701:18;1900:87:0;2582:203:1;18294:104:0;;;:::i;24047:855::-;;;;;;:::i;:::-;;:::i;22128:496::-;;;;;;:::i;:::-;;:::i;19083:216::-;;;;;;:::i;:::-;;:::i;19362:176::-;;;;;;:::i;:::-;;:::i;2806:201::-;;;;;;:::i;:::-;;:::i;18075:100::-;18129:13;18162:5;18155:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18075:100;:::o;19858:224::-;19966:4;19999:10;20020:32;19999:10;20036:7;20045:6;20020:8;:32::i;:::-;-1:-1:-1;20070:4:0;;19858:224;-1:-1:-1;;;19858:224:0:o;20662:293::-;20793:4;20828:10;20849:38;20865:4;20828:10;20880:6;20849:15;:38::i;:::-;20898:27;20908:4;20914:2;20918:6;20898:9;:27::i;:::-;-1:-1:-1;20943:4:0;;20662:293;-1:-1:-1;;;;20662:293:0:o;21364:261::-;21477:4;21510:10;21531:64;21510:10;21547:7;21584:10;21556:25;21510:10;21547:7;21556:9;:25::i;:::-;:38;;;;:::i;:::-;21531:8;:64::i;24929:893::-;24994:18;25025:30;;;;;;;;;;;;;;-1:-1:-1;;;25025:30:0;;;:18;:30::i;:::-;24994:62;;25078:8;-1:-1:-1;;;;;25078:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25077:21;25069:62;;;;-1:-1:-1;;;25069:62:0;;4282:2:1;25069:62:0;;;4264:21:1;4321:2;4301:18;;;4294:30;4360;4340:18;;;4333:58;4408:18;;25069:62:0;;;;;;;;;25206:10;18824:7;18851:18;;;:9;:18;;;;;;25221:12;-1:-1:-1;25196:37:0;25174:125;;;;-1:-1:-1;;;25174:125:0;;;;;;;:::i;:::-;25347:10;25312:22;25337:21;;;:9;:21;;;;;;;;;;25418:29;;;25394:53;;;25542:12;:28;;;;;;;25625:30;;;;;;;;;;;-1:-1:-1;;;25625:30:0;;;;;;;25337:21;;25312:22;25625:30;;:18;:30::i;:::-;25667:43;;-1:-1:-1;;;25667:43:0;;25685:10;25667:43;;;5018:51:1;5085:18;;;5078:34;;;25594:62:0;;-1:-1:-1;;;;;;25667:17:0;;;;;4991:18:1;;25667:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;25760:54:0;;;5297:25:1;;;25798:15:0;5353:2:1;5338:18;;5331:34;25772:10:0;;25760:54;;5270:18:1;25760:54:0;;;;;;;24983:839;;;24929:893;:::o;2548:103::-;1786:13;:11;:13::i;:::-;2613:30:::1;2640:1;2613:18;:30::i;:::-;2548:103::o:0;18294:104::-;18350:13;18383:7;18376:14;;;;;:::i;24047:855::-;24145:18;24176:30;;;;;;;;;;;;;;-1:-1:-1;;;24176:30:0;;;:18;:30::i;:::-;24240;;-1:-1:-1;;;24240:30:0;;24259:10;24240:30;;;2728:51:1;24145:62:0;;-1:-1:-1;24274:15:0;;-1:-1:-1;;;;;24240:18:0;;;;;2701::1;;24240:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:49;;24218:137;;;;-1:-1:-1;;;24218:137:0;;;;;;;:::i;:::-;24366:65;;-1:-1:-1;;;24366:65:0;;24388:10;24366:65;;;5805:34:1;24408:4:0;5855:18:1;;;5848:43;5907:18;;;5900:34;;;-1:-1:-1;;;;;24366:21:0;;;;;5740:18:1;;24366:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;24481:10:0;24473:68;;;;-1:-1:-1;;;24473:68:0;;6147:2:1;24473:68:0;;;6129:21:1;6186:2;6166:18;;;6159:30;6225:33;6205:18;;;6198:61;6276:18;;24473:68:0;5945:355:1;24473:68:0;24568:15;24552:12;;:31;;;;;;;:::i;:::-;;;;-1:-1:-1;;24742:10:0;24732:21;;;;:9;:21;;;;;;;:40;;;;;;24837:57;;;;;24757:15;;24878;;5297:25:1;;;5353:2;5338:18;;5331:34;5285:2;5270:18;;5123:248;24837:57:0;;;;;;;;24104:798;24047:855;:::o;22128:496::-;22246:4;22279:10;22246:4;22327:25;22279:10;22344:7;22327:9;:25::i;:::-;22300:52;;22405:15;22385:16;:35;;22363:122;;;;-1:-1:-1;;;22363:122:0;;6507:2:1;22363:122:0;;;6489:21:1;6546:2;6526:18;;;6519:30;6585:34;6565:18;;;6558:62;-1:-1:-1;;;6636:18:1;;;6629:35;6681:19;;22363:122:0;6305:401:1;22363:122:0;22521:60;22530:5;22537:7;22565:15;22546:16;:34;22521:8;:60::i;19083:216::-;19187:4;19220:10;19241:28;19220:10;19258:2;19262:6;19241:9;:28::i;19362:176::-;-1:-1:-1;;;;;19503:18:0;;;19476:7;19503:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;19362:176::o;2806:201::-;1786:13;:11;:13::i;:::-;-1:-1:-1;;;;;2895:22:0;::::1;2887:73;;;::::0;-1:-1:-1;;;2887:73:0;;6913:2:1;2887:73:0::1;::::0;::::1;6895:21:1::0;6952:2;6932:18;;;6925:30;6991:34;6971:18;;;6964:62;-1:-1:-1;;;7042:18:1;;;7035:36;7088:19;;2887:73:0::1;6711:402:1::0;2887:73:0::1;2971:28;2990:8;2971:18;:28::i;:::-;2806:201:::0;:::o;26260:380::-;-1:-1:-1;;;;;26396:19:0;;26388:68;;;;-1:-1:-1;;;26388:68:0;;7320:2:1;26388:68:0;;;7302:21:1;7359:2;7339:18;;;7332:30;7398:34;7378:18;;;7371:62;-1:-1:-1;;;7449:18:1;;;7442:34;7493:19;;26388:68:0;7118:400:1;26388:68:0;-1:-1:-1;;;;;26475:21:0;;26467:68;;;;-1:-1:-1;;;26467:68:0;;7725:2:1;26467:68:0;;;7707:21:1;7764:2;7744:18;;;7737:30;7803:34;7783:18;;;7776:62;-1:-1:-1;;;7854:18:1;;;7847:32;7896:19;;26467:68:0;7523:398:1;26467:68:0;-1:-1:-1;;;;;26548:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;26600:32;;1459:25:1;;;26600:32:0;;1432:18:1;26600:32:0;;;;;;;26260:380;;;:::o;26931:502::-;27066:24;27093:25;27103:5;27110:7;27093:9;:25::i;:::-;27066:52;;-1:-1:-1;;27133:16:0;:37;27129:297;;27233:6;27213:16;:26;;27187:117;;;;-1:-1:-1;;;27187:117:0;;8128:2:1;27187:117:0;;;8110:21:1;8167:2;8147:18;;;8140:30;8206:31;8186:18;;;8179:59;8255:18;;27187:117:0;7926:353:1;27187:117:0;27348:51;27357:5;27364:7;27392:6;27373:16;:25;27348:8;:51::i;:::-;27055:378;26931:502;;;:::o;23094:879::-;-1:-1:-1;;;;;23225:18:0;;23217:68;;;;-1:-1:-1;;;23217:68:0;;8486:2:1;23217:68:0;;;8468:21:1;8525:2;8505:18;;;8498:30;8564:34;8544:18;;;8537:62;-1:-1:-1;;;8615:18:1;;;8608:35;8660:19;;23217:68:0;8284:401:1;23217:68:0;-1:-1:-1;;;;;23304:16:0;;23296:64;;;;-1:-1:-1;;;23296:64:0;;8892:2:1;23296:64:0;;;8874:21:1;8931:2;8911:18;;;8904:30;8970:34;8950:18;;;8943:62;-1:-1:-1;;;9021:18:1;;;9014:33;9064:19;;23296:64:0;8690:399:1;23296:64:0;23373:38;23394:4;23400:2;23404:6;23373:20;:38::i;:::-;-1:-1:-1;;;;;23446:15:0;;23424:19;23446:15;;;:9;:15;;;;;;23494:21;;;;23472:109;;;;-1:-1:-1;;;23472:109:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23619:15:0;;;;;;;:9;:15;;;;;;23637:20;;;23619:38;;23837:13;;;;;;;;;;:23;;;;;;23889:26;;;;;;23651:6;1459:25:1;;1447:2;1432:18;;1313:177;23889:26:0;;;;;;;;23928:37;28117:320;6859:436;6966:7;7036:23;7062:98;7134:13;7097:51;;;;;;;;:::i;:::-;;;;;;;;;;;;;7087:62;;;;;;7062:10;:98::i;:::-;7036:124;-1:-1:-1;;;;;;7200:31:0;;7192:62;;;;-1:-1:-1;;;7192:62:0;;9736:2:1;7192:62:0;;;9718:21:1;9775:2;9755:18;;;9748:30;-1:-1:-1;;;9794:18:1;;;9787:48;9852:18;;7192:62:0;9534:342:1;7192:62:0;7272:15;6859:436;-1:-1:-1;;6859:436:0:o;2065:132::-;1973:6;;-1:-1:-1;;;;;1973:6:0;689:10;2129:23;2121:68;;;;-1:-1:-1;;;2121:68:0;;10083:2:1;2121:68:0;;;10065:21:1;;;10102:18;;;10095:30;10161:34;10141:18;;;10134:62;10213:18;;2121:68:0;9881:356:1;3167:191:0;3260:6;;;-1:-1:-1;;;;;3277:17:0;;;-1:-1:-1;;;;;;3277:17:0;;;;;;;3310:40;;3260:6;;;3277:17;3260:6;;3310:40;;3241:16;;3310:40;3230:128;3167:191;:::o;28117:320::-;-1:-1:-1;;;;;28242:18:0;;;28238:192;;28277:18;28308:30;;;;;;;;;;;;;;-1:-1:-1;;;28308:30:0;;;:18;:30::i;:::-;28277:62;;28365:8;-1:-1:-1;;;;;28365:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28364:21;28356:62;;;;-1:-1:-1;;;28356:62:0;;4282:2:1;28356:62:0;;;4264:21:1;4321:2;4301:18;;;4294:30;4360;4340:18;;;4333:58;4408:18;;28356:62:0;4080:352:1;28238:192:0;28117:320;;;:::o;8604:119::-;8661:7;8688:10;;:27;;-1:-1:-1;;;8688:27:0;;;;;1459:25:1;;;8688:10:0;;;;-1:-1:-1;;;;;8688:10:0;;:21;;1432:18:1;;8688:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:258:1:-;86:1;96:113;110:6;107:1;104:13;96:113;;;186:11;;;180:18;167:11;;;160:39;132:2;125:10;96:113;;;227:6;224:1;221:13;218:48;;;-1:-1:-1;;262:1:1;244:16;;237:27;14:258::o;277:383::-;426:2;415:9;408:21;389:4;458:6;452:13;501:6;496:2;485:9;481:18;474:34;517:66;576:6;571:2;560:9;556:18;551:2;543:6;539:15;517:66;:::i;:::-;644:2;623:15;-1:-1:-1;;619:29:1;604:45;;;;651:2;600:54;;277:383;-1:-1:-1;;277:383:1:o;665:131::-;-1:-1:-1;;;;;740:31:1;;730:42;;720:70;;786:1;783;776:12;801:315;869:6;877;930:2;918:9;909:7;905:23;901:32;898:52;;;946:1;943;936:12;898:52;985:9;972:23;1004:31;1029:5;1004:31;:::i;:::-;1054:5;1106:2;1091:18;;;;1078:32;;-1:-1:-1;;;801:315:1:o;1495:456::-;1572:6;1580;1588;1641:2;1629:9;1620:7;1616:23;1612:32;1609:52;;;1657:1;1654;1647:12;1609:52;1696:9;1683:23;1715:31;1740:5;1715:31;:::i;:::-;1765:5;-1:-1:-1;1822:2:1;1807:18;;1794:32;1835:33;1794:32;1835:33;:::i;:::-;1495:456;;1887:7;;-1:-1:-1;;;1941:2:1;1926:18;;;;1913:32;;1495:456::o;2145:180::-;2204:6;2257:2;2245:9;2236:7;2232:23;2228:32;2225:52;;;2273:1;2270;2263:12;2225:52;-1:-1:-1;2296:23:1;;2145:180;-1:-1:-1;2145:180:1:o;2330:247::-;2389:6;2442:2;2430:9;2421:7;2417:23;2413:32;2410:52;;;2458:1;2455;2448:12;2410:52;2497:9;2484:23;2516:31;2541:5;2516:31;:::i;:::-;2566:5;2330:247;-1:-1:-1;;;2330:247:1:o;2790:388::-;2858:6;2866;2919:2;2907:9;2898:7;2894:23;2890:32;2887:52;;;2935:1;2932;2925:12;2887:52;2974:9;2961:23;2993:31;3018:5;2993:31;:::i;:::-;3043:5;-1:-1:-1;3100:2:1;3085:18;;3072:32;3113:33;3072:32;3113:33;:::i;:::-;3165:7;3155:17;;;2790:388;;;;;:::o;3183:380::-;3262:1;3258:12;;;;3305;;;3326:61;;3380:4;3372:6;3368:17;3358:27;;3326:61;3433:2;3425:6;3422:14;3402:18;3399:38;3396:161;;;3479:10;3474:3;3470:20;3467:1;3460:31;3514:4;3511:1;3504:15;3542:4;3539:1;3532:15;3396:161;;3183:380;;;:::o;3568:225::-;3608:3;3639:1;3635:6;3632:1;3629:13;3626:136;;;3684:10;3679:3;3675:20;3672:1;3665:31;3719:4;3716:1;3709:15;3747:4;3744:1;3737:15;3626:136;-1:-1:-1;3778:9:1;;3568:225::o;3798:277::-;3865:6;3918:2;3906:9;3897:7;3893:23;3889:32;3886:52;;;3934:1;3931;3924:12;3886:52;3966:9;3960:16;4019:5;4012:13;4005:21;3998:5;3995:32;3985:60;;4041:1;4038;4031:12;4437:402;4639:2;4621:21;;;4678:2;4658:18;;;4651:30;4717:34;4712:2;4697:18;;4690:62;-1:-1:-1;;;4783:2:1;4768:18;;4761:36;4829:3;4814:19;;4437:402::o;5376:184::-;5446:6;5499:2;5487:9;5478:7;5474:23;5470:32;5467:52;;;5515:1;5512;5505:12;5467:52;-1:-1:-1;5538:16:1;;5376:184;-1:-1:-1;5376:184:1:o;9094:435::-;-1:-1:-1;;;9351:3:1;9344:31;9326:3;9404:6;9398:13;9420:62;9475:6;9470:2;9465:3;9461:12;9454:4;9446:6;9442:17;9420:62;:::i;:::-;9502:16;;;;9520:2;9498:25;;9094:435;-1:-1:-1;;9094:435:1:o;10424:251::-;10494:6;10547:2;10535:9;10526:7;10522:23;10518:32;10515:52;;;10563:1;10560;10553:12;10515:52;10595:9;10589:16;10614:31;10639:5;10614:31;:::i
Swarm Source
ipfs://8b4cd38cfce5300cdf805c32974f56dc906f92f258d1c6c81f2b0ece0f8d6868
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.