@tevm/actions
Version:
A typesafe library for writing forge scripts in typescript
137 lines (134 loc) • 4.33 kB
text/typescript
import type { JsonRpcRequest } from '@tevm/jsonrpc'
import type { Address, Hex } from '@tevm/utils'
import type { SerializeToJson } from '../utils/SerializeToJson.js'
import type { AnvilDealParams } from './AnvilParams.js'
import type {
AnvilDropTransactionParams,
AnvilDumpStateParams,
AnvilGetAutomineParams,
AnvilLoadStateParams,
} from './index.js'
// anvil_impersonateAccount
/**
* JSON-RPC request for `anvil_impersonateAccount` method
*/
export type AnvilImpersonateAccountJsonRpcRequest = JsonRpcRequest<'anvil_impersonateAccount', readonly [Address]>
// anvil_stopImpersonatingAccount
/**
* JSON-RPC request for `anvil_stopImpersonatingAccount` method
*/
export type AnvilStopImpersonatingAccountJsonRpcRequest = JsonRpcRequest<
'anvil_stopImpersonatingAccount',
readonly [Address]
>
// anvil_autoImpersonateAccount
/**
* JSON-RPC request for `anvil_autoImpersonateAccount` method
* Not included atm because tevm_call supports it and i was getting methodNotFound errors trying it in anvil
*/
// export type AnvilAutoImpersonateAccountJsonRpcRequest = JsonRpcRequest<
// anvil_getAutomine
/**
* JSON-RPC request for `anvil_getAutomine` method
*/
export type AnvilGetAutomineJsonRpcRequest = JsonRpcRequest<
'anvil_getAutomine',
[]
>
// anvil_setCoinbase
/**
* JSON-RPC request for `anvil_setCoinbase` method
* Not included atm because tevm_call supports it and i was getting methodNotFound errors trying it in anvil
*/
export type AnvilSetCoinbaseJsonRpcRequest = JsonRpcRequest<'anvil_setCoinbase', readonly [Address]>
// anvil_mine
/**
* JSON-RPC request for `anvil_mine` method
*/
export type AnvilMineJsonRpcRequest = JsonRpcRequest<'anvil_mine', readonly [blockCount: Hex, interval: Hex]>
// anvil_reset
/**
* JSON-RPC request for `anvil_reset` method
*/
export type AnvilResetJsonRpcRequest = JsonRpcRequest<'anvil_reset', readonly []>
// anvil_dropTransaction
/**
* JSON-RPC request for `anvil_dropTransaction` method
*/
export type AnvilDropTransactionJsonRpcRequest = JsonRpcRequest<
'anvil_dropTransaction',
[]
>
// anvil_setBalance
/**
* JSON-RPC request for `anvil_setBalance` method
*/
export type AnvilSetBalanceJsonRpcRequest = JsonRpcRequest<
'anvil_setBalance',
readonly [address: Address, balance: Hex]
>
// anvil_setCode
/**
* JSON-RPC request for `anvil_setCode` method
*/
export type AnvilSetCodeJsonRpcRequest = JsonRpcRequest<
'anvil_setCode',
readonly [account: Address, deployedBytecode: Hex]
>
// anvil_setNonce
/**
* JSON-RPC request for `anvil_setNonce` method
*/
export type AnvilSetNonceJsonRpcRequest = JsonRpcRequest<'anvil_setNonce', readonly [address: Address, nonce: Hex]>
// anvil_setStorageAt
/**
* JSON-RPC request for `anvil_setStorageAt` method
*/
export type AnvilSetStorageAtJsonRpcRequest = JsonRpcRequest<
'anvil_setStorageAt',
[]
>
// anvil_setChainId
/**
* JSON-RPC request for `anvil_setChainId` method
*/
export type AnvilSetChainIdJsonRpcRequest = JsonRpcRequest<'anvil_setChainId', readonly [Hex]>
// TODO make this the same as our dump state
// anvil_dumpState
/**
* JSON-RPC request for `anvil_dumpState` method
*/
export type AnvilDumpStateJsonRpcRequest = JsonRpcRequest<
'anvil_dumpState',
readonly [SerializeToJson<AnvilDumpStateParams>]
>
// TODO make this the same as our load state
// anvil_loadState
/**
* JSON-RPC request for `anvil_loadState` method
*/
export type AnvilLoadStateJsonRpcRequest = JsonRpcRequest<
'anvil_loadState',
readonly [SerializeToJson<AnvilLoadStateParams>]
>
// anvil_deal
/**
* JSON-RPC request for `anvil_deal` method
*/
export type AnvilDealJsonRpcRequest = JsonRpcRequest<'anvil_deal', [SerializeToJson<AnvilDealParams>]>
export type AnvilJsonRpcRequest =
| AnvilImpersonateAccountJsonRpcRequest
| AnvilStopImpersonatingAccountJsonRpcRequest
| AnvilGetAutomineJsonRpcRequest
| AnvilMineJsonRpcRequest
| AnvilResetJsonRpcRequest
| AnvilDropTransactionJsonRpcRequest
| AnvilSetBalanceJsonRpcRequest
| AnvilSetCodeJsonRpcRequest
| AnvilSetNonceJsonRpcRequest
| AnvilSetStorageAtJsonRpcRequest
| AnvilSetChainIdJsonRpcRequest
| AnvilDumpStateJsonRpcRequest
| AnvilLoadStateJsonRpcRequest
| AnvilSetCoinbaseJsonRpcRequest
| AnvilDealJsonRpcRequest