UNPKG

@coinbase/cdp-sdk

Version:

SDK for interacting with the Coinbase Developer Platform Wallet API

208 lines 6.61 kB
import { Account, SolanaAccount } from "../../accounts/solana/types.js"; import { ListSolanaTokenBalancesNetwork, OpenApiSolanaMethods, SendSolanaTransactionBody, SendSolanaTransactionBodyNetwork, UpdateSolanaAccountBody } from "../../openapi-client/index.js"; /** * The SolanaClient type, where all OpenApiSolanaMethods methods are wrapped. */ export type SolanaClientInterface = Omit<typeof OpenApiSolanaMethods, "createSolanaAccount" | "getSolanaAccount" | "getSolanaAccountByName" | "updateSolanaAccount" | "listSolanaAccounts" | "requestSolanaFaucet" | "signSolanaMessage" | "signSolanaTransaction" | "updateSolanaAccount" | "exportSolanaAccount" | "exportSolanaAccountByName" | "importSolanaAccount" | "listSolanaTokenBalances" | "sendSolanaTransaction"> & { createAccount: (options: CreateAccountOptions) => Promise<Account>; exportAccount: (options: ExportAccountOptions) => Promise<string>; importAccount: (options: ImportAccountOptions) => Promise<SolanaAccount>; getAccount: (options: GetAccountOptions) => Promise<Account>; getOrCreateAccount: (options: GetOrCreateAccountOptions) => Promise<Account>; updateAccount: (options: UpdateSolanaAccountOptions) => Promise<Account>; listAccounts: (options: ListAccountsOptions) => Promise<ListAccountsResult>; requestFaucet: (options: RequestFaucetOptions) => Promise<SignatureResult>; signMessage: (options: SignMessageOptions) => Promise<SignatureResult>; signTransaction: (options: SignTransactionOptions) => Promise<SignatureResult>; listTokenBalances: (options: ListTokenBalancesOptions) => Promise<ListTokenBalancesResult>; sendTransaction: (options: SendSolanaTransactionBody) => Promise<SignatureResult>; }; /** * A Solana signature result. */ export interface SignatureResult { /** The signature. */ signature: string; } /** * Options for creating a Solana account. */ export interface CreateAccountOptions { /** The name of the account. */ name?: string; /** The policy ID to apply to the account. */ accountPolicy?: string; /** The idempotency key. */ idempotencyKey?: string; } /** * Options for exporting a Solana account. */ export interface ExportAccountOptions { /** The address of the account. */ address?: string; /** The name of the account. */ name?: string; /** The idempotency key. */ idempotencyKey?: string; } /** * Options for getting a Solana account. */ export interface GetAccountOptions { /** The address of the account. */ address?: string; /** The name of the account. */ name?: string; } /** * Options for getting a Solana account. */ export interface GetOrCreateAccountOptions { /** The name of the account. */ name: string; } /** * Options for creating a SOL server account. */ export interface UpdateSolanaAccountOptions { /** The address of the account. */ address: string; /** The updates to apply to the account */ update: UpdateSolanaAccountBody; /** The idempotency key. */ idempotencyKey?: string; } /** * Options for listing Solana accounts. */ export interface ListAccountsOptions { /** The page size. */ pageSize?: number; /** The page token. */ pageToken?: string; } /** * The result of listing Solana accounts. */ export interface ListAccountsResult { /** The accounts. */ accounts: SolanaAccount[]; /** * The token for the next page of accounts, if any. */ nextPageToken?: string; } /** * Options for requesting funds from a Solana faucet. */ export interface RequestFaucetOptions { /** The address of the account. */ address: string; /** The token to request funds for. */ token: "sol" | "usdc"; /** The idempotency key. */ idempotencyKey?: string; } /** * Options for signing a Solana message. */ export interface SignMessageOptions { /** The address of the account. */ address: string; /** The message to sign. */ message: string; /** The idempotency key. */ idempotencyKey?: string; } /** * Options for signing a Solana transaction. */ export interface SignTransactionOptions { /** The address of the account. */ address: string; /** The base64 encoded transaction to sign. */ transaction: string; /** The idempotency key. */ idempotencyKey?: string; } /** * Options for importing a Solana account. */ export interface ImportAccountOptions { /** The public RSA key used to encrypt the private key when importing a Solana account. */ encryptionPublicKey?: string; /** The name of the account. */ name?: string; /** The idempotency key. */ idempotencyKey?: string; /** The private key of the account - can be a base58 encoded string or raw bytes. */ privateKey: string | Uint8Array; } /** * Options for listing Solana token balances. */ export interface ListTokenBalancesOptions { /** The address of the account. */ address: string; /** The network to list token balances for. */ network?: ListSolanaTokenBalancesNetwork; /** The page size. */ pageSize?: number; /** The page token. */ pageToken?: string; } /** * Options for sending a Solana transaction. */ export interface SendTransactionOptions { /** The network to send the transaction to. */ network: SendSolanaTransactionBodyNetwork; /** The base64 encoded transaction to send. */ transaction: string; /** The idempotency key. */ idempotencyKey?: string; } /** * The result of sending a Solana transaction. */ export interface TransactionResult { /** The signature of the transaction base58 encoded. */ signature: string; } export interface SolanaTokenAmount { /** The amount of the token. */ amount: bigint; /** The number of decimals in the token. */ decimals: number; } export interface SolanaToken { /** The token address. */ mintAddress: string; /** The token name. */ name?: string; /** The token symbol. */ symbol?: string; } /** * A Solana token balance. */ export interface SolanaTokenBalance { /** The amount of the token. */ amount: SolanaTokenAmount; /** The token. */ token: SolanaToken; } /** * The result of listing Solana token balances. */ export interface ListTokenBalancesResult { /** The token balances. */ balances: SolanaTokenBalance[]; /** * The next page token to paginate through the token balances. * If undefined, there are no more token balances to paginate through. */ nextPageToken?: string; } //# sourceMappingURL=solana.types.d.ts.map