Source Code
Overview
POL Balance
POL Value
$0.00Latest 9 from a total of 9 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer Ownersh... | 39653215 | 1065 days ago | IN | 0 POL | 0.00507881 | ||||
| Deploy Upgradeab... | 39648714 | 1065 days ago | IN | 0 POL | 0.02302611 | ||||
| Register | 39648621 | 1065 days ago | IN | 0 POL | 0.01042236 | ||||
| Register | 39648621 | 1065 days ago | IN | 0 POL | 0.01043147 | ||||
| Register | 39648621 | 1065 days ago | IN | 0 POL | 0.01042834 | ||||
| Register | 39648621 | 1065 days ago | IN | 0 POL | 0.01043337 | ||||
| Register | 39648615 | 1065 days ago | IN | 0 POL | 0.01041637 | ||||
| Register | 39648615 | 1065 days ago | IN | 0 POL | 0.01042589 | ||||
| Register | 39648615 | 1065 days ago | IN | 0 POL | 0.01042385 |
Latest 8 internal transactions
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 39861093 | 1059 days ago | Contract Creation | 0 POL | |||
| 39861093 | 1059 days ago | Contract Creation | 0 POL | |||
| 39648714 | 1065 days ago | Contract Creation | 0 POL | |||
| 39648714 | 1065 days ago | Contract Creation | 0 POL | |||
| 39648714 | 1065 days ago | Contract Creation | 0 POL | |||
| 39648714 | 1065 days ago | Contract Creation | 0 POL | |||
| 39648714 | 1065 days ago | Contract Creation | 0 POL | |||
| 39648714 | 1065 days ago | Contract Creation | 0 POL |
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:
UpgradeableModuleProxyFactory
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 100000 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.17;
import {Ownable} from "openzeppelin/access/Ownable.sol";
import {IModuleMetadata} from "../bases/interfaces/IModuleMetadata.sol";
uint256 constant LATEST_VERSION = type(uint256).max;
contract UpgradeableModuleProxyFactory is Ownable {
error ProxyAlreadyDeployedForNonce();
error FailedInitialization();
error ModuleVersionAlreadyRegistered();
error UnexistentModuleVersion();
event ModuleRegistered(IModuleMetadata indexed implementation, string moduleId, uint256 version);
event ModuleProxyCreated(address indexed proxy, IModuleMetadata indexed implementation);
mapping(string => mapping(uint256 => IModuleMetadata)) internal modules;
mapping(string => uint256) public latestModuleVersion;
function register(IModuleMetadata implementation) external onlyOwner {
string memory moduleId = implementation.moduleId();
uint256 version = implementation.moduleVersion();
if (address(modules[moduleId][version]) != address(0)) {
revert ModuleVersionAlreadyRegistered();
}
modules[moduleId][version] = implementation;
if (version > latestModuleVersion[moduleId]) {
latestModuleVersion[moduleId] = version;
}
emit ModuleRegistered(implementation, moduleId, version);
}
function getImplementation(string memory moduleId, uint256 version)
public
view
returns (IModuleMetadata implementation)
{
if (version == LATEST_VERSION) {
version = latestModuleVersion[moduleId];
}
implementation = modules[moduleId][version];
if (address(implementation) == address(0)) {
revert UnexistentModuleVersion();
}
}
function deployUpgradeableModule(string memory moduleId, uint256 version, bytes memory initializer, uint256 salt)
public
returns (address proxy)
{
return deployUpgradeableModule(getImplementation(moduleId, version), initializer, salt);
}
function deployUpgradeableModule(IModuleMetadata implementation, bytes memory initializer, uint256 salt)
public
returns (address proxy)
{
proxy = createProxy(implementation, keccak256(abi.encodePacked(keccak256(initializer), salt)));
(bool success,) = proxy.call(initializer);
if (!success) {
revert FailedInitialization();
}
}
/**
* @dev Proxy EVM code from factory/proxy-asm generated with ETK
*/
function createProxy(IModuleMetadata implementation, bytes32 salt) internal returns (address proxy) {
bytes memory initcode = abi.encodePacked(
hex"73",
implementation,
hex"7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55603b8060403d393df3363d3d3760393d3d3d3d3d363d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4913d913e3d9257fd5bf3"
);
assembly {
proxy := create2(0, add(initcode, 0x20), mload(initcode), salt)
}
if (proxy == address(0)) {
revert ProxyAlreadyDeployedForNonce();
}
emit ModuleProxyCreated(proxy, implementation);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.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 anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing 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 v4.4.1 (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;
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
interface IModuleMetadata {
function moduleId() external pure returns (string memory);
function moduleVersion() external pure returns (uint256);
}{
"remappings": [
"@gnosis.pm/safe-contracts/=lib/safe-contracts/",
"@openzeppelin/contracts/=lib/zeppelin-solidity/contracts/",
"BokkyPooBahsDateTimeLibrary/=lib/BokkyPooBahsDateTimeLibrary/",
"datetime/=lib/BokkyPooBahsDateTimeLibrary/contracts/",
"ds-test/=lib/forge-std/lib/ds-test/src/",
"forge-std/=lib/forge-std/src/",
"llamapay/=lib/llamapay/contracts/",
"openzeppelin/=lib/zeppelin-solidity/contracts/",
"safe-contracts/=lib/safe-contracts/contracts/",
"safe/=lib/safe-contracts/contracts/",
"zeppelin-solidity/=lib/zeppelin-solidity/"
],
"optimizer": {
"enabled": true,
"runs": 100000
},
"metadata": {
"bytecodeHash": "ipfs"
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"evmVersion": "london",
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"name":"FailedInitialization","type":"error"},{"inputs":[],"name":"ModuleVersionAlreadyRegistered","type":"error"},{"inputs":[],"name":"ProxyAlreadyDeployedForNonce","type":"error"},{"inputs":[],"name":"UnexistentModuleVersion","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"proxy","type":"address"},{"indexed":true,"internalType":"contract IModuleMetadata","name":"implementation","type":"address"}],"name":"ModuleProxyCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IModuleMetadata","name":"implementation","type":"address"},{"indexed":false,"internalType":"string","name":"moduleId","type":"string"},{"indexed":false,"internalType":"uint256","name":"version","type":"uint256"}],"name":"ModuleRegistered","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"},{"inputs":[{"internalType":"string","name":"moduleId","type":"string"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"bytes","name":"initializer","type":"bytes"},{"internalType":"uint256","name":"salt","type":"uint256"}],"name":"deployUpgradeableModule","outputs":[{"internalType":"address","name":"proxy","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IModuleMetadata","name":"implementation","type":"address"},{"internalType":"bytes","name":"initializer","type":"bytes"},{"internalType":"uint256","name":"salt","type":"uint256"}],"name":"deployUpgradeableModule","outputs":[{"internalType":"address","name":"proxy","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"moduleId","type":"string"},{"internalType":"uint256","name":"version","type":"uint256"}],"name":"getImplementation","outputs":[{"internalType":"contract IModuleMetadata","name":"implementation","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"latestModuleVersion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IModuleMetadata","name":"implementation","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610d898061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638da5cb5b1161005b5780638da5cb5b14610120578063e8009dda1461013e578063ed786c6214610151578063f2fde38b1461016457600080fd5b80634420e4861461008d5780634e0eb03d146100a257806362271999146100e0578063715018a614610118575b600080fd5b6100a061009b3660046109a5565b610177565b005b6100cd6100b0366004610ae3565b805160208183018101805160028252928201919093012091525481565b6040519081526020015b60405180910390f35b6100f36100ee366004610b20565b610421565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100d7565b6100a0610440565b60005473ffffffffffffffffffffffffffffffffffffffff166100f3565b6100f361014c366004610b95565b610454565b6100f361015f366004610bda565b61051f565b6100a06101723660046109a5565b610611565b61017f6106cd565b60008173ffffffffffffffffffffffffffffffffffffffff1663a1308f276040518163ffffffff1660e01b8152600401600060405180830381865afa1580156101cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526102129190810190610c57565b905060008273ffffffffffffffffffffffffffffffffffffffff1663baa3b4d76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610261573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102859190610cc5565b9050600073ffffffffffffffffffffffffffffffffffffffff166001836040516102af9190610cde565b90815260408051602092819003830190206000858152925290205473ffffffffffffffffffffffffffffffffffffffff1614610317576040517f9b65e41500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826001836040516103289190610cde565b908152604080516020928190038301812060008681529352912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9390931692909217909155600290610394908490610cde565b9081526020016040518091039020548111156103cc57806002836040516103bb9190610cde565b908152604051908190036020019020555b8273ffffffffffffffffffffffffffffffffffffffff167f0588989f5c0f7adc0ee11a57cb34e43779b0f896d1abebf46030993eecdb58708383604051610414929190610cfa565b60405180910390a2505050565b60006104376104308686610454565b848461051f565b95945050505050565b6104486106cd565b610452600061074e565b565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361049f5760028360405161048d9190610cde565b90815260200160405180910390205491505b6001836040516104af9190610cde565b90815260408051602092819003830190206000858152925290205473ffffffffffffffffffffffffffffffffffffffff16905080610519576040517fdd9ece5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b92915050565b600061056384848051906020012084604051602001610548929190918252602082015260400190565b604051602081830303815290604052805190602001206107c3565b905060008173ffffffffffffffffffffffffffffffffffffffff168460405161058c9190610cde565b6000604051808303816000865af19150503d80600081146105c9576040519150601f19603f3d011682016040523d82523d6000602084013e6105ce565b606091505b5050905080610609576040517f7dabd39900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b509392505050565b6106196106cd565b73ffffffffffffffffffffffffffffffffffffffff81166106c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6106ca8161074e565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610452576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106b8565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040517f730000000000000000000000000000000000000000000000000000000000000060208201527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b1660218201527f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382b60358201527fbc55603b8060403d393df3363d3d3760393d3d3d3d3d363d7f360894a13ba1a360558201527f210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4913d913e60758201527f3d9257fd5bf3000000000000000000000000000000000000000000000000000060958201526000908190609b016040516020818303038152906040529050828151602083016000f5915073ffffffffffffffffffffffffffffffffffffffff8216610922576040517f3f967bf200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc518929d67245722c5358eae559512c9aa58aec6a1db24e57cb222f36232eeca60405160405180910390a35092915050565b73ffffffffffffffffffffffffffffffffffffffff811681146106ca57600080fd5b6000602082840312156109b757600080fd5b81356109c281610983565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610a3f57610a3f6109c9565b604052919050565b600067ffffffffffffffff821115610a6157610a616109c9565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112610a9e57600080fd5b8135610ab1610aac82610a47565b6109f8565b818152846020838601011115610ac657600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215610af557600080fd5b813567ffffffffffffffff811115610b0c57600080fd5b610b1884828501610a8d565b949350505050565b60008060008060808587031215610b3657600080fd5b843567ffffffffffffffff80821115610b4e57600080fd5b610b5a88838901610a8d565b9550602087013594506040870135915080821115610b7757600080fd5b50610b8487828801610a8d565b949793965093946060013593505050565b60008060408385031215610ba857600080fd5b823567ffffffffffffffff811115610bbf57600080fd5b610bcb85828601610a8d565b95602094909401359450505050565b600080600060608486031215610bef57600080fd5b8335610bfa81610983565b9250602084013567ffffffffffffffff811115610c1657600080fd5b610c2286828701610a8d565b925050604084013590509250925092565b60005b83811015610c4e578181015183820152602001610c36565b50506000910152565b600060208284031215610c6957600080fd5b815167ffffffffffffffff811115610c8057600080fd5b8201601f81018413610c9157600080fd5b8051610c9f610aac82610a47565b818152856020838501011115610cb457600080fd5b610437826020830160208601610c33565b600060208284031215610cd757600080fd5b5051919050565b60008251610cf0818460208701610c33565b9190910192915050565b6040815260008351806040840152610d19816060850160208801610c33565b602083019390935250601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160160600191905056fea26469706673582212200cc1adb6cc184c8a8274187e44f37df658c2711379d934ed8f35b1fd3868654164736f6c63430008110033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100885760003560e01c80638da5cb5b1161005b5780638da5cb5b14610120578063e8009dda1461013e578063ed786c6214610151578063f2fde38b1461016457600080fd5b80634420e4861461008d5780634e0eb03d146100a257806362271999146100e0578063715018a614610118575b600080fd5b6100a061009b3660046109a5565b610177565b005b6100cd6100b0366004610ae3565b805160208183018101805160028252928201919093012091525481565b6040519081526020015b60405180910390f35b6100f36100ee366004610b20565b610421565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100d7565b6100a0610440565b60005473ffffffffffffffffffffffffffffffffffffffff166100f3565b6100f361014c366004610b95565b610454565b6100f361015f366004610bda565b61051f565b6100a06101723660046109a5565b610611565b61017f6106cd565b60008173ffffffffffffffffffffffffffffffffffffffff1663a1308f276040518163ffffffff1660e01b8152600401600060405180830381865afa1580156101cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526102129190810190610c57565b905060008273ffffffffffffffffffffffffffffffffffffffff1663baa3b4d76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610261573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102859190610cc5565b9050600073ffffffffffffffffffffffffffffffffffffffff166001836040516102af9190610cde565b90815260408051602092819003830190206000858152925290205473ffffffffffffffffffffffffffffffffffffffff1614610317576040517f9b65e41500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826001836040516103289190610cde565b908152604080516020928190038301812060008681529352912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9390931692909217909155600290610394908490610cde565b9081526020016040518091039020548111156103cc57806002836040516103bb9190610cde565b908152604051908190036020019020555b8273ffffffffffffffffffffffffffffffffffffffff167f0588989f5c0f7adc0ee11a57cb34e43779b0f896d1abebf46030993eecdb58708383604051610414929190610cfa565b60405180910390a2505050565b60006104376104308686610454565b848461051f565b95945050505050565b6104486106cd565b610452600061074e565b565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361049f5760028360405161048d9190610cde565b90815260200160405180910390205491505b6001836040516104af9190610cde565b90815260408051602092819003830190206000858152925290205473ffffffffffffffffffffffffffffffffffffffff16905080610519576040517fdd9ece5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b92915050565b600061056384848051906020012084604051602001610548929190918252602082015260400190565b604051602081830303815290604052805190602001206107c3565b905060008173ffffffffffffffffffffffffffffffffffffffff168460405161058c9190610cde565b6000604051808303816000865af19150503d80600081146105c9576040519150601f19603f3d011682016040523d82523d6000602084013e6105ce565b606091505b5050905080610609576040517f7dabd39900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b509392505050565b6106196106cd565b73ffffffffffffffffffffffffffffffffffffffff81166106c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6106ca8161074e565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610452576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106b8565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040517f730000000000000000000000000000000000000000000000000000000000000060208201527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b1660218201527f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382b60358201527fbc55603b8060403d393df3363d3d3760393d3d3d3d3d363d7f360894a13ba1a360558201527f210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4913d913e60758201527f3d9257fd5bf3000000000000000000000000000000000000000000000000000060958201526000908190609b016040516020818303038152906040529050828151602083016000f5915073ffffffffffffffffffffffffffffffffffffffff8216610922576040517f3f967bf200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc518929d67245722c5358eae559512c9aa58aec6a1db24e57cb222f36232eeca60405160405180910390a35092915050565b73ffffffffffffffffffffffffffffffffffffffff811681146106ca57600080fd5b6000602082840312156109b757600080fd5b81356109c281610983565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610a3f57610a3f6109c9565b604052919050565b600067ffffffffffffffff821115610a6157610a616109c9565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112610a9e57600080fd5b8135610ab1610aac82610a47565b6109f8565b818152846020838601011115610ac657600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215610af557600080fd5b813567ffffffffffffffff811115610b0c57600080fd5b610b1884828501610a8d565b949350505050565b60008060008060808587031215610b3657600080fd5b843567ffffffffffffffff80821115610b4e57600080fd5b610b5a88838901610a8d565b9550602087013594506040870135915080821115610b7757600080fd5b50610b8487828801610a8d565b949793965093946060013593505050565b60008060408385031215610ba857600080fd5b823567ffffffffffffffff811115610bbf57600080fd5b610bcb85828601610a8d565b95602094909401359450505050565b600080600060608486031215610bef57600080fd5b8335610bfa81610983565b9250602084013567ffffffffffffffff811115610c1657600080fd5b610c2286828701610a8d565b925050604084013590509250925092565b60005b83811015610c4e578181015183820152602001610c36565b50506000910152565b600060208284031215610c6957600080fd5b815167ffffffffffffffff811115610c8057600080fd5b8201601f81018413610c9157600080fd5b8051610c9f610aac82610a47565b818152856020838501011115610cb457600080fd5b610437826020830160208601610c33565b600060208284031215610cd757600080fd5b5051919050565b60008251610cf0818460208701610c33565b9190910192915050565b6040815260008351806040840152610d19816060850160208801610c33565b602083019390935250601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160160600191905056fea26469706673582212200cc1adb6cc184c8a8274187e44f37df658c2711379d934ed8f35b1fd3868654164736f6c63430008110033
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in POL
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.