More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 767 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Create Std ERC20 | 20453292 | 137 days ago | IN | 0 ETH | 0.00020983 | ||||
Create Std ERC20 | 20200615 | 173 days ago | IN | 0 ETH | 0.00025177 | ||||
Create Std ERC20 | 13854483 | 1093 days ago | IN | 0 ETH | 0.0062967 | ||||
Create Std ERC20 | 12782167 | 1261 days ago | IN | 0 ETH | 0.00644104 | ||||
Create Std ERC20 | 12780494 | 1261 days ago | IN | 0 ETH | 0.00671648 | ||||
Create Std ERC20 | 12779329 | 1261 days ago | IN | 0 ETH | 0.00608333 | ||||
Create Std ERC20 | 12779192 | 1261 days ago | IN | 0 ETH | 0.001192 | ||||
Create Std ERC20 | 12778687 | 1261 days ago | IN | 0 ETH | 0.00734405 | ||||
Create Std ERC20 | 12771497 | 1263 days ago | IN | 0 ETH | 0.00226419 | ||||
Create Std ERC20 | 12771479 | 1263 days ago | IN | 0 ETH | 0.0017209 | ||||
Create Std ERC20 | 12769810 | 1263 days ago | IN | 0 ETH | 0.00314619 | ||||
Create Std ERC20 | 12766664 | 1263 days ago | IN | 0 ETH | 0.00083912 | ||||
Create Std ERC20 | 12761715 | 1264 days ago | IN | 0 ETH | 0.00209806 | ||||
Create Std ERC20 | 12761500 | 1264 days ago | IN | 0 ETH | 0.00170883 | ||||
Create Std ERC20 | 12761492 | 1264 days ago | IN | 0 ETH | 0.00227844 | ||||
Create Std ERC20 | 12760509 | 1264 days ago | IN | 0 ETH | 0.00125898 | ||||
Create Std ERC20 | 12760029 | 1264 days ago | IN | 0 ETH | 0.00377758 | ||||
Create Std ERC20 | 12759834 | 1264 days ago | IN | 0 ETH | 0.00230892 | ||||
Create Std ERC20 | 12759321 | 1264 days ago | IN | 0 ETH | 0.00251868 | ||||
Create Std ERC20 | 12758930 | 1264 days ago | IN | 0 ETH | 0.00090252 | ||||
Create Std ERC20 | 12757923 | 1265 days ago | IN | 0 ETH | 0.00104897 | ||||
Create Std ERC20 | 12757649 | 1265 days ago | IN | 0 ETH | 0.00083922 | ||||
Create Std ERC20 | 12755519 | 1265 days ago | IN | 0 ETH | 0.00272716 | ||||
Create Std ERC20 | 12753456 | 1265 days ago | IN | 0 ETH | 0.00272716 | ||||
Create Std ERC20 | 12753007 | 1265 days ago | IN | 0 ETH | 0.00104945 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
ERC20Factory
Compiler Version
v0.6.9+commit.3e3065ac
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-01-24 */ // File: contracts/lib/CloneFactory.sol /* Copyright 2020 DODO ZOO. SPDX-License-Identifier: Apache-2.0 */ pragma solidity 0.6.9; pragma experimental ABIEncoderV2; interface ICloneFactory { function clone(address prototype) external returns (address proxy); } // introduction of proxy mode design: https://docs.openzeppelin.com/upgrades/2.8/ // minimum implementation of transparent proxy: https://eips.ethereum.org/EIPS/eip-1167 contract CloneFactory is ICloneFactory { function clone(address prototype) external override returns (address proxy) { bytes20 targetBytes = bytes20(prototype); assembly { let clone := mload(0x40) mstore(clone, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000) mstore(add(clone, 0x14), targetBytes) mstore( add(clone, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000 ) proxy := create(0, clone, 0x37) } return proxy; } } // File: contracts/lib/SafeMath.sol /** * @title SafeMath * @author DODO Breeder * * @notice Math operations with safety checks that revert on error */ library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "MUL_ERROR"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "DIVIDING_ERROR"); return a / b; } function divCeil(uint256 a, uint256 b) internal pure returns (uint256) { uint256 quotient = div(a, b); uint256 remainder = a - quotient * b; if (remainder > 0) { return quotient + 1; } else { return quotient; } } function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SUB_ERROR"); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "ADD_ERROR"); return c; } function sqrt(uint256 x) internal pure returns (uint256 y) { uint256 z = x / 2 + 1; y = x; while (z < y) { y = z; z = (x / z + z) / 2; } } } // File: contracts/external/ERC20/InitializableERC20.sol contract InitializableERC20 { using SafeMath for uint256; string public name; uint256 public decimals; string public symbol; uint256 public totalSupply; bool public initialized; mapping(address => uint256) balances; mapping(address => mapping(address => uint256)) internal allowed; event Transfer(address indexed from, address indexed to, uint256 amount); event Approval(address indexed owner, address indexed spender, uint256 amount); function init( address _creator, uint256 _totalSupply, string memory _name, string memory _symbol, uint256 _decimals ) public { require(!initialized, "TOKEN_INITIALIZED"); initialized = true; totalSupply = _totalSupply; balances[_creator] = _totalSupply; name = _name; symbol = _symbol; decimals = _decimals; emit Transfer(address(0), _creator, _totalSupply); } function transfer(address to, uint256 amount) public returns (bool) { require(to != address(0), "TO_ADDRESS_IS_EMPTY"); require(amount <= balances[msg.sender], "BALANCE_NOT_ENOUGH"); balances[msg.sender] = balances[msg.sender].sub(amount); balances[to] = balances[to].add(amount); emit Transfer(msg.sender, to, amount); return true; } function balanceOf(address owner) public view returns (uint256 balance) { return balances[owner]; } function transferFrom( address from, address to, uint256 amount ) public returns (bool) { require(to != address(0), "TO_ADDRESS_IS_EMPTY"); require(amount <= balances[from], "BALANCE_NOT_ENOUGH"); require(amount <= allowed[from][msg.sender], "ALLOWANCE_NOT_ENOUGH"); balances[from] = balances[from].sub(amount); balances[to] = balances[to].add(amount); allowed[from][msg.sender] = allowed[from][msg.sender].sub(amount); emit Transfer(from, to, amount); return true; } function approve(address spender, uint256 amount) public returns (bool) { allowed[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function allowance(address owner, address spender) public view returns (uint256) { return allowed[owner][spender]; } } // File: contracts/lib/InitializableOwnable.sol /** * @title Ownable * @author DODO Breeder * * @notice Ownership related functions */ contract InitializableOwnable { address public _OWNER_; address public _NEW_OWNER_; bool internal _INITIALIZED_; // ============ Events ============ event OwnershipTransferPrepared(address indexed previousOwner, address indexed newOwner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); // ============ Modifiers ============ modifier notInitialized() { require(!_INITIALIZED_, "DODO_INITIALIZED"); _; } modifier onlyOwner() { require(msg.sender == _OWNER_, "NOT_OWNER"); _; } // ============ Functions ============ function initOwner(address newOwner) public notInitialized { _INITIALIZED_ = true; _OWNER_ = newOwner; } function transferOwnership(address newOwner) public onlyOwner { emit OwnershipTransferPrepared(_OWNER_, newOwner); _NEW_OWNER_ = newOwner; } function claimOwnership() public { require(msg.sender == _NEW_OWNER_, "INVALID_CLAIM"); emit OwnershipTransferred(_OWNER_, _NEW_OWNER_); _OWNER_ = _NEW_OWNER_; _NEW_OWNER_ = address(0); } } // File: contracts/external/ERC20/InitializableMintableERC20.sol contract InitializableMintableERC20 is InitializableOwnable { using SafeMath for uint256; string public name; uint256 public decimals; string public symbol; uint256 public totalSupply; mapping(address => uint256) balances; mapping(address => mapping(address => uint256)) internal allowed; event Transfer(address indexed from, address indexed to, uint256 amount); event Approval(address indexed owner, address indexed spender, uint256 amount); event Mint(address indexed user, uint256 value); event Burn(address indexed user, uint256 value); function init( address _creator, uint256 _initSupply, string memory _name, string memory _symbol, uint256 _decimals ) public { initOwner(_creator); name = _name; symbol = _symbol; decimals = _decimals; totalSupply = _initSupply; balances[_creator] = _initSupply; emit Transfer(address(0), _creator, _initSupply); } function transfer(address to, uint256 amount) public returns (bool) { require(to != address(0), "TO_ADDRESS_IS_EMPTY"); require(amount <= balances[msg.sender], "BALANCE_NOT_ENOUGH"); balances[msg.sender] = balances[msg.sender].sub(amount); balances[to] = balances[to].add(amount); emit Transfer(msg.sender, to, amount); return true; } function balanceOf(address owner) public view returns (uint256 balance) { return balances[owner]; } function transferFrom( address from, address to, uint256 amount ) public returns (bool) { require(to != address(0), "TO_ADDRESS_IS_EMPTY"); require(amount <= balances[from], "BALANCE_NOT_ENOUGH"); require(amount <= allowed[from][msg.sender], "ALLOWANCE_NOT_ENOUGH"); balances[from] = balances[from].sub(amount); balances[to] = balances[to].add(amount); allowed[from][msg.sender] = allowed[from][msg.sender].sub(amount); emit Transfer(from, to, amount); return true; } function approve(address spender, uint256 amount) public returns (bool) { allowed[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function allowance(address owner, address spender) public view returns (uint256) { return allowed[owner][spender]; } function mint(address user, uint256 value) external onlyOwner { balances[user] = balances[user].add(value); totalSupply = totalSupply.add(value); emit Mint(user, value); emit Transfer(address(0), user, value); } function burn(address user, uint256 value) external onlyOwner { balances[user] = balances[user].sub(value); totalSupply = totalSupply.sub(value); emit Burn(user, value); emit Transfer(user, address(0), value); } } // File: contracts/Factory/ERC20Factory.sol /** * @title DODO ERC20Factory * @author DODO Breeder * * @notice Help user to create erc20 token */ contract ERC20Factory { // ============ Templates ============ address public immutable _CLONE_FACTORY_; address public immutable _ERC20_TEMPLATE_; address public immutable _MINTABLE_ERC20_TEMPLATE_; // ============ Events ============ event NewERC20(address erc20, address creator, bool isMintable); // ============ Functions ============ constructor( address cloneFactory, address erc20Template, address mintableErc20Template ) public { _CLONE_FACTORY_ = cloneFactory; _ERC20_TEMPLATE_ = erc20Template; _MINTABLE_ERC20_TEMPLATE_ = mintableErc20Template; } function createStdERC20( uint256 totalSupply, string memory name, string memory symbol, uint256 decimals ) external returns (address newERC20) { newERC20 = ICloneFactory(_CLONE_FACTORY_).clone(_ERC20_TEMPLATE_); InitializableERC20(newERC20).init(msg.sender, totalSupply, name, symbol, decimals); emit NewERC20(newERC20, msg.sender, false); } function createMintableERC20( uint256 initSupply, string memory name, string memory symbol, uint256 decimals ) external returns (address newMintableERC20) { newMintableERC20 = ICloneFactory(_CLONE_FACTORY_).clone(_MINTABLE_ERC20_TEMPLATE_); InitializableMintableERC20(newMintableERC20).init( msg.sender, initSupply, name, symbol, decimals ); emit NewERC20(newMintableERC20, msg.sender, true); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"cloneFactory","type":"address"},{"internalType":"address","name":"erc20Template","type":"address"},{"internalType":"address","name":"mintableErc20Template","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"erc20","type":"address"},{"indexed":false,"internalType":"address","name":"creator","type":"address"},{"indexed":false,"internalType":"bool","name":"isMintable","type":"bool"}],"name":"NewERC20","type":"event"},{"inputs":[],"name":"_CLONE_FACTORY_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_ERC20_TEMPLATE_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_MINTABLE_ERC20_TEMPLATE_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"initSupply","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"createMintableERC20","outputs":[{"internalType":"address","name":"newMintableERC20","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"createStdERC20","outputs":[{"internalType":"address","name":"newERC20","type":"address"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60e060405234801561001057600080fd5b5060405161070c38038061070c83398101604081905261002f91610056565b6001600160601b0319606093841b811660805291831b821660a05290911b1660c0526100ba565b60008060006060848603121561006a578283fd5b8351610075816100a2565b6020850151909350610086816100a2565b6040850151909250610097816100a2565b809150509250925092565b6001600160a01b03811681146100b757600080fd5b50565b60805160601c60a05160601c60c05160601c61060b6101016000398060b2528061028952508061011b52806103a252508060ee528061025c52806103c6525061060b6000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80634bd1efca1461005c5780634de3847e1461007a5780637d0df67a1461008d57806397381760146100a0578063eb774d05146100a8575b600080fd5b6100646100b0565b6040516100719190610551565b60405180910390f35b610064610088366004610494565b6100d4565b61006461009b366004610494565b610242565b6100646103a0565b6100646103c4565b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516340925bc760e11b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638124b78e90610143907f000000000000000000000000000000000000000000000000000000000000000090600401610551565b602060405180830381600087803b15801561015d57600080fd5b505af1158015610171573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101959190610466565b604051631f893e4160e21b81529091506001600160a01b03821690637e24f904906101cc9033908990899089908990600401610565565b600060405180830381600087803b1580156101e657600080fd5b505af11580156101fa573d6000803e3d6000fd5b505050507faecaa4e876141d4736ce29c208d03e487e49cc05cae31663c3edaf1fdfbf5ef081336000604051610232939291906105b1565b60405180910390a1949350505050565b6040516340925bc760e11b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638124b78e906102b1907f000000000000000000000000000000000000000000000000000000000000000090600401610551565b602060405180830381600087803b1580156102cb57600080fd5b505af11580156102df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103039190610466565b604051631f893e4160e21b81529091506001600160a01b03821690637e24f9049061033a9033908990899089908990600401610565565b600060405180830381600087803b15801561035457600080fd5b505af1158015610368573d6000803e3d6000fd5b505050507faecaa4e876141d4736ce29c208d03e487e49cc05cae31663c3edaf1fdfbf5ef081336001604051610232939291906105b1565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600082601f8301126103f8578081fd5b813567ffffffffffffffff8082111561040f578283fd5b604051601f8301601f19168101602001828111828210171561042f578485fd5b60405282815292508284830160200186101561044a57600080fd5b8260208601602083013760006020848301015250505092915050565b600060208284031215610477578081fd5b81516001600160a01b038116811461048d578182fd5b9392505050565b600080600080608085870312156104a9578283fd5b84359350602085013567ffffffffffffffff808211156104c7578485fd5b6104d3888389016103e8565b945060408701359150808211156104e8578384fd5b506104f5878288016103e8565b949793965093946060013593505050565b60008151808452815b8181101561052b5760208185018101518683018201520161050f565b8181111561053c5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b600060018060a01b038716825285602083015260a0604083015261058c60a0830186610506565b828103606084015261059e8186610506565b9150508260808301529695505050505050565b6001600160a01b03938416815291909216602082015290151560408201526060019056fea2646970667358221220328127fd84fe50a294eb4ab2a154a7ca559d65abb46228e3c08fc0f69d5ca0ce64736f6c634300060900330000000000000000000000005e5a7b76462e4bdf83aa98795644281bdba80b8800000000000000000000000085351262f7474ebe23ffacd633cf20a491f1325d0000000000000000000000000596908263ef2724fbfbcafa1c983fcd7a629038
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100575760003560e01c80634bd1efca1461005c5780634de3847e1461007a5780637d0df67a1461008d57806397381760146100a0578063eb774d05146100a8575b600080fd5b6100646100b0565b6040516100719190610551565b60405180910390f35b610064610088366004610494565b6100d4565b61006461009b366004610494565b610242565b6100646103a0565b6100646103c4565b7f0000000000000000000000000596908263ef2724fbfbcafa1c983fcd7a62903881565b6040516340925bc760e11b81526000906001600160a01b037f0000000000000000000000005e5a7b76462e4bdf83aa98795644281bdba80b881690638124b78e90610143907f00000000000000000000000085351262f7474ebe23ffacd633cf20a491f1325d90600401610551565b602060405180830381600087803b15801561015d57600080fd5b505af1158015610171573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101959190610466565b604051631f893e4160e21b81529091506001600160a01b03821690637e24f904906101cc9033908990899089908990600401610565565b600060405180830381600087803b1580156101e657600080fd5b505af11580156101fa573d6000803e3d6000fd5b505050507faecaa4e876141d4736ce29c208d03e487e49cc05cae31663c3edaf1fdfbf5ef081336000604051610232939291906105b1565b60405180910390a1949350505050565b6040516340925bc760e11b81526000906001600160a01b037f0000000000000000000000005e5a7b76462e4bdf83aa98795644281bdba80b881690638124b78e906102b1907f0000000000000000000000000596908263ef2724fbfbcafa1c983fcd7a62903890600401610551565b602060405180830381600087803b1580156102cb57600080fd5b505af11580156102df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103039190610466565b604051631f893e4160e21b81529091506001600160a01b03821690637e24f9049061033a9033908990899089908990600401610565565b600060405180830381600087803b15801561035457600080fd5b505af1158015610368573d6000803e3d6000fd5b505050507faecaa4e876141d4736ce29c208d03e487e49cc05cae31663c3edaf1fdfbf5ef081336001604051610232939291906105b1565b7f00000000000000000000000085351262f7474ebe23ffacd633cf20a491f1325d81565b7f0000000000000000000000005e5a7b76462e4bdf83aa98795644281bdba80b8881565b600082601f8301126103f8578081fd5b813567ffffffffffffffff8082111561040f578283fd5b604051601f8301601f19168101602001828111828210171561042f578485fd5b60405282815292508284830160200186101561044a57600080fd5b8260208601602083013760006020848301015250505092915050565b600060208284031215610477578081fd5b81516001600160a01b038116811461048d578182fd5b9392505050565b600080600080608085870312156104a9578283fd5b84359350602085013567ffffffffffffffff808211156104c7578485fd5b6104d3888389016103e8565b945060408701359150808211156104e8578384fd5b506104f5878288016103e8565b949793965093946060013593505050565b60008151808452815b8181101561052b5760208185018101518683018201520161050f565b8181111561053c5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b600060018060a01b038716825285602083015260a0604083015261058c60a0830186610506565b828103606084015261059e8186610506565b9150508260808301529695505050505050565b6001600160a01b03938416815291909216602082015290151560408201526060019056fea2646970667358221220328127fd84fe50a294eb4ab2a154a7ca559d65abb46228e3c08fc0f69d5ca0ce64736f6c63430006090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000005e5a7b76462e4bdf83aa98795644281bdba80b8800000000000000000000000085351262f7474ebe23ffacd633cf20a491f1325d0000000000000000000000000596908263ef2724fbfbcafa1c983fcd7a629038
-----Decoded View---------------
Arg [0] : cloneFactory (address): 0x5E5a7b76462E4BdF83Aa98795644281BdbA80B88
Arg [1] : erc20Template (address): 0x85351262f7474Ebe23FfAcD633cf20A491F1325D
Arg [2] : mintableErc20Template (address): 0x0596908263Ef2724fBfBcAfA1c983FCD7a629038
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000005e5a7b76462e4bdf83aa98795644281bdba80b88
Arg [1] : 00000000000000000000000085351262f7474ebe23ffacd633cf20a491f1325d
Arg [2] : 0000000000000000000000000596908263ef2724fbfbcafa1c983fcd7a629038
Deployed Bytecode Sourcemap
9640:1645:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9810:50;;;:::i;:::-;;;;;;;;;;;;;;;;10319:414;;;;;;;;;:::i;10741:541::-;;;;;;;;;:::i;9762:41::-;;;:::i;9715:40::-;;;:::i;9810:50::-;;;:::o;10319:414::-;10525:54;;-1:-1:-1;;;10525:54:0;;10485:16;;-1:-1:-1;;;;;10539:15:0;10525:36;;;;:54;;10562:16;;10525:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10590:82;;-1:-1:-1;;;10590:82:0;;10514:65;;-1:-1:-1;;;;;;10590:33:0;;;;;:82;;10624:10;;10636:11;;10649:4;;10655:6;;10663:8;;10590:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10688:37;10697:8;10707:10;10719:5;10688:37;;;;;;;;;;;;;;;;;10319:414;;;;;;:::o;10741:541::-;10967:63;;-1:-1:-1;;;10967:63:0;;10911:24;;-1:-1:-1;;;;;10981:15:0;10967:36;;;;:63;;11004:25;;10967:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11041:173;;-1:-1:-1;;;11041:173:0;;10948:82;;-1:-1:-1;;;;;;11041:49:0;;;;;:173;;11105:10;;11130;;11155:4;;11174:6;;11195:8;;11041:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11230:44;11239:16;11257:10;11269:4;11230:44;;;;;;;;;9762:41;;;:::o;9715:40::-;;;:::o;147:442:-1:-;;249:3;242:4;234:6;230:17;226:27;216:2;;-1:-1;;257:12;216:2;304:6;291:20;4652:18;;4644:6;4641:30;4638:2;;;-1:-1;;4674:12;4638:2;4307;4301:9;4747;4728:17;;-1:-1;;4724:33;4333:17;;4815:4;4333:17;4393:34;;;4429:22;;;4390:62;4387:2;;;-1:-1;;4455:12;4387:2;4307;4474:22;397:21;;;317:74;-1:-1;317:74;497:16;;;4815:4;497:16;494:25;-1:-1;491:2;;;532:1;;522:12;491:2;5996:6;4815:4;439:6;435:17;4815:4;473:5;469:16;5973:30;6052:1;4815:4;6043:6;473:5;6034:16;;6027:27;;;;209:380;;;;;734:263;;849:2;837:9;828:7;824:23;820:32;817:2;;;-1:-1;;855:12;817:2;83:13;;-1:-1;;;;;5390:54;;6509:35;;6499:2;;-1:-1;;6548:12;6499:2;907:74;811:186;-1:-1;;;811:186;1004:829;;;;;1179:3;1167:9;1158:7;1154:23;1150:33;1147:2;;;-1:-1;;1186:12;1147:2;1269:22;664:20;1238:63;;1366:2;1355:9;1351:18;1338:32;1390:18;;1382:6;1379:30;1376:2;;;-1:-1;;1412:12;1376:2;1442:63;1497:7;1488:6;1477:9;1473:22;1442:63;;;1432:73;;1570:2;1559:9;1555:18;1542:32;1528:46;;1390:18;1586:6;1583:30;1580:2;;;-1:-1;;1616:12;1580:2;;1646:63;1701:7;1692:6;1681:9;1677:22;1646:63;;;1141:692;;;;-1:-1;1636:73;;1746:2;1785:22;664:20;;-1:-1;;;1141:692;2220:347;;2365:5;4925:12;5082:6;5077:3;5070:19;-1:-1;6141:101;6155:6;6152:1;6149:13;6141:101;;;5119:4;6222:11;;;;;6216:18;6203:11;;;;;6196:39;6170:10;6141:101;;;6257:6;6254:1;6251:13;6248:2;;;-1:-1;5119:4;6313:6;5114:3;6304:16;;6297:27;6248:2;-1:-1;4747:9;6413:14;-1:-1;;6409:28;2523:39;;;;5119:4;2523:39;;2312:255;-1:-1;;2312:255;2694:222;-1:-1;;;;;5390:54;;;;2060:37;;2821:2;2806:18;;2792:124;2923:860;;4652:18;;5401:42;;;5394:5;5390:54;1926:3;1919:58;2675:5;3383:2;3372:9;3368:18;2645:37;3210:3;3420:2;3409:9;3405:18;3398:48;3460:78;3210:3;3199:9;3195:19;3524:6;3460:78;;;3586:9;3580:4;3576:20;3571:2;3560:9;3556:18;3549:48;3611:78;3684:4;3675:6;3611:78;;;3603:86;;;2675:5;3768:3;3757:9;3753:19;2645:37;3181:602;;;;;;;;;3790:448;-1:-1;;;;;5390:54;;;2060:37;;5390:54;;;;4147:2;4132:18;;1919:58;5302:13;;5295:21;4224:2;4209:18;;2174:34;3975:2;3960:18;;3946:292
Swarm Source
ipfs://328127fd84fe50a294eb4ab2a154a7ca559d65abb46228e3c08fc0f69d5ca0ce
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 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.