Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| 0x60806040 | 24590699 | 5 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 24590690 | 5 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 24590686 | 5 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 24590678 | 5 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 24590515 | 5 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 24590467 | 5 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 24468494 | 22 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 24427100 | 28 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 24427093 | 28 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 24427087 | 28 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 24427079 | 28 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 24427067 | 28 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 24234193 | 55 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 23518376 | 155 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 23518356 | 155 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 23518188 | 155 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 23267295 | 190 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 23267284 | 190 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 23267274 | 190 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 23267259 | 190 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 23267248 | 190 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 23267244 | 190 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 22487879 | 299 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 22487875 | 299 days ago | Contract Creation | 0 ETH | |||
| 0x60806040 | 22487871 | 299 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
RegularVaultFactory
Compiler Version
v0.5.16+commit.9c3226ce
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity 0.5.16;
import "../../VaultProxy.sol";
import "../../interface/IVault.sol";
import "../interface/IVaultFactory.sol";
import "../../inheritance/OwnableWhitelist.sol";
contract RegularVaultFactory is OwnableWhitelist, IVaultFactory {
address public vaultImplementation = 0x9B3bE0cc5dD26fd0254088d03D8206792715588B;
address public lastDeployedAddress = address(0);
function deploy(address _storage, address underlying) external onlyWhitelisted returns (address) {
lastDeployedAddress = address(new VaultProxy(vaultImplementation));
IVault(lastDeployedAddress).initializeVault(
_storage,
underlying,
9700,
10000
);
return lastDeployedAddress;
}
function changeDefaultImplementation(address newImplementation) external onlyOwner {
require(newImplementation != address(0), "Must be set");
vaultImplementation = newImplementation;
}
function info(address vault) external view returns(address Underlying, address NewVault) {
Underlying = IVault(vault).underlying();
NewVault = vault;
}
}pragma solidity 0.5.16;
import "./interface/IUpgradeSource.sol";
import "@openzeppelin/upgrades/contracts/upgradeability/BaseUpgradeabilityProxy.sol";
contract VaultProxy is BaseUpgradeabilityProxy {
constructor(address _implementation) public {
_setImplementation(_implementation);
}
/**
* The main logic. If the timer has elapsed and there is a schedule upgrade,
* the governance can upgrade the vault
*/
function upgrade() external {
(bool should, address newImplementation) = IUpgradeSource(address(this)).shouldUpgrade();
require(should, "Upgrade not scheduled");
_upgradeTo(newImplementation);
// the finalization needs to be executed on itself to update the storage of this proxy
// it also needs to be invoked by the governance, not by address(this), so delegatecall is needed
(bool success,) = address(this).delegatecall(
abi.encodeWithSignature("finalizeUpgrade()")
);
require(success, "Issue when finalizing the upgrade");
}
function implementation() external view returns (address) {
return _implementation();
}
}pragma solidity 0.5.16;
interface IVault {
function initializeVault(
address _storage,
address _underlying,
uint256 _toInvestNumerator,
uint256 _toInvestDenominator
) external ;
function balanceOf(address) external view returns (uint256);
function underlyingBalanceInVault() external view returns (uint256);
function underlyingBalanceWithInvestment() external view returns (uint256);
// function store() external view returns (address);
function governance() external view returns (address);
function controller() external view returns (address);
function underlying() external view returns (address);
function strategy() external view returns (address);
function setStrategy(address _strategy) external;
function announceStrategyUpdate(address _strategy) external;
function setVaultFractionToInvest(uint256 numerator, uint256 denominator) external;
function deposit(uint256 amountWei) external;
function depositFor(uint256 amountWei, address holder) external;
function withdrawAll() external;
function withdraw(uint256 numberOfShares) external;
function getPricePerFullShare() external view returns (uint256);
function underlyingBalanceWithInvestmentForHolder(address holder) view external returns (uint256);
// hard work should be callable only by the controller (by the hard worker) or by governance
function doHardWork() external;
}pragma solidity 0.5.16;
interface IVaultFactory {
function deploy(address _storage, address _underlying) external returns (address);
function info(address vault) external view returns(address Underlying, address NewVault);
}pragma solidity 0.5.16;
import "@openzeppelin/contracts/ownership/Ownable.sol";
contract OwnableWhitelist is Ownable {
mapping (address => bool) public whitelist;
modifier onlyWhitelisted() {
require(whitelist[msg.sender] || msg.sender == owner(), "not allowed");
_;
}
function setWhitelist(address target, bool isWhitelisted) public onlyOwner {
whitelist[target] = isWhitelisted;
}
}pragma solidity 0.5.16;
interface IUpgradeSource {
function shouldUpgrade() external view returns (bool, address);
function finalizeUpgrade() external;
}pragma solidity ^0.5.0;
import './Proxy.sol';
import '../utils/Address.sol';
/**
* @title BaseUpgradeabilityProxy
* @dev This contract implements a proxy that allows to change the
* implementation address to which it will delegate.
* Such a change is called an implementation upgrade.
*/
contract BaseUpgradeabilityProxy is Proxy {
/**
* @dev Emitted when the implementation is upgraded.
* @param implementation Address of the new implementation.
*/
event Upgraded(address indexed implementation);
/**
* @dev Storage slot with the address of the current implementation.
* This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is
* validated in the constructor.
*/
bytes32 internal constant IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
/**
* @dev Returns the current implementation.
* @return Address of the current implementation
*/
function _implementation() internal view returns (address impl) {
bytes32 slot = IMPLEMENTATION_SLOT;
assembly {
impl := sload(slot)
}
}
/**
* @dev Upgrades the proxy to a new implementation.
* @param newImplementation Address of the new implementation.
*/
function _upgradeTo(address newImplementation) internal {
_setImplementation(newImplementation);
emit Upgraded(newImplementation);
}
/**
* @dev Sets the implementation address of the proxy.
* @param newImplementation Address of the new implementation.
*/
function _setImplementation(address newImplementation) internal {
require(OpenZeppelinUpgradesAddress.isContract(newImplementation), "Cannot set a proxy implementation to a non-contract address");
bytes32 slot = IMPLEMENTATION_SLOT;
assembly {
sstore(slot, newImplementation)
}
}
}pragma solidity ^0.5.0;
/**
* @title Proxy
* @dev Implements delegation of calls to other contracts, with proper
* forwarding of return values and bubbling of failures.
* It defines a fallback function that delegates all calls to the address
* returned by the abstract _implementation() internal function.
*/
contract Proxy {
/**
* @dev Fallback function.
* Implemented entirely in `_fallback`.
*/
function () payable external {
_fallback();
}
/**
* @return The Address of the implementation.
*/
function _implementation() internal view returns (address);
/**
* @dev Delegates execution to an implementation contract.
* This is a low level function that doesn't return to its internal call site.
* It will return to the external caller whatever the implementation returns.
* @param implementation Address to delegate.
*/
function _delegate(address implementation) internal {
assembly {
// Copy msg.data. We take full control of memory in this inline assembly
// block because it will not return to Solidity code. We overwrite the
// Solidity scratch pad at memory position 0.
calldatacopy(0, 0, calldatasize)
// Call the implementation.
// out and outsize are 0 because we don't know the size yet.
let result := delegatecall(gas, implementation, 0, calldatasize, 0, 0)
// Copy the returned data.
returndatacopy(0, 0, returndatasize)
switch result
// delegatecall returns 0 on error.
case 0 { revert(0, returndatasize) }
default { return(0, returndatasize) }
}
}
/**
* @dev Function that is run as the first thing in the fallback function.
* Can be redefined in derived contracts to add functionality.
* Redefinitions must call super._willFallback().
*/
function _willFallback() internal {
}
/**
* @dev fallback implementation.
* Extracted to enable manual triggering.
*/
function _fallback() internal {
_willFallback();
_delegate(_implementation());
}
}pragma solidity ^0.5.0;
/**
* Utility library of inline functions on addresses
*
* Source https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/v2.1.3/contracts/utils/Address.sol
* This contract is copied here and renamed from the original to avoid clashes in the compiled artifacts
* when the user imports a zos-lib contract (that transitively causes this contract to be compiled and added to the
* build/artifacts folder) as well as the vanilla Address implementation from an openzeppelin version.
*/
library OpenZeppelinUpgradesAddress {
/**
* Returns whether the target address is a contract
* @dev This function will return false if invoked during the constructor of a contract,
* as the code is not actually created until after the constructor finishes.
* @param account address of the account to check
* @return whether the target address is a contract
*/
function isContract(address account) internal view returns (bool) {
uint256 size;
// XXX Currently there is no better way to check if there is a contract in an address
// than to check the size of the code at that address.
// See https://ethereum.stackexchange.com/a/14016/36603
// for more details about how this works.
// TODO Check this again before the Serenity release, because all addresses will be
// contracts then.
// solhint-disable-next-line no-inline-assembly
assembly { size := extcodesize(account) }
return size > 0;
}
}pragma solidity ^0.5.0;
import "../GSN/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.
*
* 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.
*/
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 () internal {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(isOwner(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Returns true if the caller is the current owner.
*/
function isOwner() public view returns (bool) {
return _msgSender() == _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 onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = 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 onlyOwner {
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
*/
function _transferOwnership(address newOwner) internal {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}pragma solidity ^0.5.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 GSN 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.
*/
contract Context {
// Empty internal constructor, to prevent people from mistakenly deploying
// an instance of this contract, which should be used via inheritance.
constructor () internal { }
// solhint-disable-previous-line no-empty-blocks
function _msgSender() internal view returns (address payable) {
return msg.sender;
}
function _msgData() internal view returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"metadata": {
"useLiteralContent": true
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"changeDefaultImplementation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_storage","type":"address"},{"internalType":"address","name":"underlying","type":"address"}],"name":"deploy","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"vault","type":"address"}],"name":"info","outputs":[{"internalType":"address","name":"Underlying","type":"address"},{"internalType":"address","name":"NewVault","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastDeployedAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"isWhitelisted","type":"bool"}],"name":"setWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vaultImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}]Contract Creation Code
6080604052600280546001600160a01b0319908116739b3be0cc5dd26fd0254088d03d8206792715588b1790915560038054909116905560006100496001600160e01b0361009816565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061009c565b3390565b610c8e806100ab6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80638da5cb5b116100715780638da5cb5b146101845780638f32d59b1461018c5780639b19251a146101a8578063a4f63448146101ce578063bba48a90146101f4578063f2fde38b146101fc576100a9565b80630aae7a6b146100ae57806334537c88146100fa57806353d6fd591461011e578063545e7c611461014e578063715018a61461017c575b600080fd5b6100d4600480360360208110156100c457600080fd5b50356001600160a01b0316610222565b604080516001600160a01b03938416815291909216602082015281519081900390910190f35b610102610290565b604080516001600160a01b039092168252519081900360200190f35b61014c6004803603604081101561013457600080fd5b506001600160a01b038135169060200135151561029f565b005b6101026004803603604081101561016457600080fd5b506001600160a01b0381358116916020013516610311565b61014c610473565b610102610504565b610194610513565b604080519115158252519081900360200190f35b610194600480360360208110156101be57600080fd5b50356001600160a01b0316610537565b61014c600480360360208110156101e457600080fd5b50356001600160a01b031661054c565b6101026105fe565b61014c6004803603602081101561021257600080fd5b50356001600160a01b031661060d565b600080826001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b15801561025e57600080fd5b505afa158015610272573d6000803e3d6000fd5b505050506040513d602081101561028857600080fd5b505193915050565b6003546001600160a01b031681565b6102a7610513565b6102e6576040805162461bcd60e51b81526020600482018190526024820152600080516020610c3a833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b3360009081526001602052604081205460ff16806103475750610332610504565b6001600160a01b0316336001600160a01b0316145b610386576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b6002546040516001600160a01b03909116906103a190610704565b6001600160a01b03909116815260405190819003602001906000f0801580156103ce573d6000803e3d6000fd5b50600380546001600160a01b0319166001600160a01b039283161790819055604080516323f05c2360e21b8152868416600482015285841660248201526125e46044820152612710606482015290519190921691638fc1708c91608480830192600092919082900301818387803b15801561044857600080fd5b505af115801561045c573d6000803e3d6000fd5b50506003546001600160a01b031695945050505050565b61047b610513565b6104ba576040805162461bcd60e51b81526020600482018190526024820152600080516020610c3a833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b600080546001600160a01b0316610528610660565b6001600160a01b031614905090565b60016020526000908152604090205460ff1681565b610554610513565b610593576040805162461bcd60e51b81526020600482018190526024820152600080516020610c3a833981519152604482015290519081900360640190fd5b6001600160a01b0381166105dc576040805162461bcd60e51b815260206004820152600b60248201526a135d5cdd081899481cd95d60aa1b604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b031681565b610615610513565b610654576040805162461bcd60e51b81526020600482018190526024820152600080516020610c3a833981519152604482015290519081900360640190fd5b61065d81610664565b50565b3390565b6001600160a01b0381166106a95760405162461bcd60e51b8152600401808060200182810382526026815260200180610c146026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b610502806107128339019056fe608060405234801561001057600080fd5b506040516105023803806105028339818101604052602081101561003357600080fd5b5051610047816001600160e01b0361004d16565b506100c5565b610060816100bf60201b61035c1760201c565b61009b5760405162461bcd60e51b815260040180806020018281038252603b8152602001806104c7603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b151590565b6103f3806100d46000396000f3fe6080604052600436106100295760003560e01c80635c60da1b14610033578063d55ec69714610064575b610031610079565b005b34801561003f57600080fd5b50610048610093565b604080516001600160a01b039092168252519081900360200190f35b34801561007057600080fd5b506100316100a2565b610081610091565b61009161008c61026b565b610290565b565b600061009d61026b565b905090565b600080306001600160a01b0316639d16acfd6040518163ffffffff1660e01b8152600401604080518083038186803b1580156100dd57600080fd5b505afa1580156100f1573d6000803e3d6000fd5b505050506040513d604081101561010757600080fd5b50805160209091015190925090508161015f576040805162461bcd60e51b8152602060048201526015602482015274155c19dc985919481b9bdd081cd8da19591d5b1959605a1b604482015290519081900360640190fd5b610168816102b4565b60408051600481526024810182526020810180516001600160e01b0316634d28464760e11b17815291518151600093309392918291908083835b602083106101c15780518252601f1990920191602091820191016101a2565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610221576040519150601f19603f3d011682016040523d82523d6000602084013e610226565b606091505b50509050806102665760405162461bcd60e51b81526004018080602001828103825260218152602001806103636021913960400191505060405180910390fd5b505050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156102af573d6000f35b3d6000fd5b6102bd816102f4565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6102fd8161035c565b6103385760405162461bcd60e51b815260040180806020018281038252603b815260200180610384603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b15159056fe4973737565207768656e2066696e616c697a696e6720746865207570677261646543616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a265627a7a72315820004cf031cea7eb27ea29deb7e43a92ae9d16256d3103391f30ffb0161610d95364736f6c6343000510003243616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e747261637420616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a265627a7a72315820325b5e2e7cea947baaae85fd1d11a791cef4a25a66cfa1fdcae64187e7ac67ea64736f6c63430005100032
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80638da5cb5b116100715780638da5cb5b146101845780638f32d59b1461018c5780639b19251a146101a8578063a4f63448146101ce578063bba48a90146101f4578063f2fde38b146101fc576100a9565b80630aae7a6b146100ae57806334537c88146100fa57806353d6fd591461011e578063545e7c611461014e578063715018a61461017c575b600080fd5b6100d4600480360360208110156100c457600080fd5b50356001600160a01b0316610222565b604080516001600160a01b03938416815291909216602082015281519081900390910190f35b610102610290565b604080516001600160a01b039092168252519081900360200190f35b61014c6004803603604081101561013457600080fd5b506001600160a01b038135169060200135151561029f565b005b6101026004803603604081101561016457600080fd5b506001600160a01b0381358116916020013516610311565b61014c610473565b610102610504565b610194610513565b604080519115158252519081900360200190f35b610194600480360360208110156101be57600080fd5b50356001600160a01b0316610537565b61014c600480360360208110156101e457600080fd5b50356001600160a01b031661054c565b6101026105fe565b61014c6004803603602081101561021257600080fd5b50356001600160a01b031661060d565b600080826001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b15801561025e57600080fd5b505afa158015610272573d6000803e3d6000fd5b505050506040513d602081101561028857600080fd5b505193915050565b6003546001600160a01b031681565b6102a7610513565b6102e6576040805162461bcd60e51b81526020600482018190526024820152600080516020610c3a833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b3360009081526001602052604081205460ff16806103475750610332610504565b6001600160a01b0316336001600160a01b0316145b610386576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b6002546040516001600160a01b03909116906103a190610704565b6001600160a01b03909116815260405190819003602001906000f0801580156103ce573d6000803e3d6000fd5b50600380546001600160a01b0319166001600160a01b039283161790819055604080516323f05c2360e21b8152868416600482015285841660248201526125e46044820152612710606482015290519190921691638fc1708c91608480830192600092919082900301818387803b15801561044857600080fd5b505af115801561045c573d6000803e3d6000fd5b50506003546001600160a01b031695945050505050565b61047b610513565b6104ba576040805162461bcd60e51b81526020600482018190526024820152600080516020610c3a833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b600080546001600160a01b0316610528610660565b6001600160a01b031614905090565b60016020526000908152604090205460ff1681565b610554610513565b610593576040805162461bcd60e51b81526020600482018190526024820152600080516020610c3a833981519152604482015290519081900360640190fd5b6001600160a01b0381166105dc576040805162461bcd60e51b815260206004820152600b60248201526a135d5cdd081899481cd95d60aa1b604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b031681565b610615610513565b610654576040805162461bcd60e51b81526020600482018190526024820152600080516020610c3a833981519152604482015290519081900360640190fd5b61065d81610664565b50565b3390565b6001600160a01b0381166106a95760405162461bcd60e51b8152600401808060200182810382526026815260200180610c146026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b610502806107128339019056fe608060405234801561001057600080fd5b506040516105023803806105028339818101604052602081101561003357600080fd5b5051610047816001600160e01b0361004d16565b506100c5565b610060816100bf60201b61035c1760201c565b61009b5760405162461bcd60e51b815260040180806020018281038252603b8152602001806104c7603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b151590565b6103f3806100d46000396000f3fe6080604052600436106100295760003560e01c80635c60da1b14610033578063d55ec69714610064575b610031610079565b005b34801561003f57600080fd5b50610048610093565b604080516001600160a01b039092168252519081900360200190f35b34801561007057600080fd5b506100316100a2565b610081610091565b61009161008c61026b565b610290565b565b600061009d61026b565b905090565b600080306001600160a01b0316639d16acfd6040518163ffffffff1660e01b8152600401604080518083038186803b1580156100dd57600080fd5b505afa1580156100f1573d6000803e3d6000fd5b505050506040513d604081101561010757600080fd5b50805160209091015190925090508161015f576040805162461bcd60e51b8152602060048201526015602482015274155c19dc985919481b9bdd081cd8da19591d5b1959605a1b604482015290519081900360640190fd5b610168816102b4565b60408051600481526024810182526020810180516001600160e01b0316634d28464760e11b17815291518151600093309392918291908083835b602083106101c15780518252601f1990920191602091820191016101a2565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610221576040519150601f19603f3d011682016040523d82523d6000602084013e610226565b606091505b50509050806102665760405162461bcd60e51b81526004018080602001828103825260218152602001806103636021913960400191505060405180910390fd5b505050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156102af573d6000f35b3d6000fd5b6102bd816102f4565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6102fd8161035c565b6103385760405162461bcd60e51b815260040180806020018281038252603b815260200180610384603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b15159056fe4973737565207768656e2066696e616c697a696e6720746865207570677261646543616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a265627a7a72315820004cf031cea7eb27ea29deb7e43a92ae9d16256d3103391f30ffb0161610d95364736f6c6343000510003243616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e747261637420616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a265627a7a72315820325b5e2e7cea947baaae85fd1d11a791cef4a25a66cfa1fdcae64187e7ac67ea64736f6c63430005100032
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 ]
[ 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.