Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 from a total of 58 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Create Account | 23737435 | 69 days ago | IN | 0 ETH | 0.00004195 | ||||
| Create Account | 23642540 | 82 days ago | IN | 0 ETH | 0.00001187 | ||||
| Create Account | 22903809 | 185 days ago | IN | 0 ETH | 0.00029879 | ||||
| Create Account | 22856721 | 192 days ago | IN | 0 ETH | 0.00021281 | ||||
| Create Account | 22785601 | 202 days ago | IN | 0 ETH | 0.00002646 | ||||
| Create Account | 22759376 | 205 days ago | IN | 0 ETH | 0.00000928 | ||||
| Create Account | 22744881 | 207 days ago | IN | 0 ETH | 0.00002133 | ||||
| Create Account | 22742452 | 208 days ago | IN | 0 ETH | 0.00000932 | ||||
| Create Account | 22702982 | 213 days ago | IN | 0 ETH | 0.00001728 | ||||
| 0x06134716 | 22676816 | 217 days ago | IN | 0 ETH | 0.00008425 | ||||
| Set To Custom Se... | 22676754 | 217 days ago | IN | 0 ETH | 0.00011754 | ||||
| Create Account | 22664869 | 218 days ago | IN | 0 ETH | 0.00001488 | ||||
| Create Account | 22664424 | 218 days ago | IN | 0 ETH | 0.00001574 | ||||
| Create Account | 22662249 | 219 days ago | IN | 0 ETH | 0.00002489 | ||||
| Create Account | 22619647 | 225 days ago | IN | 0 ETH | 0.00033321 | ||||
| Create Account | 22618080 | 225 days ago | IN | 0 ETH | 0.0004561 | ||||
| Create Account | 22617810 | 225 days ago | IN | 0 ETH | 0.00062089 | ||||
| Create Account | 22605624 | 227 days ago | IN | 0 ETH | 0.00002589 | ||||
| Create Account | 22602983 | 227 days ago | IN | 0 ETH | 0.00018124 | ||||
| Create Account | 22516413 | 239 days ago | IN | 0 ETH | 0.00002714 | ||||
| Create Account | 22514538 | 239 days ago | IN | 0 ETH | 0.00001017 | ||||
| Create Account | 22511809 | 240 days ago | IN | 0 ETH | 0.00002164 | ||||
| Create Account | 22433011 | 251 days ago | IN | 0 ETH | 0.00018974 | ||||
| Create Account | 22333912 | 265 days ago | IN | 0 ETH | 0.00009038 | ||||
| Create Account | 22331525 | 265 days ago | IN | 0 ETH | 0.0000934 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| 0x3d60ad80 | 24220844 | 31 hrs ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 24177658 | 7 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23948231 | 39 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23943709 | 40 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23927632 | 42 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23801996 | 59 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23799938 | 60 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23798648 | 60 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23766576 | 64 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23740415 | 68 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23737435 | 69 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23730435 | 69 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23721137 | 71 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23714088 | 72 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23712551 | 72 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23712324 | 72 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23712195 | 72 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23707138 | 73 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23706508 | 73 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23705576 | 73 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23695299 | 74 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23693112 | 75 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23657825 | 80 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23642540 | 82 days ago | Contract Creation | 0 ETH | |||
| 0x3d60ad80 | 23623542 | 84 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:
ERC6551Registry
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 200 runs
Other Settings:
london EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
interface IERC6551Registry {
/**
* @dev The registry MUST emit the ERC6551AccountCreated event upon successful account creation.
*/
event ERC6551AccountCreated(
address account,
address indexed implementation,
bytes32 salt,
uint256 chainId,
address indexed tokenContract,
uint256 indexed tokenId
);
/**
* @dev The registry MUST revert with AccountCreationFailed error if the create2 operation fails.
*/
error AccountCreationFailed();
/**
* @dev Creates a token bound account for a non-fungible token.
*
* If account has already been created, returns the account address without calling create2.
*
* Emits ERC6551AccountCreated event.
*
* @return account The address of the token bound account
*/
function createAccount(
address implementation,
bytes32 salt,
uint256 chainId,
address tokenContract,
uint256 tokenId
) external returns (address account);
/**
* @dev Returns the computed token bound account address for a non-fungible token.
*
* @return account The address of the token bound account
*/
function account(
address implementation,
bytes32 salt,
uint256 chainId,
address tokenContract,
uint256 tokenId
) external view returns (address account);
}
contract ERC6551Registry is IERC6551Registry {
function createAccount(
address implementation,
bytes32 salt,
uint256 chainId,
address tokenContract,
uint256 tokenId
) external returns (address) {
assembly {
// Memory Layout:
// ----
// 0x00 0xff (1 byte)
// 0x01 registry (address) (20 bytes)
// 0x15 salt (bytes32) (32 bytes)
// 0x35 Bytecode Hash (bytes32) (32 bytes)
// ----
// 0x55 ERC-1167 Constructor + Header (20 bytes)
// 0x69 implementation (address) (20 bytes)
// 0x5D ERC-1167 Footer (15 bytes)
// 0x8C salt (uint256) (32 bytes)
// 0xAC chainId (uint256) (32 bytes)
// 0xCC tokenContract (address) (32 bytes)
// 0xEC tokenId (uint256) (32 bytes)
// Silence unused variable warnings
pop(chainId)
// Copy bytecode + constant data to memory
calldatacopy(0x8c, 0x24, 0x80) // salt, chainId, tokenContract, tokenId
mstore(0x6c, 0x5af43d82803e903d91602b57fd5bf3) // ERC-1167 footer
mstore(0x5d, implementation) // implementation
mstore(0x49, 0x3d60ad80600a3d3981f3363d3d373d3d3d363d73) // ERC-1167 constructor + header
// Copy create2 computation data to memory
mstore8(0x00, 0xff) // 0xFF
mstore(0x35, keccak256(0x55, 0xb7)) // keccak256(bytecode)
mstore(0x01, shl(96, address())) // registry address
mstore(0x15, salt) // salt
// Compute account address
let computed := keccak256(0x00, 0x55)
// If the account has not yet been deployed
if iszero(extcodesize(computed)) {
// Deploy account contract
let deployed := create2(0, 0x55, 0xb7, salt)
// Revert if the deployment fails
if iszero(deployed) {
mstore(0x00, 0x20188a59) // `AccountCreationFailed()`
revert(0x1c, 0x04)
}
// Store account address in memory before salt and chainId
mstore(0x6c, deployed)
// Emit the ERC6551AccountCreated event
log4(
0x6c,
0x60,
// `ERC6551AccountCreated(address,address,bytes32,uint256,address,uint256)`
0x79f19b3655ee38b1ce526556b7731a20c8f218fbda4a3990b6cc4172fdf88722,
implementation,
tokenContract,
tokenId
)
// Return the account address
return(0x6c, 0x20)
}
// Otherwise, return the computed account address
mstore(0x00, shr(96, shl(96, computed)))
return(0x00, 0x20)
}
}
function account(
address implementation,
bytes32 salt,
uint256 chainId,
address tokenContract,
uint256 tokenId
) external view returns (address) {
assembly {
// Silence unused variable warnings
pop(chainId)
pop(tokenContract)
pop(tokenId)
// Copy bytecode + constant data to memory
calldatacopy(0x8c, 0x24, 0x80) // salt, chainId, tokenContract, tokenId
mstore(0x6c, 0x5af43d82803e903d91602b57fd5bf3) // ERC-1167 footer
mstore(0x5d, implementation) // implementation
mstore(0x49, 0x3d60ad80600a3d3981f3363d3d373d3d3d363d73) // ERC-1167 constructor + header
// Copy create2 computation data to memory
mstore8(0x00, 0xff) // 0xFF
mstore(0x35, keccak256(0x55, 0xb7)) // keccak256(bytecode)
mstore(0x01, shl(96, address())) // registry address
mstore(0x15, salt) // salt
// Store computed account address in memory
mstore(0x00, shr(96, shl(96, keccak256(0x00, 0x55))))
// Return computed account address
return(0x00, 0x20)
}
}
}{
"remappings": [
"ds-test/=lib/forge-std/lib/ds-test/src/",
"forge-std/=lib/forge-std/src/",
"@openzeppelin/=lib/openzeppelin-contracts/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"useLiteralContent": false,
"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":"AccountCreationFailed","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"implementation","type":"address"},{"indexed":false,"internalType":"bytes32","name":"salt","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"chainId","type":"uint256"},{"indexed":true,"internalType":"address","name":"tokenContract","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC6551AccountCreated","type":"event"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"tokenContract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"account","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"tokenContract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"createAccount","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b5061023b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063246a00211461003b5780638a54c52f1461006a575b600080fd5b61004e6100493660046101b7565b61007d565b6040516001600160a01b03909116815260200160405180910390f35b61004e6100783660046101b7565b6100e1565b600060806024608c376e5af43d82803e903d91602b57fd5bf3606c5285605d52733d60ad80600a3d3981f3363d3d373d3d3d363d7360495260ff60005360b76055206035523060601b60015284601552605560002060601b60601c60005260206000f35b600060806024608c376e5af43d82803e903d91602b57fd5bf3606c5285605d52733d60ad80600a3d3981f3363d3d373d3d3d363d7360495260ff60005360b76055206035523060601b600152846015526055600020803b61018b578560b760556000f580610157576320188a596000526004601cfd5b80606c52508284887f79f19b3655ee38b1ce526556b7731a20c8f218fbda4a3990b6cc4172fdf887226060606ca46020606cf35b8060601b60601c60005260206000f35b80356001600160a01b03811681146101b257600080fd5b919050565b600080600080600060a086880312156101cf57600080fd5b6101d88661019b565b945060208601359350604086013592506101f46060870161019b565b94979396509194608001359291505056fea2646970667358221220ea2fe53af507453c64dd7c1db05549fa47a298dfb825d6d11e1689856135f16764736f6c63430008110033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063246a00211461003b5780638a54c52f1461006a575b600080fd5b61004e6100493660046101b7565b61007d565b6040516001600160a01b03909116815260200160405180910390f35b61004e6100783660046101b7565b6100e1565b600060806024608c376e5af43d82803e903d91602b57fd5bf3606c5285605d52733d60ad80600a3d3981f3363d3d373d3d3d363d7360495260ff60005360b76055206035523060601b60015284601552605560002060601b60601c60005260206000f35b600060806024608c376e5af43d82803e903d91602b57fd5bf3606c5285605d52733d60ad80600a3d3981f3363d3d373d3d3d363d7360495260ff60005360b76055206035523060601b600152846015526055600020803b61018b578560b760556000f580610157576320188a596000526004601cfd5b80606c52508284887f79f19b3655ee38b1ce526556b7731a20c8f218fbda4a3990b6cc4172fdf887226060606ca46020606cf35b8060601b60601c60005260206000f35b80356001600160a01b03811681146101b257600080fd5b919050565b600080600080600060a086880312156101cf57600080fd5b6101d88661019b565b945060208601359350604086013592506101f46060870161019b565b94979396509194608001359291505056fea2646970667358221220ea2fe53af507453c64dd7c1db05549fa47a298dfb825d6d11e1689856135f16764736f6c63430008110033
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.