115 lines
3.0 KiB
TypeScript
115 lines
3.0 KiB
TypeScript
declare module '@solana/spl-token-swap' {
|
|
import { Buffer } from 'buffer';
|
|
import { PublicKey, TransactionInstruction, TransactionSignature, Connection, Account } from "@solana/web3.js";
|
|
import BN from 'bn.js';
|
|
|
|
// === client/token-swap.js ===
|
|
export class Numberu64 extends BN {
|
|
toBuffer(): Buffer;
|
|
static fromBuffer(buffer: Buffer): Numberu64;
|
|
}
|
|
|
|
export type TokenSwapInfo = {
|
|
nonce: number,
|
|
tokenAccountA: PublicKey,
|
|
tokenAccountB: PublicKey,
|
|
tokenPool: PublicKey,
|
|
feesNumerator: Numberu64,
|
|
feesDenominator: Numberu64,
|
|
feeRatio: number,
|
|
};
|
|
|
|
export class TokenSwap {
|
|
constructor(connection: Connection, tokenSwap: PublicKey, programId: PublicKey, payer: Account);
|
|
|
|
static getMinBalanceRentForExemptTokenSwap(
|
|
connection: Connection,
|
|
): Promise<number>;
|
|
|
|
static createTokenSwap(
|
|
connection: Connection,
|
|
payer: Account,
|
|
tokenSwapAccount: Account,
|
|
authority: PublicKey,
|
|
tokenAccountA: PublicKey,
|
|
tokenAccountB: PublicKey,
|
|
tokenPool: PublicKey,
|
|
tokenAccountPool: PublicKey,
|
|
tokenProgramId: PublicKey,
|
|
nonce: number,
|
|
feeNumerator: number,
|
|
feeDenominator: number,
|
|
programId: PublicKey,
|
|
): Promise<TokenSwap>
|
|
|
|
getInfo(): Promise<TokenSwapInfo>
|
|
swap(
|
|
authority: PublicKey,
|
|
source: PublicKey,
|
|
swap_source: PublicKey,
|
|
swap_destination: PublicKey,
|
|
destination: PublicKey,
|
|
tokenProgramId: PublicKey,
|
|
amount: number | Numberu64,
|
|
): Promise<TransactionSignature>
|
|
|
|
swapInstruction(
|
|
authority: PublicKey,
|
|
source: PublicKey,
|
|
swap_source: PublicKey,
|
|
swap_destination: PublicKey,
|
|
destination: PublicKey,
|
|
tokenProgramId: PublicKey,
|
|
amount: number | Numberu64,
|
|
): TransactionInstruction
|
|
|
|
deposit(
|
|
authority: PublicKey,
|
|
sourceA: PublicKey,
|
|
sourceB: PublicKey,
|
|
intoA: PublicKey,
|
|
intoB: PublicKey,
|
|
poolToken: PublicKey,
|
|
poolAccount: PublicKey,
|
|
tokenProgramId: PublicKey,
|
|
amount: number | Numberu64,
|
|
): Promise<TransactionSignature>
|
|
|
|
depositInstruction(
|
|
authority: PublicKey,
|
|
sourceA: PublicKey,
|
|
sourceB: PublicKey,
|
|
intoA: PublicKey,
|
|
intoB: PublicKey,
|
|
poolToken: PublicKey,
|
|
poolAccount: PublicKey,
|
|
tokenProgramId: PublicKey,
|
|
amount: number | Numberu64,
|
|
): TransactionInstruction
|
|
|
|
withdraw(
|
|
authority: PublicKey,
|
|
poolMint: PublicKey,
|
|
sourcePoolAccount: PublicKey,
|
|
fromA: PublicKey,
|
|
fromB: PublicKey,
|
|
userAccountA: PublicKey,
|
|
userAccountB: PublicKey,
|
|
tokenProgramId: PublicKey,
|
|
amount: number | Numberu64,
|
|
): Promise<TransactionSignature>
|
|
|
|
withdrawInstruction(
|
|
authority: PublicKey,
|
|
poolMint: PublicKey,
|
|
sourcePoolAccount: PublicKey,
|
|
fromA: PublicKey,
|
|
fromB: PublicKey,
|
|
userAccountA: PublicKey,
|
|
userAccountB: PublicKey,
|
|
tokenProgramId: PublicKey,
|
|
amount: number | Numberu64,
|
|
): TransactionInstruction
|
|
}
|
|
}
|