UNPKG

@coinbase/cdp-sdk

Version:

SDK for interacting with the Coinbase Developer Platform Wallet API

109 lines 4.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.toSolanaAccount = toSolanaAccount; const fund_js_1 = require("../../actions/solana/fund/fund.js"); const quoteFund_js_1 = require("../../actions/solana/fund/quoteFund.js"); const requestFaucet_js_1 = require("../../actions/solana/requestFaucet.js"); const sendTransaction_js_1 = require("../../actions/solana/sendTransaction.js"); const signMessage_js_1 = require("../../actions/solana/signMessage.js"); const signTransaction_js_1 = require("../../actions/solana/signTransaction.js"); const transfer_js_1 = require("../../actions/solana/transfer.js"); const waitForFundOperationReceipt_js_1 = require("../../actions/waitForFundOperationReceipt.js"); const analytics_js_1 = require("../../analytics.js"); /** * Creates a Solana account instance with actions from an existing Solana account. * Use this to interact with previously deployed Solana accounts, rather than creating new ones. * * @param {CdpOpenApiClientType} apiClient - The API client. * @param {ToSolanaAccountOptions} options - Configuration options. * @param {Account} options.account - The Solana account that was previously created. * @returns {SolanaAccount} A configured SolanaAccount instance ready for signing. */ function toSolanaAccount(apiClient, options) { const account = { address: options.account.address, name: options.account.name, policies: options.account.policies, async requestFaucet(options) { analytics_js_1.Analytics.trackAction({ action: "request_faucet", accountType: "solana", }); return (0, requestFaucet_js_1.requestFaucet)(apiClient, { ...options, address: account.address, }); }, async signMessage(options) { analytics_js_1.Analytics.trackAction({ action: "sign_message", accountType: "solana", }); return (0, signMessage_js_1.signMessage)(apiClient, { ...options, address: account.address, }); }, async signTransaction(options) { analytics_js_1.Analytics.trackAction({ action: "sign_transaction", accountType: "solana", }); return (0, signTransaction_js_1.signTransaction)(apiClient, { ...options, address: account.address, }); }, async sendTransaction(options) { analytics_js_1.Analytics.trackAction({ action: "send_transaction", accountType: "solana", }); return (0, sendTransaction_js_1.sendTransaction)(apiClient, { ...options, }); }, async transfer(options) { analytics_js_1.Analytics.trackAction({ action: "transfer", accountType: "solana", properties: { network: options.network, }, }); return (0, transfer_js_1.transfer)(apiClient, { ...options, from: account.address, }); }, async quoteFund(options) { analytics_js_1.Analytics.trackAction({ action: "quote_fund", accountType: "solana", }); return (0, quoteFund_js_1.quoteFund)(apiClient, { ...options, address: account.address, }); }, async fund(options) { analytics_js_1.Analytics.trackAction({ action: "fund", accountType: "solana", }); return (0, fund_js_1.fund)(apiClient, { ...options, address: account.address, }); }, async waitForFundOperationReceipt(options) { analytics_js_1.Analytics.trackAction({ action: "wait_for_fund_operation_receipt", accountType: "solana", }); return (0, waitForFundOperationReceipt_js_1.waitForFundOperationReceipt)(apiClient, options); }, }; return account; } //# sourceMappingURL=toSolanaAccount.js.map