Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x60806040 | 21086368 | 22 days ago | IN | 0 ETH | 0.02891065 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
GASEVO_20241029_1
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-10-31 */ // SPDX-License-Identifier: MIT // Latest update: 2024-01-22 pragma solidity ^0.8.0; abstract contract Ownable { event OwnershipTransferred(address indexed oldOwner, address indexed newOwner); address public owner; constructor() { owner = msg.sender; } modifier onlyOwner { require(owner == msg.sender, "Not Owner!"); _; } function transferOwnership(address new_) external { address _oldOwner = owner; require(_oldOwner == msg.sender, "Not Owner!"); owner = new_; emit OwnershipTransferred(_oldOwner, new_); } // Proxy Padding bytes32[50] private proxyPadding; } abstract contract Minterable is Ownable { event MinterableSet(address indexed operator, address indexed minter, bool isMinter); mapping(address => bool) public minters; modifier onlyMinter { require(minters[msg.sender], "Not Minter!"); _; } function setMinter(address address_, bool bool_) external onlyOwner { minters[address_] = bool_; emit MinterableSet(msg.sender, address_, bool_); } // Proxy Padding bytes32[50] private proxyPadding; } // The GSM version of G contract ERC721GSM { // ERC721-Standard Events event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); event ApprovalForAll(address indexed owner, address indexed operator, bool approved); // ERC721-Standard Token Info string public name; string public symbol; // ERC721-Standard Constructor constructor(string memory name_, string memory symbol_) { name = name_; symbol = symbol_; } // ERC721G Data Structures struct OwnerStruct { address owner; uint32 lastTransfer; uint32 stakeTimestamp; uint32 totalTimeStaked; } struct BalanceStruct { uint32 balance; uint32 mintedAmount; // Free Bytes } // ERC721G Data Mappings mapping(uint256 => OwnerStruct) public _tokenData; mapping(address => BalanceStruct) public _balanceData; // ERC721-Standard Approval Mappings mapping(uint256 => address) public getApproved; mapping(address => mapping(address => bool)) public isApprovedForAll; // Time Tools by 0xInuarashi function _getBlockTimestampCompressed() internal view returns (uint32) { return uint32(block.timestamp / 10); } // ERC721-Compliant Standard Reads function ownerOf(uint256 tokenId_) public virtual view returns (address) { return _tokenData[tokenId_].owner; } function balanceOf(address address_) public view returns (uint256) { return _balanceData[address_].balance; } // ERC721-Style Internal Functions function _mint(address to_, uint256 tokenId_) internal virtual { require(to_ != address(0), "_mint: target == 0x0"); require(_tokenData[tokenId_].owner == address(0), "_mint: token exists"); uint32 _currentTime = _getBlockTimestampCompressed(); _tokenData[tokenId_] = OwnerStruct(to_, _currentTime, 0, 0); unchecked { _balanceData[to_].balance++; _balanceData[to_].mintedAmount++; // Increment Total Supply totalSupply++; } emit Transfer(address(0), to_, tokenId_); } function _transfer(address from_, address to_, uint256 tokenId_) internal virtual { require(from_ == ownerOf(tokenId_), "_transfer from_ != ownerOf"); require(to_ != address(0), "_transfer to_ == 0x0"); delete getApproved[tokenId_]; _tokenData[tokenId_].owner = to_; _tokenData[tokenId_].lastTransfer = _getBlockTimestampCompressed(); unchecked { _balanceData[from_].balance--; _balanceData[to_].balance++; } emit Transfer(from_, to_, tokenId_); } // ERC721-Standard Non-Modified Functions function _isApprovedOrOwner(address spender_, uint256 tokenId_) internal view virtual returns (bool) { address _owner = ownerOf(tokenId_); return (_owner == spender_ || getApproved[tokenId_] == spender_ || isApprovedForAll[_owner][spender_]); } function _approve(address to_, uint256 tokenId_) internal virtual { getApproved[tokenId_] = to_; emit Approval(ownerOf(tokenId_), to_, tokenId_); } function approve(address to_, uint256 tokenId_) public virtual { address _owner = ownerOf(tokenId_); require(_owner == msg.sender || isApprovedForAll[_owner][msg.sender], "ERC721G: approve not authorized"); _approve(to_, tokenId_); } function _setApprovalForAll(address owner_, address operator_, bool approved_) internal virtual { isApprovedForAll[owner_][operator_] = approved_; emit ApprovalForAll(owner_, operator_, approved_); } function setApprovalForAll(address operator_, bool approved_) public virtual { _setApprovalForAll(msg.sender, operator_, approved_); } function _exists(uint256 tokenId_) internal virtual view returns (bool) { return ownerOf(tokenId_) != address(0); } function transferFrom(address from_, address to_, uint256 tokenId_) public virtual { require(_isApprovedOrOwner(msg.sender, tokenId_), "ERC721G: transferFrom unauthorized"); _transfer(from_, to_, tokenId_); } function safeTransferFrom(address from_, address to_, uint256 tokenId_, bytes memory data_) public virtual { transferFrom(from_, to_, tokenId_); if (to_.code.length != 0) { (, bytes memory _returned) = to_.call(abi.encodeWithSelector( 0x150b7a02, msg.sender, from_, tokenId_, data_)); bytes4 _selector = abi.decode(_returned, (bytes4)); require(_selector == 0x150b7a02, "ERC721G: safeTransferFrom to_ non-ERC721Receivable!"); } } function safeTransferFrom(address from_, address to_, uint256 tokenId_) public virtual { safeTransferFrom(from_, to_, tokenId_, ""); } function supportsInterface(bytes4 iid_) public virtual view returns (bool) { return iid_ == 0x01ffc9a7 || iid_ == 0x80ac58cd || iid_ == 0x5b5e139f || iid_ == 0x7f5828d0; } function _toString(uint256 value_) internal pure returns (string memory) { if (value_ == 0) { return "0"; } uint256 _iterate = value_; uint256 _digits; while (_iterate != 0) { _digits++; _iterate /= 10; } bytes memory _buffer = new bytes(_digits); while (value_ != 0) { _digits--; _buffer[_digits] = bytes1(uint8( 48 + uint256(value_ % 10 ))); value_ /= 10; } return string(_buffer); } function tokenURI(uint256 tokenId_) public virtual view returns (string memory) { return string(abi.encodePacked( "https://gangsterallstar.nonfungiblecdn.com/gangsterallstar/metadata/", _toString(tokenId_) )); } // ERC721-Additional NFT Info uint256 public totalSupply; // Proxy Padding bytes32[49] private proxyPadding; } contract ERC721GSMStake is ERC721GSM { // First, we do constructor-compliant to ERC721GSM constructor(string memory name_, string memory symbol_) ERC721GSM(name_, symbol_) {} // Then, we create some additional helper functions for staking function stakingAddress() public view returns (address) { return address(this); } function _compressTimestamp(uint256 timestamp_) internal pure returns (uint32) { return uint32(timestamp_ / 10); } function _expandTimestamp(uint32 timestamp_) internal pure returns (uint256) { return uint256(timestamp_ * 10); } function _getTokenDataOf(uint256 tokenId_) internal view returns (OwnerStruct memory) { return _tokenData[tokenId_]; } function _trueOwnerOf(uint256 tokenId_) internal view returns (address) { return _getTokenDataOf(tokenId_).owner; } // Next, we override the required functions for Staking functionality function ownerOf(uint256 tokenId_) public view override returns (address) { OwnerStruct memory _OwnerStruct = _getTokenDataOf(tokenId_); return _OwnerStruct.stakeTimestamp == 0 ? _OwnerStruct.owner : stakingAddress(); } // Finally, we add additional functions to enable staking function _mintAndStake(address to_, uint256 tokenId_) internal { require(to_ != address(0), "_mint: target == 0x0"); require(_tokenData[tokenId_].owner == address(0), "_mint: token exists"); uint32 _currentTime = _getBlockTimestampCompressed(); _tokenData[tokenId_] = OwnerStruct(to_, _currentTime, _currentTime, 0); unchecked { _balanceData[stakingAddress()].balance++; _balanceData[to_].mintedAmount++; // Increment Total Supply totalSupply++; } emit Transfer(address(0), to_, tokenId_); emit Transfer(to_, stakingAddress(), tokenId_); } function _setStakeTimestamp(uint256 tokenId_, uint256 timestamp_) internal returns (address) { OwnerStruct memory _OwnerStruct = _getTokenDataOf(tokenId_); address _owner = _OwnerStruct.owner; uint32 _stakeTimestamp = _OwnerStruct.stakeTimestamp; require(_owner != address(0), "_setStakeTimestamp: token does not exist"); if (timestamp_ > 0) { require(_stakeTimestamp == 0, "_setStakeTimestamp: already staked"); unchecked { // Rebalance the balances of owner and stakingAddress _balanceData[_owner].balance--; _balanceData[stakingAddress()].balance++; } emit Transfer(_owner, stakingAddress(), tokenId_); } else { require(_stakeTimestamp != 0, "_setStakeTimestamp: already unstaked"); uint32 _timeStaked = _getBlockTimestampCompressed() - _stakeTimestamp; _tokenData[tokenId_].totalTimeStaked += _timeStaked; unchecked { _balanceData[stakingAddress()].balance--; _balanceData[_owner].balance++; } emit Transfer(stakingAddress(), _owner, tokenId_); } _tokenData[tokenId_].stakeTimestamp = _compressTimestamp(timestamp_); return _owner; } function _stake(uint256 tokenId_) internal virtual returns (address) { return _setStakeTimestamp(tokenId_, block.timestamp); } function _unstake(uint256 tokenId_) internal virtual returns (address) { return _setStakeTimestamp(tokenId_, 0); } // Proxy Padding bytes32[50] private proxyPadding; } contract GASEVO_20241029_1 is ERC721GSMStake, Minterable { constructor() ERC721GSMStake("Gangster All Star: Gangsters Evolution", "GAS:GANG") { proxyInitialize(msg.sender); } // Proxy Initializer Logic bool proxyIsInitialized; function proxyInitialize(address newOwner) public { require(!proxyIsInitialized); proxyIsInitialized = true; // Hardcode owner = newOwner; name = "Gangster All Star: Gangsters Evolution"; symbol = "GAS:GANG"; } function setTotalSupply(uint256 totalSupply_) external onlyOwner { totalSupply = totalSupply_; } function mintAsController(address to_, uint256 tokenId_) external onlyMinter { _mint(to_, tokenId_); } // Admin Functions (added at 2024-01-22) function adminTransferFrom(address from_, address to_, uint256[] calldata tokenIds_) external onlyOwner { for (uint256 i; i < tokenIds_.length;) { _transfer(from_, to_, tokenIds_[i]); unchecked { ++i; } } } // Here, we need to jam transfers and turn the token into SBT function _transfer(address, address, uint256) internal virtual override(ERC721GSM) { revert("Soulbound"); } // Proxy Padding bytes32[50] private proxyPadding; }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"minter","type":"address"},{"indexed":false,"internalType":"bool","name":"isMinter","type":"bool"}],"name":"MinterableSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balanceData","outputs":[{"internalType":"uint32","name":"balance","type":"uint32"},{"internalType":"uint32","name":"mintedAmount","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_tokenData","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint32","name":"lastTransfer","type":"uint32"},{"internalType":"uint32","name":"stakeTimestamp","type":"uint32"},{"internalType":"uint32","name":"totalTimeStaked","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from_","type":"address"},{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256[]","name":"tokenIds_","type":"uint256[]"}],"name":"adminTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"mintAsController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"minters","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"proxyInitialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from_","type":"address"},{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from_","type":"address"},{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"tokenId_","type":"uint256"},{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator_","type":"address"},{"internalType":"bool","name":"approved_","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"},{"internalType":"bool","name":"bool_","type":"bool"}],"name":"setMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"totalSupply_","type":"uint256"}],"name":"setTotalSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"iid_","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from_","type":"address"},{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"new_","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561000f575f80fd5b50604051806060016040528060268152602001611857602691396040805180820190915260088152674741533a47414e4760c01b602082015281815f61005583826101b1565b50600161006282826101b1565b5050606a80546001600160a01b03191633908117909155610086935091505061008b565b61026b565b60d05460ff161561009a575f80fd5b60d0805460ff19166001179055606a80546001600160a01b0383166001600160a01b03199091161790556040805160608101909152602680825261185760208301395f906100e890826101b1565b506040805180820190915260088152674741533a47414e4760c01b602082015260019061011590826101b1565b5050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061014157607f821691505b60208210810361015f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101ac57805f5260205f20601f840160051c8101602085101561018a5750805b601f840160051c820191505b818110156101a9575f8155600101610196565b50505b505050565b81516001600160401b038111156101ca576101ca610119565b6101de816101d8845461012d565b84610165565b6020601f821160018114610210575f83156101f95750848201515b5f19600385901b1c1916600184901b1784556101a9565b5f84815260208120601f198516915b8281101561023f578785015182556020948501946001909201910161021f565b508482101561025c57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6115df806102785f395ff3fe608060405234801561000f575f80fd5b506004361061016d575f3560e01c80638da5cb5b116100d9578063ca7ea52111610093578063e985e9c51161006e578063e985e9c5146103f7578063f2fde38b14610424578063f46eccc414610437578063f7ea7a3d14610459575f80fd5b8063ca7ea521146103cb578063cf456ae7146103de578063d7b4be24146103f1575f80fd5b80638da5cb5b1461036457806395d89b4114610377578063a22cb4651461037f578063b88d4fde14610392578063bd5404a8146103a5578063c87b56dd146103b8575f80fd5b806323b872dd1161012a57806323b872dd1461022d5780632c2cdd601461024057806342842e0e146102c25780635266069d146102d55780636352211e1461032357806370a0823114610336575f80fd5b806301ffc9a71461017157806306fdde0314610199578063081812fc146101ae578063095ea7b3146101ee578063153db98a1461020357806318160ddd14610216575b5f80fd5b61018461017f366004610fb9565b61046c565b60405190151581526020015b60405180910390f35b6101a16104d8565b6040516101909190611002565b6101d66101bc366004611014565b60046020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610190565b6102016101fc366004611046565b610563565b005b610201610211366004611046565b610608565b61021f60065481565b604051908152602001610190565b61020161023b36600461106e565b610662565b61028c61024e366004611014565b60026020525f90815260409020546001600160a01b0381169063ffffffff600160a01b8204811691600160c01b8104821691600160e01b9091041684565b604080516001600160a01b03909516855263ffffffff938416602086015291831691840191909152166060820152608001610190565b6102016102d036600461106e565b6106ce565b6103066102e33660046110a8565b60036020525f908152604090205463ffffffff8082169164010000000090041682565b6040805163ffffffff938416815292909116602083015201610190565b6101d6610331366004611014565b6106e8565b61021f6103443660046110a8565b6001600160a01b03165f9081526003602052604090205463ffffffff1690565b606a546101d6906001600160a01b031681565b6101a1610775565b61020161038d3660046110c1565b610782565b6102016103a036600461110e565b61078d565b6102016103b33660046110a8565b6108e6565b6101a16103c6366004611014565b610970565b6102016103d93660046111eb565b6109a1565b6102016103ec3660046110c1565b610a07565b306101d6565b610184610405366004611278565b600560209081525f928352604080842090915290825290205460ff1681565b6102016104323660046110a8565b610a91565b6101846104453660046110a8565b609d6020525f908152604090205460ff1681565b610201610467366004611014565b610b0c565b5f6301ffc9a760e01b6001600160e01b03198316148061049c57506380ac58cd60e01b6001600160e01b03198316145b806104b75750635b5e139f60e01b6001600160e01b03198316145b806104d257506307f5828d60e41b6001600160e01b03198316145b92915050565b5f80546104e4906112a9565b80601f0160208091040260200160405190810160405280929190818152602001828054610510906112a9565b801561055b5780601f106105325761010080835404028352916020019161055b565b820191905f5260205f20905b81548152906001019060200180831161053e57829003601f168201915b505050505081565b5f61056d826106e8565b90506001600160a01b0381163314806105a857506001600160a01b0381165f90815260056020908152604080832033845290915290205460ff165b6105f95760405162461bcd60e51b815260206004820152601f60248201527f455243373231473a20617070726f7665206e6f7420617574686f72697a65640060448201526064015b60405180910390fd5b6106038383610b3b565b505050565b335f908152609d602052604090205460ff166106545760405162461bcd60e51b815260206004820152600b60248201526a4e6f74204d696e7465722160a81b60448201526064016105f0565b61065e8282610ba8565b5050565b61066c3382610d76565b6106c35760405162461bcd60e51b815260206004820152602260248201527f455243373231473a207472616e7366657246726f6d20756e617574686f72697a604482015261195960f21b60648201526084016105f0565b610603838383610df2565b61060383838360405180602001604052805f81525061078d565b60408051608080820183525f808352602080840182905283850182905260609384018290528582526002815284822085519384018652546001600160a01b038116845263ffffffff600160a01b8204811692850192909252600160c01b81048216958401869052600160e01b9004169282019290925290911561076b573061076e565b80515b9392505050565b600180546104e4906112a9565b61065e338383610e26565b610798848484610662565b6001600160a01b0383163b156108e0575f836001600160a01b031663150b7a02338786866040516024016107cf94939291906112e1565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516108089190611334565b5f604051808303815f865af19150503d805f8114610841576040519150601f19603f3d011682016040523d82523d5f602084013e610846565b606091505b509150505f8180602001905181019061085f919061133f565b9050630a85bd0160e11b6001600160e01b03198216146108dd5760405162461bcd60e51b815260206004820152603360248201527f455243373231473a20736166655472616e7366657246726f6d20746f5f206e6f6044820152726e2d45524337323152656365697661626c652160681b60648201526084016105f0565b50505b50505050565b60d05460ff16156108f5575f80fd5b60d0805460ff19166001179055606a80546001600160a01b0383166001600160a01b03199091161790556040805160608101909152602680825261158460208301395f90610943908261139e565b506040805180820190915260088152674741533a47414e4760c01b602082015260019061065e908261139e565b606061097b82610e92565b60405160200161098b9190611459565b6040516020818303038152906040529050919050565b606a546001600160a01b031633146109cb5760405162461bcd60e51b81526004016105f0906114bd565b5f5b81811015610a00576109f885858585858181106109ec576109ec6114e1565b90506020020135610df2565b6001016109cd565b5050505050565b606a546001600160a01b03163314610a315760405162461bcd60e51b81526004016105f0906114bd565b6001600160a01b0382165f818152609d6020908152604091829020805460ff1916851515908117909155915191825233917fe0ae214c70c4ca946800c76d1eed7b46d1fb9770b2e5c1aa1218cb46b4d7f8f2910160405180910390a35050565b606a546001600160a01b0316338114610abc5760405162461bcd60e51b81526004016105f0906114bd565b606a80546001600160a01b0319166001600160a01b0384811691821790925560405190918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b606a546001600160a01b03163314610b365760405162461bcd60e51b81526004016105f0906114bd565b600655565b5f81815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610b6f826106e8565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6001600160a01b038216610bf55760405162461bcd60e51b815260206004820152601460248201527305f6d696e743a20746172676574203d3d203078360641b60448201526064016105f0565b5f818152600260205260409020546001600160a01b031615610c4f5760405162461bcd60e51b81526020600482015260136024820152725f6d696e743a20746f6b656e2065786973747360681b60448201526064016105f0565b5f610c58610f90565b604080516080810182526001600160a01b0380871680835263ffffffff80861660208086019182525f868801818152606088018281528c835260028452898320985189549551925191518716600160e01b026001600160e01b03928816600160c01b02929092166001600160c01b03938816600160a01b026001600160c01b0319909716919099161794909417169590951791909117909455818352600390935283822080546401000000008186166001908101871663ffffffff19841681178390048816820190971690910267ffffffffffffffff1990921690951717905560068054909301909255915192935084929091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4505050565b5f80610d81836106e8565b9050836001600160a01b0316816001600160a01b03161480610dbb57505f838152600460205260409020546001600160a01b038581169116145b80610dea57506001600160a01b038082165f9081526005602090815260408083209388168352929052205460ff165b949350505050565b60405162461bcd60e51b815260206004820152600960248201526814dbdd5b189bdd5b9960ba1b60448201526064016105f0565b6001600160a01b038381165f81815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6060815f03610eb85750506040805180820190915260018152600360fc1b602082015290565b815f5b8115610ee15780610ecb81611509565b9150610eda9050600a83611535565b9150610ebb565b5f8167ffffffffffffffff811115610efb57610efb6110fa565b6040519080825280601f01601f191660200182016040528015610f25576020820181803683370190505b5090505b8415610dea5781610f3981611548565b9250610f489050600a8661155d565b610f53906030611570565b60f81b818381518110610f6857610f686114e1565b60200101906001600160f81b03191690815f1a905350610f89600a86611535565b9450610f29565b5f610f9c600a42611535565b905090565b6001600160e01b031981168114610fb6575f80fd5b50565b5f60208284031215610fc9575f80fd5b813561076e81610fa1565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61076e6020830184610fd4565b5f60208284031215611024575f80fd5b5035919050565b80356001600160a01b0381168114611041575f80fd5b919050565b5f8060408385031215611057575f80fd5b6110608361102b565b946020939093013593505050565b5f805f60608486031215611080575f80fd5b6110898461102b565b92506110976020850161102b565b929592945050506040919091013590565b5f602082840312156110b8575f80fd5b61076e8261102b565b5f80604083850312156110d2575f80fd5b6110db8361102b565b9150602083013580151581146110ef575f80fd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f805f8060808587031215611121575f80fd5b61112a8561102b565b93506111386020860161102b565b925060408501359150606085013567ffffffffffffffff81111561115a575f80fd5b8501601f8101871361116a575f80fd5b803567ffffffffffffffff811115611184576111846110fa565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156111b3576111b36110fa565b6040528181528282016020018910156111ca575f80fd5b816020840160208301375f6020838301015280935050505092959194509250565b5f805f80606085870312156111fe575f80fd5b6112078561102b565b93506112156020860161102b565b9250604085013567ffffffffffffffff811115611230575f80fd5b8501601f81018713611240575f80fd5b803567ffffffffffffffff811115611256575f80fd5b8760208260051b840101111561126a575f80fd5b949793965060200194505050565b5f8060408385031215611289575f80fd5b6112928361102b565b91506112a06020840161102b565b90509250929050565b600181811c908216806112bd57607f821691505b6020821081036112db57634e487b7160e01b5f52602260045260245ffd5b50919050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061131390830184610fd4565b9695505050505050565b5f81518060208401855e5f93019283525090919050565b5f61076e828461131d565b5f6020828403121561134f575f80fd5b815161076e81610fa1565b601f82111561060357805f5260205f20601f840160051c8101602085101561137f5750805b601f840160051c820191505b81811015610a00575f815560010161138b565b815167ffffffffffffffff8111156113b8576113b86110fa565b6113cc816113c684546112a9565b8461135a565b6020601f8211600181146113fe575f83156113e75750848201515b5f19600385901b1c1916600184901b178455610a00565b5f84815260208120601f198516915b8281101561142d578785015182556020948501946001909201910161140d565b508482101561144a57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b7f68747470733a2f2f67616e6773746572616c6c737461722e6e6f6e66756e676981527f626c6563646e2e636f6d2f67616e6773746572616c6c737461722f6d657461646020820152636174612f60e01b60408201525f61076e604483018461131d565b6020808252600a90820152694e6f74204f776e65722160b01b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f6001820161151a5761151a6114f5565b5060010190565b634e487b7160e01b5f52601260045260245ffd5b5f8261154357611543611521565b500490565b5f81611556576115566114f5565b505f190190565b5f8261156b5761156b611521565b500690565b808201808211156104d2576104d26114f556fe47616e677374657220416c6c20537461723a2047616e6773746572732045766f6c7574696f6ea26469706673582212207c6ee49d403ef9917a50bb7421eef2d33eeb4aa9008eb150c498145d496b247264736f6c634300081a003347616e677374657220416c6c20537461723a2047616e6773746572732045766f6c7574696f6e
Deployed Bytecode
0x608060405234801561000f575f80fd5b506004361061016d575f3560e01c80638da5cb5b116100d9578063ca7ea52111610093578063e985e9c51161006e578063e985e9c5146103f7578063f2fde38b14610424578063f46eccc414610437578063f7ea7a3d14610459575f80fd5b8063ca7ea521146103cb578063cf456ae7146103de578063d7b4be24146103f1575f80fd5b80638da5cb5b1461036457806395d89b4114610377578063a22cb4651461037f578063b88d4fde14610392578063bd5404a8146103a5578063c87b56dd146103b8575f80fd5b806323b872dd1161012a57806323b872dd1461022d5780632c2cdd601461024057806342842e0e146102c25780635266069d146102d55780636352211e1461032357806370a0823114610336575f80fd5b806301ffc9a71461017157806306fdde0314610199578063081812fc146101ae578063095ea7b3146101ee578063153db98a1461020357806318160ddd14610216575b5f80fd5b61018461017f366004610fb9565b61046c565b60405190151581526020015b60405180910390f35b6101a16104d8565b6040516101909190611002565b6101d66101bc366004611014565b60046020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610190565b6102016101fc366004611046565b610563565b005b610201610211366004611046565b610608565b61021f60065481565b604051908152602001610190565b61020161023b36600461106e565b610662565b61028c61024e366004611014565b60026020525f90815260409020546001600160a01b0381169063ffffffff600160a01b8204811691600160c01b8104821691600160e01b9091041684565b604080516001600160a01b03909516855263ffffffff938416602086015291831691840191909152166060820152608001610190565b6102016102d036600461106e565b6106ce565b6103066102e33660046110a8565b60036020525f908152604090205463ffffffff8082169164010000000090041682565b6040805163ffffffff938416815292909116602083015201610190565b6101d6610331366004611014565b6106e8565b61021f6103443660046110a8565b6001600160a01b03165f9081526003602052604090205463ffffffff1690565b606a546101d6906001600160a01b031681565b6101a1610775565b61020161038d3660046110c1565b610782565b6102016103a036600461110e565b61078d565b6102016103b33660046110a8565b6108e6565b6101a16103c6366004611014565b610970565b6102016103d93660046111eb565b6109a1565b6102016103ec3660046110c1565b610a07565b306101d6565b610184610405366004611278565b600560209081525f928352604080842090915290825290205460ff1681565b6102016104323660046110a8565b610a91565b6101846104453660046110a8565b609d6020525f908152604090205460ff1681565b610201610467366004611014565b610b0c565b5f6301ffc9a760e01b6001600160e01b03198316148061049c57506380ac58cd60e01b6001600160e01b03198316145b806104b75750635b5e139f60e01b6001600160e01b03198316145b806104d257506307f5828d60e41b6001600160e01b03198316145b92915050565b5f80546104e4906112a9565b80601f0160208091040260200160405190810160405280929190818152602001828054610510906112a9565b801561055b5780601f106105325761010080835404028352916020019161055b565b820191905f5260205f20905b81548152906001019060200180831161053e57829003601f168201915b505050505081565b5f61056d826106e8565b90506001600160a01b0381163314806105a857506001600160a01b0381165f90815260056020908152604080832033845290915290205460ff165b6105f95760405162461bcd60e51b815260206004820152601f60248201527f455243373231473a20617070726f7665206e6f7420617574686f72697a65640060448201526064015b60405180910390fd5b6106038383610b3b565b505050565b335f908152609d602052604090205460ff166106545760405162461bcd60e51b815260206004820152600b60248201526a4e6f74204d696e7465722160a81b60448201526064016105f0565b61065e8282610ba8565b5050565b61066c3382610d76565b6106c35760405162461bcd60e51b815260206004820152602260248201527f455243373231473a207472616e7366657246726f6d20756e617574686f72697a604482015261195960f21b60648201526084016105f0565b610603838383610df2565b61060383838360405180602001604052805f81525061078d565b60408051608080820183525f808352602080840182905283850182905260609384018290528582526002815284822085519384018652546001600160a01b038116845263ffffffff600160a01b8204811692850192909252600160c01b81048216958401869052600160e01b9004169282019290925290911561076b573061076e565b80515b9392505050565b600180546104e4906112a9565b61065e338383610e26565b610798848484610662565b6001600160a01b0383163b156108e0575f836001600160a01b031663150b7a02338786866040516024016107cf94939291906112e1565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516108089190611334565b5f604051808303815f865af19150503d805f8114610841576040519150601f19603f3d011682016040523d82523d5f602084013e610846565b606091505b509150505f8180602001905181019061085f919061133f565b9050630a85bd0160e11b6001600160e01b03198216146108dd5760405162461bcd60e51b815260206004820152603360248201527f455243373231473a20736166655472616e7366657246726f6d20746f5f206e6f6044820152726e2d45524337323152656365697661626c652160681b60648201526084016105f0565b50505b50505050565b60d05460ff16156108f5575f80fd5b60d0805460ff19166001179055606a80546001600160a01b0383166001600160a01b03199091161790556040805160608101909152602680825261158460208301395f90610943908261139e565b506040805180820190915260088152674741533a47414e4760c01b602082015260019061065e908261139e565b606061097b82610e92565b60405160200161098b9190611459565b6040516020818303038152906040529050919050565b606a546001600160a01b031633146109cb5760405162461bcd60e51b81526004016105f0906114bd565b5f5b81811015610a00576109f885858585858181106109ec576109ec6114e1565b90506020020135610df2565b6001016109cd565b5050505050565b606a546001600160a01b03163314610a315760405162461bcd60e51b81526004016105f0906114bd565b6001600160a01b0382165f818152609d6020908152604091829020805460ff1916851515908117909155915191825233917fe0ae214c70c4ca946800c76d1eed7b46d1fb9770b2e5c1aa1218cb46b4d7f8f2910160405180910390a35050565b606a546001600160a01b0316338114610abc5760405162461bcd60e51b81526004016105f0906114bd565b606a80546001600160a01b0319166001600160a01b0384811691821790925560405190918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b606a546001600160a01b03163314610b365760405162461bcd60e51b81526004016105f0906114bd565b600655565b5f81815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610b6f826106e8565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6001600160a01b038216610bf55760405162461bcd60e51b815260206004820152601460248201527305f6d696e743a20746172676574203d3d203078360641b60448201526064016105f0565b5f818152600260205260409020546001600160a01b031615610c4f5760405162461bcd60e51b81526020600482015260136024820152725f6d696e743a20746f6b656e2065786973747360681b60448201526064016105f0565b5f610c58610f90565b604080516080810182526001600160a01b0380871680835263ffffffff80861660208086019182525f868801818152606088018281528c835260028452898320985189549551925191518716600160e01b026001600160e01b03928816600160c01b02929092166001600160c01b03938816600160a01b026001600160c01b0319909716919099161794909417169590951791909117909455818352600390935283822080546401000000008186166001908101871663ffffffff19841681178390048816820190971690910267ffffffffffffffff1990921690951717905560068054909301909255915192935084929091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4505050565b5f80610d81836106e8565b9050836001600160a01b0316816001600160a01b03161480610dbb57505f838152600460205260409020546001600160a01b038581169116145b80610dea57506001600160a01b038082165f9081526005602090815260408083209388168352929052205460ff165b949350505050565b60405162461bcd60e51b815260206004820152600960248201526814dbdd5b189bdd5b9960ba1b60448201526064016105f0565b6001600160a01b038381165f81815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6060815f03610eb85750506040805180820190915260018152600360fc1b602082015290565b815f5b8115610ee15780610ecb81611509565b9150610eda9050600a83611535565b9150610ebb565b5f8167ffffffffffffffff811115610efb57610efb6110fa565b6040519080825280601f01601f191660200182016040528015610f25576020820181803683370190505b5090505b8415610dea5781610f3981611548565b9250610f489050600a8661155d565b610f53906030611570565b60f81b818381518110610f6857610f686114e1565b60200101906001600160f81b03191690815f1a905350610f89600a86611535565b9450610f29565b5f610f9c600a42611535565b905090565b6001600160e01b031981168114610fb6575f80fd5b50565b5f60208284031215610fc9575f80fd5b813561076e81610fa1565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61076e6020830184610fd4565b5f60208284031215611024575f80fd5b5035919050565b80356001600160a01b0381168114611041575f80fd5b919050565b5f8060408385031215611057575f80fd5b6110608361102b565b946020939093013593505050565b5f805f60608486031215611080575f80fd5b6110898461102b565b92506110976020850161102b565b929592945050506040919091013590565b5f602082840312156110b8575f80fd5b61076e8261102b565b5f80604083850312156110d2575f80fd5b6110db8361102b565b9150602083013580151581146110ef575f80fd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f805f8060808587031215611121575f80fd5b61112a8561102b565b93506111386020860161102b565b925060408501359150606085013567ffffffffffffffff81111561115a575f80fd5b8501601f8101871361116a575f80fd5b803567ffffffffffffffff811115611184576111846110fa565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156111b3576111b36110fa565b6040528181528282016020018910156111ca575f80fd5b816020840160208301375f6020838301015280935050505092959194509250565b5f805f80606085870312156111fe575f80fd5b6112078561102b565b93506112156020860161102b565b9250604085013567ffffffffffffffff811115611230575f80fd5b8501601f81018713611240575f80fd5b803567ffffffffffffffff811115611256575f80fd5b8760208260051b840101111561126a575f80fd5b949793965060200194505050565b5f8060408385031215611289575f80fd5b6112928361102b565b91506112a06020840161102b565b90509250929050565b600181811c908216806112bd57607f821691505b6020821081036112db57634e487b7160e01b5f52602260045260245ffd5b50919050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061131390830184610fd4565b9695505050505050565b5f81518060208401855e5f93019283525090919050565b5f61076e828461131d565b5f6020828403121561134f575f80fd5b815161076e81610fa1565b601f82111561060357805f5260205f20601f840160051c8101602085101561137f5750805b601f840160051c820191505b81811015610a00575f815560010161138b565b815167ffffffffffffffff8111156113b8576113b86110fa565b6113cc816113c684546112a9565b8461135a565b6020601f8211600181146113fe575f83156113e75750848201515b5f19600385901b1c1916600184901b178455610a00565b5f84815260208120601f198516915b8281101561142d578785015182556020948501946001909201910161140d565b508482101561144a57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b7f68747470733a2f2f67616e6773746572616c6c737461722e6e6f6e66756e676981527f626c6563646e2e636f6d2f67616e6773746572616c6c737461722f6d657461646020820152636174612f60e01b60408201525f61076e604483018461131d565b6020808252600a90820152694e6f74204f776e65722160b01b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f6001820161151a5761151a6114f5565b5060010190565b634e487b7160e01b5f52601260045260245ffd5b5f8261154357611543611521565b500490565b5f81611556576115566114f5565b505f190190565b5f8261156b5761156b611521565b500690565b808201808211156104d2576104d26114f556fe47616e677374657220416c6c20537461723a2047616e6773746572732045766f6c7574696f6ea26469706673582212207c6ee49d403ef9917a50bb7421eef2d33eeb4aa9008eb150c498145d496b247264736f6c634300081a0033
Deployed Bytecode Sourcemap
11242:1355:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6420:241;;;;;;:::i;:::-;;:::i;:::-;;;565:14:1;;558:22;540:41;;528:2;513:18;6420:241:0;;;;;;;;1557:18;;;:::i;:::-;;;;;;;:::i;2261:46::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;2261:46:0;;;;;;-1:-1:-1;;;;;1506:32:1;;;1488:51;;1476:2;1461:18;2261:46:0;1342:203:1;4611:300:0;;;;;;:::i;:::-;;:::i;:::-;;11910:116;;;;;;:::i;:::-;;:::i;7438:26::-;;;;;;;;;2179:25:1;;;2167:2;2152:18;7438:26:0;2033:177:1;5458:244:0;;;;;;:::i;:::-;;:::i;2101:49::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;2101:49:0;;;;-1:-1:-1;;;2101:49:0;;;;;-1:-1:-1;;;2101:49:0;;;;;-1:-1:-1;;;2101:49:0;;;;;;;;;;-1:-1:-1;;;;;2837:32:1;;;2819:51;;2918:10;2906:23;;;2901:2;2886:18;;2879:51;2966:23;;;2946:18;;;2939:51;;;;3026:23;3021:2;3006:18;;2999:51;2806:3;2791:19;2101:49:0;2594:462:1;6254:154:0;;;;;;:::i;:::-;;:::i;2157:53::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;3452:10:1;3440:23;;;3422:42;;3500:23;;;;3495:2;3480:18;;3473:51;3395:18;2157:53:0;3252:278:1;8521:242:0;;;;;;:::i;:::-;;:::i;2729:123::-;;;;;;:::i;:::-;-1:-1:-1;;;;;2814:22:0;2787:7;2814:22;;;:12;:22;;;;;:30;;;;2729:123;208:20;;;;;-1:-1:-1;;;;;208:20:0;;;1582;;;:::i;5157:148::-;;;;;;:::i;:::-;;:::i;5708:540::-;;;;;;:::i;:::-;;:::i;11505:279::-;;;;;;:::i;:::-;;:::i;7135:260::-;;;;;;:::i;:::-;;:::i;12080:255::-;;;;;;:::i;:::-;;:::i;912:170::-;;;;;;:::i;:::-;;:::i;7797:95::-;7879:4;7797:95;;2314:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;354:229;;;;;;:::i;:::-;;:::i;789:39::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11792:110;;;;;;:::i;:::-;;:::i;6420:241::-;6489:4;-1:-1:-1;;;;;;;;;6514:18:0;;;;:58;;-1:-1:-1;;;;;;;;;;6554:18:0;;;6514:58;:98;;;-1:-1:-1;;;;;;;;;;6594:18:0;;;6514:98;:138;;;-1:-1:-1;;;;;;;;;;6634:18:0;;;6514:138;6506:146;6420:241;-1:-1:-1;;6420:241:0:o;1557:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4611:300::-;4685:14;4702:17;4710:8;4702:7;:17::i;:::-;4685:34;-1:-1:-1;;;;;;4738:20:0;;4748:10;4738:20;;:78;;-1:-1:-1;;;;;;4780:24:0;;;;;;:16;:24;;;;;;;;4805:10;4780:36;;;;;;;;;;4738:78;4730:139;;;;-1:-1:-1;;;4730:139:0;;6846:2:1;4730:139:0;;;6828:21:1;6885:2;6865:18;;;6858:30;6924:33;6904:18;;;6897:61;6975:18;;4730:139:0;;;;;;;;;4880:23;4889:3;4894:8;4880;:23::i;:::-;4674:237;4611:300;;:::o;11910:116::-;873:10;865:19;;;;:7;:19;;;;;;;;857:43;;;;-1:-1:-1;;;857:43:0;;7206:2:1;857:43:0;;;7188:21:1;7245:2;7225:18;;;7218:30;-1:-1:-1;;;7264:18:1;;;7257:41;7315:18;;857:43:0;7004:335:1;857:43:0;11998:20:::1;12004:3;12009:8;11998:5;:20::i;:::-;11910:116:::0;;:::o;5458:244::-;5560:40;5579:10;5591:8;5560:18;:40::i;:::-;5552:100;;;;-1:-1:-1;;;5552:100:0;;7546:2:1;5552:100:0;;;7528:21:1;7585:2;7565:18;;;7558:30;7624:34;7604:18;;;7597:62;-1:-1:-1;;;7675:18:1;;;7668:32;7717:19;;5552:100:0;7344:398:1;5552:100:0;5663:31;5673:5;5680:3;5685:8;5663:9;:31::i;6254:154::-;6358:42;6375:5;6382:3;6387:8;6358:42;;;;;;;;;;;;:16;:42::i;8521:242::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8275:20:0;;;:10;:20;;;;;8268:27;;;;;;;;-1:-1:-1;;;;;8268:27:0;;;;;-1:-1:-1;;;8268:27:0;;;;;;;;;;;-1:-1:-1;;;8268:27:0;;;;;;;;;;-1:-1:-1;;;8268:27:0;;;;;;;;;;-1:-1:-1;;8683:32:0;:72;;7879:4;8683:72;;;8718:18;;8683:72;8676:79;8521:242;-1:-1:-1;;;8521:242:0:o;1582:20::-;;;;;;;:::i;5157:148::-;5245:52;5264:10;5276:9;5287;5245:18;:52::i;5708:540::-;5831:34;5844:5;5851:3;5856:8;5831:12;:34::i;:::-;-1:-1:-1;;;;;5880:15:0;;;:20;5876:365;;5920:22;5946:3;-1:-1:-1;;;;;5946:8:0;5996:10;6008;6020:5;6027:8;6037:5;5955:88;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5955:88:0;;;;;;;;;;;5946:98;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5917:127;;;6059:16;6089:9;6078:31;;;;;;;;;;;;:::i;:::-;6059:50;-1:-1:-1;;;;;;;;;;6132:23:0;;;6124:105;;;;-1:-1:-1;;;6124:105:0;;9103:2:1;6124:105:0;;;9085:21:1;9142:2;9122:18;;;9115:30;9181:34;9161:18;;;9154:62;-1:-1:-1;;;9232:18:1;;;9225:49;9291:19;;6124:105:0;8901:415:1;6124:105:0;5902:339;;5876:365;5708:540;;;;:::o;11505:279::-;11575:18;;;;11574:19;11566:28;;;;;;11605:18;:25;;-1:-1:-1;;11605:25:0;11626:4;11605:25;;;11672:5;:16;;-1:-1:-1;;;;;11672:16:0;;-1:-1:-1;;;;;;11672:16:0;;;;;;11699:47;;;;;;;;;;;;;;;;;;:4;;:47;;:4;:47;:::i;:::-;-1:-1:-1;11757:19:0;;;;;;;;;;;;-1:-1:-1;;;11757:19:0;;;;:6;;:19;;:6;:19;:::i;7135:260::-;7200:13;7356:19;7366:8;7356:9;:19::i;:::-;7240:146;;;;;;;;:::i;:::-;;;;;;;;;;;;;7226:161;;7135:260;;;:::o;12080:255::-;308:5;;-1:-1:-1;;;;;308:5:0;317:10;308:19;300:42;;;;-1:-1:-1;;;300:42:0;;;;;;;:::i;:::-;12200:9:::1;12195:133;12211:20:::0;;::::1;12195:133;;;12249:35;12259:5;12266:3;12271:9;;12281:1;12271:12;;;;;;;:::i;:::-;;;;;;;12249:9;:35::i;:::-;12311:3;;12195:133;;;;12080:255:::0;;;;:::o;912:170::-;308:5;;-1:-1:-1;;;;;308:5:0;317:10;308:19;300:42;;;;-1:-1:-1;;;300:42:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;991:17:0;::::1;;::::0;;;:7:::1;:17;::::0;;;;;;;;:25;;-1:-1:-1;;991:25:0::1;::::0;::::1;;::::0;;::::1;::::0;;;1032:42;;540:41:1;;;1046:10:0::1;::::0;1032:42:::1;::::0;513:18:1;1032:42:0::1;;;;;;;912:170:::0;;:::o;354:229::-;436:5;;-1:-1:-1;;;;;436:5:0;473:10;460:23;;452:46;;;;-1:-1:-1;;;452:46:0;;;;;;;:::i;:::-;509:5;:12;;-1:-1:-1;;;;;;509:12:0;-1:-1:-1;;;;;509:12:0;;;;;;;;;538:37;;509:12;;538:37;;;;;-1:-1:-1;;538:37:0;404:179;354:229;:::o;11792:110::-;308:5;;-1:-1:-1;;;;;308:5:0;317:10;308:19;300:42;;;;-1:-1:-1;;;300:42:0;;;;;;;:::i;:::-;11868:11:::1;:26:::0;11792:110::o;4435:170::-;4512:21;;;;:11;:21;;;;;:27;;-1:-1:-1;;;;;;4512:27:0;-1:-1:-1;;;;;4512:27:0;;;;;;;;:21;;4564:17;4512:21;4564:7;:17::i;:::-;-1:-1:-1;;;;;4555:42:0;;;;;;;;;;;4435:170;;:::o;2900:595::-;-1:-1:-1;;;;;2982:17:0;;2974:50;;;;-1:-1:-1;;;2974:50:0;;12582:2:1;2974:50:0;;;12564:21:1;12621:2;12601:18;;;12594:30;-1:-1:-1;;;12640:18:1;;;12633:50;12700:18;;2974:50:0;12380:344:1;2974:50:0;3081:1;3043:20;;;:10;:20;;;;;:26;-1:-1:-1;;;;;3043:26:0;:40;3035:72;;;;-1:-1:-1;;;3035:72:0;;12931:2:1;3035:72:0;;;12913:21:1;12970:2;12950:18;;;12943:30;-1:-1:-1;;;12989:18:1;;;12982:49;13048:18;;3035:72:0;12729:343:1;3035:72:0;3120:19;3142:30;:28;:30::i;:::-;3206:36;;;;;;;;-1:-1:-1;;;;;3206:36:0;;;;;;;;;;;;;;;;;-1:-1:-1;3206:36:0;;;;;;;;;;;;3183:20;;;:10;:20;;;;;:59;;;;;;;;;;;;-1:-1:-1;;;3183:59:0;-1:-1:-1;;;;;3183:59:0;;;-1:-1:-1;;;3183:59:0;;;;;-1:-1:-1;;;;;3183:59:0;;;-1:-1:-1;;;3183:59:0;-1:-1:-1;;;;;;3183:59:0;;;;;;;;;;;;;;;;;;;;;;;;3280:17;;;:12;:17;;;;;;:27;;3322:32;3280:27;;;3183:59;3280:27;;;;;-1:-1:-1;;3280:27:0;;;;3322:32;;;;;;;;;;;;;-1:-1:-1;;3322:32:0;;;;;;;;;3410:11;:13;;;;;;;;3452:35;;3120:52;;-1:-1:-1;3194:8:0;;3206:36;;-1:-1:-1;3452:35:0;;-1:-1:-1;;3452:35:0;2963:532;2900:595;;:::o;4122:307::-;4223:4;4240:14;4257:17;4265:8;4257:7;:17::i;:::-;4240:34;;4303:8;-1:-1:-1;;;;;4293:18:0;:6;-1:-1:-1;;;;;4293:18:0;;:72;;;-1:-1:-1;4332:21:0;;;;:11;:21;;;;;;-1:-1:-1;;;;;4332:33:0;;;:21;;:33;4293:72;:127;;;-1:-1:-1;;;;;;4386:24:0;;;;;;;:16;:24;;;;;;;;:34;;;;;;;;;;;;4293:127;4285:136;4122:307;-1:-1:-1;;;;4122:307:0:o;12410:121::-;12504:19;;-1:-1:-1;;;12504:19:0;;13279:2:1;12504:19:0;;;13261:21:1;13318:1;13298:18;;;13291:29;-1:-1:-1;;;13336:18:1;;;13329:39;13385:18;;12504:19:0;13077:332:1;4923:228:0;-1:-1:-1;;;;;5036:24:0;;;;;;;:16;:24;;;;;;;;:35;;;;;;;;;;;;;:47;;-1:-1:-1;;5036:47:0;;;;;;;;;;5099:44;;540:41:1;;;5099:44:0;;513:18:1;5099:44:0;;;;;;;4923:228;;;:::o;6669:458::-;6727:13;6757:6;6767:1;6757:11;6753:32;;-1:-1:-1;;6772:10:0;;;;;;;;;;;;-1:-1:-1;;;6772:10:0;;;;;6669:458::o;6753:32::-;6814:6;6795:16;6848:52;6855:13;;6848:52;;6872:9;;;;:::i;:::-;;-1:-1:-1;6883:14:0;;-1:-1:-1;6895:2:0;6883:14;;:::i;:::-;;;6848:52;;;6910:20;6943:7;6933:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6933:18:0;;6910:41;;6962:124;6969:11;;6962:124;;6984:9;;;;:::i;:::-;;-1:-1:-1;7054:11:0;;-1:-1:-1;7063:2:0;7054:6;:11;:::i;:::-;7041:26;;:2;:26;:::i;:::-;7014:55;;6995:7;7003;6995:16;;;;;;;;:::i;:::-;;;;:74;-1:-1:-1;;;;;6995:74:0;;;;;;;;-1:-1:-1;7071:12:0;7081:2;7071:12;;:::i;:::-;;;6962:124;;2425:125;2488:6;2521:20;2539:2;2521:15;:20;:::i;:::-;2507:35;;2425:125;:::o;14:131:1:-;-1:-1:-1;;;;;;88:32:1;;78:43;;68:71;;135:1;132;125:12;68:71;14:131;:::o;150:245::-;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:289::-;634:3;672:5;666:12;699:6;694:3;687:19;755:6;748:4;741:5;737:16;730:4;725:3;721:14;715:47;807:1;800:4;791:6;786:3;782:16;778:27;771:38;870:4;863:2;859:7;854:2;846:6;842:15;838:29;833:3;829:39;825:50;818:57;;;592:289;;;;:::o;886:220::-;1035:2;1024:9;1017:21;998:4;1055:45;1096:2;1085:9;1081:18;1073:6;1055:45;:::i;1111:226::-;1170:6;1223:2;1211:9;1202:7;1198:23;1194:32;1191:52;;;1239:1;1236;1229:12;1191:52;-1:-1:-1;1284:23:1;;1111:226;-1:-1:-1;1111:226:1:o;1550:173::-;1618:20;;-1:-1:-1;;;;;1667:31:1;;1657:42;;1647:70;;1713:1;1710;1703:12;1647:70;1550:173;;;:::o;1728:300::-;1796:6;1804;1857:2;1845:9;1836:7;1832:23;1828:32;1825:52;;;1873:1;1870;1863:12;1825:52;1896:29;1915:9;1896:29;:::i;:::-;1886:39;1994:2;1979:18;;;;1966:32;;-1:-1:-1;;;1728:300:1:o;2215:374::-;2292:6;2300;2308;2361:2;2349:9;2340:7;2336:23;2332:32;2329:52;;;2377:1;2374;2367:12;2329:52;2400:29;2419:9;2400:29;:::i;:::-;2390:39;;2448:38;2482:2;2471:9;2467:18;2448:38;:::i;:::-;2215:374;;2438:48;;-1:-1:-1;;;2555:2:1;2540:18;;;;2527:32;;2215:374::o;3061:186::-;3120:6;3173:2;3161:9;3152:7;3148:23;3144:32;3141:52;;;3189:1;3186;3179:12;3141:52;3212:29;3231:9;3212:29;:::i;3535:347::-;3600:6;3608;3661:2;3649:9;3640:7;3636:23;3632:32;3629:52;;;3677:1;3674;3667:12;3629:52;3700:29;3719:9;3700:29;:::i;:::-;3690:39;;3779:2;3768:9;3764:18;3751:32;3826:5;3819:13;3812:21;3805:5;3802:32;3792:60;;3848:1;3845;3838:12;3792:60;3871:5;3861:15;;;3535:347;;;;;:::o;3887:127::-;3948:10;3943:3;3939:20;3936:1;3929:31;3979:4;3976:1;3969:15;4003:4;4000:1;3993:15;4019:1207;4114:6;4122;4130;4138;4191:3;4179:9;4170:7;4166:23;4162:33;4159:53;;;4208:1;4205;4198:12;4159:53;4231:29;4250:9;4231:29;:::i;:::-;4221:39;;4279:38;4313:2;4302:9;4298:18;4279:38;:::i;:::-;4269:48;-1:-1:-1;4386:2:1;4371:18;;4358:32;;-1:-1:-1;4465:2:1;4450:18;;4437:32;4492:18;4481:30;;4478:50;;;4524:1;4521;4514:12;4478:50;4547:22;;4600:4;4592:13;;4588:27;-1:-1:-1;4578:55:1;;4629:1;4626;4619:12;4578:55;4669:2;4656:16;4695:18;4687:6;4684:30;4681:56;;;4717:18;;:::i;:::-;4766:2;4760:9;4858:2;4820:17;;-1:-1:-1;;4816:31:1;;;4849:2;4812:40;4808:54;4796:67;;4893:18;4878:34;;4914:22;;;4875:62;4872:88;;;4940:18;;:::i;:::-;4976:2;4969:22;5000;;;5041:15;;;5058:2;5037:24;5034:37;-1:-1:-1;5031:57:1;;;5084:1;5081;5074:12;5031:57;5140:6;5135:2;5131;5127:11;5122:2;5114:6;5110:15;5097:50;5193:1;5188:2;5179:6;5171;5167:19;5163:28;5156:39;5214:6;5204:16;;;;;4019:1207;;;;;;;:::o;5231:758::-;5335:6;5343;5351;5359;5412:2;5400:9;5391:7;5387:23;5383:32;5380:52;;;5428:1;5425;5418:12;5380:52;5451:29;5470:9;5451:29;:::i;:::-;5441:39;;5499:38;5533:2;5522:9;5518:18;5499:38;:::i;:::-;5489:48;;5588:2;5577:9;5573:18;5560:32;5615:18;5607:6;5604:30;5601:50;;;5647:1;5644;5637:12;5601:50;5670:22;;5723:4;5715:13;;5711:27;-1:-1:-1;5701:55:1;;5752:1;5749;5742:12;5701:55;5792:2;5779:16;5818:18;5810:6;5807:30;5804:50;;;5850:1;5847;5840:12;5804:50;5903:7;5898:2;5888:6;5885:1;5881:14;5877:2;5873:23;5869:32;5866:45;5863:65;;;5924:1;5921;5914:12;5863:65;5231:758;;;;-1:-1:-1;5955:2:1;5947:11;;-1:-1:-1;;;5231:758:1:o;5994:260::-;6062:6;6070;6123:2;6111:9;6102:7;6098:23;6094:32;6091:52;;;6139:1;6136;6129:12;6091:52;6162:29;6181:9;6162:29;:::i;:::-;6152:39;;6210:38;6244:2;6233:9;6229:18;6210:38;:::i;:::-;6200:48;;5994:260;;;;;:::o;6259:380::-;6338:1;6334:12;;;;6381;;;6402:61;;6456:4;6448:6;6444:17;6434:27;;6402:61;6509:2;6501:6;6498:14;6478:18;6475:38;6472:161;;6555:10;6550:3;6546:20;6543:1;6536:31;6590:4;6587:1;6580:15;6618:4;6615:1;6608:15;6472:161;;6259:380;;;:::o;7747:485::-;-1:-1:-1;;;;;7978:32:1;;;7960:51;;8047:32;;8042:2;8027:18;;8020:60;8111:2;8096:18;;8089:34;;;8159:3;8154:2;8139:18;;8132:31;;;-1:-1:-1;;8180:46:1;;8206:19;;8198:6;8180:46;:::i;:::-;8172:54;7747:485;-1:-1:-1;;;;;;7747:485:1:o;8237:211::-;8278:3;8316:5;8310:12;8360:6;8353:4;8346:5;8342:16;8337:3;8331:36;8422:1;8386:16;;8411:13;;;-1:-1:-1;8386:16:1;;8237:211;-1:-1:-1;8237:211:1:o;8453:189::-;8582:3;8607:29;8632:3;8624:6;8607:29;:::i;8647:249::-;8716:6;8769:2;8757:9;8748:7;8744:23;8740:32;8737:52;;;8785:1;8782;8775:12;8737:52;8817:9;8811:16;8836:30;8860:5;8836:30;:::i;9447:518::-;9549:2;9544:3;9541:11;9538:421;;;9585:5;9582:1;9575:16;9629:4;9626:1;9616:18;9699:2;9687:10;9683:19;9680:1;9676:27;9670:4;9666:38;9735:4;9723:10;9720:20;9717:47;;;-1:-1:-1;9758:4:1;9717:47;9813:2;9808:3;9804:12;9801:1;9797:20;9791:4;9787:31;9777:41;;9868:81;9886:2;9879:5;9876:13;9868:81;;;9945:1;9931:16;;9912:1;9901:13;9868:81;;10141:1299;10267:3;10261:10;10294:18;10286:6;10283:30;10280:56;;;10316:18;;:::i;:::-;10345:97;10435:6;10395:38;10427:4;10421:11;10395:38;:::i;:::-;10389:4;10345:97;:::i;:::-;10491:4;10522:2;10511:14;;10539:1;10534:649;;;;11227:1;11244:6;11241:89;;;-1:-1:-1;11296:19:1;;;11290:26;11241:89;-1:-1:-1;;10098:1:1;10094:11;;;10090:24;10086:29;10076:40;10122:1;10118:11;;;10073:57;11343:81;;10504:930;;10534:649;9394:1;9387:14;;;9431:4;9418:18;;-1:-1:-1;;10570:20:1;;;10688:222;10702:7;10699:1;10696:14;10688:222;;;10784:19;;;10778:26;10763:42;;10891:4;10876:20;;;;10844:1;10832:14;;;;10718:12;10688:222;;;10692:3;10938:6;10929:7;10926:19;10923:201;;;10999:19;;;10993:26;-1:-1:-1;;11082:1:1;11078:14;;;11094:3;11074:24;11070:37;11066:42;11051:58;11036:74;;10923:201;-1:-1:-1;;;;11170:1:1;11154:14;;;11150:22;11137:36;;-1:-1:-1;10141:1299:1:o;11445:459::-;11707:34;11702:3;11695:47;11772:34;11767:2;11762:3;11758:12;11751:56;-1:-1:-1;;;11832:2:1;11827:3;11823:12;11816:28;11677:3;11860:38;11894:2;11889:3;11885:12;11877:6;11860:38;:::i;11909:334::-;12111:2;12093:21;;;12150:2;12130:18;;;12123:30;-1:-1:-1;;;12184:2:1;12169:18;;12162:40;12234:2;12219:18;;11909:334::o;12248:127::-;12309:10;12304:3;12300:20;12297:1;12290:31;12340:4;12337:1;12330:15;12364:4;12361:1;12354:15;13414:127;13475:10;13470:3;13466:20;13463:1;13456:31;13506:4;13503:1;13496:15;13530:4;13527:1;13520:15;13546:135;13585:3;13606:17;;;13603:43;;13626:18;;:::i;:::-;-1:-1:-1;13673:1:1;13662:13;;13546:135::o;13686:127::-;13747:10;13742:3;13738:20;13735:1;13728:31;13778:4;13775:1;13768:15;13802:4;13799:1;13792:15;13818:120;13858:1;13884;13874:35;;13889:18;;:::i;:::-;-1:-1:-1;13923:9:1;;13818:120::o;13943:136::-;13982:3;14010:5;14000:39;;14019:18;;:::i;:::-;-1:-1:-1;;;14055:18:1;;13943:136::o;14084:112::-;14116:1;14142;14132:35;;14147:18;;:::i;:::-;-1:-1:-1;14181:9:1;;14084:112::o;14201:125::-;14266:9;;;14287:10;;;14284:36;;;14300:18;;:::i
Swarm Source
ipfs://7c6ee49d403ef9917a50bb7421eef2d33eeb4aa9008eb150c498145d496b2472
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.