Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 from a total of 35 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Update Platform ... | 16891343 | 996 days ago | IN | 0 ETH | 0.00190169 | ||||
| Update Platform ... | 16869703 | 999 days ago | IN | 0 ETH | 0.00124081 | ||||
| Update Platform ... | 16728165 | 1019 days ago | IN | 0 ETH | 0.00186186 | ||||
| Update Platform ... | 16683923 | 1026 days ago | IN | 0 ETH | 0.00101204 | ||||
| Update Platform ... | 16677827 | 1026 days ago | IN | 0 ETH | 0.00208291 | ||||
| Update Platform ... | 16676837 | 1027 days ago | IN | 0 ETH | 0.00134537 | ||||
| Update Platform ... | 16621707 | 1034 days ago | IN | 0 ETH | 0.00252864 | ||||
| Update Platform ... | 16592675 | 1038 days ago | IN | 0 ETH | 0.00192974 | ||||
| Update Platform ... | 16413233 | 1063 days ago | IN | 0 ETH | 0.00181308 | ||||
| Update Render Pr... | 16413229 | 1063 days ago | IN | 0 ETH | 0.00077852 | ||||
| Update Render Pr... | 16413222 | 1063 days ago | IN | 0 ETH | 0.00166674 | ||||
| Clear Render Pro... | 16413175 | 1063 days ago | IN | 0 ETH | 0.0008149 | ||||
| Clear Platform B... | 16413162 | 1063 days ago | IN | 0 ETH | 0.00081281 | ||||
| Update Platform ... | 16413049 | 1063 days ago | IN | 0 ETH | 0.00224406 | ||||
| Update Render Pr... | 16399365 | 1065 days ago | IN | 0 ETH | 0.00205417 | ||||
| Update Platform ... | 16399355 | 1065 days ago | IN | 0 ETH | 0.00213889 | ||||
| Update Platform ... | 16328505 | 1075 days ago | IN | 0 ETH | 0.00117588 | ||||
| Update Platform ... | 16223287 | 1090 days ago | IN | 0 ETH | 0.00067112 | ||||
| Clear Platform B... | 16126761 | 1103 days ago | IN | 0 ETH | 0.00061725 | ||||
| Clear Platform B... | 16126749 | 1103 days ago | IN | 0 ETH | 0.00070255 | ||||
| Update Platform ... | 16126737 | 1103 days ago | IN | 0 ETH | 0.00173483 | ||||
| Update Render Pr... | 16126718 | 1103 days ago | IN | 0 ETH | 0.00115777 | ||||
| Update Platform ... | 16126559 | 1103 days ago | IN | 0 ETH | 0.00101582 | ||||
| Update Platform ... | 15934988 | 1130 days ago | IN | 0 ETH | 0.00405829 | ||||
| Update Render Pr... | 15934984 | 1130 days ago | IN | 0 ETH | 0.00417069 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
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
Contract ABI
API[{"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 | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.