@axiom-crypto/tools
Version:
Useful data, field, and byte manipulation tools for Axiom.
176 lines (175 loc) • 3.88 kB
TypeScript
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
}