Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 35 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Update Platform ... | 16891343 | 675 days ago | IN | 0 ETH | 0.00190169 | ||||
Update Platform ... | 16869703 | 678 days ago | IN | 0 ETH | 0.00124081 | ||||
Update Platform ... | 16728165 | 698 days ago | IN | 0 ETH | 0.00186186 | ||||
Update Platform ... | 16683923 | 704 days ago | IN | 0 ETH | 0.00101204 | ||||
Update Platform ... | 16677827 | 705 days ago | IN | 0 ETH | 0.00208291 | ||||
Update Platform ... | 16676837 | 705 days ago | IN | 0 ETH | 0.00134537 | ||||
Update Platform ... | 16621707 | 713 days ago | IN | 0 ETH | 0.00252864 | ||||
Update Platform ... | 16592675 | 717 days ago | IN | 0 ETH | 0.00192974 | ||||
Update Platform ... | 16413233 | 742 days ago | IN | 0 ETH | 0.00181308 | ||||
Update Render Pr... | 16413229 | 742 days ago | IN | 0 ETH | 0.00077852 | ||||
Update Render Pr... | 16413222 | 742 days ago | IN | 0 ETH | 0.00166674 | ||||
Clear Render Pro... | 16413175 | 742 days ago | IN | 0 ETH | 0.0008149 | ||||
Clear Platform B... | 16413162 | 742 days ago | IN | 0 ETH | 0.00081281 | ||||
Update Platform ... | 16413049 | 742 days ago | IN | 0 ETH | 0.00224406 | ||||
Update Render Pr... | 16399365 | 744 days ago | IN | 0 ETH | 0.00205417 | ||||
Update Platform ... | 16399355 | 744 days ago | IN | 0 ETH | 0.00213889 | ||||
Update Platform ... | 16328505 | 753 days ago | IN | 0 ETH | 0.00117588 | ||||
Update Platform ... | 16223287 | 768 days ago | IN | 0 ETH | 0.00067112 | ||||
Clear Platform B... | 16126761 | 782 days ago | IN | 0 ETH | 0.00061725 | ||||
Clear Platform B... | 16126749 | 782 days ago | IN | 0 ETH | 0.00070255 | ||||
Update Platform ... | 16126737 | 782 days ago | IN | 0 ETH | 0.00173483 | ||||
Update Render Pr... | 16126718 | 782 days ago | IN | 0 ETH | 0.00115777 | ||||
Update Platform ... | 16126559 | 782 days ago | IN | 0 ETH | 0.00101582 | ||||
Update Platform ... | 15934988 | 808 days ago | IN | 0 ETH | 0.00405829 | ||||
Update Render Pr... | 15934984 | 808 days ago | IN | 0 ETH | 0.00417069 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
GenArt721RoyaltyOverride_PBAB
Compiler Version
v0.8.9+commit.e5eed63a
Optimization Enabled:
Yes with 100 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: LGPL-3.0-only // Created By: Art Blocks Inc. import "../interfaces/0.8.x/IArtblocksRoyaltyOverride.sol"; import "../interfaces/0.8.x/IGenArt721CoreV2_PBAB.sol"; import "@openzeppelin/contracts/utils/introspection/ERC165.sol"; pragma solidity 0.8.9; /** * @title Royalty Registry override for Art Blocks PBAB token contracts. * @author Art Blocks Inc. */ contract GenArt721RoyaltyOverride_PBAB is ERC165, IArtblocksRoyaltyOverride { /** * @notice Platform royalty payment address for `contractAddress` * updated to be `platformRoyaltyAddress`. */ event PlatformRoyaltyAddressForContractUpdated( address indexed contractAddress, address payable indexed platformRoyaltyAddress ); /** * @notice Render provider royalty payment basis points for `tokenAddress` * updated to be `bps` if `useOverride`, else updated to use default BPS. */ event RenderProviderBpsForContractUpdated( address indexed tokenAddress, bool indexed useOverride, uint256 bps ); /** * @notice Platform royalty payment basis points for * `tokenAddress` updated to be `bps` if `useOverride`, else * updated to use default BPS. */ event PlatformBpsForContractUpdated( address indexed tokenAddress, bool indexed useOverride, uint256 bps ); /// token contract => Platform royalty payment address mapping(address => address payable) public tokenAddressToPlatformRoyaltyAddress; struct BpsOverride { bool useOverride; uint256 bps; } /// Default Render Provider royalty basis points if no BPS override is set. uint256 public constant RENDER_PROVIDER_DEFAULT_BPS = 250; // 2.5 percent /// Default Platform royalty basis points if no BPS override is set. uint256 public constant PLATFORM_DEFAULT_BPS = 250; // 2.5 percent /// token contract => if render provider bps override is set, and bps value. mapping(address => BpsOverride) public tokenAddressToRenderProviderBpsOverride; /// token contract => if Platform bps override is set, and bps value. mapping(address => BpsOverride) public tokenAddressToPlatformBpsOverride; modifier onlyAdminOnContract(address _tokenContract) { require( IGenArt721CoreV2_PBAB(_tokenContract).admin() == msg.sender, "Only core admin for specified token contract" ); _; } /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view override(ERC165, IERC165) returns (bool) { return // register interface 0x9ca7dc7a - getRoyalties(address,uint256) interfaceId == type(IArtblocksRoyaltyOverride).interfaceId || super.supportsInterface(interfaceId); } /** * @notice Updates platform royalty payment address for `_tokenContract` * to be `_platformRoyaltyAddress`. * @param _tokenContract Token contract to be updated. * @param _platformRoyaltyAddress Address to receive royalty payments. */ function updatePlatformRoyaltyAddressForContract( address _tokenContract, address payable _platformRoyaltyAddress ) external onlyAdminOnContract(_tokenContract) { tokenAddressToPlatformRoyaltyAddress[ _tokenContract ] = _platformRoyaltyAddress; emit PlatformRoyaltyAddressForContractUpdated( _tokenContract, _platformRoyaltyAddress ); } /** * @notice Updates render provider royalty payment BPS for `_tokenContract` * to be `_bps`. * @param _tokenContract Token contract to be updated. * @param _bps Render provider royalty payment basis points. */ function updateRenderProviderBpsForContract( address _tokenContract, uint256 _bps ) external onlyAdminOnContract(_tokenContract) { require(_bps <= 10000, "invalid bps"); tokenAddressToRenderProviderBpsOverride[_tokenContract] = BpsOverride( true, _bps ); emit RenderProviderBpsForContractUpdated(_tokenContract, true, _bps); } /** * @notice Updates platform royalty payment BPS for `_tokenContract` to be * `_bps`. * @param _tokenContract Token contract to be updated. * @param _bps Platform royalty payment basis points. */ function updatePlatformBpsForContract(address _tokenContract, uint256 _bps) external onlyAdminOnContract(_tokenContract) { require(_bps <= 10000, "invalid bps"); tokenAddressToPlatformBpsOverride[_tokenContract] = BpsOverride( true, _bps ); emit PlatformBpsForContractUpdated(_tokenContract, true, _bps); } /** * @notice Clears any overrides of render provider royalty payment BPS * for `_tokenContract`. * @param _tokenContract Token contract to be cleared. * @dev token contracts without overrides use default BPS value. */ function clearRenderProviderBpsForContract(address _tokenContract) external onlyAdminOnContract(_tokenContract) { tokenAddressToRenderProviderBpsOverride[_tokenContract] = BpsOverride( false, 0 ); // initial values emit RenderProviderBpsForContractUpdated(_tokenContract, false, 0); } /** * @notice Clears any overrides of platform provider royalty payment BPS * for `_tokenContract`. * @param _tokenContract Token contract to be cleared. * @dev token contracts without overrides use default BPS value. */ function clearPlatformBpsForContract(address _tokenContract) external onlyAdminOnContract(_tokenContract) { tokenAddressToPlatformBpsOverride[_tokenContract] = BpsOverride( false, 0 ); // initial values emit PlatformBpsForContractUpdated(_tokenContract, false, 0); } /** * @notice Gets royalites of token ID `_tokenId` on token contract * `_tokenAddress`. * @param _tokenAddress Token contract to be queried. * @param _tokenId Token ID to be queried. * @return recipients_ array of royalty recipients * @return bps array of basis points for each recipient, aligned by index */ function getRoyalties(address _tokenAddress, uint256 _tokenId) external view returns (address payable[] memory recipients_, uint256[] memory bps) { recipients_ = new address payable[](4); bps = new uint256[](4); // get standard royalty data for artist and additional payee ( address artistAddress, address additionalPayee, uint256 additionalPayeePercentage, uint256 royaltyFeeByID ) = IGenArt721CoreV2_PBAB(_tokenAddress).getRoyaltyData(_tokenId); // translate to desired output recipients_[0] = payable(artistAddress); bps[0] = (uint256(100) - additionalPayeePercentage) * royaltyFeeByID; recipients_[1] = payable(additionalPayee); bps[1] = additionalPayeePercentage * royaltyFeeByID; // append platform provider royalty require( tokenAddressToPlatformRoyaltyAddress[_tokenAddress] != address(0), "Platform royalty address must be defined for contract" ); recipients_[2] = tokenAddressToPlatformRoyaltyAddress[_tokenAddress]; bps[2] = tokenAddressToPlatformBpsOverride[_tokenAddress].useOverride ? tokenAddressToPlatformBpsOverride[_tokenAddress].bps : PLATFORM_DEFAULT_BPS; // append render provider royalty recipients_[3] = payable( IGenArt721CoreV2_PBAB(_tokenAddress).renderProviderAddress() ); bps[3] = tokenAddressToRenderProviderBpsOverride[_tokenAddress] .useOverride ? tokenAddressToRenderProviderBpsOverride[_tokenAddress].bps : RENDER_PROVIDER_DEFAULT_BPS; return (recipients_, bps); } }
// SPDX-License-Identifier: LGPL-3.0-only // Created By: Art Blocks Inc. import "@openzeppelin/contracts/utils/introspection/IERC165.sol"; pragma solidity ^0.8.0; /** * @notice Interface for Art Blocks Royalty override. * Supported by the Royalty Registry v1 Engine. * @dev ref: https://royaltyregistry.xyz / engine-v1.royaltyregistry.eth */ interface IArtblocksRoyaltyOverride is IERC165 { /** * @notice Gets royalites of token ID `_tokenId` on token contract * `_tokenAddress`. * @param tokenAddress Token contract to be queried. * @param tokenId Token ID to be queried. * @return recipients_ array of royalty recipients * @return bps array of basis points for each recipient, aligned by index * @dev Interface ID: * * bytes4(keccak256('getRoyalties(address,uint256)')) == 0x9ca7dc7a * * => 0x9ca7dc7a = 0x9ca7dc7a */ function getRoyalties(address tokenAddress, uint256 tokenId) external view returns (address payable[] memory recipients_, uint256[] memory bps); }
// SPDX-License-Identifier: LGPL-3.0-only // Created By: Art Blocks Inc. pragma solidity ^0.8.0; interface IGenArt721CoreV2_PBAB { /** * @notice Token ID `_tokenId` minted on project ID `_projectId` to `_to`. */ event Mint( address indexed _to, uint256 indexed _tokenId, uint256 indexed _projectId ); // getter function of public variable function admin() external view returns (address); // getter function of public variable function nextProjectId() external view returns (uint256); // getter function of public mapping function tokenIdToProjectId(uint256 tokenId) external view returns (uint256 projectId); function isWhitelisted(address sender) external view returns (bool); function projectIdToCurrencySymbol(uint256 _projectId) external view returns (string memory); function projectIdToCurrencyAddress(uint256 _projectId) external view returns (address); function projectIdToArtistAddress(uint256 _projectId) external view returns (address payable); function projectIdToPricePerTokenInWei(uint256 _projectId) external view returns (uint256); function projectIdToAdditionalPayee(uint256 _projectId) external view returns (address payable); function projectIdToAdditionalPayeePercentage(uint256 _projectId) external view returns (uint256); function projectTokenInfo(uint256 _projectId) external view returns ( address, uint256, uint256, uint256, bool, address, uint256, string memory, address ); function renderProviderAddress() external view returns (address payable); function renderProviderPercentage() external view returns (uint256); function mint( address _to, uint256 _projectId, address _by ) external returns (uint256 tokenId); function getRoyaltyData(uint256 _tokenId) external view returns ( address artistAddress, address additionalPayee, uint256 additionalPayeePercentage, uint256 royaltyFeeByID ); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol) pragma solidity ^0.8.0; import "./IERC165.sol"; /** * @dev Implementation of the {IERC165} interface. * * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check * for the additional interface id that will be supported. For example: * * ```solidity * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); * } * ``` * * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation. */ abstract contract ERC165 is IERC165 { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); }
{ "optimizer": { "enabled": true, "runs": 100 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":true,"internalType":"bool","name":"useOverride","type":"bool"},{"indexed":false,"internalType":"uint256","name":"bps","type":"uint256"}],"name":"PlatformBpsForContractUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"contractAddress","type":"address"},{"indexed":true,"internalType":"address payable","name":"platformRoyaltyAddress","type":"address"}],"name":"PlatformRoyaltyAddressForContractUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":true,"internalType":"bool","name":"useOverride","type":"bool"},{"indexed":false,"internalType":"uint256","name":"bps","type":"uint256"}],"name":"RenderProviderBpsForContractUpdated","type":"event"},{"inputs":[],"name":"PLATFORM_DEFAULT_BPS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RENDER_PROVIDER_DEFAULT_BPS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenContract","type":"address"}],"name":"clearPlatformBpsForContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenContract","type":"address"}],"name":"clearRenderProviderBpsForContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"getRoyalties","outputs":[{"internalType":"address payable[]","name":"recipients_","type":"address[]"},{"internalType":"uint256[]","name":"bps","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenAddressToPlatformBpsOverride","outputs":[{"internalType":"bool","name":"useOverride","type":"bool"},{"internalType":"uint256","name":"bps","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenAddressToPlatformRoyaltyAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenAddressToRenderProviderBpsOverride","outputs":[{"internalType":"bool","name":"useOverride","type":"bool"},{"internalType":"uint256","name":"bps","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenContract","type":"address"},{"internalType":"uint256","name":"_bps","type":"uint256"}],"name":"updatePlatformBpsForContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenContract","type":"address"},{"internalType":"address payable","name":"_platformRoyaltyAddress","type":"address"}],"name":"updatePlatformRoyaltyAddressForContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenContract","type":"address"},{"internalType":"uint256","name":"_bps","type":"uint256"}],"name":"updateRenderProviderBpsForContract","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50610e85806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80639ca7dc7a116100715780639ca7dc7a146101905780639e0d31c2146101b1578063cf9a973c146101c4578063d020306d146100e1578063e6e97118146101d7578063e99f58da146101ea57600080fd5b806301ffc9a7146100b95780631ba1e650146100e15780631d1e569c146100f75780633dfba7ab1461010c5780634d196fab1461011f57806397df364414610163575b600080fd5b6100cc6100c7366004610bc8565b61022b565b60405190151581526020015b60405180910390f35b6100e960fa81565b6040519081526020016100d8565b61010a610105366004610c11565b610262565b005b61010a61011a366004610c2e565b610387565b61014c61012d366004610c11565b6002602052600090815260409020805460019091015460ff9091169082565b6040805192151583526020830191909152016100d8565b61014c610171366004610c11565b6001602081905260009182526040909120805491015460ff9091169082565b6101a361019e366004610c2e565b6104c5565b6040516100d8929190610c5a565b61010a6101bf366004610cde565b610884565b61010a6101d2366004610c11565b61097e565b61010a6101e5366004610c2e565b610a92565b6102136101f8366004610c11565b6000602081905290815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016100d8565b60006001600160e01b03198216634e53ee3d60e11b148061025c57506301ffc9a760e01b6001600160e01b03198316145b92915050565b80336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b1580156102a657600080fd5b505afa1580156102ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102de9190610d17565b6001600160a01b03161461030d5760405162461bcd60e51b815260040161030490610d34565b60405180910390fd5b604080518082018252600080825260208083018281526001600160a01b038716808452600283528584209451855460ff19169015151785559051600190940193909355925181815290927f236d38a8cdac19567ba384c1ea9833c930d1472ea05aa08c93d95e2224f7559391015b60405180910390a35050565b81336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b1580156103cb57600080fd5b505afa1580156103df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104039190610d17565b6001600160a01b0316146104295760405162461bcd60e51b815260040161030490610d34565b61271082111561044b5760405162461bcd60e51b815260040161030490610d80565b604080518082018252600180825260208083018681526001600160a01b03881660008181528484528690209451855460ff1916901515178555905193830193909355925185815290927f45a926fd99cb5c25b970de6015f5a179dbe5402af5f392232db13f2d40086b8491015b60405180910390a3505050565b60408051600480825260a0820190925260609182919060208201608080368337505060408051600480825260a08201909252929450905060208201608080368337019050509050600080600080876001600160a01b031663a65ff74c886040518263ffffffff1660e01b815260040161054091815260200190565b60806040518083038186803b15801561055857600080fd5b505afa15801561056c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105909190610da5565b935093509350935083866000815181106105ac576105ac610ded565b6001600160a01b0390921660209283029190910190910152806105d0836064610e19565b6105da9190610e30565b856000815181106105ed576105ed610ded565b602002602001018181525050828660018151811061060d5761060d610ded565b6001600160a01b039092166020928302919091019091015261062f8183610e30565b8560018151811061064257610642610ded565b6020908102919091018101919091526001600160a01b03898116600090815291829052604090912054166106d65760405162461bcd60e51b815260206004820152603560248201527f506c6174666f726d20726f79616c74792061646472657373206d757374206265604482015274081919599a5b995908199bdc8818dbdb9d1c9858dd605a1b6064820152608401610304565b6001600160a01b0380891660009081526020819052604090205487519116908790600290811061070857610708610ded565b6001600160a01b0392831660209182029290920181019190915290891660009081526002909152604090205460ff166107425760fa61075f565b6001600160a01b0388166000908152600260205260409020600101545b8560028151811061077257610772610ded565b602002602001018181525050876001600160a01b031663cfbf4d976040518163ffffffff1660e01b815260040160206040518083038186803b1580156107b757600080fd5b505afa1580156107cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ef9190610d17565b8660038151811061080257610802610ded565b6001600160a01b0392831660209182029290920181019190915290891660009081526001909152604090205460ff1661083c5760fa61085a565b6001600160a01b038816600090815260016020819052604090912001545b8560038151811061086d5761086d610ded565b602002602001018181525050505050509250929050565b81336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b1580156108c857600080fd5b505afa1580156108dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109009190610d17565b6001600160a01b0316146109265760405162461bcd60e51b815260040161030490610d34565b6001600160a01b0383811660008181526020819052604080822080546001600160a01b0319169487169485179055517f585dff5ad62b9dc71ff704d3475179461e1846ee542f2e6f940fb3b1f41b24e99190a3505050565b80336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b1580156109c257600080fd5b505afa1580156109d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fa9190610d17565b6001600160a01b031614610a205760405162461bcd60e51b815260040161030490610d34565b604080518082018252600080825260208083018281526001600160a01b03871680845260018084528685209551865460ff191690151517865591519490910193909355925181815290927f45a926fd99cb5c25b970de6015f5a179dbe5402af5f392232db13f2d40086b84910161037b565b81336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b158015610ad657600080fd5b505afa158015610aea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0e9190610d17565b6001600160a01b031614610b345760405162461bcd60e51b815260040161030490610d34565b612710821115610b565760405162461bcd60e51b815260040161030490610d80565b604080518082018252600180825260208083018681526001600160a01b0388166000818152600284528690209451855460ff1916901515178555905193830193909355925185815290927f236d38a8cdac19567ba384c1ea9833c930d1472ea05aa08c93d95e2224f7559391016104b8565b600060208284031215610bda57600080fd5b81356001600160e01b031981168114610bf257600080fd5b9392505050565b6001600160a01b0381168114610c0e57600080fd5b50565b600060208284031215610c2357600080fd5b8135610bf281610bf9565b60008060408385031215610c4157600080fd5b8235610c4c81610bf9565b946020939093013593505050565b604080825283519082018190526000906020906060840190828701845b82811015610c9c5781516001600160a01b031684529284019290840190600101610c77565b5050508381038285015284518082528583019183019060005b81811015610cd157835183529284019291840191600101610cb5565b5090979650505050505050565b60008060408385031215610cf157600080fd5b8235610cfc81610bf9565b91506020830135610d0c81610bf9565b809150509250929050565b600060208284031215610d2957600080fd5b8151610bf281610bf9565b6020808252602c908201527f4f6e6c7920636f72652061646d696e20666f722073706563696669656420746f60408201526b1ad95b8818dbdb9d1c9858dd60a21b606082015260800190565b6020808252600b908201526a696e76616c69642062707360a81b604082015260600190565b60008060008060808587031215610dbb57600080fd5b8451610dc681610bf9565b6020860151909450610dd781610bf9565b6040860151606090960151949790965092505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610e2b57610e2b610e03565b500390565b6000816000190483118215151615610e4a57610e4a610e03565b50029056fea2646970667358221220fc63a1246ae1627501b3460f661c4b978ed66a8fa6d0ad5453ac9270dcd87ae164736f6c63430008090033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80639ca7dc7a116100715780639ca7dc7a146101905780639e0d31c2146101b1578063cf9a973c146101c4578063d020306d146100e1578063e6e97118146101d7578063e99f58da146101ea57600080fd5b806301ffc9a7146100b95780631ba1e650146100e15780631d1e569c146100f75780633dfba7ab1461010c5780634d196fab1461011f57806397df364414610163575b600080fd5b6100cc6100c7366004610bc8565b61022b565b60405190151581526020015b60405180910390f35b6100e960fa81565b6040519081526020016100d8565b61010a610105366004610c11565b610262565b005b61010a61011a366004610c2e565b610387565b61014c61012d366004610c11565b6002602052600090815260409020805460019091015460ff9091169082565b6040805192151583526020830191909152016100d8565b61014c610171366004610c11565b6001602081905260009182526040909120805491015460ff9091169082565b6101a361019e366004610c2e565b6104c5565b6040516100d8929190610c5a565b61010a6101bf366004610cde565b610884565b61010a6101d2366004610c11565b61097e565b61010a6101e5366004610c2e565b610a92565b6102136101f8366004610c11565b6000602081905290815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016100d8565b60006001600160e01b03198216634e53ee3d60e11b148061025c57506301ffc9a760e01b6001600160e01b03198316145b92915050565b80336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b1580156102a657600080fd5b505afa1580156102ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102de9190610d17565b6001600160a01b03161461030d5760405162461bcd60e51b815260040161030490610d34565b60405180910390fd5b604080518082018252600080825260208083018281526001600160a01b038716808452600283528584209451855460ff19169015151785559051600190940193909355925181815290927f236d38a8cdac19567ba384c1ea9833c930d1472ea05aa08c93d95e2224f7559391015b60405180910390a35050565b81336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b1580156103cb57600080fd5b505afa1580156103df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104039190610d17565b6001600160a01b0316146104295760405162461bcd60e51b815260040161030490610d34565b61271082111561044b5760405162461bcd60e51b815260040161030490610d80565b604080518082018252600180825260208083018681526001600160a01b03881660008181528484528690209451855460ff1916901515178555905193830193909355925185815290927f45a926fd99cb5c25b970de6015f5a179dbe5402af5f392232db13f2d40086b8491015b60405180910390a3505050565b60408051600480825260a0820190925260609182919060208201608080368337505060408051600480825260a08201909252929450905060208201608080368337019050509050600080600080876001600160a01b031663a65ff74c886040518263ffffffff1660e01b815260040161054091815260200190565b60806040518083038186803b15801561055857600080fd5b505afa15801561056c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105909190610da5565b935093509350935083866000815181106105ac576105ac610ded565b6001600160a01b0390921660209283029190910190910152806105d0836064610e19565b6105da9190610e30565b856000815181106105ed576105ed610ded565b602002602001018181525050828660018151811061060d5761060d610ded565b6001600160a01b039092166020928302919091019091015261062f8183610e30565b8560018151811061064257610642610ded565b6020908102919091018101919091526001600160a01b03898116600090815291829052604090912054166106d65760405162461bcd60e51b815260206004820152603560248201527f506c6174666f726d20726f79616c74792061646472657373206d757374206265604482015274081919599a5b995908199bdc8818dbdb9d1c9858dd605a1b6064820152608401610304565b6001600160a01b0380891660009081526020819052604090205487519116908790600290811061070857610708610ded565b6001600160a01b0392831660209182029290920181019190915290891660009081526002909152604090205460ff166107425760fa61075f565b6001600160a01b0388166000908152600260205260409020600101545b8560028151811061077257610772610ded565b602002602001018181525050876001600160a01b031663cfbf4d976040518163ffffffff1660e01b815260040160206040518083038186803b1580156107b757600080fd5b505afa1580156107cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ef9190610d17565b8660038151811061080257610802610ded565b6001600160a01b0392831660209182029290920181019190915290891660009081526001909152604090205460ff1661083c5760fa61085a565b6001600160a01b038816600090815260016020819052604090912001545b8560038151811061086d5761086d610ded565b602002602001018181525050505050509250929050565b81336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b1580156108c857600080fd5b505afa1580156108dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109009190610d17565b6001600160a01b0316146109265760405162461bcd60e51b815260040161030490610d34565b6001600160a01b0383811660008181526020819052604080822080546001600160a01b0319169487169485179055517f585dff5ad62b9dc71ff704d3475179461e1846ee542f2e6f940fb3b1f41b24e99190a3505050565b80336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b1580156109c257600080fd5b505afa1580156109d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fa9190610d17565b6001600160a01b031614610a205760405162461bcd60e51b815260040161030490610d34565b604080518082018252600080825260208083018281526001600160a01b03871680845260018084528685209551865460ff191690151517865591519490910193909355925181815290927f45a926fd99cb5c25b970de6015f5a179dbe5402af5f392232db13f2d40086b84910161037b565b81336001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b158015610ad657600080fd5b505afa158015610aea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0e9190610d17565b6001600160a01b031614610b345760405162461bcd60e51b815260040161030490610d34565b612710821115610b565760405162461bcd60e51b815260040161030490610d80565b604080518082018252600180825260208083018681526001600160a01b0388166000818152600284528690209451855460ff1916901515178555905193830193909355925185815290927f236d38a8cdac19567ba384c1ea9833c930d1472ea05aa08c93d95e2224f7559391016104b8565b600060208284031215610bda57600080fd5b81356001600160e01b031981168114610bf257600080fd5b9392505050565b6001600160a01b0381168114610c0e57600080fd5b50565b600060208284031215610c2357600080fd5b8135610bf281610bf9565b60008060408385031215610c4157600080fd5b8235610c4c81610bf9565b946020939093013593505050565b604080825283519082018190526000906020906060840190828701845b82811015610c9c5781516001600160a01b031684529284019290840190600101610c77565b5050508381038285015284518082528583019183019060005b81811015610cd157835183529284019291840191600101610cb5565b5090979650505050505050565b60008060408385031215610cf157600080fd5b8235610cfc81610bf9565b91506020830135610d0c81610bf9565b809150509250929050565b600060208284031215610d2957600080fd5b8151610bf281610bf9565b6020808252602c908201527f4f6e6c7920636f72652061646d696e20666f722073706563696669656420746f60408201526b1ad95b8818dbdb9d1c9858dd60a21b606082015260800190565b6020808252600b908201526a696e76616c69642062707360a81b604082015260600190565b60008060008060808587031215610dbb57600080fd5b8451610dc681610bf9565b6020860151909450610dd781610bf9565b6040860151606090960151949790965092505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610e2b57610e2b610e03565b500390565b6000816000190483118215151615610e4a57610e4a610e03565b50029056fea2646970667358221220fc63a1246ae1627501b3460f661c4b978ed66a8fa6d0ad5453ac9270dcd87ae164736f6c63430008090033
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.