Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 5 internal transactions
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| 0x3d602d80 | 22903820 | 185 days ago | Contract Creation | 0 ETH | |||
| 0x3d602d80 | 22515861 | 239 days ago | Contract Creation | 0 ETH | |||
| 0x3d602d80 | 21984556 | 313 days ago | Contract Creation | 0 ETH | |||
| 0x3d602d80 | 20274720 | 552 days ago | Contract Creation | 0 ETH | |||
| 0x3d602d80 | 20273653 | 552 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
Factory
Compiler Version
v0.8.18+commit.87f61d96
Optimization Enabled:
Yes with 10000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.18;
import "@openzeppelin/contracts/access/Ownable.sol";
/// @title Factory
/// @author DeFiGeek Community Japan
/// @notice Manage auction templates. Clone and deploy auction contracts from templates
contract Factory is Ownable {
/// @param implementation implementation address
/// @param initializeSignature function signature of initialize auction
/// @param transferSignature function signature of transfer token
struct TemplateInfo {
address implementation;
bytes4 initializeSignature;
bytes4 transferSignature;
}
mapping(bytes32 => TemplateInfo) public templates;
mapping(address => bool) public auctions;
/// @notice Record deployed parameters
/// @param templateName Template name of the deployed auction
/// @param deployedAddress Deployed address of the auction
event Deployed(bytes32 templateName, address deployedAddress);
/// @notice Record information of the added template
/// @param templateName The name of the template
/// @param implementationAddr The mplementation address of the template (auction contract)
event TemplateAdded(
bytes32 indexed templateName,
address indexed implementationAddr
);
/// @notice Record information of the removed template
/// @param templateName The name of the template
/// @param implementationAddr The implementation address of the template (auction contract)
event TemplateRemoved(
bytes32 indexed templateName,
address indexed implementationAddr
);
/// @notice Deploy clone auction
/// @param templateName_ The name of the template
/// @param args_ Template-specific parameters concatenated with abi.encode to bytes
function deployAuction(
bytes32 templateName_,
bytes calldata args_
) external payable returns (address deployedAddr) {
/* 1. Args must be non-empty and allowance is enough. */
TemplateInfo memory templateInfo = templates[templateName_];
address templateAddr = templateInfo.implementation;
require(templateAddr != address(0), "No such template in the list.");
/* 2. Make a clone. */
deployedAddr = _createClone(templateAddr);
emit Deployed(templateName_, deployedAddr);
/* 3. Initialize it. */
(bool success, bytes memory result) = deployedAddr.call{
value: msg.value
}(bytes.concat(templateInfo.initializeSignature, args_));
if (!success) {
assembly {
revert(add(result, 32), mload(result))
}
}
/* 4. Fund it. */
// Skip if transferSignature is empty
if (templateInfo.transferSignature != bytes4(0)) {
(success, result) = deployedAddr.delegatecall(
bytes.concat(
templateInfo.transferSignature,
result,
abi.encode(deployedAddr)
)
);
if (!success) {
assembly {
revert(add(result, 32), mload(result))
}
}
}
/* 5. Register the deployed auction. */
auctions[deployedAddr] = true;
}
/// @notice Add template with required information
/// @param templateName_ The name of the template
/// @param implementationAddr_ implementation address
/// @param initializeSignature_ function signature of initialize auction
/// @param transferSignature_ function signature of transfer token
function addTemplate(
bytes32 templateName_,
address implementationAddr_,
bytes4 initializeSignature_,
bytes4 transferSignature_
) external onlyOwner {
require(
templates[templateName_].implementation == address(0),
"This template name is already taken."
);
templates[templateName_] = TemplateInfo(
implementationAddr_,
initializeSignature_,
transferSignature_
);
emit TemplateAdded(templateName_, implementationAddr_);
}
/// @notice Remove template
/// @param templateName_ The name of the template
function removeTemplate(bytes32 templateName_) external onlyOwner {
TemplateInfo memory templateInfo = templates[templateName_];
delete templates[templateName_];
emit TemplateRemoved(templateName_, templateInfo.implementation);
}
/// @dev Deploy implementation's minimal proxy by create
/// @param implementation_ Template address
/// @return instance Deployed address
function _createClone(
address implementation_
) internal returns (address instance) {
/// @solidity memory-safe-assembly
assembly {
// Cleans the upper 96 bits of the `implementation` word, then packs the first 3 bytes
// of the `implementation` address with the bytecode before the address.
mstore(
0x00,
or(
shr(0xe8, shl(0x60, implementation_)),
0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000
)
)
// Packs the remaining 17 bytes of `implementation` with the bytecode after the address.
mstore(
0x20,
or(shl(0x78, implementation_), 0x5af43d82803e903d91602b57fd5bf3)
)
instance := create(0, 0x09, 0x37)
}
require(instance != address(0), "ERC1167: create failed");
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)
pragma solidity ^0.8.0;
import "../utils/Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(_msgSender());
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)
pragma solidity ^0.8.0;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
function _contextSuffixLength() internal view virtual returns (uint256) {
return 0;
}
}{
"optimizer": {
"enabled": true,
"runs": 10000
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"metadata": {
"useLiteralContent": true
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"templateName","type":"bytes32"},{"indexed":false,"internalType":"address","name":"deployedAddress","type":"address"}],"name":"Deployed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"templateName","type":"bytes32"},{"indexed":true,"internalType":"address","name":"implementationAddr","type":"address"}],"name":"TemplateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"templateName","type":"bytes32"},{"indexed":true,"internalType":"address","name":"implementationAddr","type":"address"}],"name":"TemplateRemoved","type":"event"},{"inputs":[{"internalType":"bytes32","name":"templateName_","type":"bytes32"},{"internalType":"address","name":"implementationAddr_","type":"address"},{"internalType":"bytes4","name":"initializeSignature_","type":"bytes4"},{"internalType":"bytes4","name":"transferSignature_","type":"bytes4"}],"name":"addTemplate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"auctions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"templateName_","type":"bytes32"},{"internalType":"bytes","name":"args_","type":"bytes"}],"name":"deployAuction","outputs":[{"internalType":"address","name":"deployedAddr","type":"address"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"templateName_","type":"bytes32"}],"name":"removeTemplate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"templates","outputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes4","name":"initializeSignature","type":"bytes4"},{"internalType":"bytes4","name":"transferSignature","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610db98061007e6000396000f3fe60806040526004361061007b5760003560e01c8063605ec92d1161004e578063605ec92d146101f5578063715018a6146102155780638da5cb5b1461022a578063f2fde38b1461025557600080fd5b80630a631576146100805780631d59410a1461015b57806347e09a0b1461019b5780635f81bcd5146101bd575b600080fd5b34801561008c57600080fd5b5061010161009b366004610b6d565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff81169074010000000000000000000000000000000000000000810460e090811b9178010000000000000000000000000000000000000000000000009004901b83565b6040805173ffffffffffffffffffffffffffffffffffffffff90941684527fffffffff0000000000000000000000000000000000000000000000000000000092831660208501529116908201526060015b60405180910390f35b34801561016757600080fd5b5061018b610176366004610baa565b60026020526000908152604090205460ff1681565b6040519015158152602001610152565b3480156101a757600080fd5b506101bb6101b6366004610b6d565b610275565b005b6101d06101cb366004610bcc565b610359565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610152565b34801561020157600080fd5b506101bb610210366004610c78565b6106fb565b34801561022157600080fd5b506101bb6108e4565b34801561023657600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166101d0565b34801561026157600080fd5b506101bb610270366004610baa565b6108f8565b61027d6109af565b60008181526001602081815260408084208151606081018352815473ffffffffffffffffffffffffffffffffffffffff80821683527fffffffff0000000000000000000000000000000000000000000000000000000074010000000000000000000000000000000000000000830460e090811b82168589015278010000000000000000000000000000000000000000000000008404901b8116848701528989529690955294909416905582519051929391169184917fbb7122657ce337703c9113750ec59528e1864bd8bbd1a5e6895e27f868b5fabd91a35050565b60008381526001602090815260408083208151606081018352905473ffffffffffffffffffffffffffffffffffffffff81168083527fffffffff0000000000000000000000000000000000000000000000000000000074010000000000000000000000000000000000000000830460e090811b821696850196909652780100000000000000000000000000000000000000000000000090920490941b1691810191909152908061046a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4e6f20737563682074656d706c61746520696e20746865206c6973742e00000060448201526064015b60405180910390fd5b61047381610a30565b6040805188815273ffffffffffffffffffffffffffffffffffffffff831660208201529194507fe491e278e37782abe0872fe7c7b549cd7b0713d0c5c1e84a81899a5fdf32087b910160405180910390a16000808473ffffffffffffffffffffffffffffffffffffffff1634856020015189896040516020016104f893929190610cc5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261053091610d31565b60006040518083038185875af1925050503d806000811461056d576040519150601f19603f3d011682016040523d82523d6000602084013e610572565b606091505b50915091508161058457805160208201fd5b60408401517fffffffff0000000000000000000000000000000000000000000000000000000016156106a257604080850151815173ffffffffffffffffffffffffffffffffffffffff88166020820181905292849101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610617939291602001610d3d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261064f91610d31565b600060405180830381855af49150503d806000811461068a576040519150601f19603f3d011682016040523d82523d6000602084013e61068f565b606091505b509092509050816106a257805160208201fd5b50505073ffffffffffffffffffffffffffffffffffffffff8216600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055509392505050565b6107036109af565b60008481526001602052604090205473ffffffffffffffffffffffffffffffffffffffff16156107b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f546869732074656d706c617465206e616d6520697320616c726561647920746160448201527f6b656e2e000000000000000000000000000000000000000000000000000000006064820152608401610461565b6040805160608101825273ffffffffffffffffffffffffffffffffffffffff8086168083527fffffffff00000000000000000000000000000000000000000000000000000000808716602080860191825291871685870190815260008b81526001909352868320955186549251915160e090811c7801000000000000000000000000000000000000000000000000027fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff9390911c74010000000000000000000000000000000000000000027fffffffffffffffff00000000000000000000000000000000000000000000000090941691909616179190911716929092179092559151909186917f76a15abe5a3f991b7b1b9e9f9629149df5fe28934e3129cc19882221cd847c5e9190a350505050565b6108ec6109af565b6108f66000610af8565b565b6109006109af565b73ffffffffffffffffffffffffffffffffffffffff81166109a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610461565b6109ac81610af8565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146108f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610461565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f0905073ffffffffffffffffffffffffffffffffffffffff8116610af3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f455243313136373a20637265617465206661696c6564000000000000000000006044820152606401610461565b919050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610b7f57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610af357600080fd5b600060208284031215610bbc57600080fd5b610bc582610b86565b9392505050565b600080600060408486031215610be157600080fd5b83359250602084013567ffffffffffffffff80821115610c0057600080fd5b818601915086601f830112610c1457600080fd5b813581811115610c2357600080fd5b876020828501011115610c3557600080fd5b6020830194508093505050509250925092565b80357fffffffff0000000000000000000000000000000000000000000000000000000081168114610af357600080fd5b60008060008060808587031215610c8e57600080fd5b84359350610c9e60208601610b86565b9250610cac60408601610c48565b9150610cba60608601610c48565b905092959194509250565b7fffffffff0000000000000000000000000000000000000000000000000000000084168152818360048301376000910160040190815292915050565b6000815160005b81811015610d225760208185018101518683015201610d08565b50600093019283525090919050565b6000610bc58284610d01565b7fffffffff00000000000000000000000000000000000000000000000000000000841681526000610d7a610d746004840186610d01565b84610d01565b9594505050505056fea2646970667358221220368849289c3409c9e79908832750241f2a1bdd751d649c7ed58b6544acd3fae664736f6c63430008120033
Deployed Bytecode
0x60806040526004361061007b5760003560e01c8063605ec92d1161004e578063605ec92d146101f5578063715018a6146102155780638da5cb5b1461022a578063f2fde38b1461025557600080fd5b80630a631576146100805780631d59410a1461015b57806347e09a0b1461019b5780635f81bcd5146101bd575b600080fd5b34801561008c57600080fd5b5061010161009b366004610b6d565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff81169074010000000000000000000000000000000000000000810460e090811b9178010000000000000000000000000000000000000000000000009004901b83565b6040805173ffffffffffffffffffffffffffffffffffffffff90941684527fffffffff0000000000000000000000000000000000000000000000000000000092831660208501529116908201526060015b60405180910390f35b34801561016757600080fd5b5061018b610176366004610baa565b60026020526000908152604090205460ff1681565b6040519015158152602001610152565b3480156101a757600080fd5b506101bb6101b6366004610b6d565b610275565b005b6101d06101cb366004610bcc565b610359565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610152565b34801561020157600080fd5b506101bb610210366004610c78565b6106fb565b34801561022157600080fd5b506101bb6108e4565b34801561023657600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166101d0565b34801561026157600080fd5b506101bb610270366004610baa565b6108f8565b61027d6109af565b60008181526001602081815260408084208151606081018352815473ffffffffffffffffffffffffffffffffffffffff80821683527fffffffff0000000000000000000000000000000000000000000000000000000074010000000000000000000000000000000000000000830460e090811b82168589015278010000000000000000000000000000000000000000000000008404901b8116848701528989529690955294909416905582519051929391169184917fbb7122657ce337703c9113750ec59528e1864bd8bbd1a5e6895e27f868b5fabd91a35050565b60008381526001602090815260408083208151606081018352905473ffffffffffffffffffffffffffffffffffffffff81168083527fffffffff0000000000000000000000000000000000000000000000000000000074010000000000000000000000000000000000000000830460e090811b821696850196909652780100000000000000000000000000000000000000000000000090920490941b1691810191909152908061046a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4e6f20737563682074656d706c61746520696e20746865206c6973742e00000060448201526064015b60405180910390fd5b61047381610a30565b6040805188815273ffffffffffffffffffffffffffffffffffffffff831660208201529194507fe491e278e37782abe0872fe7c7b549cd7b0713d0c5c1e84a81899a5fdf32087b910160405180910390a16000808473ffffffffffffffffffffffffffffffffffffffff1634856020015189896040516020016104f893929190610cc5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261053091610d31565b60006040518083038185875af1925050503d806000811461056d576040519150601f19603f3d011682016040523d82523d6000602084013e610572565b606091505b50915091508161058457805160208201fd5b60408401517fffffffff0000000000000000000000000000000000000000000000000000000016156106a257604080850151815173ffffffffffffffffffffffffffffffffffffffff88166020820181905292849101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610617939291602001610d3d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261064f91610d31565b600060405180830381855af49150503d806000811461068a576040519150601f19603f3d011682016040523d82523d6000602084013e61068f565b606091505b509092509050816106a257805160208201fd5b50505073ffffffffffffffffffffffffffffffffffffffff8216600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055509392505050565b6107036109af565b60008481526001602052604090205473ffffffffffffffffffffffffffffffffffffffff16156107b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f546869732074656d706c617465206e616d6520697320616c726561647920746160448201527f6b656e2e000000000000000000000000000000000000000000000000000000006064820152608401610461565b6040805160608101825273ffffffffffffffffffffffffffffffffffffffff8086168083527fffffffff00000000000000000000000000000000000000000000000000000000808716602080860191825291871685870190815260008b81526001909352868320955186549251915160e090811c7801000000000000000000000000000000000000000000000000027fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff9390911c74010000000000000000000000000000000000000000027fffffffffffffffff00000000000000000000000000000000000000000000000090941691909616179190911716929092179092559151909186917f76a15abe5a3f991b7b1b9e9f9629149df5fe28934e3129cc19882221cd847c5e9190a350505050565b6108ec6109af565b6108f66000610af8565b565b6109006109af565b73ffffffffffffffffffffffffffffffffffffffff81166109a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610461565b6109ac81610af8565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146108f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610461565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f0905073ffffffffffffffffffffffffffffffffffffffff8116610af3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f455243313136373a20637265617465206661696c6564000000000000000000006044820152606401610461565b919050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610b7f57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610af357600080fd5b600060208284031215610bbc57600080fd5b610bc582610b86565b9392505050565b600080600060408486031215610be157600080fd5b83359250602084013567ffffffffffffffff80821115610c0057600080fd5b818601915086601f830112610c1457600080fd5b813581811115610c2357600080fd5b876020828501011115610c3557600080fd5b6020830194508093505050509250925092565b80357fffffffff0000000000000000000000000000000000000000000000000000000081168114610af357600080fd5b60008060008060808587031215610c8e57600080fd5b84359350610c9e60208601610b86565b9250610cac60408601610c48565b9150610cba60608601610c48565b905092959194509250565b7fffffffff0000000000000000000000000000000000000000000000000000000084168152818360048301376000910160040190815292915050565b6000815160005b81811015610d225760208185018101518683015201610d08565b50600093019283525090919050565b6000610bc58284610d01565b7fffffffff00000000000000000000000000000000000000000000000000000000841681526000610d7a610d746004840186610d01565b84610d01565b9594505050505056fea2646970667358221220368849289c3409c9e79908832750241f2a1bdd751d649c7ed58b6544acd3fae664736f6c63430008120033
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.