UNPKG

@xchainjs/xchain-radix

Version:

Custom Radix client and utilities used by XChainJS clients

166 lines (165 loc) 4.93 kB
/** * Lightweight Radix Gateway API client replacing the heavy * @radixdlt/babylon-gateway-api-sdk (~2.7 MB). * * Only implements the endpoints actually used by xchain-radix. */ export type LedgerState = { network: string; state_version: number; proposer_round_timestamp: string; epoch: number; round: number; }; export type GatewayStatusResponse = { ledger_state: LedgerState; }; export type FungibleResourcesCollectionItem = { aggregation_level: string; resource_address: string; amount: number | string; last_updated_at_state_version: number; }; export type NonFungibleResourcesCollectionItem = { aggregation_level: string; resource_address: string; amount: number; last_updated_at_state_version: number; }; export type StateEntityDetailsVaultResponseItem = { address: string; details?: { type: string; divisibility?: number; [key: string]: any; }; [key: string]: any; }; export type StateEntityFungiblesPageRequest = { address: string; limit_per_page: number; cursor?: string; at_ledger_state?: { state_version: number; }; }; export type StateEntityFungiblesPageResponse = { ledger_state: LedgerState; total_count?: number; items: FungibleResourcesCollectionItem[]; next_cursor?: string; address?: string; }; export type StateEntityNonFungiblesPageRequest = { address: string; limit_per_page: number; cursor?: string; at_ledger_state?: { state_version: number; }; }; export type StateEntityNonFungiblesPageResponse = { ledger_state: LedgerState; total_count?: number; items: NonFungibleResourcesCollectionItem[]; next_cursor?: string; address?: string; }; export type GatewayPublicKey = { key_type: string; key_hex: string; }; export type TransactionPreviewRequest = { manifest: string; blobs_hex: string[]; start_epoch_inclusive: number; end_epoch_exclusive: number; notary_public_key: GatewayPublicKey; notary_is_signatory: boolean; tip_percentage: number; nonce: number; signer_public_keys: GatewayPublicKey[]; flags: { assume_all_signature_proofs: boolean; skip_epoch_check: boolean; use_free_credit: boolean; }; }; export type TransactionPreviewResponse = { receipt: { status: string; fee_summary: { execution_cost_units_consumed: number; finalization_cost_units_consumed: number; xrd_total_execution_cost: string; xrd_total_finalization_cost: string; xrd_total_royalty_cost: string; xrd_total_storage_cost: string; xrd_total_tipping_cost: string; }; [key: string]: any; }; [key: string]: any; }; export type TransactionSubmitResponse = { duplicate: boolean; }; export type CommittedTransactionInfo = { transaction_status: string; state_version: number; epoch: number; round: number; round_timestamp: string; payload_hash: string; intent_hash: string; fee_paid: string; confirmed_at?: Date; raw_hex?: string; receipt?: { status: string; }; manifest_classes?: string[]; }; export type TransactionCommittedDetailsResponse = { ledger_state?: LedgerState; transaction: CommittedTransactionInfo; }; export type StreamTransactionsRequest = { affected_global_entities_filter?: string[]; limit_per_page?: number; from_ledger_state?: { state_version: number; }; manifest_resources_filter?: string[]; opt_ins?: { raw_hex?: boolean; }; cursor?: string; }; export type StreamTransactionsResponse = { items: CommittedTransactionInfo[]; next_cursor?: string; }; export type TransactionStatusResponse = { status: string; intent_hash: string; }; export declare class RadixGatewayApi { private baseUrl; constructor(networkId: number); private post; getStatus(): Promise<GatewayStatusResponse>; getEntityDetailsVaultAggregated(addresses: string[]): Promise<StateEntityDetailsVaultResponseItem[]>; getEntityFungiblesPage(request: StateEntityFungiblesPageRequest): Promise<StateEntityFungiblesPageResponse>; getEntityNonFungiblesPage(request: StateEntityNonFungiblesPageRequest): Promise<StateEntityNonFungiblesPageResponse>; previewTransaction(request: TransactionPreviewRequest): Promise<TransactionPreviewResponse>; submitTransaction(notarizedTransactionHex: string): Promise<TransactionSubmitResponse>; getTransactionDetails(request: { intent_hash: string; opt_ins?: { raw_hex?: boolean; }; }): Promise<TransactionCommittedDetailsResponse>; getStreamTransactions(request: StreamTransactionsRequest): Promise<StreamTransactionsResponse>; getTransactionStatus(intentHash: string): Promise<TransactionStatusResponse>; }