UNPKG

ribbit-wallet-connect

Version:

Next-generation multi-chain wallet and payments app that makes crypto simple, secure, and usable in daily life.

107 lines (106 loc) 3.18 kB
import { EntryFunctionArgument, TypeTag } from '@aptos-labs/ts-sdk'; import { TxnBuilderTypes } from 'supra-l1-sdk-core'; export type DappMetadata = { name: string; url: string; description: string; logo: string; }; export type ConnectToWalletResponse = { data: { accounts?: { walletAddress: string; chain: string; }[] | null; approved: boolean; error?: string | null; }; }; export type WalletInfo = { walletAddress: string; connected: boolean; }; export interface Transport { sendMessage<T = any>(type: string, payload?: any): Promise<T>; listen(): void; registerHandler?(event: string, handler: (...args: any[]) => void): void; on?(event: string, handler: (...args: any[]) => void): void; off?(event: string, handler: (...args: any[]) => void): void; } export type RawTxnRequest = { sender: string; moduleAddress: string; moduleName: string; functionName: string; typeArgs: TypeTag[] | string[] | TxnBuilderTypes.TypeTag[]; args: EntryFunctionArgument[] | Uint8Array[]; chainId: number; }; export declare enum TransportMessageType { PING = "PING", SEND_TRANSACTION = "SEND_TRANSACTION", GET_WALLET_BALANCE = "GET_WALLET_BALANCE", CONNECT_REQUEST = "CONNECT_REQUEST", DISCONNECT_REQUEST = "DISCONNECT_REQUEST", SIGN_AND_SEND_TRANSACTION = "SIGN_TRANSACTION", SIGN_MESSAGE = "SIGN_MESSAGE", WALLET_CHANGED = "WALLET_CHANGED", NETWORK_CHANGED = "NETWORK_CHANGED" } export interface SignMessageRequest { message: string; nonce?: number; chainId?: number; } export interface SignMessageResponse { approved: boolean; signature?: string; error?: string; publicKey?: string; address?: string; } export interface RawTransactionRequest { rawTxn: string; chainId: number; format?: RawTxnFormat; /** Optional metadata for UI confirmation */ meta?: { /** Human-readable description for confirmation */ description?: string; /** Any extra data for UI display */ [key: string]: any; }; } export interface RawTransactionResponse { approved: boolean; txHash?: string; error?: string; result?: string; } export interface WalletBalanceRequest { chainId: number; resourceType: string; decimals: number; } export interface WalletBalanceResponse { balance: number | null; error?: string | null; } export declare enum SupraChainId { TESTNET = 6, MAINNET = 8 } export declare enum RawTxnFormat { supra = "supra", aptos = "aptos" } export interface RibbitWalletSDK { initialize(): void; connectToWallet(metadata: DappMetadata): Promise<WalletInfo>; disconnect(): Promise<void>; getWalletInfo(): WalletInfo | null; signMessage(message: SignMessageRequest): Promise<SignMessageResponse>; signAndSendRawTransaction(tx: RawTransactionRequest): Promise<RawTransactionResponse>; createRawTransactionBuffer(tx: RawTxnRequest, format?: RawTxnFormat): Promise<string>; getWalletBalance(walletBalanceRequest: WalletBalanceRequest): Promise<WalletBalanceResponse>; }