@coinbase/cdp-sdk
Version:
SDK for interacting with the Coinbase Developer Platform Wallet API
208 lines • 6.61 kB
TypeScript
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