samo-bas-ran
Version:
Rango Exchange Types
53 lines • 1.78 kB
TypeScript
import { TransactionType } from '../transactions';
import { BaseTransaction } from './base';
/**
* Account metadata used to define instructions
*/
export type SolanaInstructionKey = {
pubkey: string;
isSigner: boolean;
isWritable: boolean;
};
/**
* Transaction Instruction class
*/
export type SolanaInstruction = {
keys: SolanaInstructionKey[];
programId: string;
data: number[];
};
/**
* Pair of signature and corresponding public key
*/
export type SolanaSignature = {
signature: number[];
publicKey: string;
};
/**
* This type of transaction is used for all solana transactions
*
* @property {TransactionType} type - This fields equals to SOLANA for all SolanaTransactions
* @property {'LEGACY' | 'VERSIONED'} txType - Type of the solana transaction
* @property {string} blockChain, equals to SOLANA
* @property {string} from, Source wallet address
* @property {string} identifier, Transaction hash used in case of retry
* @property {string | null} recentBlockhash, A recent blockhash
* @property {SolanaSignature[]} signatures, Signatures for the transaction
* @property {number[] | null} serializedMessage, The byte array of the transaction
* @property {SolanaInstruction[]} instructions, The instructions to atomically execute
*
*/
export interface SolanaTransaction extends BaseTransaction {
type: TransactionType.SOLANA;
txType: 'LEGACY' | 'VERSIONED';
from: string;
identifier: string;
recentBlockhash: string | null;
signatures: SolanaSignature[];
serializedMessage: number[] | null;
instructions: SolanaInstruction[];
}
export declare const isSolanaTransaction: (transaction: {
type: TransactionType;
}) => transaction is SolanaTransaction;
//# sourceMappingURL=solana.d.ts.map