Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x60806040 | 14761522 | 805 days ago | IN | 0 ETH | 0.22217225 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
PoolRegistry
Compiler Version
v0.8.10+commit.fc410830
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.10; import "./interfaces/IProxyFactory.sol"; import "./interfaces/IRewards.sol"; contract PoolRegistry { address public constant owner = address(0x59CFCD384746ec3035299D90782Be065e466800B); address public constant proxyFactory = address(0x66807B5598A848602734B82E432dD88DBE13fC8f); address public operator; address public rewardImplementation; bool public rewardsStartActive; PoolInfo[] public poolInfo; mapping(uint256 => mapping(address => address)) public vaultMap; //pool -> user -> vault mapping(uint256 => address[]) public poolVaultList; //pool -> vault array struct PoolInfo { address implementation; address stakingAddress; address stakingToken; address rewardsAddress; uint8 active; } event PoolCreated(uint256 indexed poolid, address indexed implementation, address stakingAddress, address stakingToken); event PoolDeactivated(uint256 indexed poolid); event AddUserVault(address indexed user, uint256 indexed poolid); event OperatorChanged(address indexed account); event RewardImplementationChanged(address indexed implementation); event RewardActiveOnCreationChanged(bool value); constructor() {} modifier onlyOwner() { require(owner == msg.sender, "!auth"); _; } modifier onlyOperator() { require(operator == msg.sender, "!op auth"); _; } //set operator/manager function setOperator(address _op) external onlyOwner{ operator = _op; emit OperatorChanged(_op); } //set extra reward implementation contract for future pools function setRewardImplementation(address _imp) external onlyOperator{ rewardImplementation = _imp; emit RewardImplementationChanged(_imp); } //set rewards to be active when pool is created function setRewardActiveOnCreation(bool _active) external onlyOperator{ rewardsStartActive = _active; emit RewardActiveOnCreationChanged(_active); } //get number of pools function poolLength() external view returns (uint256) { return poolInfo.length; } //get number of vaults made for a specific pool function poolVaultLength(uint256 _pid) external view returns (uint256) { return poolVaultList[_pid].length; } //add a new pool and implementation function addPool(address _implementation, address _stakingAddress, address _stakingToken) external onlyOperator{ require(_implementation != address(0), "!imp"); require(_stakingAddress != address(0), "!stkAdd"); require(_stakingToken != address(0), "!stkTok"); address rewards; if(rewardImplementation != address(0)){ rewards = IProxyFactory(proxyFactory).clone(rewardImplementation); IRewards(rewards).initialize(poolInfo.length, rewardsStartActive); } poolInfo.push( PoolInfo({ implementation: _implementation, stakingAddress: _stakingAddress, stakingToken: _stakingToken, rewardsAddress: rewards, active: 1 }) ); emit PoolCreated(poolInfo.length-1, _implementation, _stakingAddress, _stakingToken); } //replace rewards contract on a specific pool. //each user must call changeRewards on vault to update to new contract function createNewPoolRewards(uint256 _pid) external onlyOperator{ require(rewardImplementation != address(0), "!imp"); //spawn new clone address rewards = IProxyFactory(proxyFactory).clone(rewardImplementation); IRewards(rewards).initialize(_pid, rewardsStartActive); //change address poolInfo[_pid].rewardsAddress = rewards; } //deactivates pool so that new vaults can not be made. //can not force shutdown/withdraw user funds function deactivatePool(uint256 _pid) external onlyOperator{ poolInfo[_pid].active = 0; emit PoolDeactivated(_pid); } //clone a new user vault function addUserVault(uint256 _pid, address _user) external onlyOperator returns(address vault, address stakingAddress, address stakingToken, address rewards){ require(vaultMap[_pid][_user] == address(0), "already exists"); PoolInfo storage pool = poolInfo[_pid]; require(pool.active > 0, "!active"); //create vault = IProxyFactory(proxyFactory).clone(pool.implementation); //add to user map vaultMap[_pid][_user] = vault; //add to pool vault list poolVaultList[_pid].push(vault); //return values stakingAddress = pool.stakingAddress; stakingToken = pool.stakingToken; rewards = pool.rewardsAddress; emit AddUserVault(_user, _pid); } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.10; interface IRewards{ struct EarnedData { address token; uint256 amount; } function initialize(uint256 _pid, bool _startActive) external; function addReward(address _rewardsToken, address _distributor) external; function approveRewardDistributor( address _rewardsToken, address _distributor, bool _approved ) external; function deposit(address _owner, uint256 _amount) external; function withdraw(address _owner, uint256 _amount) external; function getReward(address _forward) external; function notifyRewardAmount(address _rewardsToken, uint256 _reward) external; function balanceOf(address account) external view returns (uint256); function claimableRewards(address _account) external view returns(EarnedData[] memory userRewards); function rewardTokens(uint256 _rid) external view returns (address); function rewardTokenLength() external view returns(uint256); function active() external view returns(bool); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.10; interface IProxyFactory { function clone(address _target) external returns(address); }
{ "remappings": [], "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "london", "libraries": {}, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"poolid","type":"uint256"}],"name":"AddUserVault","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"OperatorChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"poolid","type":"uint256"},{"indexed":true,"internalType":"address","name":"implementation","type":"address"},{"indexed":false,"internalType":"address","name":"stakingAddress","type":"address"},{"indexed":false,"internalType":"address","name":"stakingToken","type":"address"}],"name":"PoolCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"poolid","type":"uint256"}],"name":"PoolDeactivated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"RewardActiveOnCreationChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"RewardImplementationChanged","type":"event"},{"inputs":[{"internalType":"address","name":"_implementation","type":"address"},{"internalType":"address","name":"_stakingAddress","type":"address"},{"internalType":"address","name":"_stakingToken","type":"address"}],"name":"addPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"addUserVault","outputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"stakingAddress","type":"address"},{"internalType":"address","name":"stakingToken","type":"address"},{"internalType":"address","name":"rewards","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"createNewPoolRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"deactivatePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolInfo","outputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"address","name":"stakingAddress","type":"address"},{"internalType":"address","name":"stakingToken","type":"address"},{"internalType":"address","name":"rewardsAddress","type":"address"},{"internalType":"uint8","name":"active","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"poolVaultLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolVaultList","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxyFactory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsStartActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_op","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_active","type":"bool"}],"name":"setRewardActiveOnCreation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_imp","type":"address"}],"name":"setRewardImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"vaultMap","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50610f1c806100206000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063aba65098116100a2578063c10f1a7511610071578063c10f1a7514610296578063ddc72f94146102b1578063e57197cf146102c4578063f2bc788b146102d7578063fa58ee021461031d57600080fd5b8063aba6509814610229578063afe2b66d1461023c578063b3ab15fb1461024f578063bfff576f1461026257600080fd5b8063570ca735116100de578063570ca735146101b05780638b47168a146101db5780638da5cb5b146101fb5780639abd9b051461021657600080fd5b8063081e3eda146101105780631526fe27146101275780633fd467861461017757806351cecf771461018c575b600080fd5b6002545b6040519081526020015b60405180910390f35b61013a610135366004610d58565b610330565b604080516001600160a01b039687168152948616602086015292851692840192909252909216606082015260ff909116608082015260a00161011e565b61018a610185366004610d71565b610386565b005b6001546101a090600160a01b900460ff1681565b604051901515815260200161011e565b6000546101c3906001600160a01b031681565b6040516001600160a01b03909116815260200161011e565b6101146101e9366004610d58565b60009081526004602052604090205490565b6101c37359cfcd384746ec3035299d90782be065e466800b81565b61018a610224366004610d58565b610411565b61018a610237366004610db2565b6104ab565b6101c361024a366004610dfd565b610832565b61018a61025d366004610e1f565b61086a565b6101c3610270366004610e3c565b60036020908152600092835260408084209091529082529020546001600160a01b031681565b6101c37366807b5598a848602734b82e432dd88dbe13fc8f81565b6001546101c3906001600160a01b031681565b61018a6102d2366004610d58565b6108fd565b6102ea6102e5366004610e3c565b610aac565b604080516001600160a01b039586168152938516602085015291841691830191909152909116606082015260800161011e565b61018a61032b366004610e1f565b610ce4565b6002818154811061034057600080fd5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b03928316945090821692821691811690600160a01b900460ff1685565b6000546001600160a01b031633146103b95760405162461bcd60e51b81526004016103b090610e6c565b60405180910390fd5b60018054821515600160a01b0260ff60a01b199091161790556040517f7466d7918c00b6a6e62641ace256dadfc65e824de0a0d0740eda888901c2b63b9061040690831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461043b5760405162461bcd60e51b81526004016103b090610e6c565b60006002828154811061045057610450610e8e565b600091825260208220600360049092020101805460ff93909316600160a01b0260ff60a01b199093169290921790915560405182917ff924dd04accfc1837d0eeddb10bc7732e2057f5d916c0b5a21e8372393b244a291a250565b6000546001600160a01b031633146104d55760405162461bcd60e51b81526004016103b090610e6c565b6001600160a01b0383166105145760405162461bcd60e51b81526004016103b090602080825260049082015263021696d760e41b604082015260600190565b6001600160a01b0382166105545760405162461bcd60e51b8152602060048201526007602482015266085cdd1ad0591960ca1b60448201526064016103b0565b6001600160a01b0381166105945760405162461bcd60e51b81526020600482015260076024820152662173746b546f6b60c81b60448201526064016103b0565b6001546000906001600160a01b0316156106a0576001546040516340925bc760e11b81526001600160a01b0390911660048201527366807b5598a848602734b82e432dd88dbe13fc8f90638124b78e906024016020604051808303816000875af1158015610606573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062a9190610ea4565b6002546001546040516313cb233360e11b81526004810192909252600160a01b900460ff16151560248201529091506001600160a01b03821690632796466690604401600060405180830381600087803b15801561068757600080fd5b505af115801561069b573d6000803e3d6000fd5b505050505b6040805160a0810182526001600160a01b0380871680835286821660208401908152868316948401948552858316606085019081526001608086018181526002805480840182556000829052975160049098027f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace810180549989166001600160a01b03199a8b1617905594517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf86018054918916918a1691909117905597517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad085018054918816919098161790965590517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad19092018054955160ff16600160a01b026001600160a81b031990961692909416919091179390931790915591546107e99190610ec1565b604080516001600160a01b038088168252861660208201527f070da9921e58d11c5e49283ff7930c3c05239838f04b056bb98b767be6955879910160405180910390a350505050565b6004602052816000526040600020818154811061084e57600080fd5b6000918252602090912001546001600160a01b03169150829050565b7359cfcd384746ec3035299d90782be065e466800b33146108b55760405162461bcd60e51b8152602060048201526005602482015264042c2eae8d60db1b60448201526064016103b0565b600080546001600160a01b0319166001600160a01b038316908117825560405190917f4721129e0e676ed6a92909bb24e853ccdd63ad72280cc2e974e38e480e0e6e5491a250565b6000546001600160a01b031633146109275760405162461bcd60e51b81526004016103b090610e6c565b6001546001600160a01b03166109685760405162461bcd60e51b81526004016103b090602080825260049082015263021696d760e41b604082015260600190565b6001546040516340925bc760e11b81526001600160a01b0390911660048201526000907366807b5598a848602734b82e432dd88dbe13fc8f90638124b78e906024016020604051808303816000875af11580156109c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ed9190610ea4565b6001546040516313cb233360e11b815260048101859052600160a01b90910460ff16151560248201529091506001600160a01b03821690632796466690604401600060405180830381600087803b158015610a4757600080fd5b505af1158015610a5b573d6000803e3d6000fd5b505050508060028381548110610a7357610a73610e8e565b906000526020600020906004020160030160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505050565b600080548190819081906001600160a01b03163314610add5760405162461bcd60e51b81526004016103b090610e6c565b60008681526003602090815260408083206001600160a01b0389811685529252909120541615610b405760405162461bcd60e51b815260206004820152600e60248201526d616c72656164792065786973747360901b60448201526064016103b0565b600060028781548110610b5557610b55610e8e565b9060005260206000209060040201905060008160030160149054906101000a900460ff1660ff1611610bb35760405162461bcd60e51b81526020600482015260076024820152662161637469766560c81b60448201526064016103b0565b80546040516340925bc760e11b81526001600160a01b0390911660048201527366807b5598a848602734b82e432dd88dbe13fc8f90638124b78e906024016020604051808303816000875af1158015610c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c349190610ea4565b60008881526003602081815260408084206001600160a01b03808d1680875291845282862080548289166001600160a01b031991821681179092558f885260048652848820805460018181018355918a5296892090960180549091169091179055928701546002880154948801549251969b50831699509282169750169450899290917fc3a719ac2c66bb292413ff9bb5cc91f486266e1b70bf1b394f666fc761ec64a391a35092959194509250565b6000546001600160a01b03163314610d0e5760405162461bcd60e51b81526004016103b090610e6c565b600180546001600160a01b0319166001600160a01b0383169081179091556040517ffbeb0fbc478d221bbef0241e46aa78721db7379c47cc2dddf9fc562ac071486c90600090a250565b600060208284031215610d6a57600080fd5b5035919050565b600060208284031215610d8357600080fd5b81358015158114610d9357600080fd5b9392505050565b6001600160a01b0381168114610daf57600080fd5b50565b600080600060608486031215610dc757600080fd5b8335610dd281610d9a565b92506020840135610de281610d9a565b91506040840135610df281610d9a565b809150509250925092565b60008060408385031215610e1057600080fd5b50508035926020909101359150565b600060208284031215610e3157600080fd5b8135610d9381610d9a565b60008060408385031215610e4f57600080fd5b823591506020830135610e6181610d9a565b809150509250929050565b602080825260089082015267042dee040c2eae8d60c31b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610eb657600080fd5b8151610d9381610d9a565b600082821015610ee157634e487b7160e01b600052601160045260246000fd5b50039056fea264697066735822122073043bd1ebfbce79259f34534df92e37d5fe04822b5b381af2259707b27ed6f364736f6c634300080a0033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061010b5760003560e01c8063aba65098116100a2578063c10f1a7511610071578063c10f1a7514610296578063ddc72f94146102b1578063e57197cf146102c4578063f2bc788b146102d7578063fa58ee021461031d57600080fd5b8063aba6509814610229578063afe2b66d1461023c578063b3ab15fb1461024f578063bfff576f1461026257600080fd5b8063570ca735116100de578063570ca735146101b05780638b47168a146101db5780638da5cb5b146101fb5780639abd9b051461021657600080fd5b8063081e3eda146101105780631526fe27146101275780633fd467861461017757806351cecf771461018c575b600080fd5b6002545b6040519081526020015b60405180910390f35b61013a610135366004610d58565b610330565b604080516001600160a01b039687168152948616602086015292851692840192909252909216606082015260ff909116608082015260a00161011e565b61018a610185366004610d71565b610386565b005b6001546101a090600160a01b900460ff1681565b604051901515815260200161011e565b6000546101c3906001600160a01b031681565b6040516001600160a01b03909116815260200161011e565b6101146101e9366004610d58565b60009081526004602052604090205490565b6101c37359cfcd384746ec3035299d90782be065e466800b81565b61018a610224366004610d58565b610411565b61018a610237366004610db2565b6104ab565b6101c361024a366004610dfd565b610832565b61018a61025d366004610e1f565b61086a565b6101c3610270366004610e3c565b60036020908152600092835260408084209091529082529020546001600160a01b031681565b6101c37366807b5598a848602734b82e432dd88dbe13fc8f81565b6001546101c3906001600160a01b031681565b61018a6102d2366004610d58565b6108fd565b6102ea6102e5366004610e3c565b610aac565b604080516001600160a01b039586168152938516602085015291841691830191909152909116606082015260800161011e565b61018a61032b366004610e1f565b610ce4565b6002818154811061034057600080fd5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b03928316945090821692821691811690600160a01b900460ff1685565b6000546001600160a01b031633146103b95760405162461bcd60e51b81526004016103b090610e6c565b60405180910390fd5b60018054821515600160a01b0260ff60a01b199091161790556040517f7466d7918c00b6a6e62641ace256dadfc65e824de0a0d0740eda888901c2b63b9061040690831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461043b5760405162461bcd60e51b81526004016103b090610e6c565b60006002828154811061045057610450610e8e565b600091825260208220600360049092020101805460ff93909316600160a01b0260ff60a01b199093169290921790915560405182917ff924dd04accfc1837d0eeddb10bc7732e2057f5d916c0b5a21e8372393b244a291a250565b6000546001600160a01b031633146104d55760405162461bcd60e51b81526004016103b090610e6c565b6001600160a01b0383166105145760405162461bcd60e51b81526004016103b090602080825260049082015263021696d760e41b604082015260600190565b6001600160a01b0382166105545760405162461bcd60e51b8152602060048201526007602482015266085cdd1ad0591960ca1b60448201526064016103b0565b6001600160a01b0381166105945760405162461bcd60e51b81526020600482015260076024820152662173746b546f6b60c81b60448201526064016103b0565b6001546000906001600160a01b0316156106a0576001546040516340925bc760e11b81526001600160a01b0390911660048201527366807b5598a848602734b82e432dd88dbe13fc8f90638124b78e906024016020604051808303816000875af1158015610606573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062a9190610ea4565b6002546001546040516313cb233360e11b81526004810192909252600160a01b900460ff16151560248201529091506001600160a01b03821690632796466690604401600060405180830381600087803b15801561068757600080fd5b505af115801561069b573d6000803e3d6000fd5b505050505b6040805160a0810182526001600160a01b0380871680835286821660208401908152868316948401948552858316606085019081526001608086018181526002805480840182556000829052975160049098027f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace810180549989166001600160a01b03199a8b1617905594517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf86018054918916918a1691909117905597517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad085018054918816919098161790965590517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad19092018054955160ff16600160a01b026001600160a81b031990961692909416919091179390931790915591546107e99190610ec1565b604080516001600160a01b038088168252861660208201527f070da9921e58d11c5e49283ff7930c3c05239838f04b056bb98b767be6955879910160405180910390a350505050565b6004602052816000526040600020818154811061084e57600080fd5b6000918252602090912001546001600160a01b03169150829050565b7359cfcd384746ec3035299d90782be065e466800b33146108b55760405162461bcd60e51b8152602060048201526005602482015264042c2eae8d60db1b60448201526064016103b0565b600080546001600160a01b0319166001600160a01b038316908117825560405190917f4721129e0e676ed6a92909bb24e853ccdd63ad72280cc2e974e38e480e0e6e5491a250565b6000546001600160a01b031633146109275760405162461bcd60e51b81526004016103b090610e6c565b6001546001600160a01b03166109685760405162461bcd60e51b81526004016103b090602080825260049082015263021696d760e41b604082015260600190565b6001546040516340925bc760e11b81526001600160a01b0390911660048201526000907366807b5598a848602734b82e432dd88dbe13fc8f90638124b78e906024016020604051808303816000875af11580156109c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ed9190610ea4565b6001546040516313cb233360e11b815260048101859052600160a01b90910460ff16151560248201529091506001600160a01b03821690632796466690604401600060405180830381600087803b158015610a4757600080fd5b505af1158015610a5b573d6000803e3d6000fd5b505050508060028381548110610a7357610a73610e8e565b906000526020600020906004020160030160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505050565b600080548190819081906001600160a01b03163314610add5760405162461bcd60e51b81526004016103b090610e6c565b60008681526003602090815260408083206001600160a01b0389811685529252909120541615610b405760405162461bcd60e51b815260206004820152600e60248201526d616c72656164792065786973747360901b60448201526064016103b0565b600060028781548110610b5557610b55610e8e565b9060005260206000209060040201905060008160030160149054906101000a900460ff1660ff1611610bb35760405162461bcd60e51b81526020600482015260076024820152662161637469766560c81b60448201526064016103b0565b80546040516340925bc760e11b81526001600160a01b0390911660048201527366807b5598a848602734b82e432dd88dbe13fc8f90638124b78e906024016020604051808303816000875af1158015610c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c349190610ea4565b60008881526003602081815260408084206001600160a01b03808d1680875291845282862080548289166001600160a01b031991821681179092558f885260048652848820805460018181018355918a5296892090960180549091169091179055928701546002880154948801549251969b50831699509282169750169450899290917fc3a719ac2c66bb292413ff9bb5cc91f486266e1b70bf1b394f666fc761ec64a391a35092959194509250565b6000546001600160a01b03163314610d0e5760405162461bcd60e51b81526004016103b090610e6c565b600180546001600160a01b0319166001600160a01b0383169081179091556040517ffbeb0fbc478d221bbef0241e46aa78721db7379c47cc2dddf9fc562ac071486c90600090a250565b600060208284031215610d6a57600080fd5b5035919050565b600060208284031215610d8357600080fd5b81358015158114610d9357600080fd5b9392505050565b6001600160a01b0381168114610daf57600080fd5b50565b600080600060608486031215610dc757600080fd5b8335610dd281610d9a565b92506020840135610de281610d9a565b91506040840135610df281610d9a565b809150509250925092565b60008060408385031215610e1057600080fd5b50508035926020909101359150565b600060208284031215610e3157600080fd5b8135610d9381610d9a565b60008060408385031215610e4f57600080fd5b823591506020830135610e6181610d9a565b809150509250929050565b602080825260089082015267042dee040c2eae8d60c31b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610eb657600080fd5b8151610d9381610d9a565b600082821015610ee157634e487b7160e01b600052601160045260246000fd5b50039056fea264697066735822122073043bd1ebfbce79259f34534df92e37d5fe04822b5b381af2259707b27ed6f364736f6c634300080a0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.