UNPKG

@axiom-crypto/tools

Version:

Useful data, field, and byte manipulation tools for Axiom.

176 lines (175 loc) 3.88 kB
export interface AxiomV2Query { version: number; sourceChainId: string; caller: string; dataQueryHash: string; computeQuery: AxiomV2ComputeQuery; callback: AxiomV2Callback; userSalt: string; feeData: AxiomV2FeeData; refundee: string; } export interface AxiomV2FullQuery { version: number; sourceChainId: string; caller: string; dataQuery: AxiomV2DataQuery; computeQuery: AxiomV2ComputeQuery; callback: AxiomV2Callback; userSalt: string; feeData: AxiomV2FeeData; refundee: string; } export interface AxiomV2ComputeQuery { k: number; resultLen?: number; vkey: string[]; computeProof: string; } export interface AxiomV2DataQuery { sourceChainId: string; subqueries: DataSubquery[]; } export interface AxiomV2Callback { target: string; extraData: string; } export interface AxiomV2FeeData { maxFeePerGas: string; callbackGasLimit: number; overrideAxiomQueryFee: string; } export interface AxiomV2QueryWitness { caller: string; userSalt: string; queryHash: string; callbackHash: string; refundee: string; } export interface AxiomV2Result { sourceChainId: string; dataResultsRoot: string; dataResultsPoseidonRoot: string; computeResultsHash: string; } export interface Subquery { /** * The block number of the block that the subquery needs data from. * `undefined` if no block is needed. */ blockNumber?: number; } export interface StorageSubqueryV1 extends Subquery { blockNumber: number; address?: string; slot?: string; value?: string; } export interface HeaderSubquery extends Subquery { blockNumber: number; fieldIdx: number; } export interface AccountSubquery extends Subquery { blockNumber: number; addr: string; fieldIdx: number; } export interface StorageSubquery extends Subquery { blockNumber: number; addr: string; slot: string; } export interface TxSubquery extends Subquery { blockNumber: number; txIdx: number; fieldOrCalldataIdx: number; } export interface ReceiptSubquery extends Subquery { blockNumber: number; txIdx: number; fieldOrLogIdx: number; topicOrDataOrAddressIdx: number; eventSchema: string; } export interface SolidityNestedMappingSubquery extends Subquery { blockNumber: number; addr: string; mappingSlot: string; mappingDepth: number; keys: string[]; } export interface BeaconValidatorSubquery extends Subquery { } export interface AccountState { nonce: string; balance: string; storageHash: string; codeHash: string; } export interface DataSubquery { type: DataSubqueryType; subqueryData: Subquery; } export declare enum DataSubqueryType { StorageV1 = 0, Header = 1, Account = 2, Storage = 3, Transaction = 4, Receipt = 5, SolidityNestedMapping = 6, BeaconValidator = 7 } export declare enum HeaderField { ParentHash = 0, Sha3Uncles = 1, Miner = 2, StateRoot = 3, TransactionsRoot = 4, ReceiptsRoot = 5, LogsBloom = 6, Difficulty = 7, Number = 8, GasLimit = 9, GasUsed = 10, Timestamp = 11, ExtraData = 12, MixHash = 13, Nonce = 14, BaseFeePerGas = 15, WithdrawalsRoot = 16 } export declare enum AccountField { Nonce = 0, Balance = 1, StorageRoot = 2, CodeHash = 3 } export declare enum TxField { ChainId = 0, Nonce = 1, MaxPriorityFeePerGas = 2, MaxFeePerGas = 3, GasLimit = 4, To = 5, Value = 6, Data = 7, GasPrice = 8, v = 9, r = 10, s = 11 } export declare enum ReceiptField { Status = 0, PostState = 1, CumulativeGas = 2, LogsBloom = 3, Logs = 4 } export declare enum TxType { Legacy = 0, Eip2930 = 1, Eip1559 = 2, Eip4844 = 3, OpSystem = 126 }