FetchErrors
Set of errors while fetching from a json rpc http endpoint.
Allocator.Error || Client.RequestError || Client.Request.WaitError ||
Client.Request.FinishError || Client.Request.ReadError || std.Uri.ParseError || error{ StreamTooLong, InvalidRequest }Forking
Values needed for the anvil_reset request.
Properties
struct {
jsonRpcUrl: []const u8
blockNumber: ?u64 = null
}Reset
Struct representation of a anvil_reset request.
Properties
struct {
forking: Forking
}AnvilRequest
Similar to Ethereum RPC Request but only for AnvilMethods.
Signature
pub fn AnvilRequest(comptime T: type) typeAnvilMethods
Set of methods implemented by this client for use with anvil.
Properties
enum {
anvil_setBalance
anvil_setCode
anvil_setChainId
anvil_setCoinbase
anvil_setNonce
anvil_setNextBlockBaseFeePerGas
anvil_setMinGasPrice
anvil_dropTransaction
anvil_mine
anvil_reset
anvil_impersonateAccount
anvil_stopImpersonatingAccount
anvil_setRpcUrl
anvil_setLoggingEnabled
}AnvilStartOptions
All startup options for starting an anvil proccess.
All null or false will not be emitted if you use parseToArgumentsSlice
Properties
struct {
/// Number of accounts to start anvil with
accounts: ?u8 = null
/// Enable autoImpersonate on start up.
@"auto-impersonate": bool = false
/// Block time in seconds for interval mining.
@"block-time": ?u64 = null
/// Choose the EVM hardfork to use.
hardfork: ?SpecId = null
/// The path to initialize the `genesis.json` file.
init: ?[]const u8 = null
/// BIP39 mnemonic phrase used to generate accounts.
mnemonic: ?[]const u8 = null
/// Disable auto and interval mining.
@"no-mining": bool = false
/// The order were the transactions are ordered in the mempool.
order: ?enum { fifo, fees } = null
/// The port number to listen on.
port: ?u16 = null
/// Enables steps tracing for debug calls. Returns geth style traces.
@"steps-tracing": bool = false
/// Starts the IPC endpoint at a given path.
ipc: ?[]const u8 = null
/// Don't send messages to stdout on startup.
silent: bool = false
/// Set the timestamp of the genesis block.
timestamp: ?u64 = null
/// Disable deploying the default `CREATE2` factory when running anvil without forking.
@"disable-default-create2-deployer": bool = false
/// Fetch state over a remote endpoint instead of starting from an empty state.
@"fork-url": ?[]const u8 = null
/// Fetch state from a specific block number over a remote endpoint. This is dependent of passing `fork-url`.
@"fork-block-number": ?u64 = null
/// Initial retry backoff on encountering errors.
@"fork-retry-backoff": ?u64 = null
/// Number of retries per request for spurious networks.
retries: bool = false
/// Timeout in ms for requests sent to the remote JSON-RPC server in forking mode.
timeout: ?u64 = null
/// Sets the number of assumed available compute units per second for this provider.
@"compute-units-per-second": ?u64 = null
/// Disables rate limiting for this node’s provider. Will always override --compute-units-per-second if present.
@"no-rate-limit": bool = false
/// Disables RPC caching; all storage slots are read from the endpoint. This flag overrides the project’s configuration file
@"no-storage-cache": bool = false
/// The base fee in a block
@"base-fee": ?u64 = null
/// The chain ID
@"chain-id": ?u64 = null
/// EIP-170: Contract code size limit in bytes. Useful to increase for tests.
@"code-size-limit": ?u64 = null
/// The block gas limit
@"gas-limit": ?u64 = null
/// The gas price
@"gas-price": ?u64 = null
/// Set the CORS `allow_origin`
@"allow-origin": ?[]const u8 = null
/// Disable CORS
@"no-cors": bool = false
/// The IP address server will listen on.
host: ?[]const u8 = null
/// Writes output of `anvil` as json to use specified file.
@"config-out": ?[]const u8 = null
/// Dont keep full chain history.
@"prune-history": bool = false
}ParseToArgumentsSlice
Converts self into a list of slices that will be used by the anvil process.
If self is set with default value only the anvil command will be set in the list.
Signature
pub fn parseToArgumentsSlice(
self: AnvilStartOptions,
allocator: Allocator,
) (Allocator.Error || error{NoSpaceLeft})![]const []const u8InitOptions
Set of inital options to start the http client.
Properties
struct {
/// Allocator to use to create the ChildProcess and other allocations
allocator: Allocator
/// The port to use in anvil
port: u16 = 6969
}InitClient
Inits the client but doesn't start a seperate process.
Use this if you already have an anvil instance running
Signature
pub fn initClient(
self: *Anvil,
options: InitOptions,
) voidInitProcess
Start the anvil as a child process. The arguments list will be created based on
AnvilStartOptions. This will need to allocate memory since it will create the list.
If options are set to their default value it will only start with anvil and no arguments.
Signature
pub fn initProcess(
allocator: Allocator,
options: AnvilStartOptions,
) (Allocator.Error || error{NoSpaceLeft} || Child.SpawnError)!ChildDeinit
Cleans up the http client
Signature
pub fn deinit(self: *Anvil) voidSetBalance
Sets the balance of a anvil account
Signature
pub fn setBalance(
self: *Anvil,
address: Address,
balance: u256,
) FetchErrors!voidSetCode
Changes the contract code of a address.
Signature
pub fn setCode(
self: *Anvil,
address: Address,
code: Hex,
) FetchErrors!voidSetRpcUrl
Changes the rpc of the anvil connection
Signature
pub fn setRpcUrl(
self: *Anvil,
rpc_url: []const u8,
) FetchErrors!voidSetCoinbase
Changes the coinbase address
Signature
pub fn setCoinbase(
self: *Anvil,
address: Address,
) FetchErrors!voidSetLoggingEnable
Enable anvil verbose logging for anvil.
Signature
pub fn setLoggingEnable(self: *Anvil) FetchErrors!voidSetMinGasPrice
Changes the min gasprice from the anvil fork
Signature
pub fn setMinGasPrice(
self: *Anvil,
new_price: u64,
) FetchErrors!voidSetNextBlockBaseFeePerGas
Changes the block base fee from the anvil fork
Signature
pub fn setNextBlockBaseFeePerGas(
self: *Anvil,
new_price: u64,
) FetchErrors!voidSetChainId
Changes the networks chainId
Signature
pub fn setChainId(
self: *Anvil,
new_id: u64,
) FetchErrors!voidSetNonce
Changes the nonce of a account
Signature
pub fn setNonce(
self: *Anvil,
address: Address,
new_nonce: u64,
) FetchErrors!voidDropTransaction
Drops a pending transaction from the mempool
Signature
pub fn dropTransaction(
self: *Anvil,
tx_hash: Hash,
) FetchErrors!voidMine
Mine a pending transaction
Signature
pub fn mine(
self: *Anvil,
amount: u64,
time_in_seconds: ?u64,
) FetchErrors!voidReset
Reset the fork
Signature
pub fn reset(
self: *Anvil,
reset_config: Reset,
) FetchErrors!voidImpersonateAccount
Impersonate a EOA or contract. Call stopImpersonatingAccount after.
Signature
pub fn impersonateAccount(
self: *Anvil,
address: Address,
) FetchErrors!voidStopImpersonatingAccount
Stops impersonating a EOA or contract.
Signature
pub fn stopImpersonatingAccount(
self: *Anvil,
address: Address,
) FetchErrors!voidSendRpcRequest
Internal only. Discards the body from the response.
Signature
pub fn sendRpcRequest(
self: *Anvil,
req_body: []u8,
) FetchErrors!void