fsl-js-sdk
Version:
sdk for web
80 lines (79 loc) • 4.67 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
import FSLWeb3 from '.';
import { IFSLWeb3Params, ITransferSolanaToken, ITransferSolanaNativeToken, ICheckNFT } from '../../../type/web3';
import { Keypair, Connection, PublicKey, Transaction, VersionedTransactionResponse, VersionedTransaction, TransactionInstruction } from '@solana/web3.js';
import { Account } from '@solana/spl-token';
import { web3 } from '@project-serum/anchor';
import { Chains, TOKEN_NAME } from '../../constants/index';
export declare class FSLWeb3Sol extends FSLWeb3 {
solanaKeypaire?: Keypair;
constructor({ mnemonic, gasPriorityPolygon, gasPriorityExtraPolygon, gasPriorityExtraEvm, }: IFSLWeb3Params);
static assignPublicKey(obj: Record<string, any> | string): any;
static assignTransaction(obj: Record<string, any> | string): any;
toBuffer(arr: Buffer | Uint8Array | Array<number>): Buffer;
generateWallet(mnemonic: string): string;
getSolanaAddress(): string;
exportSolanaPrivatekey(): string;
checkSolanaTransactionHashStatus(txHash: string, rpc: string): Promise<web3.RpcResponseAndContext<web3.SignatureStatus | null>>;
static validateSolAddress(address: string): boolean;
signSolanaMessage(message: string): Uint8Array;
static verifySolanaMessage(message: string, signature: Uint8Array, publicKey: PublicKey): boolean;
sendSolanaTransaction(encodedTransaction: string, rpc: string): Promise<string>;
sendRawTransaction(transactionBase64: string, rpc: string): Promise<string>;
signSolanaInstructions(instructions: TransactionInstruction[], keypairs: Keypair[], rpc: string, unitLimit?: number, unitPrice?: number): Promise<string>;
signSolanaTransaction(bufferStrs: string[], versions: Array<'legacy' | 0>): (Transaction | VersionedTransaction)[];
signSolanaTransactionWithBuffers(bufferStrs: string[], versions: Array<'legacy' | 0>): string[];
getSolanaSplTokenBalance(walletAddress: string, rpc: string, contractAddress: string): Promise<number>;
getSolanaNativeTokenBalance(walletAddress: string, rpc: string): Promise<number>;
transferSolanaNativeToken({ to, amount, rpc, unitLimit, unitPrice, }: ITransferSolanaNativeToken): Promise<string>;
checkSolanaNFTValid({ rpc, contractAddress }: ICheckNFT): Promise<boolean>;
transferSolanaSplToken({ to, amount, rpc, contractAddress, unitLimit, unitPrice, }: ITransferSolanaToken): Promise<string>;
getSolanaTokenTransactions(rpc: string, from: string, limit: number): Promise<VersionedTransactionResponse[]>;
getOrCreateAssociatedAccount(symbol: TOKEN_NAME, owner: Keypair, rpc: string): Promise<void>;
batchGetOrCreateAssociatedAccount({ fromToken, toToken, rpc, }: {
fromToken: TOKEN_NAME;
toToken: TOKEN_NAME;
rpc: string;
}): Promise<void>;
getSolanaTokenUnit({ fromToken, toToken, rpc, amountIn, slipNum, }: {
fromToken: TOKEN_NAME;
toToken: TOKEN_NAME;
rpc: string;
amountIn?: string;
slipNum?: number;
}): Promise<string>;
waitForConfirmation(connection: Connection, signature: string, maxRetries?: number): Promise<void>;
sendSolSwapTransition(connection: Connection, swapPayload: any, swapPayload2?: any): Promise<string>;
swapSolanaToken({ fromToken, toToken, tokenAmount, rpc, slipNum, }: {
fromToken: TOKEN_NAME;
toToken: TOKEN_NAME;
tokenAmount: number;
rpc: string;
slipNum?: number;
}): Promise<string>;
static getUNSOwner(domain: string): Promise<string | null>;
static getUnstoppableDomains(domain: string, ticker: string, chain?: string): Promise<string | undefined>;
static reverseUnstoppableDomains(address: string): Promise<string | null>;
getSolAccount(userAddress: string, tokenAddress: string): Promise<Account>;
depositGUsdToOtherChain(params: {
amount: string;
chains: Chains.binance | Chains.polygon;
toChain: Chains;
rpc?: string;
}): Promise<string>;
depositSolGUsdToOther(amount: string, toChain: Chains.polygon | Chains.binance, retry?: number): Promise<string>;
getDepositQuote(amount: string, toChain: Chains.polygon | Chains.binance): Promise<bigint | undefined>;
cliamSolGGusd({ owner, source, contractAddress, tokenAddress, orderId, timeStamp, amount, signature, stateAccount, rpc, }: {
owner: string;
source: string;
contractAddress: string;
tokenAddress: string;
orderId: number;
timeStamp: number;
amount: number | string;
signature: string;
stateAccount: string;
rpc: string;
}): Promise<string>;
}