@orderly.network/default-solana-adapter
Version:
92 lines (87 loc) • 3.42 kB
text/typescript
import { Connection, PublicKey } from '@solana/web3.js';
import { BaseWalletAdapter, RegisterAccountInputs, Message, WithdrawInputs, SignatureDomain, InternalTransferInputs, AddOrderlyKeyInputs, SettleInputs, DexRequestInputs } from '@orderly.network/core';
import { ChainNamespace, API } from '@orderly.network/types';
import { WalletAdapterNetwork, SignerWalletAdapterProps, WalletAdapterProps } from '@solana/wallet-adapter-base';
declare global {
interface Window {
__ORDERLY_VERSION__?: {
[key: string]: string;
};
}
}
declare const _default: "3.1.7";
interface SolanaAdapterOption {
provider: SolanaWalletProvider;
address: string;
chain: {
id: number;
};
}
interface SolanaWalletProvider {
connection?: Connection;
rpcUrl?: string;
publicKey?: PublicKey;
network: WalletAdapterNetwork;
signMessage: (message: Uint8Array) => Promise<Uint8Array>;
signTransaction: SignerWalletAdapterProps["signTransaction"];
sendTransaction: WalletAdapterProps["sendTransaction"];
}
declare class DefaultSolanaWalletAdapter extends BaseWalletAdapter<SolanaAdapterOption> {
chainNamespace: ChainNamespace;
private _address;
private _chainId;
private _provider;
private _connection;
constructor();
get address(): string;
get chainId(): number;
set chainId(chainId: number);
get connection(): Connection;
private setConfig;
private lifecycleName;
active(config: SolanaAdapterOption): void;
deactivate(): void;
update(config: SolanaAdapterOption): void;
generateSecretKey(): string;
uint8ArrayToHexString(uint8Array: Uint8Array): string;
signMessage(message: Uint8Array): Promise<string>;
generateRegisterAccountMessage(inputs: RegisterAccountInputs): Promise<Message>;
generateWithdrawMessage(inputs: WithdrawInputs): Promise<Message & {
domain: SignatureDomain;
}>;
generateInternalTransferMessage(inputs: InternalTransferInputs): Promise<Message & {
domain: SignatureDomain;
}>;
generateAddOrderlyKeyMessage(inputs: AddOrderlyKeyInputs): Promise<Message>;
generateSettleMessage(inputs: SettleInputs): Promise<Message & {
domain: SignatureDomain;
}>;
generateDexRequestMessage(inputs: DexRequestInputs): Promise<Message & {
domain: SignatureDomain;
}>;
getBalance(): Promise<bigint>;
getBalances(addresses: string[]): Promise<bigint[]>;
getBalanceByAddress(address: string): Promise<bigint>;
call(address: string, method: string, params: any[], options?: {
abi: any;
}): Promise<bigint>;
sendTransaction(contractAddress: string, method: string, payload: {
from: string;
to?: string;
data: any[];
value?: bigint;
}, options: {
abi: any;
}): Promise<string | undefined>;
callOnChain(chain: API.NetworkInfos, address: string, method: string, params: any[], options: {
abi: any;
}): Promise<any>;
estimateGasFee(contractAddress: string, method: string, payload: {
from: string;
to?: string;
data: any[];
value?: bigint;
}): Promise<bigint>;
pollTransactionReceiptWithBackoff(txHash: string, baseInterval?: number, maxInterval?: number, maxRetries?: number): Promise<any>;
}
export { DefaultSolanaWalletAdapter, type SolanaWalletProvider, _default as version };