ContractDeployer

Abstract

0x0000000000000000000000000000000000008006

Solidity v0.8.20+commit.a1b79de6

🤖
Query this contract from your AI
Reference: 0x0000000000000000000000000000000000008006
Sample prompt: "Tell me the current state of abstract/0x0000000000000000000000000000000000008006"
No AI wired up yet? → mcp.smarts.md
Abstract is a docs-only chain on Smarts: source code and ABI are indexed, but live on-chain data (state, recent events, admin profile) is not currently available. AI agents can still query get_contract_info and get_contract_source via MCP.

Overview

Read Functions
4
Write Functions
8
Events
3

Read Functions

extendedAccountVersion(_address: address) view

Returns the account abstraction version if `_address` is a deployed contract. Returns the latest supported account abstraction version if `_address` is an EOA.

Parameters

Name Type Description
_address address

Returns

Name Type Description
uint8
getAccountInfo(_address: address) view

Returns information about a certain account.

Parameters

Name Type Description
_address address

Returns

Name Type Description
info tuple
getNewAddressCreate(_sender: address, _senderNonce: uint256) pure

Calculates the address of a deployed contract via create

Parameters

Name Type Description
_sender address The account that deploys the contract.
_senderNonce uint256 The deploy nonce of the sender's account.

Returns

Name Type Description
newAddress address
getNewAddressCreate2(_sender: address, _bytecodeHash: bytes32, _salt: bytes32, _input: bytes) view

Calculates the address of a deployed contract via create2

Parameters

Name Type Description
_sender address The account that deploys the contract.
_bytecodeHash bytes32 The correctly formatted hash of the bytecode.
_salt bytes32 The create2 salt.
_input bytes The constructor data.

Returns

Name Type Description
newAddress address newAddress The derived address of the account.

Write Functions

create(_salt: bytes32, _bytecodeHash: bytes32, _input: bytes) payable

Deploys a contract with similar address derivation rules to the EVM's `CREATE` opcode.

dev: This method also accepts nonce as one of its parameters. It is not used anywhere and it needed simply for the consistency for the compiler Note: this method may be callable only in system mode, that is checked in the `createAccount` by `onlySystemCall` modifier.

Parameters

Name Type Description
_salt bytes32
_bytecodeHash bytes32 The correctly formatted hash of the bytecode.
_input bytes The constructor calldata

Returns

Name Type Description
address
create2(_salt: bytes32, _bytecodeHash: bytes32, _input: bytes) payable

Deploys a contract with similar address derivation rules to the EVM's `CREATE2` opcode.

Parameters

Name Type Description
_salt bytes32 The CREATE2 salt
_bytecodeHash bytes32 The correctly formatted hash of the bytecode.
_input bytes The constructor calldata

Returns

Name Type Description
address
create2Account(_salt: bytes32, _bytecodeHash: bytes32, _input: bytes, _aaVersion: uint8) payable

Deploys a contract account with similar address derivation rules to the EVM's `CREATE2` opcode.

Parameters

Name Type Description
_salt bytes32 The CREATE2 salt
_bytecodeHash bytes32 The correctly formatted hash of the bytecode.
_input bytes The constructor calldata.
_aaVersion uint8 The account abstraction version to use. Note: this method may be callable only in system mode, that is checked in the `createAccount` by `onlySystemCall` modifier.

Returns

Name Type Description
address
createAccount(bytes32, _bytecodeHash: bytes32, _input: bytes, _aaVersion: uint8) payable

Deploys a contract account with similar address derivation rules to the EVM's `CREATE` opcode.

dev: This method also accepts salt as one of its parameters. It is not used anywhere and it needed simply for the consistency for the compiler

Parameters

Name Type Description
bytes32
_bytecodeHash bytes32 The correctly formatted hash of the bytecode.
_input bytes The constructor calldata.
_aaVersion uint8 The account abstraction version to use.

Returns

Name Type Description
address
forceDeployOnAddress(_deployment: tuple, _sender: address) payable

The method that can be used to forcefully deploy a contract.

Parameters

Name Type Description
_deployment tuple Information about the forced deployment.
_sender address The `msg.sender` inside the constructor call.
forceDeployOnAddresses(_deployments: tuple[]) payable

This method is to be used only during an upgrade to set bytecodes on specific addresses.

dev: We do not require `onlySystemCall` here, since the method is accessible only by `FORCE_DEPLOYER`.

Parameters

Name Type Description
_deployments tuple[]
updateAccountVersion(_version: uint8) nonpayable

Update the used version of the account.

dev: Note that it allows changes from account to non-account and vice versa.

Parameters

Name Type Description
_version uint8 The new version of the AA protocol to use.
updateNonceOrdering(_nonceOrdering: uint8) nonpayable

Updates the nonce ordering of the account. Currently, it only allows changes from sequential to arbitrary ordering.

Parameters

Name Type Description
_nonceOrdering uint8 The new nonce ordering to use.

Events

AccountNonceOrderingUpdated(accountAddress: address, nonceOrdering: uint8)
Name Type Indexed Description
accountAddress address
nonceOrdering uint8
AccountVersionUpdated(accountAddress: address, aaVersion: uint8)
Name Type Indexed Description
accountAddress address
aaVersion uint8
ContractDeployed(deployerAddress: address, bytecodeHash: bytes32, contractAddress: address)
Name Type Indexed Description
deployerAddress address
bytecodeHash bytes32
contractAddress address