import { Blockhash, StakeInstructionType, SystemInstructionType, TransactionSignature } from '@solana/web3.js'; import { InstructionBuilderTypes } from './constants'; import { TransactionExplanation as BaseTransactionExplanation } from '@bitgo-beta/sdk-core'; export interface SolanaKeys { prv?: Uint8Array | string; pub: string; } export interface DurableNonceParams { walletNonceAddress: string; authWalletAddress: string; } export interface TxData { id?: TransactionSignature; feePayer?: string; lamportsPerSignature?: number; numSignatures: number; nonce: Blockhash; durableNonce?: DurableNonceParams; instructionsData: InstructionParams[]; } export declare type InstructionParams = Nonce | Memo | WalletInit | Transfer | StakingActivate | StakingDeactivate | StakingWithdraw | AtaInit | TokenTransfer; export interface Memo { type: InstructionBuilderTypes.Memo; params: { memo: string; }; } export interface Nonce { type: InstructionBuilderTypes.NonceAdvance; params: DurableNonceParams; } export interface WalletInit { type: InstructionBuilderTypes.CreateNonceAccount; params: { fromAddress: string; nonceAddress: string; authAddress: string; amount: string; }; } export interface Transfer { type: InstructionBuilderTypes.Transfer; params: { fromAddress: string; toAddress: string; amount: string; }; } export interface TokenTransfer { type: InstructionBuilderTypes.TokenTransfer; params: { fromAddress: string; toAddress: string; amount: string; tokenName: string; sourceAddress: string; }; } export interface StakingActivate { type: InstructionBuilderTypes.StakingActivate; params: { fromAddress: string; stakingAddress: string; amount: string; validator: string; }; } export interface StakingDeactivate { type: InstructionBuilderTypes.StakingDeactivate; params: { fromAddress: string; stakingAddress: string; }; } export interface StakingWithdraw { type: InstructionBuilderTypes.StakingWithdraw; params: { fromAddress: string; stakingAddress: string; amount: string; }; } export interface AtaInit { type: InstructionBuilderTypes.CreateAssociatedTokenAccount; params: { mintAddress: string; ataAddress: string; ownerAddress: string; payerAddress: string; tokenName: string; }; } export declare type ValidInstructionTypes = SystemInstructionType | StakeInstructionType | 'Memo' | 'InitializeAssociatedTokenAccount' | 'TokenTransfer'; export interface TransactionExplanation extends BaseTransactionExplanation { type: string; blockhash: Blockhash; durableNonce?: DurableNonceParams; memo?: string; } //# sourceMappingURL=iface.d.ts.map