Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| 0x60a06040 | 17381773 | 1002 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Vault
Compiler Version
v0.8.15+commit.e14f2714
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity ^0.8.13;
import "./interfaces/IVault.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
contract Vault is IVault, Ownable {
struct Share {
uint256 amount;
uint256 uncounted;
uint256 counted;
}
mapping (address => uint256) voterClaims;
mapping (address => uint256) public totalRewardsToVoter;
mapping (address => Share) public shares;
uint256 public totalShares;
uint256 public totalDistributed;
uint256 public rewardsPerShare;
uint256 public constant decimals = 10 ** 36;
address public vesch;
IERC20 public immutable SCH;
constructor (address _SCH) {
vesch = msg.sender;
SCH = IERC20(_SCH);
}
function _getCumulativeFees(uint256 _share) private view returns (uint256) {
return _share * rewardsPerShare / decimals;
}
function setBalance(address _voter, uint256 _amount) external override {
require(msg.sender == vesch);
totalShares = totalShares - shares[_voter].amount + _amount;
shares[_voter].amount = _amount;
shares[_voter].uncounted = _getCumulativeFees(shares[_voter].amount);
}
function claimFees(address _voter) external override returns (uint256) {
require(msg.sender == vesch);
if (shares[_voter].amount == 0) return 0;
uint256 _amount = getUnclaimedFees(_voter);
if (_amount > 0) {
voterClaims[_voter] = block.timestamp;
shares[_voter].counted = shares[_voter].counted + _amount;
shares[_voter].uncounted = _getCumulativeFees(shares[_voter].amount);
(bool _success, ) = payable(vesch).call{value: _amount}("");
require(_success);
totalDistributed = totalDistributed + _amount;
totalRewardsToVoter[_voter] = totalRewardsToVoter[_voter] + _amount;
return _amount;
} else {
return 0;
}
}
function deposit(uint256 _amount) external override {
require(msg.sender == vesch);
if (totalShares > 0) {
rewardsPerShare = rewardsPerShare + (decimals * _amount / totalShares);
}
}
function getUnclaimedFees(address _voter) public view returns (uint256) {
if (shares[_voter].amount == 0) return 0;
uint256 _voterRewards = _getCumulativeFees(shares[_voter].amount);
uint256 _voterUncounted = shares[_voter].uncounted;
if (_voterRewards <= _voterUncounted) return 0;
return _voterRewards - _voterUncounted;
}
function getClaimedRewardsTotal() external view returns (uint256) {
return totalDistributed;
}
function getClaimedRewards(address _voter) external view returns (uint256) {
return totalRewardsToVoter[_voter];
}
function getLastClaim(address _voter) external view returns (uint256) {
return voterClaims[_voter];
}
function balanceOf(address _voter) external view returns (uint256) {
return shares[_voter].amount;
}
receive() external payable {}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)
pragma solidity ^0.8.0;
import "../utils/Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(_msgSender());
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.0;
/**
* @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);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
pragma solidity ^0.8.0;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity ^0.8.13;
interface IVault {
function setBalance(address _voter, uint256 _amount) external;
function deposit(uint256 _amount) external;
function claimFees(address _voter) external returns (uint256);
}{
"remappings": [
"@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
"@uniswap/v2-periphery/=lib/v2-periphery/contracts/",
"@uniswap/v3-core/=lib/v3-core/contracts/",
"@uniswap/v3-periphery/=lib/v3-periphery/contracts/",
"ds-test/=lib/forge-std/lib/ds-test/src/",
"erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
"forge-std/=lib/forge-std/src/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/",
"openzeppelin/=lib/openzeppelin-contracts/contracts/",
"v2-periphery/=lib/v2-periphery/contracts/",
"v3-core/=lib/v3-core/",
"v3-periphery/=lib/v3-periphery/contracts/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"bytecodeHash": "ipfs"
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"evmVersion": "london",
"libraries": {
"src/libraries/SchwapLibrary.sol": {
"SchwapLibrary": "0x12890543169178588c2e62f48a85180775aee3da"
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_SCH","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"SCH","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_voter","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_voter","type":"address"}],"name":"claimFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_voter","type":"address"}],"name":"getClaimedRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getClaimedRewardsTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_voter","type":"address"}],"name":"getLastClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_voter","type":"address"}],"name":"getUnclaimedFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"rewardsPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_voter","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"uncounted","type":"uint256"},{"internalType":"uint256","name":"counted","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalRewardsToVoter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vesch","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60a060405234801561001057600080fd5b50604051610ab6380380610ab683398101604081905261002f916100ab565b6100383361005b565b600780546001600160a01b031916331790556001600160a01b03166080526100db565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100bd57600080fd5b81516001600160a01b03811681146100d457600080fd5b9392505050565b6080516109c06100f6600039600061030601526109c06000f3fe6080604052600436106101185760003560e01c8063b6b55f25116100a0578063ce7c2ac211610064578063ce7c2ac21461033e578063dea8d09814610395578063e30443bc146103c2578063efca2eed146103e2578063f2fde38b146103f857600080fd5b8063b6b55f251461027e578063b9e35db01461029e578063bf992dea146102d4578063c5494b82146102f4578063c7e1d0b11461032857600080fd5b806370a08231116100e757806370a08231146101a5578063715018a6146101db5780637d48a1c6146101f25780638778f4151461022a5780638da5cb5b1461026057600080fd5b806315a0ea6a14610124578063313ce567146101575780633a98ef391461017a578063479c8e091461019057600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5061014461013f36600461089f565b610418565b6040519081526020015b60405180910390f35b34801561016357600080fd5b506101446ec097ce7bc90715b34b9f100000000081565b34801561018657600080fd5b5061014460045481565b34801561019c57600080fd5b50600554610144565b3480156101b157600080fd5b506101446101c036600461089f565b6001600160a01b031660009081526003602052604090205490565b3480156101e757600080fd5b506101f06105a4565b005b3480156101fe57600080fd5b50600754610212906001600160a01b031681565b6040516001600160a01b03909116815260200161014e565b34801561023657600080fd5b5061014461024536600461089f565b6001600160a01b031660009081526001602052604090205490565b34801561026c57600080fd5b506000546001600160a01b0316610212565b34801561028a57600080fd5b506101f06102993660046108c1565b6105b8565b3480156102aa57600080fd5b506101446102b936600461089f565b6001600160a01b031660009081526002602052604090205490565b3480156102e057600080fd5b506101446102ef36600461089f565b610611565b34801561030057600080fd5b506102127f000000000000000000000000000000000000000000000000000000000000000081565b34801561033457600080fd5b5061014460065481565b34801561034a57600080fd5b5061037a61035936600461089f565b60036020526000908152604090208054600182015460029092015490919083565b6040805193845260208401929092529082015260600161014e565b3480156103a157600080fd5b506101446103b036600461089f565b60026020526000908152604090205481565b3480156103ce57600080fd5b506101f06103dd3660046108da565b61069c565b3480156103ee57600080fd5b5061014460055481565b34801561040457600080fd5b506101f061041336600461089f565b61072e565b6007546000906001600160a01b0316331461043257600080fd5b6001600160a01b038216600090815260036020526040812054900361045957506000919050565b600061046483610611565b9050801561059b576001600160a01b038316600090815260016020908152604080832042905560039091529020600201546104a090829061091a565b6001600160a01b03841660009081526003602052604090206002810191909155546104ca906107a9565b6001600160a01b0384811660009081526003602052604080822060010193909355600754925190929091169083908381818185875af1925050503d8060008114610530576040519150601f19603f3d011682016040523d82523d6000602084013e610535565b606091505b505090508061054357600080fd5b81600554610551919061091a565b6005556001600160a01b03841660009081526002602052604090205461057890839061091a565b6001600160a01b0390941660009081526002602052604090209390935592915050565b50600092915050565b6105ac6107d9565b6105b66000610833565b565b6007546001600160a01b031633146105cf57600080fd5b6004541561060e576004546105f3826ec097ce7bc90715b34b9f1000000000610932565b6105fd9190610951565b60065461060a919061091a565b6006555b50565b6001600160a01b038116600090815260036020526040812054810361063857506000919050565b6001600160a01b03821660009081526003602052604081205461065a906107a9565b6001600160a01b03841660009081526003602052604090206001015490915080821161068a575060009392505050565b6106948183610973565b949350505050565b6007546001600160a01b031633146106b357600080fd5b6001600160a01b03821660009081526003602052604090205460045482916106da91610973565b6106e4919061091a565b6004556001600160a01b038216600090815260036020526040902081905561070b816107a9565b6001600160a01b0390921660009081526003602052604090206001019190915550565b6107366107d9565b6001600160a01b0381166107a05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61060e81610833565b60006ec097ce7bc90715b34b9f1000000000600654836107c99190610932565b6107d39190610951565b92915050565b6000546001600160a01b031633146105b65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610797565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461089a57600080fd5b919050565b6000602082840312156108b157600080fd5b6108ba82610883565b9392505050565b6000602082840312156108d357600080fd5b5035919050565b600080604083850312156108ed57600080fd5b6108f683610883565b946020939093013593505050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561092d5761092d610904565b500190565b600081600019048311821515161561094c5761094c610904565b500290565b60008261096e57634e487b7160e01b600052601260045260246000fd5b500490565b60008282101561098557610985610904565b50039056fea26469706673582212209ac9d92472fde43dc673204791636e1890d0d33b86ae403a9175841fb5814ba964736f6c634300080f0033000000000000000000000000f4b899a8c3071b3f2646fa58a3605016116a1b96
Deployed Bytecode
0x6080604052600436106101185760003560e01c8063b6b55f25116100a0578063ce7c2ac211610064578063ce7c2ac21461033e578063dea8d09814610395578063e30443bc146103c2578063efca2eed146103e2578063f2fde38b146103f857600080fd5b8063b6b55f251461027e578063b9e35db01461029e578063bf992dea146102d4578063c5494b82146102f4578063c7e1d0b11461032857600080fd5b806370a08231116100e757806370a08231146101a5578063715018a6146101db5780637d48a1c6146101f25780638778f4151461022a5780638da5cb5b1461026057600080fd5b806315a0ea6a14610124578063313ce567146101575780633a98ef391461017a578063479c8e091461019057600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5061014461013f36600461089f565b610418565b6040519081526020015b60405180910390f35b34801561016357600080fd5b506101446ec097ce7bc90715b34b9f100000000081565b34801561018657600080fd5b5061014460045481565b34801561019c57600080fd5b50600554610144565b3480156101b157600080fd5b506101446101c036600461089f565b6001600160a01b031660009081526003602052604090205490565b3480156101e757600080fd5b506101f06105a4565b005b3480156101fe57600080fd5b50600754610212906001600160a01b031681565b6040516001600160a01b03909116815260200161014e565b34801561023657600080fd5b5061014461024536600461089f565b6001600160a01b031660009081526001602052604090205490565b34801561026c57600080fd5b506000546001600160a01b0316610212565b34801561028a57600080fd5b506101f06102993660046108c1565b6105b8565b3480156102aa57600080fd5b506101446102b936600461089f565b6001600160a01b031660009081526002602052604090205490565b3480156102e057600080fd5b506101446102ef36600461089f565b610611565b34801561030057600080fd5b506102127f000000000000000000000000f4b899a8c3071b3f2646fa58a3605016116a1b9681565b34801561033457600080fd5b5061014460065481565b34801561034a57600080fd5b5061037a61035936600461089f565b60036020526000908152604090208054600182015460029092015490919083565b6040805193845260208401929092529082015260600161014e565b3480156103a157600080fd5b506101446103b036600461089f565b60026020526000908152604090205481565b3480156103ce57600080fd5b506101f06103dd3660046108da565b61069c565b3480156103ee57600080fd5b5061014460055481565b34801561040457600080fd5b506101f061041336600461089f565b61072e565b6007546000906001600160a01b0316331461043257600080fd5b6001600160a01b038216600090815260036020526040812054900361045957506000919050565b600061046483610611565b9050801561059b576001600160a01b038316600090815260016020908152604080832042905560039091529020600201546104a090829061091a565b6001600160a01b03841660009081526003602052604090206002810191909155546104ca906107a9565b6001600160a01b0384811660009081526003602052604080822060010193909355600754925190929091169083908381818185875af1925050503d8060008114610530576040519150601f19603f3d011682016040523d82523d6000602084013e610535565b606091505b505090508061054357600080fd5b81600554610551919061091a565b6005556001600160a01b03841660009081526002602052604090205461057890839061091a565b6001600160a01b0390941660009081526002602052604090209390935592915050565b50600092915050565b6105ac6107d9565b6105b66000610833565b565b6007546001600160a01b031633146105cf57600080fd5b6004541561060e576004546105f3826ec097ce7bc90715b34b9f1000000000610932565b6105fd9190610951565b60065461060a919061091a565b6006555b50565b6001600160a01b038116600090815260036020526040812054810361063857506000919050565b6001600160a01b03821660009081526003602052604081205461065a906107a9565b6001600160a01b03841660009081526003602052604090206001015490915080821161068a575060009392505050565b6106948183610973565b949350505050565b6007546001600160a01b031633146106b357600080fd5b6001600160a01b03821660009081526003602052604090205460045482916106da91610973565b6106e4919061091a565b6004556001600160a01b038216600090815260036020526040902081905561070b816107a9565b6001600160a01b0390921660009081526003602052604090206001019190915550565b6107366107d9565b6001600160a01b0381166107a05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61060e81610833565b60006ec097ce7bc90715b34b9f1000000000600654836107c99190610932565b6107d39190610951565b92915050565b6000546001600160a01b031633146105b65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610797565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461089a57600080fd5b919050565b6000602082840312156108b157600080fd5b6108ba82610883565b9392505050565b6000602082840312156108d357600080fd5b5035919050565b600080604083850312156108ed57600080fd5b6108f683610883565b946020939093013593505050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561092d5761092d610904565b500190565b600081600019048311821515161561094c5761094c610904565b500290565b60008261096e57634e487b7160e01b600052601260045260246000fd5b500490565b60008282101561098557610985610904565b50039056fea26469706673582212209ac9d92472fde43dc673204791636e1890d0d33b86ae403a9175841fb5814ba964736f6c634300080f0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000f4b899a8c3071b3f2646fa58a3605016116a1b96
-----Decoded View---------------
Arg [0] : _SCH (address): 0xF4B899A8c3071B3f2646fA58a3605016116A1b96
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000f4b899a8c3071b3f2646fa58a3605016116a1b96
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.