import { Amount, BlockchainAddress, IsoDatetime } from '@dfns/datamodel/dist/Foundations'; import { TransactionStatus } from '..'; export declare enum SolanaInstructionKind { SystemTransfer = "SystemTransfer", TokenTransfer = "TokenTransfer", Unknown = "Unknown" } export type SolanaSystemTransferInstruction = { kind: SolanaInstructionKind.SystemTransfer; index: string; program: BlockchainAddress; from: BlockchainAddress; to: BlockchainAddress; value: Amount; }; export type SolanaTokenTransferInstruction = { kind: SolanaInstructionKind.TokenTransfer; index: string; program: BlockchainAddress; mint: BlockchainAddress; from: BlockchainAddress; fromTokenAccount: BlockchainAddress; to: BlockchainAddress; toTokenAccount: BlockchainAddress; value: Amount; }; export type SolanaUntypedInstruction = { kind: SolanaInstructionKind.Unknown; index: string; program: BlockchainAddress; accounts: BlockchainAddress[]; data: string; }; export type SolanaInstruction = SolanaSystemTransferInstruction | SolanaTokenTransferInstruction | SolanaUntypedInstruction; export type SolanaTransaction = { hash: string; blockNumber: number; version: string; from: BlockchainAddress; instructions: SolanaInstruction[]; fee: Amount; status: TransactionStatus; error?: string; }; export type SolanaBlock = { hash: string; number: number; timestamp: IsoDatetime; transactions: SolanaTransaction[]; };