Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
OptiVault
Compiler Version
v0.8.4+commit.c7e474f2
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity ^0.8.4;
import '@uniswap/v2-periphery/contracts/interfaces/IERC20.sol';
interface IOptiVaultBalanceLookup {
function sharesOf(address user) external view returns (uint256 _shares); //shares
}
contract OptiVault {
// **********************************************************************************
// * OptiVaults provide an easy way to lock tokens as a group. *
// * Reflective staking means that early withdrawals are allowed, *
// * for a 20% penalty that is distributed to everyone else. *
// **********************************************************************************
bool private initialized;
IERC20 public token;
uint256 public lockupDate; // deposits cannot be made after this
uint256 public minimumTokenCommitment; // deposited tokens must exceed this amount to lock
bool public failed; // campaign failed to reach minimum and is not subject to lock
bool public succeeded; // campaign reached minimum and is locked
uint256 public withdrawalsLockedUntilTimestamp; // time at which haircut-free withdrawal is available.
mapping (address => uint256) private shareBalance; // internal balance tracking for self-contained campaigns
uint256 private totalShares; // the denominator which decreases faster than the token balance
IOptiVaultBalanceLookup public shareBalanceLookup; // external balance tracking for use by other contracts
mapping (address => bool) public withdrawn; // instead of zeroing share balances, this flag is set.
function initialize(address _token, uint256 _lockupDate, uint256 _minimumTokenCommitment, uint256 _withdrawalsLockedUntilTimestamp, address _balanceLookup) external {
require(!initialized);
token = IERC20(_token);
lockupDate = _lockupDate;
minimumTokenCommitment = _minimumTokenCommitment;
withdrawalsLockedUntilTimestamp = _withdrawalsLockedUntilTimestamp;
if (lockupDate == 0) {
totalShares = token.balanceOf(address(this));
}
shareBalanceLookup = IOptiVaultBalanceLookup(_balanceLookup);
initialized = true;
}
function unlockTimestamp() external view returns (uint256 _unlockTimestamp) {
_unlockTimestamp = withdrawalsLockedUntilTimestamp;
}
function sharesOf(address user) external view returns (uint256 _shares) {
//Shares in the staking venture.
_shares = shareBalance[user];
}
function tokenBalanceOf(address user) external view returns (uint256 _amount) {
//The number of tokens redeemable by the user's share.
if (withdrawn[msg.sender]) {
return 0;
}
uint256 shares = shareBalanceLookup.sharesOf(user);
_amount = (shares * token.balanceOf(address(this))) / totalShares;
}
function tokenLocked() external view returns (address _token) {
_token = address(token);
}
function withdrawable() public view returns (bool) {
return (failed || block.timestamp >= withdrawalsLockedUntilTimestamp);
}
function contribute(uint tokenAmount) public {
require(block.timestamp < lockupDate, "OptiVault: Pooling phase has ended.");
token.transferFrom(msg.sender, address(this), tokenAmount);
shareBalance[msg.sender] += tokenAmount;
totalShares += tokenAmount;
if (token.balanceOf(address(this)) >= minimumTokenCommitment) {
succeeded = true;
}
}
function fail() public {
require(block.timestamp > lockupDate, "OptiVault: Still in Pooling phase.");
require(token.balanceOf(address(this)) < minimumTokenCommitment, "OptiVault: Staking succesful.");
require(!succeeded, "OptiVault: Campaign already succeeded.");
require(!failed, "OptiVault: Campaign already marked failed.");
failed = true;
}
function earlyWithdrawTokens() public {
require(withdrawn[msg.sender] == false, "OptiVault: Already withdrawn.");
require(block.timestamp > lockupDate, "OptiVault: Still in Pooling phase.");
require(!withdrawable(), "OptiVault: Staking period has ended.");
uint userTokenBalance = this.tokenBalanceOf(msg.sender);
uint userShareBalance = shareBalanceLookup.sharesOf(msg.sender);
uint toTransfer;
if (userShareBalance == totalShares) {
toTransfer = userTokenBalance;
} else {
toTransfer = userTokenBalance * 80 / 100;
}
totalShares -= userShareBalance;
token.transfer(msg.sender, toTransfer);
withdrawn[msg.sender] = true;
}
function withdrawTokens() public {
require(withdrawable(), "OptiVault: Tokens still locked.");
require(withdrawn[msg.sender] == false, "OptiVault: Already withdrawn.");
uint toTransfer = this.tokenBalanceOf(msg.sender);
token.transfer(msg.sender, toTransfer);
totalShares -= shareBalanceLookup.sharesOf(msg.sender);
withdrawn[msg.sender] = true;
}
}pragma solidity >=0.5.0;
interface IERC20 {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
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 (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
}{
"optimizer": {
"enabled": false,
"runs": 200
},
"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":"uint256","name":"tokenAmount","type":"uint256"}],"name":"contribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"earlyWithdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fail","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_lockupDate","type":"uint256"},{"internalType":"uint256","name":"_minimumTokenCommitment","type":"uint256"},{"internalType":"uint256","name":"_withdrawalsLockedUntilTimestamp","type":"uint256"},{"internalType":"address","name":"_balanceLookup","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lockupDate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokenCommitment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"shareBalanceLookup","outputs":[{"internalType":"contract IOptiVaultBalanceLookup","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"sharesOf","outputs":[{"internalType":"uint256","name":"_shares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"succeeded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"tokenBalanceOf","outputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLocked","outputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlockTimestamp","outputs":[{"internalType":"uint256","name":"_unlockTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawalsLockedUntilTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"withdrawn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b50611c30806100206000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063a9cc4718116100a2578063bf0db1e411610071578063bf0db1e414610275578063c1cbbca714610293578063e42c08f2146102af578063f5eb42dc146102df578063fc0c546a1461030f57610116565b8063a9cc471814610211578063aa082a9d1461021b578063b5f09a3914610239578063ba414fa61461025757610116565b80636ef61092116100e95780636ef610921461017d5780638b54823f146101ad5780638d8f2adb146101cb57806393415250146101d5578063a66aee6e146101f357610116565b80630478b8c51461011b57806350188301146101255780636a630559146101435780636c28e34914610161575b600080fd5b61012361032d565b005b61012d6106de565b60405161013a919061162f565b60405180910390f35b61014b610702565b60405161015891906115b4565b60405180910390f35b61017b6004803603810190610176919061135f565b61072b565b005b61019760048036038101906101929190611336565b6108b8565b6040516101a4919061162f565b60405180910390f35b6101b56108d8565b6040516101c29190611780565b60405180910390f35b6101d36108de565b005b6101dd610c13565b6040516101ea919061162f565b60405180910390f35b6101fb610c26565b6040516102089190611665565b60405180910390f35b610219610c4c565b005b610223610e3b565b6040516102309190611780565b60405180910390f35b610241610e45565b60405161024e9190611780565b60405180910390f35b61025f610e4b565b60405161026c919061162f565b60405180910390f35b61027d610e5e565b60405161028a9190611780565b60405180910390f35b6102ad60048036038101906102a891906113ff565b610e64565b005b6102c960048036038101906102c49190611336565b61109b565b6040516102d69190611780565b60405180910390f35b6102f960048036038101906102f49190611336565b611273565b6040516103069190611780565b60405180910390f35b6103176112bc565b604051610324919061164a565b60405180910390f35b60001515600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146103c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b790611760565b60405180910390fd5b6001544211610404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103fb90611720565b60405180910390fd5b61040c6106de565b1561044c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044390611680565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff1663e42c08f2336040518263ffffffff1660e01b815260040161048791906115b4565b60206040518083038186803b15801561049f57600080fd5b505afa1580156104b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d79190611428565b90506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5eb42dc336040518263ffffffff1660e01b815260040161053691906115b4565b60206040518083038186803b15801561054e57600080fd5b505afa158015610562573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105869190611428565b9050600060065482141561059c578290506105b8565b60646050846105ab9190611833565b6105b59190611802565b90505b81600660008282546105ca919061188d565b92505081905550600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161062e929190611606565b602060405180830381600087803b15801561064857600080fd5b505af115801561065c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068091906113d6565b506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000600360009054906101000a900460ff16806106fd57506004544210155b905090565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900460ff161561074357600080fd5b84600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360018190555082600281905550816004819055506000600154141561085657600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107ff91906115b4565b60206040518083038186803b15801561081757600080fd5b505afa15801561082b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084f9190611428565b6006819055505b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016000806101000a81548160ff0219169083151502179055505050505050565b60086020528060005260406000206000915054906101000a900460ff1681565b60025481565b6108e66106de565b610925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091c90611740565b60405180910390fd5b60001515600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146109b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109af90611760565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff1663e42c08f2336040518263ffffffff1660e01b81526004016109f391906115b4565b60206040518083038186803b158015610a0b57600080fd5b505afa158015610a1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a439190611428565b9050600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610aa2929190611606565b602060405180830381600087803b158015610abc57600080fd5b505af1158015610ad0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af491906113d6565b50600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5eb42dc336040518263ffffffff1660e01b8152600401610b5091906115b4565b60206040518083038186803b158015610b6857600080fd5b505afa158015610b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba09190611428565b60066000828254610bb1919061188d565b925050819055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600360019054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6001544211610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8790611720565b60405180910390fd5b600254600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610cee91906115b4565b60206040518083038186803b158015610d0657600080fd5b505afa158015610d1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3e9190611428565b10610d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7590611700565b60405180910390fd5b600360019054906101000a900460ff1615610dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc5906116e0565b60405180910390fd5b600360009054906101000a900460ff1615610e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e15906116a0565b60405180910390fd5b6001600360006101000a81548160ff021916908315150217905550565b6000600454905090565b60015481565b600360009054906101000a900460ff1681565b60045481565b6001544210610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9f906116c0565b60405180910390fd5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401610f07939291906115cf565b602060405180830381600087803b158015610f2157600080fd5b505af1158015610f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5991906113d6565b5080600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610fa991906117ac565b925050819055508060066000828254610fc291906117ac565b92505081905550600254600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161102791906115b4565b60206040518083038186803b15801561103f57600080fd5b505afa158015611053573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110779190611428565b10611098576001600360016101000a81548160ff0219169083151502179055505b50565b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156110f8576000905061126e565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5eb42dc846040518263ffffffff1660e01b815260040161115591906115b4565b60206040518083038186803b15801561116d57600080fd5b505afa158015611181573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a59190611428565b9050600654600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161120591906115b4565b60206040518083038186803b15801561121d57600080fd5b505afa158015611231573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112559190611428565b826112609190611833565b61126a9190611802565b9150505b919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000813590506112f181611bb5565b92915050565b60008151905061130681611bcc565b92915050565b60008135905061131b81611be3565b92915050565b60008151905061133081611be3565b92915050565b60006020828403121561134857600080fd5b6000611356848285016112e2565b91505092915050565b600080600080600060a0868803121561137757600080fd5b6000611385888289016112e2565b95505060206113968882890161130c565b94505060406113a78882890161130c565b93505060606113b88882890161130c565b92505060806113c9888289016112e2565b9150509295509295909350565b6000602082840312156113e857600080fd5b60006113f6848285016112f7565b91505092915050565b60006020828403121561141157600080fd5b600061141f8482850161130c565b91505092915050565b60006020828403121561143a57600080fd5b600061144884828501611321565b91505092915050565b61145a816118c1565b82525050565b611469816118d3565b82525050565b61147881611909565b82525050565b6114878161192d565b82525050565b600061149a60248361179b565b91506114a5826119af565b604082019050919050565b60006114bd602a8361179b565b91506114c8826119fe565b604082019050919050565b60006114e060238361179b565b91506114eb82611a4d565b604082019050919050565b600061150360268361179b565b915061150e82611a9c565b604082019050919050565b6000611526601d8361179b565b915061153182611aeb565b602082019050919050565b600061154960228361179b565b915061155482611b14565b604082019050919050565b600061156c601f8361179b565b915061157782611b63565b602082019050919050565b600061158f601d8361179b565b915061159a82611b8c565b602082019050919050565b6115ae816118ff565b82525050565b60006020820190506115c96000830184611451565b92915050565b60006060820190506115e46000830186611451565b6115f16020830185611451565b6115fe60408301846115a5565b949350505050565b600060408201905061161b6000830185611451565b61162860208301846115a5565b9392505050565b60006020820190506116446000830184611460565b92915050565b600060208201905061165f600083018461146f565b92915050565b600060208201905061167a600083018461147e565b92915050565b600060208201905081810360008301526116998161148d565b9050919050565b600060208201905081810360008301526116b9816114b0565b9050919050565b600060208201905081810360008301526116d9816114d3565b9050919050565b600060208201905081810360008301526116f9816114f6565b9050919050565b6000602082019050818103600083015261171981611519565b9050919050565b600060208201905081810360008301526117398161153c565b9050919050565b600060208201905081810360008301526117598161155f565b9050919050565b6000602082019050818103600083015261177981611582565b9050919050565b600060208201905061179560008301846115a5565b92915050565b600082825260208201905092915050565b60006117b7826118ff565b91506117c2836118ff565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117f7576117f6611951565b5b828201905092915050565b600061180d826118ff565b9150611818836118ff565b92508261182857611827611980565b5b828204905092915050565b600061183e826118ff565b9150611849836118ff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561188257611881611951565b5b828202905092915050565b6000611898826118ff565b91506118a3836118ff565b9250828210156118b6576118b5611951565b5b828203905092915050565b60006118cc826118df565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006119148261191b565b9050919050565b6000611926826118df565b9050919050565b60006119388261193f565b9050919050565b600061194a826118df565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4f7074695661756c743a205374616b696e6720706572696f642068617320656e60008201527f6465642e00000000000000000000000000000000000000000000000000000000602082015250565b7f4f7074695661756c743a2043616d706169676e20616c7265616479206d61726b60008201527f6564206661696c65642e00000000000000000000000000000000000000000000602082015250565b7f4f7074695661756c743a20506f6f6c696e672070686173652068617320656e6460008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b7f4f7074695661756c743a2043616d706169676e20616c7265616479207375636360008201527f65656465642e0000000000000000000000000000000000000000000000000000602082015250565b7f4f7074695661756c743a205374616b696e672073756363657366756c2e000000600082015250565b7f4f7074695661756c743a205374696c6c20696e20506f6f6c696e67207068617360008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f7074695661756c743a20546f6b656e73207374696c6c206c6f636b65642e00600082015250565b7f4f7074695661756c743a20416c72656164792077697468647261776e2e000000600082015250565b611bbe816118c1565b8114611bc957600080fd5b50565b611bd5816118d3565b8114611be057600080fd5b50565b611bec816118ff565b8114611bf757600080fd5b5056fea264697066735822122053e33752e1582608c351720fe907e09aa7fdb1f3a6c7d1c8769b65c331695c5364736f6c63430008040033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063a9cc4718116100a2578063bf0db1e411610071578063bf0db1e414610275578063c1cbbca714610293578063e42c08f2146102af578063f5eb42dc146102df578063fc0c546a1461030f57610116565b8063a9cc471814610211578063aa082a9d1461021b578063b5f09a3914610239578063ba414fa61461025757610116565b80636ef61092116100e95780636ef610921461017d5780638b54823f146101ad5780638d8f2adb146101cb57806393415250146101d5578063a66aee6e146101f357610116565b80630478b8c51461011b57806350188301146101255780636a630559146101435780636c28e34914610161575b600080fd5b61012361032d565b005b61012d6106de565b60405161013a919061162f565b60405180910390f35b61014b610702565b60405161015891906115b4565b60405180910390f35b61017b6004803603810190610176919061135f565b61072b565b005b61019760048036038101906101929190611336565b6108b8565b6040516101a4919061162f565b60405180910390f35b6101b56108d8565b6040516101c29190611780565b60405180910390f35b6101d36108de565b005b6101dd610c13565b6040516101ea919061162f565b60405180910390f35b6101fb610c26565b6040516102089190611665565b60405180910390f35b610219610c4c565b005b610223610e3b565b6040516102309190611780565b60405180910390f35b610241610e45565b60405161024e9190611780565b60405180910390f35b61025f610e4b565b60405161026c919061162f565b60405180910390f35b61027d610e5e565b60405161028a9190611780565b60405180910390f35b6102ad60048036038101906102a891906113ff565b610e64565b005b6102c960048036038101906102c49190611336565b61109b565b6040516102d69190611780565b60405180910390f35b6102f960048036038101906102f49190611336565b611273565b6040516103069190611780565b60405180910390f35b6103176112bc565b604051610324919061164a565b60405180910390f35b60001515600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146103c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b790611760565b60405180910390fd5b6001544211610404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103fb90611720565b60405180910390fd5b61040c6106de565b1561044c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044390611680565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff1663e42c08f2336040518263ffffffff1660e01b815260040161048791906115b4565b60206040518083038186803b15801561049f57600080fd5b505afa1580156104b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d79190611428565b90506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5eb42dc336040518263ffffffff1660e01b815260040161053691906115b4565b60206040518083038186803b15801561054e57600080fd5b505afa158015610562573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105869190611428565b9050600060065482141561059c578290506105b8565b60646050846105ab9190611833565b6105b59190611802565b90505b81600660008282546105ca919061188d565b92505081905550600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161062e929190611606565b602060405180830381600087803b15801561064857600080fd5b505af115801561065c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068091906113d6565b506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000600360009054906101000a900460ff16806106fd57506004544210155b905090565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900460ff161561074357600080fd5b84600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360018190555082600281905550816004819055506000600154141561085657600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107ff91906115b4565b60206040518083038186803b15801561081757600080fd5b505afa15801561082b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084f9190611428565b6006819055505b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016000806101000a81548160ff0219169083151502179055505050505050565b60086020528060005260406000206000915054906101000a900460ff1681565b60025481565b6108e66106de565b610925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091c90611740565b60405180910390fd5b60001515600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146109b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109af90611760565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff1663e42c08f2336040518263ffffffff1660e01b81526004016109f391906115b4565b60206040518083038186803b158015610a0b57600080fd5b505afa158015610a1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a439190611428565b9050600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610aa2929190611606565b602060405180830381600087803b158015610abc57600080fd5b505af1158015610ad0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af491906113d6565b50600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5eb42dc336040518263ffffffff1660e01b8152600401610b5091906115b4565b60206040518083038186803b158015610b6857600080fd5b505afa158015610b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba09190611428565b60066000828254610bb1919061188d565b925050819055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600360019054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6001544211610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8790611720565b60405180910390fd5b600254600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610cee91906115b4565b60206040518083038186803b158015610d0657600080fd5b505afa158015610d1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3e9190611428565b10610d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7590611700565b60405180910390fd5b600360019054906101000a900460ff1615610dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc5906116e0565b60405180910390fd5b600360009054906101000a900460ff1615610e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e15906116a0565b60405180910390fd5b6001600360006101000a81548160ff021916908315150217905550565b6000600454905090565b60015481565b600360009054906101000a900460ff1681565b60045481565b6001544210610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9f906116c0565b60405180910390fd5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401610f07939291906115cf565b602060405180830381600087803b158015610f2157600080fd5b505af1158015610f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5991906113d6565b5080600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610fa991906117ac565b925050819055508060066000828254610fc291906117ac565b92505081905550600254600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161102791906115b4565b60206040518083038186803b15801561103f57600080fd5b505afa158015611053573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110779190611428565b10611098576001600360016101000a81548160ff0219169083151502179055505b50565b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156110f8576000905061126e565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5eb42dc846040518263ffffffff1660e01b815260040161115591906115b4565b60206040518083038186803b15801561116d57600080fd5b505afa158015611181573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a59190611428565b9050600654600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161120591906115b4565b60206040518083038186803b15801561121d57600080fd5b505afa158015611231573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112559190611428565b826112609190611833565b61126a9190611802565b9150505b919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000813590506112f181611bb5565b92915050565b60008151905061130681611bcc565b92915050565b60008135905061131b81611be3565b92915050565b60008151905061133081611be3565b92915050565b60006020828403121561134857600080fd5b6000611356848285016112e2565b91505092915050565b600080600080600060a0868803121561137757600080fd5b6000611385888289016112e2565b95505060206113968882890161130c565b94505060406113a78882890161130c565b93505060606113b88882890161130c565b92505060806113c9888289016112e2565b9150509295509295909350565b6000602082840312156113e857600080fd5b60006113f6848285016112f7565b91505092915050565b60006020828403121561141157600080fd5b600061141f8482850161130c565b91505092915050565b60006020828403121561143a57600080fd5b600061144884828501611321565b91505092915050565b61145a816118c1565b82525050565b611469816118d3565b82525050565b61147881611909565b82525050565b6114878161192d565b82525050565b600061149a60248361179b565b91506114a5826119af565b604082019050919050565b60006114bd602a8361179b565b91506114c8826119fe565b604082019050919050565b60006114e060238361179b565b91506114eb82611a4d565b604082019050919050565b600061150360268361179b565b915061150e82611a9c565b604082019050919050565b6000611526601d8361179b565b915061153182611aeb565b602082019050919050565b600061154960228361179b565b915061155482611b14565b604082019050919050565b600061156c601f8361179b565b915061157782611b63565b602082019050919050565b600061158f601d8361179b565b915061159a82611b8c565b602082019050919050565b6115ae816118ff565b82525050565b60006020820190506115c96000830184611451565b92915050565b60006060820190506115e46000830186611451565b6115f16020830185611451565b6115fe60408301846115a5565b949350505050565b600060408201905061161b6000830185611451565b61162860208301846115a5565b9392505050565b60006020820190506116446000830184611460565b92915050565b600060208201905061165f600083018461146f565b92915050565b600060208201905061167a600083018461147e565b92915050565b600060208201905081810360008301526116998161148d565b9050919050565b600060208201905081810360008301526116b9816114b0565b9050919050565b600060208201905081810360008301526116d9816114d3565b9050919050565b600060208201905081810360008301526116f9816114f6565b9050919050565b6000602082019050818103600083015261171981611519565b9050919050565b600060208201905081810360008301526117398161153c565b9050919050565b600060208201905081810360008301526117598161155f565b9050919050565b6000602082019050818103600083015261177981611582565b9050919050565b600060208201905061179560008301846115a5565b92915050565b600082825260208201905092915050565b60006117b7826118ff565b91506117c2836118ff565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117f7576117f6611951565b5b828201905092915050565b600061180d826118ff565b9150611818836118ff565b92508261182857611827611980565b5b828204905092915050565b600061183e826118ff565b9150611849836118ff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561188257611881611951565b5b828202905092915050565b6000611898826118ff565b91506118a3836118ff565b9250828210156118b6576118b5611951565b5b828203905092915050565b60006118cc826118df565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006119148261191b565b9050919050565b6000611926826118df565b9050919050565b60006119388261193f565b9050919050565b600061194a826118df565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4f7074695661756c743a205374616b696e6720706572696f642068617320656e60008201527f6465642e00000000000000000000000000000000000000000000000000000000602082015250565b7f4f7074695661756c743a2043616d706169676e20616c7265616479206d61726b60008201527f6564206661696c65642e00000000000000000000000000000000000000000000602082015250565b7f4f7074695661756c743a20506f6f6c696e672070686173652068617320656e6460008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b7f4f7074695661756c743a2043616d706169676e20616c7265616479207375636360008201527f65656465642e0000000000000000000000000000000000000000000000000000602082015250565b7f4f7074695661756c743a205374616b696e672073756363657366756c2e000000600082015250565b7f4f7074695661756c743a205374696c6c20696e20506f6f6c696e67207068617360008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f7074695661756c743a20546f6b656e73207374696c6c206c6f636b65642e00600082015250565b7f4f7074695661756c743a20416c72656164792077697468647261776e2e000000600082015250565b611bbe816118c1565b8114611bc957600080fd5b50565b611bd5816118d3565b8114611be057600080fd5b50565b611bec816118ff565b8114611bf757600080fd5b5056fea264697066735822122053e33752e1582608c351720fe907e09aa7fdb1f3a6c7d1c8769b65c331695c5364736f6c63430008040033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
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.