From 4f6b8f140bbf5bc0c86371e7bac215b54389e062 Mon Sep 17 00:00:00 2001 From: Erdi Maden Date: Thu, 11 Jul 2024 17:22:43 -0500 Subject: [PATCH 01/22] Refactoring listWallets method --- src/coinbase/user.ts | 11 +++-------- src/coinbase/wallet.ts | 38 ++++++++++++++++++++++---------------- src/tests/user_test.ts | 33 ++++++++++++++++----------------- 3 files changed, 41 insertions(+), 41 deletions(-) diff --git a/src/coinbase/user.ts b/src/coinbase/user.ts index 90cd502b..8a34e41f 100644 --- a/src/coinbase/user.ts +++ b/src/coinbase/user.ts @@ -50,15 +50,10 @@ export class User { /** * Lists the Wallets belonging to the User. * - * @param pageSize - The number of Wallets to return per page. Defaults to 10 - * @param nextPageToken - The token for the next page of Wallets - * @returns An object containing the Wallets and the token for the next page + * @returns The list of Wallets. */ - public async listWallets( - pageSize: number = 10, - nextPageToken?: string, - ): Promise<{ wallets: Wallet[]; nextPageToken: string }> { - return await Wallet.listWallets(pageSize, nextPageToken); + public async listWallets(): Promise { + return await Wallet.listWallets(); } /** diff --git a/src/coinbase/wallet.ts b/src/coinbase/wallet.ts index d725373e..25bb2ceb 100644 --- a/src/coinbase/wallet.ts +++ b/src/coinbase/wallet.ts @@ -58,23 +58,29 @@ export class Wallet { /** * Lists the Wallets belonging to the User. * - * @param pageSize - The number of Wallets to return per page. Defaults to 10 - * @param nextPageToken - The token for the next page of Wallets - * @returns An object containing the Wallets and the token for the next page - */ - public static async listWallets( - pageSize: number = 10, - nextPageToken?: string, - ): Promise<{ wallets: Wallet[]; nextPageToken: string }> { - const walletList = await Coinbase.apiClients.wallet!.listWallets( - pageSize, - nextPageToken ? nextPageToken : undefined, - ); - const wallets = walletList.data.data.map(wallet => { - return Wallet.init(wallet, ""); - }); + * @returns The list of Wallets. + */ + public static async listWallets(): Promise { + const walletList: Wallet[] = []; + const queue: string[] = [""]; + + while (queue.length > 0) { + const page = queue.shift(); + const response = await Coinbase.apiClients.wallet!.listWallets(100, page ? page : undefined); + + const wallets = response.data.data; + for (const wallet of wallets) { + walletList.push(Wallet.init(wallet, "")); + } + + if (response.data.has_more) { + if (response.data.next_page) { + queue.push(response.data.next_page); + } + } + } - return { wallets: wallets, nextPageToken: walletList.data.next_page }; + return walletList; } /** diff --git a/src/tests/user_test.ts b/src/tests/user_test.ts index 7d632e8b..49d34ac5 100644 --- a/src/tests/user_test.ts +++ b/src/tests/user_test.ts @@ -140,10 +140,10 @@ describe("User Class", () => { it("should raise an error when the Wallet API call fails", async () => { Coinbase.apiClients.wallet!.listWallets = mockReturnRejectedValue(new Error("API Error")); - await expect(user.listWallets(10, "xyz")).rejects.toThrow(new Error("API Error")); + await expect(user.listWallets()).rejects.toThrow(new Error("API Error")); expect(Coinbase.apiClients.wallet!.listWallets).toHaveBeenCalledTimes(1); expect(Coinbase.apiClients.address!.listAddresses).toHaveBeenCalledTimes(0); - expect(Coinbase.apiClients.wallet!.listWallets).toHaveBeenCalledWith(10, "xyz"); + expect(Coinbase.apiClients.wallet!.listWallets).toHaveBeenCalledWith(100, undefined); }); it("should return an empty list of Wallets when the User has no Wallets", async () => { @@ -153,8 +153,8 @@ describe("User Class", () => { next_page: "", total_count: 0, }); - const result = await user.listWallets(); - expect(result.wallets.length).toBe(0); + const wallets = await user.listWallets(); + expect(wallets.length).toBe(0); expect(Coinbase.apiClients.wallet!.listWallets).toHaveBeenCalledTimes(1); expect(Coinbase.apiClients.address!.listAddresses).toHaveBeenCalledTimes(0); }); @@ -170,20 +170,19 @@ describe("User Class", () => { total_count: 1, }); Coinbase.apiClients.address!.listAddresses = mockReturnValue(addressListModel); - const result = await user.listWallets(); - expect(result.wallets[0]).toBeInstanceOf(Wallet); - expect(result.wallets.length).toBe(1); - expect(result.wallets[0].getId()).toBe(walletId); - const addresses = await result.wallets[0].listAddresses(); + const wallets = await user.listWallets(); + expect(wallets[0]).toBeInstanceOf(Wallet); + expect(wallets.length).toBe(1); + expect(wallets[0].getId()).toBe(walletId); + const addresses = await wallets[0].listAddresses(); expect(addresses.length).toBe(2); - expect(result.nextPageToken).toBe("nextPageToken"); expect(Coinbase.apiClients.wallet!.listWallets).toHaveBeenCalledTimes(1); expect(Coinbase.apiClients.address!.listAddresses).toHaveBeenCalledTimes(1); expect(Coinbase.apiClients.address!.listAddresses).toHaveBeenCalledWith( walletId, Wallet.MAX_ADDRESSES, ); - expect(Coinbase.apiClients.wallet!.listWallets).toHaveBeenCalledWith(10, undefined); + expect(Coinbase.apiClients.wallet!.listWallets).toHaveBeenCalledWith(100, undefined); }); it("should create Wallets when seed is provided", async () => { @@ -194,8 +193,8 @@ describe("User Class", () => { total_count: 1, }); Coinbase.apiClients.address!.listAddresses = mockReturnValue(addressListModel); - const result = await user.listWallets(); - const unhydratedWallet = result.wallets[0]; + const wallets = await user.listWallets(); + const unhydratedWallet = wallets[0]; expect(unhydratedWallet.canSign()).toBe(false); unhydratedWallet.setSeed(seed); expect(unhydratedWallet).toBeInstanceOf(Wallet); @@ -213,8 +212,8 @@ describe("User Class", () => { total_count: 1, }); Coinbase.apiClients.address!.listAddresses = mockReturnValue(mockAddressList); - const result = await user.listWallets(); - const unhydratedWallet = result.wallets[0]; + const wallets = await user.listWallets(); + const unhydratedWallet = wallets[0]; expect(() => unhydratedWallet.export()).toThrow( new InternalError("Cannot export Wallet without loaded seed"), ); @@ -259,8 +258,8 @@ describe("User Class", () => { transaction_hash: generateRandomHash(8), }); - const result = await user.listWallets(); - const wallet = result.wallets[0]; + const wallets = await user.listWallets(); + const wallet = wallets[0]; expect(wallet.getId()).toBe(walletId); expect(wallet.canSign()).toBe(false); expect(wallet.getNetworkId()).toBe(Coinbase.networks.BaseSepolia); From 0c16527e54cdafe6534d015f92149c7f3bf3c4cb Mon Sep 17 00:00:00 2001 From: Marcin Lenczewski Date: Thu, 25 Jul 2024 11:35:35 -0400 Subject: [PATCH 02/22] Add staking for wallet addresses --- src/client/api.ts | 360 ++++++++++++++++++++++++- src/coinbase/address/wallet_address.ts | 239 +++++++++++++++- src/coinbase/staking_operation.ts | 76 +++++- src/coinbase/transaction.ts | 2 +- src/coinbase/types.ts | 63 +++++ src/coinbase/utils.ts | 27 ++ src/coinbase/wallet.ts | 119 +++++++- 7 files changed, 868 insertions(+), 18 deletions(-) diff --git a/src/client/api.ts b/src/client/api.ts index dbdb900c..b2db5b7c 100644 --- a/src/client/api.ts +++ b/src/client/api.ts @@ -166,6 +166,25 @@ export interface Balance { */ 'asset': Asset; } +/** + * + * @export + * @interface BroadcastStakingOperationRequest + */ +export interface BroadcastStakingOperationRequest { + /** + * The hex-encoded signed payload of the staking operation. + * @type {string} + * @memberof BroadcastStakingOperationRequest + */ + 'signed_payload': string; + /** + * The index in the transaction array of the staking operation. + * @type {number} + * @memberof BroadcastStakingOperationRequest + */ + 'transaction_index': number; +} /** * * @export @@ -279,6 +298,37 @@ export interface CreateServerSignerRequest { */ 'is_mpc': boolean; } +/** + * + * @export + * @interface CreateStakingOperationRequest + */ +export interface CreateStakingOperationRequest { + /** + * The ID of the blockchain network. + * @type {string} + * @memberof CreateStakingOperationRequest + */ + 'network_id': string; + /** + * The ID of the asset being staked. + * @type {string} + * @memberof CreateStakingOperationRequest + */ + 'asset_id': string; + /** + * The type of staking operation. + * @type {string} + * @memberof CreateStakingOperationRequest + */ + 'action': string; + /** + * + * @type {{ [key: string]: string; }} + * @memberof CreateStakingOperationRequest + */ + 'options': { [key: string]: string; }; +} /** * * @export @@ -953,6 +1003,12 @@ export interface StakingOperation { * @memberof StakingOperation */ 'id': string; + /** + * The ID of the wallet that owns the address. + * @type {string} + * @memberof StakingOperation + */ + 'wallet_id'?: string; /** * The ID of the blockchain network. * @type {string} @@ -966,13 +1022,13 @@ export interface StakingOperation { */ 'address_id': string; /** - * The status of the staking operation + * The status of the staking operation. * @type {string} * @memberof StakingOperation */ 'status': StakingOperationStatusEnum; /** - * The transaction(s) that will execute the staking operation onchain + * The transaction(s) that will execute the staking operation onchain. * @type {Array} * @memberof StakingOperation */ @@ -989,7 +1045,8 @@ export const StakingOperationStatusEnum = { Initialized: 'initialized', Pending: 'pending', Complete: 'complete', - Failed: 'failed' + Failed: 'failed', + Unspecified: 'unspecified' } as const; export type StakingOperationStatusEnum = typeof StakingOperationStatusEnum[keyof typeof StakingOperationStatusEnum]; @@ -3146,6 +3203,54 @@ export class ServerSignersApi extends BaseAPI implements ServerSignersApiInterfa */ export const StakeApiAxiosParamCreator = function (configuration?: Configuration) { return { + /** + * Broadcast a staking operation. + * @summary Broadcast a staking operation + * @param {string} walletId The ID of the wallet the address belongs to. + * @param {string} addressId The ID of the address the staking operation belongs to. + * @param {string} stakingOperationId The ID of the staking operation to broadcast. + * @param {BroadcastStakingOperationRequest} broadcastStakingOperationRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + broadcastStakingOperation: async (walletId: string, addressId: string, stakingOperationId: string, broadcastStakingOperationRequest: BroadcastStakingOperationRequest, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'walletId' is not null or undefined + assertParamExists('broadcastStakingOperation', 'walletId', walletId) + // verify required parameter 'addressId' is not null or undefined + assertParamExists('broadcastStakingOperation', 'addressId', addressId) + // verify required parameter 'stakingOperationId' is not null or undefined + assertParamExists('broadcastStakingOperation', 'stakingOperationId', stakingOperationId) + // verify required parameter 'broadcastStakingOperationRequest' is not null or undefined + assertParamExists('broadcastStakingOperation', 'broadcastStakingOperationRequest', broadcastStakingOperationRequest) + const localVarPath = `/v1/wallets/{wallet_id}/addresses/{address_id}/staking_operations/{staking_operation_id}/broadcast` + .replace(`{${"wallet_id"}}`, encodeURIComponent(String(walletId))) + .replace(`{${"address_id"}}`, encodeURIComponent(String(addressId))) + .replace(`{${"staking_operation_id"}}`, encodeURIComponent(String(stakingOperationId))); + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(broadcastStakingOperationRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, /** * Build a new staking operation * @summary Build a new staking operation @@ -3182,6 +3287,50 @@ export const StakeApiAxiosParamCreator = function (configuration?: Configuration options: localVarRequestOptions, }; }, + /** + * Create a new staking operation. + * @summary Create a new staking operation for an address + * @param {string} walletId The ID of the wallet the address belongs to. + * @param {string} addressId The ID of the address to create the staking operation for. + * @param {CreateStakingOperationRequest} createStakingOperationRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createStakingOperation: async (walletId: string, addressId: string, createStakingOperationRequest: CreateStakingOperationRequest, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'walletId' is not null or undefined + assertParamExists('createStakingOperation', 'walletId', walletId) + // verify required parameter 'addressId' is not null or undefined + assertParamExists('createStakingOperation', 'addressId', addressId) + // verify required parameter 'createStakingOperationRequest' is not null or undefined + assertParamExists('createStakingOperation', 'createStakingOperationRequest', createStakingOperationRequest) + const localVarPath = `/v1/wallets/{wallet_id}/addresses/{address_id}/staking_operations` + .replace(`{${"wallet_id"}}`, encodeURIComponent(String(walletId))) + .replace(`{${"address_id"}}`, encodeURIComponent(String(addressId))); + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(createStakingOperationRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, /** * Fetch staking rewards for a list of addresses * @summary Fetch staking rewards @@ -3301,6 +3450,48 @@ export const StakeApiAxiosParamCreator = function (configuration?: Configuration localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; localVarRequestOptions.data = serializeDataIfNeeded(getStakingContextRequest, localVarRequestOptions, configuration) + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get the latest state of a staking operation. + * @summary Get the latest state of a staking operation + * @param {string} walletId The ID of the wallet the address belongs to + * @param {string} addressId The ID of the address to fetch the staking operation for. + * @param {string} stakingOperationId The ID of the staking operation. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStakingOperation: async (walletId: string, addressId: string, stakingOperationId: string, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'walletId' is not null or undefined + assertParamExists('getStakingOperation', 'walletId', walletId) + // verify required parameter 'addressId' is not null or undefined + assertParamExists('getStakingOperation', 'addressId', addressId) + // verify required parameter 'stakingOperationId' is not null or undefined + assertParamExists('getStakingOperation', 'stakingOperationId', stakingOperationId) + const localVarPath = `/v1/wallets/{wallet_id}/addresses/{address_id}/staking_operations/{staking_operation_id}` + .replace(`{${"wallet_id"}}`, encodeURIComponent(String(walletId))) + .replace(`{${"address_id"}}`, encodeURIComponent(String(addressId))) + .replace(`{${"staking_operation_id"}}`, encodeURIComponent(String(stakingOperationId))); + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + return { url: toPathString(localVarUrlObj), options: localVarRequestOptions, @@ -3316,6 +3507,22 @@ export const StakeApiAxiosParamCreator = function (configuration?: Configuration export const StakeApiFp = function(configuration?: Configuration) { const localVarAxiosParamCreator = StakeApiAxiosParamCreator(configuration) return { + /** + * Broadcast a staking operation. + * @summary Broadcast a staking operation + * @param {string} walletId The ID of the wallet the address belongs to. + * @param {string} addressId The ID of the address the staking operation belongs to. + * @param {string} stakingOperationId The ID of the staking operation to broadcast. + * @param {BroadcastStakingOperationRequest} broadcastStakingOperationRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async broadcastStakingOperation(walletId: string, addressId: string, stakingOperationId: string, broadcastStakingOperationRequest: BroadcastStakingOperationRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.broadcastStakingOperation(walletId, addressId, stakingOperationId, broadcastStakingOperationRequest, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StakeApi.broadcastStakingOperation']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, /** * Build a new staking operation * @summary Build a new staking operation @@ -3329,6 +3536,21 @@ export const StakeApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['StakeApi.buildStakingOperation']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, + /** + * Create a new staking operation. + * @summary Create a new staking operation for an address + * @param {string} walletId The ID of the wallet the address belongs to. + * @param {string} addressId The ID of the address to create the staking operation for. + * @param {CreateStakingOperationRequest} createStakingOperationRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async createStakingOperation(walletId: string, addressId: string, createStakingOperationRequest: CreateStakingOperationRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.createStakingOperation(walletId, addressId, createStakingOperationRequest, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StakeApi.createStakingOperation']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, /** * Fetch staking rewards for a list of addresses * @summary Fetch staking rewards @@ -3372,6 +3594,21 @@ export const StakeApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['StakeApi.getStakingContext']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, + /** + * Get the latest state of a staking operation. + * @summary Get the latest state of a staking operation + * @param {string} walletId The ID of the wallet the address belongs to + * @param {string} addressId The ID of the address to fetch the staking operation for. + * @param {string} stakingOperationId The ID of the staking operation. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getStakingOperation(walletId: string, addressId: string, stakingOperationId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStakingOperation(walletId, addressId, stakingOperationId, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StakeApi.getStakingOperation']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, } }; @@ -3382,6 +3619,19 @@ export const StakeApiFp = function(configuration?: Configuration) { export const StakeApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { const localVarFp = StakeApiFp(configuration) return { + /** + * Broadcast a staking operation. + * @summary Broadcast a staking operation + * @param {string} walletId The ID of the wallet the address belongs to. + * @param {string} addressId The ID of the address the staking operation belongs to. + * @param {string} stakingOperationId The ID of the staking operation to broadcast. + * @param {BroadcastStakingOperationRequest} broadcastStakingOperationRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + broadcastStakingOperation(walletId: string, addressId: string, stakingOperationId: string, broadcastStakingOperationRequest: BroadcastStakingOperationRequest, options?: any): AxiosPromise { + return localVarFp.broadcastStakingOperation(walletId, addressId, stakingOperationId, broadcastStakingOperationRequest, options).then((request) => request(axios, basePath)); + }, /** * Build a new staking operation * @summary Build a new staking operation @@ -3392,6 +3642,18 @@ export const StakeApiFactory = function (configuration?: Configuration, basePath buildStakingOperation(buildStakingOperationRequest: BuildStakingOperationRequest, options?: any): AxiosPromise { return localVarFp.buildStakingOperation(buildStakingOperationRequest, options).then((request) => request(axios, basePath)); }, + /** + * Create a new staking operation. + * @summary Create a new staking operation for an address + * @param {string} walletId The ID of the wallet the address belongs to. + * @param {string} addressId The ID of the address to create the staking operation for. + * @param {CreateStakingOperationRequest} createStakingOperationRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createStakingOperation(walletId: string, addressId: string, createStakingOperationRequest: CreateStakingOperationRequest, options?: any): AxiosPromise { + return localVarFp.createStakingOperation(walletId, addressId, createStakingOperationRequest, options).then((request) => request(axios, basePath)); + }, /** * Fetch staking rewards for a list of addresses * @summary Fetch staking rewards @@ -3426,6 +3688,18 @@ export const StakeApiFactory = function (configuration?: Configuration, basePath getStakingContext(getStakingContextRequest: GetStakingContextRequest, options?: any): AxiosPromise { return localVarFp.getStakingContext(getStakingContextRequest, options).then((request) => request(axios, basePath)); }, + /** + * Get the latest state of a staking operation. + * @summary Get the latest state of a staking operation + * @param {string} walletId The ID of the wallet the address belongs to + * @param {string} addressId The ID of the address to fetch the staking operation for. + * @param {string} stakingOperationId The ID of the staking operation. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStakingOperation(walletId: string, addressId: string, stakingOperationId: string, options?: any): AxiosPromise { + return localVarFp.getStakingOperation(walletId, addressId, stakingOperationId, options).then((request) => request(axios, basePath)); + }, }; }; @@ -3435,6 +3709,19 @@ export const StakeApiFactory = function (configuration?: Configuration, basePath * @interface StakeApi */ export interface StakeApiInterface { + /** + * Broadcast a staking operation. + * @summary Broadcast a staking operation + * @param {string} walletId The ID of the wallet the address belongs to. + * @param {string} addressId The ID of the address the staking operation belongs to. + * @param {string} stakingOperationId The ID of the staking operation to broadcast. + * @param {BroadcastStakingOperationRequest} broadcastStakingOperationRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof StakeApiInterface + */ + broadcastStakingOperation(walletId: string, addressId: string, stakingOperationId: string, broadcastStakingOperationRequest: BroadcastStakingOperationRequest, options?: RawAxiosRequestConfig): AxiosPromise; + /** * Build a new staking operation * @summary Build a new staking operation @@ -3445,6 +3732,18 @@ export interface StakeApiInterface { */ buildStakingOperation(buildStakingOperationRequest: BuildStakingOperationRequest, options?: RawAxiosRequestConfig): AxiosPromise; + /** + * Create a new staking operation. + * @summary Create a new staking operation for an address + * @param {string} walletId The ID of the wallet the address belongs to. + * @param {string} addressId The ID of the address to create the staking operation for. + * @param {CreateStakingOperationRequest} createStakingOperationRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof StakeApiInterface + */ + createStakingOperation(walletId: string, addressId: string, createStakingOperationRequest: CreateStakingOperationRequest, options?: RawAxiosRequestConfig): AxiosPromise; + /** * Fetch staking rewards for a list of addresses * @summary Fetch staking rewards @@ -3479,6 +3778,18 @@ export interface StakeApiInterface { */ getStakingContext(getStakingContextRequest: GetStakingContextRequest, options?: RawAxiosRequestConfig): AxiosPromise; + /** + * Get the latest state of a staking operation. + * @summary Get the latest state of a staking operation + * @param {string} walletId The ID of the wallet the address belongs to + * @param {string} addressId The ID of the address to fetch the staking operation for. + * @param {string} stakingOperationId The ID of the staking operation. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof StakeApiInterface + */ + getStakingOperation(walletId: string, addressId: string, stakingOperationId: string, options?: RawAxiosRequestConfig): AxiosPromise; + } /** @@ -3488,6 +3799,21 @@ export interface StakeApiInterface { * @extends {BaseAPI} */ export class StakeApi extends BaseAPI implements StakeApiInterface { + /** + * Broadcast a staking operation. + * @summary Broadcast a staking operation + * @param {string} walletId The ID of the wallet the address belongs to. + * @param {string} addressId The ID of the address the staking operation belongs to. + * @param {string} stakingOperationId The ID of the staking operation to broadcast. + * @param {BroadcastStakingOperationRequest} broadcastStakingOperationRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof StakeApi + */ + public broadcastStakingOperation(walletId: string, addressId: string, stakingOperationId: string, broadcastStakingOperationRequest: BroadcastStakingOperationRequest, options?: RawAxiosRequestConfig) { + return StakeApiFp(this.configuration).broadcastStakingOperation(walletId, addressId, stakingOperationId, broadcastStakingOperationRequest, options).then((request) => request(this.axios, this.basePath)); + } + /** * Build a new staking operation * @summary Build a new staking operation @@ -3500,6 +3826,20 @@ export class StakeApi extends BaseAPI implements StakeApiInterface { return StakeApiFp(this.configuration).buildStakingOperation(buildStakingOperationRequest, options).then((request) => request(this.axios, this.basePath)); } + /** + * Create a new staking operation. + * @summary Create a new staking operation for an address + * @param {string} walletId The ID of the wallet the address belongs to. + * @param {string} addressId The ID of the address to create the staking operation for. + * @param {CreateStakingOperationRequest} createStakingOperationRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof StakeApi + */ + public createStakingOperation(walletId: string, addressId: string, createStakingOperationRequest: CreateStakingOperationRequest, options?: RawAxiosRequestConfig) { + return StakeApiFp(this.configuration).createStakingOperation(walletId, addressId, createStakingOperationRequest, options).then((request) => request(this.axios, this.basePath)); + } + /** * Fetch staking rewards for a list of addresses * @summary Fetch staking rewards @@ -3539,6 +3879,20 @@ export class StakeApi extends BaseAPI implements StakeApiInterface { public getStakingContext(getStakingContextRequest: GetStakingContextRequest, options?: RawAxiosRequestConfig) { return StakeApiFp(this.configuration).getStakingContext(getStakingContextRequest, options).then((request) => request(this.axios, this.basePath)); } + + /** + * Get the latest state of a staking operation. + * @summary Get the latest state of a staking operation + * @param {string} walletId The ID of the wallet the address belongs to + * @param {string} addressId The ID of the address to fetch the staking operation for. + * @param {string} stakingOperationId The ID of the staking operation. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof StakeApi + */ + public getStakingOperation(walletId: string, addressId: string, stakingOperationId: string, options?: RawAxiosRequestConfig) { + return StakeApiFp(this.configuration).getStakingOperation(walletId, addressId, stakingOperationId, options).then((request) => request(this.axios, this.basePath)); + } } diff --git a/src/coinbase/address/wallet_address.ts b/src/coinbase/address/wallet_address.ts index 0b15441f..41e63a8b 100644 --- a/src/coinbase/address/wallet_address.ts +++ b/src/coinbase/address/wallet_address.ts @@ -1,6 +1,10 @@ import { Decimal } from "decimal.js"; import { ethers } from "ethers"; -import { Address as AddressModel } from "../../client"; +import { + Address as AddressModel, + PartialEthStakingContext as PartialEthStakingContextModel, + StakingRewardFormat, +} from "../../client"; import { Address } from "../address"; import { Asset } from "../asset"; import { Coinbase } from "../coinbase"; @@ -13,10 +17,15 @@ import { CreateTradeOptions, Destination, TransferStatus, + StakeOptionsMode, + StakingOperationStatus, TransactionStatus, } from "../types"; import { delay } from "../utils"; import { Wallet as WalletClass } from "../wallet"; +import { StakingOperation } from "../staking_operation"; +import { Balance } from "../balance"; +import { StakingReward } from "../staking_reward"; /** * A representation of a blockchain address, which is a wallet-controlled account on a network. @@ -374,4 +383,232 @@ export class WalletAddress extends Address { ); } } + + /** + * Creates a staking operation to stake, signs it, and broadcasts it on the blockchain. + * + * @param amount - The amount for the staking operation. + * @param assetId - The asset to the staking operation. + * @param action - The type of staking action to perform. + * @param timeoutSeconds - The amount to wait for the transaction to complete when broadcasted. + * @param intervalSeconds - The amount to check each time for a successful broadcast. + * @param options - Additional options such as setting the mode for the staking action. + * + * @returns The staking operation after it's completed fully. + */ + public async createStakingOperation( + amount: Amount, + assetId: string, + action: string, + timeoutSeconds = 60, + intervalSeconds = 0.2, + options: CoinbaseWalletAddressStakeOptions = { mode: StakeOptionsMode.DEFAULT }, + ): Promise { + await this.validateAmount(amount, assetId); + let stakingOperation = await this.createStakingOperationRequest( + amount, + assetId, + action, + options, + ); + + // NOTE: Staking does not yet support server signers at this point. + await stakingOperation.sign(this.key!); + for (const tx of stakingOperation.getTransactions()) { + if (!tx.isSigned()) { + continue; + } + stakingOperation = await this.broadcastStakingOperationRequest( + stakingOperation, + tx.getSignedPayload()!.slice(2), + ); + } + + const startTime = Date.now(); + while (Date.now() - startTime < timeoutSeconds * 1000) { + await stakingOperation.reload(); + const status = stakingOperation.getStatus(); + if (status === StakingOperationStatus.COMPLETE || status === StakingOperationStatus.FAILED) { + return stakingOperation; + } + await delay(intervalSeconds); + } + throw new Error("Transfer timed out"); + } + + /** + * Get the stakeable balance for the supplied asset. + * + * @param asset_id - The asset to check the stakeable balance for. + * @param mode - The staking mode. Defaults to DEFAULT. + * @param options - Additional options for getting the stakeable balance. + * @returns The stakeable balance. + */ + public async stakeableBalance( + asset_id: string, + mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, + options: { [key: string]: string } = {}, + ): Promise { + const balances = await this.getStakingBalances(asset_id, mode, options); + return balances.stakeableBalance; + } + + /** + * Get the unstakeable balance for the supplied asset. + * + * @param asset_id - The asset to check the unstakeable balance for. + * @param mode - The staking mode. Defaults to DEFAULT. + * @param options - Additional options for getting the unstakeable balance. + * @returns The unstakeable balance. + */ + public async unstakeableBalance( + asset_id: string, + mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, + options: { [key: string]: string } = {}, + ): Promise { + const balances = await this.getStakingBalances(asset_id, mode, options); + return balances.unstakeableBalance; + } + + /** + * Get the claimable balance for the supplied asset. + * + * @param asset_id - The asset to check claimable balance for. + * @param mode - The staking mode. Defaults to DEFAULT. + * @param options - Additional options for getting the claimable balance. + * @returns The claimable balance. + */ + public async claimableBalance( + asset_id: string, + mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, + options: { [key: string]: string } = {}, + ): Promise { + const balances = await this.getStakingBalances(asset_id, mode, options); + return balances.claimableBalance; + } + + /** + * Get the different staking balance types for the supplied asset. + * + * @param assetId - The asset to lookup balances for. + * @param mode - The staking mode. Defaults to DEFAULT. + * @param options - Additional options for the balance lookup. + * @private + * @returns The different balance types. + */ + private async getStakingBalances( + assetId: string, + mode?: StakeOptionsMode, + options?: { [key: string]: string }, + ): Promise<{ [key: string]: Decimal }> { + const newOptions = this.copyOptions(options); + + if (mode) { + newOptions.mode = mode; + } + + const request = { + network_id: this.getNetworkId(), + asset_id: Asset.primaryDenomination(assetId), + address_id: this.getId(), + options: newOptions, + }; + + const response = await Coinbase.apiClients.stake!.getStakingContext(request); + + const balances = response!.data.context as PartialEthStakingContextModel; + + return { + stakeableBalance: Balance.fromModelAndAssetId(balances.stakeable_balance, assetId).amount, + unstakeableBalance: Balance.fromModelAndAssetId(balances.unstakeable_balance, assetId).amount, + claimableBalance: Balance.fromModelAndAssetId(balances.claimable_balance, assetId).amount, + }; + } + + /** + * Create a shallow copy of given options. + * + * @param options - The supplied options to be copied + * @private + * @returns A copy of the options. + */ + private copyOptions(options?: { [key: string]: string }): { + [key: string]: string; + } { + return { ...options }; + } + + /** + * Lists the staking rewards for the address. + * + * @param assetId - The asset ID. + * @param startTime - The start time. + * @param endTime - The end time. + * @param format - The format to return the rewards in. (usd, native). Defaults to usd. + * @returns The staking rewards. + */ + public async stakingRewards( + assetId: string, + startTime = getWeekBackDate(new Date()), + endTime = formatDate(new Date()), + format: StakingRewardFormat = StakingRewardFormat.Usd, + ): Promise { + console.log(endTime); + console.log(startTime); + return StakingReward.list( + Coinbase.normalizeNetwork(this.getNetworkId()), + assetId, + [this.getId()], + startTime, + endTime, + format, + ); + } + + private async createStakingOperationRequest( + amount: Amount, + assetId: string, + action: string, + options: CoinbaseWalletAddressStakeOptions, + ): Promise { + if (new Decimal(amount.toString()).lessThanOrEqualTo(0)) { + throw new Error("Amount required greater than zero."); + } + const asset = await Asset.fetch(this.getNetworkId(), assetId); + + options.amount = asset.toAtomicAmount(new Decimal(amount.toString())).toString(); + + const stakingOperationRequest = { + network_id: this.getNetworkId(), + asset_id: Asset.primaryDenomination(assetId), + action: action, + options: options, + }; + + const response = await Coinbase.apiClients.stake!.createStakingOperation( + this.getWalletId(), + this.getId(), + stakingOperationRequest, + ); + + return new StakingOperation(response!.data); + } + + private async broadcastStakingOperationRequest( + stakingOperation: StakingOperation, + signedPayload: string, + ): Promise { + const broadcastStakingOperationRequest = { + signed_payload: signedPayload, + transaction_index: 0, + }; + const response = await Coinbase.apiClients.stake!.broadcastStakingOperation( + this.getWalletId(), + this.getId(), + stakingOperation.getID(), + broadcastStakingOperationRequest, + ); + + return new StakingOperation(response.data); + } } diff --git a/src/coinbase/staking_operation.ts b/src/coinbase/staking_operation.ts index 1cc5356d..00173af3 100644 --- a/src/coinbase/staking_operation.ts +++ b/src/coinbase/staking_operation.ts @@ -5,6 +5,7 @@ import { } from "../client/api"; import { Transaction } from "./transaction"; import { Coinbase } from "./coinbase"; +import { StakingOperationStatus } from "./types"; import { delay } from "./utils"; /** @@ -36,14 +37,76 @@ export class StakingOperation { } /** - * Get the staking operation ID. + * Returns the Staking Operation ID. * - * @returns The unique ID of the staking operation. + * @returns The Staking Operation ID. */ public getID(): string { return this.model.id; } + /** + * Returns the Wallet ID if it exists. + * + * @returns The Wallet ID. + */ + public getWalletID(): string | undefined { + return this.model.wallet_id; + } + + /** + * Returns the Address ID. + * + * @returns The Address ID. + */ + public getAddressID(): string { + return this.model.address_id; + } + + /** + * Returns the Status of the StakingOperation. + * + * @returns The Status of the StakingOperation. + */ + public getStatus(): StakingOperationStatus | undefined { + switch (this.model.status) { + case StakingOperationStatus.INITIALIZED: + return StakingOperationStatus.INITIALIZED; + case StakingOperationStatus.PENDING: + return StakingOperationStatus.PENDING; + case StakingOperationStatus.COMPLETE: + return StakingOperationStatus.COMPLETE; + case StakingOperationStatus.FAILED: + return StakingOperationStatus.FAILED; + default: + return undefined; + } + } + + /** + * Reloads the StakingOperation model with the latest data from the server. + * If the StakingOperation object was created by an ExternalAddress then it will + * not have a wallet ID. + * + * @throws {APIError} if the API request to get the StakingOperation fails. + * @throws {Error} if this function is called on a StakingOperation without a wallet ID. + */ + public async reload(): Promise { + if (this.getWalletID() === undefined) { + throw new Error("cannot reload staking operation without a wallet ID."); + } + const result = await Coinbase.apiClients.stake!.getStakingOperation( + this.getWalletID()!, + this.getAddressID(), + this.getID(), + ); + this.model = result?.data; + this.transactions = []; + result?.data.transactions.forEach(transaction => { + this.transactions.push(new Transaction(transaction)); + }); + } + /** * Get the transactions associated with this staking operation. * @@ -72,15 +135,6 @@ export class StakingOperation { return signedVoluntaryExitMessages; } - /** - * Get the status of the staking operation. - * - * @returns The status of the staking operation. - */ - public getStatus(): StakingOperationStatusEnum { - return this.model.status; - } - /** * Returns whether the Staking operation is in a terminal State. * diff --git a/src/coinbase/transaction.ts b/src/coinbase/transaction.ts index 72d7632c..c8ac6b78 100644 --- a/src/coinbase/transaction.ts +++ b/src/coinbase/transaction.ts @@ -156,6 +156,6 @@ export class Transaction { * @returns A string representation of the Transaction. */ toString(): string { - return `Transaction { transactionHash: '${this.getTransactionHash()}', status: '${this.getStatus()}' }`; + return `Transaction { transactionHash: '${this.getTransactionHash()}', status: '${this.getStatus()}', unsignedPayload: '${this.getUnsignedPayload()}', signedPayload: ${this.getSignedPayload()}, transactionLink: ${this.getTransactionLink()} }`; } } diff --git a/src/coinbase/types.ts b/src/coinbase/types.ts index 7762b60b..50169697 100644 --- a/src/coinbase/types.ts +++ b/src/coinbase/types.ts @@ -27,6 +27,8 @@ import { FetchStakingRewardsRequest, FetchStakingRewards200Response, FaucetTransaction, + BroadcastStakingOperationRequest, + CreateStakingOperationRequest, ValidatorList, Validator, } from "./../client/api"; @@ -416,6 +418,28 @@ export type StakeAPIClient = { page?: string, options?: AxiosRequestConfig, ): AxiosPromise; + + broadcastStakingOperation( + walletId: string, + addressId: string, + stakingOperationId: string, + broadcastStakingOperationRequest: BroadcastStakingOperationRequest, + options?: AxiosRequestConfig, + ): AxiosPromise; + + createStakingOperation( + walletId: string, + addressId: string, + createStakingOperationRequest: CreateStakingOperationRequest, + options?: AxiosRequestConfig, + ): AxiosPromise; + + getStakingOperation( + walletId: string, + addressId: string, + stakingOperationId: string, + options?: AxiosRequestConfig, + ): AxiosPromise; }; export type ValidatorAPIClient = { @@ -689,6 +713,38 @@ export type CoinbaseConfigureFromJsonOptions = { basePath?: string; }; +/** + * CoinbaseExternalAddressStakeOptions type definition. + */ +export type CoinbaseExternalAddressStakeOptions = { + /** + * The mode type that you're trying to stake with. + * e.g. + */ + mode?: StakeOptionsMode; + + /** + * The amount to stake, unstake, or claim_stake for in a staking operation. + */ + amount?: string; +}; + +/** + * CoinbaseWalletAddressStakeOptions type definition. + */ +export type CoinbaseWalletAddressStakeOptions = { + /** + * The mode type that you're trying to stake with. + * e.g. + */ + mode?: StakeOptionsMode; + + /** + * The amount to stake, unstake, or claim_stake for in a staking operation. + */ + amount?: string; +}; + /** * StakeOptionsMode type definition. */ @@ -708,6 +764,13 @@ export enum StakeOptionsMode { NATIVE = "native", } +export enum StakingOperationStatus { + INITIALIZED = "initialized", + PENDING = "pending", + COMPLETE = "complete", + FAILED = "failed", +} + /** * Options for creating a Transfer. */ diff --git a/src/coinbase/utils.ts b/src/coinbase/utils.ts index d0e2937c..94f65d18 100644 --- a/src/coinbase/utils.ts +++ b/src/coinbase/utils.ts @@ -106,3 +106,30 @@ export function parseUnsignedPayload(payload: string): Record { return parsedPayload; } + +/** + * Formats the input date to 'YYYY-MM-DD' + * + * @param date - The date to format. + * + * @returns a formated date of 'YYYY-MM-DD' + */ +export function formatDate(date: Date): string { + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, "0"); // Months are zero-based, so add 1 + const day = String(date.getDate()).padStart(2, "0"); + return `${year}-${month}-${day}T00:00:00Z`; +} + +/** + * + * Takes a date and subtracts a week from it. (7 days) + * + * @param date - The date to be formatted. + * + * @returns a formatted date that is one week ago. + */ +export function getWeekBackDate(date: Date): string { + date.setDate(date.getDate() - 7); + return formatDate(date); +} diff --git a/src/coinbase/wallet.ts b/src/coinbase/wallet.ts index 74f5b3e5..b82a2cc1 100644 --- a/src/coinbase/wallet.ts +++ b/src/coinbase/wallet.ts @@ -4,7 +4,7 @@ import Decimal from "decimal.js"; import { ethers } from "ethers"; import * as fs from "fs"; import * as secp256k1 from "secp256k1"; -import { Address as AddressModel, Wallet as WalletModel } from "../client"; +import { Address as AddressModel, Wallet as WalletModel, StakingRewardFormat } from "../client"; import { Address } from "./address"; import { WalletAddress } from "./address/wallet_address"; import { Asset } from "./asset"; @@ -16,14 +16,18 @@ import { FaucetTransaction } from "./faucet_transaction"; import { Trade } from "./trade"; import { Transfer } from "./transfer"; import { + Amount, CreateTransferOptions, CreateTradeOptions, SeedData, ServerSignerStatus, + StakeOptionsMode, WalletCreateOptions, WalletData, } from "./types"; -import { convertStringToHex, delay } from "./utils"; +import { convertStringToHex, delay, formatDate, getWeekBackDate } from "./utils"; +import { StakingOperation } from "./staking_operation"; +import { StakingReward } from "./staking_reward"; /** * A representation of a Wallet. Wallets come with a single default Address, but can expand to have a set of Addresses, @@ -304,6 +308,117 @@ export class Wallet { }); } + /** + * Get the stakeable balance for the supplied asset. + * + * @param asset_id - The asset to check the stakeable balance for. + * @param mode - The staking mode. Defaults to DEFAULT. + * @param options - Additional options for getting the stakeable balance. + * @returns The stakeable balance. + */ + public async stakeableBalance( + asset_id: string, + mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, + options: { [key: string]: string } = {}, + ): Promise { + if (!this.getDefaultAddress()) { + throw new InternalError("Default address not found"); + } + return await this.getDefaultAddress()!.stakeableBalance(asset_id, mode, options); + } + + /** + * Get the unstakeable balance for the supplied asset. + * + * @param asset_id - The asset to check the unstakeable balance for. + * @param mode - The staking mode. Defaults to DEFAULT. + * @param options - Additional options for getting the unstakeable balance. + * @returns The unstakeable balance. + */ + public async unstakeableBalance( + asset_id: string, + mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, + options: { [key: string]: string } = {}, + ): Promise { + if (!this.getDefaultAddress()) { + throw new InternalError("Default address not found"); + } + return await this.getDefaultAddress()!.unstakeableBalance(asset_id, mode, options); + } + + /** + * Get the claimable balance for the supplied asset. + * + * @param asset_id - The asset to check claimable balance for. + * @param mode - The staking mode. Defaults to DEFAULT. + * @param options - Additional options for getting the claimable balance. + * @returns The claimable balance. + */ + public async claimableBalance( + asset_id: string, + mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, + options: { [key: string]: string } = {}, + ): Promise { + if (!this.getDefaultAddress()) { + throw new InternalError("Default address not found"); + } + return await this.getDefaultAddress()!.claimableBalance(asset_id, mode, options); + } + + /** + * Lists the staking rewards for the address. + * + * @param assetId - The asset ID. + * @param startTime - The start time. + * @param endTime - The end time. + * @param format - The format to return the rewards in. (usd, native). Defaults to usd. + * @returns The staking rewards. + */ + public async stakingRewards( + assetId: string, + startTime = getWeekBackDate(new Date()), + endTime = formatDate(new Date()), + format: StakingRewardFormat = StakingRewardFormat.Usd, + ): Promise { + if (!this.getDefaultAddress()) { + throw new InternalError("Default address not found"); + } + return await this.getDefaultAddress()!.stakingRewards(assetId, startTime, endTime, format); + } + + /** + * Creates a staking operation to stake, signs it, and broadcasts it on the blockchain. + * + * @param amount - The amount for the staking operation. + * @param assetId - The asset to the staking operation. + * @param action - The type of staking action to perform. + * @param timeoutSeconds - The amount to wait for the transaction to complete when broadcasted. + * @param intervalSeconds - The amount to check each time for a successful broadcast. + * @param options - Additional options such as setting the mode for the staking action. + * + * @returns The staking operation after it's completed fully. + */ + public async createStakingOperation( + amount: Amount, + assetId: string, + action: string, + timeoutSeconds = 60, + intervalSeconds = 0.2, + options: CoinbaseWalletAddressStakeOptions = { mode: StakeOptionsMode.DEFAULT }, + ): Promise { + if (!this.getDefaultAddress()) { + throw new InternalError("Default address not found"); + } + return await this.getDefaultAddress()!.createStakingOperation( + amount, + assetId, + action, + timeoutSeconds, + intervalSeconds, + options, + ); + } + /** * Returns the list of balances of this Wallet. Balances are aggregated across all Addresses in the Wallet. * From 06785dda0e047f3fd72c1cba2b3109e6f0ef065a Mon Sep 17 00:00:00 2001 From: Marcin Lenczewski Date: Thu, 25 Jul 2024 18:21:35 -0400 Subject: [PATCH 03/22] Add test cases for staking on wallet addresses --- src/coinbase/address/wallet_address.ts | 6 +- src/tests/transaction_test.ts | 2 +- src/tests/utils.ts | 3 + src/tests/wallet_address_test.ts | 181 +++++++++++++++++++- src/tests/wallet_test.ts | 223 ++++++++++++++++++++++++- 5 files changed, 407 insertions(+), 8 deletions(-) diff --git a/src/coinbase/address/wallet_address.ts b/src/coinbase/address/wallet_address.ts index 41e63a8b..fc254306 100644 --- a/src/coinbase/address/wallet_address.ts +++ b/src/coinbase/address/wallet_address.ts @@ -433,7 +433,7 @@ export class WalletAddress extends Address { } await delay(intervalSeconds); } - throw new Error("Transfer timed out"); + throw new Error("Staking Operation timed out"); } /** @@ -553,8 +553,6 @@ export class WalletAddress extends Address { endTime = formatDate(new Date()), format: StakingRewardFormat = StakingRewardFormat.Usd, ): Promise { - console.log(endTime); - console.log(startTime); return StakingReward.list( Coinbase.normalizeNetwork(this.getNetworkId()), assetId, @@ -609,6 +607,6 @@ export class WalletAddress extends Address { broadcastStakingOperationRequest, ); - return new StakingOperation(response.data); + return new StakingOperation(response!.data); } } diff --git a/src/tests/transaction_test.ts b/src/tests/transaction_test.ts index 0c5a97a7..908c984e 100644 --- a/src/tests/transaction_test.ts +++ b/src/tests/transaction_test.ts @@ -240,7 +240,7 @@ describe("Transaction", () => { it("returns the same value as toString", () => { const transaction = new Transaction(broadcastedModel); expect(transaction.toString()).toEqual( - `Transaction { transactionHash: '${transaction.getTransactionHash()}', status: 'broadcast' }`, + `Transaction { transactionHash: '${transaction.getTransactionHash()}', status: '${transaction.getStatus()}', unsignedPayload: '${transaction.getUnsignedPayload()}', signedPayload: ${transaction.getSignedPayload()}, transactionLink: ${transaction.getTransactionLink()} }`, ); }); diff --git a/src/tests/utils.ts b/src/tests/utils.ts index c6243db8..4b8ad128 100644 --- a/src/tests/utils.ts +++ b/src/tests/utils.ts @@ -432,6 +432,9 @@ export const stakeApiMock = { getExternalStakingOperation: jest.fn(), getStakingContext: jest.fn(), fetchStakingRewards: jest.fn(), + broadcastStakingOperation: jest.fn(), + createStakingOperation: jest.fn(), + getStakingOperation: jest.fn(), }; export const validatorApiMock = { diff --git a/src/tests/wallet_address_test.ts b/src/tests/wallet_address_test.ts index f22b0a24..d3120219 100644 --- a/src/tests/wallet_address_test.ts +++ b/src/tests/wallet_address_test.ts @@ -2,7 +2,17 @@ import * as crypto from "crypto"; import { ethers } from "ethers"; import { FaucetTransaction } from "../coinbase/faucet_transaction"; -import { Balance as BalanceModel, TransferList, Trade as TradeModel } from "../client"; +import { + Balance as BalanceModel, + TransferList, + Trade as TradeModel, + StakingOperation as StakingOperationModel, + StakingOperationStatusEnum, + StakingContext as StakingContextModel, + FetchStakingRewards200Response, + StakingRewardStateEnum, + StakingRewardFormat, +} from "../client"; import Decimal from "decimal.js"; import { APIError, FaucetLimitReachedError } from "../coinbase/api_error"; import { Coinbase } from "../coinbase/coinbase"; @@ -24,6 +34,7 @@ import { transfersApiMock, walletsApiMock, externalAddressApiMock, + stakeApiMock, } from "./utils"; import { ArgumentError } from "../coinbase/errors"; import { Transfer } from "../coinbase/transfer"; @@ -32,6 +43,10 @@ import { Trade } from "../coinbase/trade"; import { Transaction } from "../coinbase/transaction"; import { WalletAddress } from "../coinbase/address/wallet_address"; import { Wallet } from "../coinbase/wallet"; +import { randomUUID } from "crypto"; +import { ExternalAddress } from "../coinbase/address/external_address"; +import { StakingOperation } from "../coinbase/staking_operation"; +import { StakingReward } from "../coinbase/staking_reward"; // Test suite for the WalletAddress class describe("WalletAddress", () => { @@ -220,6 +235,170 @@ describe("WalletAddress", () => { ); }); + describe("#stakingOperation", () => { + key = ethers.Wallet.createRandom(); + const newAddress = newAddressModel("", randomUUID(), Coinbase.networks.EthereumHolesky); + const walletAddress = new WalletAddress(newAddress, key as unknown as ethers.Wallet); + + const BALANCE_MODEL: BalanceModel = { + amount: "3000000000000000000", + asset: { + network_id: Coinbase.networks.EthereumHolesky, + asset_id: Coinbase.assets.Eth, + decimals: 18, + contract_address: "0xtestcontract", + }, + }; + + const STAKING_OPERATION_MODEL: StakingOperationModel = { + id: randomUUID(), + network_id: Coinbase.networks.EthereumHolesky, + address_id: newAddress.address_id, + status: StakingOperationStatusEnum.Complete, + transactions: [ + { + from_address_id: newAddress.address_id, + network_id: Coinbase.networks.EthereumHolesky, + status: "pending", + unsigned_payload: + "7b2274797065223a22307832222c22636861696e4964223a22307834323638222c226e6f" + + "6e6365223a2230783137222c22746f223a22307861353534313664653564653631613061" + + "633161613839373061323830653034333838623164653462222c22676173223a22307833" + + "30643430222c226761735072696365223a6e756c6c2c226d61785072696f726974794665" + + "65506572476173223a223078323534306265343030222c226d6178466565506572476173" + + "223a223078326437313162383430222c2276616c7565223a223078356166333130376134" + + "303030222c22696e707574223a2230783361346236366631222c226163636573734c6973" + + "74223a5b5d2c2276223a22307830222c2272223a22307830222c2273223a22307830222c" + + "2279506172697479223a22307830222c2268617368223a22307839613034353830343332" + + "646630666334656139646164653561343836353433623831666239333833316430646239" + + "386263356436373834393339343866333432227d", + }, + ], + }; + + const STAKING_CONTEXT_MODEL: StakingContextModel = { + context: { + stakeable_balance: { + amount: "3000000000000000000", + asset: { + asset_id: Coinbase.assets.Eth, + network_id: Coinbase.networks.EthereumHolesky, + decimals: 18, + contract_address: "0x", + }, + }, + unstakeable_balance: { + amount: "2000000000000000000", + asset: { + asset_id: Coinbase.assets.Eth, + network_id: Coinbase.networks.EthereumHolesky, + decimals: 18, + contract_address: "0x", + }, + }, + claimable_balance: { + amount: "1000000000000000000", + asset: { + asset_id: Coinbase.assets.Eth, + network_id: Coinbase.networks.EthereumHolesky, + decimals: 18, + contract_address: "0x", + }, + }, + }, + }; + + const STAKING_REWARD_RESPONSE: FetchStakingRewards200Response = { + data: [ + { + address_id: newAddress.address_id, + date: "2024-05-01", + amount: "361", + state: StakingRewardStateEnum.Pending, + format: StakingRewardFormat.Usd, + }, + { + address_id: newAddress.address_id, + date: "2024-05-02", + amount: "203", + state: StakingRewardStateEnum.Pending, + format: StakingRewardFormat.Usd, + }, + { + address_id: newAddress.address_id, + date: "2024-05-03", + amount: "226", + state: StakingRewardStateEnum.Pending, + format: StakingRewardFormat.Usd, + }, + ], + has_more: false, + next_page: "", + }; + + beforeAll(() => { + Coinbase.apiClients.externalAddress = externalAddressApiMock; + Coinbase.apiClients.stake = stakeApiMock; + Coinbase.apiClients.asset = assetsApiMock; + }); + + beforeEach(() => { + jest.clearAllMocks(); + }); + + describe(".createStakingOperation", () => { + it("should create a staking operation from the address", async () => { + STAKING_OPERATION_MODEL.wallet_id = newAddress.wallet_id; + Coinbase.apiClients.asset!.getAsset = getAssetMock(); + Coinbase.apiClients.externalAddress!.getExternalAddressBalance = + mockReturnValue(BALANCE_MODEL); + Coinbase.apiClients.stake!.createStakingOperation = + mockReturnValue(STAKING_OPERATION_MODEL); + Coinbase.apiClients.stake!.broadcastStakingOperation = + mockReturnValue(STAKING_OPERATION_MODEL); + STAKING_OPERATION_MODEL.status = StakingOperationStatusEnum.Complete; + Coinbase.apiClients.stake!.getStakingOperation = mockReturnValue(STAKING_OPERATION_MODEL); + + const op = await walletAddress.createStakingOperation(0.001, Coinbase.assets.Eth, "stake"); + + expect(op).toBeInstanceOf(StakingOperation); + }); + }); + + describe(".stakeableBalance", () => { + it("should return the stakeable balance successfully with default params", async () => { + Coinbase.apiClients.stake!.getStakingContext = mockReturnValue(STAKING_CONTEXT_MODEL); + const stakeableBalance = await walletAddress.stakeableBalance(Coinbase.assets.Eth); + expect(stakeableBalance).toEqual(new Decimal("3")); + }); + }); + + describe(".unstakeableBalance", () => { + it("should return the unstakeableBalance balance successfully with default params", async () => { + Coinbase.apiClients.stake!.getStakingContext = mockReturnValue(STAKING_CONTEXT_MODEL); + const stakeableBalance = await walletAddress.unstakeableBalance(Coinbase.assets.Eth); + expect(stakeableBalance).toEqual(new Decimal("2")); + }); + }); + + describe(".claimableBalance", () => { + it("should return the claimableBalance balance successfully with default params", async () => { + Coinbase.apiClients.stake!.getStakingContext = mockReturnValue(STAKING_CONTEXT_MODEL); + const stakeableBalance = await walletAddress.claimableBalance(Coinbase.assets.Eth); + expect(stakeableBalance).toEqual(new Decimal("1")); + }); + }); + + describe(".stakingRewards", () => { + it("should successfully return staking rewards", async () => { + Coinbase.apiClients.stake!.fetchStakingRewards = mockReturnValue(STAKING_REWARD_RESPONSE); + Coinbase.apiClients.asset!.getAsset = getAssetMock(); + const response = await walletAddress.stakingRewards(Coinbase.assets.Eth); + expect(response).toBeInstanceOf(Array); + }); + }); + }); + describe("#createTransfer", () => { let weiAmount, destination, intervalSeconds, timeoutSeconds; let walletId, id; diff --git a/src/tests/wallet_test.ts b/src/tests/wallet_test.ts index d793f569..72e4d42d 100644 --- a/src/tests/wallet_test.ts +++ b/src/tests/wallet_test.ts @@ -1,12 +1,12 @@ import * as fs from "fs"; -import crypto from "crypto"; +import crypto, { randomUUID } from "crypto"; import Decimal from "decimal.js"; import { ethers } from "ethers"; import { APIError } from "../coinbase/api_error"; import { Coinbase } from "../coinbase/coinbase"; import { ArgumentError, InternalError } from "../coinbase/errors"; import { Wallet } from "../coinbase/wallet"; -import { ServerSignerStatus, TransferStatus } from "../coinbase/types"; +import { ServerSignerStatus, StakeOptionsMode, TransferStatus } from "../coinbase/types"; import { AddressBalanceList, Address as AddressModel, @@ -14,6 +14,12 @@ import { TransactionStatusEnum, Wallet as WalletModel, Trade as TradeModel, + StakingOperation as StakingOperationModel, + StakingOperationStatusEnum, + StakingContext as StakingContextModel, + FetchStakingRewards200Response, + StakingRewardStateEnum, + StakingRewardFormat, } from "./../client"; import { VALID_ADDRESS_MODEL, @@ -32,9 +38,12 @@ import { mockListAddress, getAssetMock, externalAddressApiMock, + stakeApiMock, } from "./utils"; import { Trade } from "../coinbase/trade"; import { WalletAddress } from "../coinbase/address/wallet_address"; +import { StakingOperation } from "../coinbase/staking_operation"; +import { StakingReward } from "../coinbase/staking_reward"; describe("Wallet Class", () => { let wallet: Wallet; @@ -76,6 +85,216 @@ describe("Wallet Class", () => { Coinbase.useServerSigner = false; }); + describe("#stakingOperation", () => { + let walletModel: WalletModel; + const addressID = "0xdeadbeef"; + const address = newAddressModel(randomUUID(), addressID, Coinbase.networks.EthereumHolesky); + + const BALANCE_MODEL: BalanceModel = { + amount: "3000000000000000000", + asset: { + network_id: address.network_id, + asset_id: Coinbase.assets.Eth, + decimals: 18, + contract_address: "0xtestcontract", + }, + }; + + const STAKING_OPERATION_MODEL: StakingOperationModel = { + id: randomUUID(), + network_id: Coinbase.networks.EthereumHolesky, + address_id: addressID, + status: StakingOperationStatusEnum.Complete, + transactions: [ + { + from_address_id: addressID, + network_id: Coinbase.networks.EthereumHolesky, + status: "pending", + unsigned_payload: + "7b2274797065223a22307832222c22636861696e4964223a22307834323638222c226e6f" + + "6e6365223a2230783137222c22746f223a22307861353534313664653564653631613061" + + "633161613839373061323830653034333838623164653462222c22676173223a22307833" + + "30643430222c226761735072696365223a6e756c6c2c226d61785072696f726974794665" + + "65506572476173223a223078323534306265343030222c226d6178466565506572476173" + + "223a223078326437313162383430222c2276616c7565223a223078356166333130376134" + + "303030222c22696e707574223a2230783361346236366631222c226163636573734c6973" + + "74223a5b5d2c2276223a22307830222c2272223a22307830222c2273223a22307830222c" + + "2279506172697479223a22307830222c2268617368223a22307839613034353830343332" + + "646630666334656139646164653561343836353433623831666239333833316430646239" + + "386263356436373834393339343866333432227d", + }, + ], + }; + + const STAKING_CONTEXT_MODEL: StakingContextModel = { + context: { + stakeable_balance: { + amount: "3000000000000000000", + asset: { + asset_id: Coinbase.assets.Eth, + network_id: Coinbase.networks.EthereumHolesky, + decimals: 18, + contract_address: "0x", + }, + }, + unstakeable_balance: { + amount: "2000000000000000000", + asset: { + asset_id: Coinbase.assets.Eth, + network_id: Coinbase.networks.EthereumHolesky, + decimals: 18, + contract_address: "0x", + }, + }, + claimable_balance: { + amount: "1000000000000000000", + asset: { + asset_id: Coinbase.assets.Eth, + network_id: Coinbase.networks.EthereumHolesky, + decimals: 18, + contract_address: "0x", + }, + }, + }, + }; + + const STAKING_REWARD_RESPONSE: FetchStakingRewards200Response = { + data: [ + { + address_id: addressID, + date: "2024-05-01", + amount: "361", + state: StakingRewardStateEnum.Pending, + format: StakingRewardFormat.Usd, + }, + { + address_id: addressID, + date: "2024-05-02", + amount: "203", + state: StakingRewardStateEnum.Pending, + format: StakingRewardFormat.Usd, + }, + { + address_id: addressID, + date: "2024-05-03", + amount: "226", + state: StakingRewardStateEnum.Pending, + format: StakingRewardFormat.Usd, + }, + ], + has_more: false, + next_page: "", + }; + + beforeAll(() => { + Coinbase.apiClients.externalAddress = externalAddressApiMock; + Coinbase.apiClients.stake = stakeApiMock; + Coinbase.apiClients.asset = assetsApiMock; + }); + + beforeEach(() => { + jest.clearAllMocks(); + }); + + describe(".createStakingOperation", () => { + it("should create a staking operation from the default address", async () => { + const wallet = await Wallet.create({ networkId: Coinbase.networks.EthereumHolesky }); + STAKING_OPERATION_MODEL.wallet_id = wallet.getId(); + Coinbase.apiClients.asset!.getAsset = getAssetMock(); + Coinbase.apiClients.externalAddress!.getExternalAddressBalance = + mockReturnValue(BALANCE_MODEL); + Coinbase.apiClients.stake!.createStakingOperation = + mockReturnValue(STAKING_OPERATION_MODEL); + Coinbase.apiClients.stake!.broadcastStakingOperation = + mockReturnValue(STAKING_OPERATION_MODEL); + STAKING_OPERATION_MODEL.status = StakingOperationStatusEnum.Complete; + Coinbase.apiClients.stake!.getStakingOperation = mockReturnValue(STAKING_OPERATION_MODEL); + + const op = await wallet.createStakingOperation(0.001, Coinbase.assets.Eth, "stake"); + + expect(op).toBeInstanceOf(StakingOperation); + }); + + it("should throw an error when the wallet does not have a default address", async () => { + const newWallet = Wallet.init(walletModel); + await expect( + async () => await newWallet.createStakingOperation(0.001, "eth", "stake"), + ).rejects.toThrow(InternalError); + }); + + it("should fail when reloading without a wallet id", async () => { + const stakingOperation = new StakingOperation(STAKING_OPERATION_MODEL); + STAKING_OPERATION_MODEL.wallet_id = undefined; + await expect(async () => await stakingOperation.reload()).rejects.toThrow(Error); + }); + }); + + describe(".stakeableBalance", () => { + it("should throw an error when the wallet does not have a default address", async () => { + const newWallet = Wallet.init(walletModel); + await expect( + async () => await newWallet.stakeableBalance(Coinbase.assets.Eth), + ).rejects.toThrow(InternalError); + }); + + it("should return the stakeable balance successfully with default params", async () => { + //const wallet = await Wallet.create({ networkId: Coinbase.networks.EthereumHolesky }); + Coinbase.apiClients.stake!.getStakingContext = mockReturnValue(STAKING_CONTEXT_MODEL); + const stakeableBalance = await wallet.stakeableBalance(Coinbase.assets.Eth); + expect(stakeableBalance).toEqual(new Decimal("3")); + }); + }); + + describe(".unstakeableBalance", () => { + it("should throw an error when the wallet does not have a default address", async () => { + const newWallet = Wallet.init(walletModel); + await expect( + async () => await newWallet.unstakeableBalance(Coinbase.assets.Eth), + ).rejects.toThrow(InternalError); + }); + + it("should return the unstakeableBalance balance successfully with default params", async () => { + const wallet = await Wallet.create({ networkId: Coinbase.networks.EthereumHolesky }); + Coinbase.apiClients.stake!.getStakingContext = mockReturnValue(STAKING_CONTEXT_MODEL); + const stakeableBalance = await wallet.unstakeableBalance(Coinbase.assets.Eth); + expect(stakeableBalance).toEqual(new Decimal("2")); + }); + }); + + describe(".claimableBalance", () => { + it("should throw an error when the wallet does not have a default address", async () => { + const newWallet = Wallet.init(walletModel); + await expect( + async () => await newWallet.claimableBalance(Coinbase.assets.Eth), + ).rejects.toThrow(InternalError); + }); + + it("should return the claimableBalance balance successfully with default params", async () => { + const wallet = await Wallet.create({ networkId: Coinbase.networks.EthereumHolesky }); + Coinbase.apiClients.stake!.getStakingContext = mockReturnValue(STAKING_CONTEXT_MODEL); + const stakeableBalance = await wallet.claimableBalance(Coinbase.assets.Eth); + expect(stakeableBalance).toEqual(new Decimal("1")); + }); + }); + + describe(".stakingRewards", () => { + it("should throw an error when the wallet does not have a default address", async () => { + const newWallet = Wallet.init(walletModel); + await expect( + async () => await newWallet.stakingRewards(Coinbase.assets.Eth), + ).rejects.toThrow(InternalError); + }); + + it("should successfully return staking rewards", async () => { + const wallet = await Wallet.create({ networkId: Coinbase.networks.EthereumHolesky }); + Coinbase.apiClients.stake!.fetchStakingRewards = mockReturnValue(STAKING_REWARD_RESPONSE); + Coinbase.apiClients.asset!.getAsset = getAssetMock(); + const response = await wallet.stakingRewards(Coinbase.assets.Eth); + expect(response).toBeInstanceOf(Array); + }); + }); + }); + describe(".createTransfer", () => { let weiAmount, destination, intervalSeconds, timeoutSeconds; let balanceModel: BalanceModel; From a0dc442545ee1992674e5313e34b16cd5f2f98eb Mon Sep 17 00:00:00 2001 From: Marcin Lenczewski Date: Thu, 25 Jul 2024 18:36:59 -0400 Subject: [PATCH 04/22] Updating comments --- src/coinbase/address/wallet_address.ts | 20 +++++++++++++++++++- src/coinbase/wallet.ts | 8 ++++++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/coinbase/address/wallet_address.ts b/src/coinbase/address/wallet_address.ts index fc254306..7978b520 100644 --- a/src/coinbase/address/wallet_address.ts +++ b/src/coinbase/address/wallet_address.ts @@ -393,7 +393,6 @@ export class WalletAddress extends Address { * @param timeoutSeconds - The amount to wait for the transaction to complete when broadcasted. * @param intervalSeconds - The amount to check each time for a successful broadcast. * @param options - Additional options such as setting the mode for the staking action. - * * @returns The staking operation after it's completed fully. */ public async createStakingOperation( @@ -563,6 +562,17 @@ export class WalletAddress extends Address { ); } + /** + * A helper function that creates the staking operation. + * + * @param amount - The amount for the staking operation. + * @param assetId - The asset for the staking operation. + * @param action - The type of staking action to perform. + * @param options - Additional options such as setting the mode for the staking action. + * @private + * @throws {Error} if the amount is less than zero. + * @returns The created staking operation. + */ private async createStakingOperationRequest( amount: Amount, assetId: string, @@ -592,6 +602,14 @@ export class WalletAddress extends Address { return new StakingOperation(response!.data); } + /** + * A helper function that broadcasts the signed payload. + * + * @param stakingOperation - The staking operation related to the signed payload. + * @param signedPayload - The payload that's being broadcasted. + * @private + * @returns An updated staking operation with the broadcasted transaction. + */ private async broadcastStakingOperationRequest( stakingOperation: StakingOperation, signedPayload: string, diff --git a/src/coinbase/wallet.ts b/src/coinbase/wallet.ts index b82a2cc1..d1f46c55 100644 --- a/src/coinbase/wallet.ts +++ b/src/coinbase/wallet.ts @@ -314,6 +314,7 @@ export class Wallet { * @param asset_id - The asset to check the stakeable balance for. * @param mode - The staking mode. Defaults to DEFAULT. * @param options - Additional options for getting the stakeable balance. + * @throws {Error} if the default address is not found. * @returns The stakeable balance. */ public async stakeableBalance( @@ -333,6 +334,7 @@ export class Wallet { * @param asset_id - The asset to check the unstakeable balance for. * @param mode - The staking mode. Defaults to DEFAULT. * @param options - Additional options for getting the unstakeable balance. + * @throws {Error} if the default address is not found. * @returns The unstakeable balance. */ public async unstakeableBalance( @@ -352,6 +354,7 @@ export class Wallet { * @param asset_id - The asset to check claimable balance for. * @param mode - The staking mode. Defaults to DEFAULT. * @param options - Additional options for getting the claimable balance. + * @throws {Error} if the default address is not found. * @returns The claimable balance. */ public async claimableBalance( @@ -372,6 +375,7 @@ export class Wallet { * @param startTime - The start time. * @param endTime - The end time. * @param format - The format to return the rewards in. (usd, native). Defaults to usd. + * @throws {Error} if the default address is not found. * @returns The staking rewards. */ public async stakingRewards( @@ -390,12 +394,12 @@ export class Wallet { * Creates a staking operation to stake, signs it, and broadcasts it on the blockchain. * * @param amount - The amount for the staking operation. - * @param assetId - The asset to the staking operation. + * @param assetId - The asset for the staking operation. * @param action - The type of staking action to perform. * @param timeoutSeconds - The amount to wait for the transaction to complete when broadcasted. * @param intervalSeconds - The amount to check each time for a successful broadcast. * @param options - Additional options such as setting the mode for the staking action. - * + * @throws {Error} if the default address is not found. * @returns The staking operation after it's completed fully. */ public async createStakingOperation( From 89c66748edeefd48f91bd842ec18262da62b0086 Mon Sep 17 00:00:00 2001 From: Marcin Lenczewski Date: Thu, 25 Jul 2024 20:18:21 -0400 Subject: [PATCH 05/22] Corrected broadcasting the transaction index to a variable --- src/coinbase/address/wallet_address.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/coinbase/address/wallet_address.ts b/src/coinbase/address/wallet_address.ts index 7978b520..ec84a27c 100644 --- a/src/coinbase/address/wallet_address.ts +++ b/src/coinbase/address/wallet_address.ts @@ -413,13 +413,15 @@ export class WalletAddress extends Address { // NOTE: Staking does not yet support server signers at this point. await stakingOperation.sign(this.key!); - for (const tx of stakingOperation.getTransactions()) { - if (!tx.isSigned()) { + for (let i = 0; i < stakingOperation.getTransactions().length; i++) { + const transaction = stakingOperation.getTransactions()[0]; + if (!transaction.isSigned()) { continue; } stakingOperation = await this.broadcastStakingOperationRequest( stakingOperation, - tx.getSignedPayload()!.slice(2), + transaction.getSignedPayload()!.slice(2), + i, ); } @@ -607,16 +609,18 @@ export class WalletAddress extends Address { * * @param stakingOperation - The staking operation related to the signed payload. * @param signedPayload - The payload that's being broadcasted. + * @param transactionIndex - The index of the transaction in the array from the staking operation. * @private * @returns An updated staking operation with the broadcasted transaction. */ private async broadcastStakingOperationRequest( stakingOperation: StakingOperation, signedPayload: string, + transactionIndex: number, ): Promise { const broadcastStakingOperationRequest = { signed_payload: signedPayload, - transaction_index: 0, + transaction_index: transactionIndex, }; const response = await Coinbase.apiClients.stake!.broadcastStakingOperation( this.getWalletId(), From 2e77d13fb5f0b8874f8af9863a4f4286f5ac02d9 Mon Sep 17 00:00:00 2001 From: Marcin Lenczewski Date: Fri, 26 Jul 2024 14:43:22 -0400 Subject: [PATCH 06/22] Consolidated common staking balance functions under parent Address class + test cases additions --- src/coinbase/address.ts | 110 ++++++++++++++++++++++ src/coinbase/address/external_address.ts | 114 +---------------------- src/coinbase/address/wallet_address.ts | 109 +--------------------- src/tests/external_address_test.ts | 56 +++++++++++ 4 files changed, 168 insertions(+), 221 deletions(-) diff --git a/src/coinbase/address.ts b/src/coinbase/address.ts index d48471b4..e61f59c7 100644 --- a/src/coinbase/address.ts +++ b/src/coinbase/address.ts @@ -4,6 +4,7 @@ import { Asset } from "./asset"; import { Balance } from "./balance"; import { BalanceMap } from "./balance_map"; import { FaucetTransaction } from "./faucet_transaction"; +import { StakeOptionsMode } from "./types"; /** * A representation of a blockchain address, which is a user-controlled account on a network. @@ -75,6 +76,57 @@ export class Address { return Balance.fromModelAndAssetId(response.data, assetId).amount; } + /** + * Get the stakeable balance for the supplied asset. + * + * @param asset_id - The asset to check the stakeable balance for. + * @param mode - The staking mode. Defaults to DEFAULT. + * @param options - Additional options for getting the stakeable balance. + * @returns The stakeable balance. + */ + public async stakeableBalance( + asset_id: string, + mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, + options: { [key: string]: string } = {}, + ): Promise { + const balances = await this.getStakingBalances(asset_id, mode, options); + return balances.stakeableBalance; + } + + /** + * Get the unstakeable balance for the supplied asset. + * + * @param asset_id - The asset to check the unstakeable balance for. + * @param mode - The staking mode. Defaults to DEFAULT. + * @param options - Additional options for getting the unstakeable balance. + * @returns The unstakeable balance. + */ + public async unstakeableBalance( + asset_id: string, + mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, + options: { [key: string]: string } = {}, + ): Promise { + const balances = await this.getStakingBalances(asset_id, mode, options); + return balances.unstakeableBalance; + } + + /** + * Get the claimable balance for the supplied asset. + * + * @param asset_id - The asset to check claimable balance for. + * @param mode - The staking mode. Defaults to DEFAULT. + * @param options - Additional options for getting the claimable balance. + * @returns The claimable balance. + */ + public async claimableBalance( + asset_id: string, + mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, + options: { [key: string]: string } = {}, + ): Promise { + const balances = await this.getStakingBalances(asset_id, mode, options); + return balances.claimableBalance; + } + /** * Requests faucet funds for the address. * Only supported on testnet networks. @@ -99,4 +151,62 @@ export class Address { public toString(): string { return `Address { addressId: '${this.getId()}', networkId: '${this.getNetworkId()}' }`; } + + /** + * Create a shallow copy of given options. + * + * @param options - The supplied options to be copied + * @private + * @returns A copy of the options. + */ + protected copyOptions(options?: { [key: string]: string }): { + [key: string]: string; + } { + return { ...options }; + } + + /** + * Get the different staking balance types for the supplied asset. + * + * @param assetId - The asset to lookup balances for. + * @param mode - The staking mode. Defaults to DEFAULT. + * @param options - Additional options for the balance lookup. + * @private + * @returns The different balance types. + */ + private async getStakingBalances( + assetId: string, + mode?: StakeOptionsMode, + options?: { [key: string]: string }, + ): Promise<{ [key: string]: Decimal }> { + const newOptions = this.copyOptions(options); + + if (mode) { + newOptions.mode = mode; + } + + const request = { + network_id: this.getNetworkId(), + asset_id: Asset.primaryDenomination(assetId), + address_id: this.getId(), + options: newOptions, + }; + + const response = await Coinbase.apiClients.stake!.getStakingContext(request); + + return { + stakeableBalance: Balance.fromModelAndAssetId( + response!.data.context.stakeable_balance, + assetId, + ).amount, + unstakeableBalance: Balance.fromModelAndAssetId( + response!.data.context.unstakeable_balance, + assetId, + ).amount, + claimableBalance: Balance.fromModelAndAssetId( + response!.data.context.claimable_balance, + assetId, + ).amount, + }; + } } diff --git a/src/coinbase/address/external_address.ts b/src/coinbase/address/external_address.ts index 8af24070..6edf95d9 100644 --- a/src/coinbase/address/external_address.ts +++ b/src/coinbase/address/external_address.ts @@ -6,9 +6,6 @@ import { Asset } from "../asset"; import { StakingOperation } from "../staking_operation"; import { StakingRewardFormat } from "../../client"; import { StakingReward } from "../staking_reward"; -import { BalanceMap } from "../balance_map"; -import { Balance } from "../balance"; -import { FaucetTransaction } from "../faucet_transaction"; /** * A representation of a blockchain Address, which is a user-controlled account on a Network. Addresses are used to @@ -74,57 +71,6 @@ export class ExternalAddress extends Address { return this.buildStakingOperation(amount, assetId, "claim_stake", mode, options); } - /** - * Get the stakeable balance for the supplied asset. - * - * @param asset_id - The asset to check the stakeable balance for. - * @param mode - The staking mode. Defaults to DEFAULT. - * @param options - Additional options for getting the stakeable balance. - * @returns The stakeable balance. - */ - public async stakeableBalance( - asset_id: string, - mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, - options: { [key: string]: string } = {}, - ): Promise { - const balances = await this.getStakingBalances(asset_id, mode, options); - return balances.stakeableBalance; - } - - /** - * Get the unstakeable balance for the supplied asset. - * - * @param asset_id - The asset to check the unstakeable balance for. - * @param mode - The staking mode. Defaults to DEFAULT. - * @param options - Additional options for getting the unstakeable balance. - * @returns The unstakeable balance. - */ - public async unstakeableBalance( - asset_id: string, - mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, - options: { [key: string]: string } = {}, - ): Promise { - const balances = await this.getStakingBalances(asset_id, mode, options); - return balances.unstakeableBalance; - } - - /** - * Get the claimable balance for the supplied asset. - * - * @param asset_id - The asset to check claimable balance for. - * @param mode - The staking mode. Defaults to DEFAULT. - * @param options - Additional options for getting the claimable balance. - * @returns The claimable balance. - */ - public async claimableBalance( - asset_id: string, - mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, - options: { [key: string]: string } = {}, - ): Promise { - const balances = await this.getStakingBalances(asset_id, mode, options); - return balances.claimableBalance; - } - /** * Lists the staking rewards for the address. * @@ -216,7 +162,7 @@ export class ExternalAddress extends Address { mode: StakeOptionsMode, options: { [key: string]: string }, ): Promise { - if (assetId === "eth" && options.mode === StakeOptionsMode.NATIVE) { + if (assetId === "eth" && mode === StakeOptionsMode.NATIVE) { throw new Error(`Claiming stake for ETH is not supported in native mode.`); } @@ -229,51 +175,6 @@ export class ExternalAddress extends Address { } } - /** - * Get the different staking balance types for the supplied asset. - * - * @param assetId - The asset to lookup balances for. - * @param mode - The staking mode. Defaults to DEFAULT. - * @param options - Additional options for the balance lookup. - * @private - * @returns The different balance types. - */ - private async getStakingBalances( - assetId: string, - mode?: StakeOptionsMode, - options?: { [key: string]: string }, - ): Promise<{ [key: string]: Decimal }> { - const newOptions = this.copyOptions(options); - - if (mode) { - newOptions.mode = mode; - } - - const request = { - network_id: this.getNetworkId(), - asset_id: Asset.primaryDenomination(assetId), - address_id: this.getId(), - options: newOptions, - }; - - const response = await Coinbase.apiClients.stake!.getStakingContext(request); - - return { - stakeableBalance: Balance.fromModelAndAssetId( - response!.data.context.stakeable_balance, - assetId, - ).amount, - unstakeableBalance: Balance.fromModelAndAssetId( - response!.data.context.unstakeable_balance, - assetId, - ).amount, - claimableBalance: Balance.fromModelAndAssetId( - response!.data.context.claimable_balance, - assetId, - ).amount, - }; - } - /** * Builds the staking operation based on the supplied input. * @@ -316,17 +217,4 @@ export class ExternalAddress extends Address { return new StakingOperation(response!.data); } - - /** - * Create a shallow copy of given options. - * - * @param options - The supplied options to be copied - * @private - * @returns A copy of the options. - */ - private copyOptions(options?: { [key: string]: string }): { - [key: string]: string; - } { - return { ...options }; - } } diff --git a/src/coinbase/address/wallet_address.ts b/src/coinbase/address/wallet_address.ts index ec84a27c..2463fdae 100644 --- a/src/coinbase/address/wallet_address.ts +++ b/src/coinbase/address/wallet_address.ts @@ -1,10 +1,6 @@ import { Decimal } from "decimal.js"; import { ethers } from "ethers"; -import { - Address as AddressModel, - PartialEthStakingContext as PartialEthStakingContextModel, - StakingRewardFormat, -} from "../../client"; +import { Address as AddressModel, StakingRewardFormat } from "../../client"; import { Address } from "../address"; import { Asset } from "../asset"; import { Coinbase } from "../coinbase"; @@ -24,7 +20,6 @@ import { import { delay } from "../utils"; import { Wallet as WalletClass } from "../wallet"; import { StakingOperation } from "../staking_operation"; -import { Balance } from "../balance"; import { StakingReward } from "../staking_reward"; /** @@ -437,108 +432,6 @@ export class WalletAddress extends Address { throw new Error("Staking Operation timed out"); } - /** - * Get the stakeable balance for the supplied asset. - * - * @param asset_id - The asset to check the stakeable balance for. - * @param mode - The staking mode. Defaults to DEFAULT. - * @param options - Additional options for getting the stakeable balance. - * @returns The stakeable balance. - */ - public async stakeableBalance( - asset_id: string, - mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, - options: { [key: string]: string } = {}, - ): Promise { - const balances = await this.getStakingBalances(asset_id, mode, options); - return balances.stakeableBalance; - } - - /** - * Get the unstakeable balance for the supplied asset. - * - * @param asset_id - The asset to check the unstakeable balance for. - * @param mode - The staking mode. Defaults to DEFAULT. - * @param options - Additional options for getting the unstakeable balance. - * @returns The unstakeable balance. - */ - public async unstakeableBalance( - asset_id: string, - mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, - options: { [key: string]: string } = {}, - ): Promise { - const balances = await this.getStakingBalances(asset_id, mode, options); - return balances.unstakeableBalance; - } - - /** - * Get the claimable balance for the supplied asset. - * - * @param asset_id - The asset to check claimable balance for. - * @param mode - The staking mode. Defaults to DEFAULT. - * @param options - Additional options for getting the claimable balance. - * @returns The claimable balance. - */ - public async claimableBalance( - asset_id: string, - mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, - options: { [key: string]: string } = {}, - ): Promise { - const balances = await this.getStakingBalances(asset_id, mode, options); - return balances.claimableBalance; - } - - /** - * Get the different staking balance types for the supplied asset. - * - * @param assetId - The asset to lookup balances for. - * @param mode - The staking mode. Defaults to DEFAULT. - * @param options - Additional options for the balance lookup. - * @private - * @returns The different balance types. - */ - private async getStakingBalances( - assetId: string, - mode?: StakeOptionsMode, - options?: { [key: string]: string }, - ): Promise<{ [key: string]: Decimal }> { - const newOptions = this.copyOptions(options); - - if (mode) { - newOptions.mode = mode; - } - - const request = { - network_id: this.getNetworkId(), - asset_id: Asset.primaryDenomination(assetId), - address_id: this.getId(), - options: newOptions, - }; - - const response = await Coinbase.apiClients.stake!.getStakingContext(request); - - const balances = response!.data.context as PartialEthStakingContextModel; - - return { - stakeableBalance: Balance.fromModelAndAssetId(balances.stakeable_balance, assetId).amount, - unstakeableBalance: Balance.fromModelAndAssetId(balances.unstakeable_balance, assetId).amount, - claimableBalance: Balance.fromModelAndAssetId(balances.claimable_balance, assetId).amount, - }; - } - - /** - * Create a shallow copy of given options. - * - * @param options - The supplied options to be copied - * @private - * @returns A copy of the options. - */ - private copyOptions(options?: { [key: string]: string }): { - [key: string]: string; - } { - return { ...options }; - } - /** * Lists the staking rewards for the address. * diff --git a/src/tests/external_address_test.ts b/src/tests/external_address_test.ts index f6227994..d3d37d12 100644 --- a/src/tests/external_address_test.ts +++ b/src/tests/external_address_test.ts @@ -15,8 +15,11 @@ import { import { AddressBalanceList, Balance, + FetchStakingRewards200Response, StakingContext as StakingContextModel, StakingOperation as StakingOperationModel, + StakingRewardFormat, + StakingRewardStateEnum, } from "../client"; import Decimal from "decimal.js"; import { ExternalAddress } from "../coinbase/address/external_address"; @@ -24,6 +27,7 @@ import { StakeOptionsMode } from "../coinbase/types"; import { StakingOperation } from "../coinbase/staking_operation"; import { Asset } from "../coinbase/asset"; import { randomUUID } from "crypto"; +import { StakingReward } from "../coinbase/staking_reward"; describe("ExternalAddress", () => { const newAddress = newAddressModel("", randomUUID(), Coinbase.networks.EthereumHolesky); @@ -85,6 +89,35 @@ describe("ExternalAddress", () => { }, ], }; + const startTime = "2024-05-01T00:00:00Z"; + const endTime = "2024-05-21T00:00:00Z"; + const STAKING_REWARD_RESPONSE: FetchStakingRewards200Response = { + data: [ + { + address_id: address.getId(), + date: "2024-05-01", + amount: "361", + state: StakingRewardStateEnum.Pending, + format: StakingRewardFormat.Usd, + }, + { + address_id: address.getId(), + date: "2024-05-02", + amount: "203", + state: StakingRewardStateEnum.Pending, + format: StakingRewardFormat.Usd, + }, + { + address_id: address.getId(), + date: "2024-05-03", + amount: "226", + state: StakingRewardStateEnum.Pending, + format: StakingRewardFormat.Usd, + }, + ], + has_more: false, + next_page: "", + }; beforeAll(() => { Coinbase.apiClients.stake = stakeApiMock; @@ -306,6 +339,29 @@ describe("ExternalAddress", () => { }); }); + describe(".stakingRewards", () => { + it("should return staking rewards successfully", async () => { + Coinbase.apiClients.stake!.fetchStakingRewards = mockReturnValue(STAKING_REWARD_RESPONSE); + Coinbase.apiClients.asset!.getAsset = getAssetMock(); + const response = await address.stakingRewards(Coinbase.assets.Eth, startTime, endTime); + + expect(response).toBeInstanceOf(Array); + expect(response.length).toEqual(3); + expect(Coinbase.apiClients.stake!.fetchStakingRewards).toHaveBeenCalledWith( + { + network_id: address.getNetworkId(), + asset_id: Coinbase.assets.Eth, + address_ids: [address.getId()], + start_time: startTime, + end_time: endTime, + format: StakingRewardFormat.Usd, + }, + 100, + undefined, + ); + }); + }); + describe(".listBalances", () => { beforeEach(() => { const mockBalanceResponse: AddressBalanceList = { From 9c3a290b8402c80e9a41ffd7b71e5cbacfa53e18 Mon Sep 17 00:00:00 2001 From: Marcin Lenczewski Date: Fri, 26 Jul 2024 15:24:50 -0400 Subject: [PATCH 07/22] Fixed getStatus switch statement in StakingOperation class --- src/coinbase/staking_operation.ts | 13 +++++++------ src/coinbase/types.ts | 1 + 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/coinbase/staking_operation.ts b/src/coinbase/staking_operation.ts index 00173af3..3af62dd6 100644 --- a/src/coinbase/staking_operation.ts +++ b/src/coinbase/staking_operation.ts @@ -64,22 +64,23 @@ export class StakingOperation { } /** - * Returns the Status of the StakingOperation. + * Returns the Status of the StakingOperation based on the internal + * StakingOperation model. * * @returns The Status of the StakingOperation. */ public getStatus(): StakingOperationStatus | undefined { switch (this.model.status) { - case StakingOperationStatus.INITIALIZED: + case StakingOperationStatusEnum.Initialized: return StakingOperationStatus.INITIALIZED; - case StakingOperationStatus.PENDING: + case StakingOperationStatusEnum.Pending: return StakingOperationStatus.PENDING; - case StakingOperationStatus.COMPLETE: + case StakingOperationStatusEnum.Complete: return StakingOperationStatus.COMPLETE; - case StakingOperationStatus.FAILED: + case StakingOperationStatusEnum.Failed: return StakingOperationStatus.FAILED; default: - return undefined; + return StakingOperationStatus.UNSPECIFIED; } } diff --git a/src/coinbase/types.ts b/src/coinbase/types.ts index 50169697..67d21b43 100644 --- a/src/coinbase/types.ts +++ b/src/coinbase/types.ts @@ -769,6 +769,7 @@ export enum StakingOperationStatus { PENDING = "pending", COMPLETE = "complete", FAILED = "failed", + UNSPECIFIED = "unspecified", } /** From 25bbfa2734f7df6e26433b4ba0620d89f8ccdac4 Mon Sep 17 00:00:00 2001 From: Marcin Lenczewski Date: Fri, 26 Jul 2024 16:50:06 -0400 Subject: [PATCH 08/22] Consolidated validate staking function to address parent class + added unit tests --- src/coinbase/address.ts | 81 +++++++++++++++++++++++- src/coinbase/address/external_address.ts | 79 ----------------------- src/tests/staking_operation_test.ts | 38 +++++++++++ 3 files changed, 118 insertions(+), 80 deletions(-) diff --git a/src/coinbase/address.ts b/src/coinbase/address.ts index e61f59c7..9d80019a 100644 --- a/src/coinbase/address.ts +++ b/src/coinbase/address.ts @@ -4,7 +4,7 @@ import { Asset } from "./asset"; import { Balance } from "./balance"; import { BalanceMap } from "./balance_map"; import { FaucetTransaction } from "./faucet_transaction"; -import { StakeOptionsMode } from "./types"; +import { Amount, StakeOptionsMode } from "./types"; /** * A representation of a blockchain address, which is a user-controlled account on a network. @@ -152,6 +152,85 @@ export class Address { return `Address { addressId: '${this.getId()}', networkId: '${this.getNetworkId()}' }`; } + /** + * Validate if the operation is able to stake with the supplied input. + * + * @param amount - The amount of the asset to stake. + * @param assetId - The asset to stake. + * @param mode - The staking mode. Defaults to DEFAULT. + * @param options - Additional options for the stake operation. + * @private + * @throws {Error} If the supplied input is not able to create a stake operation. + */ + protected async validateCanStake( + amount: Amount, + assetId: string, + mode: StakeOptionsMode, + options: { [key: string]: string }, + ): Promise { + const stakeableBalance = await this.stakeableBalance(assetId, mode, options); + + if (new Decimal(stakeableBalance).lessThan(amount.toString())) { + throw new Error( + `Insufficient funds ${amount} requested to stake, only ${stakeableBalance} available.`, + ); + } + } + + /** + * Validate if the operation is able to unstake with the supplied input. + * + * @param amount - The amount of the asset to unstake. + * @param assetId - The asset to unstake. + * @param mode - The staking mode. Defaults to DEFAULT. + * @param options - Additional options for the unstake operation. + * @private + * @throws {Error} If the supplied input is not able to create an unstake operation. + */ + protected async validateCanUnstake( + amount: Amount, + assetId: string, + mode: StakeOptionsMode, + options: { [key: string]: string }, + ): Promise { + const unstakeableBalance = new Decimal(await this.unstakeableBalance(assetId, mode, options)); + + if (unstakeableBalance.lessThan(amount.toString())) { + throw new Error( + `Insufficient funds ${amount} requested to unstake, only ${unstakeableBalance} available.`, + ); + } + } + + /** + * Validate if the operation is able to claim stake with the supplied input. + * + * @param amount - The amount of the asset to claim stake. + * @param assetId - The asset to claim stake. + * @param mode - The staking mode. Defaults to DEFAULT. + * @param options - Additional options for the claim stake operation. + * @private + * @throws {Error} If the supplied input is not able to create a claim stake operation. + */ + protected async validateCanClaimStake( + amount: Amount, + assetId: string, + mode: StakeOptionsMode, + options: { [key: string]: string }, + ): Promise { + if (assetId === "eth" && mode === StakeOptionsMode.NATIVE) { + throw new Error(`Claiming stake for ETH is not supported in native mode.`); + } + + const claimableBalance = new Decimal(await this.claimableBalance(assetId, mode, options)); + + if (claimableBalance.lessThan(amount.toString())) { + throw new Error( + `Insufficient funds ${amount} requested to claim stake, only ${claimableBalance} available.`, + ); + } + } + /** * Create a shallow copy of given options. * diff --git a/src/coinbase/address/external_address.ts b/src/coinbase/address/external_address.ts index 6edf95d9..23f80915 100644 --- a/src/coinbase/address/external_address.ts +++ b/src/coinbase/address/external_address.ts @@ -96,85 +96,6 @@ export class ExternalAddress extends Address { ); } - /** - * Validate if the operation is able to stake with the supplied input. - * - * @param amount - The amount of the asset to stake. - * @param assetId - The asset to stake. - * @param mode - The staking mode. Defaults to DEFAULT. - * @param options - Additional options for the stake operation. - * @private - * @throws {Error} If the supplied input is not able to create a stake operation. - */ - private async validateCanStake( - amount: Amount, - assetId: string, - mode: StakeOptionsMode, - options: { [key: string]: string }, - ): Promise { - const stakeableBalance = await this.stakeableBalance(assetId, mode, options); - - if (new Decimal(stakeableBalance).lessThan(amount.toString())) { - throw new Error( - `Insufficient funds ${amount} requested to stake, only ${stakeableBalance} available.`, - ); - } - } - - /** - * Validate if the operation is able to unstake with the supplied input. - * - * @param amount - The amount of the asset to unstake. - * @param assetId - The asset to unstake. - * @param mode - The staking mode. Defaults to DEFAULT. - * @param options - Additional options for the unstake operation. - * @private - * @throws {Error} If the supplied input is not able to create an unstake operation. - */ - private async validateCanUnstake( - amount: Amount, - assetId: string, - mode: StakeOptionsMode, - options: { [key: string]: string }, - ): Promise { - const unstakeableBalance = new Decimal(await this.unstakeableBalance(assetId, mode, options)); - - if (unstakeableBalance.lessThan(amount.toString())) { - throw new Error( - `Insufficient funds ${amount} requested to unstake, only ${unstakeableBalance} available.`, - ); - } - } - - /** - * Validate if the operation is able to claim stake with the supplied input. - * - * @param amount - The amount of the asset to claim stake. - * @param assetId - The asset to claim stake. - * @param mode - The staking mode. Defaults to DEFAULT. - * @param options - Additional options for the claim stake operation. - * @private - * @throws {Error} If the supplied input is not able to create a claim stake operation. - */ - private async validateCanClaimStake( - amount: Amount, - assetId: string, - mode: StakeOptionsMode, - options: { [key: string]: string }, - ): Promise { - if (assetId === "eth" && mode === StakeOptionsMode.NATIVE) { - throw new Error(`Claiming stake for ETH is not supported in native mode.`); - } - - const claimableBalance = new Decimal(await this.claimableBalance(assetId, mode, options)); - - if (claimableBalance.lessThan(amount.toString())) { - throw new Error( - `Insufficient funds ${amount} requested to claim stake, only ${claimableBalance} available.`, - ); - } - } - /** * Builds the staking operation based on the supplied input. * diff --git a/src/tests/staking_operation_test.ts b/src/tests/staking_operation_test.ts index 26ebfd88..8cdf61cc 100644 --- a/src/tests/staking_operation_test.ts +++ b/src/tests/staking_operation_test.ts @@ -9,6 +9,7 @@ import { import { ethers } from "ethers"; import { StakingOperationStatusEnum } from "../client"; import { Coinbase } from "../coinbase/coinbase"; +import { StakingOperationStatus } from "../coinbase/types"; describe("StakingOperation", () => { beforeAll(() => { @@ -129,4 +130,41 @@ describe("StakingOperation", () => { expect(stakingOperation.getSignedVoluntaryExitMessages().length).toBe(0); }); }); + + describe(".getStatus", () => { + it("should return initialized status", async () => { + VALID_STAKING_OPERATION_MODEL.status = StakingOperationStatusEnum.Initialized; + const op = new StakingOperation(VALID_STAKING_OPERATION_MODEL); + expect(op).toBeInstanceOf(StakingOperation); + expect(op.getStatus()).toEqual(StakingOperationStatus.INITIALIZED); + }); + + it("should return pending status", async () => { + VALID_STAKING_OPERATION_MODEL.status = StakingOperationStatusEnum.Pending; + const op = new StakingOperation(VALID_STAKING_OPERATION_MODEL); + expect(op).toBeInstanceOf(StakingOperation); + expect(op.getStatus()).toEqual(StakingOperationStatus.PENDING); + }); + + it("should return complete status", async () => { + VALID_STAKING_OPERATION_MODEL.status = StakingOperationStatusEnum.Complete; + const op = new StakingOperation(VALID_STAKING_OPERATION_MODEL); + expect(op).toBeInstanceOf(StakingOperation); + expect(op.getStatus()).toEqual(StakingOperationStatus.COMPLETE); + }); + + it("should return failed status", async () => { + VALID_STAKING_OPERATION_MODEL.status = StakingOperationStatusEnum.Failed; + const op = new StakingOperation(VALID_STAKING_OPERATION_MODEL); + expect(op).toBeInstanceOf(StakingOperation); + expect(op.getStatus()).toEqual(StakingOperationStatus.FAILED); + }); + + it("should return unspecified status", async () => { + VALID_STAKING_OPERATION_MODEL.status = StakingOperationStatusEnum.Unspecified; + const op = new StakingOperation(VALID_STAKING_OPERATION_MODEL); + expect(op).toBeInstanceOf(StakingOperation); + expect(op.getStatus()).toEqual(StakingOperationStatus.UNSPECIFIED); + }); + }); }); From 9138764ac74a1cde2c555eb0180a9cbb3e911897 Mon Sep 17 00:00:00 2001 From: Marcin Lenczewski Date: Mon, 29 Jul 2024 09:32:59 -0400 Subject: [PATCH 09/22] Refactor staking function names + add test cases --- src/coinbase/address/wallet_address.ts | 95 ++++++++++++++++++++++++-- src/coinbase/wallet.ts | 67 ++++++++++++++++-- src/tests/wallet_address_test.ts | 63 ++++++++++++----- src/tests/wallet_test.ts | 74 +++++++++++++++----- 4 files changed, 254 insertions(+), 45 deletions(-) diff --git a/src/coinbase/address/wallet_address.ts b/src/coinbase/address/wallet_address.ts index 2463fdae..a51bfa8a 100644 --- a/src/coinbase/address/wallet_address.ts +++ b/src/coinbase/address/wallet_address.ts @@ -17,7 +17,7 @@ import { StakingOperationStatus, TransactionStatus, } from "../types"; -import { delay } from "../utils"; +import { delay, formatDate, getWeekBackDate } from "../utils"; import { Wallet as WalletClass } from "../wallet"; import { StakingOperation } from "../staking_operation"; import { StakingReward } from "../staking_reward"; @@ -360,17 +360,17 @@ export class WalletAddress extends Address { } /** - * Checks if trading is possible and raises an error if not. + * Checks if amount is valid and raises an error if not. * * @param amount - The amount of the Asset to send. - * @param fromAssetId - The ID of the Asset to trade from. For Ether, eth, gwei, and wei are supported. + * @param assetId - The ID of the Asset to trade from. For Ether, eth, gwei, and wei are supported. * @throws {Error} If the private key is not loaded, or if the asset IDs are unsupported, or if there are insufficient funds. */ private async validateCanTrade(amount: Amount, fromAssetId: string) { if (!Coinbase.useServerSigner && !this.key) { throw new Error("Cannot trade from address without private key loaded"); } - const currentBalance = await this.getBalance(fromAssetId); + const currentBalance = await this.getBalance(assetId); amount = new Decimal(amount.toString()); if (currentBalance.lessThan(amount)) { throw new Error( @@ -379,6 +379,90 @@ export class WalletAddress extends Address { } } + /** + * Creates a staking operation to stake. + * + * @param amount - The amount to stake. + * @param assetId - The asset to stake. + * @param timeoutSeconds - The amount to wait for the transaction to complete when broadcasted. + * @param intervalSeconds - The amount to check each time for a successful broadcast. + * @param options - Additional options such as setting the mode for the staking action. + * @returns The staking operation after it's completed successfully. + */ + public async createStake( + amount: Amount, + assetId: string, + timeoutSeconds = 60, + intervalSeconds = 0.2, + options: CoinbaseWalletAddressStakeOptions = { mode: StakeOptionsMode.DEFAULT }, + ): Promise { + await this.validateCanStake(amount, assetId, options.mode!, options); + return this.createStakingOperation( + amount, + assetId, + "stake", + timeoutSeconds, + intervalSeconds, + options, + ); + } + + /** + * Creates a staking operation to unstake. + * + * @param amount - The amount to unstake. + * @param assetId - The asset to unstake. + * @param timeoutSeconds - The amount to wait for the transaction to complete when broadcasted. + * @param intervalSeconds - The amount to check each time for a successful broadcast. + * @param options - Additional options such as setting the mode for the staking action. + * @returns The staking operation after it's completed successfully. + */ + public async createUnstake( + amount: Amount, + assetId: string, + timeoutSeconds = 60, + intervalSeconds = 0.2, + options: CoinbaseWalletAddressStakeOptions = { mode: StakeOptionsMode.DEFAULT }, + ): Promise { + await this.validateCanUnstake(amount, assetId, options.mode!, options); + return this.createStakingOperation( + amount, + assetId, + "unstake", + timeoutSeconds, + intervalSeconds, + options, + ); + } + + /** + * Creates a staking operation to claim stake. + * + * @param amount - The amount to claim stake. + * @param assetId - The asset to claim stake. + * @param timeoutSeconds - The amount to wait for the transaction to complete when broadcasted. + * @param intervalSeconds - The amount to check each time for a successful broadcast. + * @param options - Additional options such as setting the mode for the staking action. + * @returns The staking operation after it's completed successfully. + */ + public async createClaimStake( + amount: Amount, + assetId: string, + timeoutSeconds = 60, + intervalSeconds = 0.2, + options: CoinbaseWalletAddressStakeOptions = { mode: StakeOptionsMode.DEFAULT }, + ): Promise { + await this.validateCanClaimStake(amount, assetId, options.mode!, options); + return this.createStakingOperation( + amount, + assetId, + "claim_stake", + timeoutSeconds, + intervalSeconds, + options, + ); + } + /** * Creates a staking operation to stake, signs it, and broadcasts it on the blockchain. * @@ -390,7 +474,7 @@ export class WalletAddress extends Address { * @param options - Additional options such as setting the mode for the staking action. * @returns The staking operation after it's completed fully. */ - public async createStakingOperation( + private async createStakingOperation( amount: Amount, assetId: string, action: string, @@ -398,7 +482,6 @@ export class WalletAddress extends Address { intervalSeconds = 0.2, options: CoinbaseWalletAddressStakeOptions = { mode: StakeOptionsMode.DEFAULT }, ): Promise { - await this.validateAmount(amount, assetId); let stakingOperation = await this.createStakingOperationRequest( amount, assetId, diff --git a/src/coinbase/wallet.ts b/src/coinbase/wallet.ts index d1f46c55..e24fe573 100644 --- a/src/coinbase/wallet.ts +++ b/src/coinbase/wallet.ts @@ -395,17 +395,15 @@ export class Wallet { * * @param amount - The amount for the staking operation. * @param assetId - The asset for the staking operation. - * @param action - The type of staking action to perform. * @param timeoutSeconds - The amount to wait for the transaction to complete when broadcasted. * @param intervalSeconds - The amount to check each time for a successful broadcast. * @param options - Additional options such as setting the mode for the staking action. * @throws {Error} if the default address is not found. * @returns The staking operation after it's completed fully. */ - public async createStakingOperation( + public async createStake( amount: Amount, assetId: string, - action: string, timeoutSeconds = 60, intervalSeconds = 0.2, options: CoinbaseWalletAddressStakeOptions = { mode: StakeOptionsMode.DEFAULT }, @@ -413,10 +411,69 @@ export class Wallet { if (!this.getDefaultAddress()) { throw new InternalError("Default address not found"); } - return await this.getDefaultAddress()!.createStakingOperation( + return await this.getDefaultAddress()!.createStake( + amount, + assetId, + timeoutSeconds, + intervalSeconds, + options, + ); + } + + /** + * Creates a staking operation to unstake, signs it, and broadcasts it on the blockchain. + * + * @param amount - The amount for the staking operation. + * @param assetId - The asset for the staking operation. + * @param timeoutSeconds - The amount to wait for the transaction to complete when broadcasted. + * @param intervalSeconds - The amount to check each time for a successful broadcast. + * @param options - Additional options such as setting the mode for the staking action. + * @throws {Error} if the default address is not found. + * @returns The staking operation after it's completed successfully. + */ + public async createUnstake( + amount: Amount, + assetId: string, + timeoutSeconds = 60, + intervalSeconds = 0.2, + options: CoinbaseWalletAddressStakeOptions = { mode: StakeOptionsMode.DEFAULT }, + ): Promise { + if (!this.getDefaultAddress()) { + throw new InternalError("Default address not found"); + } + return await this.getDefaultAddress()!.createUnstake( + amount, + assetId, + timeoutSeconds, + intervalSeconds, + options, + ); + } + + /** + * Creates a staking operation to claim stake, signs it, and broadcasts it on the blockchain. + * + * @param amount - The amount for the staking operation. + * @param assetId - The asset for the staking operation. + * @param timeoutSeconds - The amount to wait for the transaction to complete when broadcasted. + * @param intervalSeconds - The amount to check each time for a successful broadcast. + * @param options - Additional options such as setting the mode for the staking action. + * @throws {Error} if the default address is not found. + * @returns The staking operation after it's completed fully. + */ + public async createClaimStake( + amount: Amount, + assetId: string, + timeoutSeconds = 60, + intervalSeconds = 0.2, + options: CoinbaseWalletAddressStakeOptions = { mode: StakeOptionsMode.DEFAULT }, + ): Promise { + if (!this.getDefaultAddress()) { + throw new InternalError("Default address not found"); + } + return await this.getDefaultAddress()!.createClaimStake( amount, assetId, - action, timeoutSeconds, intervalSeconds, options, diff --git a/src/tests/wallet_address_test.ts b/src/tests/wallet_address_test.ts index d3120219..4feb21f5 100644 --- a/src/tests/wallet_address_test.ts +++ b/src/tests/wallet_address_test.ts @@ -239,17 +239,6 @@ describe("WalletAddress", () => { key = ethers.Wallet.createRandom(); const newAddress = newAddressModel("", randomUUID(), Coinbase.networks.EthereumHolesky); const walletAddress = new WalletAddress(newAddress, key as unknown as ethers.Wallet); - - const BALANCE_MODEL: BalanceModel = { - amount: "3000000000000000000", - asset: { - network_id: Coinbase.networks.EthereumHolesky, - asset_id: Coinbase.assets.Eth, - decimals: 18, - contract_address: "0xtestcontract", - }, - }; - const STAKING_OPERATION_MODEL: StakingOperationModel = { id: randomUUID(), network_id: Coinbase.networks.EthereumHolesky, @@ -344,14 +333,56 @@ describe("WalletAddress", () => { beforeEach(() => { jest.clearAllMocks(); + STAKING_OPERATION_MODEL.wallet_id = newAddress.wallet_id; + }); + + describe(".createStake", () => { + it("should create a staking operation from the address", async () => { + Coinbase.apiClients.asset!.getAsset = getAssetMock(); + Coinbase.apiClients.stake!.getStakingContext = mockReturnValue(STAKING_CONTEXT_MODEL); + Coinbase.apiClients.stake!.createStakingOperation = + mockReturnValue(STAKING_OPERATION_MODEL); + Coinbase.apiClients.stake!.broadcastStakingOperation = + mockReturnValue(STAKING_OPERATION_MODEL); + STAKING_OPERATION_MODEL.status = StakingOperationStatusEnum.Complete; + Coinbase.apiClients.stake!.getStakingOperation = mockReturnValue(STAKING_OPERATION_MODEL); + + const op = await walletAddress.createStake(0.001, Coinbase.assets.Eth); + + expect(op).toBeInstanceOf(StakingOperation); + }); + + it("should not create a staking operation from the address with zero amount", async () => { + Coinbase.apiClients.asset!.getAsset = getAssetMock(); + Coinbase.apiClients.stake!.getStakingContext = mockReturnValue(STAKING_CONTEXT_MODEL); + + await expect( + async () => await walletAddress.createStake(0.0, Coinbase.assets.Eth), + ).rejects.toThrow(Error); + }); }); - describe(".createStakingOperation", () => { + describe(".createUnstake", () => { it("should create a staking operation from the address", async () => { - STAKING_OPERATION_MODEL.wallet_id = newAddress.wallet_id; Coinbase.apiClients.asset!.getAsset = getAssetMock(); - Coinbase.apiClients.externalAddress!.getExternalAddressBalance = - mockReturnValue(BALANCE_MODEL); + Coinbase.apiClients.stake!.getStakingContext = mockReturnValue(STAKING_CONTEXT_MODEL); + Coinbase.apiClients.stake!.createStakingOperation = + mockReturnValue(STAKING_OPERATION_MODEL); + Coinbase.apiClients.stake!.broadcastStakingOperation = + mockReturnValue(STAKING_OPERATION_MODEL); + STAKING_OPERATION_MODEL.status = StakingOperationStatusEnum.Complete; + Coinbase.apiClients.stake!.getStakingOperation = mockReturnValue(STAKING_OPERATION_MODEL); + + const op = await walletAddress.createUnstake(0.001, Coinbase.assets.Eth); + + expect(op).toBeInstanceOf(StakingOperation); + }); + }); + + describe(".createClaimStake", () => { + it("should create a staking operation from the address", async () => { + Coinbase.apiClients.asset!.getAsset = getAssetMock(); + Coinbase.apiClients.stake!.getStakingContext = mockReturnValue(STAKING_CONTEXT_MODEL); Coinbase.apiClients.stake!.createStakingOperation = mockReturnValue(STAKING_OPERATION_MODEL); Coinbase.apiClients.stake!.broadcastStakingOperation = @@ -359,7 +390,7 @@ describe("WalletAddress", () => { STAKING_OPERATION_MODEL.status = StakingOperationStatusEnum.Complete; Coinbase.apiClients.stake!.getStakingOperation = mockReturnValue(STAKING_OPERATION_MODEL); - const op = await walletAddress.createStakingOperation(0.001, Coinbase.assets.Eth, "stake"); + const op = await walletAddress.createClaimStake(0.001, Coinbase.assets.Eth); expect(op).toBeInstanceOf(StakingOperation); }); diff --git a/src/tests/wallet_test.ts b/src/tests/wallet_test.ts index 72e4d42d..74a3407f 100644 --- a/src/tests/wallet_test.ts +++ b/src/tests/wallet_test.ts @@ -88,18 +88,6 @@ describe("Wallet Class", () => { describe("#stakingOperation", () => { let walletModel: WalletModel; const addressID = "0xdeadbeef"; - const address = newAddressModel(randomUUID(), addressID, Coinbase.networks.EthereumHolesky); - - const BALANCE_MODEL: BalanceModel = { - amount: "3000000000000000000", - asset: { - network_id: address.network_id, - asset_id: Coinbase.assets.Eth, - decimals: 18, - contract_address: "0xtestcontract", - }, - }; - const STAKING_OPERATION_MODEL: StakingOperationModel = { id: randomUUID(), network_id: Coinbase.networks.EthereumHolesky, @@ -187,7 +175,6 @@ describe("Wallet Class", () => { }; beforeAll(() => { - Coinbase.apiClients.externalAddress = externalAddressApiMock; Coinbase.apiClients.stake = stakeApiMock; Coinbase.apiClients.asset = assetsApiMock; }); @@ -196,13 +183,12 @@ describe("Wallet Class", () => { jest.clearAllMocks(); }); - describe(".createStakingOperation", () => { + describe(".createStake", () => { it("should create a staking operation from the default address", async () => { const wallet = await Wallet.create({ networkId: Coinbase.networks.EthereumHolesky }); STAKING_OPERATION_MODEL.wallet_id = wallet.getId(); Coinbase.apiClients.asset!.getAsset = getAssetMock(); - Coinbase.apiClients.externalAddress!.getExternalAddressBalance = - mockReturnValue(BALANCE_MODEL); + Coinbase.apiClients.stake!.getStakingContext = mockReturnValue(STAKING_CONTEXT_MODEL); Coinbase.apiClients.stake!.createStakingOperation = mockReturnValue(STAKING_OPERATION_MODEL); Coinbase.apiClients.stake!.broadcastStakingOperation = @@ -210,7 +196,7 @@ describe("Wallet Class", () => { STAKING_OPERATION_MODEL.status = StakingOperationStatusEnum.Complete; Coinbase.apiClients.stake!.getStakingOperation = mockReturnValue(STAKING_OPERATION_MODEL); - const op = await wallet.createStakingOperation(0.001, Coinbase.assets.Eth, "stake"); + const op = await wallet.createStake(0.001, Coinbase.assets.Eth); expect(op).toBeInstanceOf(StakingOperation); }); @@ -218,7 +204,7 @@ describe("Wallet Class", () => { it("should throw an error when the wallet does not have a default address", async () => { const newWallet = Wallet.init(walletModel); await expect( - async () => await newWallet.createStakingOperation(0.001, "eth", "stake"), + async () => await newWallet.createStake(0.001, Coinbase.assets.Eth), ).rejects.toThrow(InternalError); }); @@ -229,6 +215,58 @@ describe("Wallet Class", () => { }); }); + describe(".createUnstake", () => { + it("should create a staking operation from the default address", async () => { + const wallet = await Wallet.create({ networkId: Coinbase.networks.EthereumHolesky }); + STAKING_OPERATION_MODEL.wallet_id = wallet.getId(); + Coinbase.apiClients.asset!.getAsset = getAssetMock(); + Coinbase.apiClients.stake!.getStakingContext = mockReturnValue(STAKING_CONTEXT_MODEL); + Coinbase.apiClients.stake!.createStakingOperation = + mockReturnValue(STAKING_OPERATION_MODEL); + Coinbase.apiClients.stake!.broadcastStakingOperation = + mockReturnValue(STAKING_OPERATION_MODEL); + STAKING_OPERATION_MODEL.status = StakingOperationStatusEnum.Complete; + Coinbase.apiClients.stake!.getStakingOperation = mockReturnValue(STAKING_OPERATION_MODEL); + + const op = await wallet.createUnstake(0.001, Coinbase.assets.Eth); + + expect(op).toBeInstanceOf(StakingOperation); + }); + + it("should throw an error when the wallet does not have a default address", async () => { + const newWallet = Wallet.init(walletModel); + await expect( + async () => await newWallet.createUnstake(0.001, Coinbase.assets.Eth), + ).rejects.toThrow(InternalError); + }); + }); + + describe(".createClaimStake", () => { + it("should create a staking operation from the default address", async () => { + const wallet = await Wallet.create({ networkId: Coinbase.networks.EthereumHolesky }); + STAKING_OPERATION_MODEL.wallet_id = wallet.getId(); + Coinbase.apiClients.asset!.getAsset = getAssetMock(); + Coinbase.apiClients.stake!.getStakingContext = mockReturnValue(STAKING_CONTEXT_MODEL); + Coinbase.apiClients.stake!.createStakingOperation = + mockReturnValue(STAKING_OPERATION_MODEL); + Coinbase.apiClients.stake!.broadcastStakingOperation = + mockReturnValue(STAKING_OPERATION_MODEL); + STAKING_OPERATION_MODEL.status = StakingOperationStatusEnum.Complete; + Coinbase.apiClients.stake!.getStakingOperation = mockReturnValue(STAKING_OPERATION_MODEL); + + const op = await wallet.createClaimStake(0.001, Coinbase.assets.Eth); + + expect(op).toBeInstanceOf(StakingOperation); + }); + + it("should throw an error when the wallet does not have a default address", async () => { + const newWallet = Wallet.init(walletModel); + await expect( + async () => await newWallet.createClaimStake(0.001, Coinbase.assets.Eth), + ).rejects.toThrow(InternalError); + }); + }); + describe(".stakeableBalance", () => { it("should throw an error when the wallet does not have a default address", async () => { const newWallet = Wallet.init(walletModel); From 13799590037a4f23cacf8606bb2d46f4c98f5a80 Mon Sep 17 00:00:00 2001 From: Marcin Lenczewski Date: Mon, 29 Jul 2024 10:06:16 -0400 Subject: [PATCH 10/22] Removed custom staking operation status, added defaults to rewards listing on external address --- src/coinbase/address/external_address.ts | 5 ++-- src/coinbase/address/wallet_address.ts | 14 ++++++--- src/coinbase/staking_operation.ts | 21 +++---------- src/coinbase/types.ts | 24 --------------- src/tests/staking_operation_test.ts | 38 ------------------------ 5 files changed, 17 insertions(+), 85 deletions(-) diff --git a/src/coinbase/address/external_address.ts b/src/coinbase/address/external_address.ts index 23f80915..65883ddb 100644 --- a/src/coinbase/address/external_address.ts +++ b/src/coinbase/address/external_address.ts @@ -6,6 +6,7 @@ import { Asset } from "../asset"; import { StakingOperation } from "../staking_operation"; import { StakingRewardFormat } from "../../client"; import { StakingReward } from "../staking_reward"; +import { formatDate, getWeekBackDate } from "../utils"; /** * A representation of a blockchain Address, which is a user-controlled account on a Network. Addresses are used to @@ -82,8 +83,8 @@ export class ExternalAddress extends Address { */ public async stakingRewards( assetId: string, - startTime: string, - endTime: string, + startTime = getWeekBackDate(new Date()), + endTime = formatDate(new Date()), format: StakingRewardFormat = StakingRewardFormat.Usd, ): Promise { return StakingReward.list( diff --git a/src/coinbase/address/wallet_address.ts b/src/coinbase/address/wallet_address.ts index a51bfa8a..ef461a25 100644 --- a/src/coinbase/address/wallet_address.ts +++ b/src/coinbase/address/wallet_address.ts @@ -1,6 +1,10 @@ import { Decimal } from "decimal.js"; import { ethers } from "ethers"; -import { Address as AddressModel, StakingRewardFormat } from "../../client"; +import { + Address as AddressModel, + StakingOperationStatusEnum, + StakingRewardFormat, +} from "../../client"; import { Address } from "../address"; import { Asset } from "../asset"; import { Coinbase } from "../coinbase"; @@ -14,8 +18,7 @@ import { Destination, TransferStatus, StakeOptionsMode, - StakingOperationStatus, - TransactionStatus, + TransferStatus, } from "../types"; import { delay, formatDate, getWeekBackDate } from "../utils"; import { Wallet as WalletClass } from "../wallet"; @@ -507,7 +510,10 @@ export class WalletAddress extends Address { while (Date.now() - startTime < timeoutSeconds * 1000) { await stakingOperation.reload(); const status = stakingOperation.getStatus(); - if (status === StakingOperationStatus.COMPLETE || status === StakingOperationStatus.FAILED) { + if ( + status === StakingOperationStatusEnum.Complete || + status === StakingOperationStatusEnum.Failed + ) { return stakingOperation; } await delay(intervalSeconds); diff --git a/src/coinbase/staking_operation.ts b/src/coinbase/staking_operation.ts index 3af62dd6..91bde7c2 100644 --- a/src/coinbase/staking_operation.ts +++ b/src/coinbase/staking_operation.ts @@ -5,7 +5,6 @@ import { } from "../client/api"; import { Transaction } from "./transaction"; import { Coinbase } from "./coinbase"; -import { StakingOperationStatus } from "./types"; import { delay } from "./utils"; /** @@ -64,24 +63,12 @@ export class StakingOperation { } /** - * Returns the Status of the StakingOperation based on the internal - * StakingOperation model. + * Get the status of the staking operation. * - * @returns The Status of the StakingOperation. + * @returns The status of the staking operation. */ - public getStatus(): StakingOperationStatus | undefined { - switch (this.model.status) { - case StakingOperationStatusEnum.Initialized: - return StakingOperationStatus.INITIALIZED; - case StakingOperationStatusEnum.Pending: - return StakingOperationStatus.PENDING; - case StakingOperationStatusEnum.Complete: - return StakingOperationStatus.COMPLETE; - case StakingOperationStatusEnum.Failed: - return StakingOperationStatus.FAILED; - default: - return StakingOperationStatus.UNSPECIFIED; - } + public getStatus(): StakingOperationStatusEnum { + return this.model.status; } /** diff --git a/src/coinbase/types.ts b/src/coinbase/types.ts index 67d21b43..57395e7d 100644 --- a/src/coinbase/types.ts +++ b/src/coinbase/types.ts @@ -713,22 +713,6 @@ export type CoinbaseConfigureFromJsonOptions = { basePath?: string; }; -/** - * CoinbaseExternalAddressStakeOptions type definition. - */ -export type CoinbaseExternalAddressStakeOptions = { - /** - * The mode type that you're trying to stake with. - * e.g. - */ - mode?: StakeOptionsMode; - - /** - * The amount to stake, unstake, or claim_stake for in a staking operation. - */ - amount?: string; -}; - /** * CoinbaseWalletAddressStakeOptions type definition. */ @@ -764,14 +748,6 @@ export enum StakeOptionsMode { NATIVE = "native", } -export enum StakingOperationStatus { - INITIALIZED = "initialized", - PENDING = "pending", - COMPLETE = "complete", - FAILED = "failed", - UNSPECIFIED = "unspecified", -} - /** * Options for creating a Transfer. */ diff --git a/src/tests/staking_operation_test.ts b/src/tests/staking_operation_test.ts index 8cdf61cc..26ebfd88 100644 --- a/src/tests/staking_operation_test.ts +++ b/src/tests/staking_operation_test.ts @@ -9,7 +9,6 @@ import { import { ethers } from "ethers"; import { StakingOperationStatusEnum } from "../client"; import { Coinbase } from "../coinbase/coinbase"; -import { StakingOperationStatus } from "../coinbase/types"; describe("StakingOperation", () => { beforeAll(() => { @@ -130,41 +129,4 @@ describe("StakingOperation", () => { expect(stakingOperation.getSignedVoluntaryExitMessages().length).toBe(0); }); }); - - describe(".getStatus", () => { - it("should return initialized status", async () => { - VALID_STAKING_OPERATION_MODEL.status = StakingOperationStatusEnum.Initialized; - const op = new StakingOperation(VALID_STAKING_OPERATION_MODEL); - expect(op).toBeInstanceOf(StakingOperation); - expect(op.getStatus()).toEqual(StakingOperationStatus.INITIALIZED); - }); - - it("should return pending status", async () => { - VALID_STAKING_OPERATION_MODEL.status = StakingOperationStatusEnum.Pending; - const op = new StakingOperation(VALID_STAKING_OPERATION_MODEL); - expect(op).toBeInstanceOf(StakingOperation); - expect(op.getStatus()).toEqual(StakingOperationStatus.PENDING); - }); - - it("should return complete status", async () => { - VALID_STAKING_OPERATION_MODEL.status = StakingOperationStatusEnum.Complete; - const op = new StakingOperation(VALID_STAKING_OPERATION_MODEL); - expect(op).toBeInstanceOf(StakingOperation); - expect(op.getStatus()).toEqual(StakingOperationStatus.COMPLETE); - }); - - it("should return failed status", async () => { - VALID_STAKING_OPERATION_MODEL.status = StakingOperationStatusEnum.Failed; - const op = new StakingOperation(VALID_STAKING_OPERATION_MODEL); - expect(op).toBeInstanceOf(StakingOperation); - expect(op.getStatus()).toEqual(StakingOperationStatus.FAILED); - }); - - it("should return unspecified status", async () => { - VALID_STAKING_OPERATION_MODEL.status = StakingOperationStatusEnum.Unspecified; - const op = new StakingOperation(VALID_STAKING_OPERATION_MODEL); - expect(op).toBeInstanceOf(StakingOperation); - expect(op.getStatus()).toEqual(StakingOperationStatus.UNSPECIFIED); - }); - }); }); From 042e159d3d0ddaa4ae384ea985a60b7ff1241f64 Mon Sep 17 00:00:00 2001 From: Marcin Lenczewski Date: Mon, 29 Jul 2024 12:12:37 -0400 Subject: [PATCH 11/22] Added mode parameter to staking functions --- src/coinbase/address/wallet_address.ts | 49 +++++++++++++++++--------- src/coinbase/types.ts | 16 --------- src/coinbase/wallet.ts | 27 +++++++++----- src/tests/wallet_address_test.ts | 34 +++++++++--------- 4 files changed, 66 insertions(+), 60 deletions(-) diff --git a/src/coinbase/address/wallet_address.ts b/src/coinbase/address/wallet_address.ts index ef461a25..3baa7fcb 100644 --- a/src/coinbase/address/wallet_address.ts +++ b/src/coinbase/address/wallet_address.ts @@ -387,26 +387,29 @@ export class WalletAddress extends Address { * * @param amount - The amount to stake. * @param assetId - The asset to stake. + * @param mode - The staking mode. Defaults to DEFAULT. + * @param options - Additional options such as setting the mode for the staking action. * @param timeoutSeconds - The amount to wait for the transaction to complete when broadcasted. * @param intervalSeconds - The amount to check each time for a successful broadcast. - * @param options - Additional options such as setting the mode for the staking action. * @returns The staking operation after it's completed successfully. */ public async createStake( amount: Amount, assetId: string, + mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, + options: { [key: string]: string } = {}, timeoutSeconds = 60, intervalSeconds = 0.2, - options: CoinbaseWalletAddressStakeOptions = { mode: StakeOptionsMode.DEFAULT }, ): Promise { - await this.validateCanStake(amount, assetId, options.mode!, options); + await this.validateCanStake(amount, assetId, mode, options); return this.createStakingOperation( amount, assetId, "stake", + mode, + options, timeoutSeconds, intervalSeconds, - options, ); } @@ -415,26 +418,29 @@ export class WalletAddress extends Address { * * @param amount - The amount to unstake. * @param assetId - The asset to unstake. + * @param mode - The staking mode. Defaults to DEFAULT. + * @param options - Additional options such as setting the mode for the staking action. * @param timeoutSeconds - The amount to wait for the transaction to complete when broadcasted. * @param intervalSeconds - The amount to check each time for a successful broadcast. - * @param options - Additional options such as setting the mode for the staking action. * @returns The staking operation after it's completed successfully. */ public async createUnstake( amount: Amount, assetId: string, + mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, + options: { [key: string]: string } = {}, timeoutSeconds = 60, intervalSeconds = 0.2, - options: CoinbaseWalletAddressStakeOptions = { mode: StakeOptionsMode.DEFAULT }, ): Promise { - await this.validateCanUnstake(amount, assetId, options.mode!, options); + await this.validateCanUnstake(amount, assetId, mode, options); return this.createStakingOperation( amount, assetId, "unstake", + mode, + options, timeoutSeconds, intervalSeconds, - options, ); } @@ -443,26 +449,29 @@ export class WalletAddress extends Address { * * @param amount - The amount to claim stake. * @param assetId - The asset to claim stake. + * @param mode - The staking mode. Defaults to DEFAULT. + * @param options - Additional options such as setting the mode for the staking action. * @param timeoutSeconds - The amount to wait for the transaction to complete when broadcasted. * @param intervalSeconds - The amount to check each time for a successful broadcast. - * @param options - Additional options such as setting the mode for the staking action. * @returns The staking operation after it's completed successfully. */ public async createClaimStake( amount: Amount, assetId: string, + mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, + options: { [key: string]: string } = {}, timeoutSeconds = 60, intervalSeconds = 0.2, - options: CoinbaseWalletAddressStakeOptions = { mode: StakeOptionsMode.DEFAULT }, ): Promise { - await this.validateCanClaimStake(amount, assetId, options.mode!, options); + await this.validateCanClaimStake(amount, assetId, mode, options); return this.createStakingOperation( amount, assetId, "claim_stake", + mode, + options, timeoutSeconds, intervalSeconds, - options, ); } @@ -472,23 +481,26 @@ export class WalletAddress extends Address { * @param amount - The amount for the staking operation. * @param assetId - The asset to the staking operation. * @param action - The type of staking action to perform. + * @param mode - The staking mode. Defaults to DEFAULT. + * @param options - Additional options such as setting the mode for the staking action. * @param timeoutSeconds - The amount to wait for the transaction to complete when broadcasted. * @param intervalSeconds - The amount to check each time for a successful broadcast. - * @param options - Additional options such as setting the mode for the staking action. * @returns The staking operation after it's completed fully. */ private async createStakingOperation( amount: Amount, assetId: string, action: string, - timeoutSeconds = 60, - intervalSeconds = 0.2, - options: CoinbaseWalletAddressStakeOptions = { mode: StakeOptionsMode.DEFAULT }, + mode: StakeOptionsMode, + options: { [key: string]: string }, + timeoutSeconds: number, + intervalSeconds: number, ): Promise { let stakingOperation = await this.createStakingOperationRequest( amount, assetId, action, + mode, options, ); @@ -552,6 +564,7 @@ export class WalletAddress extends Address { * @param amount - The amount for the staking operation. * @param assetId - The asset for the staking operation. * @param action - The type of staking action to perform. + * @param mode - The staking mode. Defaults to DEFAULT. * @param options - Additional options such as setting the mode for the staking action. * @private * @throws {Error} if the amount is less than zero. @@ -561,7 +574,8 @@ export class WalletAddress extends Address { amount: Amount, assetId: string, action: string, - options: CoinbaseWalletAddressStakeOptions, + mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, + options: { [key: string]: string } = {}, ): Promise { if (new Decimal(amount.toString()).lessThanOrEqualTo(0)) { throw new Error("Amount required greater than zero."); @@ -569,6 +583,7 @@ export class WalletAddress extends Address { const asset = await Asset.fetch(this.getNetworkId(), assetId); options.amount = asset.toAtomicAmount(new Decimal(amount.toString())).toString(); + options.mode = mode ? mode : StakeOptionsMode.DEFAULT; const stakingOperationRequest = { network_id: this.getNetworkId(), diff --git a/src/coinbase/types.ts b/src/coinbase/types.ts index 57395e7d..c969ee64 100644 --- a/src/coinbase/types.ts +++ b/src/coinbase/types.ts @@ -713,22 +713,6 @@ export type CoinbaseConfigureFromJsonOptions = { basePath?: string; }; -/** - * CoinbaseWalletAddressStakeOptions type definition. - */ -export type CoinbaseWalletAddressStakeOptions = { - /** - * The mode type that you're trying to stake with. - * e.g. - */ - mode?: StakeOptionsMode; - - /** - * The amount to stake, unstake, or claim_stake for in a staking operation. - */ - amount?: string; -}; - /** * StakeOptionsMode type definition. */ diff --git a/src/coinbase/wallet.ts b/src/coinbase/wallet.ts index e24fe573..a653a48d 100644 --- a/src/coinbase/wallet.ts +++ b/src/coinbase/wallet.ts @@ -395,18 +395,20 @@ export class Wallet { * * @param amount - The amount for the staking operation. * @param assetId - The asset for the staking operation. + * @param mode - The staking mode. Defaults to DEFAULT. + * @param options - Additional options such as setting the mode for the staking action. * @param timeoutSeconds - The amount to wait for the transaction to complete when broadcasted. * @param intervalSeconds - The amount to check each time for a successful broadcast. - * @param options - Additional options such as setting the mode for the staking action. * @throws {Error} if the default address is not found. * @returns The staking operation after it's completed fully. */ public async createStake( amount: Amount, assetId: string, + mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, + options: { [key: string]: string } = {}, timeoutSeconds = 60, intervalSeconds = 0.2, - options: CoinbaseWalletAddressStakeOptions = { mode: StakeOptionsMode.DEFAULT }, ): Promise { if (!this.getDefaultAddress()) { throw new InternalError("Default address not found"); @@ -414,9 +416,10 @@ export class Wallet { return await this.getDefaultAddress()!.createStake( amount, assetId, + mode, + options, timeoutSeconds, intervalSeconds, - options, ); } @@ -425,18 +428,20 @@ export class Wallet { * * @param amount - The amount for the staking operation. * @param assetId - The asset for the staking operation. + * @param mode - The staking mode. Defaults to DEFAULT. + * @param options - Additional options such as setting the mode for the staking action. * @param timeoutSeconds - The amount to wait for the transaction to complete when broadcasted. * @param intervalSeconds - The amount to check each time for a successful broadcast. - * @param options - Additional options such as setting the mode for the staking action. * @throws {Error} if the default address is not found. * @returns The staking operation after it's completed successfully. */ public async createUnstake( amount: Amount, assetId: string, + mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, + options: { [key: string]: string } = {}, timeoutSeconds = 60, intervalSeconds = 0.2, - options: CoinbaseWalletAddressStakeOptions = { mode: StakeOptionsMode.DEFAULT }, ): Promise { if (!this.getDefaultAddress()) { throw new InternalError("Default address not found"); @@ -444,9 +449,10 @@ export class Wallet { return await this.getDefaultAddress()!.createUnstake( amount, assetId, + mode, + options, timeoutSeconds, intervalSeconds, - options, ); } @@ -455,18 +461,20 @@ export class Wallet { * * @param amount - The amount for the staking operation. * @param assetId - The asset for the staking operation. + * @param mode - The staking mode. Defaults to DEFAULT. + * @param options - Additional options such as setting the mode for the staking action. * @param timeoutSeconds - The amount to wait for the transaction to complete when broadcasted. * @param intervalSeconds - The amount to check each time for a successful broadcast. - * @param options - Additional options such as setting the mode for the staking action. * @throws {Error} if the default address is not found. * @returns The staking operation after it's completed fully. */ public async createClaimStake( amount: Amount, assetId: string, + mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, + options: { [key: string]: string } = {}, timeoutSeconds = 60, intervalSeconds = 0.2, - options: CoinbaseWalletAddressStakeOptions = { mode: StakeOptionsMode.DEFAULT }, ): Promise { if (!this.getDefaultAddress()) { throw new InternalError("Default address not found"); @@ -474,9 +482,10 @@ export class Wallet { return await this.getDefaultAddress()!.createClaimStake( amount, assetId, + mode, + options, timeoutSeconds, intervalSeconds, - options, ); } diff --git a/src/tests/wallet_address_test.ts b/src/tests/wallet_address_test.ts index 4feb21f5..d50bdad1 100644 --- a/src/tests/wallet_address_test.ts +++ b/src/tests/wallet_address_test.ts @@ -1,50 +1,48 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import * as crypto from "crypto"; +import { randomUUID } from "crypto"; import { ethers } from "ethers"; import { FaucetTransaction } from "../coinbase/faucet_transaction"; import { Balance as BalanceModel, - TransferList, - Trade as TradeModel, + FetchStakingRewards200Response, + StakingContext as StakingContextModel, StakingOperation as StakingOperationModel, StakingOperationStatusEnum, - StakingContext as StakingContextModel, - FetchStakingRewards200Response, - StakingRewardStateEnum, StakingRewardFormat, + StakingRewardStateEnum, + Trade as TradeModel, + TransferList, } from "../client"; import Decimal from "decimal.js"; import { APIError, FaucetLimitReachedError } from "../coinbase/api_error"; import { Coinbase } from "../coinbase/coinbase"; -import { InternalError } from "../coinbase/errors"; +import { ArgumentError, InternalError } from "../coinbase/errors"; import { - VALID_ADDRESS_BALANCE_LIST, - VALID_ADDRESS_MODEL, - VALID_TRANSFER_MODEL, - VALID_WALLET_MODEL, - generateRandomHash, - getAssetMock, addressesApiMock, assetsApiMock, + externalAddressApiMock, + generateRandomHash, + getAssetMock, mockFn, mockReturnRejectedValue, mockReturnValue, newAddressModel, + stakeApiMock, tradeApiMock, transfersApiMock, + VALID_ADDRESS_BALANCE_LIST, + VALID_ADDRESS_MODEL, + VALID_TRANSFER_MODEL, + VALID_WALLET_MODEL, walletsApiMock, - externalAddressApiMock, - stakeApiMock, } from "./utils"; -import { ArgumentError } from "../coinbase/errors"; import { Transfer } from "../coinbase/transfer"; -import { TransactionStatus, TransferStatus } from "../coinbase/types"; +import { StakeOptionsMode, TransactionStatus, TransferStatus } from "../coinbase/types"; import { Trade } from "../coinbase/trade"; import { Transaction } from "../coinbase/transaction"; import { WalletAddress } from "../coinbase/address/wallet_address"; import { Wallet } from "../coinbase/wallet"; -import { randomUUID } from "crypto"; -import { ExternalAddress } from "../coinbase/address/external_address"; import { StakingOperation } from "../coinbase/staking_operation"; import { StakingReward } from "../coinbase/staking_reward"; From 626dcae6f672839ff25a42602d3ca0ba9a22b01a Mon Sep 17 00:00:00 2001 From: Marcin Lenczewski Date: Mon, 29 Jul 2024 14:28:16 -0400 Subject: [PATCH 12/22] Checking transaction for empty, consolidate rewards function to Address parent class --- src/coinbase/address.ts | 28 ++++++++++++++++++++++ src/coinbase/address/wallet_address.ts | 32 ++++---------------------- src/coinbase/staking_operation.ts | 12 ++++++---- src/tests/wallet_address_test.ts | 16 +++++++++++++ 4 files changed, 56 insertions(+), 32 deletions(-) diff --git a/src/coinbase/address.ts b/src/coinbase/address.ts index 9d80019a..e28a4804 100644 --- a/src/coinbase/address.ts +++ b/src/coinbase/address.ts @@ -5,6 +5,9 @@ import { Balance } from "./balance"; import { BalanceMap } from "./balance_map"; import { FaucetTransaction } from "./faucet_transaction"; import { Amount, StakeOptionsMode } from "./types"; +import { formatDate, getWeekBackDate } from "./utils"; +import { StakingRewardFormat } from "../client"; +import { StakingReward } from "./staking_reward"; /** * A representation of a blockchain address, which is a user-controlled account on a network. @@ -76,6 +79,31 @@ export class Address { return Balance.fromModelAndAssetId(response.data, assetId).amount; } + /** + * Lists the staking rewards for the address. + * + * @param assetId - The asset ID. + * @param startTime - The start time. + * @param endTime - The end time. + * @param format - The format to return the rewards in. (usd, native). Defaults to usd. + * @returns The staking rewards. + */ + public async stakingRewards( + assetId: string, + startTime = getWeekBackDate(new Date()), + endTime = formatDate(new Date()), + format: StakingRewardFormat = StakingRewardFormat.Usd, + ): Promise { + return StakingReward.list( + Coinbase.normalizeNetwork(this.getNetworkId()), + assetId, + [this.getId()], + startTime, + endTime, + format, + ); + } + /** * Get the stakeable balance for the supplied asset. * diff --git a/src/coinbase/address/wallet_address.ts b/src/coinbase/address/wallet_address.ts index 3baa7fcb..af2220fc 100644 --- a/src/coinbase/address/wallet_address.ts +++ b/src/coinbase/address/wallet_address.ts @@ -496,6 +496,10 @@ export class WalletAddress extends Address { timeoutSeconds: number, intervalSeconds: number, ): Promise { + if (new Decimal(amount.toString()).lessThanOrEqualTo(0)) { + throw new Error("Amount required greater than zero."); + } + let stakingOperation = await this.createStakingOperationRequest( amount, assetId, @@ -533,31 +537,6 @@ export class WalletAddress extends Address { throw new Error("Staking Operation timed out"); } - /** - * Lists the staking rewards for the address. - * - * @param assetId - The asset ID. - * @param startTime - The start time. - * @param endTime - The end time. - * @param format - The format to return the rewards in. (usd, native). Defaults to usd. - * @returns The staking rewards. - */ - public async stakingRewards( - assetId: string, - startTime = getWeekBackDate(new Date()), - endTime = formatDate(new Date()), - format: StakingRewardFormat = StakingRewardFormat.Usd, - ): Promise { - return StakingReward.list( - Coinbase.normalizeNetwork(this.getNetworkId()), - assetId, - [this.getId()], - startTime, - endTime, - format, - ); - } - /** * A helper function that creates the staking operation. * @@ -577,9 +556,6 @@ export class WalletAddress extends Address { mode: StakeOptionsMode = StakeOptionsMode.DEFAULT, options: { [key: string]: string } = {}, ): Promise { - if (new Decimal(amount.toString()).lessThanOrEqualTo(0)) { - throw new Error("Amount required greater than zero."); - } const asset = await Asset.fetch(this.getNetworkId(), assetId); options.amount = asset.toAtomicAmount(new Decimal(amount.toString())).toString(); diff --git a/src/coinbase/staking_operation.ts b/src/coinbase/staking_operation.ts index 91bde7c2..c892000b 100644 --- a/src/coinbase/staking_operation.ts +++ b/src/coinbase/staking_operation.ts @@ -88,11 +88,15 @@ export class StakingOperation { this.getAddressID(), this.getID(), ); + this.model = result?.data; - this.transactions = []; - result?.data.transactions.forEach(transaction => { - this.transactions.push(new Transaction(transaction)); - }); + // only overwrite the transactions if the response is populated. + if (result?.data.transactions.length != 0) { + this.transactions = []; + result?.data.transactions.forEach(transaction => { + this.transactions.push(new Transaction(transaction)); + }); + } } /** diff --git a/src/tests/wallet_address_test.ts b/src/tests/wallet_address_test.ts index d50bdad1..8b006e0a 100644 --- a/src/tests/wallet_address_test.ts +++ b/src/tests/wallet_address_test.ts @@ -358,6 +358,22 @@ describe("WalletAddress", () => { async () => await walletAddress.createStake(0.0, Coinbase.assets.Eth), ).rejects.toThrow(Error); }); + + it("should create a staking operation from the address when broadcast returns empty transactions", async () => { + Coinbase.apiClients.asset!.getAsset = getAssetMock(); + Coinbase.apiClients.stake!.getStakingContext = mockReturnValue(STAKING_CONTEXT_MODEL); + Coinbase.apiClients.stake!.createStakingOperation = + mockReturnValue(STAKING_OPERATION_MODEL); + Coinbase.apiClients.stake!.broadcastStakingOperation = + mockReturnValue(STAKING_OPERATION_MODEL); + STAKING_OPERATION_MODEL.status = StakingOperationStatusEnum.Complete; + STAKING_OPERATION_MODEL.transactions = []; + Coinbase.apiClients.stake!.getStakingOperation = mockReturnValue(STAKING_OPERATION_MODEL); + + const op = await walletAddress.createStake(0.001, Coinbase.assets.Eth); + + expect(op).toBeInstanceOf(StakingOperation); + }); }); describe(".createUnstake", () => { From 02e995fda228789442c2c47e6069e85e3b239c56 Mon Sep 17 00:00:00 2001 From: Marcin Lenczewski Date: Mon, 29 Jul 2024 14:35:39 -0400 Subject: [PATCH 13/22] Remove duplicate staking rewards function --- src/coinbase/address/external_address.ts | 25 ------------------------ 1 file changed, 25 deletions(-) diff --git a/src/coinbase/address/external_address.ts b/src/coinbase/address/external_address.ts index 65883ddb..9abb52ca 100644 --- a/src/coinbase/address/external_address.ts +++ b/src/coinbase/address/external_address.ts @@ -72,31 +72,6 @@ export class ExternalAddress extends Address { return this.buildStakingOperation(amount, assetId, "claim_stake", mode, options); } - /** - * Lists the staking rewards for the address. - * - * @param assetId - The asset ID. - * @param startTime - The start time. - * @param endTime - The end time. - * @param format - The format to return the rewards in. (usd, native). Defaults to usd. - * @returns The staking rewards. - */ - public async stakingRewards( - assetId: string, - startTime = getWeekBackDate(new Date()), - endTime = formatDate(new Date()), - format: StakingRewardFormat = StakingRewardFormat.Usd, - ): Promise { - return StakingReward.list( - Coinbase.normalizeNetwork(this.getNetworkId()), - assetId, - [this.getId()], - startTime, - endTime, - format, - ); - } - /** * Builds the staking operation based on the supplied input. * From 886c8ff30c9ec64ed8b05db3963df0416e2f8046 Mon Sep 17 00:00:00 2001 From: Marcin Lenczewski Date: Mon, 29 Jul 2024 14:40:26 -0400 Subject: [PATCH 14/22] Remove unused imports --- src/coinbase/address/external_address.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/coinbase/address/external_address.ts b/src/coinbase/address/external_address.ts index 9abb52ca..48b2a332 100644 --- a/src/coinbase/address/external_address.ts +++ b/src/coinbase/address/external_address.ts @@ -4,9 +4,6 @@ import { Coinbase } from "../coinbase"; import Decimal from "decimal.js"; import { Asset } from "../asset"; import { StakingOperation } from "../staking_operation"; -import { StakingRewardFormat } from "../../client"; -import { StakingReward } from "../staking_reward"; -import { formatDate, getWeekBackDate } from "../utils"; /** * A representation of a blockchain Address, which is a user-controlled account on a Network. Addresses are used to From e40237144507247c82055e268f97e2b0b7cf97c0 Mon Sep 17 00:00:00 2001 From: Marcin Lenczewski Date: Tue, 30 Jul 2024 17:04:38 -0400 Subject: [PATCH 15/22] Rebasing changes --- src/coinbase/address/wallet_address.ts | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/coinbase/address/wallet_address.ts b/src/coinbase/address/wallet_address.ts index af2220fc..ac3ee4f4 100644 --- a/src/coinbase/address/wallet_address.ts +++ b/src/coinbase/address/wallet_address.ts @@ -1,10 +1,6 @@ import { Decimal } from "decimal.js"; import { ethers } from "ethers"; -import { - Address as AddressModel, - StakingOperationStatusEnum, - StakingRewardFormat, -} from "../../client"; +import { Address as AddressModel, StakingOperationStatusEnum } from "../../client"; import { Address } from "../address"; import { Asset } from "../asset"; import { Coinbase } from "../coinbase"; @@ -17,13 +13,12 @@ import { CreateTradeOptions, Destination, TransferStatus, + TransactionStatus, StakeOptionsMode, - TransferStatus, } from "../types"; -import { delay, formatDate, getWeekBackDate } from "../utils"; +import { delay } from "../utils"; import { Wallet as WalletClass } from "../wallet"; import { StakingOperation } from "../staking_operation"; -import { StakingReward } from "../staking_reward"; /** * A representation of a blockchain address, which is a wallet-controlled account on a network. @@ -363,17 +358,17 @@ export class WalletAddress extends Address { } /** - * Checks if amount is valid and raises an error if not. + * Checks if trading is possible and raises an error if not. * * @param amount - The amount of the Asset to send. - * @param assetId - The ID of the Asset to trade from. For Ether, eth, gwei, and wei are supported. + * @param fromAssetId - The ID of the Asset to trade from. For Ether, eth, gwei, and wei are supported. * @throws {Error} If the private key is not loaded, or if the asset IDs are unsupported, or if there are insufficient funds. */ private async validateCanTrade(amount: Amount, fromAssetId: string) { if (!Coinbase.useServerSigner && !this.key) { throw new Error("Cannot trade from address without private key loaded"); } - const currentBalance = await this.getBalance(assetId); + const currentBalance = await this.getBalance(fromAssetId); amount = new Decimal(amount.toString()); if (currentBalance.lessThan(amount)) { throw new Error( From 5b996e0ef77604a06c5d164785a9b647aaf98c5d Mon Sep 17 00:00:00 2001 From: Marcin Lenczewski Date: Tue, 30 Jul 2024 18:14:46 -0400 Subject: [PATCH 16/22] Adding test case to pass github action --- src/tests/wallet_address_test.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/tests/wallet_address_test.ts b/src/tests/wallet_address_test.ts index 8b006e0a..0208a35f 100644 --- a/src/tests/wallet_address_test.ts +++ b/src/tests/wallet_address_test.ts @@ -90,6 +90,11 @@ describe("WalletAddress", () => { expect(address).toBeInstanceOf(WalletAddress); }); + it("should initialize a new WalletAddress that can sign", () => { + expect(address).toBeInstanceOf(WalletAddress); + expect(address.canSign()).toEqual(true); + }); + it("should return the address ID", () => { expect(address.getId()).toBe(VALID_ADDRESS_MODEL.address_id); }); @@ -350,6 +355,22 @@ describe("WalletAddress", () => { expect(op).toBeInstanceOf(StakingOperation); }); + it("should create a staking operation from the address but in failed status", async () => { + Coinbase.apiClients.asset!.getAsset = getAssetMock(); + Coinbase.apiClients.stake!.getStakingContext = mockReturnValue(STAKING_CONTEXT_MODEL); + Coinbase.apiClients.stake!.createStakingOperation = + mockReturnValue(STAKING_OPERATION_MODEL); + Coinbase.apiClients.stake!.broadcastStakingOperation = + mockReturnValue(STAKING_OPERATION_MODEL); + STAKING_OPERATION_MODEL.status = StakingOperationStatusEnum.Failed; + Coinbase.apiClients.stake!.getStakingOperation = mockReturnValue(STAKING_OPERATION_MODEL); + + const op = await walletAddress.createStake(0.001, Coinbase.assets.Eth); + + expect(op).toBeInstanceOf(StakingOperation); + expect(op.getStatus()).toEqual(StakingOperationStatusEnum.Failed); + }); + it("should not create a staking operation from the address with zero amount", async () => { Coinbase.apiClients.asset!.getAsset = getAssetMock(); Coinbase.apiClients.stake!.getStakingContext = mockReturnValue(STAKING_CONTEXT_MODEL); From fe0392f0c509b9e6ca05fad2707e163388efeafb Mon Sep 17 00:00:00 2001 From: "yuga.eth (Coinbase)" <82042350+yuga-cb@users.noreply.github.com> Date: Wed, 31 Jul 2024 15:58:25 -0400 Subject: [PATCH 17/22] Add capabilities file (#123) * Add capabilities file * Fix row * Fix first row. --- CAPABILITIES.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 CAPABILITIES.md diff --git a/CAPABILITIES.md b/CAPABILITIES.md new file mode 100644 index 00000000..3e4be9da --- /dev/null +++ b/CAPABILITIES.md @@ -0,0 +1,32 @@ +# Capabilities + +The Coinbase SDK has different capabilities for different wallet types and networks. This page summarizes +those capabilities for the Ruby SDK: + +## Developer Wallets + +| Concept | Base-Sepolia | Base-Mainnet | Ethereum-Holesky | Ethereum-Mainnet | +| ------------- | :----------: | :----------: | :--------------: | :--------------: | +| Addresses | ✅ | ✅ | ❌ | ❌ | +| Send | ✅ | ✅ | ❌ | ❌ | +| Trade | ❌ | ✅ | ❌ | ❌ | +| Faucet | ✅ | ❌ | ✅ | ❌ | +| Server-Signer | ✅ | ✅ | ❌ | ❌ | + +## End-User Wallets + +| Concept | Base-Sepolia | Base-Mainnet | Ethereum-Holesky | Ethereum-Mainnet | +| ------------------ | :----------: | :----------: | :--------------: | :--------------: | +| External Addresses | ✅ | ✅ | ✅ | ✅ | +| Stake [^1] | ❌ | ❌ | ✅ | ✅ | + +[^1]: Dedicated ETH Staking is currently only available on Testnet (Ethereum-Holesky). + +## Testnet vs. Mainnet + +The Coinbase SDK supports both testnets and mainnets. + +- Testnets are for building and testing applications. Funds are not real, and you can get test currencies from a faucet. +- Mainnet is where the funds, contracts and applications are real. + +Wallets, assets, etc, cannot be moved from testnet to mainnet (or vice versa). From 1b584c76d63dd005b7dba61f0e344113027d0b29 Mon Sep 17 00:00:00 2001 From: Erdi Maden Date: Mon, 5 Aug 2024 10:50:57 -0500 Subject: [PATCH 18/22] Updating yarn install command --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0aef3e01..e76c88f5 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ npm install @coinbase/coinbase-sdk or ```bash -yarn install @coinbase/coinbase-sdk +yarn add @coinbase/coinbase-sdk ``` ## Usage From e96aeb7d3869ca58075b4baf3e9c82578d853e9b Mon Sep 17 00:00:00 2001 From: John Peterson <98187317+John-peterson-coinbase@users.noreply.github.com> Date: Mon, 5 Aug 2024 12:01:48 -0400 Subject: [PATCH 19/22] [PSDK-359] Deprecate Unused Transfer Fields (#126) --- CHANGELOG.md | 4 + src/client/api.ts | 917 +++++++++++++++++++++++++++++-- src/client/common.ts | 42 +- src/coinbase/transfer.ts | 8 +- src/tests/transfer_test.ts | 42 +- src/tests/utils.ts | 13 - src/tests/wallet_address_test.ts | 11 +- src/tests/wallet_test.ts | 10 +- 8 files changed, 929 insertions(+), 118 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 36a07ee9..58b05a2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +## Changed + +- `unsigned_payload`, `signed_payload`, `status`, and `transaction_hash` in-line fields on `Transfer` are deprecated in favor of those on `Transaction` + ## [0.0.13] - 2024-07-30 ### Added diff --git a/src/client/api.ts b/src/client/api.ts index b2db5b7c..2bfdc0ff 100644 --- a/src/client/api.ts +++ b/src/client/api.ts @@ -254,6 +254,116 @@ export interface BuildStakingOperationRequest { */ 'options': { [key: string]: string; }; } +/** + * Represents a single decoded event emitted by a smart contract + * @export + * @interface ContractEvent + */ +export interface ContractEvent { + /** + * The name of the blockchain network + * @type {string} + * @memberof ContractEvent + */ + 'network_name'?: string; + /** + * The name of the blockchain project or protocol + * @type {string} + * @memberof ContractEvent + */ + 'protocol_name'?: string; + /** + * The name of the specific contract within the project + * @type {string} + * @memberof ContractEvent + */ + 'contract_name'?: string; + /** + * The name of the event emitted by the contract + * @type {string} + * @memberof ContractEvent + */ + 'event_name'?: string; + /** + * The signature of the event, including parameter types + * @type {string} + * @memberof ContractEvent + */ + 'sig'?: string; + /** + * The first four bytes of the Keccak hash of the event signature + * @type {string} + * @memberof ContractEvent + */ + 'fourBytes'?: string; + /** + * The EVM address of the smart contract + * @type {string} + * @memberof ContractEvent + */ + 'contract_address'?: string; + /** + * The timestamp of the block in which the event was emitted + * @type {string} + * @memberof ContractEvent + */ + 'block_time'?: string; + /** + * The block number in which the event was emitted + * @type {number} + * @memberof ContractEvent + */ + 'block_height'?: number; + /** + * The transaction hash in which the event was emitted + * @type {string} + * @memberof ContractEvent + */ + 'tx_hash'?: string; + /** + * The index of the transaction within the block + * @type {number} + * @memberof ContractEvent + */ + 'tx_index'?: number; + /** + * The index of the event within the transaction + * @type {number} + * @memberof ContractEvent + */ + 'event_index'?: number; + /** + * The event data in a stringified format + * @type {string} + * @memberof ContractEvent + */ + 'data'?: string; +} +/** + * A list of contract events with pagination information + * @export + * @interface ContractEventList + */ +export interface ContractEventList { + /** + * An array of ContractEvent objects + * @type {Array} + * @memberof ContractEventList + */ + 'data': Array; + /** + * The page token to be used to fetch the next page + * @type {string} + * @memberof ContractEventList + */ + 'next_page': string; + /** + * True if this list has another page of items after this one that can be fetched + * @type {boolean} + * @memberof ContractEventList + */ + 'has_more': boolean; +} /** * * @export @@ -417,6 +527,39 @@ export interface CreateWalletRequestWallet { */ 'use_server_signer'?: boolean; } +/** + * + * @export + * @interface CreateWebhookRequest + */ +export interface CreateWebhookRequest { + /** + * The ID of the blockchain network + * @type {string} + * @memberof CreateWebhookRequest + */ + 'network_id': string; + /** + * + * @type {WebhookEventType} + * @memberof CreateWebhookRequest + */ + 'event_type'?: WebhookEventType; + /** + * Webhook will monitor all events that matches any one of the event filters. + * @type {Array} + * @memberof CreateWebhookRequest + */ + 'event_filters'?: Array; + /** + * The URL to which the notifications will be sent + * @type {string} + * @memberof CreateWebhookRequest + */ + 'notification_uri': string; +} + + /** * An Ethereum validator. * @export @@ -1347,41 +1490,7 @@ export interface Transfer { * @memberof Transfer */ 'transaction': Transaction; - /** - * The unsigned payload of the transfer. This is the payload that needs to be signed by the sender. - * @type {string} - * @memberof Transfer - */ - 'unsigned_payload': string; - /** - * The signed payload of the transfer. This is the payload that has been signed by the sender. - * @type {string} - * @memberof Transfer - */ - 'signed_payload'?: string; - /** - * The hash of the transfer transaction - * @type {string} - * @memberof Transfer - */ - 'transaction_hash'?: string; - /** - * The status of the transfer - * @type {string} - * @memberof Transfer - */ - 'status': TransferStatusEnum; } - -export const TransferStatusEnum = { - Pending: 'pending', - Broadcast: 'broadcast', - Complete: 'complete', - Failed: 'failed' -} as const; - -export type TransferStatusEnum = typeof TransferStatusEnum[keyof typeof TransferStatusEnum]; - /** * * @export @@ -1413,6 +1522,39 @@ export interface TransferList { */ 'total_count': number; } +/** + * + * @export + * @interface UpdateWebhookRequest + */ +export interface UpdateWebhookRequest { + /** + * The ID of the blockchain network + * @type {string} + * @memberof UpdateWebhookRequest + */ + 'network_id'?: string; + /** + * + * @type {WebhookEventType} + * @memberof UpdateWebhookRequest + */ + 'event_type': WebhookEventType; + /** + * Webhook will monitor all events that matches any one of the event filters. + * @type {Array} + * @memberof UpdateWebhookRequest + */ + 'event_filters': Array; + /** + * The Webhook uri that updates to + * @type {string} + * @memberof UpdateWebhookRequest + */ + 'notification_uri': string; +} + + /** * * @export @@ -1576,6 +1718,122 @@ export interface WalletList { */ 'total_count': number; } +/** + * Webhook that is used for getting notifications when monitored events occur. + * @export + * @interface Webhook + */ +export interface Webhook { + /** + * Identifier of the webhook. + * @type {string} + * @memberof Webhook + */ + 'id'?: string; + /** + * The ID of the blockchain network + * @type {string} + * @memberof Webhook + */ + 'network_id'?: string; + /** + * + * @type {WebhookEventType} + * @memberof Webhook + */ + 'event_type'?: WebhookEventType; + /** + * Webhook will monitor all events that matches any one of the event filters. + * @type {Array} + * @memberof Webhook + */ + 'event_filters'?: Array; + /** + * The URL to which the notifications will be sent. + * @type {string} + * @memberof Webhook + */ + 'notification_uri'?: string; + /** + * The date and time the webhook was created. + * @type {string} + * @memberof Webhook + */ + 'created_at'?: string; + /** + * The date and time the webhook was last updated. + * @type {string} + * @memberof Webhook + */ + 'updated_at'?: string; +} + + +/** + * The event_filter parameter specifies the criteria to filter events from the blockchain. It allows filtering events by contract address, sender address and receiver address. For a single event filter, not all of the properties need to be presented. + * @export + * @interface WebhookEventFilter + */ +export interface WebhookEventFilter { + /** + * The onchain contract address of the token being transferred. + * @type {string} + * @memberof WebhookEventFilter + */ + 'contract_address'?: string; + /** + * The onchain address of the sender. + * @type {string} + * @memberof WebhookEventFilter + */ + 'from_address'?: string; + /** + * The onchain address of the receiver. + * @type {string} + * @memberof WebhookEventFilter + */ + 'to_address'?: string; +} +/** + * + * @export + * @enum {string} + */ + +export const WebhookEventType = { + Unspecified: 'unspecified', + Erc20Transfer: 'erc20_transfer', + Erc721Transfer: 'erc721_transfer' +} as const; + +export type WebhookEventType = typeof WebhookEventType[keyof typeof WebhookEventType]; + + +/** + * + * @export + * @interface WebhookList + */ +export interface WebhookList { + /** + * + * @type {Array} + * @memberof WebhookList + */ + 'data': Array; + /** + * True if this list has another page of items after this one that can be fetched. + * @type {boolean} + * @memberof WebhookList + */ + 'has_more'?: boolean; + /** + * The page token to be used to fetch the next page. + * @type {string} + * @memberof WebhookList + */ + 'next_page'?: string; +} /** * AddressesApi - axios parameter creator @@ -2183,7 +2441,7 @@ export const AssetsApiAxiosParamCreator = function (configuration?: Configuratio * Get the asset for the specified asset ID. * @summary Get the asset for the specified asset ID. * @param {string} networkId The ID of the blockchain network - * @param {string} assetId The ID of the asset to fetch + * @param {string} assetId The ID of the asset to fetch. This could be a symbol or an ERC20 contract address. * @param {*} [options] Override http request option. * @throws {RequiredError} */ @@ -2231,7 +2489,7 @@ export const AssetsApiFp = function(configuration?: Configuration) { * Get the asset for the specified asset ID. * @summary Get the asset for the specified asset ID. * @param {string} networkId The ID of the blockchain network - * @param {string} assetId The ID of the asset to fetch + * @param {string} assetId The ID of the asset to fetch. This could be a symbol or an ERC20 contract address. * @param {*} [options] Override http request option. * @throws {RequiredError} */ @@ -2255,7 +2513,7 @@ export const AssetsApiFactory = function (configuration?: Configuration, basePat * Get the asset for the specified asset ID. * @summary Get the asset for the specified asset ID. * @param {string} networkId The ID of the blockchain network - * @param {string} assetId The ID of the asset to fetch + * @param {string} assetId The ID of the asset to fetch. This could be a symbol or an ERC20 contract address. * @param {*} [options] Override http request option. * @throws {RequiredError} */ @@ -2275,7 +2533,7 @@ export interface AssetsApiInterface { * Get the asset for the specified asset ID. * @summary Get the asset for the specified asset ID. * @param {string} networkId The ID of the blockchain network - * @param {string} assetId The ID of the asset to fetch + * @param {string} assetId The ID of the asset to fetch. This could be a symbol or an ERC20 contract address. * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AssetsApiInterface @@ -2295,13 +2553,207 @@ export class AssetsApi extends BaseAPI implements AssetsApiInterface { * Get the asset for the specified asset ID. * @summary Get the asset for the specified asset ID. * @param {string} networkId The ID of the blockchain network - * @param {string} assetId The ID of the asset to fetch + * @param {string} assetId The ID of the asset to fetch. This could be a symbol or an ERC20 contract address. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AssetsApi + */ + public getAsset(networkId: string, assetId: string, options?: RawAxiosRequestConfig) { + return AssetsApiFp(this.configuration).getAsset(networkId, assetId, options).then((request) => request(this.axios, this.basePath)); + } +} + + + +/** + * ContractEventsApi - axios parameter creator + * @export + */ +export const ContractEventsApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Retrieve events for a specific contract + * @summary Get contract events + * @param {string} networkId Unique identifier for the blockchain network + * @param {string} protocolName Case-sensitive name of the blockchain protocol + * @param {string} contractAddress EVM address of the smart contract (42 characters, including \'0x\', in lowercase) + * @param {number} fromBlockHeight Lower bound of the block range to query (inclusive) + * @param {number} toBlockHeight Upper bound of the block range to query (inclusive) + * @param {string} [contractName] Case-sensitive name of the specific contract within the project + * @param {string} [eventName] Case-sensitive name of the event to filter for in the contract\'s logs + * @param {string} [nextPage] Pagination token for retrieving the next set of results + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + listContractEvents: async (networkId: string, protocolName: string, contractAddress: string, fromBlockHeight: number, toBlockHeight: number, contractName?: string, eventName?: string, nextPage?: string, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'networkId' is not null or undefined + assertParamExists('listContractEvents', 'networkId', networkId) + // verify required parameter 'protocolName' is not null or undefined + assertParamExists('listContractEvents', 'protocolName', protocolName) + // verify required parameter 'contractAddress' is not null or undefined + assertParamExists('listContractEvents', 'contractAddress', contractAddress) + // verify required parameter 'fromBlockHeight' is not null or undefined + assertParamExists('listContractEvents', 'fromBlockHeight', fromBlockHeight) + // verify required parameter 'toBlockHeight' is not null or undefined + assertParamExists('listContractEvents', 'toBlockHeight', toBlockHeight) + const localVarPath = `/v1/networks/{network_id}/smart_contracts/{contract_address}/events` + .replace(`{${"network_id"}}`, encodeURIComponent(String(networkId))) + .replace(`{${"contract_address"}}`, encodeURIComponent(String(contractAddress))); + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + if (protocolName !== undefined) { + localVarQueryParameter['protocol_name'] = protocolName; + } + + if (contractName !== undefined) { + localVarQueryParameter['contract_name'] = contractName; + } + + if (eventName !== undefined) { + localVarQueryParameter['event_name'] = eventName; + } + + if (fromBlockHeight !== undefined) { + localVarQueryParameter['from_block_height'] = fromBlockHeight; + } + + if (toBlockHeight !== undefined) { + localVarQueryParameter['to_block_height'] = toBlockHeight; + } + + if (nextPage !== undefined) { + localVarQueryParameter['next_page'] = nextPage; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * ContractEventsApi - functional programming interface + * @export + */ +export const ContractEventsApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = ContractEventsApiAxiosParamCreator(configuration) + return { + /** + * Retrieve events for a specific contract + * @summary Get contract events + * @param {string} networkId Unique identifier for the blockchain network + * @param {string} protocolName Case-sensitive name of the blockchain protocol + * @param {string} contractAddress EVM address of the smart contract (42 characters, including \'0x\', in lowercase) + * @param {number} fromBlockHeight Lower bound of the block range to query (inclusive) + * @param {number} toBlockHeight Upper bound of the block range to query (inclusive) + * @param {string} [contractName] Case-sensitive name of the specific contract within the project + * @param {string} [eventName] Case-sensitive name of the event to filter for in the contract\'s logs + * @param {string} [nextPage] Pagination token for retrieving the next set of results + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async listContractEvents(networkId: string, protocolName: string, contractAddress: string, fromBlockHeight: number, toBlockHeight: number, contractName?: string, eventName?: string, nextPage?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.listContractEvents(networkId, protocolName, contractAddress, fromBlockHeight, toBlockHeight, contractName, eventName, nextPage, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ContractEventsApi.listContractEvents']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + } +}; + +/** + * ContractEventsApi - factory interface + * @export + */ +export const ContractEventsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = ContractEventsApiFp(configuration) + return { + /** + * Retrieve events for a specific contract + * @summary Get contract events + * @param {string} networkId Unique identifier for the blockchain network + * @param {string} protocolName Case-sensitive name of the blockchain protocol + * @param {string} contractAddress EVM address of the smart contract (42 characters, including \'0x\', in lowercase) + * @param {number} fromBlockHeight Lower bound of the block range to query (inclusive) + * @param {number} toBlockHeight Upper bound of the block range to query (inclusive) + * @param {string} [contractName] Case-sensitive name of the specific contract within the project + * @param {string} [eventName] Case-sensitive name of the event to filter for in the contract\'s logs + * @param {string} [nextPage] Pagination token for retrieving the next set of results + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + listContractEvents(networkId: string, protocolName: string, contractAddress: string, fromBlockHeight: number, toBlockHeight: number, contractName?: string, eventName?: string, nextPage?: string, options?: any): AxiosPromise { + return localVarFp.listContractEvents(networkId, protocolName, contractAddress, fromBlockHeight, toBlockHeight, contractName, eventName, nextPage, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * ContractEventsApi - interface + * @export + * @interface ContractEventsApi + */ +export interface ContractEventsApiInterface { + /** + * Retrieve events for a specific contract + * @summary Get contract events + * @param {string} networkId Unique identifier for the blockchain network + * @param {string} protocolName Case-sensitive name of the blockchain protocol + * @param {string} contractAddress EVM address of the smart contract (42 characters, including \'0x\', in lowercase) + * @param {number} fromBlockHeight Lower bound of the block range to query (inclusive) + * @param {number} toBlockHeight Upper bound of the block range to query (inclusive) + * @param {string} [contractName] Case-sensitive name of the specific contract within the project + * @param {string} [eventName] Case-sensitive name of the event to filter for in the contract\'s logs + * @param {string} [nextPage] Pagination token for retrieving the next set of results + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof ContractEventsApiInterface + */ + listContractEvents(networkId: string, protocolName: string, contractAddress: string, fromBlockHeight: number, toBlockHeight: number, contractName?: string, eventName?: string, nextPage?: string, options?: RawAxiosRequestConfig): AxiosPromise; + +} + +/** + * ContractEventsApi - object-oriented interface + * @export + * @class ContractEventsApi + * @extends {BaseAPI} + */ +export class ContractEventsApi extends BaseAPI implements ContractEventsApiInterface { + /** + * Retrieve events for a specific contract + * @summary Get contract events + * @param {string} networkId Unique identifier for the blockchain network + * @param {string} protocolName Case-sensitive name of the blockchain protocol + * @param {string} contractAddress EVM address of the smart contract (42 characters, including \'0x\', in lowercase) + * @param {number} fromBlockHeight Lower bound of the block range to query (inclusive) + * @param {number} toBlockHeight Upper bound of the block range to query (inclusive) + * @param {string} [contractName] Case-sensitive name of the specific contract within the project + * @param {string} [eventName] Case-sensitive name of the event to filter for in the contract\'s logs + * @param {string} [nextPage] Pagination token for retrieving the next set of results * @param {*} [options] Override http request option. * @throws {RequiredError} - * @memberof AssetsApi + * @memberof ContractEventsApi */ - public getAsset(networkId: string, assetId: string, options?: RawAxiosRequestConfig) { - return AssetsApiFp(this.configuration).getAsset(networkId, assetId, options).then((request) => request(this.axios, this.basePath)); + public listContractEvents(networkId: string, protocolName: string, contractAddress: string, fromBlockHeight: number, toBlockHeight: number, contractName?: string, eventName?: string, nextPage?: string, options?: RawAxiosRequestConfig) { + return ContractEventsApiFp(this.configuration).listContractEvents(networkId, protocolName, contractAddress, fromBlockHeight, toBlockHeight, contractName, eventName, nextPage, options).then((request) => request(this.axios, this.basePath)); } } @@ -5629,3 +6081,384 @@ export class WalletsApi extends BaseAPI implements WalletsApiInterface { +/** + * WebhooksApi - axios parameter creator + * @export + */ +export const WebhooksApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Create a new webhook + * @summary Create a new webhook + * @param {CreateWebhookRequest} [createWebhookRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createWebhook: async (createWebhookRequest?: CreateWebhookRequest, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/v1/webhooks`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(createWebhookRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Delete a webhook + * @summary Delete a webhook + * @param {string} webhookId The Webhook uuid that needs to be deleted + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteWebhook: async (webhookId: string, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'webhookId' is not null or undefined + assertParamExists('deleteWebhook', 'webhookId', webhookId) + const localVarPath = `/v1/webhooks/{webhook_id}` + .replace(`{${"webhook_id"}}`, encodeURIComponent(String(webhookId))); + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * List webhooks, optionally filtered by event type. + * @summary List webhooks + * @param {number} [limit] A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + * @param {string} [page] A cursor for pagination across multiple pages of results. Don\'t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + listWebhooks: async (limit?: number, page?: string, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/v1/webhooks`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + + if (page !== undefined) { + localVarQueryParameter['page'] = page; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Update a webhook + * @summary Update a webhook + * @param {string} webhookId The Webhook id that needs to be updated + * @param {UpdateWebhookRequest} [updateWebhookRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateWebhook: async (webhookId: string, updateWebhookRequest?: UpdateWebhookRequest, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'webhookId' is not null or undefined + assertParamExists('updateWebhook', 'webhookId', webhookId) + const localVarPath = `/v1/webhooks/{webhook_id}` + .replace(`{${"webhook_id"}}`, encodeURIComponent(String(webhookId))); + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(updateWebhookRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * WebhooksApi - functional programming interface + * @export + */ +export const WebhooksApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = WebhooksApiAxiosParamCreator(configuration) + return { + /** + * Create a new webhook + * @summary Create a new webhook + * @param {CreateWebhookRequest} [createWebhookRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async createWebhook(createWebhookRequest?: CreateWebhookRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.createWebhook(createWebhookRequest, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['WebhooksApi.createWebhook']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Delete a webhook + * @summary Delete a webhook + * @param {string} webhookId The Webhook uuid that needs to be deleted + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deleteWebhook(webhookId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.deleteWebhook(webhookId, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['WebhooksApi.deleteWebhook']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * List webhooks, optionally filtered by event type. + * @summary List webhooks + * @param {number} [limit] A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + * @param {string} [page] A cursor for pagination across multiple pages of results. Don\'t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async listWebhooks(limit?: number, page?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.listWebhooks(limit, page, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['WebhooksApi.listWebhooks']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Update a webhook + * @summary Update a webhook + * @param {string} webhookId The Webhook id that needs to be updated + * @param {UpdateWebhookRequest} [updateWebhookRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async updateWebhook(webhookId: string, updateWebhookRequest?: UpdateWebhookRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.updateWebhook(webhookId, updateWebhookRequest, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['WebhooksApi.updateWebhook']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + } +}; + +/** + * WebhooksApi - factory interface + * @export + */ +export const WebhooksApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = WebhooksApiFp(configuration) + return { + /** + * Create a new webhook + * @summary Create a new webhook + * @param {CreateWebhookRequest} [createWebhookRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createWebhook(createWebhookRequest?: CreateWebhookRequest, options?: any): AxiosPromise { + return localVarFp.createWebhook(createWebhookRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Delete a webhook + * @summary Delete a webhook + * @param {string} webhookId The Webhook uuid that needs to be deleted + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteWebhook(webhookId: string, options?: any): AxiosPromise { + return localVarFp.deleteWebhook(webhookId, options).then((request) => request(axios, basePath)); + }, + /** + * List webhooks, optionally filtered by event type. + * @summary List webhooks + * @param {number} [limit] A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + * @param {string} [page] A cursor for pagination across multiple pages of results. Don\'t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + listWebhooks(limit?: number, page?: string, options?: any): AxiosPromise { + return localVarFp.listWebhooks(limit, page, options).then((request) => request(axios, basePath)); + }, + /** + * Update a webhook + * @summary Update a webhook + * @param {string} webhookId The Webhook id that needs to be updated + * @param {UpdateWebhookRequest} [updateWebhookRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateWebhook(webhookId: string, updateWebhookRequest?: UpdateWebhookRequest, options?: any): AxiosPromise { + return localVarFp.updateWebhook(webhookId, updateWebhookRequest, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * WebhooksApi - interface + * @export + * @interface WebhooksApi + */ +export interface WebhooksApiInterface { + /** + * Create a new webhook + * @summary Create a new webhook + * @param {CreateWebhookRequest} [createWebhookRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WebhooksApiInterface + */ + createWebhook(createWebhookRequest?: CreateWebhookRequest, options?: RawAxiosRequestConfig): AxiosPromise; + + /** + * Delete a webhook + * @summary Delete a webhook + * @param {string} webhookId The Webhook uuid that needs to be deleted + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WebhooksApiInterface + */ + deleteWebhook(webhookId: string, options?: RawAxiosRequestConfig): AxiosPromise; + + /** + * List webhooks, optionally filtered by event type. + * @summary List webhooks + * @param {number} [limit] A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + * @param {string} [page] A cursor for pagination across multiple pages of results. Don\'t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WebhooksApiInterface + */ + listWebhooks(limit?: number, page?: string, options?: RawAxiosRequestConfig): AxiosPromise; + + /** + * Update a webhook + * @summary Update a webhook + * @param {string} webhookId The Webhook id that needs to be updated + * @param {UpdateWebhookRequest} [updateWebhookRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WebhooksApiInterface + */ + updateWebhook(webhookId: string, updateWebhookRequest?: UpdateWebhookRequest, options?: RawAxiosRequestConfig): AxiosPromise; + +} + +/** + * WebhooksApi - object-oriented interface + * @export + * @class WebhooksApi + * @extends {BaseAPI} + */ +export class WebhooksApi extends BaseAPI implements WebhooksApiInterface { + /** + * Create a new webhook + * @summary Create a new webhook + * @param {CreateWebhookRequest} [createWebhookRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WebhooksApi + */ + public createWebhook(createWebhookRequest?: CreateWebhookRequest, options?: RawAxiosRequestConfig) { + return WebhooksApiFp(this.configuration).createWebhook(createWebhookRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Delete a webhook + * @summary Delete a webhook + * @param {string} webhookId The Webhook uuid that needs to be deleted + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WebhooksApi + */ + public deleteWebhook(webhookId: string, options?: RawAxiosRequestConfig) { + return WebhooksApiFp(this.configuration).deleteWebhook(webhookId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * List webhooks, optionally filtered by event type. + * @summary List webhooks + * @param {number} [limit] A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + * @param {string} [page] A cursor for pagination across multiple pages of results. Don\'t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WebhooksApi + */ + public listWebhooks(limit?: number, page?: string, options?: RawAxiosRequestConfig) { + return WebhooksApiFp(this.configuration).listWebhooks(limit, page, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Update a webhook + * @summary Update a webhook + * @param {string} webhookId The Webhook id that needs to be updated + * @param {UpdateWebhookRequest} [updateWebhookRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WebhooksApi + */ + public updateWebhook(webhookId: string, updateWebhookRequest?: UpdateWebhookRequest, options?: RawAxiosRequestConfig) { + return WebhooksApiFp(this.configuration).updateWebhook(webhookId, updateWebhookRequest, options).then((request) => request(this.axios, this.basePath)); + } +} + + + diff --git a/src/client/common.ts b/src/client/common.ts index 61baa899..179ba101 100644 --- a/src/client/common.ts +++ b/src/client/common.ts @@ -126,50 +126,10 @@ export const serializeDataIfNeeded = function (value: any, requestOptions: any, ? configuration.isJsonMime(requestOptions.headers['Content-Type']) : nonString; return needsSerialization - ? JSON.stringify(value !== undefined ? convertMapsAndSetsToPlain(value) : {}) + ? JSON.stringify(value !== undefined ? value : {}) : (value || ""); } -function convertMapsAndSetsToPlain(value: any): any { - if (typeof Set === "undefined") return value; - if (typeof Map === "undefined") return value; - if (typeof value !== "object" || !value) { - return value; - } - if (value instanceof Set) { - return Array.from(value).map(item => convertMapsAndSetsToPlain(item)); - } - if (value instanceof Map) { - const entries: Array<[string, any]> = []; - value.forEach((value: any, key: any) => { - entries.push([key, convertMapsAndSetsToPlain(value)]) - }); - return objectFromEntries(entries); - } - if (Array.isArray(value)) { - return value.map(it => convertMapsAndSetsToPlain(it)); - } - return objectFromEntries(objectEntries(value) - .map(([k, v]) => [k, convertMapsAndSetsToPlain(v)])); -} - -/** - * Ponyfill for Object.entries - */ -function objectEntries(object: Record): Array<[string, any]> { - return Object.keys(object).map(key => [key, object[key]]); -} - -/** - * Ponyfill for Object.fromEntries - */ -function objectFromEntries(entries: any): Record { - return [...entries].reduce((object, [key, val]) => { - object[key] = val; - return object; - }, {}); -} - /** * * @export diff --git a/src/coinbase/transfer.ts b/src/coinbase/transfer.ts index 6c5eebad..fd2dc1d7 100644 --- a/src/coinbase/transfer.ts +++ b/src/coinbase/transfer.ts @@ -109,7 +109,7 @@ export class Transfer { * @returns The Unsigned Payload as a Hex string. */ public getUnsignedPayload(): string { - return this.model.unsigned_payload; + return this.model.transaction.unsigned_payload; } /** @@ -118,7 +118,7 @@ export class Transfer { * @returns The Signed Payload as a Hex string, or undefined if not yet available. */ public getSignedPayload(): string | undefined { - return this.model.signed_payload; + return this.model.transaction.signed_payload; } /** @@ -127,7 +127,7 @@ export class Transfer { * @returns The Transaction Hash as a Hex string, or undefined if not yet available. */ public getTransactionHash(): string | undefined { - return this.model.transaction_hash; + return this.model.transaction.transaction_hash; } /** @@ -171,7 +171,7 @@ export class Transfer { * @returns The Status of the Transfer. */ public getStatus(): TransferStatus | undefined { - switch (this.model.status) { + switch (this.model.transaction.status) { case TransferStatus.PENDING: return TransferStatus.PENDING; case TransferStatus.BROADCAST: diff --git a/src/tests/transfer_test.ts b/src/tests/transfer_test.ts index c312a62f..1847f14e 100644 --- a/src/tests/transfer_test.ts +++ b/src/tests/transfer_test.ts @@ -1,6 +1,6 @@ import { ethers } from "ethers"; import { Decimal } from "decimal.js"; -import { Transfer as TransferModel } from "../client/api"; +import { Transfer as TransferModel, TransactionStatusEnum } from "../client/api"; import { TransferStatus } from "../coinbase/types"; import { Transfer } from "../coinbase/transfer"; import { Coinbase } from "../coinbase/coinbase"; @@ -91,7 +91,9 @@ describe("Transfer Class", () => { describe("#getUnsignedPayload", () => { it("should return the unsigned payload", () => { - expect(transfer.getUnsignedPayload()).toEqual(VALID_TRANSFER_MODEL.unsigned_payload); + expect(transfer.getUnsignedPayload()).toEqual( + VALID_TRANSFER_MODEL.transaction.unsigned_payload, + ); }); }); @@ -110,7 +112,7 @@ describe("Transfer Class", () => { }); it("should return the signed payload when the transfer has been broadcast on chain", () => { - transferModel.signed_payload = signedPayload; + transferModel.transaction.signed_payload = signedPayload; transfer = Transfer.fromModel(transferModel); expect(transfer.getSignedPayload()).toEqual(signedPayload); }); @@ -118,11 +120,13 @@ describe("Transfer Class", () => { describe("#getTransactionHash", () => { it("should return undefined when the transfer has not been broadcast on chain", () => { + transferModel.transaction.transaction_hash = undefined; + transfer = Transfer.fromModel(transferModel); expect(transfer.getTransactionHash()).toBeUndefined(); }); it("should return the transaction hash when the transfer has been broadcast on chain", () => { - transferModel.transaction_hash = transactionHash; + transferModel.transaction.transaction_hash = transactionHash; transfer = Transfer.fromModel(transferModel); expect(transfer.getTransactionHash()).toEqual(transactionHash); }); @@ -131,7 +135,7 @@ describe("Transfer Class", () => { describe("#getTransactionLink", () => { it("should return the transaction link when the transaction hash is available", () => { expect(transfer.getTransactionLink()).toEqual( - `https://sepolia.basescan.org/tx/${transferModel.transaction_hash}`, + `https://sepolia.basescan.org/tx/${transferModel.transaction.transaction_hash}`, ); }); }); @@ -164,28 +168,28 @@ describe("Transfer Class", () => { }); it("should return BROADCAST when the transaction has been broadcast but not included in a block", async () => { - transferModel.status = TransferStatus.BROADCAST; + transferModel.transaction.status = TransactionStatusEnum.Broadcast; transfer = Transfer.fromModel(transferModel); const status = transfer.getStatus(); expect(status).toEqual(TransferStatus.BROADCAST); }); it("should return COMPLETE when the transaction has confirmed", async () => { - transferModel.status = TransferStatus.COMPLETE; + transferModel.transaction.status = TransactionStatusEnum.Complete; transfer = Transfer.fromModel(transferModel); const status = transfer.getStatus(); expect(status).toEqual(TransferStatus.COMPLETE); }); it("should return FAILED when the transaction has failed", async () => { - transferModel.status = TransferStatus.FAILED; + transferModel.transaction.status = TransactionStatusEnum.Failed; transfer = Transfer.fromModel(transferModel); const status = transfer.getStatus(); expect(status).toEqual(TransferStatus.FAILED); }); it("should return undefined when the transaction does not exist", async () => { - transferModel.status = "" as TransferStatus; + transferModel.transaction.status = "" as TransactionStatusEnum; transfer = Transfer.fromModel(transferModel); const status = transfer.getStatus(); expect(status).toEqual(undefined); @@ -193,29 +197,39 @@ describe("Transfer Class", () => { }); describe("#reload", () => { - it("should return PENDING when the trnasaction has not been created", async () => { + it("should return PENDING when the transaction has not been created", async () => { Coinbase.apiClients.transfer!.getTransfer = mockReturnValue({ ...VALID_TRANSFER_MODEL, - status: TransferStatus.PENDING, + transaction: { + ...VALID_TRANSFER_MODEL, + status: TransactionStatusEnum.Pending, + }, }); await transfer.reload(); expect(transfer.getStatus()).toEqual(TransferStatus.PENDING); expect(Coinbase.apiClients.transfer!.getTransfer).toHaveBeenCalledTimes(1); }); - it("should return COMPLETE when the trnasaction is complete", async () => { + it("should return COMPLETE when the transaction is complete", async () => { Coinbase.apiClients.transfer!.getTransfer = mockReturnValue({ ...VALID_TRANSFER_MODEL, - status: TransferStatus.COMPLETE, + transaction: { + ...VALID_TRANSFER_MODEL, + status: TransactionStatusEnum.Complete, + }, }); await transfer.reload(); expect(transfer.getStatus()).toEqual(TransferStatus.COMPLETE); expect(Coinbase.apiClients.transfer!.getTransfer).toHaveBeenCalledTimes(1); }); - it("should return FAILED when the trnasaction has failed", async () => { + it("should return FAILED when the transaction has failed", async () => { Coinbase.apiClients.transfer!.getTransfer = mockReturnValue({ ...VALID_TRANSFER_MODEL, + transaction: { + ...VALID_TRANSFER_MODEL, + status: TransactionStatusEnum.Failed, + }, status: TransferStatus.FAILED, }); await transfer.reload(); diff --git a/src/tests/utils.ts b/src/tests/utils.ts index 4b8ad128..95737bf4 100644 --- a/src/tests/utils.ts +++ b/src/tests/utils.ts @@ -10,7 +10,6 @@ import { AddressBalanceList, Address as AddressModel, Transfer as TransferModel, - TransferStatusEnum, StakingOperation as StakingOperationModel, ValidatorList, Validator, @@ -140,18 +139,6 @@ export const VALID_TRANSFER_MODEL: TransferModel = { destination: "0x4D9E4F3f4D1A8B5F4f7b1F5b5C7b8d6b2B3b1b0b", asset_id: Coinbase.assets.Eth, amount: new Decimal(ethers.parseUnits("100", 18).toString()).toString(), - unsigned_payload: - "7b2274797065223a22307832222c22636861696e4964223a2230783134613334222c226e6f6e63" + - "65223a22307830222c22746f223a22307834643965346633663464316138623566346637623166" + - "356235633762386436623262336231623062222c22676173223a22307835323038222c22676173" + - "5072696365223a6e756c6c2c226d61785072696f72697479466565506572476173223a223078" + - "3539363832663030222c226d6178466565506572476173223a2230783539363832663030222c22" + - "76616c7565223a2230783536626337356532643633313030303030222c22696e707574223a22" + - "3078222c226163636573734c697374223a5b5d2c2276223a22307830222c2272223a2230783022" + - "2c2273223a22307830222c2279506172697479223a22307830222c2268617368223a2230783664" + - "633334306534643663323633653363396561396135656438646561346332383966613861363966" + - "3031653635393462333732386230386138323335333433227d", - status: TransferStatusEnum.Pending, }; export const VALID_STAKING_OPERATION_MODEL: StakingOperationModel = { diff --git a/src/tests/wallet_address_test.ts b/src/tests/wallet_address_test.ts index 0208a35f..c190df2e 100644 --- a/src/tests/wallet_address_test.ts +++ b/src/tests/wallet_address_test.ts @@ -9,6 +9,7 @@ import { StakingContext as StakingContextModel, StakingOperation as StakingOperationModel, StakingOperationStatusEnum, + TransactionStatusEnum, StakingRewardFormat, StakingRewardStateEnum, Trade as TradeModel, @@ -505,7 +506,10 @@ describe("WalletAddress", () => { }); Coinbase.apiClients.transfer!.getTransfer = mockReturnValue({ ...VALID_TRANSFER_MODEL, - status: TransferStatus.COMPLETE, + transaction: { + ...VALID_TRANSFER_MODEL, + status: TransactionStatusEnum.Complete, + }, }); await address.createTransfer({ @@ -651,7 +655,10 @@ describe("WalletAddress", () => { Coinbase.apiClients.transfer!.createTransfer = mockReturnValue(VALID_TRANSFER_MODEL); Coinbase.apiClients.transfer!.getTransfer = mockReturnValue({ ...VALID_TRANSFER_MODEL, - status: TransferStatus.COMPLETE, + transaction: { + ...VALID_TRANSFER_MODEL, + status: TransactionStatusEnum.Complete, + }, }); await address.createTransfer({ diff --git a/src/tests/wallet_test.ts b/src/tests/wallet_test.ts index 74a3407f..666389a7 100644 --- a/src/tests/wallet_test.ts +++ b/src/tests/wallet_test.ts @@ -373,7 +373,10 @@ describe("Wallet Class", () => { }); Coinbase.apiClients.transfer!.getTransfer = mockReturnValue({ ...VALID_TRANSFER_MODEL, - status: TransferStatus.COMPLETE, + transaction: { + ...VALID_TRANSFER_MODEL.transaction, + status: TransactionStatusEnum.Complete, + }, }); await wallet.createTransfer({ amount: weiAmount, @@ -461,7 +464,10 @@ describe("Wallet Class", () => { Coinbase.apiClients.transfer!.createTransfer = mockReturnValue(VALID_TRANSFER_MODEL); Coinbase.apiClients.transfer!.getTransfer = mockReturnValue({ ...VALID_TRANSFER_MODEL, - status: TransferStatus.COMPLETE, + transaction: { + ...VALID_TRANSFER_MODEL, + status: TransactionStatusEnum.Complete, + }, }); await wallet.createTransfer({ From 0d2ebd4366442ea70a5c4426df3872d29bba7938 Mon Sep 17 00:00:00 2001 From: Marcin Lenczewski Date: Mon, 5 Aug 2024 16:17:20 -0400 Subject: [PATCH 20/22] Update package version to 0.0.14 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 30675ad9..cda1447c 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "license": "ISC", "description": "Coinbase Platform SDK", "repository": "https://github.com/coinbase/coinbase-sdk-nodejs", - "version": "0.0.13", + "version": "0.0.14", "main": "dist/index.js", "types": "dist/index.d.ts", "scripts": { From bbe2e9e2286b1657f062bd1dbd1716d838a30b31 Mon Sep 17 00:00:00 2001 From: Marcin Lenczewski Date: Mon, 5 Aug 2024 16:48:21 -0400 Subject: [PATCH 21/22] Update changelog and docs for release 0.0.14 --- CHANGELOG.md | 8 +- docs/assets/navigation.js | 2 +- docs/assets/search.js | 2 +- docs/classes/client_api.AddressesApi.html | 16 +- docs/classes/client_api.AssetsApi.html | 8 +- .../classes/client_api.ContractEventsApi.html | 20 +++ .../client_api.ExternalAddressesApi.html | 10 +- docs/classes/client_api.ServerSignersApi.html | 16 +- docs/classes/client_api.StakeApi.html | 37 ++++- docs/classes/client_api.TradesApi.html | 12 +- docs/classes/client_api.TransfersApi.html | 12 +- docs/classes/client_api.UsersApi.html | 6 +- docs/classes/client_api.ValidatorsApi.html | 8 +- docs/classes/client_api.WalletsApi.html | 14 +- docs/classes/client_api.WebhooksApi.html | 31 ++++ docs/classes/client_base.BaseAPI.html | 4 +- docs/classes/client_base.RequiredError.html | 4 +- .../client_configuration.Configuration.html | 22 +-- docs/classes/coinbase_address.Address.html | 74 +++++++-- ...ress_external_address.ExternalAddress.html | 66 ++++---- ..._address_wallet_address.WalletAddress.html | 142 +++++++++++++++--- docs/classes/coinbase_api_error.APIError.html | 8 +- ...coinbase_api_error.AlreadyExistsError.html | 8 +- ...ase_api_error.FaucetLimitReachedError.html | 8 +- ...oinbase_api_error.InvalidAddressError.html | 8 +- ...nbase_api_error.InvalidAddressIDError.html | 8 +- ...coinbase_api_error.InvalidAmountError.html | 8 +- ...oinbase_api_error.InvalidAssetIDError.html | 8 +- ...ase_api_error.InvalidDestinationError.html | 8 +- .../coinbase_api_error.InvalidLimitError.html | 8 +- ...nbase_api_error.InvalidNetworkIDError.html | 8 +- .../coinbase_api_error.InvalidPageError.html | 8 +- ...e_api_error.InvalidSignedPayloadError.html | 8 +- ...base_api_error.InvalidTransferIDError.html | 8 +- ..._api_error.InvalidTransferStatusError.html | 8 +- ...coinbase_api_error.InvalidWalletError.html | 8 +- ...inbase_api_error.InvalidWalletIDError.html | 8 +- ...nbase_api_error.MalformedRequestError.html | 8 +- ..._error.NetworkFeatureUnsupportedError.html | 8 +- .../coinbase_api_error.NotFoundError.html | 8 +- ...base_api_error.ResourceExhaustedError.html | 8 +- .../coinbase_api_error.UnauthorizedError.html | 8 +- ...coinbase_api_error.UnimplementedError.html | 8 +- ...nbase_api_error.UnsupportedAssetError.html | 8 +- docs/classes/coinbase_asset.Asset.html | 20 +-- ...e_authenticator.CoinbaseAuthenticator.html | 12 +- docs/classes/coinbase_balance.Balance.html | 8 +- .../coinbase_balance_map.BalanceMap.html | 8 +- docs/classes/coinbase_coinbase.Coinbase.html | 20 +-- .../coinbase_errors.ArgumentError.html | 4 +- .../coinbase_errors.InternalError.html | 4 +- .../coinbase_errors.InvalidAPIKeyFormat.html | 4 +- .../coinbase_errors.InvalidConfiguration.html | 4 +- ...oinbase_errors.InvalidUnsignedPayload.html | 4 +- ..._faucet_transaction.FaucetTransaction.html | 10 +- .../coinbase_server_signer.ServerSigner.html | 12 +- ...se_staking_operation.StakingOperation.html | 34 +++-- ...coinbase_staking_reward.StakingReward.html | 14 +- docs/classes/coinbase_trade.Trade.html | 32 ++-- .../coinbase_transaction.Transaction.html | 26 ++-- docs/classes/coinbase_transfer.Transfer.html | 38 ++--- docs/classes/coinbase_user.User.html | 20 ++- .../classes/coinbase_validator.Validator.html | 14 +- docs/classes/coinbase_wallet.Wallet.html | 131 +++++++++++----- docs/enums/client_api.Feature.html | 4 +- .../enums/client_api.StakingRewardFormat.html | 4 +- docs/enums/client_api.TransactionType.html | 4 +- docs/enums/client_api.WebhookEventType.html | 4 + .../coinbase_types.ServerSignerStatus.html | 4 +- .../coinbase_types.StakeOptionsMode.html | 8 +- .../coinbase_types.TransactionStatus.html | 4 +- docs/enums/coinbase_types.TransferStatus.html | 4 +- ...ent_api.AddressesApiAxiosParamCreator.html | 2 +- .../client_api.AddressesApiFactory.html | 12 +- docs/functions/client_api.AddressesApiFp.html | 12 +- ...client_api.AssetsApiAxiosParamCreator.html | 4 +- .../client_api.AssetsApiFactory.html | 4 +- docs/functions/client_api.AssetsApiFp.html | 4 +- ...pi.ContractEventsApiAxiosParamCreator.html | 13 ++ .../client_api.ContractEventsApiFactory.html | 13 ++ .../client_api.ContractEventsApiFp.html | 13 ++ ...ExternalAddressesApiAxiosParamCreator.html | 2 +- ...lient_api.ExternalAddressesApiFactory.html | 6 +- .../client_api.ExternalAddressesApiFp.html | 6 +- ...api.ServerSignersApiAxiosParamCreator.html | 2 +- .../client_api.ServerSignersApiFactory.html | 12 +- .../client_api.ServerSignersApiFp.html | 12 +- .../client_api.StakeApiAxiosParamCreator.html | 31 +++- .../functions/client_api.StakeApiFactory.html | 29 +++- docs/functions/client_api.StakeApiFp.html | 29 +++- ...client_api.TradesApiAxiosParamCreator.html | 2 +- .../client_api.TradesApiFactory.html | 8 +- docs/functions/client_api.TradesApiFp.html | 8 +- ...ent_api.TransfersApiAxiosParamCreator.html | 2 +- .../client_api.TransfersApiFactory.html | 8 +- docs/functions/client_api.TransfersApiFp.html | 8 +- .../client_api.UsersApiAxiosParamCreator.html | 2 +- .../functions/client_api.UsersApiFactory.html | 2 +- docs/functions/client_api.UsersApiFp.html | 2 +- ...nt_api.ValidatorsApiAxiosParamCreator.html | 2 +- .../client_api.ValidatorsApiFactory.html | 4 +- .../functions/client_api.ValidatorsApiFp.html | 4 +- ...lient_api.WalletsApiAxiosParamCreator.html | 2 +- .../client_api.WalletsApiFactory.html | 10 +- docs/functions/client_api.WalletsApiFp.html | 10 +- ...ient_api.WebhooksApiAxiosParamCreator.html | 18 +++ .../client_api.WebhooksApiFactory.html | 18 +++ docs/functions/client_api.WebhooksApiFp.html | 18 +++ .../client_common.assertParamExists.html | 2 +- .../client_common.createRequestFunction.html | 2 +- .../client_common.serializeDataIfNeeded.html | 2 +- .../client_common.setApiKeyToObject.html | 2 +- .../client_common.setBasicAuthToObject.html | 2 +- .../client_common.setBearerAuthToObject.html | 2 +- .../client_common.setOAuthToObject.html | 2 +- .../client_common.setSearchParams.html | 2 +- .../functions/client_common.toPathString.html | 2 +- .../coinbase_utils.convertStringToHex.html | 2 +- docs/functions/coinbase_utils.delay.html | 2 +- docs/functions/coinbase_utils.formatDate.html | 4 + .../coinbase_utils.getWeekBackDate.html | 4 + .../coinbase_utils.logApiResponse.html | 2 +- .../coinbase_utils.parseUnsignedPayload.html | 2 +- ...nbase_utils.registerAxiosInterceptors.html | 2 +- docs/hierarchy.html | 2 +- docs/index.html | 2 +- docs/interfaces/client_api.Address.html | 10 +- .../client_api.AddressBalanceList.html | 10 +- docs/interfaces/client_api.AddressList.html | 10 +- .../client_api.AddressesApiInterface.html | 14 +- docs/interfaces/client_api.Asset.html | 10 +- .../client_api.AssetsApiInterface.html | 6 +- docs/interfaces/client_api.Balance.html | 6 +- ..._api.BroadcastStakingOperationRequest.html | 8 + .../client_api.BroadcastTradeRequest.html | 6 +- .../client_api.BroadcastTransferRequest.html | 4 +- ...ient_api.BuildStakingOperationRequest.html | 12 +- docs/interfaces/client_api.ContractEvent.html | 42 ++++++ .../client_api.ContractEventList.html | 12 ++ ...client_api.ContractEventsApiInterface.html | 16 ++ .../client_api.CreateAddressRequest.html | 6 +- .../client_api.CreateServerSignerRequest.html | 8 +- ...ent_api.CreateStakingOperationRequest.html | 13 ++ .../client_api.CreateTradeRequest.html | 8 +- .../client_api.CreateTransferRequest.html | 10 +- .../client_api.CreateWalletRequest.html | 4 +- .../client_api.CreateWalletRequestWallet.html | 6 +- .../client_api.CreateWebhookRequest.html | 13 ++ .../client_api.EthereumValidatorMetadata.html | 20 +-- ...ent_api.ExternalAddressesApiInterface.html | 8 +- .../client_api.FaucetTransaction.html | 6 +- ...nt_api.FetchStakingRewards200Response.html | 8 +- ...client_api.FetchStakingRewardsRequest.html | 14 +- .../client_api.GetStakingContextRequest.html | 10 +- docs/interfaces/client_api.ModelError.html | 6 +- .../client_api.NativeEthStakingContext.html | 8 +- .../client_api.PartialEthStakingContext.html | 8 +- .../client_api.SeedCreationEvent.html | 6 +- .../client_api.SeedCreationEventResult.html | 10 +- docs/interfaces/client_api.ServerSigner.html | 8 +- .../client_api.ServerSignerEvent.html | 6 +- .../client_api.ServerSignerEventList.html | 10 +- .../client_api.ServerSignerList.html | 10 +- .../client_api.ServerSignersApiInterface.html | 14 +- .../client_api.SignatureCreationEvent.html | 18 +-- ...ient_api.SignatureCreationEventResult.html | 14 +- ...pi.SignedVoluntaryExitMessageMetadata.html | 8 +- .../client_api.StakeApiInterface.html | 35 ++++- .../interfaces/client_api.StakingContext.html | 4 +- .../client_api.StakingOperation.html | 17 ++- docs/interfaces/client_api.StakingReward.html | 12 +- docs/interfaces/client_api.Trade.html | 22 +-- docs/interfaces/client_api.TradeList.html | 10 +- .../client_api.TradesApiInterface.html | 10 +- docs/interfaces/client_api.Transaction.html | 16 +- docs/interfaces/client_api.Transfer.html | 32 ++-- docs/interfaces/client_api.TransferList.html | 10 +- .../client_api.TransfersApiInterface.html | 10 +- .../client_api.UpdateWebhookRequest.html | 13 ++ docs/interfaces/client_api.User.html | 6 +- .../client_api.UsersApiInterface.html | 4 +- docs/interfaces/client_api.Validator.html | 12 +- docs/interfaces/client_api.ValidatorList.html | 8 +- .../client_api.ValidatorsApiInterface.html | 6 +- docs/interfaces/client_api.Wallet.html | 12 +- docs/interfaces/client_api.WalletList.html | 10 +- .../client_api.WalletsApiInterface.html | 12 +- docs/interfaces/client_api.Webhook.html | 23 +++ .../client_api.WebhookEventFilter.html | 12 ++ docs/interfaces/client_api.WebhookList.html | 10 ++ .../client_api.WebhooksApiInterface.html | 27 ++++ docs/interfaces/client_base.RequestArgs.html | 4 +- ...configuration.ConfigurationParameters.html | 4 +- docs/modules/client.html | 25 ++- docs/modules/client_api.html | 24 ++- docs/modules/client_base.html | 2 +- docs/modules/client_common.html | 2 +- docs/modules/client_configuration.html | 2 +- docs/modules/coinbase_address.html | 2 +- .../coinbase_address_external_address.html | 2 +- .../coinbase_address_wallet_address.html | 2 +- docs/modules/coinbase_api_error.html | 2 +- docs/modules/coinbase_asset.html | 2 +- docs/modules/coinbase_authenticator.html | 2 +- docs/modules/coinbase_balance.html | 2 +- docs/modules/coinbase_balance_map.html | 2 +- docs/modules/coinbase_coinbase.html | 2 +- docs/modules/coinbase_constants.html | 2 +- docs/modules/coinbase_errors.html | 2 +- docs/modules/coinbase_faucet_transaction.html | 2 +- docs/modules/coinbase_server_signer.html | 2 +- docs/modules/coinbase_staking_operation.html | 2 +- docs/modules/coinbase_staking_reward.html | 2 +- docs/modules/coinbase_trade.html | 2 +- docs/modules/coinbase_transaction.html | 2 +- docs/modules/coinbase_transfer.html | 2 +- docs/modules/coinbase_types.html | 2 +- docs/modules/coinbase_user.html | 2 +- docs/modules/coinbase_utils.html | 4 +- docs/modules/coinbase_validator.html | 2 +- docs/modules/coinbase_wallet.html | 2 +- docs/modules/index.html | 2 +- .../client_api.ServerSignerEventEvent.html | 2 +- .../client_api.StakingContextContext.html | 2 +- .../client_api.StakingOperationMetadata.html | 2 +- ...client_api.StakingOperationStatusEnum.html | 2 +- .../client_api.StakingRewardStateEnum.html | 2 +- .../client_api.TransactionStatusEnum.html | 2 +- docs/types/client_api.TransferStatusEnum.html | 1 - docs/types/client_api.ValidatorDetails.html | 2 +- ...ient_api.WalletServerSignerStatusEnum.html | 2 +- .../coinbase_types.AddressAPIClient.html | 12 +- docs/types/coinbase_types.Amount.html | 2 +- docs/types/coinbase_types.ApiClients.html | 2 +- docs/types/coinbase_types.AssetAPIClient.html | 2 +- ...ypes.CoinbaseConfigureFromJsonOptions.html | 2 +- .../types/coinbase_types.CoinbaseOptions.html | 2 +- .../coinbase_types.CreateTradeOptions.html | 2 +- .../coinbase_types.CreateTransferOptions.html | 2 +- docs/types/coinbase_types.Destination.html | 2 +- ...inbase_types.ExternalAddressAPIClient.html | 6 +- docs/types/coinbase_types.SeedData.html | 2 +- .../coinbase_types.ServerSignerAPIClient.html | 2 +- docs/types/coinbase_types.StakeAPIClient.html | 10 +- .../types/coinbase_types.TradeApiClients.html | 8 +- .../coinbase_types.TransferAPIClient.html | 8 +- docs/types/coinbase_types.UserAPIClient.html | 2 +- .../coinbase_types.ValidatorAPIClient.html | 4 +- .../types/coinbase_types.WalletAPIClient.html | 8 +- .../coinbase_types.WalletCreateOptions.html | 2 +- docs/types/coinbase_types.WalletData.html | 2 +- ...ient_api.StakingOperationStatusEnum-1.html | 2 +- .../client_api.StakingRewardStateEnum-1.html | 2 +- .../client_api.TransactionStatusEnum-1.html | 2 +- .../client_api.TransferStatusEnum-1.html | 1 - ...nt_api.WalletServerSignerStatusEnum-1.html | 2 +- docs/variables/client_base.BASE_PATH.html | 2 +- .../client_base.COLLECTION_FORMATS.html | 2 +- .../client_base.operationServerMap.html | 2 +- .../client_common.DUMMY_BASE_URL.html | 2 +- ...nbase_constants.ATOMIC_UNITS_PER_USDC.html | 2 +- .../coinbase_constants.GWEI_DECIMALS.html | 2 +- .../coinbase_constants.WEI_PER_ETHER.html | 2 +- 263 files changed, 1607 insertions(+), 914 deletions(-) create mode 100644 docs/classes/client_api.ContractEventsApi.html create mode 100644 docs/classes/client_api.WebhooksApi.html create mode 100644 docs/enums/client_api.WebhookEventType.html create mode 100644 docs/functions/client_api.ContractEventsApiAxiosParamCreator.html create mode 100644 docs/functions/client_api.ContractEventsApiFactory.html create mode 100644 docs/functions/client_api.ContractEventsApiFp.html create mode 100644 docs/functions/client_api.WebhooksApiAxiosParamCreator.html create mode 100644 docs/functions/client_api.WebhooksApiFactory.html create mode 100644 docs/functions/client_api.WebhooksApiFp.html create mode 100644 docs/functions/coinbase_utils.formatDate.html create mode 100644 docs/functions/coinbase_utils.getWeekBackDate.html create mode 100644 docs/interfaces/client_api.BroadcastStakingOperationRequest.html create mode 100644 docs/interfaces/client_api.ContractEvent.html create mode 100644 docs/interfaces/client_api.ContractEventList.html create mode 100644 docs/interfaces/client_api.ContractEventsApiInterface.html create mode 100644 docs/interfaces/client_api.CreateStakingOperationRequest.html create mode 100644 docs/interfaces/client_api.CreateWebhookRequest.html create mode 100644 docs/interfaces/client_api.UpdateWebhookRequest.html create mode 100644 docs/interfaces/client_api.Webhook.html create mode 100644 docs/interfaces/client_api.WebhookEventFilter.html create mode 100644 docs/interfaces/client_api.WebhookList.html create mode 100644 docs/interfaces/client_api.WebhooksApiInterface.html delete mode 100644 docs/types/client_api.TransferStatusEnum.html delete mode 100644 docs/variables/client_api.TransferStatusEnum-1.html diff --git a/CHANGELOG.md b/CHANGELOG.md index 58b05a2c..b5fac95e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,12 @@ # Coinbase Node.js SDK Changelog -## Unreleased +## [0.0.14] - 2024-08-05 -## Changed +### Added + +- Support for Shared ETH Staking for Wallet Addresses + +### Changed - `unsigned_payload`, `signed_payload`, `status`, and `transaction_hash` in-line fields on `Transfer` are deprecated in favor of those on `Transaction` diff --git a/docs/assets/navigation.js b/docs/assets/navigation.js index 737e49df..638e2512 100644 --- a/docs/assets/navigation.js +++ b/docs/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "data:application/octet-stream;base64,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" \ No newline at end of file +window.navigationData = "data:application/octet-stream;base64,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" \ No newline at end of file diff --git a/docs/assets/search.js b/docs/assets/search.js index 028d588d..ca25b39b 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/docs/classes/client_api.AddressesApi.html b/docs/classes/client_api.AddressesApi.html index 7c634ac2..6757fdca 100644 --- a/docs/classes/client_api.AddressesApi.html +++ b/docs/classes/client_api.AddressesApi.html @@ -1,6 +1,6 @@ AddressesApi | @coinbase/coinbase-sdk

AddressesApi - object-oriented interface

Export

AddressesApi

-

Hierarchy (view full)

Implements

Constructors

Hierarchy (view full)

Implements

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration

Methods

  • Create a new address scoped to the wallet.

    +

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration

Methods

  • Create a new address scoped to the wallet.

    Parameters

    • walletId: string

      The ID of the wallet to create the address in.

    • Optional createAddressRequest: CreateAddressRequest
    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<Address, any>>

    Summary

    Create a new address

    Throws

    Memberof

    AddressesApi

    -
  • Get address

    Parameters

    • walletId: string

      The ID of the wallet the address belongs to.

    • addressId: string

      The onchain address of the address that is being fetched.

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<Address, any>>

    Summary

    Get address by onchain address

    Throws

    Memberof

    AddressesApi

    -
  • Get address balance

    Parameters

    • walletId: string

      The ID of the wallet to fetch the balance for

    • addressId: string

      The onchain address of the address that is being fetched.

    • assetId: string

      The symbol of the asset to fetch the balance for

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<Balance, any>>

    Summary

    Get address balance for asset

    Throws

    Memberof

    AddressesApi

    -
  • Get address balances

    Parameters

    • walletId: string

      The ID of the wallet to fetch the balances for

    • addressId: string

      The onchain address of the address that is being fetched.

    • Optional page: string

      A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<AddressBalanceList, any>>

    Summary

    Get all balances for address

    Throws

    Memberof

    AddressesApi

    -
  • List addresses in the wallet.

    Parameters

    • walletId: string

      The ID of the wallet whose addresses to fetch

    • Optional limit: number

      A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

    • Optional page: string

      A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<AddressList, any>>

    Summary

    List addresses in a wallet.

    Throws

    Memberof

    AddressesApi

    -
  • Request faucet funds to be sent to onchain address.

    Parameters

    • walletId: string

      The ID of the wallet the address belongs to.

    • addressId: string

      The onchain address of the address that is being fetched.

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<FaucetTransaction, any>>

    Summary

    Request faucet funds for onchain address.

    Throws

    Memberof

    AddressesApi

    -
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/client_api.AssetsApi.html b/docs/classes/client_api.AssetsApi.html index 28a14841..44c714ad 100644 --- a/docs/classes/client_api.AssetsApi.html +++ b/docs/classes/client_api.AssetsApi.html @@ -1,14 +1,14 @@ AssetsApi | @coinbase/coinbase-sdk

AssetsApi - object-oriented interface

Export

AssetsApi

-

Hierarchy (view full)

Implements

Constructors

Hierarchy (view full)

Implements

Constructors

Properties

Methods

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration

Methods

  • Get the asset for the specified asset ID.

    +

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration

Methods

  • Get the asset for the specified asset ID.

    Parameters

    • networkId: string

      The ID of the blockchain network

      -
    • assetId: string

      The ID of the asset to fetch

      +
    • assetId: string

      The ID of the asset to fetch. This could be a symbol or an ERC20 contract address.

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<Asset, any>>

    Summary

    Get the asset for the specified asset ID.

    Throws

    Memberof

    AssetsApi

    -
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/client_api.ContractEventsApi.html b/docs/classes/client_api.ContractEventsApi.html new file mode 100644 index 00000000..88f996ba --- /dev/null +++ b/docs/classes/client_api.ContractEventsApi.html @@ -0,0 +1,20 @@ +ContractEventsApi | @coinbase/coinbase-sdk

ContractEventsApi - object-oriented interface

+

Export

ContractEventsApi

+

Hierarchy (view full)

Implements

Constructors

Properties

Methods

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration

Methods

  • Retrieve events for a specific contract

    +

    Parameters

    • networkId: string

      Unique identifier for the blockchain network

      +
    • protocolName: string

      Case-sensitive name of the blockchain protocol

      +
    • contractAddress: string

      EVM address of the smart contract (42 characters, including &#39;0x&#39;, in lowercase)

      +
    • fromBlockHeight: number

      Lower bound of the block range to query (inclusive)

      +
    • toBlockHeight: number

      Upper bound of the block range to query (inclusive)

      +
    • Optional contractName: string

      Case-sensitive name of the specific contract within the project

      +
    • Optional eventName: string

      Case-sensitive name of the event to filter for in the contract&#39;s logs

      +
    • Optional nextPage: string

      Pagination token for retrieving the next set of results

      +
    • Optional options: RawAxiosRequestConfig

      Override http request option.

      +

    Returns Promise<AxiosResponse<ContractEventList, any>>

    Summary

    Get contract events

    +

    Throws

    Memberof

    ContractEventsApi

    +
\ No newline at end of file diff --git a/docs/classes/client_api.ExternalAddressesApi.html b/docs/classes/client_api.ExternalAddressesApi.html index cfb878d0..329f8687 100644 --- a/docs/classes/client_api.ExternalAddressesApi.html +++ b/docs/classes/client_api.ExternalAddressesApi.html @@ -1,30 +1,30 @@ ExternalAddressesApi | @coinbase/coinbase-sdk

ExternalAddressesApi - object-oriented interface

Export

ExternalAddressesApi

-

Hierarchy (view full)

Implements

Constructors

Hierarchy (view full)

Implements

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration

Methods

  • Get the balance of an asset in an external address

    +

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration

Methods

  • Get the balance of an asset in an external address

    Parameters

    • networkId: string

      The ID of the blockchain network

    • addressId: string

      The ID of the address to fetch the balance for

    • assetId: string

      The ID of the asset to fetch the balance for

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<Balance, any>>

    Summary

    Get the balance of an asset in an external address

    Throws

    Memberof

    ExternalAddressesApi

    -
  • List all of the balances of an external address

    Parameters

    • networkId: string

      The ID of the blockchain network

    • addressId: string

      The ID of the address to fetch the balance for

    • Optional page: string

      A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<AddressBalanceList, any>>

    Summary

    Get the balances of an external address

    Throws

    Memberof

    ExternalAddressesApi

    -
  • Request faucet funds to be sent to external address.

    Parameters

    • networkId: string

      The ID of the wallet the address belongs to.

    • addressId: string

      The onchain address of the address that is being fetched.

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<FaucetTransaction, any>>

    Summary

    Request faucet funds for external address.

    Throws

    Memberof

    ExternalAddressesApi

    -
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/client_api.ServerSignersApi.html b/docs/classes/client_api.ServerSignersApi.html index be912de0..7ee4c738 100644 --- a/docs/classes/client_api.ServerSignersApi.html +++ b/docs/classes/client_api.ServerSignersApi.html @@ -1,6 +1,6 @@ ServerSignersApi | @coinbase/coinbase-sdk

ServerSignersApi - object-oriented interface

Export

ServerSignersApi

-

Hierarchy (view full)

Implements

Constructors

Hierarchy (view full)

Implements

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration

Methods

  • Create a new Server-Signer

    +

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration

Methods

  • Get a server signer by ID

    Parameters

    • serverSignerId: string

      The ID of the server signer to fetch

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<ServerSigner, any>>

    Summary

    Get a server signer by ID

    Throws

    Memberof

    ServerSignersApi

    -
  • List events for a server signer

    Parameters

    • serverSignerId: string

      The ID of the server signer to fetch events for

    • Optional limit: number

      A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

    • Optional page: string

      A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<ServerSignerEventList, any>>

    Summary

    List events for a server signer

    Throws

    Memberof

    ServerSignersApi

    -
  • List server signers for the current project

    Parameters

    • Optional limit: number

      A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

    • Optional page: string

      A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<ServerSignerList, any>>

    Summary

    List server signers for the current project

    Throws

    Memberof

    ServerSignersApi

    -
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/client_api.StakeApi.html b/docs/classes/client_api.StakeApi.html index e90d2edf..c740251d 100644 --- a/docs/classes/client_api.StakeApi.html +++ b/docs/classes/client_api.StakeApi.html @@ -1,32 +1,55 @@ StakeApi | @coinbase/coinbase-sdk

StakeApi - object-oriented interface

Export

StakeApi

-

Hierarchy (view full)

Implements

Constructors

Hierarchy (view full)

Implements

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration

Methods

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration

Methods

  • Broadcast a staking operation.

    +

    Parameters

    • walletId: string

      The ID of the wallet the address belongs to.

      +
    • addressId: string

      The ID of the address the staking operation belongs to.

      +
    • stakingOperationId: string

      The ID of the staking operation to broadcast.

      +
    • broadcastStakingOperationRequest: BroadcastStakingOperationRequest
    • Optional options: RawAxiosRequestConfig

      Override http request option.

      +

    Returns Promise<AxiosResponse<StakingOperation, any>>

    Summary

    Broadcast a staking operation

    +

    Throws

    Memberof

    StakeApi

    +
  • Create a new staking operation.

    +

    Parameters

    • walletId: string

      The ID of the wallet the address belongs to.

      +
    • addressId: string

      The ID of the address to create the staking operation for.

      +
    • createStakingOperationRequest: CreateStakingOperationRequest
    • Optional options: RawAxiosRequestConfig

      Override http request option.

      +

    Returns Promise<AxiosResponse<StakingOperation, any>>

    Summary

    Create a new staking operation for an address

    +

    Throws

    Memberof

    StakeApi

    +
  • Fetch staking rewards for a list of addresses

    Parameters

    • fetchStakingRewardsRequest: FetchStakingRewardsRequest
    • Optional limit: number

      A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 50.

    • Optional page: string

      A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<FetchStakingRewards200Response, any>>

    Summary

    Fetch staking rewards

    Throws

    Memberof

    StakeApi

    -
  • Get the latest state of a staking operation

    Parameters

    • networkId: string

      The ID of the blockchain network

    • addressId: string

      The ID of the address to fetch the staking operation for

    • stakingOperationId: string

      The ID of the staking operation

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<StakingOperation, any>>

    Summary

    Get the latest state of a staking operation

    Throws

    Memberof

    StakeApi

    -
\ No newline at end of file +
  • Get the latest state of a staking operation.

    +

    Parameters

    • walletId: string

      The ID of the wallet the address belongs to

      +
    • addressId: string

      The ID of the address to fetch the staking operation for.

      +
    • stakingOperationId: string

      The ID of the staking operation.

      +
    • Optional options: RawAxiosRequestConfig

      Override http request option.

      +

    Returns Promise<AxiosResponse<StakingOperation, any>>

    Summary

    Get the latest state of a staking operation

    +

    Throws

    Memberof

    StakeApi

    +
\ No newline at end of file diff --git a/docs/classes/client_api.TradesApi.html b/docs/classes/client_api.TradesApi.html index 17ea8843..89d18663 100644 --- a/docs/classes/client_api.TradesApi.html +++ b/docs/classes/client_api.TradesApi.html @@ -1,6 +1,6 @@ TradesApi | @coinbase/coinbase-sdk

TradesApi - object-oriented interface

Export

TradesApi

-

Hierarchy (view full)

Implements

Constructors

Hierarchy (view full)

Implements

Constructors

Properties

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration

Methods

  • Broadcast a trade

    +

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration

Methods

  • Broadcast a trade

    Parameters

    • walletId: string

      The ID of the wallet the address belongs to

    • addressId: string

      The ID of the address the trade belongs to

    • tradeId: string

      The ID of the trade to broadcast

    • broadcastTradeRequest: BroadcastTradeRequest
    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<Trade, any>>

    Summary

    Broadcast a trade

    Throws

    Memberof

    TradesApi

    -
  • Create a new trade

    Parameters

    • walletId: string

      The ID of the wallet the source address belongs to

    • addressId: string

      The ID of the address to conduct the trade from

    • createTradeRequest: CreateTradeRequest
    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<Trade, any>>

    Summary

    Create a new trade for an address

    Throws

    Memberof

    TradesApi

    -
  • Get a trade by ID

    Parameters

    • walletId: string

      The ID of the wallet the address belongs to

    • addressId: string

      The ID of the address the trade belongs to

    • tradeId: string

      The ID of the trade to fetch

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<Trade, any>>

    Summary

    Get a trade by ID

    Throws

    Memberof

    TradesApi

    -
  • List trades for an address.

    Parameters

    • walletId: string

      The ID of the wallet the address belongs to

    • addressId: string

      The ID of the address to list trades for

    • Optional limit: number

      A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

      @@ -36,4 +36,4 @@

      Throws

      Memberof

      TradesApi

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<TradeList, any>>

    Summary

    List trades for an address.

    Throws

    Memberof

    TradesApi

    -
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/client_api.TransfersApi.html b/docs/classes/client_api.TransfersApi.html index bdf732f8..124e69c4 100644 --- a/docs/classes/client_api.TransfersApi.html +++ b/docs/classes/client_api.TransfersApi.html @@ -1,6 +1,6 @@ TransfersApi | @coinbase/coinbase-sdk

TransfersApi - object-oriented interface

Export

TransfersApi

-

Hierarchy (view full)

Implements

Constructors

Hierarchy (view full)

Implements

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration

Methods

  • Broadcast a transfer

    +

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration

Methods

  • Broadcast a transfer

    Parameters

    • walletId: string

      The ID of the wallet the address belongs to

    • addressId: string

      The ID of the address the transfer belongs to

    • transferId: string

      The ID of the transfer to broadcast

    • broadcastTransferRequest: BroadcastTransferRequest
    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<Transfer, any>>

    Summary

    Broadcast a transfer

    Throws

    Memberof

    TransfersApi

    -
  • Create a new transfer

    Parameters

    • walletId: string

      The ID of the wallet the source address belongs to

    • addressId: string

      The ID of the address to transfer from

    • createTransferRequest: CreateTransferRequest
    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<Transfer, any>>

    Summary

    Create a new transfer for an address

    Throws

    Memberof

    TransfersApi

    -
  • Get a transfer by ID

    Parameters

    • walletId: string

      The ID of the wallet the address belongs to

    • addressId: string

      The ID of the address the transfer belongs to

    • transferId: string

      The ID of the transfer to fetch

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<Transfer, any>>

    Summary

    Get a transfer by ID

    Throws

    Memberof

    TransfersApi

    -
  • List transfers for an address.

    Parameters

    • walletId: string

      The ID of the wallet the address belongs to

    • addressId: string

      The ID of the address to list transfers for

    • Optional limit: number

      A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

      @@ -36,4 +36,4 @@

      Throws

      Memberof

      TransfersApi

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<TransferList, any>>

    Summary

    List transfers for an address.

    Throws

    Memberof

    TransfersApi

    -
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/client_api.UsersApi.html b/docs/classes/client_api.UsersApi.html index e2c80e1f..0f02b3ec 100644 --- a/docs/classes/client_api.UsersApi.html +++ b/docs/classes/client_api.UsersApi.html @@ -1,12 +1,12 @@ UsersApi | @coinbase/coinbase-sdk

UsersApi - object-oriented interface

Export

UsersApi

-

Hierarchy (view full)

Implements

Constructors

Hierarchy (view full)

Implements

Constructors

Properties

Methods

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration

Methods

  • Get current user

    +

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration

Methods

  • Get current user

    Parameters

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<User, any>>

    Summary

    Get current user

    Throws

    Memberof

    UsersApi

    -
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/client_api.ValidatorsApi.html b/docs/classes/client_api.ValidatorsApi.html index bcc3c36b..4d853d97 100644 --- a/docs/classes/client_api.ValidatorsApi.html +++ b/docs/classes/client_api.ValidatorsApi.html @@ -1,19 +1,19 @@ ValidatorsApi | @coinbase/coinbase-sdk

ValidatorsApi - object-oriented interface

Export

ValidatorsApi

-

Hierarchy (view full)

Implements

Constructors

Hierarchy (view full)

Implements

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration

Methods

  • Get a validator belonging to the user for a given network, asset and id.

    +

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration

Methods

  • Get a validator belonging to the user for a given network, asset and id.

    Parameters

    • networkId: string

      The ID of the blockchain network.

    • assetId: string

      The symbol of the asset to get the validator for.

    • validatorId: string

      The unique id of the validator to fetch details for.

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<Validator, any>>

    Summary

    Get a validator belonging to the CDP project

    Throws

    Memberof

    ValidatorsApi

    -
  • List validators belonging to the user for a given network and asset.

    Parameters

    • networkId: string

      The ID of the blockchain network.

    • assetId: string

      The symbol of the asset to get the validators for.

    • Optional status: string

      A filter to list validators based on a status.

      @@ -22,4 +22,4 @@

      Throws

      Memberof

      ValidatorsApi

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<ValidatorList, any>>

    Summary

    List validators belonging to the CDP project

    Throws

    Memberof

    ValidatorsApi

    -
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/client_api.WalletsApi.html b/docs/classes/client_api.WalletsApi.html index 565fc51e..2db8ff17 100644 --- a/docs/classes/client_api.WalletsApi.html +++ b/docs/classes/client_api.WalletsApi.html @@ -1,6 +1,6 @@ WalletsApi | @coinbase/coinbase-sdk

WalletsApi - object-oriented interface

Export

WalletsApi

-

Hierarchy (view full)

Implements

Constructors

Hierarchy (view full)

Implements

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration

Methods

  • Create a new wallet scoped to the user.

    +

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration

Methods

  • Create a new wallet scoped to the user.

    Parameters

    • Optional createWalletRequest: CreateWalletRequest
    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<Wallet, any>>

    Summary

    Create a new wallet

    Throws

    Memberof

    WalletsApi

    -
  • Get wallet

    Parameters

    • walletId: string

      The ID of the wallet to fetch

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<Wallet, any>>

    Summary

    Get wallet by ID

    Throws

    Memberof

    WalletsApi

    -
  • Get the aggregated balance of an asset across all of the addresses in the wallet.

    Parameters

    • walletId: string

      The ID of the wallet to fetch the balance for

    • assetId: string

      The symbol of the asset to fetch the balance for

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<Balance, any>>

    Summary

    Get the balance of an asset in the wallet

    Throws

    Memberof

    WalletsApi

    -
  • List the balances of all of the addresses in the wallet aggregated by asset.

    Parameters

    • walletId: string

      The ID of the wallet to fetch the balances for

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<AddressBalanceList, any>>

    Summary

    List wallet balances

    Throws

    Memberof

    WalletsApi

    -
  • List wallets belonging to the user.

    Parameters

    • Optional limit: number

      A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

    • Optional page: string

      A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<AxiosResponse<WalletList, any>>

    Summary

    List wallets

    Throws

    Memberof

    WalletsApi

    -
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/client_api.WebhooksApi.html b/docs/classes/client_api.WebhooksApi.html new file mode 100644 index 00000000..f81d6870 --- /dev/null +++ b/docs/classes/client_api.WebhooksApi.html @@ -0,0 +1,31 @@ +WebhooksApi | @coinbase/coinbase-sdk

WebhooksApi - object-oriented interface

+

Export

WebhooksApi

+

Hierarchy (view full)

Implements

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration

Methods

  • Delete a webhook

    +

    Parameters

    • webhookId: string

      The Webhook uuid that needs to be deleted

      +
    • Optional options: RawAxiosRequestConfig

      Override http request option.

      +

    Returns Promise<AxiosResponse<void, any>>

    Summary

    Delete a webhook

    +

    Throws

    Memberof

    WebhooksApi

    +
  • List webhooks, optionally filtered by event type.

    +

    Parameters

    • Optional limit: number

      A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

      +
    • Optional page: string

      A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      +
    • Optional options: RawAxiosRequestConfig

      Override http request option.

      +

    Returns Promise<AxiosResponse<WebhookList, any>>

    Summary

    List webhooks

    +

    Throws

    Memberof

    WebhooksApi

    +
  • Update a webhook

    +

    Parameters

    • webhookId: string

      The Webhook id that needs to be updated

      +
    • Optional updateWebhookRequest: UpdateWebhookRequest
    • Optional options: RawAxiosRequestConfig

      Override http request option.

      +

    Returns Promise<AxiosResponse<Webhook, any>>

    Summary

    Update a webhook

    +

    Throws

    Memberof

    WebhooksApi

    +
\ No newline at end of file diff --git a/docs/classes/client_base.BaseAPI.html b/docs/classes/client_base.BaseAPI.html index 94e5dd9d..bdcde31f 100644 --- a/docs/classes/client_base.BaseAPI.html +++ b/docs/classes/client_base.BaseAPI.html @@ -1,6 +1,6 @@ BaseAPI | @coinbase/coinbase-sdk

Export

BaseAPI

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration
\ No newline at end of file +

Constructors

Properties

axios: AxiosInstance = globalAxios
basePath: string = BASE_PATH
configuration: undefined | Configuration
\ No newline at end of file diff --git a/docs/classes/client_base.RequiredError.html b/docs/classes/client_base.RequiredError.html index d5bb4099..3aa55466 100644 --- a/docs/classes/client_base.RequiredError.html +++ b/docs/classes/client_base.RequiredError.html @@ -1,5 +1,5 @@ RequiredError | @coinbase/coinbase-sdk

Export

RequiredError

-

Hierarchy

  • Error
    • RequiredError

Constructors

Hierarchy

  • Error
    • RequiredError

Constructors

Properties

Methods

Constructors

Properties

field: string
message: string
name: string
stack?: string
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Constructors

Properties

field: string
message: string
name: string
stack?: string
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

\ No newline at end of file diff --git a/docs/classes/client_configuration.Configuration.html b/docs/classes/client_configuration.Configuration.html index abd244c3..5e3ddf33 100644 --- a/docs/classes/client_configuration.Configuration.html +++ b/docs/classes/client_configuration.Configuration.html @@ -1,4 +1,4 @@ -Configuration | @coinbase/coinbase-sdk

Constructors

constructor +Configuration | @coinbase/coinbase-sdk

Constructors

Properties

Methods

Constructors

Properties

accessToken?: string | Promise<string> | ((name?, scopes?) => string) | ((name?, scopes?) => Promise<string>)

parameter for oauth2 security

+

Constructors

Properties

accessToken?: string | Promise<string> | ((name?, scopes?) => string) | ((name?, scopes?) => Promise<string>)

parameter for oauth2 security

Type declaration

    • (name?, scopes?): string
    • Parameters

      • Optional name: string
      • Optional scopes: string[]

      Returns string

Type declaration

    • (name?, scopes?): Promise<string>
    • Parameters

      • Optional name: string
      • Optional scopes: string[]

      Returns Promise<string>

Param: name

security name

Param: scopes

oauth2 scope

Memberof

Configuration

-
apiKey?: string | Promise<string> | ((name) => string) | ((name) => Promise<string>)

parameter for apiKey security

+
apiKey?: string | Promise<string> | ((name) => string) | ((name) => Promise<string>)

parameter for apiKey security

Type declaration

    • (name): string
    • Parameters

      • name: string

      Returns string

Type declaration

    • (name): Promise<string>
    • Parameters

      • name: string

      Returns Promise<string>

Param: name

security name

Memberof

Configuration

-
baseOptions?: any

base options for axios calls

+
baseOptions?: any

base options for axios calls

Memberof

Configuration

-
basePath?: string

override base path

+
basePath?: string

override base path

Memberof

Configuration

-
formDataCtor?: (new () => any)

The FormData constructor that will be used to create multipart form data +

formDataCtor?: (new () => any)

The FormData constructor that will be used to create multipart form data requests. You can inject this here so that execution environments that do not support the FormData class can still run the generated client.

-

Type declaration

    • new (): any
    • Returns any

password?: string

parameter for basic security

+

Type declaration

    • new (): any
    • Returns any

password?: string

parameter for basic security

Memberof

Configuration

-
serverIndex?: number

override server index

+
serverIndex?: number

override server index

Memberof

Configuration

-
username?: string

parameter for basic security

+
username?: string

parameter for basic security

Memberof

Configuration

-

Methods

Methods

  • Check if the given MIME is a JSON MIME. JSON MIME examples: application/json application/json; charset=UTF8 @@ -36,4 +36,4 @@

    Memberof

    Configuration

    application/vnd.company+json

    Parameters

    • mime: string

      MIME (Multipurpose Internet Mail Extensions)

    Returns boolean

    True if the given MIME is JSON, false otherwise.

    -
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_address.Address.html b/docs/classes/coinbase_address.Address.html index 96f346aa..61126b24 100644 --- a/docs/classes/coinbase_address.Address.html +++ b/docs/classes/coinbase_address.Address.html @@ -1,30 +1,86 @@ Address | @coinbase/coinbase-sdk

A representation of a blockchain address, which is a user-controlled account on a network.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

  • Initializes a new Address instance.

    Parameters

    • networkId: string

      The network id.

    • id: string

      The onchain address id.

      -

    Returns Address

Properties

id: string
networkId: string

Methods

Returns Address

Properties

id: string
networkId: string

Methods

  • Get the claimable balance for the supplied asset.

    +

    Parameters

    • asset_id: string

      The asset to check claimable balance for.

      +
    • mode: StakeOptionsMode = StakeOptionsMode.DEFAULT

      The staking mode. Defaults to DEFAULT.

      +
    • options: {
          [key: string]: string;
      } = {}

      Additional options for getting the claimable balance.

      +
      • [key: string]: string

    Returns Promise<Decimal>

    The claimable balance.

    +
  • Private

    Create a shallow copy of given options.

    +

    Parameters

    • Optional options: {
          [key: string]: string;
      }

      The supplied options to be copied

      +
      • [key: string]: string

    Returns {
        [key: string]: string;
    }

    A copy of the options.

    +
    • [key: string]: string
  • Returns the balance of the provided asset.

    Parameters

    • assetId: string

      The asset ID.

    Returns Promise<Decimal>

    The balance of the asset.

    -
  • Private

    Get the different staking balance types for the supplied asset.

    +

    Parameters

    • assetId: string

      The asset to lookup balances for.

      +
    • Optional mode: StakeOptionsMode

      The staking mode. Defaults to DEFAULT.

      +
    • Optional options: {
          [key: string]: string;
      }

      Additional options for the balance lookup.

      +
      • [key: string]: string

    Returns Promise<{
        [key: string]: Decimal;
    }>

    The different balance types.

    +
  • Get the stakeable balance for the supplied asset.

    +

    Parameters

    • asset_id: string

      The asset to check the stakeable balance for.

      +
    • mode: StakeOptionsMode = StakeOptionsMode.DEFAULT

      The staking mode. Defaults to DEFAULT.

      +
    • options: {
          [key: string]: string;
      } = {}

      Additional options for getting the stakeable balance.

      +
      • [key: string]: string

    Returns Promise<Decimal>

    The stakeable balance.

    +
  • Lists the staking rewards for the address.

    +

    Parameters

    • assetId: string

      The asset ID.

      +
    • startTime: string = ...

      The start time.

      +
    • endTime: string = ...

      The end time.

      +
    • format: StakingRewardFormat = StakingRewardFormat.Usd

      The format to return the rewards in. (usd, native). Defaults to usd.

      +

    Returns Promise<StakingReward[]>

    The staking rewards.

    +
  • Returns a string representation of the address.

    Returns string

    A string representing the address.

    -
\ No newline at end of file +
  • Get the unstakeable balance for the supplied asset.

    +

    Parameters

    • asset_id: string

      The asset to check the unstakeable balance for.

      +
    • mode: StakeOptionsMode = StakeOptionsMode.DEFAULT

      The staking mode. Defaults to DEFAULT.

      +
    • options: {
          [key: string]: string;
      } = {}

      Additional options for getting the unstakeable balance.

      +
      • [key: string]: string

    Returns Promise<Decimal>

    The unstakeable balance.

    +
  • Private

    Validate if the operation is able to claim stake with the supplied input.

    +

    Parameters

    • amount: Amount

      The amount of the asset to claim stake.

      +
    • assetId: string

      The asset to claim stake.

      +
    • mode: StakeOptionsMode

      The staking mode. Defaults to DEFAULT.

      +
    • options: {
          [key: string]: string;
      }

      Additional options for the claim stake operation.

      +
      • [key: string]: string

    Returns Promise<void>

    Throws

    If the supplied input is not able to create a claim stake operation.

    +
  • Private

    Validate if the operation is able to stake with the supplied input.

    +

    Parameters

    • amount: Amount

      The amount of the asset to stake.

      +
    • assetId: string

      The asset to stake.

      +
    • mode: StakeOptionsMode

      The staking mode. Defaults to DEFAULT.

      +
    • options: {
          [key: string]: string;
      }

      Additional options for the stake operation.

      +
      • [key: string]: string

    Returns Promise<void>

    Throws

    If the supplied input is not able to create a stake operation.

    +
  • Private

    Validate if the operation is able to unstake with the supplied input.

    +

    Parameters

    • amount: Amount

      The amount of the asset to unstake.

      +
    • assetId: string

      The asset to unstake.

      +
    • mode: StakeOptionsMode

      The staking mode. Defaults to DEFAULT.

      +
    • options: {
          [key: string]: string;
      }

      Additional options for the unstake operation.

      +
      • [key: string]: string

    Returns Promise<void>

    Throws

    If the supplied input is not able to create an unstake operation.

    +
\ No newline at end of file diff --git a/docs/classes/coinbase_address_external_address.ExternalAddress.html b/docs/classes/coinbase_address_external_address.ExternalAddress.html index f7d600f8..16ef7d68 100644 --- a/docs/classes/coinbase_address_external_address.ExternalAddress.html +++ b/docs/classes/coinbase_address_external_address.ExternalAddress.html @@ -1,45 +1,44 @@ ExternalAddress | @coinbase/coinbase-sdk

A representation of a blockchain Address, which is a user-controlled account on a Network. Addresses are used to send and receive Assets. An ExternalAddress is an Address that is not controlled by the developer, but is instead controlled by the user.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

id: string
networkId: string

Methods

  • Builds a claim stake operation for the supplied asset.

    +

Returns ExternalAddress

Properties

id: string
networkId: string

Methods

  • Builds a claim stake operation for the supplied asset.

    Parameters

    • amount: Amount

      The amount of the asset to claim stake.

    • assetId: string

      The asset to claim stake.

    • mode: StakeOptionsMode = StakeOptionsMode.DEFAULT

      The staking mode. Defaults to DEFAULT.

    • options: {
          [key: string]: string;
      } = {}

      Additional options for the claim stake operation.

      • [key: string]: string

    Returns Promise<StakingOperation>

    The claim stake operation.

    -
  • Builds a stake operation for the supplied asset. The stake operation may take a few minutes to complete in the case when infrastructure is spun up.

    Parameters

    • amount: Amount

      The amount of the asset to stake.

    • assetId: string

      The asset to stake.

    • mode: StakeOptionsMode = StakeOptionsMode.DEFAULT

      The staking mode. Defaults to DEFAULT.

    • options: {
          [key: string]: string;
      } = {}

      Additional options for the stake operation.

      • [key: string]: string

    Returns Promise<StakingOperation>

    The stake operation.

    -
  • Private

    Builds the staking operation based on the supplied input.

    Parameters

    • amount: Amount

      The amount for the staking operation.

    • assetId: string

      The asset for the staking operation.

    • action: string

      The specific action for the staking operation. e.g. stake, unstake, claim_stake

      @@ -47,73 +46,68 @@
    • options: {
          [key: string]: string;
      }

      Additional options to build a stake operation.

      • [key: string]: string

    Returns Promise<StakingOperation>

    The staking operation.

    Throws

    If the supplied input cannot build a valid staking operation.

    -
  • Builds an unstake operation for the supplied asset.

    Parameters

    • amount: Amount

      The amount of the asset to unstake.

    • assetId: string

      The asset to unstake.

    • mode: StakeOptionsMode = StakeOptionsMode.DEFAULT

      The staking mode. Defaults to DEFAULT.

    • options: {
          [key: string]: string;
      } = {}

      Additional options for the unstake operation.

      • [key: string]: string

    Returns Promise<StakingOperation>

    The unstake operation.

    -
  • Get the claimable balance for the supplied asset.

    Parameters

    • asset_id: string

      The asset to check claimable balance for.

    • mode: StakeOptionsMode = StakeOptionsMode.DEFAULT

      The staking mode. Defaults to DEFAULT.

    • options: {
          [key: string]: string;
      } = {}

      Additional options for getting the claimable balance.

      • [key: string]: string

    Returns Promise<Decimal>

    The claimable balance.

    -
  • Private

    Create a shallow copy of given options.

    Parameters

    • Optional options: {
          [key: string]: string;
      }

      The supplied options to be copied

      • [key: string]: string

    Returns {
        [key: string]: string;
    }

    A copy of the options.

    -
    • [key: string]: string
  • Returns the balance of the provided asset.

    Parameters

    • assetId: string

      The asset ID.

    Returns Promise<Decimal>

    The balance of the asset.

    -
  • Private

    Get the different staking balance types for the supplied asset.

    -

    Parameters

    • assetId: string

      The asset to lookup balances for.

      -
    • Optional mode: StakeOptionsMode

      The staking mode. Defaults to DEFAULT.

      -
    • Optional options: {
          [key: string]: string;
      }

      Additional options for the balance lookup.

      -
      • [key: string]: string

    Returns Promise<{
        [key: string]: Decimal;
    }>

    The different balance types.

    -
  • Get the stakeable balance for the supplied asset.

    Parameters

    • asset_id: string

      The asset to check the stakeable balance for.

    • mode: StakeOptionsMode = StakeOptionsMode.DEFAULT

      The staking mode. Defaults to DEFAULT.

    • options: {
          [key: string]: string;
      } = {}

      Additional options for getting the stakeable balance.

      • [key: string]: string

    Returns Promise<Decimal>

    The stakeable balance.

    -
  • Lists the staking rewards for the address.

    Parameters

    • assetId: string

      The asset ID.

      -
    • startTime: string

      The start time.

      -
    • endTime: string

      The end time.

      +
    • startTime: string = ...

      The start time.

      +
    • endTime: string = ...

      The end time.

    • format: StakingRewardFormat = StakingRewardFormat.Usd

      The format to return the rewards in. (usd, native). Defaults to usd.

    Returns Promise<StakingReward[]>

    The staking rewards.

    -
  • Get the unstakeable balance for the supplied asset.

    Parameters

    • asset_id: string

      The asset to check the unstakeable balance for.

    • mode: StakeOptionsMode = StakeOptionsMode.DEFAULT

      The staking mode. Defaults to DEFAULT.

    • options: {
          [key: string]: string;
      } = {}

      Additional options for getting the unstakeable balance.

      • [key: string]: string

    Returns Promise<Decimal>

    The unstakeable balance.

    -
  • Private

    Validate if the operation is able to claim stake with the supplied input.

    Parameters

    • amount: Amount

      The amount of the asset to claim stake.

    • assetId: string

      The asset to claim stake.

    • mode: StakeOptionsMode

      The staking mode. Defaults to DEFAULT.

    • options: {
          [key: string]: string;
      }

      Additional options for the claim stake operation.

      • [key: string]: string

    Returns Promise<void>

    Throws

    If the supplied input is not able to create a claim stake operation.

    -
  • Private

    Validate if the operation is able to stake with the supplied input.

    Parameters

    • amount: Amount

      The amount of the asset to stake.

    • assetId: string

      The asset to stake.

    • mode: StakeOptionsMode

      The staking mode. Defaults to DEFAULT.

    • options: {
          [key: string]: string;
      }

      Additional options for the stake operation.

      • [key: string]: string

    Returns Promise<void>

    Throws

    If the supplied input is not able to create a stake operation.

    -
  • Private

    Validate if the operation is able to unstake with the supplied input.

    Parameters

    • amount: Amount

      The amount of the asset to unstake.

    • assetId: string

      The asset to unstake.

    • mode: StakeOptionsMode

      The staking mode. Defaults to DEFAULT.

    • options: {
          [key: string]: string;
      }

      Additional options for the unstake operation.

      • [key: string]: string

    Returns Promise<void>

    Throws

    If the supplied input is not able to create an unstake operation.

    -
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_address_wallet_address.WalletAddress.html b/docs/classes/coinbase_address_wallet_address.WalletAddress.html index f0544c31..85b04871 100644 --- a/docs/classes/coinbase_address_wallet_address.WalletAddress.html +++ b/docs/classes/coinbase_address_wallet_address.WalletAddress.html @@ -1,14 +1,22 @@ WalletAddress | @coinbase/coinbase-sdk

A representation of a blockchain address, which is a wallet-controlled account on a network.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

id: string
key?: Wallet
model: Address
networkId: string

Methods

Properties

id: string
key?: Wallet
model: Address
networkId: string

Methods

  • Private

    A helper function that broadcasts the signed payload.

    +

    Parameters

    • stakingOperation: StakingOperation

      The staking operation related to the signed payload.

      +
    • signedPayload: string

      The payload that's being broadcasted.

      +
    • transactionIndex: number

      The index of the transaction in the array from the staking operation.

      +

    Returns Promise<StakingOperation>

    An updated staking operation with the broadcasted transaction.

    +
  • Broadcasts a trade using the provided signed payloads.

    Parameters

    • trade: Trade

      The Trade object representing the trade.

    • signedPayload: string

      The signed payload of the trade.

    • Optional approveTransactionPayload: string

      The signed payload of the approval transaction, if any.

    Returns Promise<Trade>

    A promise that resolves to a Trade object representing the broadcasted trade.

    -
  • Returns whether the Address has a private key backing it to sign transactions.

    Returns boolean

    Whether the Address has a private key backing it to sign transactions.

    -
  • Get the claimable balance for the supplied asset.

    +

    Parameters

    • asset_id: string

      The asset to check claimable balance for.

      +
    • mode: StakeOptionsMode = StakeOptionsMode.DEFAULT

      The staking mode. Defaults to DEFAULT.

      +
    • options: {
          [key: string]: string;
      } = {}

      Additional options for getting the claimable balance.

      +
      • [key: string]: string

    Returns Promise<Decimal>

    The claimable balance.

    +
  • Private

    Create a shallow copy of given options.

    +

    Parameters

    • Optional options: {
          [key: string]: string;
      }

      The supplied options to be copied

      +
      • [key: string]: string

    Returns {
        [key: string]: string;
    }

    A copy of the options.

    +
    • [key: string]: string
  • Creates a staking operation to claim stake.

    +

    Parameters

    • amount: Amount

      The amount to claim stake.

      +
    • assetId: string

      The asset to claim stake.

      +
    • mode: StakeOptionsMode = StakeOptionsMode.DEFAULT

      The staking mode. Defaults to DEFAULT.

      +
    • options: {
          [key: string]: string;
      } = {}

      Additional options such as setting the mode for the staking action.

      +
      • [key: string]: string
    • timeoutSeconds: number = 60

      The amount to wait for the transaction to complete when broadcasted.

      +
    • intervalSeconds: number = 0.2

      The amount to check each time for a successful broadcast.

      +

    Returns Promise<StakingOperation>

    The staking operation after it's completed successfully.

    +
  • Creates a staking operation to stake.

    +

    Parameters

    • amount: Amount

      The amount to stake.

      +
    • assetId: string

      The asset to stake.

      +
    • mode: StakeOptionsMode = StakeOptionsMode.DEFAULT

      The staking mode. Defaults to DEFAULT.

      +
    • options: {
          [key: string]: string;
      } = {}

      Additional options such as setting the mode for the staking action.

      +
      • [key: string]: string
    • timeoutSeconds: number = 60

      The amount to wait for the transaction to complete when broadcasted.

      +
    • intervalSeconds: number = 0.2

      The amount to check each time for a successful broadcast.

      +

    Returns Promise<StakingOperation>

    The staking operation after it's completed successfully.

    +
  • Creates a staking operation to stake, signs it, and broadcasts it on the blockchain.

    +

    Parameters

    • amount: Amount

      The amount for the staking operation.

      +
    • assetId: string

      The asset to the staking operation.

      +
    • action: string

      The type of staking action to perform.

      +
    • mode: StakeOptionsMode

      The staking mode. Defaults to DEFAULT.

      +
    • options: {
          [key: string]: string;
      }

      Additional options such as setting the mode for the staking action.

      +
      • [key: string]: string
    • timeoutSeconds: number

      The amount to wait for the transaction to complete when broadcasted.

      +
    • intervalSeconds: number

      The amount to check each time for a successful broadcast.

      +

    Returns Promise<StakingOperation>

    The staking operation after it's completed fully.

    +
  • Private

    A helper function that creates the staking operation.

    +

    Parameters

    • amount: Amount

      The amount for the staking operation.

      +
    • assetId: string

      The asset for the staking operation.

      +
    • action: string

      The type of staking action to perform.

      +
    • mode: StakeOptionsMode = StakeOptionsMode.DEFAULT

      The staking mode. Defaults to DEFAULT.

      +
    • options: {
          [key: string]: string;
      } = {}

      Additional options such as setting the mode for the staking action.

      +
      • [key: string]: string

    Returns Promise<StakingOperation>

    The created staking operation.

    +

    Throws

    if the amount is less than zero.

    +
  • Trades the given amount of the given Asset for another Asset. Only same-network Trades are supported.

    Parameters

    Returns Promise<Trade>

    The Trade object.

    Throws

    if the API request to create or broadcast a Trade fails.

    Throws

    if the Trade times out.

    -
  • Creates a trade model for the specified amount and assets.

    Parameters

    • amount: Amount

      The amount of the Asset to send.

    • fromAsset: Asset

      The Asset to trade from.

    • toAsset: Asset

      The Asset to trade to.

    Returns Promise<Trade>

    A promise that resolves to a Trade object representing the new trade.

    -
  • Transfers the given amount of the given Asset to the given address. Only same-Network Transfers are supported.

    Parameters

    Returns Promise<Transfer>

    The transfer object.

    Throws

    if the API request to create a Transfer fails.

    Throws

    if the API request to broadcast a Transfer fails.

    Throws

    if the Transfer times out.

    -
  • Creates a staking operation to unstake.

    +

    Parameters

    • amount: Amount

      The amount to unstake.

      +
    • assetId: string

      The asset to unstake.

      +
    • mode: StakeOptionsMode = StakeOptionsMode.DEFAULT

      The staking mode. Defaults to DEFAULT.

      +
    • options: {
          [key: string]: string;
      } = {}

      Additional options such as setting the mode for the staking action.

      +
      • [key: string]: string
    • timeoutSeconds: number = 60

      The amount to wait for the transaction to complete when broadcasted.

      +
    • intervalSeconds: number = 0.2

      The amount to check each time for a successful broadcast.

      +

    Returns Promise<StakingOperation>

    The staking operation after it's completed successfully.

    +
  • Returns the balance of the provided asset.

    Parameters

    • assetId: string

      The asset ID.

    Returns Promise<Decimal>

    The balance of the asset.

    -
  • Returns the address and network ID of the given destination.

    Parameters

    • destination: Destination

      The destination to get the address and network ID of.

    Returns [string, string]

    The address and network ID of the destination.

    -
  • Sets the private key.

    Parameters

    • key: Wallet

      The ethers.js SigningKey the Address uses to sign data.

    Returns void

    Throws

    If the private key is already set.

    -
  • Get the stakeable balance for the supplied asset.

    +

    Parameters

    • asset_id: string

      The asset to check the stakeable balance for.

      +
    • mode: StakeOptionsMode = StakeOptionsMode.DEFAULT

      The staking mode. Defaults to DEFAULT.

      +
    • options: {
          [key: string]: string;
      } = {}

      Additional options for getting the stakeable balance.

      +
      • [key: string]: string

    Returns Promise<Decimal>

    The stakeable balance.

    +
  • Lists the staking rewards for the address.

    +

    Parameters

    • assetId: string

      The asset ID.

      +
    • startTime: string = ...

      The start time.

      +
    • endTime: string = ...

      The end time.

      +
    • format: StakingRewardFormat = StakingRewardFormat.Usd

      The format to return the rewards in. (usd, native). Defaults to usd.

      +

    Returns Promise<StakingReward[]>

    The staking rewards.

    +
  • Get the unstakeable balance for the supplied asset.

    +

    Parameters

    • asset_id: string

      The asset to check the unstakeable balance for.

      +
    • mode: StakeOptionsMode = StakeOptionsMode.DEFAULT

      The staking mode. Defaults to DEFAULT.

      +
    • options: {
          [key: string]: string;
      } = {}

      Additional options for getting the unstakeable balance.

      +
      • [key: string]: string

    Returns Promise<Decimal>

    The unstakeable balance.

    +
  • Private

    Validate if the operation is able to claim stake with the supplied input.

    +

    Parameters

    • amount: Amount

      The amount of the asset to claim stake.

      +
    • assetId: string

      The asset to claim stake.

      +
    • mode: StakeOptionsMode

      The staking mode. Defaults to DEFAULT.

      +
    • options: {
          [key: string]: string;
      }

      Additional options for the claim stake operation.

      +
      • [key: string]: string

    Returns Promise<void>

    Throws

    If the supplied input is not able to create a claim stake operation.

    +
  • Private

    Validate if the operation is able to stake with the supplied input.

    +

    Parameters

    • amount: Amount

      The amount of the asset to stake.

      +
    • assetId: string

      The asset to stake.

      +
    • mode: StakeOptionsMode

      The staking mode. Defaults to DEFAULT.

      +
    • options: {
          [key: string]: string;
      }

      Additional options for the stake operation.

      +
      • [key: string]: string

    Returns Promise<void>

    Throws

    If the supplied input is not able to create a stake operation.

    +
  • Checks if trading is possible and raises an error if not.

    Parameters

    • amount: Amount

      The amount of the Asset to send.

    • fromAssetId: string

      The ID of the Asset to trade from. For Ether, eth, gwei, and wei are supported.

    Returns Promise<void>

    Throws

    If the private key is not loaded, or if the asset IDs are unsupported, or if there are insufficient funds.

    -
\ No newline at end of file +
  • Private

    Validate if the operation is able to unstake with the supplied input.

    +

    Parameters

    • amount: Amount

      The amount of the asset to unstake.

      +
    • assetId: string

      The asset to unstake.

      +
    • mode: StakeOptionsMode

      The staking mode. Defaults to DEFAULT.

      +
    • options: {
          [key: string]: string;
      }

      Additional options for the unstake operation.

      +
      • [key: string]: string

    Returns Promise<void>

    Throws

    If the supplied input is not able to create an unstake operation.

    +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.APIError.html b/docs/classes/coinbase_api_error.APIError.html index 5724ee49..28e35eaf 100644 --- a/docs/classes/coinbase_api_error.APIError.html +++ b/docs/classes/coinbase_api_error.APIError.html @@ -1,5 +1,5 @@ APIError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns APIError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Returns a String representation of the APIError.

    Returns string

    a String representation of the APIError

    -
  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.AlreadyExistsError.html b/docs/classes/coinbase_api_error.AlreadyExistsError.html index 21c92a95..179e5daf 100644 --- a/docs/classes/coinbase_api_error.AlreadyExistsError.html +++ b/docs/classes/coinbase_api_error.AlreadyExistsError.html @@ -1,5 +1,5 @@ AlreadyExistsError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns AlreadyExistsError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.FaucetLimitReachedError.html b/docs/classes/coinbase_api_error.FaucetLimitReachedError.html index 80c8e88a..ea437890 100644 --- a/docs/classes/coinbase_api_error.FaucetLimitReachedError.html +++ b/docs/classes/coinbase_api_error.FaucetLimitReachedError.html @@ -1,5 +1,5 @@ FaucetLimitReachedError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns FaucetLimitReachedError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.InvalidAddressError.html b/docs/classes/coinbase_api_error.InvalidAddressError.html index 50cdd8f1..ff404ef6 100644 --- a/docs/classes/coinbase_api_error.InvalidAddressError.html +++ b/docs/classes/coinbase_api_error.InvalidAddressError.html @@ -1,5 +1,5 @@ InvalidAddressError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns InvalidAddressError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.InvalidAddressIDError.html b/docs/classes/coinbase_api_error.InvalidAddressIDError.html index ec19a4a7..e02e1c4c 100644 --- a/docs/classes/coinbase_api_error.InvalidAddressIDError.html +++ b/docs/classes/coinbase_api_error.InvalidAddressIDError.html @@ -1,5 +1,5 @@ InvalidAddressIDError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns InvalidAddressIDError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.InvalidAmountError.html b/docs/classes/coinbase_api_error.InvalidAmountError.html index e0d4719c..a21e11fc 100644 --- a/docs/classes/coinbase_api_error.InvalidAmountError.html +++ b/docs/classes/coinbase_api_error.InvalidAmountError.html @@ -1,5 +1,5 @@ InvalidAmountError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns InvalidAmountError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.InvalidAssetIDError.html b/docs/classes/coinbase_api_error.InvalidAssetIDError.html index 77aca50e..0183c69b 100644 --- a/docs/classes/coinbase_api_error.InvalidAssetIDError.html +++ b/docs/classes/coinbase_api_error.InvalidAssetIDError.html @@ -1,5 +1,5 @@ InvalidAssetIDError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns InvalidAssetIDError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.InvalidDestinationError.html b/docs/classes/coinbase_api_error.InvalidDestinationError.html index b8e66d88..867e9e8b 100644 --- a/docs/classes/coinbase_api_error.InvalidDestinationError.html +++ b/docs/classes/coinbase_api_error.InvalidDestinationError.html @@ -1,5 +1,5 @@ InvalidDestinationError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns InvalidDestinationError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.InvalidLimitError.html b/docs/classes/coinbase_api_error.InvalidLimitError.html index 5f058ca8..9b43d08f 100644 --- a/docs/classes/coinbase_api_error.InvalidLimitError.html +++ b/docs/classes/coinbase_api_error.InvalidLimitError.html @@ -1,5 +1,5 @@ InvalidLimitError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns InvalidLimitError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.InvalidNetworkIDError.html b/docs/classes/coinbase_api_error.InvalidNetworkIDError.html index 2de878b8..9bb82918 100644 --- a/docs/classes/coinbase_api_error.InvalidNetworkIDError.html +++ b/docs/classes/coinbase_api_error.InvalidNetworkIDError.html @@ -1,5 +1,5 @@ InvalidNetworkIDError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns InvalidNetworkIDError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.InvalidPageError.html b/docs/classes/coinbase_api_error.InvalidPageError.html index 1c6bc39e..47affa1e 100644 --- a/docs/classes/coinbase_api_error.InvalidPageError.html +++ b/docs/classes/coinbase_api_error.InvalidPageError.html @@ -1,5 +1,5 @@ InvalidPageError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns InvalidPageError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.InvalidSignedPayloadError.html b/docs/classes/coinbase_api_error.InvalidSignedPayloadError.html index 7cb56a6b..e71ef26d 100644 --- a/docs/classes/coinbase_api_error.InvalidSignedPayloadError.html +++ b/docs/classes/coinbase_api_error.InvalidSignedPayloadError.html @@ -1,5 +1,5 @@ InvalidSignedPayloadError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns InvalidSignedPayloadError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.InvalidTransferIDError.html b/docs/classes/coinbase_api_error.InvalidTransferIDError.html index 9cd0109b..06b27977 100644 --- a/docs/classes/coinbase_api_error.InvalidTransferIDError.html +++ b/docs/classes/coinbase_api_error.InvalidTransferIDError.html @@ -1,5 +1,5 @@ InvalidTransferIDError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns InvalidTransferIDError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.InvalidTransferStatusError.html b/docs/classes/coinbase_api_error.InvalidTransferStatusError.html index b4980947..70997f29 100644 --- a/docs/classes/coinbase_api_error.InvalidTransferStatusError.html +++ b/docs/classes/coinbase_api_error.InvalidTransferStatusError.html @@ -1,5 +1,5 @@ InvalidTransferStatusError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns InvalidTransferStatusError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.InvalidWalletError.html b/docs/classes/coinbase_api_error.InvalidWalletError.html index 784adfc8..5f173674 100644 --- a/docs/classes/coinbase_api_error.InvalidWalletError.html +++ b/docs/classes/coinbase_api_error.InvalidWalletError.html @@ -1,5 +1,5 @@ InvalidWalletError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns InvalidWalletError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.InvalidWalletIDError.html b/docs/classes/coinbase_api_error.InvalidWalletIDError.html index 2509f710..d7ae010a 100644 --- a/docs/classes/coinbase_api_error.InvalidWalletIDError.html +++ b/docs/classes/coinbase_api_error.InvalidWalletIDError.html @@ -1,5 +1,5 @@ InvalidWalletIDError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns InvalidWalletIDError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.MalformedRequestError.html b/docs/classes/coinbase_api_error.MalformedRequestError.html index 4aa897d0..fc7c5c55 100644 --- a/docs/classes/coinbase_api_error.MalformedRequestError.html +++ b/docs/classes/coinbase_api_error.MalformedRequestError.html @@ -1,5 +1,5 @@ MalformedRequestError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns MalformedRequestError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.NetworkFeatureUnsupportedError.html b/docs/classes/coinbase_api_error.NetworkFeatureUnsupportedError.html index 7fd852d0..e2a4c936 100644 --- a/docs/classes/coinbase_api_error.NetworkFeatureUnsupportedError.html +++ b/docs/classes/coinbase_api_error.NetworkFeatureUnsupportedError.html @@ -1,5 +1,5 @@ NetworkFeatureUnsupportedError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns NetworkFeatureUnsupportedError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.NotFoundError.html b/docs/classes/coinbase_api_error.NotFoundError.html index 75e73c0d..7841f491 100644 --- a/docs/classes/coinbase_api_error.NotFoundError.html +++ b/docs/classes/coinbase_api_error.NotFoundError.html @@ -1,5 +1,5 @@ NotFoundError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns NotFoundError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.ResourceExhaustedError.html b/docs/classes/coinbase_api_error.ResourceExhaustedError.html index 7c0bcdd9..d85378fa 100644 --- a/docs/classes/coinbase_api_error.ResourceExhaustedError.html +++ b/docs/classes/coinbase_api_error.ResourceExhaustedError.html @@ -1,5 +1,5 @@ ResourceExhaustedError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns ResourceExhaustedError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.UnauthorizedError.html b/docs/classes/coinbase_api_error.UnauthorizedError.html index e9992221..009268b0 100644 --- a/docs/classes/coinbase_api_error.UnauthorizedError.html +++ b/docs/classes/coinbase_api_error.UnauthorizedError.html @@ -1,5 +1,5 @@ UnauthorizedError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns UnauthorizedError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.UnimplementedError.html b/docs/classes/coinbase_api_error.UnimplementedError.html index df5ccc52..3b5fe91e 100644 --- a/docs/classes/coinbase_api_error.UnimplementedError.html +++ b/docs/classes/coinbase_api_error.UnimplementedError.html @@ -1,5 +1,5 @@ UnimplementedError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns UnimplementedError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_api_error.UnsupportedAssetError.html b/docs/classes/coinbase_api_error.UnsupportedAssetError.html index 25f206c6..df687b47 100644 --- a/docs/classes/coinbase_api_error.UnsupportedAssetError.html +++ b/docs/classes/coinbase_api_error.UnsupportedAssetError.html @@ -1,5 +1,5 @@ UnsupportedAssetError | @coinbase/coinbase-sdk

A wrapper for API errors to provide more context.

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

apiCode apiMessage cause? @@ -34,12 +34,12 @@ fromError

Constructors

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Returns UnsupportedAssetError

Properties

apiCode: null | string
apiMessage: null | string
cause?: Error
code?: string
config?: InternalAxiosRequestConfig<any>
httpCode: null | number
isAxiosError: boolean
message: string
name: string
request?: any
response?: AxiosResponse<unknown, any>
stack?: string
status?: number
toJSON: (() => object)

Type declaration

    • (): object
    • Returns object

ECONNABORTED: "ECONNABORTED" = "ECONNABORTED"
ERR_BAD_OPTION: "ERR_BAD_OPTION" = "ERR_BAD_OPTION"
ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE" = "ERR_BAD_OPTION_VALUE"
ERR_BAD_REQUEST: "ERR_BAD_REQUEST" = "ERR_BAD_REQUEST"
ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE" = "ERR_BAD_RESPONSE"
ERR_CANCELED: "ERR_CANCELED" = "ERR_CANCELED"
ERR_DEPRECATED: "ERR_DEPRECATED" = "ERR_DEPRECATED"
ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS" = "ERR_FR_TOO_MANY_REDIRECTS"
ERR_INVALID_URL: "ERR_INVALID_URL" = "ERR_INVALID_URL"
ERR_NETWORK: "ERR_NETWORK" = "ERR_NETWORK"
ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT" = "ERR_NOT_SUPPORT"
ETIMEDOUT: "ETIMEDOUT" = "ETIMEDOUT"
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Type Parameters

    • T = unknown
    • D = any

    Parameters

    • error: unknown
    • Optional code: string
    • Optional config: InternalAxiosRequestConfig<D>
    • Optional request: any
    • Optional response: AxiosResponse<T, D>
    • Optional customProps: object

    Returns AxiosError<T, D>

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/classes/coinbase_asset.Asset.html b/docs/classes/coinbase_asset.Asset.html index 62c2e13d..d542e000 100644 --- a/docs/classes/coinbase_asset.Asset.html +++ b/docs/classes/coinbase_asset.Asset.html @@ -1,5 +1,5 @@ Asset | @coinbase/coinbase-sdk

A representation of an Asset.

-

Constructors

Constructors

Properties

assetId contractAddress decimals @@ -17,31 +17,31 @@
  • assetId: string

    The asset ID.

  • contractAddress: string

    The address ID.

  • decimals: number

    The number of decimals.

    -
  • Returns Asset

    Properties

    assetId: string
    contractAddress: string
    decimals: number
    networkId: string

    Methods

    • Converts the amount of the Asset from atomic to whole units.

      +

    Returns Asset

    Properties

    assetId: string
    contractAddress: string
    decimals: number
    networkId: string

    Methods

    • Converts the amount of the Asset from atomic to whole units.

      Parameters

      • wholeAmount: Decimal

        The atomic amount to convert to whole units.

      Returns Decimal

      The amount in atomic units

      -
    • Returns the primary denomination for the Asset.

      Returns string

      The primary denomination for the Asset.

      -
    • Converts the amount of the Asset from whole to atomic units.

      +
    • Converts the amount of the Asset from whole to atomic units.

      Parameters

      • wholeAmount: Decimal

        The whole amount to convert to atomic units.

      Returns Decimal

      The amount in atomic units

      -
    • Returns a string representation of the Asset.

      Returns string

      a string representation of the Asset

      -
    • Fetches the Asset with the provided Asset ID.

      Parameters

      • networkId: string

        The network ID.

      • assetId: string

        The asset ID.

      Returns Promise<Asset>

      The Asset Class.

      Throws

      If the Asset cannot be fetched.

      -
    • Creates an Asset from an Asset Model.

      Parameters

      • model: Asset

        The Asset Model.

      • Optional assetId: string

        The Asset ID.

      Returns Asset

      The Asset Class.

      Throws

      If the Asset Model is invalid.

      -
    • Returns the primary denomination for the provided Asset ID. +

    • Returns the primary denomination for the provided Asset ID. For gwei and wei the primary denomination is eth. For all other assets, the primary denomination is the same asset ID.

      Parameters

      • assetId: string

        The Asset ID.

      Returns string

      The primary denomination for the Asset ID.

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/classes/coinbase_authenticator.CoinbaseAuthenticator.html b/docs/classes/coinbase_authenticator.CoinbaseAuthenticator.html index 6aa1aee0..43ef7f5b 100644 --- a/docs/classes/coinbase_authenticator.CoinbaseAuthenticator.html +++ b/docs/classes/coinbase_authenticator.CoinbaseAuthenticator.html @@ -1,5 +1,5 @@ CoinbaseAuthenticator | @coinbase/coinbase-sdk

    A class that builds JWTs for authenticating with the Coinbase Platform APIs.

    -

    Constructors

    Constructors

    Properties

    Methods

    authenticateRequest @@ -9,20 +9,20 @@

    Constructors

    Properties

    apiKey: string
    privateKey: string

    Methods

    • Middleware to intercept requests and add JWT to Authorization header.

      +

    Returns CoinbaseAuthenticator

    Properties

    apiKey: string
    privateKey: string

    Methods

    • Middleware to intercept requests and add JWT to Authorization header.

      Parameters

      • config: InternalAxiosRequestConfig<any>

        The request configuration.

      • debugging: boolean = false

        Flag to enable debugging.

      Returns Promise<InternalAxiosRequestConfig<any>>

      The request configuration with the Authorization header added.

      Throws

      If JWT could not be built.

      -
    • Builds the JWT for the given API endpoint URL.

      Parameters

      • url: string

        URL of the API endpoint.

      • method: string = "GET"

        HTTP method of the request.

      Returns Promise<string>

      JWT token.

      Throws

      If the private key is not in the correct format.

      -
    • Extracts the PEM key from the given private key string.

      Parameters

      • privateKeyString: string

        The private key string.

      Returns string

      The PEM key.

      Throws

      If the private key string is not in the correct format.

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/classes/coinbase_balance.Balance.html b/docs/classes/coinbase_balance.Balance.html index 996e2757..0944a1c6 100644 --- a/docs/classes/coinbase_balance.Balance.html +++ b/docs/classes/coinbase_balance.Balance.html @@ -1,14 +1,14 @@ Balance | @coinbase/coinbase-sdk

    A representation of a balance.

    -

    Properties

    Properties

    amount: Decimal
    asset?: Asset
    assetId: string

    Methods

    • Converts a BalanceModel into a Balance object.

      +

    Properties

    amount: Decimal
    asset?: Asset
    assetId: string

    Methods

    • Converts a BalanceModel and asset ID into a Balance object.

      Parameters

      • model: Balance

        The balance model object.

      • assetId: string

        The asset ID.

      Returns Balance

      The Balance object.

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/classes/coinbase_balance_map.BalanceMap.html b/docs/classes/coinbase_balance_map.BalanceMap.html index 0a98b727..9f7de520 100644 --- a/docs/classes/coinbase_balance_map.BalanceMap.html +++ b/docs/classes/coinbase_balance_map.BalanceMap.html @@ -1,5 +1,5 @@ BalanceMap | @coinbase/coinbase-sdk

    A convenience class for storing and manipulating Asset balances in a human-readable format.

    -

    Hierarchy

    • Map<string, Decimal>
      • BalanceMap

    Constructors

    Hierarchy

    • Map<string, Decimal>
      • BalanceMap

    Constructors

    Properties

    [toStringTag] size [species] @@ -20,7 +20,7 @@
    [species]: MapConstructor

    Methods

    • Returns an iterable of entries in the map.

      Returns IterableIterator<[string, Decimal]>

    • Returns void

    • Parameters

      • key: string

      Returns boolean

      true if an element in the Map existed and has been removed, or false if the element does not exist.

      +

    Returns void

    • Returns void

    • Parameters

      • key: string

      Returns boolean

      true if an element in the Map existed and has been removed, or false if the element does not exist.

    • Returns an iterable of key, value pairs for every entry in the map.

      Returns IterableIterator<[string, Decimal]>

    • Executes a provided function once per each key/value pair in the Map, in insertion order.

      Parameters

      • callbackfn: ((value, key, map) => void)
          • (value, key, map): void
          • Parameters

            • value: Decimal
            • key: string
            • map: Map<string, Decimal>

            Returns void

      • Optional thisArg: any

      Returns void

    • Returns a specified element from the Map object. If the value that is associated to the provided key is an object, then you will get a reference to that object and any change made to that object will effectively modify it inside the Map.

      @@ -30,8 +30,8 @@

      Returns IterableIterator<string>

    • Adds a new element with a specified key and value to the Map. If an element with the same key already exists, the element will be updated.

      Parameters

      • key: string
      • value: Decimal

      Returns this

    • Returns a string representation of the balance map.

      Returns string

      The string representation of the balance map.

      -
    • Returns an iterable of values in the map

      Returns IterableIterator<Decimal>

    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/classes/coinbase_coinbase.Coinbase.html b/docs/classes/coinbase_coinbase.Coinbase.html index e4dabd05..f9827854 100644 --- a/docs/classes/coinbase_coinbase.Coinbase.html +++ b/docs/classes/coinbase_coinbase.Coinbase.html @@ -1,5 +1,5 @@ Coinbase | @coinbase/coinbase-sdk

    The Coinbase SDK.

    -

    Constructors

    Constructors

    Properties

    apiClients apiKeyPrivateKey assets @@ -13,23 +13,23 @@

    Parameters

    Returns Coinbase

    Throws

    If the configuration is invalid.

    Throws

    If not able to create JWT token.

    -

    Properties

    apiClients: ApiClients = {}
    apiKeyPrivateKey: string

    The CDP API key Private Key.

    -

    Constant

    assets: {
        Eth: string;
        Gwei: string;
        Usdc: string;
        Wei: string;
        Weth: string;
    } = ...

    The list of supported assets.

    -

    Type declaration

    • Eth: string
    • Gwei: string
    • Usdc: string
    • Wei: string
    • Weth: string

    Constant

    networks: {
        BaseMainnet: string;
        BaseSepolia: string;
        EthereumHolesky: string;
        EthereumMainnet: string;
    } = ...

    The list of supported networks.

    -

    Type declaration

    • BaseMainnet: string
    • BaseSepolia: string
    • EthereumHolesky: string
    • EthereumMainnet: string

    Constant

    useServerSigner: boolean

    Whether to use a server signer or not.

    -

    Constant

    Methods

    Properties

    apiClients: ApiClients = {}
    apiKeyPrivateKey: string

    The CDP API key Private Key.

    +

    Constant

    assets: {
        Eth: string;
        Gwei: string;
        Usdc: string;
        Wei: string;
        Weth: string;
    } = ...

    The list of supported assets.

    +

    Type declaration

    • Eth: string
    • Gwei: string
    • Usdc: string
    • Wei: string
    • Weth: string

    Constant

    networks: {
        BaseMainnet: string;
        BaseSepolia: string;
        EthereumHolesky: string;
        EthereumMainnet: string;
    } = ...

    The list of supported networks.

    +

    Type declaration

    • BaseMainnet: string
    • BaseSepolia: string
    • EthereumHolesky: string
    • EthereumMainnet: string

    Constant

    useServerSigner: boolean

    Whether to use a server signer or not.

    +

    Constant

    Methods

    • Returns User object for the default user.

      Returns Promise<User>

      The default user.

      Throws

      If the request fails.

      -
    • Reads the API key and private key from a JSON file and initializes the Coinbase SDK.

      Parameters

      Returns Coinbase

      A new instance of the Coinbase SDK.

      Throws

      If the file does not exist or the configuration values are missing/invalid.

      Throws

      If the configuration is invalid.

      Throws

      If not able to create JWT token.

      -
    • Converts a network symbol to a string, replacing underscores with hyphens.

      +
    • Converts a network symbol to a string, replacing underscores with hyphens.

      Parameters

      • network: string

        The network symbol to convert

      Returns string

      the converted string

      -
    • Converts a string to a symbol, replacing hyphens with underscores.

      Parameters

      • asset: string

        The string to convert

      Returns string

      the converted symbol

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/classes/coinbase_errors.ArgumentError.html b/docs/classes/coinbase_errors.ArgumentError.html index 1744e2ea..7d1120e7 100644 --- a/docs/classes/coinbase_errors.ArgumentError.html +++ b/docs/classes/coinbase_errors.ArgumentError.html @@ -1,5 +1,5 @@ ArgumentError | @coinbase/coinbase-sdk

    ArgumentError is thrown when an argument is invalid.

    -

    Hierarchy

    • Error
      • ArgumentError

    Constructors

    Hierarchy

    • Error
      • ArgumentError

    Constructors

    Properties

    message name stack? @@ -9,7 +9,7 @@

    Methods

    Constructors

    Properties

    message: string
    name: string
    stack?: string
    DEFAULT_MESSAGE: string = "Argument Error"
    prepareStackTrace?: ((err, stackTraces) => any)

    Optional override for formatting stack traces

    +

    Returns ArgumentError

    Properties

    message: string
    name: string
    stack?: string
    DEFAULT_MESSAGE: string = "Argument Error"
    prepareStackTrace?: ((err, stackTraces) => any)

    Optional override for formatting stack traces

    Type declaration

      • (err, stackTraces): any
      • Parameters

        • err: Error
        • stackTraces: CallSite[]

        Returns any

    stackTraceLimit: number

    Methods

    • Create .stack property on a target object

      Parameters

      • targetObject: object
      • Optional constructorOpt: Function

      Returns void

    \ No newline at end of file diff --git a/docs/classes/coinbase_errors.InternalError.html b/docs/classes/coinbase_errors.InternalError.html index 4e9fce6c..1b58ee87 100644 --- a/docs/classes/coinbase_errors.InternalError.html +++ b/docs/classes/coinbase_errors.InternalError.html @@ -1,5 +1,5 @@ InternalError | @coinbase/coinbase-sdk

    InternalError is thrown when there is an internal error in the SDK.

    -

    Hierarchy

    • Error
      • InternalError

    Constructors

    Hierarchy

    • Error
      • InternalError

    Constructors

    Properties

    message name stack? @@ -9,7 +9,7 @@

    Methods

    Constructors

    Properties

    message: string
    name: string
    stack?: string
    DEFAULT_MESSAGE: string = "Internal Error"
    prepareStackTrace?: ((err, stackTraces) => any)

    Optional override for formatting stack traces

    +

    Returns InternalError

    Properties

    message: string
    name: string
    stack?: string
    DEFAULT_MESSAGE: string = "Internal Error"
    prepareStackTrace?: ((err, stackTraces) => any)

    Optional override for formatting stack traces

    Type declaration

      • (err, stackTraces): any
      • Parameters

        • err: Error
        • stackTraces: CallSite[]

        Returns any

    stackTraceLimit: number

    Methods

    • Create .stack property on a target object

      Parameters

      • targetObject: object
      • Optional constructorOpt: Function

      Returns void

    \ No newline at end of file diff --git a/docs/classes/coinbase_errors.InvalidAPIKeyFormat.html b/docs/classes/coinbase_errors.InvalidAPIKeyFormat.html index 78987e38..6c0f1efb 100644 --- a/docs/classes/coinbase_errors.InvalidAPIKeyFormat.html +++ b/docs/classes/coinbase_errors.InvalidAPIKeyFormat.html @@ -1,5 +1,5 @@ InvalidAPIKeyFormat | @coinbase/coinbase-sdk

    InvalidaAPIKeyFormat error is thrown when the API key format is invalid.

    -

    Hierarchy

    • Error
      • InvalidAPIKeyFormat

    Constructors

    Hierarchy

    • Error
      • InvalidAPIKeyFormat

    Constructors

    Properties

    message name stack? @@ -9,7 +9,7 @@

    Methods

    Constructors

    Properties

    message: string
    name: string
    stack?: string
    DEFAULT_MESSAGE: string = "Invalid API key format"
    prepareStackTrace?: ((err, stackTraces) => any)

    Optional override for formatting stack traces

    +

    Returns InvalidAPIKeyFormat

    Properties

    message: string
    name: string
    stack?: string
    DEFAULT_MESSAGE: string = "Invalid API key format"
    prepareStackTrace?: ((err, stackTraces) => any)

    Optional override for formatting stack traces

    Type declaration

      • (err, stackTraces): any
      • Parameters

        • err: Error
        • stackTraces: CallSite[]

        Returns any

    stackTraceLimit: number

    Methods

    • Create .stack property on a target object

      Parameters

      • targetObject: object
      • Optional constructorOpt: Function

      Returns void

    \ No newline at end of file diff --git a/docs/classes/coinbase_errors.InvalidConfiguration.html b/docs/classes/coinbase_errors.InvalidConfiguration.html index 1d6df44b..fc944da6 100644 --- a/docs/classes/coinbase_errors.InvalidConfiguration.html +++ b/docs/classes/coinbase_errors.InvalidConfiguration.html @@ -1,5 +1,5 @@ InvalidConfiguration | @coinbase/coinbase-sdk

    InvalidConfiguration error is thrown when apikey/privateKey configuration is invalid.

    -

    Hierarchy

    • Error
      • InvalidConfiguration

    Constructors

    Hierarchy

    • Error
      • InvalidConfiguration

    Constructors

    Properties

    message name stack? @@ -9,7 +9,7 @@

    Methods

    Constructors

    Properties

    message: string
    name: string
    stack?: string
    DEFAULT_MESSAGE: string = "Invalid configuration"
    prepareStackTrace?: ((err, stackTraces) => any)

    Optional override for formatting stack traces

    +

    Returns InvalidConfiguration

    Properties

    message: string
    name: string
    stack?: string
    DEFAULT_MESSAGE: string = "Invalid configuration"
    prepareStackTrace?: ((err, stackTraces) => any)

    Optional override for formatting stack traces

    Type declaration

      • (err, stackTraces): any
      • Parameters

        • err: Error
        • stackTraces: CallSite[]

        Returns any

    stackTraceLimit: number

    Methods

    • Create .stack property on a target object

      Parameters

      • targetObject: object
      • Optional constructorOpt: Function

      Returns void

    \ No newline at end of file diff --git a/docs/classes/coinbase_errors.InvalidUnsignedPayload.html b/docs/classes/coinbase_errors.InvalidUnsignedPayload.html index 76f4cb4e..486772a4 100644 --- a/docs/classes/coinbase_errors.InvalidUnsignedPayload.html +++ b/docs/classes/coinbase_errors.InvalidUnsignedPayload.html @@ -1,5 +1,5 @@ InvalidUnsignedPayload | @coinbase/coinbase-sdk

    InvalidUnsignedPayload error is thrown when the unsigned payload is invalid.

    -

    Hierarchy

    • Error
      • InvalidUnsignedPayload

    Constructors

    Hierarchy

    • Error
      • InvalidUnsignedPayload

    Constructors

    Properties

    message name stack? @@ -9,7 +9,7 @@

    Methods

    Constructors

    Properties

    message: string
    name: string
    stack?: string
    DEFAULT_MESSAGE: string = "Invalid unsigned payload"
    prepareStackTrace?: ((err, stackTraces) => any)

    Optional override for formatting stack traces

    +

    Returns InvalidUnsignedPayload

    Properties

    message: string
    name: string
    stack?: string
    DEFAULT_MESSAGE: string = "Invalid unsigned payload"
    prepareStackTrace?: ((err, stackTraces) => any)

    Optional override for formatting stack traces

    Type declaration

      • (err, stackTraces): any
      • Parameters

        • err: Error
        • stackTraces: CallSite[]

        Returns any

    stackTraceLimit: number

    Methods

    • Create .stack property on a target object

      Parameters

      • targetObject: object
      • Optional constructorOpt: Function

      Returns void

    \ No newline at end of file diff --git a/docs/classes/coinbase_faucet_transaction.FaucetTransaction.html b/docs/classes/coinbase_faucet_transaction.FaucetTransaction.html index eb09f22f..0610d04c 100644 --- a/docs/classes/coinbase_faucet_transaction.FaucetTransaction.html +++ b/docs/classes/coinbase_faucet_transaction.FaucetTransaction.html @@ -1,5 +1,5 @@ FaucetTransaction | @coinbase/coinbase-sdk

    Represents a transaction from a faucet.

    -

    Constructors

    Constructors

    Properties

    Methods

    getTransactionHash getTransactionLink @@ -8,10 +8,10 @@ Do not use this method directly - instead, use Address.faucet().

    Parameters

    Returns FaucetTransaction

    Throws

    If the model does not exist.

    -

    Properties

    Methods

    Properties

    Methods

    • Returns the link to the transaction on the blockchain explorer.

      Returns string

      The link to the transaction on the blockchain explorer

      -
    • Returns a string representation of the FaucetTransaction.

      Returns string

      A string representation of the FaucetTransaction.

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/classes/coinbase_server_signer.ServerSigner.html b/docs/classes/coinbase_server_signer.ServerSigner.html index 7e4fc9ec..c14880f4 100644 --- a/docs/classes/coinbase_server_signer.ServerSigner.html +++ b/docs/classes/coinbase_server_signer.ServerSigner.html @@ -1,17 +1,17 @@ ServerSigner | @coinbase/coinbase-sdk

    A representation of a Server-Signer. Server-Signers are assigned to sign transactions for a Wallet.

    -

    Properties

    Properties

    Methods

    • Returns the ID of the Server-Signer.

      +

    Properties

    Methods

    • Returns the IDs of the Wallet's the Server-Signer can sign for.

      Returns undefined | string[]

      The Wallet IDs.

      -
    • Returns a String representation of the Server-Signer.

      Returns string

      a String representation of the Server-Signer.

      -
    • Returns the default Server-Signer for the CDP Project.

      Returns Promise<ServerSigner>

      The default Server-Signer.

      Throws

      if the API request to list Server-Signers fails.

      Throws

      if there is no Server-Signer associated with the CDP Project.

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/classes/coinbase_staking_operation.StakingOperation.html b/docs/classes/coinbase_staking_operation.StakingOperation.html index c679d233..df16f2b8 100644 --- a/docs/classes/coinbase_staking_operation.StakingOperation.html +++ b/docs/classes/coinbase_staking_operation.StakingOperation.html @@ -1,36 +1,48 @@ StakingOperation | @coinbase/coinbase-sdk

    A representation of a staking operation (stake, unstake, claim rewards, etc). It may have multiple steps with some being transactions to sign, and others to wait.

    -

    Constructors

    Constructors

    Properties

    transactions: Transaction[]

    Methods

    Returns StakingOperation

    Properties

    transactions: Transaction[]

    Methods

    • Get signed voluntary exit messages for native eth unstaking

      Returns string[]

      The signed voluntary exit messages for a native eth unstaking operation.

      -
    • Returns whether the Staking operation is in a terminal State.

      Returns boolean

      Whether the Staking operation is in a terminal State

      -
    • Reloads the StakingOperation model with the latest data from the server. +If the StakingOperation object was created by an ExternalAddress then it will +not have a wallet ID.

      +

      Returns Promise<void>

      Throws

      if the API request to get the StakingOperation fails.

      +

      Throws

      if this function is called on a StakingOperation without a wallet ID.

      +
    • Sign the transactions in the StakingOperation object.

      Parameters

      • key: Wallet

        The key used to sign the transactions.

        -

      Returns Promise<void>

    • Waits until the Staking Operation is completed or failed by polling its status at the given interval.

      +

    Returns Promise<void>

    • Waits until the Staking Operation is completed or failed by polling its status at the given interval.

      Parameters

      • options: {
            intervalSeconds: undefined | number;
            timeoutSeconds: undefined | number;
        } = {}

        The options to configure the wait function.

        • intervalSeconds: undefined | number

          The interval at which to poll, in seconds

        • timeoutSeconds: undefined | number

          The maximum amount of time to wait for the StakingOperation to complete, in seconds

      Returns Promise<StakingOperation>

      The completed StakingOperation object.

      Throws

      If the StakingOperation takes longer than the given timeout.

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/classes/coinbase_staking_reward.StakingReward.html b/docs/classes/coinbase_staking_reward.StakingReward.html index 21f33f73..122f2534 100644 --- a/docs/classes/coinbase_staking_reward.StakingReward.html +++ b/docs/classes/coinbase_staking_reward.StakingReward.html @@ -1,5 +1,5 @@ StakingReward | @coinbase/coinbase-sdk

    A representation of a staking reward earned on a network for a given asset.

    -

    Constructors

    Constructors

    Properties

    asset format model @@ -12,15 +12,15 @@

    Parameters

    • model: StakingReward

      The underlying staking reward object.

    • asset: Asset

      The asset for the staking reward.

    • format: StakingRewardFormat

      The format to return the rewards in. (usd, native). Defaults to usd.

      -

    Returns StakingReward

    Properties

    asset: Asset

    Methods

    • Returns the onchain address of the StakingReward.

      +

    Returns StakingReward

    Properties

    asset: Asset

    Methods

    • Returns a list of StakingRewards for the provided network, asset, and addresses.

      Parameters

      • networkId: string

        The network ID.

      • assetId: string

        The asset ID.

      • addressIds: string[]

        The address ID.

        @@ -28,4 +28,4 @@
      • endTime: string

        The end time.

      • format: StakingRewardFormat = StakingRewardFormat.Usd

        The format to return the rewards in. (usd, native). Defaults to usd.

      Returns Promise<StakingReward[]>

      The staking rewards.

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/classes/coinbase_trade.Trade.html b/docs/classes/coinbase_trade.Trade.html index bb2ee705..b434fdba 100644 --- a/docs/classes/coinbase_trade.Trade.html +++ b/docs/classes/coinbase_trade.Trade.html @@ -1,6 +1,6 @@ Trade | @coinbase/coinbase-sdk

    A representation of a Trade, which trades an amount of an Asset to another Asset on a Network. The fee is assumed to be paid in the native Asset of the Network.

    -

    Constructors

    Constructors

    Properties

    Returns Trade

    Throws

    • If the Trade model is empty.
    -

    Properties

    approveTransaction?: Transaction
    model: Trade
    transaction?: Transaction

    Methods

    Properties

    approveTransaction?: Transaction
    model: Trade
    transaction?: Transaction

    Methods

    • Returns the Address ID of the Trade.

      Returns string

      The Address ID.

      -
    • Returns the amount of the from asset for the Trade.

      Returns Decimal

      The amount of the from asset.

      -
    • Returns the From Asset ID of the Trade.

      Returns string

      The From Asset ID.

      -
    • Returns the Network ID of the Trade.

      Returns string

      The Network ID.

      -
    • Returns the amount of the to asset for the Trade.

      Returns Decimal

      The amount of the to asset.

      -
    • Returns the To Asset ID of the Trade.

      Returns string

      The To Asset ID.

      -
    • Returns the Wallet ID of the Trade.

      Returns string

      The Wallet ID.

      -
    • Reloads the Trade model with the latest version from the server side.

      Returns Promise<Trade>

      The most recent version of Trade from the server.

      -
    • Returns a String representation of the Trade.

      Returns string

      A String representation of the Trade.

      -
    • Waits until the Trade is completed or failed by polling the Network at the given interval. Raises a +

    • Waits until the Trade is completed or failed by polling the Network at the given interval. Raises a Error if the Trade takes longer than the given timeout.

      Parameters

      • options: {
            intervalSeconds: undefined | number;
            timeoutSeconds: undefined | number;
        } = {}

        The options to configure the wait function.

        • intervalSeconds: undefined | number

          The interval at which to poll the Network, in seconds

          @@ -57,4 +57,4 @@

      Returns Promise<Trade>

      The completed Trade object.

      Throws

      If the Trade takes longer than the given timeout.

      Throws

      If the request fails.

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/classes/coinbase_transaction.Transaction.html b/docs/classes/coinbase_transaction.Transaction.html index bbaedc09..a5442191 100644 --- a/docs/classes/coinbase_transaction.Transaction.html +++ b/docs/classes/coinbase_transaction.Transaction.html @@ -1,5 +1,5 @@ Transaction | @coinbase/coinbase-sdk

    A representation of an onchain Transaction.

    -

    Constructors

    Constructors

    Properties

    model raw? signed @@ -16,28 +16,28 @@ toString

    Constructors

    Properties

    raw?: Transaction
    signed: undefined | boolean

    Methods

    • Returns the From Address ID for the Transaction.

      +

    Returns Transaction

    Properties

    raw?: Transaction
    signed: undefined | boolean

    Methods

    • Returns the Signed Payload of the Transaction.

      Returns undefined | string

      The Signed Payload

      -
    • Returns the Transaction Hash of the Transaction.

      Returns undefined | string

      The Transaction Hash

      -
    • Returns the link to the Transaction on the blockchain explorer.

      Returns string

      The link to the Transaction on the blockchain explorer

      -
    • Returns the Unsigned Payload of the Transaction.

      Returns string

      The Unsigned Payload

      -
    • Returns whether the transaction has been signed.

      Returns undefined | boolean

      if the transaction has been signed.

      -
    • Returns whether the Transaction is in a terminal State.

      Returns boolean

      Whether the Transaction is in a terminal State

      -
    • Returns the underlying raw transaction.

      Returns Transaction

      The ethers.js Transaction object

      Throws

      If the Unsigned Payload is invalid.

      -
    • Signs the Transaction with the provided key and returns the hex signing payload.

      Parameters

      • key: Wallet

        The key to sign the transaction with

      Returns Promise<string>

      The hex-encoded signed payload

      -
    • Returns a string representation of the Transaction.

      Returns string

      A string representation of the Transaction.

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/classes/coinbase_transfer.Transfer.html b/docs/classes/coinbase_transfer.Transfer.html index 0364f399..7ccbefe5 100644 --- a/docs/classes/coinbase_transfer.Transfer.html +++ b/docs/classes/coinbase_transfer.Transfer.html @@ -1,7 +1,7 @@ Transfer | @coinbase/coinbase-sdk

    A representation of a Transfer, which moves an Amount of an Asset from a user-controlled Wallet to another Address. The fee is assumed to be paid in the native Asset of the Network.

    -

    Properties

    Properties

    model: Transfer
    transaction?: Transaction

    Methods

    • Returns the Amount of the Transfer.

      +

    Properties

    model: Transfer
    transaction?: Transaction

    Methods

    • Returns the Destination Address ID of the Transfer.

      Returns string

      The Destination Address ID.

      -
    • Returns the From Address ID of the Transfer.

      Returns string

      The From Address ID.

      -
    • Returns the Signed Payload of the Transfer.

      Returns undefined | string

      The Signed Payload as a Hex string, or undefined if not yet available.

      -
    • Returns the Transaction of the Transfer.

      Returns Transaction

      The ethers.js Transaction object.

      Throws

      (InvalidUnsignedPayload) If the Unsigned Payload is invalid.

      -
    • Returns the Transaction Hash of the Transfer.

      Returns undefined | string

      The Transaction Hash as a Hex string, or undefined if not yet available.

      -
    • Returns the link to the Transaction on the blockchain explorer.

      Returns string

      The link to the Transaction on the blockchain explorer.

      -
    • Returns the Unsigned Payload of the Transfer.

      Returns string

      The Unsigned Payload as a Hex string.

      -
    • Reloads the Transfer model with the latest data from the server.

      Returns Promise<void>

      Throws

      if the API request to get a Transfer fails.

      -
    • Sets the Signed Transaction of the Transfer.

      Parameters

      • transaction: Transaction

        The Signed Transaction.

        -

      Returns void

    • Returns a string representation of the Transfer.

      +

    Returns void

    • Returns a string representation of the Transfer.

      Returns string

      The string representation of the Transfer.

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/classes/coinbase_user.User.html b/docs/classes/coinbase_user.User.html index 46c3c082..c62f56f3 100644 --- a/docs/classes/coinbase_user.User.html +++ b/docs/classes/coinbase_user.User.html @@ -1,7 +1,7 @@ User | @coinbase/coinbase-sdk

    A representation of a User. Users have Wallets, which can hold balances of Assets. Access the default User through Coinbase.defaultUser().

    -

    Constructors

    Constructors

    Properties

    Methods

    createWallet getId @@ -11,7 +11,7 @@ toString

    Constructors

    Properties

    model: User

    Methods

    • Creates a new Wallet belonging to the User.

      +

    Returns User

    Properties

    model: User

    Methods

    • Creates a new Wallet belonging to the User.

      Parameters

      • createWalletOptions: CreateWalletOptionsType = {}

        The options for creating the Wallet.

      Returns Promise<Wallet>

      the new Wallet

      Throws

        @@ -23,21 +23,19 @@

        Throws

          Throws

          • If address derivation or caching fails.
          -
    • Returns the Wallet with the given ID.

      Parameters

      • wallet_id: string

        the ID of the Wallet

      Returns Promise<Wallet>

      the Wallet with the given ID

      -
    • Imports a Wallet belonging to a User.

      Parameters

      Returns Promise<Wallet>

      The imported Wallet.

      Throws

      If the Wallet ID is not provided.

      Throws

      If the seed is not provided.

      Throws

      If the request fails.

      -
    • Lists the Wallets belonging to the User.

      -

      Parameters

      • pageSize: number = 10

        The number of Wallets to return per page. Defaults to 10

        -
      • Optional nextPageToken: string

        The token for the next page of Wallets

        -

      Returns Promise<{
          nextPageToken: string;
          wallets: Wallet[];
      }>

      An object containing the Wallets and the token for the next page

      -
    • Returns a string representation of the User.

      Returns string

      The string representation of the User.

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/classes/coinbase_validator.Validator.html b/docs/classes/coinbase_validator.Validator.html index 43441918..5edec9af 100644 --- a/docs/classes/coinbase_validator.Validator.html +++ b/docs/classes/coinbase_validator.Validator.html @@ -1,5 +1,5 @@ Validator | @coinbase/coinbase-sdk

    A representation of a validator onchain.

    -

    Constructors

    Constructors

    Properties

    Methods

    getStatus getValidatorId @@ -11,20 +11,20 @@

    Returns Validator

    Throws

    • If the Validator model is empty.
    -

    Properties

    model: Validator

    Methods

    Properties

    model: Validator

    Methods

    • Returns the string representation of the Validator.

      Returns string

      The string representation of the Validator.

      -
    • Returns the details of a specific validator.

      Parameters

      • networkId: string

        The network ID.

      • assetId: string

        The asset ID.

      • id: string

        The unique publicly identifiable id of the validator for which to fetch the data.

      Returns Promise<Validator>

      The requested validator details.

      -
    • Returns the list of Validators.

      Parameters

      • networkId: string

        The network ID.

      • assetId: string

        The asset ID.

      • Optional status: string

        The status to filter by.

      Returns Promise<Validator[]>

      The list of Validators.

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/classes/coinbase_wallet.Wallet.html b/docs/classes/coinbase_wallet.Wallet.html index 43015dcd..3da7bd65 100644 --- a/docs/classes/coinbase_wallet.Wallet.html +++ b/docs/classes/coinbase_wallet.Wallet.html @@ -1,7 +1,7 @@ Wallet | @coinbase/coinbase-sdk

    A representation of a Wallet. Wallets come with a single default Address, but can expand to have a set of Addresses, each of which can hold a balance of one or more Assets. Wallets can create new Addresses, list their addresses, list their balances, and transfer Assets to other Addresses. Wallets should be created through User.createWallet or User.importWallet.

    -

    Properties

    Properties

    addressPathPrefix: "m/44'/60'/0'/0" = "m/44'/60'/0'/0"
    addresses: WalletAddress[] = []
    master?: HDKey
    model: Wallet
    seed?: string
    MAX_ADDRESSES: number = 20

    Methods

    • Returns a WalletAddress object for the given AddressModel.

      +

    Properties

    addressPathPrefix: "m/44'/60'/0'/0" = "m/44'/60'/0'/0"
    addresses: WalletAddress[] = []
    master?: HDKey
    model: Wallet
    seed?: string
    MAX_ADDRESSES: number = 20

    Methods

    • Returns a WalletAddress object for the given AddressModel.

      Parameters

      • addressModel: Address

        The AddressModel to build the WalletAddress from.

      • index: number

        The index of the AddressModel.

      Returns WalletAddress

      The WalletAddress object.

      -
    • Returns whether the Wallet has a seed with which to derive keys and sign transactions.

      +
    • Returns whether the Wallet has a seed with which to derive keys and sign transactions.

      Returns boolean

      Whether the Wallet has a seed with which to derive keys and sign transactions.

      -
    • Get the claimable balance for the supplied asset.

      +

      Parameters

      • asset_id: string

        The asset to check claimable balance for.

        +
      • mode: StakeOptionsMode = StakeOptionsMode.DEFAULT

        The staking mode. Defaults to DEFAULT.

        +
      • options: {
            [key: string]: string;
        } = {}

        Additional options for getting the claimable balance.

        +
        • [key: string]: string

      Returns Promise<Decimal>

      The claimable balance.

      +

      Throws

      if the default address is not found.

      +
    • Creates an attestation for the Address currently being created.

      +
    • Creates an attestation for the Address currently being created.

      Parameters

      • key: HDKey

        The key of the Wallet.

      Returns string

      The attestation.

      -
    • Trades the given amount of the given Asset for another Asset. Currently only the default address is used to source the Trade

      +
    • Creates a staking operation to claim stake, signs it, and broadcasts it on the blockchain.

      +

      Parameters

      • amount: Amount

        The amount for the staking operation.

        +
      • assetId: string

        The asset for the staking operation.

        +
      • mode: StakeOptionsMode = StakeOptionsMode.DEFAULT

        The staking mode. Defaults to DEFAULT.

        +
      • options: {
            [key: string]: string;
        } = {}

        Additional options such as setting the mode for the staking action.

        +
        • [key: string]: string
      • timeoutSeconds: number = 60

        The amount to wait for the transaction to complete when broadcasted.

        +
      • intervalSeconds: number = 0.2

        The amount to check each time for a successful broadcast.

        +

      Returns Promise<StakingOperation>

      The staking operation after it's completed fully.

      +

      Throws

      if the default address is not found.

      +
    • Creates a staking operation to stake, signs it, and broadcasts it on the blockchain.

      +

      Parameters

      • amount: Amount

        The amount for the staking operation.

        +
      • assetId: string

        The asset for the staking operation.

        +
      • mode: StakeOptionsMode = StakeOptionsMode.DEFAULT

        The staking mode. Defaults to DEFAULT.

        +
      • options: {
            [key: string]: string;
        } = {}

        Additional options such as setting the mode for the staking action.

        +
        • [key: string]: string
      • timeoutSeconds: number = 60

        The amount to wait for the transaction to complete when broadcasted.

        +
      • intervalSeconds: number = 0.2

        The amount to check each time for a successful broadcast.

        +

      Returns Promise<StakingOperation>

      The staking operation after it's completed fully.

      +

      Throws

      if the default address is not found.

      +
    • Trades the given amount of the given Asset for another Asset. Currently only the default address is used to source the Trade

      Parameters

      Returns Promise<Trade>

      The Trade object.

      Throws

      If the default address is not found.

      Throws

      If the private key is not loaded, or if the asset IDs are unsupported, or if there are insufficient funds.

      -
    • Transfers the given amount of the given Asset to the given address. Only same-Network Transfers are supported. +

    • Transfers the given amount of the given Asset to the given address. Only same-Network Transfers are supported. Currently only the default_address is used to source the Transfer.

      Parameters

      Returns Promise<Transfer>

      The hash of the Transfer transaction.

      Throws

      if the API request to create a Transfer fails.

      Throws

      if the API request to broadcast a Transfer fails.

      Throws

      if the Transfer times out.

      -
    • Creates a staking operation to unstake, signs it, and broadcasts it on the blockchain.

      +

      Parameters

      • amount: Amount

        The amount for the staking operation.

        +
      • assetId: string

        The asset for the staking operation.

        +
      • mode: StakeOptionsMode = StakeOptionsMode.DEFAULT

        The staking mode. Defaults to DEFAULT.

        +
      • options: {
            [key: string]: string;
        } = {}

        Additional options such as setting the mode for the staking action.

        +
        • [key: string]: string
      • timeoutSeconds: number = 60

        The amount to wait for the transaction to complete when broadcasted.

        +
      • intervalSeconds: number = 0.2

        The amount to check each time for a successful broadcast.

        +

      Returns Promise<StakingOperation>

      The staking operation after it's completed successfully.

      +

      Throws

      if the default address is not found.

      +
    • Derives a key for an already registered Address in the Wallet.

      Parameters

      • index: number

        The index of the Address to derive.

      Returns HDKey

      The derived key.

      Throws

      • If the key derivation fails.
      -
    • Requests funds from the faucet for the Wallet's default address and returns the faucet transaction. This is only supported on testnet networks.

      Returns Promise<FaucetTransaction>

      The successful faucet transaction

      Throws

      If the default address is not found.

      Throws

      If the request fails.

      -
    • Returns the Address with the given ID.

      Parameters

      • addressId: string

        The ID of the Address to retrieve.

      Returns undefined | Address

      The Address.

      -
    • Returns the balance of the provided Asset. Balances are aggregated across all Addresses in the Wallet.

      +
    • Returns the balance of the provided Asset. Balances are aggregated across all Addresses in the Wallet.

      Parameters

      • assetId: string

        The ID of the Asset to retrieve the balance for.

      Returns Promise<Decimal>

      The balance of the Asset.

      -
    • Gets the key for encrypting seed data.

      Returns Buffer

      The encryption key.

      -
    • Loads the seed data from the given file.

      Parameters

      • filePath: string

        The path of the file to load the seed data from

      Returns Record<string, SeedData>

      The seed data

      -
    • Returns the list of balances of this Wallet. Balances are aggregated across all Addresses in the Wallet.

      Returns Promise<BalanceMap>

      The list of balances. The key is the Asset ID, and the value is the balance.

      -
    • Loads the seed of the Wallet from the given file.

      Parameters

      • filePath: string

        The path of the file to load the seed from

      Returns Promise<string>

      A string indicating the success of the operation

      -
    • Reloads the Wallet model with the latest data from the server.

      Returns Promise<void>

      Throws

      if the API request to get a Wallet fails.

      -
    • Saves the seed of the Wallet to the given file. Wallets whose seeds are saved this way can be +

    • Saves the seed of the Wallet to the given file. Wallets whose seeds are saved this way can be rehydrated using load_seed. A single file can be used for multiple Wallet seeds. This is an insecure method of storing Wallet seeds and should only be used for development purposes.

      Parameters

      • filePath: string

        The path of the file to save the seed to

        @@ -117,24 +157,43 @@

        Throws

        If the request fails.

        encrypted or not. Data is unencrypted by default.

      Returns string

      A string indicating the success of the operation

      Throws

      If the Wallet does not have a seed

      -
    • Sets the master node for the given seed, if valid. If the seed is undefined it will set the master node using a random seed.

      +
    • Sets the master node for the given seed, if valid. If the seed is undefined it will set the master node using a random seed.

      Parameters

      • seed: undefined | string

        The seed to use for the Wallet.

      Returns undefined | HDKey

      The master node for the given seed.

      -
    • Set the seed for the Wallet.

      Parameters

      • seed: string

        The seed to use for the Wallet. Expects a 32-byte hexadecimal with no 0x prefix.

      Returns void

      Throws

      If the seed is empty.

      Throws

      If the seed is already set.

      -
    • Get the stakeable balance for the supplied asset.

      +

      Parameters

      • asset_id: string

        The asset to check the stakeable balance for.

        +
      • mode: StakeOptionsMode = StakeOptionsMode.DEFAULT

        The staking mode. Defaults to DEFAULT.

        +
      • options: {
            [key: string]: string;
        } = {}

        Additional options for getting the stakeable balance.

        +
        • [key: string]: string

      Returns Promise<Decimal>

      The stakeable balance.

      +

      Throws

      if the default address is not found.

      +
    • Lists the staking rewards for the address.

      +

      Parameters

      • assetId: string

        The asset ID.

        +
      • startTime: string = ...

        The start time.

        +
      • endTime: string = ...

        The end time.

        +
      • format: StakingRewardFormat = StakingRewardFormat.Usd

        The format to return the rewards in. (usd, native). Defaults to usd.

        +

      Returns Promise<StakingReward[]>

      The staking rewards.

      +

      Throws

      if the default address is not found.

      +
    • Returns a String representation of the Wallet.

      Returns string

      a String representation of the Wallet

      -
    • Get the unstakeable balance for the supplied asset.

      +

      Parameters

      • asset_id: string

        The asset to check the unstakeable balance for.

        +
      • mode: StakeOptionsMode = StakeOptionsMode.DEFAULT

        The staking mode. Defaults to DEFAULT.

        +
      • options: {
            [key: string]: string;
        } = {}

        Additional options for getting the unstakeable balance.

        +
        • [key: string]: string

      Returns Promise<Decimal>

      The unstakeable balance.

      +

      Throws

      if the default address is not found.

      +
    • Validates the seed and address models passed to the constructor.

      Parameters

      • seed: undefined | string

        The seed to use for the Wallet

        -

      Returns void

    • Waits until the ServerSigner has created a seed for the Wallet.

      +

    Returns void

    • Waits until the ServerSigner has created a seed for the Wallet.

      Parameters

      • walletId: string

        The ID of the Wallet that is awaiting seed creation.

      • intervalSeconds: number = 0.2

        The interval at which to poll the CDPService, in seconds.

      • timeoutSeconds: number = 20

        The maximum amount of time to wait for the ServerSigner to create a seed, in seconds.

      Returns Promise<void>

      Throws

      if the API request to get a Wallet fails.

      Throws

      if the ServerSigner times out.

      -
    • Returns a newly created Wallet object. Do not use this method directly. Instead, use User.createWallet.

      Parameters

      Returns Promise<Wallet>

      A promise that resolves with the new Wallet object.

      @@ -146,17 +205,17 @@

      Throws

        Throws

        • If the request fails.
        -
    • Fetches a Wallet by its ID. The returned wallet can be immediately used for signing operations if backed by a server signer. +

    • Fetches a Wallet by its ID. The returned wallet can be immediately used for signing operations if backed by a server signer. If the wallet is not backed by a server signer, the wallet's seed will need to be set before it can be used for signing operations.

      Parameters

      • wallet_id: string

        The ID of the Wallet to fetch

      Returns Promise<Wallet>

      The fetched Wallet

      -
    • Imports a Wallet for the given Wallet data.

      Parameters

      Returns Promise<Wallet>

      The imported Wallet.

      Throws

      If the Wallet ID is not provided.

      Throws

      If the seed is not provided.

      Throws

      If the request fails.

      -
    • Returns a new Wallet object. Do not use this method directly. Instead, use User.createWallet or User.importWallet.

      +
    • Returns a new Wallet object. Do not use this method directly. Instead, use User.createWallet or User.importWallet.

      Parameters

      • model: Wallet

        The underlying Wallet model object

      • Optional seed: string

        The seed to use for the Wallet. Expects a 32-byte hexadecimal with no 0x prefix. If null or undefined, a new seed will be generated. If the empty string, no seed is generated, and the Wallet will be instantiated without a seed and its corresponding private keys.

        @@ -169,8 +228,6 @@

        Throws

          Throws

          • If the request fails.
          -
    • Lists the Wallets belonging to the User.

      -

      Parameters

      • pageSize: number = 10

        The number of Wallets to return per page. Defaults to 10

        -
      • Optional nextPageToken: string

        The token for the next page of Wallets

        -

      Returns Promise<{
          nextPageToken: string;
          wallets: Wallet[];
      }>

      An object containing the Wallets and the token for the next page

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/enums/client_api.Feature.html b/docs/enums/client_api.Feature.html index f412a08c..4d519a1a 100644 --- a/docs/enums/client_api.Feature.html +++ b/docs/enums/client_api.Feature.html @@ -1,6 +1,6 @@ Feature | @coinbase/coinbase-sdk

    Features that can be enabled for a wallet

    -

    Export

    Enumeration Members

    Export

    Enumeration Members

    Enumeration Members

    Faucet: "faucet"
    ServerSigner: "server_signer"
    Trade: "trade"
    Transfer: "transfer"
    \ No newline at end of file +

    Enumeration Members

    Faucet: "faucet"
    ServerSigner: "server_signer"
    Trade: "trade"
    Transfer: "transfer"
    \ No newline at end of file diff --git a/docs/enums/client_api.StakingRewardFormat.html b/docs/enums/client_api.StakingRewardFormat.html index 424a0e54..96641952 100644 --- a/docs/enums/client_api.StakingRewardFormat.html +++ b/docs/enums/client_api.StakingRewardFormat.html @@ -1,4 +1,4 @@ StakingRewardFormat | @coinbase/coinbase-sdk

    The format in which the rewards are to be fetched i.e native or in equivalent USD

    -

    Export

    Enumeration Members

    Export

    Enumeration Members

    Enumeration Members

    Native: "native"
    Usd: "usd"
    \ No newline at end of file +

    Enumeration Members

    Native: "native"
    Usd: "usd"
    \ No newline at end of file diff --git a/docs/enums/client_api.TransactionType.html b/docs/enums/client_api.TransactionType.html index ea3e2a6e..329260f1 100644 --- a/docs/enums/client_api.TransactionType.html +++ b/docs/enums/client_api.TransactionType.html @@ -1,2 +1,2 @@ -TransactionType | @coinbase/coinbase-sdk

    Export

    Enumeration Members

    Enumeration Members

    Transfer: "transfer"
    \ No newline at end of file +TransactionType | @coinbase/coinbase-sdk

    Export

    Enumeration Members

    Enumeration Members

    Transfer: "transfer"
    \ No newline at end of file diff --git a/docs/enums/client_api.WebhookEventType.html b/docs/enums/client_api.WebhookEventType.html new file mode 100644 index 00000000..ac5b354a --- /dev/null +++ b/docs/enums/client_api.WebhookEventType.html @@ -0,0 +1,4 @@ +WebhookEventType | @coinbase/coinbase-sdk

    Export

    Enumeration Members

    Erc20Transfer: "erc20_transfer"
    Erc721Transfer: "erc721_transfer"
    Unspecified: "unspecified"
    \ No newline at end of file diff --git a/docs/enums/coinbase_types.ServerSignerStatus.html b/docs/enums/coinbase_types.ServerSignerStatus.html index cc714fdb..0e201bcf 100644 --- a/docs/enums/coinbase_types.ServerSignerStatus.html +++ b/docs/enums/coinbase_types.ServerSignerStatus.html @@ -1,4 +1,4 @@ ServerSignerStatus | @coinbase/coinbase-sdk

    ServerSigner status type definition.

    -

    Enumeration Members

    Enumeration Members

    Enumeration Members

    ACTIVE: "active_seed"
    PENDING: "pending_seed_creation"
    \ No newline at end of file +

    Enumeration Members

    ACTIVE: "active_seed"
    PENDING: "pending_seed_creation"
    \ No newline at end of file diff --git a/docs/enums/coinbase_types.StakeOptionsMode.html b/docs/enums/coinbase_types.StakeOptionsMode.html index 2cb19ddb..c04bf8c2 100644 --- a/docs/enums/coinbase_types.StakeOptionsMode.html +++ b/docs/enums/coinbase_types.StakeOptionsMode.html @@ -1,8 +1,8 @@ StakeOptionsMode | @coinbase/coinbase-sdk

    StakeOptionsMode type definition.

    -

    Enumeration Members

    Enumeration Members

    Enumeration Members

    DEFAULT: "default"

    Defaults to the mode specific to the asset.

    -
    NATIVE: "native"

    Native represents Native Ethereum Staking mode.

    -
    PARTIAL: "partial"

    Partial represents Partial Ethereum Staking mode.

    -
    \ No newline at end of file +
    NATIVE: "native"

    Native represents Native Ethereum Staking mode.

    +
    PARTIAL: "partial"

    Partial represents Partial Ethereum Staking mode.

    +
    \ No newline at end of file diff --git a/docs/enums/coinbase_types.TransactionStatus.html b/docs/enums/coinbase_types.TransactionStatus.html index bb45973b..0855a24e 100644 --- a/docs/enums/coinbase_types.TransactionStatus.html +++ b/docs/enums/coinbase_types.TransactionStatus.html @@ -1,6 +1,6 @@ TransactionStatus | @coinbase/coinbase-sdk

    Transaction status type definition.

    -

    Enumeration Members

    Enumeration Members

    Enumeration Members

    BROADCAST: "broadcast"
    COMPLETE: "complete"
    FAILED: "failed"
    PENDING: "pending"
    \ No newline at end of file +

    Enumeration Members

    BROADCAST: "broadcast"
    COMPLETE: "complete"
    FAILED: "failed"
    PENDING: "pending"
    \ No newline at end of file diff --git a/docs/enums/coinbase_types.TransferStatus.html b/docs/enums/coinbase_types.TransferStatus.html index fc210b9d..72cf6213 100644 --- a/docs/enums/coinbase_types.TransferStatus.html +++ b/docs/enums/coinbase_types.TransferStatus.html @@ -1,6 +1,6 @@ TransferStatus | @coinbase/coinbase-sdk

    Transfer status type definition.

    -

    Enumeration Members

    Enumeration Members

    Enumeration Members

    BROADCAST: "broadcast"
    COMPLETE: "complete"
    FAILED: "failed"
    PENDING: "pending"
    \ No newline at end of file +

    Enumeration Members

    BROADCAST: "broadcast"
    COMPLETE: "complete"
    FAILED: "failed"
    PENDING: "pending"
    \ No newline at end of file diff --git a/docs/functions/client_api.AddressesApiAxiosParamCreator.html b/docs/functions/client_api.AddressesApiAxiosParamCreator.html index c6c1cb43..49c7865d 100644 --- a/docs/functions/client_api.AddressesApiAxiosParamCreator.html +++ b/docs/functions/client_api.AddressesApiAxiosParamCreator.html @@ -31,4 +31,4 @@

    Throws

      • (walletId, addressId, options?): Promise<RequestArgs>
      • Parameters

        • walletId: string

          The ID of the wallet the address belongs to.

        • addressId: string

          The onchain address of the address that is being fetched.

        • Optional options: RawAxiosRequestConfig = {}

          Override http request option.

          -

        Returns Promise<RequestArgs>

    Export

    \ No newline at end of file +

    Returns Promise<RequestArgs>

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.AddressesApiFactory.html b/docs/functions/client_api.AddressesApiFactory.html index e693735b..bcbdb0b0 100644 --- a/docs/functions/client_api.AddressesApiFactory.html +++ b/docs/functions/client_api.AddressesApiFactory.html @@ -3,32 +3,32 @@

    Parameters

    • walletId: string

      The ID of the wallet to create the address in.

    • Optional createAddressRequest: CreateAddressRequest
    • Optional options: any

      Override http request option.

    Returns AxiosPromise<Address>

    Summary

    Create a new address

    -

    Throws

  • getAddress:function
  • getAddress:function
    • Get address

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to.

      • addressId: string

        The onchain address of the address that is being fetched.

      • Optional options: any

        Override http request option.

      Returns AxiosPromise<Address>

      Summary

      Get address by onchain address

      -

      Throws

  • getAddressBalance:function
  • getAddressBalance:function
    • Get address balance

      Parameters

      • walletId: string

        The ID of the wallet to fetch the balance for

      • addressId: string

        The onchain address of the address that is being fetched.

      • assetId: string

        The symbol of the asset to fetch the balance for

      • Optional options: any

        Override http request option.

      Returns AxiosPromise<Balance>

      Summary

      Get address balance for asset

      -

      Throws

  • listAddressBalances:function
  • listAddressBalances:function
    • Get address balances

      Parameters

      • walletId: string

        The ID of the wallet to fetch the balances for

      • addressId: string

        The onchain address of the address that is being fetched.

      • Optional page: string

        A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      • Optional options: any

        Override http request option.

      Returns AxiosPromise<AddressBalanceList>

      Summary

      Get all balances for address

      -

      Throws

  • listAddresses:function
  • listAddresses:function
    • List addresses in the wallet.

      Parameters

      • walletId: string

        The ID of the wallet whose addresses to fetch

      • Optional limit: number

        A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

      • Optional page: string

        A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      • Optional options: any

        Override http request option.

      Returns AxiosPromise<AddressList>

      Summary

      List addresses in a wallet.

      -

      Throws

  • requestFaucetFunds:function
  • requestFaucetFunds:function
    • Request faucet funds to be sent to onchain address.

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to.

      • addressId: string

        The onchain address of the address that is being fetched.

      • Optional options: any

        Override http request option.

      Returns AxiosPromise<FaucetTransaction>

      Summary

      Request faucet funds for onchain address.

      -

      Throws

  • Export

    \ No newline at end of file +

    Throws

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.AddressesApiFp.html b/docs/functions/client_api.AddressesApiFp.html index 21513089..a941c176 100644 --- a/docs/functions/client_api.AddressesApiFp.html +++ b/docs/functions/client_api.AddressesApiFp.html @@ -3,32 +3,32 @@

    Parameters

    • walletId: string

      The ID of the wallet to create the address in.

    • Optional createAddressRequest: CreateAddressRequest
    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns Promise<((axios?, basePath?) => AxiosPromise<Address>)>

    Summary

    Create a new address

    -

    Throws

  • getAddress:function
    • Get address

      +

      Throws

  • getAddress:function
    • Get address

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to.

      • addressId: string

        The onchain address of the address that is being fetched.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns Promise<((axios?, basePath?) => AxiosPromise<Address>)>

      Summary

      Get address by onchain address

      -

      Throws

  • getAddressBalance:function
    • Get address balance

      +

      Throws

  • getAddressBalance:function
    • Get address balance

      Parameters

      • walletId: string

        The ID of the wallet to fetch the balance for

      • addressId: string

        The onchain address of the address that is being fetched.

      • assetId: string

        The symbol of the asset to fetch the balance for

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns Promise<((axios?, basePath?) => AxiosPromise<Balance>)>

      Summary

      Get address balance for asset

      -

      Throws

  • listAddressBalances:function
  • listAddressBalances:function
    • Get address balances

      Parameters

      • walletId: string

        The ID of the wallet to fetch the balances for

      • addressId: string

        The onchain address of the address that is being fetched.

      • Optional page: string

        A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns Promise<((axios?, basePath?) => AxiosPromise<AddressBalanceList>)>

      Summary

      Get all balances for address

      -

      Throws

  • listAddresses:function
    • List addresses in the wallet.

      +

      Throws

  • listAddresses:function
    • List addresses in the wallet.

      Parameters

      • walletId: string

        The ID of the wallet whose addresses to fetch

      • Optional limit: number

        A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

      • Optional page: string

        A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns Promise<((axios?, basePath?) => AxiosPromise<AddressList>)>

      Summary

      List addresses in a wallet.

      -

      Throws

  • requestFaucetFunds:function
    • Request faucet funds to be sent to onchain address.

      +

      Throws

  • requestFaucetFunds:function
    • Request faucet funds to be sent to onchain address.

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to.

      • addressId: string

        The onchain address of the address that is being fetched.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns Promise<((axios?, basePath?) => AxiosPromise<FaucetTransaction>)>

      Summary

      Request faucet funds for onchain address.

      -

      Throws

  • Export

    \ No newline at end of file +

    Throws

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.AssetsApiAxiosParamCreator.html b/docs/functions/client_api.AssetsApiAxiosParamCreator.html index 2719bf34..270dd71c 100644 --- a/docs/functions/client_api.AssetsApiAxiosParamCreator.html +++ b/docs/functions/client_api.AssetsApiAxiosParamCreator.html @@ -2,6 +2,6 @@

    Parameters

    Returns {
        getAsset: ((networkId, assetId, options?) => Promise<RequestArgs>);
    }

    • getAsset: ((networkId, assetId, options?) => Promise<RequestArgs>)

      Get the asset for the specified asset ID.

      Summary

      Get the asset for the specified asset ID.

      Throws

        • (networkId, assetId, options?): Promise<RequestArgs>
        • Parameters

          • networkId: string

            The ID of the blockchain network

            -
          • assetId: string

            The ID of the asset to fetch

            +
          • assetId: string

            The ID of the asset to fetch. This could be a symbol or an ERC20 contract address.

          • Optional options: RawAxiosRequestConfig = {}

            Override http request option.

            -

          Returns Promise<RequestArgs>

    Export

    \ No newline at end of file +

    Returns Promise<RequestArgs>

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.AssetsApiFactory.html b/docs/functions/client_api.AssetsApiFactory.html index 28c0cb3f..50f54529 100644 --- a/docs/functions/client_api.AssetsApiFactory.html +++ b/docs/functions/client_api.AssetsApiFactory.html @@ -1,7 +1,7 @@ AssetsApiFactory | @coinbase/coinbase-sdk
    • AssetsApi - factory interface

      Parameters

      • Optional configuration: Configuration
      • Optional basePath: string
      • Optional axios: AxiosInstance

      Returns {
          getAsset(networkId, assetId, options?): AxiosPromise<Asset>;
      }

      • getAsset:function
        • Get the asset for the specified asset ID.

          Parameters

          • networkId: string

            The ID of the blockchain network

            -
          • assetId: string

            The ID of the asset to fetch

            +
          • assetId: string

            The ID of the asset to fetch. This could be a symbol or an ERC20 contract address.

          • Optional options: any

            Override http request option.

          Returns AxiosPromise<Asset>

          Summary

          Get the asset for the specified asset ID.

          -

          Throws

      Export

    \ No newline at end of file +

    Throws

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.AssetsApiFp.html b/docs/functions/client_api.AssetsApiFp.html index cff93600..4dabab84 100644 --- a/docs/functions/client_api.AssetsApiFp.html +++ b/docs/functions/client_api.AssetsApiFp.html @@ -1,7 +1,7 @@ AssetsApiFp | @coinbase/coinbase-sdk
    • AssetsApi - functional programming interface

      Parameters

      Returns {
          getAsset(networkId, assetId, options?): Promise<((axios?, basePath?) => AxiosPromise<Asset>)>;
      }

      • getAsset:function
        • Get the asset for the specified asset ID.

          Parameters

          • networkId: string

            The ID of the blockchain network

            -
          • assetId: string

            The ID of the asset to fetch

            +
          • assetId: string

            The ID of the asset to fetch. This could be a symbol or an ERC20 contract address.

          • Optional options: RawAxiosRequestConfig

            Override http request option.

          Returns Promise<((axios?, basePath?) => AxiosPromise<Asset>)>

          Summary

          Get the asset for the specified asset ID.

          -

          Throws

      Export

    \ No newline at end of file +

    Throws

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.ContractEventsApiAxiosParamCreator.html b/docs/functions/client_api.ContractEventsApiAxiosParamCreator.html new file mode 100644 index 00000000..ee74fc45 --- /dev/null +++ b/docs/functions/client_api.ContractEventsApiAxiosParamCreator.html @@ -0,0 +1,13 @@ +ContractEventsApiAxiosParamCreator | @coinbase/coinbase-sdk
    • ContractEventsApi - axios parameter creator

      +

      Parameters

      Returns {
          listContractEvents: ((networkId, protocolName, contractAddress, fromBlockHeight, toBlockHeight, contractName?, eventName?, nextPage?, options?) => Promise<RequestArgs>);
      }

      • listContractEvents: ((networkId, protocolName, contractAddress, fromBlockHeight, toBlockHeight, contractName?, eventName?, nextPage?, options?) => Promise<RequestArgs>)

        Retrieve events for a specific contract

        +

        Summary

        Get contract events

        +

        Throws

          • (networkId, protocolName, contractAddress, fromBlockHeight, toBlockHeight, contractName?, eventName?, nextPage?, options?): Promise<RequestArgs>
          • Parameters

            • networkId: string

              Unique identifier for the blockchain network

              +
            • protocolName: string

              Case-sensitive name of the blockchain protocol

              +
            • contractAddress: string

              EVM address of the smart contract (42 characters, including &#39;0x&#39;, in lowercase)

              +
            • fromBlockHeight: number

              Lower bound of the block range to query (inclusive)

              +
            • toBlockHeight: number

              Upper bound of the block range to query (inclusive)

              +
            • Optional contractName: string

              Case-sensitive name of the specific contract within the project

              +
            • Optional eventName: string

              Case-sensitive name of the event to filter for in the contract&#39;s logs

              +
            • Optional nextPage: string

              Pagination token for retrieving the next set of results

              +
            • Optional options: RawAxiosRequestConfig = {}

              Override http request option.

              +

            Returns Promise<RequestArgs>

      Export

    \ No newline at end of file diff --git a/docs/functions/client_api.ContractEventsApiFactory.html b/docs/functions/client_api.ContractEventsApiFactory.html new file mode 100644 index 00000000..4b94a4e7 --- /dev/null +++ b/docs/functions/client_api.ContractEventsApiFactory.html @@ -0,0 +1,13 @@ +ContractEventsApiFactory | @coinbase/coinbase-sdk
    • ContractEventsApi - factory interface

      +

      Parameters

      • Optional configuration: Configuration
      • Optional basePath: string
      • Optional axios: AxiosInstance

      Returns {
          listContractEvents(networkId, protocolName, contractAddress, fromBlockHeight, toBlockHeight, contractName?, eventName?, nextPage?, options?): AxiosPromise<ContractEventList>;
      }

      • listContractEvents:function
        • Retrieve events for a specific contract

          +

          Parameters

          • networkId: string

            Unique identifier for the blockchain network

            +
          • protocolName: string

            Case-sensitive name of the blockchain protocol

            +
          • contractAddress: string

            EVM address of the smart contract (42 characters, including &#39;0x&#39;, in lowercase)

            +
          • fromBlockHeight: number

            Lower bound of the block range to query (inclusive)

            +
          • toBlockHeight: number

            Upper bound of the block range to query (inclusive)

            +
          • Optional contractName: string

            Case-sensitive name of the specific contract within the project

            +
          • Optional eventName: string

            Case-sensitive name of the event to filter for in the contract&#39;s logs

            +
          • Optional nextPage: string

            Pagination token for retrieving the next set of results

            +
          • Optional options: any

            Override http request option.

            +

          Returns AxiosPromise<ContractEventList>

          Summary

          Get contract events

          +

          Throws

      Export

    \ No newline at end of file diff --git a/docs/functions/client_api.ContractEventsApiFp.html b/docs/functions/client_api.ContractEventsApiFp.html new file mode 100644 index 00000000..9287e7c0 --- /dev/null +++ b/docs/functions/client_api.ContractEventsApiFp.html @@ -0,0 +1,13 @@ +ContractEventsApiFp | @coinbase/coinbase-sdk
    • ContractEventsApi - functional programming interface

      +

      Parameters

      Returns {
          listContractEvents(networkId, protocolName, contractAddress, fromBlockHeight, toBlockHeight, contractName?, eventName?, nextPage?, options?): Promise<((axios?, basePath?) => AxiosPromise<ContractEventList>)>;
      }

      • listContractEvents:function
        • Retrieve events for a specific contract

          +

          Parameters

          • networkId: string

            Unique identifier for the blockchain network

            +
          • protocolName: string

            Case-sensitive name of the blockchain protocol

            +
          • contractAddress: string

            EVM address of the smart contract (42 characters, including &#39;0x&#39;, in lowercase)

            +
          • fromBlockHeight: number

            Lower bound of the block range to query (inclusive)

            +
          • toBlockHeight: number

            Upper bound of the block range to query (inclusive)

            +
          • Optional contractName: string

            Case-sensitive name of the specific contract within the project

            +
          • Optional eventName: string

            Case-sensitive name of the event to filter for in the contract&#39;s logs

            +
          • Optional nextPage: string

            Pagination token for retrieving the next set of results

            +
          • Optional options: RawAxiosRequestConfig

            Override http request option.

            +

          Returns Promise<((axios?, basePath?) => AxiosPromise<ContractEventList>)>

          Summary

          Get contract events

          +

          Throws

      Export

    \ No newline at end of file diff --git a/docs/functions/client_api.ExternalAddressesApiAxiosParamCreator.html b/docs/functions/client_api.ExternalAddressesApiAxiosParamCreator.html index 6edb113e..54cca2da 100644 --- a/docs/functions/client_api.ExternalAddressesApiAxiosParamCreator.html +++ b/docs/functions/client_api.ExternalAddressesApiAxiosParamCreator.html @@ -16,4 +16,4 @@

    Throws

      • (networkId, addressId, options?): Promise<RequestArgs>
      • Parameters

        • networkId: string

          The ID of the wallet the address belongs to.

        • addressId: string

          The onchain address of the address that is being fetched.

        • Optional options: RawAxiosRequestConfig = {}

          Override http request option.

          -

        Returns Promise<RequestArgs>

    Export

    \ No newline at end of file +

    Returns Promise<RequestArgs>

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.ExternalAddressesApiFactory.html b/docs/functions/client_api.ExternalAddressesApiFactory.html index b3e40d94..85b6ed64 100644 --- a/docs/functions/client_api.ExternalAddressesApiFactory.html +++ b/docs/functions/client_api.ExternalAddressesApiFactory.html @@ -5,15 +5,15 @@
  • assetId: string

    The ID of the asset to fetch the balance for

  • Optional options: any

    Override http request option.

  • Returns AxiosPromise<Balance>

    Summary

    Get the balance of an asset in an external address

    -

    Throws

  • listExternalAddressBalances:function
  • listExternalAddressBalances:function
    • List all of the balances of an external address

      Parameters

      • networkId: string

        The ID of the blockchain network

      • addressId: string

        The ID of the address to fetch the balance for

      • Optional page: string

        A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      • Optional options: any

        Override http request option.

      Returns AxiosPromise<AddressBalanceList>

      Summary

      Get the balances of an external address

      -

      Throws

  • requestExternalFaucetFunds:function
  • requestExternalFaucetFunds:function
    • Request faucet funds to be sent to external address.

      Parameters

      • networkId: string

        The ID of the wallet the address belongs to.

      • addressId: string

        The onchain address of the address that is being fetched.

      • Optional options: any

        Override http request option.

      Returns AxiosPromise<FaucetTransaction>

      Summary

      Request faucet funds for external address.

      -

      Throws

  • Export

    \ No newline at end of file +

    Throws

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.ExternalAddressesApiFp.html b/docs/functions/client_api.ExternalAddressesApiFp.html index 1ca35974..cd5879a5 100644 --- a/docs/functions/client_api.ExternalAddressesApiFp.html +++ b/docs/functions/client_api.ExternalAddressesApiFp.html @@ -5,15 +5,15 @@
  • assetId: string

    The ID of the asset to fetch the balance for

  • Optional options: RawAxiosRequestConfig

    Override http request option.

  • Returns Promise<((axios?, basePath?) => AxiosPromise<Balance>)>

    Summary

    Get the balance of an asset in an external address

    -

    Throws

  • listExternalAddressBalances:function
    • List all of the balances of an external address

      +

      Throws

  • listExternalAddressBalances:function
    • List all of the balances of an external address

      Parameters

      • networkId: string

        The ID of the blockchain network

      • addressId: string

        The ID of the address to fetch the balance for

      • Optional page: string

        A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns Promise<((axios?, basePath?) => AxiosPromise<AddressBalanceList>)>

      Summary

      Get the balances of an external address

      -

      Throws

  • requestExternalFaucetFunds:function
    • Request faucet funds to be sent to external address.

      +

      Throws

  • requestExternalFaucetFunds:function
    • Request faucet funds to be sent to external address.

      Parameters

      • networkId: string

        The ID of the wallet the address belongs to.

      • addressId: string

        The onchain address of the address that is being fetched.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns Promise<((axios?, basePath?) => AxiosPromise<FaucetTransaction>)>

      Summary

      Request faucet funds for external address.

      -

      Throws

  • Export

    \ No newline at end of file +

    Throws

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.ServerSignersApiAxiosParamCreator.html b/docs/functions/client_api.ServerSignersApiAxiosParamCreator.html index a96d4045..64cae17d 100644 --- a/docs/functions/client_api.ServerSignersApiAxiosParamCreator.html +++ b/docs/functions/client_api.ServerSignersApiAxiosParamCreator.html @@ -25,4 +25,4 @@

    Throws

    • Summary

      Submit the result of a server signer event

      Throws

        • (serverSignerId, signatureCreationEventResult?, options?): Promise<RequestArgs>
        • Parameters

          • serverSignerId: string

            The ID of the server signer to submit the event result for

          • Optional signatureCreationEventResult: SignatureCreationEventResult
          • Optional options: RawAxiosRequestConfig = {}

            Override http request option.

            -

          Returns Promise<RequestArgs>

    Export

    \ No newline at end of file +

    Returns Promise<RequestArgs>

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.ServerSignersApiFactory.html b/docs/functions/client_api.ServerSignersApiFactory.html index a6c0802c..d2e4862a 100644 --- a/docs/functions/client_api.ServerSignersApiFactory.html +++ b/docs/functions/client_api.ServerSignersApiFactory.html @@ -2,27 +2,27 @@

    Parameters

    • Optional configuration: Configuration
    • Optional basePath: string
    • Optional axios: AxiosInstance

    Returns {
        createServerSigner(createServerSignerRequest?, options?): AxiosPromise<ServerSigner>;
        getServerSigner(serverSignerId, options?): AxiosPromise<ServerSigner>;
        listServerSignerEvents(serverSignerId, limit?, page?, options?): AxiosPromise<ServerSignerEventList>;
        listServerSigners(limit?, page?, options?): AxiosPromise<ServerSignerList>;
        submitServerSignerSeedEventResult(serverSignerId, seedCreationEventResult?, options?): AxiosPromise<SeedCreationEventResult>;
        submitServerSignerSignatureEventResult(serverSignerId, signatureCreationEventResult?, options?): AxiosPromise<SignatureCreationEventResult>;
    }

    • createServerSigner:function
    • getServerSigner:function
    • getServerSigner:function
      • Get a server signer by ID

        Parameters

        • serverSignerId: string

          The ID of the server signer to fetch

        • Optional options: any

          Override http request option.

        Returns AxiosPromise<ServerSigner>

        Summary

        Get a server signer by ID

        -

        Throws

    • listServerSignerEvents:function
    • listServerSignerEvents:function
      • List events for a server signer

        Parameters

        • serverSignerId: string

          The ID of the server signer to fetch events for

        • Optional limit: number

          A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

        • Optional page: string

          A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

        • Optional options: any

          Override http request option.

        Returns AxiosPromise<ServerSignerEventList>

        Summary

        List events for a server signer

        -

        Throws

    • listServerSigners:function
    • listServerSigners:function
      • List server signers for the current project

        Parameters

        • Optional limit: number

          A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

        • Optional page: string

          A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

        • Optional options: any

          Override http request option.

        Returns AxiosPromise<ServerSignerList>

        Summary

        List server signers for the current project

        -

        Throws

    • submitServerSignerSeedEventResult:function
    • submitServerSignerSeedEventResult:function
      • Submit the result of a server signer event

        Parameters

        • serverSignerId: string

          The ID of the server signer to submit the event result for

        • Optional seedCreationEventResult: SeedCreationEventResult
        • Optional options: any

          Override http request option.

        Returns AxiosPromise<SeedCreationEventResult>

        Summary

        Submit the result of a server signer event

        -

        Throws

    • submitServerSignerSignatureEventResult:function
    • submitServerSignerSignatureEventResult:function
      • Submit the result of a server signer event

        Parameters

        • serverSignerId: string

          The ID of the server signer to submit the event result for

        • Optional signatureCreationEventResult: SignatureCreationEventResult
        • Optional options: any

          Override http request option.

        Returns AxiosPromise<SignatureCreationEventResult>

        Summary

        Submit the result of a server signer event

        -

        Throws

    Export

    \ No newline at end of file +

    Throws

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.ServerSignersApiFp.html b/docs/functions/client_api.ServerSignersApiFp.html index 0430b384..ac620c2e 100644 --- a/docs/functions/client_api.ServerSignersApiFp.html +++ b/docs/functions/client_api.ServerSignersApiFp.html @@ -2,27 +2,27 @@

    Parameters

    Returns {
        createServerSigner(createServerSignerRequest?, options?): Promise<((axios?, basePath?) => AxiosPromise<ServerSigner>)>;
        getServerSigner(serverSignerId, options?): Promise<((axios?, basePath?) => AxiosPromise<ServerSigner>)>;
        listServerSignerEvents(serverSignerId, limit?, page?, options?): Promise<((axios?, basePath?) => AxiosPromise<ServerSignerEventList>)>;
        listServerSigners(limit?, page?, options?): Promise<((axios?, basePath?) => AxiosPromise<ServerSignerList>)>;
        submitServerSignerSeedEventResult(serverSignerId, seedCreationEventResult?, options?): Promise<((axios?, basePath?) => AxiosPromise<SeedCreationEventResult>)>;
        submitServerSignerSignatureEventResult(serverSignerId, signatureCreationEventResult?, options?): Promise<((axios?, basePath?) => AxiosPromise<SignatureCreationEventResult>)>;
    }

    • createServerSigner:function
      • Create a new Server-Signer

        Parameters

        • Optional createServerSignerRequest: CreateServerSignerRequest
        • Optional options: RawAxiosRequestConfig

          Override http request option.

        Returns Promise<((axios?, basePath?) => AxiosPromise<ServerSigner>)>

        Summary

        Create a new Server-Signer

        -

        Throws

    • getServerSigner:function
    • getServerSigner:function
      • Get a server signer by ID

        Parameters

        • serverSignerId: string

          The ID of the server signer to fetch

        • Optional options: RawAxiosRequestConfig

          Override http request option.

        Returns Promise<((axios?, basePath?) => AxiosPromise<ServerSigner>)>

        Summary

        Get a server signer by ID

        -

        Throws

    • listServerSignerEvents:function
    • listServerSignerEvents:function
      • List events for a server signer

        Parameters

        • serverSignerId: string

          The ID of the server signer to fetch events for

        • Optional limit: number

          A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

        • Optional page: string

          A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

        • Optional options: RawAxiosRequestConfig

          Override http request option.

        Returns Promise<((axios?, basePath?) => AxiosPromise<ServerSignerEventList>)>

        Summary

        List events for a server signer

        -

        Throws

    • listServerSigners:function
      • List server signers for the current project

        +

        Throws

    • listServerSigners:function
      • List server signers for the current project

        Parameters

        • Optional limit: number

          A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

        • Optional page: string

          A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

        • Optional options: RawAxiosRequestConfig

          Override http request option.

        Returns Promise<((axios?, basePath?) => AxiosPromise<ServerSignerList>)>

        Summary

        List server signers for the current project

        -

        Throws

    • submitServerSignerSeedEventResult:function
      • Submit the result of a server signer event

        +

        Throws

    • submitServerSignerSeedEventResult:function
      • Submit the result of a server signer event

        Parameters

        • serverSignerId: string

          The ID of the server signer to submit the event result for

        • Optional seedCreationEventResult: SeedCreationEventResult
        • Optional options: RawAxiosRequestConfig

          Override http request option.

        Returns Promise<((axios?, basePath?) => AxiosPromise<SeedCreationEventResult>)>

        Summary

        Submit the result of a server signer event

        -

        Throws

    • submitServerSignerSignatureEventResult:function
      • Submit the result of a server signer event

        +

        Throws

    • submitServerSignerSignatureEventResult:function
      • Submit the result of a server signer event

        Parameters

        • serverSignerId: string

          The ID of the server signer to submit the event result for

        • Optional signatureCreationEventResult: SignatureCreationEventResult
        • Optional options: RawAxiosRequestConfig

          Override http request option.

        Returns Promise<((axios?, basePath?) => AxiosPromise<SignatureCreationEventResult>)>

        Summary

        Submit the result of a server signer event

        -

        Throws

    Export

    \ No newline at end of file +

    Throws

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.StakeApiAxiosParamCreator.html b/docs/functions/client_api.StakeApiAxiosParamCreator.html index 9853564e..b9922766 100644 --- a/docs/functions/client_api.StakeApiAxiosParamCreator.html +++ b/docs/functions/client_api.StakeApiAxiosParamCreator.html @@ -1,19 +1,36 @@ -StakeApiAxiosParamCreator | @coinbase/coinbase-sdk
    • StakeApi - axios parameter creator

      -

      Parameters

      Returns {
          buildStakingOperation: ((buildStakingOperationRequest, options?) => Promise<RequestArgs>);
          fetchStakingRewards: ((fetchStakingRewardsRequest, limit?, page?, options?) => Promise<RequestArgs>);
          getExternalStakingOperation: ((networkId, addressId, stakingOperationId, options?) => Promise<RequestArgs>);
          getStakingContext: ((getStakingContextRequest, options?) => Promise<RequestArgs>);
      }

      • buildStakingOperation: ((buildStakingOperationRequest, options?) => Promise<RequestArgs>)

        Build a new staking operation

        +StakeApiAxiosParamCreator | @coinbase/coinbase-sdk
        • StakeApi - axios parameter creator

          +

          Parameters

          Returns {
              broadcastStakingOperation: ((walletId, addressId, stakingOperationId, broadcastStakingOperationRequest, options?) => Promise<RequestArgs>);
              buildStakingOperation: ((buildStakingOperationRequest, options?) => Promise<RequestArgs>);
              createStakingOperation: ((walletId, addressId, createStakingOperationRequest, options?) => Promise<RequestArgs>);
              fetchStakingRewards: ((fetchStakingRewardsRequest, limit?, page?, options?) => Promise<RequestArgs>);
              getExternalStakingOperation: ((networkId, addressId, stakingOperationId, options?) => Promise<RequestArgs>);
              getStakingContext: ((getStakingContextRequest, options?) => Promise<RequestArgs>);
              getStakingOperation: ((walletId, addressId, stakingOperationId, options?) => Promise<RequestArgs>);
          }

          • broadcastStakingOperation: ((walletId, addressId, stakingOperationId, broadcastStakingOperationRequest, options?) => Promise<RequestArgs>)

            Broadcast a staking operation.

            +

            Summary

            Broadcast a staking operation

            +

            Throws

              • (walletId, addressId, stakingOperationId, broadcastStakingOperationRequest, options?): Promise<RequestArgs>
              • Parameters

                • walletId: string

                  The ID of the wallet the address belongs to.

                  +
                • addressId: string

                  The ID of the address the staking operation belongs to.

                  +
                • stakingOperationId: string

                  The ID of the staking operation to broadcast.

                  +
                • broadcastStakingOperationRequest: BroadcastStakingOperationRequest
                • Optional options: RawAxiosRequestConfig = {}

                  Override http request option.

                  +

                Returns Promise<RequestArgs>

          • buildStakingOperation: ((buildStakingOperationRequest, options?) => Promise<RequestArgs>)

            Build a new staking operation

            Summary

            Build a new staking operation

            -

            Throws

              • (buildStakingOperationRequest, options?): Promise<RequestArgs>
              • Parameters

                • buildStakingOperationRequest: BuildStakingOperationRequest
                • Optional options: RawAxiosRequestConfig = {}

                  Override http request option.

                  +

                  Throws

                • createStakingOperation: ((walletId, addressId, createStakingOperationRequest, options?) => Promise<RequestArgs>)

                  Create a new staking operation.

                  +

                  Summary

                  Create a new staking operation for an address

                  +

                  Throws

                    • (walletId, addressId, createStakingOperationRequest, options?): Promise<RequestArgs>
                    • Parameters

                      • walletId: string

                        The ID of the wallet the address belongs to.

                        +
                      • addressId: string

                        The ID of the address to create the staking operation for.

                        +
                      • createStakingOperationRequest: CreateStakingOperationRequest
                      • Optional options: RawAxiosRequestConfig = {}

                        Override http request option.

                      Returns Promise<RequestArgs>

                • fetchStakingRewards: ((fetchStakingRewardsRequest, limit?, page?, options?) => Promise<RequestArgs>)

                  Fetch staking rewards for a list of addresses

                  Summary

                  Fetch staking rewards

                  -

                  Throws

                    • (fetchStakingRewardsRequest, limit?, page?, options?): Promise<RequestArgs>
                    • Parameters

                      • fetchStakingRewardsRequest: FetchStakingRewardsRequest
                      • Optional limit: number

                        A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 50.

                        +

                        Throws

                          • (fetchStakingRewardsRequest, limit?, page?, options?): Promise<RequestArgs>
                          • Parameters

                            • fetchStakingRewardsRequest: FetchStakingRewardsRequest
                            • Optional limit: number

                              A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 50.

                            • Optional page: string

                              A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

                            • Optional options: RawAxiosRequestConfig = {}

                              Override http request option.

                            Returns Promise<RequestArgs>

                      • getExternalStakingOperation: ((networkId, addressId, stakingOperationId, options?) => Promise<RequestArgs>)

                        Get the latest state of a staking operation

                        Summary

                        Get the latest state of a staking operation

                        -

                        Throws

                          • (networkId, addressId, stakingOperationId, options?): Promise<RequestArgs>
                          • Parameters

                            • networkId: string

                              The ID of the blockchain network

                              +

                              Throws

                                • (networkId, addressId, stakingOperationId, options?): Promise<RequestArgs>
                                • Parameters

                                  • networkId: string

                                    The ID of the blockchain network

                                  • addressId: string

                                    The ID of the address to fetch the staking operation for

                                  • stakingOperationId: string

                                    The ID of the staking operation

                                  • Optional options: RawAxiosRequestConfig = {}

                                    Override http request option.

                                  Returns Promise<RequestArgs>

                            • getStakingContext: ((getStakingContextRequest, options?) => Promise<RequestArgs>)

                              Get staking context for an address

                              Summary

                              Get staking context

                              -

                              Throws

                            Export

        \ No newline at end of file +

        Throws

      • getStakingOperation: ((walletId, addressId, stakingOperationId, options?) => Promise<RequestArgs>)

        Get the latest state of a staking operation.

        +

        Summary

        Get the latest state of a staking operation

        +

        Throws

          • (walletId, addressId, stakingOperationId, options?): Promise<RequestArgs>
          • Parameters

            • walletId: string

              The ID of the wallet the address belongs to

              +
            • addressId: string

              The ID of the address to fetch the staking operation for.

              +
            • stakingOperationId: string

              The ID of the staking operation.

              +
            • Optional options: RawAxiosRequestConfig = {}

              Override http request option.

              +

            Returns Promise<RequestArgs>

      Export

    \ No newline at end of file diff --git a/docs/functions/client_api.StakeApiFactory.html b/docs/functions/client_api.StakeApiFactory.html index 8a0be69f..8e01cb16 100644 --- a/docs/functions/client_api.StakeApiFactory.html +++ b/docs/functions/client_api.StakeApiFactory.html @@ -1,19 +1,36 @@ -StakeApiFactory | @coinbase/coinbase-sdk
    • StakeApi - factory interface

      -

      Parameters

      • Optional configuration: Configuration
      • Optional basePath: string
      • Optional axios: AxiosInstance

      Returns {
          buildStakingOperation(buildStakingOperationRequest, options?): AxiosPromise<StakingOperation>;
          fetchStakingRewards(fetchStakingRewardsRequest, limit?, page?, options?): AxiosPromise<FetchStakingRewards200Response>;
          getExternalStakingOperation(networkId, addressId, stakingOperationId, options?): AxiosPromise<StakingOperation>;
          getStakingContext(getStakingContextRequest, options?): AxiosPromise<StakingContext>;
      }

      • buildStakingOperation:function
        • Build a new staking operation

          +StakeApiFactory | @coinbase/coinbase-sdk
          • StakeApi - factory interface

            +

            Parameters

            • Optional configuration: Configuration
            • Optional basePath: string
            • Optional axios: AxiosInstance

            Returns {
                broadcastStakingOperation(walletId, addressId, stakingOperationId, broadcastStakingOperationRequest, options?): AxiosPromise<StakingOperation>;
                buildStakingOperation(buildStakingOperationRequest, options?): AxiosPromise<StakingOperation>;
                createStakingOperation(walletId, addressId, createStakingOperationRequest, options?): AxiosPromise<StakingOperation>;
                fetchStakingRewards(fetchStakingRewardsRequest, limit?, page?, options?): AxiosPromise<FetchStakingRewards200Response>;
                getExternalStakingOperation(networkId, addressId, stakingOperationId, options?): AxiosPromise<StakingOperation>;
                getStakingContext(getStakingContextRequest, options?): AxiosPromise<StakingContext>;
                getStakingOperation(walletId, addressId, stakingOperationId, options?): AxiosPromise<StakingOperation>;
            }

            • broadcastStakingOperation:function
              • Broadcast a staking operation.

                +

                Parameters

                • walletId: string

                  The ID of the wallet the address belongs to.

                  +
                • addressId: string

                  The ID of the address the staking operation belongs to.

                  +
                • stakingOperationId: string

                  The ID of the staking operation to broadcast.

                  +
                • broadcastStakingOperationRequest: BroadcastStakingOperationRequest
                • Optional options: any

                  Override http request option.

                  +

                Returns AxiosPromise<StakingOperation>

                Summary

                Broadcast a staking operation

                +

                Throws

            • buildStakingOperation:function
            • fetchStakingRewards:function
            • createStakingOperation:function
              • Create a new staking operation.

                +

                Parameters

                • walletId: string

                  The ID of the wallet the address belongs to.

                  +
                • addressId: string

                  The ID of the address to create the staking operation for.

                  +
                • createStakingOperationRequest: CreateStakingOperationRequest
                • Optional options: any

                  Override http request option.

                  +

                Returns AxiosPromise<StakingOperation>

                Summary

                Create a new staking operation for an address

                +

                Throws

            • fetchStakingRewards:function
              • Fetch staking rewards for a list of addresses

                Parameters

                • fetchStakingRewardsRequest: FetchStakingRewardsRequest
                • Optional limit: number

                  A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 50.

                • Optional page: string

                  A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

                • Optional options: any

                  Override http request option.

                Returns AxiosPromise<FetchStakingRewards200Response>

                Summary

                Fetch staking rewards

                -

                Throws

            • getExternalStakingOperation:function
              • Get the latest state of a staking operation

                +

                Throws

            • getExternalStakingOperation:function
              • Get the latest state of a staking operation

                Parameters

                • networkId: string

                  The ID of the blockchain network

                • addressId: string

                  The ID of the address to fetch the staking operation for

                • stakingOperationId: string

                  The ID of the staking operation

                • Optional options: any

                  Override http request option.

                Returns AxiosPromise<StakingOperation>

                Summary

                Get the latest state of a staking operation

                -

                Throws

            • getStakingContext:function
            • getStakingContext:function

            Export

          \ No newline at end of file +

          Throws

      • getStakingOperation:function
        • Get the latest state of a staking operation.

          +

          Parameters

          • walletId: string

            The ID of the wallet the address belongs to

            +
          • addressId: string

            The ID of the address to fetch the staking operation for.

            +
          • stakingOperationId: string

            The ID of the staking operation.

            +
          • Optional options: any

            Override http request option.

            +

          Returns AxiosPromise<StakingOperation>

          Summary

          Get the latest state of a staking operation

          +

          Throws

      Export

    \ No newline at end of file diff --git a/docs/functions/client_api.StakeApiFp.html b/docs/functions/client_api.StakeApiFp.html index 55fd4acb..cfc0dcbc 100644 --- a/docs/functions/client_api.StakeApiFp.html +++ b/docs/functions/client_api.StakeApiFp.html @@ -1,19 +1,36 @@ -StakeApiFp | @coinbase/coinbase-sdk
    • StakeApi - functional programming interface

      -

      Parameters

      Returns {
          buildStakingOperation(buildStakingOperationRequest, options?): Promise<((axios?, basePath?) => AxiosPromise<StakingOperation>)>;
          fetchStakingRewards(fetchStakingRewardsRequest, limit?, page?, options?): Promise<((axios?, basePath?) => AxiosPromise<FetchStakingRewards200Response>)>;
          getExternalStakingOperation(networkId, addressId, stakingOperationId, options?): Promise<((axios?, basePath?) => AxiosPromise<StakingOperation>)>;
          getStakingContext(getStakingContextRequest, options?): Promise<((axios?, basePath?) => AxiosPromise<StakingContext>)>;
      }

      • buildStakingOperation:function
        • Build a new staking operation

          +StakeApiFp | @coinbase/coinbase-sdk
          • StakeApi - functional programming interface

            +

            Parameters

            Returns {
                broadcastStakingOperation(walletId, addressId, stakingOperationId, broadcastStakingOperationRequest, options?): Promise<((axios?, basePath?) => AxiosPromise<StakingOperation>)>;
                buildStakingOperation(buildStakingOperationRequest, options?): Promise<((axios?, basePath?) => AxiosPromise<StakingOperation>)>;
                createStakingOperation(walletId, addressId, createStakingOperationRequest, options?): Promise<((axios?, basePath?) => AxiosPromise<StakingOperation>)>;
                fetchStakingRewards(fetchStakingRewardsRequest, limit?, page?, options?): Promise<((axios?, basePath?) => AxiosPromise<FetchStakingRewards200Response>)>;
                getExternalStakingOperation(networkId, addressId, stakingOperationId, options?): Promise<((axios?, basePath?) => AxiosPromise<StakingOperation>)>;
                getStakingContext(getStakingContextRequest, options?): Promise<((axios?, basePath?) => AxiosPromise<StakingContext>)>;
                getStakingOperation(walletId, addressId, stakingOperationId, options?): Promise<((axios?, basePath?) => AxiosPromise<StakingOperation>)>;
            }

            • broadcastStakingOperation:function
              • Broadcast a staking operation.

                +

                Parameters

                • walletId: string

                  The ID of the wallet the address belongs to.

                  +
                • addressId: string

                  The ID of the address the staking operation belongs to.

                  +
                • stakingOperationId: string

                  The ID of the staking operation to broadcast.

                  +
                • broadcastStakingOperationRequest: BroadcastStakingOperationRequest
                • Optional options: RawAxiosRequestConfig

                  Override http request option.

                  +

                Returns Promise<((axios?, basePath?) => AxiosPromise<StakingOperation>)>

                Summary

                Broadcast a staking operation

                +

                Throws

            • buildStakingOperation:function
              • Build a new staking operation

                Parameters

                Returns Promise<((axios?, basePath?) => AxiosPromise<StakingOperation>)>

                Summary

                Build a new staking operation

                -

                Throws

            • fetchStakingRewards:function
            • createStakingOperation:function
              • Create a new staking operation.

                +

                Parameters

                • walletId: string

                  The ID of the wallet the address belongs to.

                  +
                • addressId: string

                  The ID of the address to create the staking operation for.

                  +
                • createStakingOperationRequest: CreateStakingOperationRequest
                • Optional options: RawAxiosRequestConfig

                  Override http request option.

                  +

                Returns Promise<((axios?, basePath?) => AxiosPromise<StakingOperation>)>

                Summary

                Create a new staking operation for an address

                +

                Throws

            • fetchStakingRewards:function
              • Fetch staking rewards for a list of addresses

                Parameters

                • fetchStakingRewardsRequest: FetchStakingRewardsRequest
                • Optional limit: number

                  A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 50.

                • Optional page: string

                  A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

                • Optional options: RawAxiosRequestConfig

                  Override http request option.

                Returns Promise<((axios?, basePath?) => AxiosPromise<FetchStakingRewards200Response>)>

                Summary

                Fetch staking rewards

                -

                Throws

            • getExternalStakingOperation:function
              • Get the latest state of a staking operation

                +

                Throws

            • getExternalStakingOperation:function
              • Get the latest state of a staking operation

                Parameters

                • networkId: string

                  The ID of the blockchain network

                • addressId: string

                  The ID of the address to fetch the staking operation for

                • stakingOperationId: string

                  The ID of the staking operation

                • Optional options: RawAxiosRequestConfig

                  Override http request option.

                Returns Promise<((axios?, basePath?) => AxiosPromise<StakingOperation>)>

                Summary

                Get the latest state of a staking operation

                -

                Throws

            • getStakingContext:function
              • Get staking context for an address

                +

                Throws

            • getStakingContext:function
              • Get staking context for an address

                Parameters

                Returns Promise<((axios?, basePath?) => AxiosPromise<StakingContext>)>

                Summary

                Get staking context

                -

                Throws

            Export

          \ No newline at end of file +

          Throws

      • getStakingOperation:function
        • Get the latest state of a staking operation.

          +

          Parameters

          • walletId: string

            The ID of the wallet the address belongs to

            +
          • addressId: string

            The ID of the address to fetch the staking operation for.

            +
          • stakingOperationId: string

            The ID of the staking operation.

            +
          • Optional options: RawAxiosRequestConfig

            Override http request option.

            +

          Returns Promise<((axios?, basePath?) => AxiosPromise<StakingOperation>)>

          Summary

          Get the latest state of a staking operation

          +

          Throws

      Export

    \ No newline at end of file diff --git a/docs/functions/client_api.TradesApiAxiosParamCreator.html b/docs/functions/client_api.TradesApiAxiosParamCreator.html index 7e73cdeb..63a6f3c3 100644 --- a/docs/functions/client_api.TradesApiAxiosParamCreator.html +++ b/docs/functions/client_api.TradesApiAxiosParamCreator.html @@ -23,4 +23,4 @@

    Throws

    • Optional limit: number

      A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

    • Optional page: string

      A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

    • Optional options: RawAxiosRequestConfig = {}

      Override http request option.

      -

    Returns Promise<RequestArgs>

    Export

    \ No newline at end of file +

    Returns Promise<RequestArgs>

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.TradesApiFactory.html b/docs/functions/client_api.TradesApiFactory.html index 63a1c807..db49cd1b 100644 --- a/docs/functions/client_api.TradesApiFactory.html +++ b/docs/functions/client_api.TradesApiFactory.html @@ -5,22 +5,22 @@
  • tradeId: string

    The ID of the trade to broadcast

  • broadcastTradeRequest: BroadcastTradeRequest
  • Optional options: any

    Override http request option.

  • Returns AxiosPromise<Trade>

    Summary

    Broadcast a trade

    -

    Throws

  • createTrade:function
    • Create a new trade

      +

      Throws

  • createTrade:function
    • Create a new trade

      Parameters

      • walletId: string

        The ID of the wallet the source address belongs to

      • addressId: string

        The ID of the address to conduct the trade from

      • createTradeRequest: CreateTradeRequest
      • Optional options: any

        Override http request option.

      Returns AxiosPromise<Trade>

      Summary

      Create a new trade for an address

      -

      Throws

  • getTrade:function
  • getTrade:function
    • Get a trade by ID

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to

      • addressId: string

        The ID of the address the trade belongs to

      • tradeId: string

        The ID of the trade to fetch

      • Optional options: any

        Override http request option.

      Returns AxiosPromise<Trade>

      Summary

      Get a trade by ID

      -

      Throws

  • listTrades:function
  • listTrades:function
    • List trades for an address.

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to

      • addressId: string

        The ID of the address to list trades for

      • Optional limit: number

        A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

      • Optional page: string

        A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      • Optional options: any

        Override http request option.

      Returns AxiosPromise<TradeList>

      Summary

      List trades for an address.

      -

      Throws

  • Export

    \ No newline at end of file +

    Throws

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.TradesApiFp.html b/docs/functions/client_api.TradesApiFp.html index d614d226..d8bcd872 100644 --- a/docs/functions/client_api.TradesApiFp.html +++ b/docs/functions/client_api.TradesApiFp.html @@ -5,22 +5,22 @@
  • tradeId: string

    The ID of the trade to broadcast

  • broadcastTradeRequest: BroadcastTradeRequest
  • Optional options: RawAxiosRequestConfig

    Override http request option.

  • Returns Promise<((axios?, basePath?) => AxiosPromise<Trade>)>

    Summary

    Broadcast a trade

    -

    Throws

  • createTrade:function
    • Create a new trade

      +

      Throws

  • createTrade:function
    • Create a new trade

      Parameters

      • walletId: string

        The ID of the wallet the source address belongs to

      • addressId: string

        The ID of the address to conduct the trade from

      • createTradeRequest: CreateTradeRequest
      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns Promise<((axios?, basePath?) => AxiosPromise<Trade>)>

      Summary

      Create a new trade for an address

      -

      Throws

  • getTrade:function
    • Get a trade by ID

      +

      Throws

  • getTrade:function
    • Get a trade by ID

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to

      • addressId: string

        The ID of the address the trade belongs to

      • tradeId: string

        The ID of the trade to fetch

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns Promise<((axios?, basePath?) => AxiosPromise<Trade>)>

      Summary

      Get a trade by ID

      -

      Throws

  • listTrades:function
    • List trades for an address.

      +

      Throws

  • listTrades:function
    • List trades for an address.

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to

      • addressId: string

        The ID of the address to list trades for

      • Optional limit: number

        A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

      • Optional page: string

        A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns Promise<((axios?, basePath?) => AxiosPromise<TradeList>)>

      Summary

      List trades for an address.

      -

      Throws

  • Export

    \ No newline at end of file +

    Throws

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.TransfersApiAxiosParamCreator.html b/docs/functions/client_api.TransfersApiAxiosParamCreator.html index 2a8482a8..88cbfd96 100644 --- a/docs/functions/client_api.TransfersApiAxiosParamCreator.html +++ b/docs/functions/client_api.TransfersApiAxiosParamCreator.html @@ -23,4 +23,4 @@

    Throws

    • Optional limit: number

      A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

    • Optional page: string

      A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

    • Optional options: RawAxiosRequestConfig = {}

      Override http request option.

      -

    Returns Promise<RequestArgs>

    Export

    \ No newline at end of file +

    Returns Promise<RequestArgs>

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.TransfersApiFactory.html b/docs/functions/client_api.TransfersApiFactory.html index 222441a8..4f0f56a9 100644 --- a/docs/functions/client_api.TransfersApiFactory.html +++ b/docs/functions/client_api.TransfersApiFactory.html @@ -5,22 +5,22 @@
  • transferId: string

    The ID of the transfer to broadcast

  • broadcastTransferRequest: BroadcastTransferRequest
  • Optional options: any

    Override http request option.

  • Returns AxiosPromise<Transfer>

    Summary

    Broadcast a transfer

    -

    Throws

  • createTransfer:function
    • Create a new transfer

      +

      Throws

  • createTransfer:function
    • Create a new transfer

      Parameters

      • walletId: string

        The ID of the wallet the source address belongs to

      • addressId: string

        The ID of the address to transfer from

      • createTransferRequest: CreateTransferRequest
      • Optional options: any

        Override http request option.

      Returns AxiosPromise<Transfer>

      Summary

      Create a new transfer for an address

      -

      Throws

  • getTransfer:function
  • getTransfer:function
    • Get a transfer by ID

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to

      • addressId: string

        The ID of the address the transfer belongs to

      • transferId: string

        The ID of the transfer to fetch

      • Optional options: any

        Override http request option.

      Returns AxiosPromise<Transfer>

      Summary

      Get a transfer by ID

      -

      Throws

  • listTransfers:function
  • listTransfers:function
    • List transfers for an address.

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to

      • addressId: string

        The ID of the address to list transfers for

      • Optional limit: number

        A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

      • Optional page: string

        A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      • Optional options: any

        Override http request option.

      Returns AxiosPromise<TransferList>

      Summary

      List transfers for an address.

      -

      Throws

  • Export

    \ No newline at end of file +

    Throws

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.TransfersApiFp.html b/docs/functions/client_api.TransfersApiFp.html index 959c9db4..be1f7497 100644 --- a/docs/functions/client_api.TransfersApiFp.html +++ b/docs/functions/client_api.TransfersApiFp.html @@ -5,22 +5,22 @@
  • transferId: string

    The ID of the transfer to broadcast

  • broadcastTransferRequest: BroadcastTransferRequest
  • Optional options: RawAxiosRequestConfig

    Override http request option.

  • Returns Promise<((axios?, basePath?) => AxiosPromise<Transfer>)>

    Summary

    Broadcast a transfer

    -

    Throws

  • createTransfer:function
    • Create a new transfer

      +

      Throws

  • createTransfer:function
    • Create a new transfer

      Parameters

      • walletId: string

        The ID of the wallet the source address belongs to

      • addressId: string

        The ID of the address to transfer from

      • createTransferRequest: CreateTransferRequest
      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns Promise<((axios?, basePath?) => AxiosPromise<Transfer>)>

      Summary

      Create a new transfer for an address

      -

      Throws

  • getTransfer:function
    • Get a transfer by ID

      +

      Throws

  • getTransfer:function
    • Get a transfer by ID

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to

      • addressId: string

        The ID of the address the transfer belongs to

      • transferId: string

        The ID of the transfer to fetch

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns Promise<((axios?, basePath?) => AxiosPromise<Transfer>)>

      Summary

      Get a transfer by ID

      -

      Throws

  • listTransfers:function
    • List transfers for an address.

      +

      Throws

  • listTransfers:function
    • List transfers for an address.

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to

      • addressId: string

        The ID of the address to list transfers for

      • Optional limit: number

        A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

      • Optional page: string

        A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns Promise<((axios?, basePath?) => AxiosPromise<TransferList>)>

      Summary

      List transfers for an address.

      -

      Throws

  • Export

    \ No newline at end of file +

    Throws

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.UsersApiAxiosParamCreator.html b/docs/functions/client_api.UsersApiAxiosParamCreator.html index 72e227ce..ee01f392 100644 --- a/docs/functions/client_api.UsersApiAxiosParamCreator.html +++ b/docs/functions/client_api.UsersApiAxiosParamCreator.html @@ -2,4 +2,4 @@

    Parameters

    Returns {
        getCurrentUser: ((options?) => Promise<RequestArgs>);
    }

    • getCurrentUser: ((options?) => Promise<RequestArgs>)

      Get current user

      Summary

      Get current user

      Throws

        • (options?): Promise<RequestArgs>
        • Parameters

          • Optional options: RawAxiosRequestConfig = {}

            Override http request option.

            -

          Returns Promise<RequestArgs>

    Export

    \ No newline at end of file +

    Returns Promise<RequestArgs>

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.UsersApiFactory.html b/docs/functions/client_api.UsersApiFactory.html index ace60fa2..14e6d20a 100644 --- a/docs/functions/client_api.UsersApiFactory.html +++ b/docs/functions/client_api.UsersApiFactory.html @@ -2,4 +2,4 @@

    Parameters

    • Optional configuration: Configuration
    • Optional basePath: string
    • Optional axios: AxiosInstance

    Returns {
        getCurrentUser(options?): AxiosPromise<User>;
    }

    • getCurrentUser:function
      • Get current user

        Parameters

        • Optional options: any

          Override http request option.

        Returns AxiosPromise<User>

        Summary

        Get current user

        -

        Throws

    Export

    \ No newline at end of file +

    Throws

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.UsersApiFp.html b/docs/functions/client_api.UsersApiFp.html index 360b5bfb..070bd21c 100644 --- a/docs/functions/client_api.UsersApiFp.html +++ b/docs/functions/client_api.UsersApiFp.html @@ -2,4 +2,4 @@

    Parameters

    Returns {
        getCurrentUser(options?): Promise<((axios?, basePath?) => AxiosPromise<User>)>;
    }

    • getCurrentUser:function
      • Get current user

        Parameters

        • Optional options: RawAxiosRequestConfig

          Override http request option.

        Returns Promise<((axios?, basePath?) => AxiosPromise<User>)>

        Summary

        Get current user

        -

        Throws

    Export

    \ No newline at end of file +

    Throws

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.ValidatorsApiAxiosParamCreator.html b/docs/functions/client_api.ValidatorsApiAxiosParamCreator.html index 1cd7a3f8..0c766517 100644 --- a/docs/functions/client_api.ValidatorsApiAxiosParamCreator.html +++ b/docs/functions/client_api.ValidatorsApiAxiosParamCreator.html @@ -13,4 +13,4 @@

    Throws

    • Optional limit: number

      A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 50.

    • Optional page: string

      A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

    • Optional options: RawAxiosRequestConfig = {}

      Override http request option.

      -

    Returns Promise<RequestArgs>

    Export

    \ No newline at end of file +

    Returns Promise<RequestArgs>

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.ValidatorsApiFactory.html b/docs/functions/client_api.ValidatorsApiFactory.html index 1a535966..5e353767 100644 --- a/docs/functions/client_api.ValidatorsApiFactory.html +++ b/docs/functions/client_api.ValidatorsApiFactory.html @@ -5,7 +5,7 @@
  • validatorId: string

    The unique id of the validator to fetch details for.

  • Optional options: any

    Override http request option.

  • Returns AxiosPromise<Validator>

    Summary

    Get a validator belonging to the CDP project

    -

    Throws

  • listValidators:function
    • List validators belonging to the user for a given network and asset.

      +

      Throws

  • listValidators:function

    Returns AxiosPromise<ValidatorList>

    Summary

    List validators belonging to the CDP project

    -

    Throws

  • Export

    \ No newline at end of file +

    Throws

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.ValidatorsApiFp.html b/docs/functions/client_api.ValidatorsApiFp.html index a1aca58b..12aaea70 100644 --- a/docs/functions/client_api.ValidatorsApiFp.html +++ b/docs/functions/client_api.ValidatorsApiFp.html @@ -5,7 +5,7 @@
  • validatorId: string

    The unique id of the validator to fetch details for.

  • Optional options: RawAxiosRequestConfig

    Override http request option.

  • Returns Promise<((axios?, basePath?) => AxiosPromise<Validator>)>

    Summary

    Get a validator belonging to the CDP project

    -

    Throws

  • listValidators:function
    • List validators belonging to the user for a given network and asset.

      +

      Throws

  • listValidators:function

    Returns Promise<((axios?, basePath?) => AxiosPromise<ValidatorList>)>

    Summary

    List validators belonging to the CDP project

    -

    Throws

  • Export

    \ No newline at end of file +

    Throws

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.WalletsApiAxiosParamCreator.html b/docs/functions/client_api.WalletsApiAxiosParamCreator.html index 895fc761..4fd22ef6 100644 --- a/docs/functions/client_api.WalletsApiAxiosParamCreator.html +++ b/docs/functions/client_api.WalletsApiAxiosParamCreator.html @@ -20,4 +20,4 @@

    Throws

      • (limit?, page?, options?): Promise<RequestArgs>
      • Parameters

        • Optional limit: number

          A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

        • Optional page: string

          A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

        • Optional options: RawAxiosRequestConfig = {}

          Override http request option.

          -

        Returns Promise<RequestArgs>

    Export

    \ No newline at end of file +

    Returns Promise<RequestArgs>

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.WalletsApiFactory.html b/docs/functions/client_api.WalletsApiFactory.html index 0b52a0d9..4e718bec 100644 --- a/docs/functions/client_api.WalletsApiFactory.html +++ b/docs/functions/client_api.WalletsApiFactory.html @@ -2,22 +2,22 @@

    Parameters

    • Optional configuration: Configuration
    • Optional basePath: string
    • Optional axios: AxiosInstance

    Returns {
        createWallet(createWalletRequest?, options?): AxiosPromise<Wallet>;
        getWallet(walletId, options?): AxiosPromise<Wallet>;
        getWalletBalance(walletId, assetId, options?): AxiosPromise<Balance>;
        listWalletBalances(walletId, options?): AxiosPromise<AddressBalanceList>;
        listWallets(limit?, page?, options?): AxiosPromise<WalletList>;
    }

    • createWallet:function
      • Create a new wallet scoped to the user.

        Parameters

        • Optional createWalletRequest: CreateWalletRequest
        • Optional options: any

          Override http request option.

        Returns AxiosPromise<Wallet>

        Summary

        Create a new wallet

        -

        Throws

    • getWallet:function
    • getWallet:function
      • Get wallet

        Parameters

        • walletId: string

          The ID of the wallet to fetch

        • Optional options: any

          Override http request option.

        Returns AxiosPromise<Wallet>

        Summary

        Get wallet by ID

        -

        Throws

    • getWalletBalance:function
      • Get the aggregated balance of an asset across all of the addresses in the wallet.

        +

        Throws

    • getWalletBalance:function
      • Get the aggregated balance of an asset across all of the addresses in the wallet.

        Parameters

        • walletId: string

          The ID of the wallet to fetch the balance for

        • assetId: string

          The symbol of the asset to fetch the balance for

        • Optional options: any

          Override http request option.

        Returns AxiosPromise<Balance>

        Summary

        Get the balance of an asset in the wallet

        -

        Throws

    • listWalletBalances:function
    • listWalletBalances:function
      • List the balances of all of the addresses in the wallet aggregated by asset.

        Parameters

        • walletId: string

          The ID of the wallet to fetch the balances for

        • Optional options: any

          Override http request option.

        Returns AxiosPromise<AddressBalanceList>

        Summary

        List wallet balances

        -

        Throws

    • listWallets:function
    • listWallets:function
      • List wallets belonging to the user.

        Parameters

        • Optional limit: number

          A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

        • Optional page: string

          A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

        • Optional options: any

          Override http request option.

        Returns AxiosPromise<WalletList>

        Summary

        List wallets

        -

        Throws

    Export

    \ No newline at end of file +

    Throws

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.WalletsApiFp.html b/docs/functions/client_api.WalletsApiFp.html index 9a3c189e..05520327 100644 --- a/docs/functions/client_api.WalletsApiFp.html +++ b/docs/functions/client_api.WalletsApiFp.html @@ -2,22 +2,22 @@

    Parameters

    Returns {
        createWallet(createWalletRequest?, options?): Promise<((axios?, basePath?) => AxiosPromise<Wallet>)>;
        getWallet(walletId, options?): Promise<((axios?, basePath?) => AxiosPromise<Wallet>)>;
        getWalletBalance(walletId, assetId, options?): Promise<((axios?, basePath?) => AxiosPromise<Balance>)>;
        listWalletBalances(walletId, options?): Promise<((axios?, basePath?) => AxiosPromise<AddressBalanceList>)>;
        listWallets(limit?, page?, options?): Promise<((axios?, basePath?) => AxiosPromise<WalletList>)>;
    }

    • createWallet:function
      • Create a new wallet scoped to the user.

        Parameters

        • Optional createWalletRequest: CreateWalletRequest
        • Optional options: RawAxiosRequestConfig

          Override http request option.

        Returns Promise<((axios?, basePath?) => AxiosPromise<Wallet>)>

        Summary

        Create a new wallet

        -

        Throws

    • getWallet:function
    • getWallet:function
      • Get wallet

        Parameters

        • walletId: string

          The ID of the wallet to fetch

        • Optional options: RawAxiosRequestConfig

          Override http request option.

        Returns Promise<((axios?, basePath?) => AxiosPromise<Wallet>)>

        Summary

        Get wallet by ID

        -

        Throws

    • getWalletBalance:function
      • Get the aggregated balance of an asset across all of the addresses in the wallet.

        +

        Throws

    • getWalletBalance:function
      • Get the aggregated balance of an asset across all of the addresses in the wallet.

        Parameters

        • walletId: string

          The ID of the wallet to fetch the balance for

        • assetId: string

          The symbol of the asset to fetch the balance for

        • Optional options: RawAxiosRequestConfig

          Override http request option.

        Returns Promise<((axios?, basePath?) => AxiosPromise<Balance>)>

        Summary

        Get the balance of an asset in the wallet

        -

        Throws

    • listWalletBalances:function
      • List the balances of all of the addresses in the wallet aggregated by asset.

        +

        Throws

    • listWalletBalances:function
      • List the balances of all of the addresses in the wallet aggregated by asset.

        Parameters

        • walletId: string

          The ID of the wallet to fetch the balances for

        • Optional options: RawAxiosRequestConfig

          Override http request option.

        Returns Promise<((axios?, basePath?) => AxiosPromise<AddressBalanceList>)>

        Summary

        List wallet balances

        -

        Throws

    • listWallets:function
      • List wallets belonging to the user.

        +

        Throws

    • listWallets:function
      • List wallets belonging to the user.

        Parameters

        • Optional limit: number

          A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

        • Optional page: string

          A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

        • Optional options: RawAxiosRequestConfig

          Override http request option.

        Returns Promise<((axios?, basePath?) => AxiosPromise<WalletList>)>

        Summary

        List wallets

        -

        Throws

    Export

    \ No newline at end of file +

    Throws

    Export

    \ No newline at end of file diff --git a/docs/functions/client_api.WebhooksApiAxiosParamCreator.html b/docs/functions/client_api.WebhooksApiAxiosParamCreator.html new file mode 100644 index 00000000..93a4f39e --- /dev/null +++ b/docs/functions/client_api.WebhooksApiAxiosParamCreator.html @@ -0,0 +1,18 @@ +WebhooksApiAxiosParamCreator | @coinbase/coinbase-sdk
    • WebhooksApi - axios parameter creator

      +

      Parameters

      Returns {
          createWebhook: ((createWebhookRequest?, options?) => Promise<RequestArgs>);
          deleteWebhook: ((webhookId, options?) => Promise<RequestArgs>);
          listWebhooks: ((limit?, page?, options?) => Promise<RequestArgs>);
          updateWebhook: ((webhookId, updateWebhookRequest?, options?) => Promise<RequestArgs>);
      }

      • createWebhook: ((createWebhookRequest?, options?) => Promise<RequestArgs>)

        Create a new webhook

        +

        Summary

        Create a new webhook

        +

        Throws

          • (createWebhookRequest?, options?): Promise<RequestArgs>
          • Parameters

            • Optional createWebhookRequest: CreateWebhookRequest
            • Optional options: RawAxiosRequestConfig = {}

              Override http request option.

              +

            Returns Promise<RequestArgs>

      • deleteWebhook: ((webhookId, options?) => Promise<RequestArgs>)

        Delete a webhook

        +

        Summary

        Delete a webhook

        +

        Throws

          • (webhookId, options?): Promise<RequestArgs>
          • Parameters

            • webhookId: string

              The Webhook uuid that needs to be deleted

              +
            • Optional options: RawAxiosRequestConfig = {}

              Override http request option.

              +

            Returns Promise<RequestArgs>

      • listWebhooks: ((limit?, page?, options?) => Promise<RequestArgs>)

        List webhooks, optionally filtered by event type.

        +

        Summary

        List webhooks

        +

        Throws

          • (limit?, page?, options?): Promise<RequestArgs>
          • Parameters

            • Optional limit: number

              A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

              +
            • Optional page: string

              A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

              +
            • Optional options: RawAxiosRequestConfig = {}

              Override http request option.

              +

            Returns Promise<RequestArgs>

      • updateWebhook: ((webhookId, updateWebhookRequest?, options?) => Promise<RequestArgs>)

        Update a webhook

        +

        Summary

        Update a webhook

        +

        Throws

          • (webhookId, updateWebhookRequest?, options?): Promise<RequestArgs>
          • Parameters

            • webhookId: string

              The Webhook id that needs to be updated

              +
            • Optional updateWebhookRequest: UpdateWebhookRequest
            • Optional options: RawAxiosRequestConfig = {}

              Override http request option.

              +

            Returns Promise<RequestArgs>

      Export

    \ No newline at end of file diff --git a/docs/functions/client_api.WebhooksApiFactory.html b/docs/functions/client_api.WebhooksApiFactory.html new file mode 100644 index 00000000..11ae1663 --- /dev/null +++ b/docs/functions/client_api.WebhooksApiFactory.html @@ -0,0 +1,18 @@ +WebhooksApiFactory | @coinbase/coinbase-sdk
    • WebhooksApi - factory interface

      +

      Parameters

      • Optional configuration: Configuration
      • Optional basePath: string
      • Optional axios: AxiosInstance

      Returns {
          createWebhook(createWebhookRequest?, options?): AxiosPromise<Webhook>;
          deleteWebhook(webhookId, options?): AxiosPromise<void>;
          listWebhooks(limit?, page?, options?): AxiosPromise<WebhookList>;
          updateWebhook(webhookId, updateWebhookRequest?, options?): AxiosPromise<Webhook>;
      }

      • createWebhook:function
        • Create a new webhook

          +

          Parameters

          • Optional createWebhookRequest: CreateWebhookRequest
          • Optional options: any

            Override http request option.

            +

          Returns AxiosPromise<Webhook>

          Summary

          Create a new webhook

          +

          Throws

      • deleteWebhook:function
        • Delete a webhook

          +

          Parameters

          • webhookId: string

            The Webhook uuid that needs to be deleted

            +
          • Optional options: any

            Override http request option.

            +

          Returns AxiosPromise<void>

          Summary

          Delete a webhook

          +

          Throws

      • listWebhooks:function
        • List webhooks, optionally filtered by event type.

          +

          Parameters

          • Optional limit: number

            A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

            +
          • Optional page: string

            A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

            +
          • Optional options: any

            Override http request option.

            +

          Returns AxiosPromise<WebhookList>

          Summary

          List webhooks

          +

          Throws

      • updateWebhook:function
        • Update a webhook

          +

          Parameters

          • webhookId: string

            The Webhook id that needs to be updated

            +
          • Optional updateWebhookRequest: UpdateWebhookRequest
          • Optional options: any

            Override http request option.

            +

          Returns AxiosPromise<Webhook>

          Summary

          Update a webhook

          +

          Throws

      Export

    \ No newline at end of file diff --git a/docs/functions/client_api.WebhooksApiFp.html b/docs/functions/client_api.WebhooksApiFp.html new file mode 100644 index 00000000..e29ff8ae --- /dev/null +++ b/docs/functions/client_api.WebhooksApiFp.html @@ -0,0 +1,18 @@ +WebhooksApiFp | @coinbase/coinbase-sdk
    • WebhooksApi - functional programming interface

      +

      Parameters

      Returns {
          createWebhook(createWebhookRequest?, options?): Promise<((axios?, basePath?) => AxiosPromise<Webhook>)>;
          deleteWebhook(webhookId, options?): Promise<((axios?, basePath?) => AxiosPromise<void>)>;
          listWebhooks(limit?, page?, options?): Promise<((axios?, basePath?) => AxiosPromise<WebhookList>)>;
          updateWebhook(webhookId, updateWebhookRequest?, options?): Promise<((axios?, basePath?) => AxiosPromise<Webhook>)>;
      }

      • createWebhook:function
        • Create a new webhook

          +

          Parameters

          • Optional createWebhookRequest: CreateWebhookRequest
          • Optional options: RawAxiosRequestConfig

            Override http request option.

            +

          Returns Promise<((axios?, basePath?) => AxiosPromise<Webhook>)>

          Summary

          Create a new webhook

          +

          Throws

      • deleteWebhook:function
        • Delete a webhook

          +

          Parameters

          • webhookId: string

            The Webhook uuid that needs to be deleted

            +
          • Optional options: RawAxiosRequestConfig

            Override http request option.

            +

          Returns Promise<((axios?, basePath?) => AxiosPromise<void>)>

          Summary

          Delete a webhook

          +

          Throws

      • listWebhooks:function
        • List webhooks, optionally filtered by event type.

          +

          Parameters

          • Optional limit: number

            A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

            +
          • Optional page: string

            A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

            +
          • Optional options: RawAxiosRequestConfig

            Override http request option.

            +

          Returns Promise<((axios?, basePath?) => AxiosPromise<WebhookList>)>

          Summary

          List webhooks

          +

          Throws

      • updateWebhook:function
        • Update a webhook

          +

          Parameters

          • webhookId: string

            The Webhook id that needs to be updated

            +
          • Optional updateWebhookRequest: UpdateWebhookRequest
          • Optional options: RawAxiosRequestConfig

            Override http request option.

            +

          Returns Promise<((axios?, basePath?) => AxiosPromise<Webhook>)>

          Summary

          Update a webhook

          +

          Throws

      Export

    \ No newline at end of file diff --git a/docs/functions/client_common.assertParamExists.html b/docs/functions/client_common.assertParamExists.html index 47dea4cf..fb120f0d 100644 --- a/docs/functions/client_common.assertParamExists.html +++ b/docs/functions/client_common.assertParamExists.html @@ -1 +1 @@ -assertParamExists | @coinbase/coinbase-sdk
    • Parameters

      • functionName: string
      • paramName: string
      • paramValue: unknown

      Returns void

      Throws

      Export

    \ No newline at end of file +assertParamExists | @coinbase/coinbase-sdk
    • Parameters

      • functionName: string
      • paramName: string
      • paramValue: unknown

      Returns void

      Throws

      Export

    \ No newline at end of file diff --git a/docs/functions/client_common.createRequestFunction.html b/docs/functions/client_common.createRequestFunction.html index 64610fca..e81b90ec 100644 --- a/docs/functions/client_common.createRequestFunction.html +++ b/docs/functions/client_common.createRequestFunction.html @@ -1 +1 @@ -createRequestFunction | @coinbase/coinbase-sdk
    • Parameters

      Returns (<T, R>(axios?, basePath?) => Promise<R>)

        • <T, R>(axios?, basePath?): Promise<R>
        • Type Parameters

          • T = unknown
          • R = AxiosResponse<T, any>

          Parameters

          • axios: AxiosInstance = globalAxios
          • basePath: string = BASE_PATH

          Returns Promise<R>

      Export

    \ No newline at end of file +createRequestFunction | @coinbase/coinbase-sdk
    • Parameters

      Returns (<T, R>(axios?, basePath?) => Promise<R>)

        • <T, R>(axios?, basePath?): Promise<R>
        • Type Parameters

          • T = unknown
          • R = AxiosResponse<T, any>

          Parameters

          • axios: AxiosInstance = globalAxios
          • basePath: string = BASE_PATH

          Returns Promise<R>

      Export

    \ No newline at end of file diff --git a/docs/functions/client_common.serializeDataIfNeeded.html b/docs/functions/client_common.serializeDataIfNeeded.html index 1e9554de..9f5c7d63 100644 --- a/docs/functions/client_common.serializeDataIfNeeded.html +++ b/docs/functions/client_common.serializeDataIfNeeded.html @@ -1 +1 @@ -serializeDataIfNeeded | @coinbase/coinbase-sdk
    • Parameters

      • value: any
      • requestOptions: any
      • Optional configuration: Configuration

      Returns any

      Export

    \ No newline at end of file +serializeDataIfNeeded | @coinbase/coinbase-sdk
    • Parameters

      • value: any
      • requestOptions: any
      • Optional configuration: Configuration

      Returns any

      Export

    \ No newline at end of file diff --git a/docs/functions/client_common.setApiKeyToObject.html b/docs/functions/client_common.setApiKeyToObject.html index ebf77e08..5500e053 100644 --- a/docs/functions/client_common.setApiKeyToObject.html +++ b/docs/functions/client_common.setApiKeyToObject.html @@ -1 +1 @@ -setApiKeyToObject | @coinbase/coinbase-sdk
    • Parameters

      • object: any
      • keyParamName: string
      • Optional configuration: Configuration

      Returns Promise<void>

      Export

    \ No newline at end of file +setApiKeyToObject | @coinbase/coinbase-sdk
    • Parameters

      • object: any
      • keyParamName: string
      • Optional configuration: Configuration

      Returns Promise<void>

      Export

    \ No newline at end of file diff --git a/docs/functions/client_common.setBasicAuthToObject.html b/docs/functions/client_common.setBasicAuthToObject.html index 5e28fb02..f4585d54 100644 --- a/docs/functions/client_common.setBasicAuthToObject.html +++ b/docs/functions/client_common.setBasicAuthToObject.html @@ -1 +1 @@ -setBasicAuthToObject | @coinbase/coinbase-sdk
    \ No newline at end of file +setBasicAuthToObject | @coinbase/coinbase-sdk
    \ No newline at end of file diff --git a/docs/functions/client_common.setBearerAuthToObject.html b/docs/functions/client_common.setBearerAuthToObject.html index ec120bac..7bbdcf67 100644 --- a/docs/functions/client_common.setBearerAuthToObject.html +++ b/docs/functions/client_common.setBearerAuthToObject.html @@ -1 +1 @@ -setBearerAuthToObject | @coinbase/coinbase-sdk
    \ No newline at end of file +setBearerAuthToObject | @coinbase/coinbase-sdk
    \ No newline at end of file diff --git a/docs/functions/client_common.setOAuthToObject.html b/docs/functions/client_common.setOAuthToObject.html index 8262da63..7f50c46b 100644 --- a/docs/functions/client_common.setOAuthToObject.html +++ b/docs/functions/client_common.setOAuthToObject.html @@ -1 +1 @@ -setOAuthToObject | @coinbase/coinbase-sdk
    • Parameters

      • object: any
      • name: string
      • scopes: string[]
      • Optional configuration: Configuration

      Returns Promise<void>

      Export

    \ No newline at end of file +setOAuthToObject | @coinbase/coinbase-sdk
    • Parameters

      • object: any
      • name: string
      • scopes: string[]
      • Optional configuration: Configuration

      Returns Promise<void>

      Export

    \ No newline at end of file diff --git a/docs/functions/client_common.setSearchParams.html b/docs/functions/client_common.setSearchParams.html index 48cd93ad..63cfa75d 100644 --- a/docs/functions/client_common.setSearchParams.html +++ b/docs/functions/client_common.setSearchParams.html @@ -1 +1 @@ -setSearchParams | @coinbase/coinbase-sdk
    • Parameters

      • url: URL
      • Rest ...objects: any[]

      Returns void

      Export

    \ No newline at end of file +setSearchParams | @coinbase/coinbase-sdk
    • Parameters

      • url: URL
      • Rest ...objects: any[]

      Returns void

      Export

    \ No newline at end of file diff --git a/docs/functions/client_common.toPathString.html b/docs/functions/client_common.toPathString.html index 4ced9630..3b592c56 100644 --- a/docs/functions/client_common.toPathString.html +++ b/docs/functions/client_common.toPathString.html @@ -1 +1 @@ -toPathString | @coinbase/coinbase-sdk
    \ No newline at end of file +toPathString | @coinbase/coinbase-sdk
    \ No newline at end of file diff --git a/docs/functions/coinbase_utils.convertStringToHex.html b/docs/functions/coinbase_utils.convertStringToHex.html index e179b72c..fa2a4047 100644 --- a/docs/functions/coinbase_utils.convertStringToHex.html +++ b/docs/functions/coinbase_utils.convertStringToHex.html @@ -1,4 +1,4 @@ convertStringToHex | @coinbase/coinbase-sdk
    • Converts a Uint8Array to a hex string.

      Parameters

      • key: Uint8Array

        The key to convert.

      Returns string

      The converted hex string.

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/functions/coinbase_utils.delay.html b/docs/functions/coinbase_utils.delay.html index 814da1f8..3b63e715 100644 --- a/docs/functions/coinbase_utils.delay.html +++ b/docs/functions/coinbase_utils.delay.html @@ -1,4 +1,4 @@ delay | @coinbase/coinbase-sdk
    • Delays the execution of the function by the specified number of seconds.

      Parameters

      • seconds: number

        The number of seconds to delay the execution.

      Returns Promise<void>

      A promise that resolves after the specified number of seconds.

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/functions/coinbase_utils.formatDate.html b/docs/functions/coinbase_utils.formatDate.html new file mode 100644 index 00000000..05c2b99c --- /dev/null +++ b/docs/functions/coinbase_utils.formatDate.html @@ -0,0 +1,4 @@ +formatDate | @coinbase/coinbase-sdk
    • Formats the input date to 'YYYY-MM-DD'

      +

      Parameters

      • date: Date

        The date to format.

        +

      Returns string

      a formated date of 'YYYY-MM-DD'

      +
    \ No newline at end of file diff --git a/docs/functions/coinbase_utils.getWeekBackDate.html b/docs/functions/coinbase_utils.getWeekBackDate.html new file mode 100644 index 00000000..660eb5a5 --- /dev/null +++ b/docs/functions/coinbase_utils.getWeekBackDate.html @@ -0,0 +1,4 @@ +getWeekBackDate | @coinbase/coinbase-sdk
    • Takes a date and subtracts a week from it. (7 days)

      +

      Parameters

      • date: Date

        The date to be formatted.

        +

      Returns string

      a formatted date that is one week ago.

      +
    \ No newline at end of file diff --git a/docs/functions/coinbase_utils.logApiResponse.html b/docs/functions/coinbase_utils.logApiResponse.html index 67b2bd91..d25f502f 100644 --- a/docs/functions/coinbase_utils.logApiResponse.html +++ b/docs/functions/coinbase_utils.logApiResponse.html @@ -2,4 +2,4 @@

    Parameters

    • response: AxiosResponse<any, any>

      The Axios response object.

    • debugging: boolean = false

      Flag to enable or disable logging.

    Returns AxiosResponse<any, any>

    The Axios response object.

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/functions/coinbase_utils.parseUnsignedPayload.html b/docs/functions/coinbase_utils.parseUnsignedPayload.html index 26d049e1..30f7410a 100644 --- a/docs/functions/coinbase_utils.parseUnsignedPayload.html +++ b/docs/functions/coinbase_utils.parseUnsignedPayload.html @@ -2,4 +2,4 @@

    Parameters

    • payload: string

      The Unsigned Payload.

    Returns Record<string, any>

    The parsed JSON object.

    Throws

    If the Unsigned Payload is invalid.

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/functions/coinbase_utils.registerAxiosInterceptors.html b/docs/functions/coinbase_utils.registerAxiosInterceptors.html index 8555c599..1f3da4ba 100644 --- a/docs/functions/coinbase_utils.registerAxiosInterceptors.html +++ b/docs/functions/coinbase_utils.registerAxiosInterceptors.html @@ -2,4 +2,4 @@

    Parameters

    • axiosInstance: Axios

      The Axios instance to register the interceptors.

    • requestFn: RequestFunctionType

      The request interceptor function.

    • responseFn: ResponseFunctionType

      The response interceptor function.

      -

    Returns void

    \ No newline at end of file +

    Returns void

    \ No newline at end of file diff --git a/docs/hierarchy.html b/docs/hierarchy.html index 562b6c01..4a5f748e 100644 --- a/docs/hierarchy.html +++ b/docs/hierarchy.html @@ -1 +1 @@ -@coinbase/coinbase-sdk
    \ No newline at end of file +@coinbase/coinbase-sdk
    \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 32b048ad..0cf7b96e 100644 --- a/docs/index.html +++ b/docs/index.html @@ -26,7 +26,7 @@

    You can import the SDK as follows

    npm install @coinbase/coinbase-sdk
     

    or

    -
    yarn install @coinbase/coinbase-sdk
    +
    yarn add @coinbase/coinbase-sdk
     

    Usage

    Initialization

    You can import the SDK as follows:

    CommonJs:

    const { Coinbase } = require("@coinbase/coinbase-sdk");
    diff --git a/docs/interfaces/client_api.Address.html b/docs/interfaces/client_api.Address.html
    index 35eb890d..c922daa5 100644
    --- a/docs/interfaces/client_api.Address.html
    +++ b/docs/interfaces/client_api.Address.html
    @@ -1,14 +1,14 @@
     Address | @coinbase/coinbase-sdk

    Export

    Address

    -
    interface Address {
        address_id: string;
        network_id: string;
        public_key: string;
        wallet_id: string;
    }

    Properties

    interface Address {
        address_id: string;
        network_id: string;
        public_key: string;
        wallet_id: string;
    }

    Properties

    address_id: string

    The onchain address derived on the server-side.

    Memberof

    Address

    -
    network_id: string

    The ID of the blockchain network

    +
    network_id: string

    The ID of the blockchain network

    Memberof

    Address

    -
    public_key: string

    The public key from which the address is derived.

    +
    public_key: string

    The public key from which the address is derived.

    Memberof

    Address

    -
    wallet_id: string

    The ID of the wallet that owns the address

    +
    wallet_id: string

    The ID of the wallet that owns the address

    Memberof

    Address

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.AddressBalanceList.html b/docs/interfaces/client_api.AddressBalanceList.html index 85dec56c..038c5d3a 100644 --- a/docs/interfaces/client_api.AddressBalanceList.html +++ b/docs/interfaces/client_api.AddressBalanceList.html @@ -1,13 +1,13 @@ AddressBalanceList | @coinbase/coinbase-sdk

    Export

    AddressBalanceList

    -
    interface AddressBalanceList {
        data: Balance[];
        has_more: boolean;
        next_page: string;
        total_count: number;
    }

    Properties

    interface AddressBalanceList {
        data: Balance[];
        has_more: boolean;
        next_page: string;
        total_count: number;
    }

    Properties

    data: Balance[]

    Memberof

    AddressBalanceList

    -
    has_more: boolean

    True if this list has another page of items after this one that can be fetched.

    +
    has_more: boolean

    True if this list has another page of items after this one that can be fetched.

    Memberof

    AddressBalanceList

    -
    next_page: string

    The page token to be used to fetch the next page.

    +
    next_page: string

    The page token to be used to fetch the next page.

    Memberof

    AddressBalanceList

    -
    total_count: number

    The total number of balances for the wallet.

    +
    total_count: number

    The total number of balances for the wallet.

    Memberof

    AddressBalanceList

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.AddressList.html b/docs/interfaces/client_api.AddressList.html index dcb18892..f1982247 100644 --- a/docs/interfaces/client_api.AddressList.html +++ b/docs/interfaces/client_api.AddressList.html @@ -1,13 +1,13 @@ AddressList | @coinbase/coinbase-sdk

    Export

    AddressList

    -
    interface AddressList {
        data: Address[];
        has_more: boolean;
        next_page: string;
        total_count: number;
    }

    Properties

    interface AddressList {
        data: Address[];
        has_more: boolean;
        next_page: string;
        total_count: number;
    }

    Properties

    data: Address[]

    Memberof

    AddressList

    -
    has_more: boolean

    True if this list has another page of items after this one that can be fetched.

    +
    has_more: boolean

    True if this list has another page of items after this one that can be fetched.

    Memberof

    AddressList

    -
    next_page: string

    The page token to be used to fetch the next page.

    +
    next_page: string

    The page token to be used to fetch the next page.

    Memberof

    AddressList

    -
    total_count: number

    The total number of addresses for the wallet.

    +
    total_count: number

    The total number of addresses for the wallet.

    Memberof

    AddressList

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.AddressesApiInterface.html b/docs/interfaces/client_api.AddressesApiInterface.html index 62baa7fa..d5e6cd10 100644 --- a/docs/interfaces/client_api.AddressesApiInterface.html +++ b/docs/interfaces/client_api.AddressesApiInterface.html @@ -1,6 +1,6 @@ AddressesApiInterface | @coinbase/coinbase-sdk

    AddressesApi - interface

    Export

    AddressesApi

    -
    interface AddressesApiInterface {
        createAddress(walletId, createAddressRequest?, options?): AxiosPromise<Address>;
        getAddress(walletId, addressId, options?): AxiosPromise<Address>;
        getAddressBalance(walletId, addressId, assetId, options?): AxiosPromise<Balance>;
        listAddressBalances(walletId, addressId, page?, options?): AxiosPromise<AddressBalanceList>;
        listAddresses(walletId, limit?, page?, options?): AxiosPromise<AddressList>;
        requestFaucetFunds(walletId, addressId, options?): AxiosPromise<FaucetTransaction>;
    }

    Implemented by

    Methods

    interface AddressesApiInterface {
        createAddress(walletId, createAddressRequest?, options?): AxiosPromise<Address>;
        getAddress(walletId, addressId, options?): AxiosPromise<Address>;
        getAddressBalance(walletId, addressId, assetId, options?): AxiosPromise<Balance>;
        listAddressBalances(walletId, addressId, page?, options?): AxiosPromise<AddressBalanceList>;
        listAddresses(walletId, limit?, page?, options?): AxiosPromise<AddressList>;
        requestFaucetFunds(walletId, addressId, options?): AxiosPromise<FaucetTransaction>;
    }

    Implemented by

    Methods

  • Optional createAddressRequest: CreateAddressRequest
  • Optional options: RawAxiosRequestConfig

    Override http request option.

  • Returns AxiosPromise<Address>

    Summary

    Create a new address

    Throws

    Memberof

    AddressesApiInterface

    -
    • Get address

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to.

      • addressId: string

        The onchain address of the address that is being fetched.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<Address>

      Summary

      Get address by onchain address

      Throws

      Memberof

      AddressesApiInterface

      -
    • Get address balance

      Parameters

      • walletId: string

        The ID of the wallet to fetch the balance for

      • addressId: string

        The onchain address of the address that is being fetched.

      • assetId: string

        The symbol of the asset to fetch the balance for

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<Balance>

      Summary

      Get address balance for asset

      Throws

      Memberof

      AddressesApiInterface

      -
    • Get address balances

      Parameters

      • walletId: string

        The ID of the wallet to fetch the balances for

      • addressId: string

        The onchain address of the address that is being fetched.

      • Optional page: string

        A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<AddressBalanceList>

      Summary

      Get all balances for address

      Throws

      Memberof

      AddressesApiInterface

      -
    • List addresses in the wallet.

      Parameters

      • walletId: string

        The ID of the wallet whose addresses to fetch

      • Optional limit: number

        A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

      • Optional page: string

        A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<AddressList>

      Summary

      List addresses in a wallet.

      Throws

      Memberof

      AddressesApiInterface

      -
    • Request faucet funds to be sent to onchain address.

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to.

      • addressId: string

        The onchain address of the address that is being fetched.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<FaucetTransaction>

      Summary

      Request faucet funds for onchain address.

      Throws

      Memberof

      AddressesApiInterface

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.Asset.html b/docs/interfaces/client_api.Asset.html index 2f8cd89c..643e3851 100644 --- a/docs/interfaces/client_api.Asset.html +++ b/docs/interfaces/client_api.Asset.html @@ -1,15 +1,15 @@ Asset | @coinbase/coinbase-sdk

    An asset onchain scoped to a particular network, e.g. ETH on base-sepolia, or the USDC ERC20 Token on ethereum-mainnet.

    Export

    Asset

    -
    interface Asset {
        asset_id: string;
        contract_address?: string;
        decimals?: number;
        network_id: string;
    }

    Properties

    interface Asset {
        asset_id: string;
        contract_address?: string;
        decimals?: number;
        network_id: string;
    }

    Properties

    asset_id: string

    The ID for the asset on the network

    Memberof

    Asset

    -
    contract_address?: string

    The optional contract address for the asset. This will be specified for smart contract-based assets, for example ERC20s.

    +
    contract_address?: string

    The optional contract address for the asset. This will be specified for smart contract-based assets, for example ERC20s.

    Memberof

    Asset

    -
    decimals?: number

    The number of decimals the asset supports. This is used to convert from atomic units to base units.

    +
    decimals?: number

    The number of decimals the asset supports. This is used to convert from atomic units to base units.

    Memberof

    Asset

    -
    network_id: string

    The ID of the blockchain network

    +
    network_id: string

    The ID of the blockchain network

    Memberof

    Asset

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.AssetsApiInterface.html b/docs/interfaces/client_api.AssetsApiInterface.html index bf2b5fc3..a24c4292 100644 --- a/docs/interfaces/client_api.AssetsApiInterface.html +++ b/docs/interfaces/client_api.AssetsApiInterface.html @@ -1,10 +1,10 @@ AssetsApiInterface | @coinbase/coinbase-sdk

    AssetsApi - interface

    Export

    AssetsApi

    -
    interface AssetsApiInterface {
        getAsset(networkId, assetId, options?): AxiosPromise<Asset>;
    }

    Implemented by

    Methods

    interface AssetsApiInterface {
        getAsset(networkId, assetId, options?): AxiosPromise<Asset>;
    }

    Implemented by

    Methods

    Methods

    • Get the asset for the specified asset ID.

      Parameters

      • networkId: string

        The ID of the blockchain network

        -
      • assetId: string

        The ID of the asset to fetch

        +
      • assetId: string

        The ID of the asset to fetch. This could be a symbol or an ERC20 contract address.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<Asset>

      Summary

      Get the asset for the specified asset ID.

      Throws

      Memberof

      AssetsApiInterface

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.Balance.html b/docs/interfaces/client_api.Balance.html index b7a6309a..48878d11 100644 --- a/docs/interfaces/client_api.Balance.html +++ b/docs/interfaces/client_api.Balance.html @@ -1,8 +1,8 @@ Balance | @coinbase/coinbase-sdk

    The balance of an asset onchain

    Export

    Balance

    -
    interface Balance {
        amount: string;
        asset: Asset;
    }

    Properties

    interface Balance {
        amount: string;
        asset: Asset;
    }

    Properties

    Properties

    amount: string

    The amount in the atomic units of the asset

    Memberof

    Balance

    -
    asset: Asset

    Memberof

    Balance

    -
    \ No newline at end of file +
    asset: Asset

    Memberof

    Balance

    +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.BroadcastStakingOperationRequest.html b/docs/interfaces/client_api.BroadcastStakingOperationRequest.html new file mode 100644 index 00000000..9be7ee2d --- /dev/null +++ b/docs/interfaces/client_api.BroadcastStakingOperationRequest.html @@ -0,0 +1,8 @@ +BroadcastStakingOperationRequest | @coinbase/coinbase-sdk

    Export

    BroadcastStakingOperationRequest

    +
    interface BroadcastStakingOperationRequest {
        signed_payload: string;
        transaction_index: number;
    }

    Properties

    signed_payload: string

    The hex-encoded signed payload of the staking operation.

    +

    Memberof

    BroadcastStakingOperationRequest

    +
    transaction_index: number

    The index in the transaction array of the staking operation.

    +

    Memberof

    BroadcastStakingOperationRequest

    +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.BroadcastTradeRequest.html b/docs/interfaces/client_api.BroadcastTradeRequest.html index cba06e36..78446f19 100644 --- a/docs/interfaces/client_api.BroadcastTradeRequest.html +++ b/docs/interfaces/client_api.BroadcastTradeRequest.html @@ -1,8 +1,8 @@ BroadcastTradeRequest | @coinbase/coinbase-sdk

    Export

    BroadcastTradeRequest

    -
    interface BroadcastTradeRequest {
        approve_transaction_signed_payload?: string;
        signed_payload: string;
    }

    Properties

    interface BroadcastTradeRequest {
        approve_transaction_signed_payload?: string;
        signed_payload: string;
    }

    Properties

    approve_transaction_signed_payload?: string

    The hex-encoded signed payload of the approval transaction

    Memberof

    BroadcastTradeRequest

    -
    signed_payload: string

    The hex-encoded signed payload of the trade

    +
    signed_payload: string

    The hex-encoded signed payload of the trade

    Memberof

    BroadcastTradeRequest

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.BroadcastTransferRequest.html b/docs/interfaces/client_api.BroadcastTransferRequest.html index 9713d311..1e856318 100644 --- a/docs/interfaces/client_api.BroadcastTransferRequest.html +++ b/docs/interfaces/client_api.BroadcastTransferRequest.html @@ -1,5 +1,5 @@ BroadcastTransferRequest | @coinbase/coinbase-sdk

    Export

    BroadcastTransferRequest

    -
    interface BroadcastTransferRequest {
        signed_payload: string;
    }

    Properties

    interface BroadcastTransferRequest {
        signed_payload: string;
    }

    Properties

    Properties

    signed_payload: string

    The hex-encoded signed payload of the transfer

    Memberof

    BroadcastTransferRequest

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.BuildStakingOperationRequest.html b/docs/interfaces/client_api.BuildStakingOperationRequest.html index 53813e19..307e2112 100644 --- a/docs/interfaces/client_api.BuildStakingOperationRequest.html +++ b/docs/interfaces/client_api.BuildStakingOperationRequest.html @@ -1,16 +1,16 @@ BuildStakingOperationRequest | @coinbase/coinbase-sdk

    Export

    BuildStakingOperationRequest

    -
    interface BuildStakingOperationRequest {
        action: string;
        address_id: string;
        asset_id: string;
        network_id: string;
        options: {
            [key: string]: string;
        };
    }

    Properties

    interface BuildStakingOperationRequest {
        action: string;
        address_id: string;
        asset_id: string;
        network_id: string;
        options: {
            [key: string]: string;
        };
    }

    Properties

    action: string

    The type of staking operation

    Memberof

    BuildStakingOperationRequest

    -
    address_id: string

    The onchain address from which the staking transaction originates and is responsible for signing the transaction.

    +
    address_id: string

    The onchain address from which the staking transaction originates and is responsible for signing the transaction.

    Memberof

    BuildStakingOperationRequest

    -
    asset_id: string

    The ID of the asset being staked

    +
    asset_id: string

    The ID of the asset being staked

    Memberof

    BuildStakingOperationRequest

    -
    network_id: string

    The ID of the blockchain network

    +
    network_id: string

    The ID of the blockchain network

    Memberof

    BuildStakingOperationRequest

    -
    options: {
        [key: string]: string;
    }

    Type declaration

    • [key: string]: string

    Memberof

    BuildStakingOperationRequest

    -
    \ No newline at end of file +
    options: {
        [key: string]: string;
    }

    Type declaration

    • [key: string]: string

    Memberof

    BuildStakingOperationRequest

    +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.ContractEvent.html b/docs/interfaces/client_api.ContractEvent.html new file mode 100644 index 00000000..8f448169 --- /dev/null +++ b/docs/interfaces/client_api.ContractEvent.html @@ -0,0 +1,42 @@ +ContractEvent | @coinbase/coinbase-sdk

    Represents a single decoded event emitted by a smart contract

    +

    Export

    ContractEvent

    +
    interface ContractEvent {
        block_height?: number;
        block_time?: string;
        contract_address?: string;
        contract_name?: string;
        data?: string;
        event_index?: number;
        event_name?: string;
        fourBytes?: string;
        network_name?: string;
        protocol_name?: string;
        sig?: string;
        tx_hash?: string;
        tx_index?: number;
    }

    Properties

    block_height?: number

    The block number in which the event was emitted

    +

    Memberof

    ContractEvent

    +
    block_time?: string

    The timestamp of the block in which the event was emitted

    +

    Memberof

    ContractEvent

    +
    contract_address?: string

    The EVM address of the smart contract

    +

    Memberof

    ContractEvent

    +
    contract_name?: string

    The name of the specific contract within the project

    +

    Memberof

    ContractEvent

    +
    data?: string

    The event data in a stringified format

    +

    Memberof

    ContractEvent

    +
    event_index?: number

    The index of the event within the transaction

    +

    Memberof

    ContractEvent

    +
    event_name?: string

    The name of the event emitted by the contract

    +

    Memberof

    ContractEvent

    +
    fourBytes?: string

    The first four bytes of the Keccak hash of the event signature

    +

    Memberof

    ContractEvent

    +
    network_name?: string

    The name of the blockchain network

    +

    Memberof

    ContractEvent

    +
    protocol_name?: string

    The name of the blockchain project or protocol

    +

    Memberof

    ContractEvent

    +
    sig?: string

    The signature of the event, including parameter types

    +

    Memberof

    ContractEvent

    +
    tx_hash?: string

    The transaction hash in which the event was emitted

    +

    Memberof

    ContractEvent

    +
    tx_index?: number

    The index of the transaction within the block

    +

    Memberof

    ContractEvent

    +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.ContractEventList.html b/docs/interfaces/client_api.ContractEventList.html new file mode 100644 index 00000000..44ef65c9 --- /dev/null +++ b/docs/interfaces/client_api.ContractEventList.html @@ -0,0 +1,12 @@ +ContractEventList | @coinbase/coinbase-sdk

    A list of contract events with pagination information

    +

    Export

    ContractEventList

    +
    interface ContractEventList {
        data: ContractEvent[];
        has_more: boolean;
        next_page: string;
    }

    Properties

    Properties

    An array of ContractEvent objects

    +

    Memberof

    ContractEventList

    +
    has_more: boolean

    True if this list has another page of items after this one that can be fetched

    +

    Memberof

    ContractEventList

    +
    next_page: string

    The page token to be used to fetch the next page

    +

    Memberof

    ContractEventList

    +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.ContractEventsApiInterface.html b/docs/interfaces/client_api.ContractEventsApiInterface.html new file mode 100644 index 00000000..e01c5788 --- /dev/null +++ b/docs/interfaces/client_api.ContractEventsApiInterface.html @@ -0,0 +1,16 @@ +ContractEventsApiInterface | @coinbase/coinbase-sdk

    ContractEventsApi - interface

    +

    Export

    ContractEventsApi

    +
    interface ContractEventsApiInterface {
        listContractEvents(networkId, protocolName, contractAddress, fromBlockHeight, toBlockHeight, contractName?, eventName?, nextPage?, options?): AxiosPromise<ContractEventList>;
    }

    Implemented by

    Methods

    • Retrieve events for a specific contract

      +

      Parameters

      • networkId: string

        Unique identifier for the blockchain network

        +
      • protocolName: string

        Case-sensitive name of the blockchain protocol

        +
      • contractAddress: string

        EVM address of the smart contract (42 characters, including &#39;0x&#39;, in lowercase)

        +
      • fromBlockHeight: number

        Lower bound of the block range to query (inclusive)

        +
      • toBlockHeight: number

        Upper bound of the block range to query (inclusive)

        +
      • Optional contractName: string

        Case-sensitive name of the specific contract within the project

        +
      • Optional eventName: string

        Case-sensitive name of the event to filter for in the contract&#39;s logs

        +
      • Optional nextPage: string

        Pagination token for retrieving the next set of results

        +
      • Optional options: RawAxiosRequestConfig

        Override http request option.

        +

      Returns AxiosPromise<ContractEventList>

      Summary

      Get contract events

      +

      Throws

      Memberof

      ContractEventsApiInterface

      +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.CreateAddressRequest.html b/docs/interfaces/client_api.CreateAddressRequest.html index 5f57e587..a77b3236 100644 --- a/docs/interfaces/client_api.CreateAddressRequest.html +++ b/docs/interfaces/client_api.CreateAddressRequest.html @@ -1,8 +1,8 @@ CreateAddressRequest | @coinbase/coinbase-sdk

    Export

    CreateAddressRequest

    -
    interface CreateAddressRequest {
        attestation?: string;
        public_key?: string;
    }

    Properties

    interface CreateAddressRequest {
        attestation?: string;
        public_key?: string;
    }

    Properties

    attestation?: string

    An attestation signed by the private key that is associated with the wallet. The attestation will be a hex-encoded signature of a json payload with fields wallet_id and public_key, signed by the private key associated with the public_key set in the request.

    Memberof

    CreateAddressRequest

    -
    public_key?: string

    The public key from which the address will be derived.

    +
    public_key?: string

    The public key from which the address will be derived.

    Memberof

    CreateAddressRequest

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.CreateServerSignerRequest.html b/docs/interfaces/client_api.CreateServerSignerRequest.html index 7357d3d1..7306c6bd 100644 --- a/docs/interfaces/client_api.CreateServerSignerRequest.html +++ b/docs/interfaces/client_api.CreateServerSignerRequest.html @@ -1,11 +1,11 @@ CreateServerSignerRequest | @coinbase/coinbase-sdk

    Export

    CreateServerSignerRequest

    -
    interface CreateServerSignerRequest {
        enrollment_data: string;
        is_mpc: boolean;
        server_signer_id?: string;
    }

    Properties

    interface CreateServerSignerRequest {
        enrollment_data: string;
        is_mpc: boolean;
        server_signer_id?: string;
    }

    Properties

    enrollment_data: string

    The enrollment data of the server signer. This will be the base64 encoded server-signer-id for the 1 of 1 server signer.

    Memberof

    CreateServerSignerRequest

    -
    is_mpc: boolean

    Whether the Server-Signer uses MPC.

    +
    is_mpc: boolean

    Whether the Server-Signer uses MPC.

    Memberof

    CreateServerSignerRequest

    -
    server_signer_id?: string

    The ID of the server signer for the 1 of 1 server signer.

    +
    server_signer_id?: string

    The ID of the server signer for the 1 of 1 server signer.

    Memberof

    CreateServerSignerRequest

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.CreateStakingOperationRequest.html b/docs/interfaces/client_api.CreateStakingOperationRequest.html new file mode 100644 index 00000000..2130323d --- /dev/null +++ b/docs/interfaces/client_api.CreateStakingOperationRequest.html @@ -0,0 +1,13 @@ +CreateStakingOperationRequest | @coinbase/coinbase-sdk

    Export

    CreateStakingOperationRequest

    +
    interface CreateStakingOperationRequest {
        action: string;
        asset_id: string;
        network_id: string;
        options: {
            [key: string]: string;
        };
    }

    Properties

    action: string

    The type of staking operation.

    +

    Memberof

    CreateStakingOperationRequest

    +
    asset_id: string

    The ID of the asset being staked.

    +

    Memberof

    CreateStakingOperationRequest

    +
    network_id: string

    The ID of the blockchain network.

    +

    Memberof

    CreateStakingOperationRequest

    +
    options: {
        [key: string]: string;
    }

    Type declaration

    • [key: string]: string

    Memberof

    CreateStakingOperationRequest

    +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.CreateTradeRequest.html b/docs/interfaces/client_api.CreateTradeRequest.html index 44304784..2cfbd940 100644 --- a/docs/interfaces/client_api.CreateTradeRequest.html +++ b/docs/interfaces/client_api.CreateTradeRequest.html @@ -1,11 +1,11 @@ CreateTradeRequest | @coinbase/coinbase-sdk

    Export

    CreateTradeRequest

    -
    interface CreateTradeRequest {
        amount: string;
        from_asset_id: string;
        to_asset_id: string;
    }

    Properties

    interface CreateTradeRequest {
        amount: string;
        from_asset_id: string;
        to_asset_id: string;
    }

    Properties

    amount: string

    The amount to trade

    Memberof

    CreateTradeRequest

    -
    from_asset_id: string

    The ID of the asset to trade

    +
    from_asset_id: string

    The ID of the asset to trade

    Memberof

    CreateTradeRequest

    -
    to_asset_id: string

    The ID of the asset to receive from the trade

    +
    to_asset_id: string

    The ID of the asset to receive from the trade

    Memberof

    CreateTradeRequest

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.CreateTransferRequest.html b/docs/interfaces/client_api.CreateTransferRequest.html index 420dc506..8e410b22 100644 --- a/docs/interfaces/client_api.CreateTransferRequest.html +++ b/docs/interfaces/client_api.CreateTransferRequest.html @@ -1,14 +1,14 @@ CreateTransferRequest | @coinbase/coinbase-sdk

    Export

    CreateTransferRequest

    -
    interface CreateTransferRequest {
        amount: string;
        asset_id: string;
        destination: string;
        network_id: string;
    }

    Properties

    interface CreateTransferRequest {
        amount: string;
        asset_id: string;
        destination: string;
        network_id: string;
    }

    Properties

    amount: string

    The amount to transfer

    Memberof

    CreateTransferRequest

    -
    asset_id: string

    The ID of the asset to transfer

    +
    asset_id: string

    The ID of the asset to transfer

    Memberof

    CreateTransferRequest

    -
    destination: string

    The destination address

    +
    destination: string

    The destination address

    Memberof

    CreateTransferRequest

    -
    network_id: string

    The ID of the blockchain network

    +
    network_id: string

    The ID of the blockchain network

    Memberof

    CreateTransferRequest

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.CreateWalletRequest.html b/docs/interfaces/client_api.CreateWalletRequest.html index 17ab5302..9185c50f 100644 --- a/docs/interfaces/client_api.CreateWalletRequest.html +++ b/docs/interfaces/client_api.CreateWalletRequest.html @@ -1,4 +1,4 @@ CreateWalletRequest | @coinbase/coinbase-sdk

    Export

    CreateWalletRequest

    -
    interface CreateWalletRequest {
        wallet: CreateWalletRequestWallet;
    }

    Properties

    interface CreateWalletRequest {
        wallet: CreateWalletRequestWallet;
    }

    Properties

    Properties

    Memberof

    CreateWalletRequest

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.CreateWalletRequestWallet.html b/docs/interfaces/client_api.CreateWalletRequestWallet.html index 7096487e..053436d2 100644 --- a/docs/interfaces/client_api.CreateWalletRequestWallet.html +++ b/docs/interfaces/client_api.CreateWalletRequestWallet.html @@ -1,9 +1,9 @@ CreateWalletRequestWallet | @coinbase/coinbase-sdk

    Parameters for configuring a wallet

    Export

    CreateWalletRequestWallet

    -
    interface CreateWalletRequestWallet {
        network_id: string;
        use_server_signer?: boolean;
    }

    Properties

    interface CreateWalletRequestWallet {
        network_id: string;
        use_server_signer?: boolean;
    }

    Properties

    network_id: string

    The ID of the blockchain network

    Memberof

    CreateWalletRequestWallet

    -
    use_server_signer?: boolean

    Whether the wallet should use the project's server signer or if the addresses in the wallets will belong to a private key the developer manages. Defaults to false.

    +
    use_server_signer?: boolean

    Whether the wallet should use the project's server signer or if the addresses in the wallets will belong to a private key the developer manages. Defaults to false.

    Memberof

    CreateWalletRequestWallet

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.CreateWebhookRequest.html b/docs/interfaces/client_api.CreateWebhookRequest.html new file mode 100644 index 00000000..fa5f32fe --- /dev/null +++ b/docs/interfaces/client_api.CreateWebhookRequest.html @@ -0,0 +1,13 @@ +CreateWebhookRequest | @coinbase/coinbase-sdk

    Export

    CreateWebhookRequest

    +
    interface CreateWebhookRequest {
        event_filters?: WebhookEventFilter[];
        event_type?: WebhookEventType;
        network_id: string;
        notification_uri: string;
    }

    Properties

    event_filters?: WebhookEventFilter[]

    Webhook will monitor all events that matches any one of the event filters.

    +

    Memberof

    CreateWebhookRequest

    +
    event_type?: WebhookEventType

    Memberof

    CreateWebhookRequest

    +
    network_id: string

    The ID of the blockchain network

    +

    Memberof

    CreateWebhookRequest

    +
    notification_uri: string

    The URL to which the notifications will be sent

    +

    Memberof

    CreateWebhookRequest

    +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.EthereumValidatorMetadata.html b/docs/interfaces/client_api.EthereumValidatorMetadata.html index 47c6e390..46414e7d 100644 --- a/docs/interfaces/client_api.EthereumValidatorMetadata.html +++ b/docs/interfaces/client_api.EthereumValidatorMetadata.html @@ -1,6 +1,6 @@ EthereumValidatorMetadata | @coinbase/coinbase-sdk

    An Ethereum validator.

    Export

    EthereumValidatorMetadata

    -
    interface EthereumValidatorMetadata {
        activationEpoch: string;
        balance: Balance;
        effective_balance: Balance;
        exitEpoch: string;
        index: string;
        public_key: string;
        slashed: boolean;
        withdrawableEpoch: string;
        withdrawl_address: string;
    }

    Properties

    interface EthereumValidatorMetadata {
        activationEpoch: string;
        balance: Balance;
        effective_balance: Balance;
        exitEpoch: string;
        index: string;
        public_key: string;
        slashed: boolean;
        withdrawableEpoch: string;
        withdrawl_address: string;
    }

    Properties

    activationEpoch: string

    The epoch at which the validator was activated.

    Memberof

    EthereumValidatorMetadata

    -
    balance: Balance

    Memberof

    EthereumValidatorMetadata

    -
    effective_balance: Balance

    Memberof

    EthereumValidatorMetadata

    -
    exitEpoch: string

    The epoch at which the validator exited.

    +
    balance: Balance

    Memberof

    EthereumValidatorMetadata

    +
    effective_balance: Balance

    Memberof

    EthereumValidatorMetadata

    +
    exitEpoch: string

    The epoch at which the validator exited.

    Memberof

    EthereumValidatorMetadata

    -
    index: string

    The index of the validator in the validator set.

    +
    index: string

    The index of the validator in the validator set.

    Memberof

    EthereumValidatorMetadata

    -
    public_key: string

    The public key of the validator.

    +
    public_key: string

    The public key of the validator.

    Memberof

    EthereumValidatorMetadata

    -
    slashed: boolean

    Whether the validator has been slashed.

    +
    slashed: boolean

    Whether the validator has been slashed.

    Memberof

    EthereumValidatorMetadata

    -
    withdrawableEpoch: string

    The epoch at which the validator can withdraw.

    +
    withdrawableEpoch: string

    The epoch at which the validator can withdraw.

    Memberof

    EthereumValidatorMetadata

    -
    withdrawl_address: string

    The address to which the validator's rewards are sent.

    +
    withdrawl_address: string

    The address to which the validator's rewards are sent.

    Memberof

    EthereumValidatorMetadata

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.ExternalAddressesApiInterface.html b/docs/interfaces/client_api.ExternalAddressesApiInterface.html index a4266d69..86f484a4 100644 --- a/docs/interfaces/client_api.ExternalAddressesApiInterface.html +++ b/docs/interfaces/client_api.ExternalAddressesApiInterface.html @@ -1,6 +1,6 @@ ExternalAddressesApiInterface | @coinbase/coinbase-sdk

    ExternalAddressesApi - interface

    Export

    ExternalAddressesApi

    -
    interface ExternalAddressesApiInterface {
        getExternalAddressBalance(networkId, addressId, assetId, options?): AxiosPromise<Balance>;
        listExternalAddressBalances(networkId, addressId, page?, options?): AxiosPromise<AddressBalanceList>;
        requestExternalFaucetFunds(networkId, addressId, options?): AxiosPromise<FaucetTransaction>;
    }

    Implemented by

    Methods

    interface ExternalAddressesApiInterface {
        getExternalAddressBalance(networkId, addressId, assetId, options?): AxiosPromise<Balance>;
        listExternalAddressBalances(networkId, addressId, page?, options?): AxiosPromise<AddressBalanceList>;
        requestExternalFaucetFunds(networkId, addressId, options?): AxiosPromise<FaucetTransaction>;
    }

    Implemented by

    Methods

    • Get the balance of an asset in an external address

      @@ -10,17 +10,17 @@
    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns AxiosPromise<Balance>

    Summary

    Get the balance of an asset in an external address

    Throws

    Memberof

    ExternalAddressesApiInterface

    -
    • List all of the balances of an external address

      Parameters

      • networkId: string

        The ID of the blockchain network

      • addressId: string

        The ID of the address to fetch the balance for

      • Optional page: string

        A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<AddressBalanceList>

      Summary

      Get the balances of an external address

      Throws

      Memberof

      ExternalAddressesApiInterface

      -
    • Request faucet funds to be sent to external address.

      Parameters

      • networkId: string

        The ID of the wallet the address belongs to.

      • addressId: string

        The onchain address of the address that is being fetched.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<FaucetTransaction>

      Summary

      Request faucet funds for external address.

      Throws

      Memberof

      ExternalAddressesApiInterface

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.FaucetTransaction.html b/docs/interfaces/client_api.FaucetTransaction.html index ce0751e8..f6c0f77b 100644 --- a/docs/interfaces/client_api.FaucetTransaction.html +++ b/docs/interfaces/client_api.FaucetTransaction.html @@ -1,9 +1,9 @@ FaucetTransaction | @coinbase/coinbase-sdk

    The faucet transaction

    Export

    FaucetTransaction

    -
    interface FaucetTransaction {
        transaction_hash: string;
        transaction_link: string;
    }

    Properties

    interface FaucetTransaction {
        transaction_hash: string;
        transaction_link: string;
    }

    Properties

    transaction_hash: string

    The transaction hash of the transaction the faucet created.

    Memberof

    FaucetTransaction

    -
    transaction_link: string

    Link to the transaction on the blockchain explorer.

    +
    transaction_link: string

    Link to the transaction on the blockchain explorer.

    Memberof

    FaucetTransaction

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.FetchStakingRewards200Response.html b/docs/interfaces/client_api.FetchStakingRewards200Response.html index 2b149d4c..d4675511 100644 --- a/docs/interfaces/client_api.FetchStakingRewards200Response.html +++ b/docs/interfaces/client_api.FetchStakingRewards200Response.html @@ -1,10 +1,10 @@ FetchStakingRewards200Response | @coinbase/coinbase-sdk

    Export

    FetchStakingRewards200Response

    -
    interface FetchStakingRewards200Response {
        data: StakingReward[];
        has_more: boolean;
        next_page: string;
    }

    Properties

    interface FetchStakingRewards200Response {
        data: StakingReward[];
        has_more: boolean;
        next_page: string;
    }

    Properties

    Memberof

    FetchStakingRewards200Response

    -
    has_more: boolean

    True if this list has another page of items after this one that can be fetched.

    +
    has_more: boolean

    True if this list has another page of items after this one that can be fetched.

    Memberof

    FetchStakingRewards200Response

    -
    next_page: string

    The page token to be used to fetch the next page.

    +
    next_page: string

    The page token to be used to fetch the next page.

    Memberof

    FetchStakingRewards200Response

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.FetchStakingRewardsRequest.html b/docs/interfaces/client_api.FetchStakingRewardsRequest.html index acf5ded1..074c3a23 100644 --- a/docs/interfaces/client_api.FetchStakingRewardsRequest.html +++ b/docs/interfaces/client_api.FetchStakingRewardsRequest.html @@ -1,5 +1,5 @@ FetchStakingRewardsRequest | @coinbase/coinbase-sdk

    Export

    FetchStakingRewardsRequest

    -
    interface FetchStakingRewardsRequest {
        address_ids: string[];
        asset_id: string;
        end_time: string;
        format: StakingRewardFormat;
        network_id: string;
        start_time: string;
    }

    Properties

    interface FetchStakingRewardsRequest {
        address_ids: string[];
        asset_id: string;
        end_time: string;
        format: StakingRewardFormat;
        network_id: string;
        start_time: string;
    }

    Properties

    Properties

    address_ids: string[]

    The onchain addresses for which the staking rewards are being fetched

    Memberof

    FetchStakingRewardsRequest

    -
    asset_id: string

    The ID of the asset for which the staking rewards are being fetched

    +
    asset_id: string

    The ID of the asset for which the staking rewards are being fetched

    Memberof

    FetchStakingRewardsRequest

    -
    end_time: string

    The end time of this reward period

    +
    end_time: string

    The end time of this reward period

    Memberof

    FetchStakingRewardsRequest

    -

    Memberof

    FetchStakingRewardsRequest

    -
    network_id: string

    The ID of the blockchain network

    +

    Memberof

    FetchStakingRewardsRequest

    +
    network_id: string

    The ID of the blockchain network

    Memberof

    FetchStakingRewardsRequest

    -
    start_time: string

    The start time of this reward period

    +
    start_time: string

    The start time of this reward period

    Memberof

    FetchStakingRewardsRequest

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.GetStakingContextRequest.html b/docs/interfaces/client_api.GetStakingContextRequest.html index 2b71b42d..32f38d13 100644 --- a/docs/interfaces/client_api.GetStakingContextRequest.html +++ b/docs/interfaces/client_api.GetStakingContextRequest.html @@ -1,13 +1,13 @@ GetStakingContextRequest | @coinbase/coinbase-sdk

    Export

    GetStakingContextRequest

    -
    interface GetStakingContextRequest {
        address_id: string;
        asset_id: string;
        network_id: string;
        options: {
            [key: string]: string;
        };
    }

    Properties

    interface GetStakingContextRequest {
        address_id: string;
        asset_id: string;
        network_id: string;
        options: {
            [key: string]: string;
        };
    }

    Properties

    address_id: string

    The onchain address for which the staking context is being fetched

    Memberof

    GetStakingContextRequest

    -
    asset_id: string

    The ID of the asset being staked

    +
    asset_id: string

    The ID of the asset being staked

    Memberof

    GetStakingContextRequest

    -
    network_id: string

    The ID of the blockchain network

    +
    network_id: string

    The ID of the blockchain network

    Memberof

    GetStakingContextRequest

    -
    options: {
        [key: string]: string;
    }

    Type declaration

    • [key: string]: string

    Memberof

    GetStakingContextRequest

    -
    \ No newline at end of file +
    options: {
        [key: string]: string;
    }

    Type declaration

    • [key: string]: string

    Memberof

    GetStakingContextRequest

    +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.ModelError.html b/docs/interfaces/client_api.ModelError.html index f8069378..c73e2bc5 100644 --- a/docs/interfaces/client_api.ModelError.html +++ b/docs/interfaces/client_api.ModelError.html @@ -1,9 +1,9 @@ ModelError | @coinbase/coinbase-sdk

    An error response from the Coinbase Developer Platform API

    Export

    ModelError

    -
    interface ModelError {
        code: string;
        message: string;
    }

    Properties

    interface ModelError {
        code: string;
        message: string;
    }

    Properties

    Properties

    code: string

    A short string representing the reported error. Can be use to handle errors programmatically.

    Memberof

    ModelError

    -
    message: string

    A human-readable message providing more details about the error.

    +
    message: string

    A human-readable message providing more details about the error.

    Memberof

    ModelError

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.NativeEthStakingContext.html b/docs/interfaces/client_api.NativeEthStakingContext.html index 06d684ac..88f5af50 100644 --- a/docs/interfaces/client_api.NativeEthStakingContext.html +++ b/docs/interfaces/client_api.NativeEthStakingContext.html @@ -1,9 +1,9 @@ NativeEthStakingContext | @coinbase/coinbase-sdk

    The native eth staking context.

    Export

    NativeEthStakingContext

    -
    interface NativeEthStakingContext {
        claimable_balance: Balance;
        stakeable_balance: Balance;
        unstakeable_balance: Balance;
    }

    Properties

    interface NativeEthStakingContext {
        claimable_balance: Balance;
        stakeable_balance: Balance;
        unstakeable_balance: Balance;
    }

    Properties

    claimable_balance: Balance

    Memberof

    NativeEthStakingContext

    -
    stakeable_balance: Balance

    Memberof

    NativeEthStakingContext

    -
    unstakeable_balance: Balance

    Memberof

    NativeEthStakingContext

    -
    \ No newline at end of file +
    stakeable_balance: Balance

    Memberof

    NativeEthStakingContext

    +
    unstakeable_balance: Balance

    Memberof

    NativeEthStakingContext

    +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.PartialEthStakingContext.html b/docs/interfaces/client_api.PartialEthStakingContext.html index 82f8a11b..1f3f39e0 100644 --- a/docs/interfaces/client_api.PartialEthStakingContext.html +++ b/docs/interfaces/client_api.PartialEthStakingContext.html @@ -1,9 +1,9 @@ PartialEthStakingContext | @coinbase/coinbase-sdk

    The partial eth staking context.

    Export

    PartialEthStakingContext

    -
    interface PartialEthStakingContext {
        claimable_balance: Balance;
        stakeable_balance: Balance;
        unstakeable_balance: Balance;
    }

    Properties

    interface PartialEthStakingContext {
        claimable_balance: Balance;
        stakeable_balance: Balance;
        unstakeable_balance: Balance;
    }

    Properties

    claimable_balance: Balance

    Memberof

    PartialEthStakingContext

    -
    stakeable_balance: Balance

    Memberof

    PartialEthStakingContext

    -
    unstakeable_balance: Balance

    Memberof

    PartialEthStakingContext

    -
    \ No newline at end of file +
    stakeable_balance: Balance

    Memberof

    PartialEthStakingContext

    +
    unstakeable_balance: Balance

    Memberof

    PartialEthStakingContext

    +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.SeedCreationEvent.html b/docs/interfaces/client_api.SeedCreationEvent.html index ad3eaf0a..eaf7f2bf 100644 --- a/docs/interfaces/client_api.SeedCreationEvent.html +++ b/docs/interfaces/client_api.SeedCreationEvent.html @@ -1,9 +1,9 @@ SeedCreationEvent | @coinbase/coinbase-sdk

    An event representing a seed creation.

    Export

    SeedCreationEvent

    -
    interface SeedCreationEvent {
        wallet_id: string;
        wallet_user_id: string;
    }

    Properties

    interface SeedCreationEvent {
        wallet_id: string;
        wallet_user_id: string;
    }

    Properties

    wallet_id: string

    The ID of the wallet that the server-signer should create the seed for

    Memberof

    SeedCreationEvent

    -
    wallet_user_id: string

    The ID of the user that the wallet belongs to

    +
    wallet_user_id: string

    The ID of the user that the wallet belongs to

    Memberof

    SeedCreationEvent

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.SeedCreationEventResult.html b/docs/interfaces/client_api.SeedCreationEventResult.html index 22c48b91..1813ef7c 100644 --- a/docs/interfaces/client_api.SeedCreationEventResult.html +++ b/docs/interfaces/client_api.SeedCreationEventResult.html @@ -1,15 +1,15 @@ SeedCreationEventResult | @coinbase/coinbase-sdk

    The result to a SeedCreationEvent.

    Export

    SeedCreationEventResult

    -
    interface SeedCreationEventResult {
        extended_public_key: string;
        seed_id: string;
        wallet_id: string;
        wallet_user_id: string;
    }

    Properties

    interface SeedCreationEventResult {
        extended_public_key: string;
        seed_id: string;
        wallet_id: string;
        wallet_user_id: string;
    }

    Properties

    extended_public_key: string

    The extended public key for the first master key derived from seed.

    Memberof

    SeedCreationEventResult

    -
    seed_id: string

    The ID of the seed in Server-Signer used to generate the extended public key.

    +
    seed_id: string

    The ID of the seed in Server-Signer used to generate the extended public key.

    Memberof

    SeedCreationEventResult

    -
    wallet_id: string

    The ID of the wallet that the seed was created for

    +
    wallet_id: string

    The ID of the wallet that the seed was created for

    Memberof

    SeedCreationEventResult

    -
    wallet_user_id: string

    The ID of the user that the wallet belongs to

    +
    wallet_user_id: string

    The ID of the user that the wallet belongs to

    Memberof

    SeedCreationEventResult

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.ServerSigner.html b/docs/interfaces/client_api.ServerSigner.html index 4a36c54a..2af473e6 100644 --- a/docs/interfaces/client_api.ServerSigner.html +++ b/docs/interfaces/client_api.ServerSigner.html @@ -1,12 +1,12 @@ ServerSigner | @coinbase/coinbase-sdk

    A Server-Signer assigned to sign transactions in a wallet.

    Export

    ServerSigner

    -
    interface ServerSigner {
        is_mpc: boolean;
        server_signer_id: string;
        wallets?: string[];
    }

    Properties

    interface ServerSigner {
        is_mpc: boolean;
        server_signer_id: string;
        wallets?: string[];
    }

    Properties

    is_mpc: boolean

    Whether the Server-Signer uses MPC.

    Memberof

    ServerSigner

    -
    server_signer_id: string

    The ID of the server-signer

    +
    server_signer_id: string

    The ID of the server-signer

    Memberof

    ServerSigner

    -
    wallets?: string[]

    The IDs of the wallets that the server-signer can sign for

    +
    wallets?: string[]

    The IDs of the wallets that the server-signer can sign for

    Memberof

    ServerSigner

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.ServerSignerEvent.html b/docs/interfaces/client_api.ServerSignerEvent.html index e1d5a763..6d48e16d 100644 --- a/docs/interfaces/client_api.ServerSignerEvent.html +++ b/docs/interfaces/client_api.ServerSignerEvent.html @@ -1,8 +1,8 @@ ServerSignerEvent | @coinbase/coinbase-sdk

    An event that is waiting to be processed by a Server-Signer.

    Export

    ServerSignerEvent

    -
    interface ServerSignerEvent {
        event: ServerSignerEventEvent;
        server_signer_id: string;
    }

    Properties

    interface ServerSignerEvent {
        event: ServerSignerEventEvent;
        server_signer_id: string;
    }

    Properties

    Memberof

    ServerSignerEvent

    -
    server_signer_id: string

    The ID of the server-signer that the event is for

    +
    server_signer_id: string

    The ID of the server-signer that the event is for

    Memberof

    ServerSignerEvent

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.ServerSignerEventList.html b/docs/interfaces/client_api.ServerSignerEventList.html index a7e94ad3..026779a7 100644 --- a/docs/interfaces/client_api.ServerSignerEventList.html +++ b/docs/interfaces/client_api.ServerSignerEventList.html @@ -1,13 +1,13 @@ ServerSignerEventList | @coinbase/coinbase-sdk

    Export

    ServerSignerEventList

    -
    interface ServerSignerEventList {
        data: ServerSignerEvent[];
        has_more: boolean;
        next_page: string;
        total_count: number;
    }

    Properties

    interface ServerSignerEventList {
        data: ServerSignerEvent[];
        has_more: boolean;
        next_page: string;
        total_count: number;
    }

    Properties

    Memberof

    ServerSignerEventList

    -
    has_more: boolean

    True if this list has another page of items after this one that can be fetched.

    +
    has_more: boolean

    True if this list has another page of items after this one that can be fetched.

    Memberof

    ServerSignerEventList

    -
    next_page: string

    The page token to be used to fetch the next page.

    +
    next_page: string

    The page token to be used to fetch the next page.

    Memberof

    ServerSignerEventList

    -
    total_count: number

    The total number of events for the server signer.

    +
    total_count: number

    The total number of events for the server signer.

    Memberof

    ServerSignerEventList

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.ServerSignerList.html b/docs/interfaces/client_api.ServerSignerList.html index f61c0730..4a5380dd 100644 --- a/docs/interfaces/client_api.ServerSignerList.html +++ b/docs/interfaces/client_api.ServerSignerList.html @@ -1,13 +1,13 @@ ServerSignerList | @coinbase/coinbase-sdk

    Export

    ServerSignerList

    -
    interface ServerSignerList {
        data: ServerSigner[];
        has_more: boolean;
        next_page: string;
        total_count: number;
    }

    Properties

    interface ServerSignerList {
        data: ServerSigner[];
        has_more: boolean;
        next_page: string;
        total_count: number;
    }

    Properties

    data: ServerSigner[]

    Memberof

    ServerSignerList

    -
    has_more: boolean

    True if this list has another page of items after this one that can be fetched.

    +
    has_more: boolean

    True if this list has another page of items after this one that can be fetched.

    Memberof

    ServerSignerList

    -
    next_page: string

    The page token to be used to fetch the next page.

    +
    next_page: string

    The page token to be used to fetch the next page.

    Memberof

    ServerSignerList

    -
    total_count: number

    The total number of server-signers for the project.

    +
    total_count: number

    The total number of server-signers for the project.

    Memberof

    ServerSignerList

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.ServerSignersApiInterface.html b/docs/interfaces/client_api.ServerSignersApiInterface.html index 4f50cfa3..36cb93bd 100644 --- a/docs/interfaces/client_api.ServerSignersApiInterface.html +++ b/docs/interfaces/client_api.ServerSignersApiInterface.html @@ -1,6 +1,6 @@ ServerSignersApiInterface | @coinbase/coinbase-sdk

    ServerSignersApi - interface

    Export

    ServerSignersApi

    -
    interface ServerSignersApiInterface {
        createServerSigner(createServerSignerRequest?, options?): AxiosPromise<ServerSigner>;
        getServerSigner(serverSignerId, options?): AxiosPromise<ServerSigner>;
        listServerSignerEvents(serverSignerId, limit?, page?, options?): AxiosPromise<ServerSignerEventList>;
        listServerSigners(limit?, page?, options?): AxiosPromise<ServerSignerList>;
        submitServerSignerSeedEventResult(serverSignerId, seedCreationEventResult?, options?): AxiosPromise<SeedCreationEventResult>;
        submitServerSignerSignatureEventResult(serverSignerId, signatureCreationEventResult?, options?): AxiosPromise<SignatureCreationEventResult>;
    }

    Implemented by

    Methods

    interface ServerSignersApiInterface {
        createServerSigner(createServerSignerRequest?, options?): AxiosPromise<ServerSigner>;
        getServerSigner(serverSignerId, options?): AxiosPromise<ServerSigner>;
        listServerSignerEvents(serverSignerId, limit?, page?, options?): AxiosPromise<ServerSignerEventList>;
        listServerSigners(limit?, page?, options?): AxiosPromise<ServerSignerList>;
        submitServerSignerSeedEventResult(serverSignerId, seedCreationEventResult?, options?): AxiosPromise<SeedCreationEventResult>;
        submitServerSignerSignatureEventResult(serverSignerId, signatureCreationEventResult?, options?): AxiosPromise<SignatureCreationEventResult>;
    }

    Implemented by

    Methods

    Parameters

    • Optional createServerSignerRequest: CreateServerSignerRequest
    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns AxiosPromise<ServerSigner>

    Summary

    Create a new Server-Signer

    Throws

    Memberof

    ServerSignersApiInterface

    -
    • Get a server signer by ID

      Parameters

      • serverSignerId: string

        The ID of the server signer to fetch

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<ServerSigner>

      Summary

      Get a server signer by ID

      Throws

      Memberof

      ServerSignersApiInterface

      -
    • List events for a server signer

      Parameters

      • serverSignerId: string

        The ID of the server signer to fetch events for

      • Optional limit: number

        A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

      • Optional page: string

        A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<ServerSignerEventList>

      Summary

      List events for a server signer

      Throws

      Memberof

      ServerSignersApiInterface

      -
    • List server signers for the current project

      Parameters

      • Optional limit: number

        A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

      • Optional page: string

        A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<ServerSignerList>

      Summary

      List server signers for the current project

      Throws

      Memberof

      ServerSignersApiInterface

      -
    • Submit the result of a server signer event

      Parameters

      • serverSignerId: string

        The ID of the server signer to submit the event result for

      • Optional seedCreationEventResult: SeedCreationEventResult
      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<SeedCreationEventResult>

      Summary

      Submit the result of a server signer event

      Throws

      Memberof

      ServerSignersApiInterface

      -
    • Submit the result of a server signer event

      Parameters

      • serverSignerId: string

        The ID of the server signer to submit the event result for

      • Optional signatureCreationEventResult: SignatureCreationEventResult
      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<SignatureCreationEventResult>

      Summary

      Submit the result of a server signer event

      Throws

      Memberof

      ServerSignersApiInterface

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.SignatureCreationEvent.html b/docs/interfaces/client_api.SignatureCreationEvent.html index 3144995d..374299aa 100644 --- a/docs/interfaces/client_api.SignatureCreationEvent.html +++ b/docs/interfaces/client_api.SignatureCreationEvent.html @@ -1,6 +1,6 @@ SignatureCreationEvent | @coinbase/coinbase-sdk

    An event representing a signature creation.

    Export

    SignatureCreationEvent

    -
    interface SignatureCreationEvent {
        address_id: string;
        address_index: number;
        seed_id: string;
        signing_payload: string;
        transaction_id: string;
        transaction_type: "transfer";
        wallet_id: string;
        wallet_user_id: string;
    }

    Properties

    interface SignatureCreationEvent {
        address_id: string;
        address_index: number;
        seed_id: string;
        signing_payload: string;
        transaction_id: string;
        transaction_type: "transfer";
        wallet_id: string;
        wallet_user_id: string;
    }

    Properties

    address_id: string

    The ID of the address the transfer belongs to

    Memberof

    SignatureCreationEvent

    -
    address_index: number

    The index of the address that the server-signer should sign with

    +
    address_index: number

    The index of the address that the server-signer should sign with

    Memberof

    SignatureCreationEvent

    -
    seed_id: string

    The ID of the seed that the server-signer should create the signature for

    +
    seed_id: string

    The ID of the seed that the server-signer should create the signature for

    Memberof

    SignatureCreationEvent

    -
    signing_payload: string

    The payload that the server-signer should sign

    +
    signing_payload: string

    The payload that the server-signer should sign

    Memberof

    SignatureCreationEvent

    -
    transaction_id: string

    The ID of the transaction that the server-signer should sign

    +
    transaction_id: string

    The ID of the transaction that the server-signer should sign

    Memberof

    SignatureCreationEvent

    -
    transaction_type: "transfer"

    Memberof

    SignatureCreationEvent

    -
    wallet_id: string

    The ID of the wallet the signature is for

    +
    transaction_type: "transfer"

    Memberof

    SignatureCreationEvent

    +
    wallet_id: string

    The ID of the wallet the signature is for

    Memberof

    SignatureCreationEvent

    -
    wallet_user_id: string

    The ID of the user that the wallet belongs to

    +
    wallet_user_id: string

    The ID of the user that the wallet belongs to

    Memberof

    SignatureCreationEvent

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.SignatureCreationEventResult.html b/docs/interfaces/client_api.SignatureCreationEventResult.html index 8dfdf3c9..b315e3d8 100644 --- a/docs/interfaces/client_api.SignatureCreationEventResult.html +++ b/docs/interfaces/client_api.SignatureCreationEventResult.html @@ -1,6 +1,6 @@ SignatureCreationEventResult | @coinbase/coinbase-sdk

    The result to a SignatureCreationEvent.

    Export

    SignatureCreationEventResult

    -
    interface SignatureCreationEventResult {
        address_id: string;
        signature: string;
        transaction_id: string;
        transaction_type: "transfer";
        wallet_id: string;
        wallet_user_id: string;
    }

    Properties

    interface SignatureCreationEventResult {
        address_id: string;
        signature: string;
        transaction_id: string;
        transaction_type: "transfer";
        wallet_id: string;
        wallet_user_id: string;
    }

    Properties

    address_id: string

    The ID of the address the transfer belongs to

    Memberof

    SignatureCreationEventResult

    -
    signature: string

    The signature created by the server-signer.

    +
    signature: string

    The signature created by the server-signer.

    Memberof

    SignatureCreationEventResult

    -
    transaction_id: string

    The ID of the transaction that the Server-Signer has signed for

    +
    transaction_id: string

    The ID of the transaction that the Server-Signer has signed for

    Memberof

    SignatureCreationEventResult

    -
    transaction_type: "transfer"

    Memberof

    SignatureCreationEventResult

    -
    wallet_id: string

    The ID of the wallet that the event was created for.

    +
    transaction_type: "transfer"

    Memberof

    SignatureCreationEventResult

    +
    wallet_id: string

    The ID of the wallet that the event was created for.

    Memberof

    SignatureCreationEventResult

    -
    wallet_user_id: string

    The ID of the user that the wallet belongs to

    +
    wallet_user_id: string

    The ID of the user that the wallet belongs to

    Memberof

    SignatureCreationEventResult

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.SignedVoluntaryExitMessageMetadata.html b/docs/interfaces/client_api.SignedVoluntaryExitMessageMetadata.html index 739011d8..f571f023 100644 --- a/docs/interfaces/client_api.SignedVoluntaryExitMessageMetadata.html +++ b/docs/interfaces/client_api.SignedVoluntaryExitMessageMetadata.html @@ -1,12 +1,12 @@ SignedVoluntaryExitMessageMetadata | @coinbase/coinbase-sdk

    Interface SignedVoluntaryExitMessageMetadata

    Signed voluntary exit message metadata to be provided to beacon chain to exit a validator.

    Export

    SignedVoluntaryExitMessageMetadata

    -
    interface SignedVoluntaryExitMessageMetadata {
        fork: string;
        signed_voluntary_exit: string;
        validator_pub_key: string;
    }

    Properties

    interface SignedVoluntaryExitMessageMetadata {
        fork: string;
        signed_voluntary_exit: string;
        validator_pub_key: string;
    }

    Properties

    fork: string

    The current fork version of the Ethereum beacon chain.

    Memberof

    SignedVoluntaryExitMessageMetadata

    -
    signed_voluntary_exit: string

    A base64 encoded version of a json string representing a voluntary exit message.

    +
    signed_voluntary_exit: string

    A base64 encoded version of a json string representing a voluntary exit message.

    Memberof

    SignedVoluntaryExitMessageMetadata

    -
    validator_pub_key: string

    The public key of the validator associated with the exit message.

    +
    validator_pub_key: string

    The public key of the validator associated with the exit message.

    Memberof

    SignedVoluntaryExitMessageMetadata

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.StakeApiInterface.html b/docs/interfaces/client_api.StakeApiInterface.html index 8a2581a4..8ec2eba3 100644 --- a/docs/interfaces/client_api.StakeApiInterface.html +++ b/docs/interfaces/client_api.StakeApiInterface.html @@ -1,28 +1,51 @@ StakeApiInterface | @coinbase/coinbase-sdk

    StakeApi - interface

    Export

    StakeApi

    -
    interface StakeApiInterface {
        buildStakingOperation(buildStakingOperationRequest, options?): AxiosPromise<StakingOperation>;
        fetchStakingRewards(fetchStakingRewardsRequest, limit?, page?, options?): AxiosPromise<FetchStakingRewards200Response>;
        getExternalStakingOperation(networkId, addressId, stakingOperationId, options?): AxiosPromise<StakingOperation>;
        getStakingContext(getStakingContextRequest, options?): AxiosPromise<StakingContext>;
    }

    Implemented by

    Methods

    interface StakeApiInterface {
        broadcastStakingOperation(walletId, addressId, stakingOperationId, broadcastStakingOperationRequest, options?): AxiosPromise<StakingOperation>;
        buildStakingOperation(buildStakingOperationRequest, options?): AxiosPromise<StakingOperation>;
        createStakingOperation(walletId, addressId, createStakingOperationRequest, options?): AxiosPromise<StakingOperation>;
        fetchStakingRewards(fetchStakingRewardsRequest, limit?, page?, options?): AxiosPromise<FetchStakingRewards200Response>;
        getExternalStakingOperation(networkId, addressId, stakingOperationId, options?): AxiosPromise<StakingOperation>;
        getStakingContext(getStakingContextRequest, options?): AxiosPromise<StakingContext>;
        getStakingOperation(walletId, addressId, stakingOperationId, options?): AxiosPromise<StakingOperation>;
    }

    Implemented by

    Methods

    Methods

    • Broadcast a staking operation.

      +

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to.

        +
      • addressId: string

        The ID of the address the staking operation belongs to.

        +
      • stakingOperationId: string

        The ID of the staking operation to broadcast.

        +
      • broadcastStakingOperationRequest: BroadcastStakingOperationRequest
      • Optional options: RawAxiosRequestConfig

        Override http request option.

        +

      Returns AxiosPromise<StakingOperation>

      Summary

      Broadcast a staking operation

      +

      Throws

      Memberof

      StakeApiInterface

      +
    • Create a new staking operation.

      +

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to.

        +
      • addressId: string

        The ID of the address to create the staking operation for.

        +
      • createStakingOperationRequest: CreateStakingOperationRequest
      • Optional options: RawAxiosRequestConfig

        Override http request option.

        +

      Returns AxiosPromise<StakingOperation>

      Summary

      Create a new staking operation for an address

      +

      Throws

      Memberof

      StakeApiInterface

      +
    • Fetch staking rewards for a list of addresses

      Parameters

      • fetchStakingRewardsRequest: FetchStakingRewardsRequest
      • Optional limit: number

        A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 50.

      • Optional page: string

        A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<FetchStakingRewards200Response>

      Summary

      Fetch staking rewards

      Throws

      Memberof

      StakeApiInterface

      -
    • Get the latest state of a staking operation

      Parameters

      • networkId: string

        The ID of the blockchain network

      • addressId: string

        The ID of the address to fetch the staking operation for

      • stakingOperationId: string

        The ID of the staking operation

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<StakingOperation>

      Summary

      Get the latest state of a staking operation

      Throws

      Memberof

      StakeApiInterface

      -
    • Get staking context for an address

      Parameters

      Returns AxiosPromise<StakingContext>

      Summary

      Get staking context

      Throws

      Memberof

      StakeApiInterface

      -
    \ No newline at end of file +
    • Get the latest state of a staking operation.

      +

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to

        +
      • addressId: string

        The ID of the address to fetch the staking operation for.

        +
      • stakingOperationId: string

        The ID of the staking operation.

        +
      • Optional options: RawAxiosRequestConfig

        Override http request option.

        +

      Returns AxiosPromise<StakingOperation>

      Summary

      Get the latest state of a staking operation

      +

      Throws

      Memberof

      StakeApiInterface

      +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.StakingContext.html b/docs/interfaces/client_api.StakingContext.html index 4786f391..52fcc83d 100644 --- a/docs/interfaces/client_api.StakingContext.html +++ b/docs/interfaces/client_api.StakingContext.html @@ -1,5 +1,5 @@ StakingContext | @coinbase/coinbase-sdk

    Context needed to perform a staking operation

    Export

    StakingContext

    -
    interface StakingContext {
        context: StakingContextContext;
    }

    Properties

    interface StakingContext {
        context: StakingContextContext;
    }

    Properties

    Properties

    Memberof

    StakingContext

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.StakingOperation.html b/docs/interfaces/client_api.StakingOperation.html index 70679e60..786d532b 100644 --- a/docs/interfaces/client_api.StakingOperation.html +++ b/docs/interfaces/client_api.StakingOperation.html @@ -1,20 +1,23 @@ StakingOperation | @coinbase/coinbase-sdk

    A list of onchain transactions to help realize a staking action.

    Export

    StakingOperation

    -
    interface StakingOperation {
        address_id: string;
        id: string;
        metadata?: StakingOperationMetadata;
        network_id: string;
        status: StakingOperationStatusEnum;
        transactions: Transaction[];
    }

    Properties

    interface StakingOperation {
        address_id: string;
        id: string;
        metadata?: StakingOperationMetadata;
        network_id: string;
        status: StakingOperationStatusEnum;
        transactions: Transaction[];
        wallet_id?: string;
    }

    Properties

    address_id: string

    The onchain address orchestrating the staking operation.

    Memberof

    StakingOperation

    -
    id: string

    The unique ID of the staking operation.

    +
    id: string

    The unique ID of the staking operation.

    Memberof

    StakingOperation

    -

    Memberof

    StakingOperation

    -
    network_id: string

    The ID of the blockchain network.

    +

    Memberof

    StakingOperation

    +
    network_id: string

    The ID of the blockchain network.

    Memberof

    StakingOperation

    -

    The status of the staking operation

    +

    The status of the staking operation.

    Memberof

    StakingOperation

    -
    transactions: Transaction[]

    The transaction(s) that will execute the staking operation onchain

    +
    transactions: Transaction[]

    The transaction(s) that will execute the staking operation onchain.

    Memberof

    StakingOperation

    -
    \ No newline at end of file +
    wallet_id?: string

    The ID of the wallet that owns the address.

    +

    Memberof

    StakingOperation

    +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.StakingReward.html b/docs/interfaces/client_api.StakingReward.html index 41965041..ba139434 100644 --- a/docs/interfaces/client_api.StakingReward.html +++ b/docs/interfaces/client_api.StakingReward.html @@ -1,17 +1,17 @@ StakingReward | @coinbase/coinbase-sdk

    The staking rewards for an address.

    Export

    StakingReward

    -
    interface StakingReward {
        address_id: string;
        amount: string;
        date: string;
        format: StakingRewardFormat;
        state: StakingRewardStateEnum;
    }

    Properties

    interface StakingReward {
        address_id: string;
        amount: string;
        date: string;
        format: StakingRewardFormat;
        state: StakingRewardStateEnum;
    }

    Properties

    address_id: string

    The onchain address for which the staking rewards are being fetched.

    Memberof

    StakingReward

    -
    amount: string

    The reward amount in requested "format". Default is USD.

    +
    amount: string

    The reward amount in requested "format". Default is USD.

    Memberof

    StakingReward

    -
    date: string

    The date of the reward in format 'YYYY-MM-DD' in UTC.

    +
    date: string

    The date of the reward in format 'YYYY-MM-DD' in UTC.

    Memberof

    StakingReward

    -

    Memberof

    StakingReward

    -

    The state of the reward.

    +

    Memberof

    StakingReward

    +

    The state of the reward.

    Memberof

    StakingReward

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.Trade.html b/docs/interfaces/client_api.Trade.html index 35c168ec..0a988175 100644 --- a/docs/interfaces/client_api.Trade.html +++ b/docs/interfaces/client_api.Trade.html @@ -1,6 +1,6 @@ Trade | @coinbase/coinbase-sdk

    A trade of an asset to another asset

    Export

    Trade

    -
    interface Trade {
        address_id: string;
        approve_transaction?: Transaction;
        from_amount: string;
        from_asset: Asset;
        network_id: string;
        to_amount: string;
        to_asset: Asset;
        trade_id: string;
        transaction: Transaction;
        wallet_id: string;
    }

    Properties

    interface Trade {
        address_id: string;
        approve_transaction?: Transaction;
        from_amount: string;
        from_asset: Asset;
        network_id: string;
        to_amount: string;
        to_asset: Asset;
        trade_id: string;
        transaction: Transaction;
        wallet_id: string;
    }

    Properties

    address_id: string

    The onchain address of the sender

    Memberof

    Trade

    -
    approve_transaction?: Transaction

    Memberof

    Trade

    -
    from_amount: string

    The amount of the from asset to be traded (in atomic units of the from asset)

    +
    approve_transaction?: Transaction

    Memberof

    Trade

    +
    from_amount: string

    The amount of the from asset to be traded (in atomic units of the from asset)

    Memberof

    Trade

    -
    from_asset: Asset

    Memberof

    Trade

    -
    network_id: string

    The ID of the blockchain network

    +
    from_asset: Asset

    Memberof

    Trade

    +
    network_id: string

    The ID of the blockchain network

    Memberof

    Trade

    -
    to_amount: string

    The amount of the to asset that will be received (in atomic units of the to asset)

    +
    to_amount: string

    The amount of the to asset that will be received (in atomic units of the to asset)

    Memberof

    Trade

    -
    to_asset: Asset

    Memberof

    Trade

    -
    trade_id: string

    The ID of the trade

    +
    to_asset: Asset

    Memberof

    Trade

    +
    trade_id: string

    The ID of the trade

    Memberof

    Trade

    -
    transaction: Transaction

    Memberof

    Trade

    -
    wallet_id: string

    The ID of the wallet that owns the from address

    +
    transaction: Transaction

    Memberof

    Trade

    +
    wallet_id: string

    The ID of the wallet that owns the from address

    Memberof

    Trade

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.TradeList.html b/docs/interfaces/client_api.TradeList.html index abc4fe17..031a2ef9 100644 --- a/docs/interfaces/client_api.TradeList.html +++ b/docs/interfaces/client_api.TradeList.html @@ -1,13 +1,13 @@ TradeList | @coinbase/coinbase-sdk

    Export

    TradeList

    -
    interface TradeList {
        data: Trade[];
        has_more: boolean;
        next_page: string;
        total_count: number;
    }

    Properties

    interface TradeList {
        data: Trade[];
        has_more: boolean;
        next_page: string;
        total_count: number;
    }

    Properties

    data: Trade[]

    Memberof

    TradeList

    -
    has_more: boolean

    True if this list has another page of items after this one that can be fetched.

    +
    has_more: boolean

    True if this list has another page of items after this one that can be fetched.

    Memberof

    TradeList

    -
    next_page: string

    The page token to be used to fetch the next page.

    +
    next_page: string

    The page token to be used to fetch the next page.

    Memberof

    TradeList

    -
    total_count: number

    The total number of trades for the address in the wallet.

    +
    total_count: number

    The total number of trades for the address in the wallet.

    Memberof

    TradeList

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.TradesApiInterface.html b/docs/interfaces/client_api.TradesApiInterface.html index 81a4e9d8..149d242a 100644 --- a/docs/interfaces/client_api.TradesApiInterface.html +++ b/docs/interfaces/client_api.TradesApiInterface.html @@ -1,6 +1,6 @@ TradesApiInterface | @coinbase/coinbase-sdk

    TradesApi - interface

    Export

    TradesApi

    -
    interface TradesApiInterface {
        broadcastTrade(walletId, addressId, tradeId, broadcastTradeRequest, options?): AxiosPromise<Trade>;
        createTrade(walletId, addressId, createTradeRequest, options?): AxiosPromise<Trade>;
        getTrade(walletId, addressId, tradeId, options?): AxiosPromise<Trade>;
        listTrades(walletId, addressId, limit?, page?, options?): AxiosPromise<TradeList>;
    }

    Implemented by

    Methods

    interface TradesApiInterface {
        broadcastTrade(walletId, addressId, tradeId, broadcastTradeRequest, options?): AxiosPromise<Trade>;
        createTrade(walletId, addressId, createTradeRequest, options?): AxiosPromise<Trade>;
        getTrade(walletId, addressId, tradeId, options?): AxiosPromise<Trade>;
        listTrades(walletId, addressId, limit?, page?, options?): AxiosPromise<TradeList>;
    }

    Implemented by

    Methods

  • broadcastTradeRequest: BroadcastTradeRequest
  • Optional options: RawAxiosRequestConfig

    Override http request option.

  • Returns AxiosPromise<Trade>

    Summary

    Broadcast a trade

    Throws

    Memberof

    TradesApiInterface

    -
    • Create a new trade

      +
    • Create a new trade

      Parameters

      • walletId: string

        The ID of the wallet the source address belongs to

      • addressId: string

        The ID of the address to conduct the trade from

      • createTradeRequest: CreateTradeRequest
      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<Trade>

      Summary

      Create a new trade for an address

      Throws

      Memberof

      TradesApiInterface

      -
    • Get a trade by ID

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to

      • addressId: string

        The ID of the address the trade belongs to

      • tradeId: string

        The ID of the trade to fetch

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<Trade>

      Summary

      Get a trade by ID

      Throws

      Memberof

      TradesApiInterface

      -
    • List trades for an address.

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to

      • addressId: string

        The ID of the address to list trades for

      • Optional limit: number

        A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

        @@ -32,4 +32,4 @@

        Throws

        Memberof

        TradesApiInterface

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<TradeList>

      Summary

      List trades for an address.

      Throws

      Memberof

      TradesApiInterface

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.Transaction.html b/docs/interfaces/client_api.Transaction.html index 815afcac..ead08a1f 100644 --- a/docs/interfaces/client_api.Transaction.html +++ b/docs/interfaces/client_api.Transaction.html @@ -1,6 +1,6 @@ Transaction | @coinbase/coinbase-sdk

    An onchain transaction.

    Export

    Transaction

    -
    interface Transaction {
        from_address_id: string;
        network_id: string;
        signed_payload?: string;
        status: TransactionStatusEnum;
        transaction_hash?: string;
        transaction_link?: string;
        unsigned_payload: string;
    }

    Properties

    interface Transaction {
        from_address_id: string;
        network_id: string;
        signed_payload?: string;
        status: TransactionStatusEnum;
        transaction_hash?: string;
        transaction_link?: string;
        unsigned_payload: string;
    }

    Properties

    from_address_id: string

    The onchain address of the sender

    Memberof

    Transaction

    -
    network_id: string

    The ID of the blockchain network

    +
    network_id: string

    The ID of the blockchain network

    Memberof

    Transaction

    -
    signed_payload?: string

    The signed payload of the transaction. This is the payload that has been signed by the sender.

    +
    signed_payload?: string

    The signed payload of the transaction. This is the payload that has been signed by the sender.

    Memberof

    Transaction

    -

    The status of the transaction

    +

    The status of the transaction

    Memberof

    Transaction

    -
    transaction_hash?: string

    The hash of the transaction

    +
    transaction_hash?: string

    The hash of the transaction

    Memberof

    Transaction

    -
    transaction_link?: string

    The link to view the transaction on a block explorer. This is optional and may not be present for all transactions.

    +
    transaction_link?: string

    The link to view the transaction on a block explorer. This is optional and may not be present for all transactions.

    Memberof

    Transaction

    -
    unsigned_payload: string

    The unsigned payload of the transaction. This is the payload that needs to be signed by the sender.

    +
    unsigned_payload: string

    The unsigned payload of the transaction. This is the payload that needs to be signed by the sender.

    Memberof

    Transaction

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.Transfer.html b/docs/interfaces/client_api.Transfer.html index 3d5607e0..7d391d93 100644 --- a/docs/interfaces/client_api.Transfer.html +++ b/docs/interfaces/client_api.Transfer.html @@ -1,40 +1,28 @@ Transfer | @coinbase/coinbase-sdk

    A transfer of an asset from one address to another

    Export

    Transfer

    -
    interface Transfer {
        address_id: string;
        amount: string;
        asset: Asset;
        asset_id: string;
        destination: string;
        network_id: string;
        signed_payload?: string;
        status: TransferStatusEnum;
        transaction: Transaction;
        transaction_hash?: string;
        transfer_id: string;
        unsigned_payload: string;
        wallet_id: string;
    }

    Properties

    interface Transfer {
        address_id: string;
        amount: string;
        asset: Asset;
        asset_id: string;
        destination: string;
        network_id: string;
        transaction: Transaction;
        transfer_id: string;
        wallet_id: string;
    }

    Properties

    address_id: string

    The onchain address of the sender

    Memberof

    Transfer

    -
    amount: string

    The amount in the atomic units of the asset

    +
    amount: string

    The amount in the atomic units of the asset

    Memberof

    Transfer

    -
    asset: Asset

    Memberof

    Transfer

    -
    asset_id: string

    The ID of the asset being transferred

    +
    asset: Asset

    Memberof

    Transfer

    +
    asset_id: string

    The ID of the asset being transferred

    Memberof

    Transfer

    -
    destination: string

    The onchain address of the recipient

    +
    destination: string

    The onchain address of the recipient

    Memberof

    Transfer

    -
    network_id: string

    The ID of the blockchain network

    +
    network_id: string

    The ID of the blockchain network

    Memberof

    Transfer

    -
    signed_payload?: string

    The signed payload of the transfer. This is the payload that has been signed by the sender.

    +
    transaction: Transaction

    Memberof

    Transfer

    +
    transfer_id: string

    The ID of the transfer

    Memberof

    Transfer

    -

    The status of the transfer

    +
    wallet_id: string

    The ID of the wallet that owns the from address

    Memberof

    Transfer

    -
    transaction: Transaction

    Memberof

    Transfer

    -
    transaction_hash?: string

    The hash of the transfer transaction

    -

    Memberof

    Transfer

    -
    transfer_id: string

    The ID of the transfer

    -

    Memberof

    Transfer

    -
    unsigned_payload: string

    The unsigned payload of the transfer. This is the payload that needs to be signed by the sender.

    -

    Memberof

    Transfer

    -
    wallet_id: string

    The ID of the wallet that owns the from address

    -

    Memberof

    Transfer

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.TransferList.html b/docs/interfaces/client_api.TransferList.html index a3ec1530..e2220358 100644 --- a/docs/interfaces/client_api.TransferList.html +++ b/docs/interfaces/client_api.TransferList.html @@ -1,13 +1,13 @@ TransferList | @coinbase/coinbase-sdk

    Export

    TransferList

    -
    interface TransferList {
        data: Transfer[];
        has_more: boolean;
        next_page: string;
        total_count: number;
    }

    Properties

    interface TransferList {
        data: Transfer[];
        has_more: boolean;
        next_page: string;
        total_count: number;
    }

    Properties

    data: Transfer[]

    Memberof

    TransferList

    -
    has_more: boolean

    True if this list has another page of items after this one that can be fetched.

    +
    has_more: boolean

    True if this list has another page of items after this one that can be fetched.

    Memberof

    TransferList

    -
    next_page: string

    The page token to be used to fetch the next page.

    +
    next_page: string

    The page token to be used to fetch the next page.

    Memberof

    TransferList

    -
    total_count: number

    The total number of transfers for the address in the wallet.

    +
    total_count: number

    The total number of transfers for the address in the wallet.

    Memberof

    TransferList

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.TransfersApiInterface.html b/docs/interfaces/client_api.TransfersApiInterface.html index 213a1be4..1259d67c 100644 --- a/docs/interfaces/client_api.TransfersApiInterface.html +++ b/docs/interfaces/client_api.TransfersApiInterface.html @@ -1,6 +1,6 @@ TransfersApiInterface | @coinbase/coinbase-sdk

    TransfersApi - interface

    Export

    TransfersApi

    -
    interface TransfersApiInterface {
        broadcastTransfer(walletId, addressId, transferId, broadcastTransferRequest, options?): AxiosPromise<Transfer>;
        createTransfer(walletId, addressId, createTransferRequest, options?): AxiosPromise<Transfer>;
        getTransfer(walletId, addressId, transferId, options?): AxiosPromise<Transfer>;
        listTransfers(walletId, addressId, limit?, page?, options?): AxiosPromise<TransferList>;
    }

    Implemented by

    Methods

    interface TransfersApiInterface {
        broadcastTransfer(walletId, addressId, transferId, broadcastTransferRequest, options?): AxiosPromise<Transfer>;
        createTransfer(walletId, addressId, createTransferRequest, options?): AxiosPromise<Transfer>;
        getTransfer(walletId, addressId, transferId, options?): AxiosPromise<Transfer>;
        listTransfers(walletId, addressId, limit?, page?, options?): AxiosPromise<TransferList>;
    }

    Implemented by

    Methods

  • broadcastTransferRequest: BroadcastTransferRequest
  • Optional options: RawAxiosRequestConfig

    Override http request option.

  • Returns AxiosPromise<Transfer>

    Summary

    Broadcast a transfer

    Throws

    Memberof

    TransfersApiInterface

    -
    • Create a new transfer

      Parameters

      • walletId: string

        The ID of the wallet the source address belongs to

      • addressId: string

        The ID of the address to transfer from

      • createTransferRequest: CreateTransferRequest
      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<Transfer>

      Summary

      Create a new transfer for an address

      Throws

      Memberof

      TransfersApiInterface

      -
    • Get a transfer by ID

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to

      • addressId: string

        The ID of the address the transfer belongs to

      • transferId: string

        The ID of the transfer to fetch

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<Transfer>

      Summary

      Get a transfer by ID

      Throws

      Memberof

      TransfersApiInterface

      -
    • List transfers for an address.

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to

      • addressId: string

        The ID of the address to list transfers for

      • Optional limit: number

        A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

        @@ -32,4 +32,4 @@

        Throws

        Memberof

        TransfersApiInterface

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<TransferList>

      Summary

      List transfers for an address.

      Throws

      Memberof

      TransfersApiInterface

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.UpdateWebhookRequest.html b/docs/interfaces/client_api.UpdateWebhookRequest.html new file mode 100644 index 00000000..64e8141a --- /dev/null +++ b/docs/interfaces/client_api.UpdateWebhookRequest.html @@ -0,0 +1,13 @@ +UpdateWebhookRequest | @coinbase/coinbase-sdk

    Export

    UpdateWebhookRequest

    +
    interface UpdateWebhookRequest {
        event_filters: WebhookEventFilter[];
        event_type: WebhookEventType;
        network_id?: string;
        notification_uri: string;
    }

    Properties

    event_filters: WebhookEventFilter[]

    Webhook will monitor all events that matches any one of the event filters.

    +

    Memberof

    UpdateWebhookRequest

    +
    event_type: WebhookEventType

    Memberof

    UpdateWebhookRequest

    +
    network_id?: string

    The ID of the blockchain network

    +

    Memberof

    UpdateWebhookRequest

    +
    notification_uri: string

    The Webhook uri that updates to

    +

    Memberof

    UpdateWebhookRequest

    +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.User.html b/docs/interfaces/client_api.User.html index 7a571299..d2b82e1e 100644 --- a/docs/interfaces/client_api.User.html +++ b/docs/interfaces/client_api.User.html @@ -1,7 +1,7 @@ User | @coinbase/coinbase-sdk

    Export

    User

    -
    interface User {
        display_name?: string;
        id: string;
    }

    Properties

    interface User {
        display_name?: string;
        id: string;
    }

    Properties

    Properties

    display_name?: string

    Memberof

    User

    -
    id: string

    The ID of the user

    +
    id: string

    The ID of the user

    Memberof

    User

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.UsersApiInterface.html b/docs/interfaces/client_api.UsersApiInterface.html index 8979df8e..734f3b2a 100644 --- a/docs/interfaces/client_api.UsersApiInterface.html +++ b/docs/interfaces/client_api.UsersApiInterface.html @@ -1,8 +1,8 @@ UsersApiInterface | @coinbase/coinbase-sdk

    UsersApi - interface

    Export

    UsersApi

    -
    interface UsersApiInterface {
        getCurrentUser(options?): AxiosPromise<User>;
    }

    Implemented by

    Methods

    interface UsersApiInterface {
        getCurrentUser(options?): AxiosPromise<User>;
    }

    Implemented by

    Methods

    • Get current user

      Parameters

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<User>

      Summary

      Get current user

      Throws

      Memberof

      UsersApiInterface

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.Validator.html b/docs/interfaces/client_api.Validator.html index 2da02432..da570749 100644 --- a/docs/interfaces/client_api.Validator.html +++ b/docs/interfaces/client_api.Validator.html @@ -1,17 +1,17 @@ Validator | @coinbase/coinbase-sdk

    A validator onchain.

    Export

    Validator

    -
    interface Validator {
        asset_id: string;
        details?: EthereumValidatorMetadata;
        network_id: string;
        status: string;
        validator_id: string;
    }

    Properties

    interface Validator {
        asset_id: string;
        details?: EthereumValidatorMetadata;
        network_id: string;
        status: string;
        validator_id: string;
    }

    Properties

    asset_id: string

    The ID of the asset that the validator helps stake.

    Memberof

    Validator

    -

    Memberof

    Validator

    -
    network_id: string

    The ID of the blockchain network to which the Validator belongs.

    +

    Memberof

    Validator

    +
    network_id: string

    The ID of the blockchain network to which the Validator belongs.

    Memberof

    Validator

    -
    status: string

    The status of the validator.

    +
    status: string

    The status of the validator.

    Memberof

    Validator

    -
    validator_id: string

    The publicly identifiable unique id of the validator. This can be the public key for Ethereum validators and maybe an address for some other network.

    +
    validator_id: string

    The publicly identifiable unique id of the validator. This can be the public key for Ethereum validators and maybe an address for some other network.

    Memberof

    Validator

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.ValidatorList.html b/docs/interfaces/client_api.ValidatorList.html index 5769480d..03d39f2c 100644 --- a/docs/interfaces/client_api.ValidatorList.html +++ b/docs/interfaces/client_api.ValidatorList.html @@ -1,10 +1,10 @@ ValidatorList | @coinbase/coinbase-sdk

    Export

    ValidatorList

    -
    interface ValidatorList {
        data: Validator[];
        has_more: boolean;
        next_page: string;
    }

    Properties

    interface ValidatorList {
        data: Validator[];
        has_more: boolean;
        next_page: string;
    }

    Properties

    data: Validator[]

    Memberof

    ValidatorList

    -
    has_more: boolean

    True if this list has another page of items after this one that can be fetched.

    +
    has_more: boolean

    True if this list has another page of items after this one that can be fetched.

    Memberof

    ValidatorList

    -
    next_page: string

    The page token to be used to fetch the next page.

    +
    next_page: string

    The page token to be used to fetch the next page.

    Memberof

    ValidatorList

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.ValidatorsApiInterface.html b/docs/interfaces/client_api.ValidatorsApiInterface.html index ee68aff8..b11481fe 100644 --- a/docs/interfaces/client_api.ValidatorsApiInterface.html +++ b/docs/interfaces/client_api.ValidatorsApiInterface.html @@ -1,6 +1,6 @@ ValidatorsApiInterface | @coinbase/coinbase-sdk

    ValidatorsApi - interface

    Export

    ValidatorsApi

    -
    interface ValidatorsApiInterface {
        getValidator(networkId, assetId, validatorId, options?): AxiosPromise<Validator>;
        listValidators(networkId, assetId, status?, limit?, page?, options?): AxiosPromise<ValidatorList>;
    }

    Implemented by

    Methods

    interface ValidatorsApiInterface {
        getValidator(networkId, assetId, validatorId, options?): AxiosPromise<Validator>;
        listValidators(networkId, assetId, status?, limit?, page?, options?): AxiosPromise<ValidatorList>;
    }

    Implemented by

    Methods

    • Get a validator belonging to the user for a given network, asset and id.

      Parameters

      • networkId: string

        The ID of the blockchain network.

        @@ -9,7 +9,7 @@
      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<Validator>

      Summary

      Get a validator belonging to the CDP project

      Throws

      Memberof

      ValidatorsApiInterface

      -
    • List validators belonging to the user for a given network and asset.

      +
    • List validators belonging to the user for a given network and asset.

      Parameters

      • networkId: string

        The ID of the blockchain network.

      • assetId: string

        The symbol of the asset to get the validators for.

      • Optional status: string

        A filter to list validators based on a status.

        @@ -18,4 +18,4 @@

        Throws

        Memberof

        ValidatorsApiInterface

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<ValidatorList>

      Summary

      List validators belonging to the CDP project

      Throws

      Memberof

      ValidatorsApiInterface

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.Wallet.html b/docs/interfaces/client_api.Wallet.html index cb159462..d0415198 100644 --- a/docs/interfaces/client_api.Wallet.html +++ b/docs/interfaces/client_api.Wallet.html @@ -1,16 +1,16 @@ Wallet | @coinbase/coinbase-sdk

    Export

    Wallet

    -
    interface Wallet {
        default_address?: Address;
        enabled_features: Feature[];
        id: string;
        network_id: string;
        server_signer_status?: WalletServerSignerStatusEnum;
    }

    Properties

    interface Wallet {
        default_address?: Address;
        enabled_features: Feature[];
        id: string;
        network_id: string;
        server_signer_status?: WalletServerSignerStatusEnum;
    }

    Properties

    default_address?: Address

    Memberof

    Wallet

    -
    enabled_features: Feature[]

    The features enabled for the wallet

    +
    enabled_features: Feature[]

    The features enabled for the wallet

    Memberof

    Wallet

    -
    id: string

    The server-assigned ID for the wallet.

    +
    id: string

    The server-assigned ID for the wallet.

    Memberof

    Wallet

    -
    network_id: string

    The ID of the blockchain network

    +
    network_id: string

    The ID of the blockchain network

    Memberof

    Wallet

    -
    server_signer_status?: WalletServerSignerStatusEnum

    The status of the Server-Signer for the wallet if present.

    +
    server_signer_status?: WalletServerSignerStatusEnum

    The status of the Server-Signer for the wallet if present.

    Memberof

    Wallet

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.WalletList.html b/docs/interfaces/client_api.WalletList.html index 7c089c13..8176ef73 100644 --- a/docs/interfaces/client_api.WalletList.html +++ b/docs/interfaces/client_api.WalletList.html @@ -1,14 +1,14 @@ WalletList | @coinbase/coinbase-sdk

    Paginated list of wallets

    Export

    WalletList

    -
    interface WalletList {
        data: Wallet[];
        has_more: boolean;
        next_page: string;
        total_count: number;
    }

    Properties

    interface WalletList {
        data: Wallet[];
        has_more: boolean;
        next_page: string;
        total_count: number;
    }

    Properties

    data: Wallet[]

    Memberof

    WalletList

    -
    has_more: boolean

    True if this list has another page of items after this one that can be fetched.

    +
    has_more: boolean

    True if this list has another page of items after this one that can be fetched.

    Memberof

    WalletList

    -
    next_page: string

    The page token to be used to fetch the next page.

    +
    next_page: string

    The page token to be used to fetch the next page.

    Memberof

    WalletList

    -
    total_count: number

    The total number of wallets

    +
    total_count: number

    The total number of wallets

    Memberof

    WalletList

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.WalletsApiInterface.html b/docs/interfaces/client_api.WalletsApiInterface.html index 705285a8..357ab6a7 100644 --- a/docs/interfaces/client_api.WalletsApiInterface.html +++ b/docs/interfaces/client_api.WalletsApiInterface.html @@ -1,6 +1,6 @@ WalletsApiInterface | @coinbase/coinbase-sdk

    WalletsApi - interface

    Export

    WalletsApi

    -
    interface WalletsApiInterface {
        createWallet(createWalletRequest?, options?): AxiosPromise<Wallet>;
        getWallet(walletId, options?): AxiosPromise<Wallet>;
        getWalletBalance(walletId, assetId, options?): AxiosPromise<Balance>;
        listWalletBalances(walletId, options?): AxiosPromise<AddressBalanceList>;
        listWallets(limit?, page?, options?): AxiosPromise<WalletList>;
    }

    Implemented by

    Methods

    interface WalletsApiInterface {
        createWallet(createWalletRequest?, options?): AxiosPromise<Wallet>;
        getWallet(walletId, options?): AxiosPromise<Wallet>;
        getWalletBalance(walletId, assetId, options?): AxiosPromise<Balance>;
        listWalletBalances(walletId, options?): AxiosPromise<AddressBalanceList>;
        listWallets(limit?, page?, options?): AxiosPromise<WalletList>;
    }

    Implemented by

    Methods

    Parameters

    • Optional createWalletRequest: CreateWalletRequest
    • Optional options: RawAxiosRequestConfig

      Override http request option.

    Returns AxiosPromise<Wallet>

    Summary

    Create a new wallet

    Throws

    Memberof

    WalletsApiInterface

    -
    • Get wallet

      Parameters

      • walletId: string

        The ID of the wallet to fetch

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<Wallet>

      Summary

      Get wallet by ID

      Throws

      Memberof

      WalletsApiInterface

      -
    • Get the aggregated balance of an asset across all of the addresses in the wallet.

      +
    • Get the aggregated balance of an asset across all of the addresses in the wallet.

      Parameters

      • walletId: string

        The ID of the wallet to fetch the balance for

      • assetId: string

        The symbol of the asset to fetch the balance for

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<Balance>

      Summary

      Get the balance of an asset in the wallet

      Throws

      Memberof

      WalletsApiInterface

      -
    • List the balances of all of the addresses in the wallet aggregated by asset.

      Parameters

      • walletId: string

        The ID of the wallet to fetch the balances for

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<AddressBalanceList>

      Summary

      List wallet balances

      Throws

      Memberof

      WalletsApiInterface

      -
    • List wallets belonging to the user.

      Parameters

      • Optional limit: number

        A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

      • Optional page: string

        A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<WalletList>

      Summary

      List wallets

      Throws

      Memberof

      WalletsApiInterface

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.Webhook.html b/docs/interfaces/client_api.Webhook.html new file mode 100644 index 00000000..5bfb2959 --- /dev/null +++ b/docs/interfaces/client_api.Webhook.html @@ -0,0 +1,23 @@ +Webhook | @coinbase/coinbase-sdk

    Webhook that is used for getting notifications when monitored events occur.

    +

    Export

    Webhook

    +
    interface Webhook {
        created_at?: string;
        event_filters?: WebhookEventFilter[];
        event_type?: WebhookEventType;
        id?: string;
        network_id?: string;
        notification_uri?: string;
        updated_at?: string;
    }

    Properties

    created_at?: string

    The date and time the webhook was created.

    +

    Memberof

    Webhook

    +
    event_filters?: WebhookEventFilter[]

    Webhook will monitor all events that matches any one of the event filters.

    +

    Memberof

    Webhook

    +
    event_type?: WebhookEventType

    Memberof

    Webhook

    +
    id?: string

    Identifier of the webhook.

    +

    Memberof

    Webhook

    +
    network_id?: string

    The ID of the blockchain network

    +

    Memberof

    Webhook

    +
    notification_uri?: string

    The URL to which the notifications will be sent.

    +

    Memberof

    Webhook

    +
    updated_at?: string

    The date and time the webhook was last updated.

    +

    Memberof

    Webhook

    +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.WebhookEventFilter.html b/docs/interfaces/client_api.WebhookEventFilter.html new file mode 100644 index 00000000..597cf881 --- /dev/null +++ b/docs/interfaces/client_api.WebhookEventFilter.html @@ -0,0 +1,12 @@ +WebhookEventFilter | @coinbase/coinbase-sdk

    The event_filter parameter specifies the criteria to filter events from the blockchain. It allows filtering events by contract address, sender address and receiver address. For a single event filter, not all of the properties need to be presented.

    +

    Export

    WebhookEventFilter

    +
    interface WebhookEventFilter {
        contract_address?: string;
        from_address?: string;
        to_address?: string;
    }

    Properties

    contract_address?: string

    The onchain contract address of the token being transferred.

    +

    Memberof

    WebhookEventFilter

    +
    from_address?: string

    The onchain address of the sender.

    +

    Memberof

    WebhookEventFilter

    +
    to_address?: string

    The onchain address of the receiver.

    +

    Memberof

    WebhookEventFilter

    +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.WebhookList.html b/docs/interfaces/client_api.WebhookList.html new file mode 100644 index 00000000..03fcc3c0 --- /dev/null +++ b/docs/interfaces/client_api.WebhookList.html @@ -0,0 +1,10 @@ +WebhookList | @coinbase/coinbase-sdk

    Export

    WebhookList

    +
    interface WebhookList {
        data: Webhook[];
        has_more?: boolean;
        next_page?: string;
    }

    Properties

    Properties

    data: Webhook[]

    Memberof

    WebhookList

    +
    has_more?: boolean

    True if this list has another page of items after this one that can be fetched.

    +

    Memberof

    WebhookList

    +
    next_page?: string

    The page token to be used to fetch the next page.

    +

    Memberof

    WebhookList

    +
    \ No newline at end of file diff --git a/docs/interfaces/client_api.WebhooksApiInterface.html b/docs/interfaces/client_api.WebhooksApiInterface.html new file mode 100644 index 00000000..d634010f --- /dev/null +++ b/docs/interfaces/client_api.WebhooksApiInterface.html @@ -0,0 +1,27 @@ +WebhooksApiInterface | @coinbase/coinbase-sdk

    WebhooksApi - interface

    +

    Export

    WebhooksApi

    +
    interface WebhooksApiInterface {
        createWebhook(createWebhookRequest?, options?): AxiosPromise<Webhook>;
        deleteWebhook(webhookId, options?): AxiosPromise<void>;
        listWebhooks(limit?, page?, options?): AxiosPromise<WebhookList>;
        updateWebhook(webhookId, updateWebhookRequest?, options?): AxiosPromise<Webhook>;
    }

    Implemented by

    Methods

    • Create a new webhook

      +

      Parameters

      • Optional createWebhookRequest: CreateWebhookRequest
      • Optional options: RawAxiosRequestConfig

        Override http request option.

        +

      Returns AxiosPromise<Webhook>

      Summary

      Create a new webhook

      +

      Throws

      Memberof

      WebhooksApiInterface

      +
    • Delete a webhook

      +

      Parameters

      • webhookId: string

        The Webhook uuid that needs to be deleted

        +
      • Optional options: RawAxiosRequestConfig

        Override http request option.

        +

      Returns AxiosPromise<void>

      Summary

      Delete a webhook

      +

      Throws

      Memberof

      WebhooksApiInterface

      +
    • List webhooks, optionally filtered by event type.

      +

      Parameters

      • Optional limit: number

        A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

        +
      • Optional page: string

        A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

        +
      • Optional options: RawAxiosRequestConfig

        Override http request option.

        +

      Returns AxiosPromise<WebhookList>

      Summary

      List webhooks

      +

      Throws

      Memberof

      WebhooksApiInterface

      +
    • Update a webhook

      +

      Parameters

      • webhookId: string

        The Webhook id that needs to be updated

        +
      • Optional updateWebhookRequest: UpdateWebhookRequest
      • Optional options: RawAxiosRequestConfig

        Override http request option.

        +

      Returns AxiosPromise<Webhook>

      Summary

      Update a webhook

      +

      Throws

      Memberof

      WebhooksApiInterface

      +
    \ No newline at end of file diff --git a/docs/interfaces/client_base.RequestArgs.html b/docs/interfaces/client_base.RequestArgs.html index 5a982b9e..bd4a351c 100644 --- a/docs/interfaces/client_base.RequestArgs.html +++ b/docs/interfaces/client_base.RequestArgs.html @@ -1,4 +1,4 @@ RequestArgs | @coinbase/coinbase-sdk

    Export

    RequestArgs

    -
    interface RequestArgs {
        options: RawAxiosRequestConfig;
        url: string;
    }

    Properties

    interface RequestArgs {
        options: RawAxiosRequestConfig;
        url: string;
    }

    Properties

    Properties

    options: RawAxiosRequestConfig
    url: string
    \ No newline at end of file +

    Properties

    options: RawAxiosRequestConfig
    url: string
    \ No newline at end of file diff --git a/docs/interfaces/client_configuration.ConfigurationParameters.html b/docs/interfaces/client_configuration.ConfigurationParameters.html index a5ad76af..4e802dd3 100644 --- a/docs/interfaces/client_configuration.ConfigurationParameters.html +++ b/docs/interfaces/client_configuration.ConfigurationParameters.html @@ -5,7 +5,7 @@

    NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). https://openapi-generator.tech Do not edit the class manually.

    -
    interface ConfigurationParameters {
        accessToken?: string | Promise<string> | ((name?, scopes?) => string) | ((name?, scopes?) => Promise<string>);
        apiKey?: string | Promise<string> | ((name) => string) | ((name) => Promise<string>);
        baseOptions?: any;
        basePath?: string;
        formDataCtor?: (new () => any);
        password?: string;
        serverIndex?: number;
        username?: string;
    }

    Properties

    interface ConfigurationParameters {
        accessToken?: string | Promise<string> | ((name?, scopes?) => string) | ((name?, scopes?) => Promise<string>);
        apiKey?: string | Promise<string> | ((name) => string) | ((name) => Promise<string>);
        baseOptions?: any;
        basePath?: string;
        formDataCtor?: (new () => any);
        password?: string;
        serverIndex?: number;
        username?: string;
    }

    Properties

    accessToken?: string | Promise<string> | ((name?, scopes?) => string) | ((name?, scopes?) => Promise<string>)

    Type declaration

      • (name?, scopes?): string
      • Parameters

        • Optional name: string
        • Optional scopes: string[]

        Returns string

    Type declaration

      • (name?, scopes?): Promise<string>
      • Parameters

        • Optional name: string
        • Optional scopes: string[]

        Returns Promise<string>

    apiKey?: string | Promise<string> | ((name) => string) | ((name) => Promise<string>)

    Type declaration

      • (name): string
      • Parameters

        • name: string

        Returns string

    Type declaration

      • (name): Promise<string>
      • Parameters

        • name: string

        Returns Promise<string>

    baseOptions?: any
    basePath?: string
    formDataCtor?: (new () => any)

    Type declaration

      • new (): any
      • Returns any

    password?: string
    serverIndex?: number
    username?: string
    \ No newline at end of file +

    Properties

    accessToken?: string | Promise<string> | ((name?, scopes?) => string) | ((name?, scopes?) => Promise<string>)

    Type declaration

      • (name?, scopes?): string
      • Parameters

        • Optional name: string
        • Optional scopes: string[]

        Returns string

    Type declaration

      • (name?, scopes?): Promise<string>
      • Parameters

        • Optional name: string
        • Optional scopes: string[]

        Returns Promise<string>

    apiKey?: string | Promise<string> | ((name) => string) | ((name) => Promise<string>)

    Type declaration

      • (name): string
      • Parameters

        • name: string

        Returns string

    Type declaration

      • (name): Promise<string>
      • Parameters

        • name: string

        Returns Promise<string>

    baseOptions?: any
    basePath?: string
    formDataCtor?: (new () => any)

    Type declaration

      • new (): any
      • Returns any

    password?: string
    serverIndex?: number
    username?: string
    \ No newline at end of file diff --git a/docs/modules/client.html b/docs/modules/client.html index 68a51dcc..81e93732 100644 --- a/docs/modules/client.html +++ b/docs/modules/client.html @@ -1,4 +1,4 @@ -client | @coinbase/coinbase-sdk

    References

    Address +client | @coinbase/coinbase-sdk

    References

    Re-exports Address
    Re-exports AddressBalanceList
    Re-exports AddressList
    Re-exports AddressesApi
    Re-exports AddressesApiAxiosParamCreator
    Re-exports AddressesApiFactory
    Re-exports AddressesApiFp
    Re-exports AddressesApiInterface
    Re-exports Asset
    Re-exports AssetsApi
    Re-exports AssetsApiAxiosParamCreator
    Re-exports AssetsApiFactory
    Re-exports AssetsApiFp
    Re-exports AssetsApiInterface
    Re-exports Balance
    Re-exports BroadcastTradeRequest
    Re-exports BroadcastTransferRequest
    Re-exports BuildStakingOperationRequest
    Re-exports Configuration
    Re-exports ConfigurationParameters
    Re-exports CreateAddressRequest
    Re-exports CreateServerSignerRequest
    Re-exports CreateTradeRequest
    Re-exports CreateTransferRequest
    Re-exports CreateWalletRequest
    Re-exports CreateWalletRequestWallet
    Re-exports EthereumValidatorMetadata
    Re-exports ExternalAddressesApi
    Re-exports ExternalAddressesApiAxiosParamCreator
    Re-exports ExternalAddressesApiFactory
    Re-exports ExternalAddressesApiFp
    Re-exports ExternalAddressesApiInterface
    Re-exports FaucetTransaction
    Re-exports Feature
    Re-exports FetchStakingRewards200Response
    Re-exports FetchStakingRewardsRequest
    Re-exports GetStakingContextRequest
    Re-exports ModelError
    Re-exports NativeEthStakingContext
    Re-exports PartialEthStakingContext
    Re-exports SeedCreationEvent
    Re-exports SeedCreationEventResult
    Re-exports ServerSigner
    Re-exports ServerSignerEvent
    Re-exports ServerSignerEventEvent
    Re-exports ServerSignerEventList
    Re-exports ServerSignerList
    Re-exports ServerSignersApi
    Re-exports ServerSignersApiAxiosParamCreator
    Re-exports ServerSignersApiFactory
    Re-exports ServerSignersApiFp
    Re-exports ServerSignersApiInterface
    Re-exports SignatureCreationEvent
    Re-exports SignatureCreationEventResult
    Re-exports SignedVoluntaryExitMessageMetadata
    Re-exports StakeApi
    Re-exports StakeApiAxiosParamCreator
    Re-exports StakeApiFactory
    Re-exports StakeApiFp
    Re-exports StakeApiInterface
    Re-exports StakingContext
    Re-exports StakingContextContext
    Re-exports StakingOperation
    Re-exports StakingOperationMetadata
    Re-exports StakingOperationStatusEnum
    Re-exports StakingReward
    Re-exports StakingRewardFormat
    Re-exports StakingRewardStateEnum
    Re-exports Trade
    Re-exports TradeList
    Re-exports TradesApi
    Re-exports TradesApiAxiosParamCreator
    Re-exports TradesApiFactory
    Re-exports TradesApiFp
    Re-exports TradesApiInterface
    Re-exports Transaction
    Re-exports TransactionStatusEnum
    Re-exports TransactionType
    Re-exports Transfer
    Re-exports TransferList
    Re-exports TransferStatusEnum
    Re-exports TransfersApi
    Re-exports TransfersApiAxiosParamCreator
    Re-exports TransfersApiFactory
    Re-exports TransfersApiFp
    Re-exports TransfersApiInterface
    Re-exports User
    Re-exports UsersApi
    Re-exports UsersApiAxiosParamCreator
    Re-exports UsersApiFactory
    Re-exports UsersApiFp
    Re-exports UsersApiInterface
    Re-exports Validator
    Re-exports ValidatorDetails
    Re-exports ValidatorList
    Re-exports ValidatorsApi
    Re-exports ValidatorsApiAxiosParamCreator
    Re-exports ValidatorsApiFactory
    Re-exports ValidatorsApiFp
    Re-exports ValidatorsApiInterface
    Re-exports Wallet
    Re-exports WalletList
    Re-exports WalletServerSignerStatusEnum
    Re-exports WalletsApi
    Re-exports WalletsApiAxiosParamCreator
    Re-exports WalletsApiFactory
    Re-exports WalletsApiFp
    Re-exports WalletsApiInterface
    \ No newline at end of file +Webhook +WebhookEventFilter +WebhookEventType +WebhookList +WebhooksApi +WebhooksApiAxiosParamCreator +WebhooksApiFactory +WebhooksApiFp +WebhooksApiInterface +

    References

    Re-exports Address
    Re-exports AddressBalanceList
    Re-exports AddressList
    Re-exports AddressesApi
    Re-exports AddressesApiAxiosParamCreator
    Re-exports AddressesApiFactory
    Re-exports AddressesApiFp
    Re-exports AddressesApiInterface
    Re-exports Asset
    Re-exports AssetsApi
    Re-exports AssetsApiAxiosParamCreator
    Re-exports AssetsApiFactory
    Re-exports AssetsApiFp
    Re-exports AssetsApiInterface
    Re-exports Balance
    Re-exports BroadcastStakingOperationRequest
    Re-exports BroadcastTradeRequest
    Re-exports BroadcastTransferRequest
    Re-exports BuildStakingOperationRequest
    Re-exports Configuration
    Re-exports ConfigurationParameters
    Re-exports ContractEvent
    Re-exports ContractEventList
    Re-exports ContractEventsApi
    Re-exports ContractEventsApiAxiosParamCreator
    Re-exports ContractEventsApiFactory
    Re-exports ContractEventsApiFp
    Re-exports ContractEventsApiInterface
    Re-exports CreateAddressRequest
    Re-exports CreateServerSignerRequest
    Re-exports CreateStakingOperationRequest
    Re-exports CreateTradeRequest
    Re-exports CreateTransferRequest
    Re-exports CreateWalletRequest
    Re-exports CreateWalletRequestWallet
    Re-exports CreateWebhookRequest
    Re-exports EthereumValidatorMetadata
    Re-exports ExternalAddressesApi
    Re-exports ExternalAddressesApiAxiosParamCreator
    Re-exports ExternalAddressesApiFactory
    Re-exports ExternalAddressesApiFp
    Re-exports ExternalAddressesApiInterface
    Re-exports FaucetTransaction
    Re-exports Feature
    Re-exports FetchStakingRewards200Response
    Re-exports FetchStakingRewardsRequest
    Re-exports GetStakingContextRequest
    Re-exports ModelError
    Re-exports NativeEthStakingContext
    Re-exports PartialEthStakingContext
    Re-exports SeedCreationEvent
    Re-exports SeedCreationEventResult
    Re-exports ServerSigner
    Re-exports ServerSignerEvent
    Re-exports ServerSignerEventEvent
    Re-exports ServerSignerEventList
    Re-exports ServerSignerList
    Re-exports ServerSignersApi
    Re-exports ServerSignersApiAxiosParamCreator
    Re-exports ServerSignersApiFactory
    Re-exports ServerSignersApiFp
    Re-exports ServerSignersApiInterface
    Re-exports SignatureCreationEvent
    Re-exports SignatureCreationEventResult
    Re-exports SignedVoluntaryExitMessageMetadata
    Re-exports StakeApi
    Re-exports StakeApiAxiosParamCreator
    Re-exports StakeApiFactory
    Re-exports StakeApiFp
    Re-exports StakeApiInterface
    Re-exports StakingContext
    Re-exports StakingContextContext
    Re-exports StakingOperation
    Re-exports StakingOperationMetadata
    Re-exports StakingOperationStatusEnum
    Re-exports StakingReward
    Re-exports StakingRewardFormat
    Re-exports StakingRewardStateEnum
    Re-exports Trade
    Re-exports TradeList
    Re-exports TradesApi
    Re-exports TradesApiAxiosParamCreator
    Re-exports TradesApiFactory
    Re-exports TradesApiFp
    Re-exports TradesApiInterface
    Re-exports Transaction
    Re-exports TransactionStatusEnum
    Re-exports TransactionType
    Re-exports Transfer
    Re-exports TransferList
    Re-exports TransfersApi
    Re-exports TransfersApiAxiosParamCreator
    Re-exports TransfersApiFactory
    Re-exports TransfersApiFp
    Re-exports TransfersApiInterface
    Re-exports UpdateWebhookRequest
    Re-exports User
    Re-exports UsersApi
    Re-exports UsersApiAxiosParamCreator
    Re-exports UsersApiFactory
    Re-exports UsersApiFp
    Re-exports UsersApiInterface
    Re-exports Validator
    Re-exports ValidatorDetails
    Re-exports ValidatorList
    Re-exports ValidatorsApi
    Re-exports ValidatorsApiAxiosParamCreator
    Re-exports ValidatorsApiFactory
    Re-exports ValidatorsApiFp
    Re-exports ValidatorsApiInterface
    Re-exports Wallet
    Re-exports WalletList
    Re-exports WalletServerSignerStatusEnum
    Re-exports WalletsApi
    Re-exports WalletsApiAxiosParamCreator
    Re-exports WalletsApiFactory
    Re-exports WalletsApiFp
    Re-exports WalletsApiInterface
    Re-exports Webhook
    Re-exports WebhookEventFilter
    Re-exports WebhookEventType
    Re-exports WebhookList
    Re-exports WebhooksApi
    Re-exports WebhooksApiAxiosParamCreator
    Re-exports WebhooksApiFactory
    Re-exports WebhooksApiFp
    Re-exports WebhooksApiInterface
    \ No newline at end of file diff --git a/docs/modules/client_api.html b/docs/modules/client_api.html index 4792b939..60f23849 100644 --- a/docs/modules/client_api.html +++ b/docs/modules/client_api.html @@ -1,8 +1,10 @@ -client/api | @coinbase/coinbase-sdk

    Index

    Enumerations

    Feature +client/api | @coinbase/coinbase-sdk

    Index

    Enumerations

    Classes

    Interfaces

    Type Aliases

    Variables

    Functions

    \ No newline at end of file diff --git a/docs/modules/client_base.html b/docs/modules/client_base.html index 8265d9bd..626952db 100644 --- a/docs/modules/client_base.html +++ b/docs/modules/client_base.html @@ -1,4 +1,4 @@ -client/base | @coinbase/coinbase-sdk

    Index

    Classes

    BaseAPI +client/base | @coinbase/coinbase-sdk

    Index

    Classes

    Interfaces

    Variables

    BASE_PATH diff --git a/docs/modules/client_common.html b/docs/modules/client_common.html index 6438ef35..66d4136b 100644 --- a/docs/modules/client_common.html +++ b/docs/modules/client_common.html @@ -1,4 +1,4 @@ -client/common | @coinbase/coinbase-sdk

    Index

    Variables

    DUMMY_BASE_URL +client/common | @coinbase/coinbase-sdk

    Index

    Variables

    Functions

    assertParamExists createRequestFunction serializeDataIfNeeded diff --git a/docs/modules/client_configuration.html b/docs/modules/client_configuration.html index ac0cc950..1ea13f39 100644 --- a/docs/modules/client_configuration.html +++ b/docs/modules/client_configuration.html @@ -1,3 +1,3 @@ -client/configuration | @coinbase/coinbase-sdk

    Index

    Classes

    Configuration +client/configuration | @coinbase/coinbase-sdk
    \ No newline at end of file diff --git a/docs/modules/coinbase_address.html b/docs/modules/coinbase_address.html index c134b0e8..ed89fe6a 100644 --- a/docs/modules/coinbase_address.html +++ b/docs/modules/coinbase_address.html @@ -1,2 +1,2 @@ -coinbase/address | @coinbase/coinbase-sdk

    Index

    Classes

    Address +coinbase/address | @coinbase/coinbase-sdk

    Index

    Classes

    \ No newline at end of file diff --git a/docs/modules/coinbase_address_external_address.html b/docs/modules/coinbase_address_external_address.html index 4c8cb063..722c8b22 100644 --- a/docs/modules/coinbase_address_external_address.html +++ b/docs/modules/coinbase_address_external_address.html @@ -1,2 +1,2 @@ -coinbase/address/external_address | @coinbase/coinbase-sdk

    Module coinbase/address/external_address

    Index

    Classes

    ExternalAddress +coinbase/address/external_address | @coinbase/coinbase-sdk
    \ No newline at end of file diff --git a/docs/modules/coinbase_address_wallet_address.html b/docs/modules/coinbase_address_wallet_address.html index 4360b178..9d919056 100644 --- a/docs/modules/coinbase_address_wallet_address.html +++ b/docs/modules/coinbase_address_wallet_address.html @@ -1,2 +1,2 @@ -coinbase/address/wallet_address | @coinbase/coinbase-sdk

    Module coinbase/address/wallet_address

    Index

    Classes

    WalletAddress +coinbase/address/wallet_address | @coinbase/coinbase-sdk
    \ No newline at end of file diff --git a/docs/modules/coinbase_api_error.html b/docs/modules/coinbase_api_error.html index a336f825..ce067ba7 100644 --- a/docs/modules/coinbase_api_error.html +++ b/docs/modules/coinbase_api_error.html @@ -1,4 +1,4 @@ -coinbase/api_error | @coinbase/coinbase-sdk

    Index

    Classes

    APIError +coinbase/api_error | @coinbase/coinbase-sdk

    Index

    Classes

    APIError AlreadyExistsError FaucetLimitReachedError InvalidAddressError diff --git a/docs/modules/coinbase_asset.html b/docs/modules/coinbase_asset.html index 9e731f3e..cc79a2a2 100644 --- a/docs/modules/coinbase_asset.html +++ b/docs/modules/coinbase_asset.html @@ -1,2 +1,2 @@ -coinbase/asset | @coinbase/coinbase-sdk

    Index

    Classes

    Asset +coinbase/asset | @coinbase/coinbase-sdk

    Index

    Classes

    \ No newline at end of file diff --git a/docs/modules/coinbase_authenticator.html b/docs/modules/coinbase_authenticator.html index 861286c7..700bbf46 100644 --- a/docs/modules/coinbase_authenticator.html +++ b/docs/modules/coinbase_authenticator.html @@ -1,2 +1,2 @@ -coinbase/authenticator | @coinbase/coinbase-sdk

    Index

    Classes

    CoinbaseAuthenticator +coinbase/authenticator | @coinbase/coinbase-sdk
    \ No newline at end of file diff --git a/docs/modules/coinbase_balance.html b/docs/modules/coinbase_balance.html index c15be5f7..a5829566 100644 --- a/docs/modules/coinbase_balance.html +++ b/docs/modules/coinbase_balance.html @@ -1,2 +1,2 @@ -coinbase/balance | @coinbase/coinbase-sdk

    Index

    Classes

    Balance +coinbase/balance | @coinbase/coinbase-sdk

    Index

    Classes

    \ No newline at end of file diff --git a/docs/modules/coinbase_balance_map.html b/docs/modules/coinbase_balance_map.html index ad2f16de..a53a652f 100644 --- a/docs/modules/coinbase_balance_map.html +++ b/docs/modules/coinbase_balance_map.html @@ -1,2 +1,2 @@ -coinbase/balance_map | @coinbase/coinbase-sdk

    Index

    Classes

    BalanceMap +coinbase/balance_map | @coinbase/coinbase-sdk
    \ No newline at end of file diff --git a/docs/modules/coinbase_coinbase.html b/docs/modules/coinbase_coinbase.html index ba3da1fa..23b9433d 100644 --- a/docs/modules/coinbase_coinbase.html +++ b/docs/modules/coinbase_coinbase.html @@ -1,2 +1,2 @@ -coinbase/coinbase | @coinbase/coinbase-sdk

    Index

    Classes

    Coinbase +coinbase/coinbase | @coinbase/coinbase-sdk
    \ No newline at end of file diff --git a/docs/modules/coinbase_constants.html b/docs/modules/coinbase_constants.html index 253dae7a..2a433b8d 100644 --- a/docs/modules/coinbase_constants.html +++ b/docs/modules/coinbase_constants.html @@ -1,4 +1,4 @@ -coinbase/constants | @coinbase/coinbase-sdk

    Index

    Variables

    ATOMIC_UNITS_PER_USDC +coinbase/constants | @coinbase/coinbase-sdk
    \ No newline at end of file diff --git a/docs/modules/coinbase_errors.html b/docs/modules/coinbase_errors.html index 13cbbd75..6d1b0086 100644 --- a/docs/modules/coinbase_errors.html +++ b/docs/modules/coinbase_errors.html @@ -1,4 +1,4 @@ -coinbase/errors | @coinbase/coinbase-sdk

    Index

    Classes

    ArgumentError +coinbase/errors | @coinbase/coinbase-sdk

    Index

    Classes

    ArgumentError InternalError InvalidAPIKeyFormat InvalidConfiguration diff --git a/docs/modules/coinbase_faucet_transaction.html b/docs/modules/coinbase_faucet_transaction.html index 23bd184c..128a921b 100644 --- a/docs/modules/coinbase_faucet_transaction.html +++ b/docs/modules/coinbase_faucet_transaction.html @@ -1,2 +1,2 @@ -coinbase/faucet_transaction | @coinbase/coinbase-sdk

    Module coinbase/faucet_transaction

    Index

    Classes

    FaucetTransaction +coinbase/faucet_transaction | @coinbase/coinbase-sdk
    \ No newline at end of file diff --git a/docs/modules/coinbase_server_signer.html b/docs/modules/coinbase_server_signer.html index 555bdf99..0fdd949b 100644 --- a/docs/modules/coinbase_server_signer.html +++ b/docs/modules/coinbase_server_signer.html @@ -1,2 +1,2 @@ -coinbase/server_signer | @coinbase/coinbase-sdk

    Index

    Classes

    ServerSigner +coinbase/server_signer | @coinbase/coinbase-sdk
    \ No newline at end of file diff --git a/docs/modules/coinbase_staking_operation.html b/docs/modules/coinbase_staking_operation.html index 91e2bbb8..94604e4f 100644 --- a/docs/modules/coinbase_staking_operation.html +++ b/docs/modules/coinbase_staking_operation.html @@ -1,2 +1,2 @@ -coinbase/staking_operation | @coinbase/coinbase-sdk

    Module coinbase/staking_operation

    Index

    Classes

    StakingOperation +coinbase/staking_operation | @coinbase/coinbase-sdk
    \ No newline at end of file diff --git a/docs/modules/coinbase_staking_reward.html b/docs/modules/coinbase_staking_reward.html index 2ff883ba..cf8405fc 100644 --- a/docs/modules/coinbase_staking_reward.html +++ b/docs/modules/coinbase_staking_reward.html @@ -1,2 +1,2 @@ -coinbase/staking_reward | @coinbase/coinbase-sdk

    Module coinbase/staking_reward

    Index

    Classes

    StakingReward +coinbase/staking_reward | @coinbase/coinbase-sdk
    \ No newline at end of file diff --git a/docs/modules/coinbase_trade.html b/docs/modules/coinbase_trade.html index 7d122748..7c53b349 100644 --- a/docs/modules/coinbase_trade.html +++ b/docs/modules/coinbase_trade.html @@ -1,2 +1,2 @@ -coinbase/trade | @coinbase/coinbase-sdk

    Index

    Classes

    Trade +coinbase/trade | @coinbase/coinbase-sdk

    Index

    Classes

    \ No newline at end of file diff --git a/docs/modules/coinbase_transaction.html b/docs/modules/coinbase_transaction.html index a69a87aa..65d6a8c9 100644 --- a/docs/modules/coinbase_transaction.html +++ b/docs/modules/coinbase_transaction.html @@ -1,2 +1,2 @@ -coinbase/transaction | @coinbase/coinbase-sdk

    Index

    Classes

    Transaction +coinbase/transaction | @coinbase/coinbase-sdk
    \ No newline at end of file diff --git a/docs/modules/coinbase_transfer.html b/docs/modules/coinbase_transfer.html index 738f80ed..b9a01b3a 100644 --- a/docs/modules/coinbase_transfer.html +++ b/docs/modules/coinbase_transfer.html @@ -1,2 +1,2 @@ -coinbase/transfer | @coinbase/coinbase-sdk

    Index

    Classes

    Transfer +coinbase/transfer | @coinbase/coinbase-sdk
    \ No newline at end of file diff --git a/docs/modules/coinbase_types.html b/docs/modules/coinbase_types.html index 96acfa08..2fc77668 100644 --- a/docs/modules/coinbase_types.html +++ b/docs/modules/coinbase_types.html @@ -1,4 +1,4 @@ -coinbase/types | @coinbase/coinbase-sdk

    Index

    Enumerations

    ServerSignerStatus +coinbase/types | @coinbase/coinbase-sdk

    Index

    Enumerations

    ServerSignerStatus StakeOptionsMode TransactionStatus TransferStatus diff --git a/docs/modules/coinbase_user.html b/docs/modules/coinbase_user.html index 3f8acb1e..16dbdd7b 100644 --- a/docs/modules/coinbase_user.html +++ b/docs/modules/coinbase_user.html @@ -1,2 +1,2 @@ -coinbase/user | @coinbase/coinbase-sdk

    Index

    Classes

    User +coinbase/user | @coinbase/coinbase-sdk

    Index

    Classes

    \ No newline at end of file diff --git a/docs/modules/coinbase_utils.html b/docs/modules/coinbase_utils.html index 67b017f3..fde94796 100644 --- a/docs/modules/coinbase_utils.html +++ b/docs/modules/coinbase_utils.html @@ -1,5 +1,7 @@ -coinbase/utils | @coinbase/coinbase-sdk

    Index

    Functions

    convertStringToHex +coinbase/utils | @coinbase/coinbase-sdk

    Index

    Functions

    convertStringToHex delay +formatDate +getWeekBackDate logApiResponse parseUnsignedPayload registerAxiosInterceptors diff --git a/docs/modules/coinbase_validator.html b/docs/modules/coinbase_validator.html index 4adefaad..f57148a0 100644 --- a/docs/modules/coinbase_validator.html +++ b/docs/modules/coinbase_validator.html @@ -1,2 +1,2 @@ -coinbase/validator | @coinbase/coinbase-sdk

    Index

    Classes

    Validator +coinbase/validator | @coinbase/coinbase-sdk
    \ No newline at end of file diff --git a/docs/modules/coinbase_wallet.html b/docs/modules/coinbase_wallet.html index a044d303..287d7755 100644 --- a/docs/modules/coinbase_wallet.html +++ b/docs/modules/coinbase_wallet.html @@ -1,2 +1,2 @@ -coinbase/wallet | @coinbase/coinbase-sdk

    Index

    Classes

    Wallet +coinbase/wallet | @coinbase/coinbase-sdk

    Index

    Classes

    \ No newline at end of file diff --git a/docs/modules/index.html b/docs/modules/index.html index 68e0c5ed..429f0553 100644 --- a/docs/modules/index.html +++ b/docs/modules/index.html @@ -1,4 +1,4 @@ -index | @coinbase/coinbase-sdk

    References

    ATOMIC_UNITS_PER_USDC +index | @coinbase/coinbase-sdk

    References

    ATOMIC_UNITS_PER_USDC Address AddressAPIClient Amount diff --git a/docs/types/client_api.ServerSignerEventEvent.html b/docs/types/client_api.ServerSignerEventEvent.html index fe32725b..f69a13b9 100644 --- a/docs/types/client_api.ServerSignerEventEvent.html +++ b/docs/types/client_api.ServerSignerEventEvent.html @@ -1 +1 @@ -ServerSignerEventEvent | @coinbase/coinbase-sdk
    ServerSignerEventEvent: SeedCreationEvent | SignatureCreationEvent

    Export

    \ No newline at end of file +ServerSignerEventEvent | @coinbase/coinbase-sdk
    ServerSignerEventEvent: SeedCreationEvent | SignatureCreationEvent

    Export

    \ No newline at end of file diff --git a/docs/types/client_api.StakingContextContext.html b/docs/types/client_api.StakingContextContext.html index 0ac6b32f..a9d070ef 100644 --- a/docs/types/client_api.StakingContextContext.html +++ b/docs/types/client_api.StakingContextContext.html @@ -1 +1 @@ -StakingContextContext | @coinbase/coinbase-sdk
    \ No newline at end of file +StakingContextContext | @coinbase/coinbase-sdk
    \ No newline at end of file diff --git a/docs/types/client_api.StakingOperationMetadata.html b/docs/types/client_api.StakingOperationMetadata.html index ca6f9d53..e4c0adb6 100644 --- a/docs/types/client_api.StakingOperationMetadata.html +++ b/docs/types/client_api.StakingOperationMetadata.html @@ -1 +1 @@ -StakingOperationMetadata | @coinbase/coinbase-sdk
    StakingOperationMetadata: SignedVoluntaryExitMessageMetadata[]

    Export

    \ No newline at end of file +StakingOperationMetadata | @coinbase/coinbase-sdk
    StakingOperationMetadata: SignedVoluntaryExitMessageMetadata[]

    Export

    \ No newline at end of file diff --git a/docs/types/client_api.StakingOperationStatusEnum.html b/docs/types/client_api.StakingOperationStatusEnum.html index 4b486bcc..62693e4d 100644 --- a/docs/types/client_api.StakingOperationStatusEnum.html +++ b/docs/types/client_api.StakingOperationStatusEnum.html @@ -1 +1 @@ -StakingOperationStatusEnum | @coinbase/coinbase-sdk
    StakingOperationStatusEnum: typeof StakingOperationStatusEnum[keyof typeof StakingOperationStatusEnum]
    \ No newline at end of file +StakingOperationStatusEnum | @coinbase/coinbase-sdk
    StakingOperationStatusEnum: typeof StakingOperationStatusEnum[keyof typeof StakingOperationStatusEnum]
    \ No newline at end of file diff --git a/docs/types/client_api.StakingRewardStateEnum.html b/docs/types/client_api.StakingRewardStateEnum.html index 4d16fea9..2cb30e5b 100644 --- a/docs/types/client_api.StakingRewardStateEnum.html +++ b/docs/types/client_api.StakingRewardStateEnum.html @@ -1 +1 @@ -StakingRewardStateEnum | @coinbase/coinbase-sdk
    StakingRewardStateEnum: typeof StakingRewardStateEnum[keyof typeof StakingRewardStateEnum]
    \ No newline at end of file +StakingRewardStateEnum | @coinbase/coinbase-sdk
    StakingRewardStateEnum: typeof StakingRewardStateEnum[keyof typeof StakingRewardStateEnum]
    \ No newline at end of file diff --git a/docs/types/client_api.TransactionStatusEnum.html b/docs/types/client_api.TransactionStatusEnum.html index dade61c6..2746baa6 100644 --- a/docs/types/client_api.TransactionStatusEnum.html +++ b/docs/types/client_api.TransactionStatusEnum.html @@ -1 +1 @@ -TransactionStatusEnum | @coinbase/coinbase-sdk
    TransactionStatusEnum: typeof TransactionStatusEnum[keyof typeof TransactionStatusEnum]
    \ No newline at end of file +TransactionStatusEnum | @coinbase/coinbase-sdk
    TransactionStatusEnum: typeof TransactionStatusEnum[keyof typeof TransactionStatusEnum]
    \ No newline at end of file diff --git a/docs/types/client_api.TransferStatusEnum.html b/docs/types/client_api.TransferStatusEnum.html deleted file mode 100644 index 7b716ea8..00000000 --- a/docs/types/client_api.TransferStatusEnum.html +++ /dev/null @@ -1 +0,0 @@ -TransferStatusEnum | @coinbase/coinbase-sdk
    TransferStatusEnum: typeof TransferStatusEnum[keyof typeof TransferStatusEnum]
    \ No newline at end of file diff --git a/docs/types/client_api.ValidatorDetails.html b/docs/types/client_api.ValidatorDetails.html index 232d2d4a..93f76d6e 100644 --- a/docs/types/client_api.ValidatorDetails.html +++ b/docs/types/client_api.ValidatorDetails.html @@ -1 +1 @@ -ValidatorDetails | @coinbase/coinbase-sdk
    \ No newline at end of file +ValidatorDetails | @coinbase/coinbase-sdk
    \ No newline at end of file diff --git a/docs/types/client_api.WalletServerSignerStatusEnum.html b/docs/types/client_api.WalletServerSignerStatusEnum.html index fdaec9fc..80cbf3c1 100644 --- a/docs/types/client_api.WalletServerSignerStatusEnum.html +++ b/docs/types/client_api.WalletServerSignerStatusEnum.html @@ -1 +1 @@ -WalletServerSignerStatusEnum | @coinbase/coinbase-sdk
    WalletServerSignerStatusEnum: typeof WalletServerSignerStatusEnum[keyof typeof WalletServerSignerStatusEnum]
    \ No newline at end of file +WalletServerSignerStatusEnum | @coinbase/coinbase-sdk
    WalletServerSignerStatusEnum: typeof WalletServerSignerStatusEnum[keyof typeof WalletServerSignerStatusEnum]
    \ No newline at end of file diff --git a/docs/types/coinbase_types.AddressAPIClient.html b/docs/types/coinbase_types.AddressAPIClient.html index 6c15e2a5..1e66cd57 100644 --- a/docs/types/coinbase_types.AddressAPIClient.html +++ b/docs/types/coinbase_types.AddressAPIClient.html @@ -4,32 +4,32 @@
  • Optional createAddressRequest: CreateAddressRequest

    The address creation request.

  • Optional options: AxiosRequestConfig<any>

    Axios request options.

  • Returns AxiosPromise<Address>

    Throws

    If the request fails.

    -
  • getAddress:function
  • getAddress:function
    • Get address by onchain address.

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to.

      • addressId: string

        The onchain address of the address that is being fetched.

      • Optional options: AxiosRequestConfig<any>

        Axios request options.

      Returns AxiosPromise<Address>

      Throws

      If the request fails.

      -
  • getAddressBalance:function
  • getAddressBalance:function
    • Get address balance

      Parameters

      • walletId: string

        The ID of the wallet to fetch the balance for.

      • addressId: string

        The onchain address of the address that is being fetched.

      • assetId: string

        The symbol of the asset to fetch the balance for.

      • Optional options: AxiosRequestConfig<any>

        Axios request options.

        -

      Returns AxiosPromise<Balance>

      Throws

  • listAddressBalances:function
    • Lists address balances

      +
  • Returns AxiosPromise<Balance>

    Throws

  • listAddressBalances:function
    • Lists address balances

      Parameters

      • walletId: string

        The ID of the wallet to fetch the balances for.

      • addressId: string

        The onchain address of the address that is being fetched.

      • Optional page: string

        A cursor for pagination across multiple pages of results. Do not include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      • Optional options: AxiosRequestConfig<any>

        Override http request option.

        -

      Returns AxiosPromise<AddressBalanceList>

      Throws

  • listAddresses:function
    • Lists addresses.

      +
  • Returns AxiosPromise<AddressBalanceList>

    Throws

  • listAddresses:function
    • Lists addresses.

      Parameters

      • walletId: string

        The ID of the wallet the addresses belong to.

      • Optional limit: number

        The maximum number of addresses to return.

      • Optional page: string

        A cursor for pagination across multiple pages of results. Do not include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      • Optional options: AxiosRequestConfig<any>

        Override http request option.

      Returns AxiosPromise<AddressList>

      Throws

      If the request fails.

      -
  • requestFaucetFunds:function
  • requestFaucetFunds:function
    • Requests faucet funds for the address.

      Parameters

      • walletId: string

        The wallet ID.

      • addressId: string

        The address ID.

      Returns AxiosPromise<FaucetTransaction>

      The transaction hash.

      Throws

      If the request fails.

      -
  • \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/types/coinbase_types.Amount.html b/docs/types/coinbase_types.Amount.html index 3022f394..1cad1dc7 100644 --- a/docs/types/coinbase_types.Amount.html +++ b/docs/types/coinbase_types.Amount.html @@ -1,2 +1,2 @@ Amount | @coinbase/coinbase-sdk
    Amount: number | bigint | Decimal

    Amount type definition.

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/types/coinbase_types.ApiClients.html b/docs/types/coinbase_types.ApiClients.html index a8ef16f3..d5ae1056 100644 --- a/docs/types/coinbase_types.ApiClients.html +++ b/docs/types/coinbase_types.ApiClients.html @@ -1,3 +1,3 @@ ApiClients | @coinbase/coinbase-sdk
    ApiClients: {
        address?: AddressAPIClient;
        asset?: AssetAPIClient;
        externalAddress?: ExternalAddressAPIClient;
        serverSigner?: ServerSignerAPIClient;
        stake?: StakeAPIClient;
        trade?: TradeApiClients;
        transfer?: TransferAPIClient;
        user?: UserAPIClient;
        validator?: ValidatorAPIClient;
        wallet?: WalletAPIClient;
    }

    API clients type definition for the Coinbase SDK. Represents the set of API clients available in the SDK.

    -

    Type declaration

    \ No newline at end of file +

    Type declaration

    \ No newline at end of file diff --git a/docs/types/coinbase_types.AssetAPIClient.html b/docs/types/coinbase_types.AssetAPIClient.html index 2b1fc86f..f63d0936 100644 --- a/docs/types/coinbase_types.AssetAPIClient.html +++ b/docs/types/coinbase_types.AssetAPIClient.html @@ -4,4 +4,4 @@
  • Optional options: RawAxiosRequestConfig

    Override http request option.

  • Returns AxiosPromise<Asset>

    Summary

    Get the asset for the specified asset ID.

    Throws

    If the required parameter is not provided.

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/types/coinbase_types.CoinbaseConfigureFromJsonOptions.html b/docs/types/coinbase_types.CoinbaseConfigureFromJsonOptions.html index 3f3ecad3..7b3feeb7 100644 --- a/docs/types/coinbase_types.CoinbaseConfigureFromJsonOptions.html +++ b/docs/types/coinbase_types.CoinbaseConfigureFromJsonOptions.html @@ -3,4 +3,4 @@
  • Optional debugging?: boolean

    If true, logs API requests and responses to the console.

  • Optional filePath?: string

    The path to the JSON file containing the API key and private key.

  • Optional useServerSigner?: boolean

    Whether to use a Server-Signer or not.

    -
  • \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/types/coinbase_types.CoinbaseOptions.html b/docs/types/coinbase_types.CoinbaseOptions.html index f4c90bdc..dd9a8f3c 100644 --- a/docs/types/coinbase_types.CoinbaseOptions.html +++ b/docs/types/coinbase_types.CoinbaseOptions.html @@ -4,4 +4,4 @@
  • Optional debugging?: boolean

    If true, logs API requests and responses to the console.

  • privateKey: string

    The private key associated with the API key.

  • Optional useServerSigner?: boolean

    Whether to use a Server-Signer or not.

    -
  • \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/types/coinbase_types.CreateTradeOptions.html b/docs/types/coinbase_types.CreateTradeOptions.html index aa5ada43..e9e86829 100644 --- a/docs/types/coinbase_types.CreateTradeOptions.html +++ b/docs/types/coinbase_types.CreateTradeOptions.html @@ -1,2 +1,2 @@ CreateTradeOptions | @coinbase/coinbase-sdk
    CreateTradeOptions: {
        amount: Amount;
        fromAssetId: string;
        intervalSeconds?: number;
        timeoutSeconds?: number;
        toAssetId: string;
    }

    Options for creating a Trade.

    -

    Type declaration

    • amount: Amount
    • fromAssetId: string
    • Optional intervalSeconds?: number
    • Optional timeoutSeconds?: number
    • toAssetId: string
    \ No newline at end of file +

    Type declaration

    • amount: Amount
    • fromAssetId: string
    • Optional intervalSeconds?: number
    • Optional timeoutSeconds?: number
    • toAssetId: string
    \ No newline at end of file diff --git a/docs/types/coinbase_types.CreateTransferOptions.html b/docs/types/coinbase_types.CreateTransferOptions.html index 3b812d29..1240fb7d 100644 --- a/docs/types/coinbase_types.CreateTransferOptions.html +++ b/docs/types/coinbase_types.CreateTransferOptions.html @@ -1,2 +1,2 @@ CreateTransferOptions | @coinbase/coinbase-sdk
    CreateTransferOptions: {
        amount: Amount;
        assetId: string;
        destination: Destination;
        intervalSeconds?: number;
        timeoutSeconds?: number;
    }

    Options for creating a Transfer.

    -

    Type declaration

    • amount: Amount
    • assetId: string
    • destination: Destination
    • Optional intervalSeconds?: number
    • Optional timeoutSeconds?: number
    \ No newline at end of file +

    Type declaration

    • amount: Amount
    • assetId: string
    • destination: Destination
    • Optional intervalSeconds?: number
    • Optional timeoutSeconds?: number
    \ No newline at end of file diff --git a/docs/types/coinbase_types.Destination.html b/docs/types/coinbase_types.Destination.html index 50f84f00..7dfe5712 100644 --- a/docs/types/coinbase_types.Destination.html +++ b/docs/types/coinbase_types.Destination.html @@ -1,2 +1,2 @@ Destination | @coinbase/coinbase-sdk
    Destination: string | Address | Wallet

    Destination type definition.

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/types/coinbase_types.ExternalAddressAPIClient.html b/docs/types/coinbase_types.ExternalAddressAPIClient.html index 309ab509..4d439b83 100644 --- a/docs/types/coinbase_types.ExternalAddressAPIClient.html +++ b/docs/types/coinbase_types.ExternalAddressAPIClient.html @@ -5,15 +5,15 @@
  • assetId: string

    The ID of the asset to fetch the balance for

  • Optional options: RawAxiosRequestConfig

    Override http request option.

  • Returns AxiosPromise<Balance>

    Throws

    If the request fails.

    -
  • listExternalAddressBalances:function
  • listExternalAddressBalances:function
    • List all of the balances of an external address

      Parameters

      • networkId: string

        The ID of the blockchain network

      • addressId: string

        The ID of the address to fetch the balance for

      • Optional page: string

        A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<AddressBalanceList>

      Throws

      If the request fails.

      -
  • requestExternalFaucetFunds:function
  • requestExternalFaucetFunds:function
    • Request faucet funds to be sent to external address.

      Parameters

      • networkId: string

        The ID of the blockchain network

      • addressId: string

        The onchain address of the address that is being fetched.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<FaucetTransaction>

      Throws

      If the request fails.

      -
  • \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/types/coinbase_types.SeedData.html b/docs/types/coinbase_types.SeedData.html index 10bd1b49..e4d790cc 100644 --- a/docs/types/coinbase_types.SeedData.html +++ b/docs/types/coinbase_types.SeedData.html @@ -1,2 +1,2 @@ SeedData | @coinbase/coinbase-sdk
    SeedData: {
        authTag: string;
        encrypted: boolean;
        iv: string;
        seed: string;
    }

    The Seed Data type definition.

    -

    Type declaration

    • authTag: string
    • encrypted: boolean
    • iv: string
    • seed: string
    \ No newline at end of file +

    Type declaration

    • authTag: string
    • encrypted: boolean
    • iv: string
    • seed: string
    \ No newline at end of file diff --git a/docs/types/coinbase_types.ServerSignerAPIClient.html b/docs/types/coinbase_types.ServerSignerAPIClient.html index 75e1932f..9a2bdbc4 100644 --- a/docs/types/coinbase_types.ServerSignerAPIClient.html +++ b/docs/types/coinbase_types.ServerSignerAPIClient.html @@ -7,4 +7,4 @@
  • A promise resolving to the Server-Signer list.
  • Throws

    If the request fails.

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/types/coinbase_types.StakeAPIClient.html b/docs/types/coinbase_types.StakeAPIClient.html index 25c9c55e..c14117df 100644 --- a/docs/types/coinbase_types.StakeAPIClient.html +++ b/docs/types/coinbase_types.StakeAPIClient.html @@ -1,20 +1,20 @@ -StakeAPIClient | @coinbase/coinbase-sdk
    StakeAPIClient: {
        buildStakingOperation(buildStakingOperationRequest, options?): AxiosPromise<StakingOperation>;
        fetchStakingRewards(fetchStakingRewardsRequest, limit?, page?, options?): AxiosPromise<FetchStakingRewards200Response>;
        getExternalStakingOperation(networkId, addressId, stakingOperationID, options?): AxiosPromise<StakingOperation>;
        getStakingContext(getStakingContextRequest, options?): AxiosPromise<StakingContext>;
    }

    Type declaration

    • buildStakingOperation:function
      • Build a new staking operation.

        +StakeAPIClient | @coinbase/coinbase-sdk
        StakeAPIClient: {
            broadcastStakingOperation(walletId, addressId, stakingOperationId, broadcastStakingOperationRequest, options?): AxiosPromise<StakingOperation>;
            buildStakingOperation(buildStakingOperationRequest, options?): AxiosPromise<StakingOperation>;
            createStakingOperation(walletId, addressId, createStakingOperationRequest, options?): AxiosPromise<StakingOperation>;
            fetchStakingRewards(fetchStakingRewardsRequest, limit?, page?, options?): AxiosPromise<FetchStakingRewards200Response>;
            getExternalStakingOperation(networkId, addressId, stakingOperationID, options?): AxiosPromise<StakingOperation>;
            getStakingContext(getStakingContextRequest, options?): AxiosPromise<StakingContext>;
            getStakingOperation(walletId, addressId, stakingOperationId, options?): AxiosPromise<StakingOperation>;
        }

        Type declaration

        • broadcastStakingOperation:function
        • buildStakingOperation:function
        • fetchStakingRewards:function
        • createStakingOperation:function
        • fetchStakingRewards:function
          • Get the staking rewards for an address.

            Parameters

            • fetchStakingRewardsRequest: FetchStakingRewardsRequest

              The request to get the staking rewards for an address.

            • Optional limit: number

              The amount of records to return in a single call.

            • Optional page: string

              The batch of records for a given section in the response.

            • Optional options: AxiosRequestConfig<any>

              Axios request options.

              -

            Returns AxiosPromise<FetchStakingRewards200Response>

        • getExternalStakingOperation:function
          • Get a staking operation.

            +

        Returns AxiosPromise<FetchStakingRewards200Response>

    • getExternalStakingOperation:function
      • Get a staking operation.

        Parameters

        • networkId: string

          The ID of the blockchain network

        • addressId: string

          The ID of the address the staking operation corresponds to.

        • stakingOperationID: string

          The ID of the staking operation to fetch.

        • Optional options: AxiosRequestConfig<any>

          Axios request options.

        Returns AxiosPromise<StakingOperation>

        Throws

        If the request fails.

        -
    • getStakingContext:function
    • getStakingContext:function
      • Get staking context for an address.

        Parameters

        • getStakingContextRequest: GetStakingContextRequest

          The request to get the staking context for an address.

        • Optional options: AxiosRequestConfig<any>

          Axios request options.

        Returns AxiosPromise<StakingContext>

        Throws

        If the request fails.

        -
    \ No newline at end of file +
  • getStakingOperation:function
    • Parameters

      • walletId: string
      • addressId: string
      • stakingOperationId: string
      • Optional options: AxiosRequestConfig<any>

      Returns AxiosPromise<StakingOperation>

  • \ No newline at end of file diff --git a/docs/types/coinbase_types.TradeApiClients.html b/docs/types/coinbase_types.TradeApiClients.html index e7687573..555517f2 100644 --- a/docs/types/coinbase_types.TradeApiClients.html +++ b/docs/types/coinbase_types.TradeApiClients.html @@ -5,23 +5,23 @@
  • broadcastTradeRequest: BroadcastTradeRequest

    The request body.

  • Optional options: RawAxiosRequestConfig

    Override http request option.

  • Returns AxiosPromise<Trade>

    Throws

    If the required parameter is not provided.

    -
  • createTrade:function
  • createTrade:function
    • Create a new trade.

      Parameters

      • walletId: string

        The ID of the wallet the source address belongs to.

      • addressId: string

        The ID of the address to conduct the trade from.

      • createTradeRequest: CreateTradeRequest

        The request body.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<Trade>

      Throws

      If the required parameter is not provided.

      -
  • getTrade:function
  • getTrade:function
    • Get a trade by ID.

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to.

      • addressId: string

        The ID of the address the trade belongs to.

      • tradeId: string

        The ID of the trade to fetch.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<Trade>

      Throws

      If the required parameter is not provided.

      -
  • listTrades:function
  • listTrades:function
    • List trades for an address.

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to.

      • addressId: string

        The ID of the address to list trades for.

      • Optional limit: number

        A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

      • Optional page: string

        A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<TradeList>

      Throws

      If the required parameter is not provided.

      -
  • \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/types/coinbase_types.TransferAPIClient.html b/docs/types/coinbase_types.TransferAPIClient.html index 424ab797..3c309b24 100644 --- a/docs/types/coinbase_types.TransferAPIClient.html +++ b/docs/types/coinbase_types.TransferAPIClient.html @@ -9,7 +9,7 @@
  • A promise resolving to the Transfer model.
  • Throws

    If the request fails.

    -
  • createTransfer:function
  • createTransfer:function
    • Creates a Transfer.

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to.

      • addressId: string

        The ID of the address the transfer belongs to.

      • createTransferRequest: CreateTransferRequest

        The request body.

        @@ -18,7 +18,7 @@
      • A promise resolving to the Transfer model.

      Throws

      If the request fails.

      -
  • getTransfer:function
  • getTransfer:function
    • Retrieves a Transfer.

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to.

      • addressId: string

        The ID of the address the transfer belongs to.

      • transferId: string

        The ID of the transfer to retrieve.

        @@ -27,7 +27,7 @@
      • A promise resolving to the Transfer model.

      Throws

      If the request fails.

      -
  • listTransfers:function
  • listTransfers:function
    • Lists Transfers.

      Parameters

      • walletId: string

        The ID of the wallet the address belongs to.

      • addressId: string

        The ID of the address the transfers belong to.

      • Optional limit: number

        The maximum number of transfers to return.

        @@ -37,4 +37,4 @@
      • A promise resolving to the Transfer list.

      Throws

      If the request fails.

      -
  • \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/types/coinbase_types.UserAPIClient.html b/docs/types/coinbase_types.UserAPIClient.html index de2fbe9d..116b05a9 100644 --- a/docs/types/coinbase_types.UserAPIClient.html +++ b/docs/types/coinbase_types.UserAPIClient.html @@ -5,4 +5,4 @@
  • A promise resolvindg to the User model.
  • Throws

    If the request fails.

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/types/coinbase_types.ValidatorAPIClient.html b/docs/types/coinbase_types.ValidatorAPIClient.html index a112f00a..3de35fa1 100644 --- a/docs/types/coinbase_types.ValidatorAPIClient.html +++ b/docs/types/coinbase_types.ValidatorAPIClient.html @@ -3,11 +3,11 @@
  • assetId: string

    The ID of the asset to fetch the validator for.

  • id: string

    The unique publicly identifiable id of the validator for which to fetch the data.

  • Optional options: RawAxiosRequestConfig

    Axios request options.

    -
  • Returns AxiosPromise<Validator>

  • listValidators:function
    • List the validators for a given network and asset.

      +
  • Returns AxiosPromise<Validator>

  • listValidators:function
    • List the validators for a given network and asset.

      Parameters

      • networkId: string

        The ID of the blockchain network.

      • assetId: string

        The ID of the asset to fetch the validator for.

      • Optional status: string

        The status to filter by.

      • Optional limit: number

        The amount of records to return in a single call.

      • Optional page: string

        The batch of records for a given section in the response.

      • Optional options: AxiosRequestConfig<any>

        Axios request options.

        -

      Returns AxiosPromise<ValidatorList>

  • \ No newline at end of file +

    Returns AxiosPromise<ValidatorList>

    \ No newline at end of file diff --git a/docs/types/coinbase_types.WalletAPIClient.html b/docs/types/coinbase_types.WalletAPIClient.html index c9a60bdb..39a1f38f 100644 --- a/docs/types/coinbase_types.WalletAPIClient.html +++ b/docs/types/coinbase_types.WalletAPIClient.html @@ -12,20 +12,20 @@
  • Optional options: RawAxiosRequestConfig

    Override http request option.

  • Returns AxiosPromise<Balance>

    Throws

    If the required parameter is not provided.

    Throws

    If the request fails.

    -
  • listWalletBalances:function
  • listWalletBalances:function
    • List the balances of all of the addresses in the wallet aggregated by asset.

      Parameters

      • walletId: string

        The ID of the wallet to fetch the balances for.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<AddressBalanceList>

      Throws

      If the required parameter is not provided.

      Throws

      If the request fails.

      -
    • List the balances of all of the addresses in the wallet aggregated by asset.

      +
    • List the balances of all of the addresses in the wallet aggregated by asset.

      Parameters

      • walletId: string

        The ID of the wallet to fetch the balances for.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<AddressBalanceList>

      Throws

      If the required parameter is not provided.

      Throws

      If the request fails.

      -
  • listWallets:function
  • listWallets:function
    • List wallets belonging to the user.

      Parameters

      • Optional limit: number

        A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

      • Optional page: string

        A cursor for pagination across multiple pages of results. Don&#39;t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.

      • Optional options: RawAxiosRequestConfig

        Override http request option.

      Returns AxiosPromise<WalletList>

      Throws

      If the request fails.

      Throws

      If the required parameter is not provided.

      -
  • \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/types/coinbase_types.WalletCreateOptions.html b/docs/types/coinbase_types.WalletCreateOptions.html index 850be87a..366ac491 100644 --- a/docs/types/coinbase_types.WalletCreateOptions.html +++ b/docs/types/coinbase_types.WalletCreateOptions.html @@ -1,2 +1,2 @@ WalletCreateOptions | @coinbase/coinbase-sdk
    WalletCreateOptions: {
        intervalSeconds?: number;
        networkId?: string;
        timeoutSeconds?: number;
    }

    Options for creating a Wallet.

    -

    Type declaration

    • Optional intervalSeconds?: number
    • Optional networkId?: string
    • Optional timeoutSeconds?: number
    \ No newline at end of file +

    Type declaration

    • Optional intervalSeconds?: number
    • Optional networkId?: string
    • Optional timeoutSeconds?: number
    \ No newline at end of file diff --git a/docs/types/coinbase_types.WalletData.html b/docs/types/coinbase_types.WalletData.html index 58d5c414..2be01bfa 100644 --- a/docs/types/coinbase_types.WalletData.html +++ b/docs/types/coinbase_types.WalletData.html @@ -1,3 +1,3 @@ WalletData | @coinbase/coinbase-sdk
    WalletData: {
        seed: string;
        walletId: string;
    }

    The Wallet Data type definition. The data required to recreate a Wallet.

    -

    Type declaration

    • seed: string
    • walletId: string
    \ No newline at end of file +

    Type declaration

    • seed: string
    • walletId: string
    \ No newline at end of file diff --git a/docs/variables/client_api.StakingOperationStatusEnum-1.html b/docs/variables/client_api.StakingOperationStatusEnum-1.html index 16226562..c4b1fc78 100644 --- a/docs/variables/client_api.StakingOperationStatusEnum-1.html +++ b/docs/variables/client_api.StakingOperationStatusEnum-1.html @@ -1 +1 @@ -StakingOperationStatusEnum | @coinbase/coinbase-sdk

    Variable StakingOperationStatusEnumConst

    StakingOperationStatusEnum: {
        Complete: "complete";
        Failed: "failed";
        Initialized: "initialized";
        Pending: "pending";
    } = ...

    Type declaration

    • Readonly Complete: "complete"
    • Readonly Failed: "failed"
    • Readonly Initialized: "initialized"
    • Readonly Pending: "pending"
    \ No newline at end of file +StakingOperationStatusEnum | @coinbase/coinbase-sdk

    Variable StakingOperationStatusEnumConst

    StakingOperationStatusEnum: {
        Complete: "complete";
        Failed: "failed";
        Initialized: "initialized";
        Pending: "pending";
        Unspecified: "unspecified";
    } = ...

    Type declaration

    • Readonly Complete: "complete"
    • Readonly Failed: "failed"
    • Readonly Initialized: "initialized"
    • Readonly Pending: "pending"
    • Readonly Unspecified: "unspecified"
    \ No newline at end of file diff --git a/docs/variables/client_api.StakingRewardStateEnum-1.html b/docs/variables/client_api.StakingRewardStateEnum-1.html index a5727f32..8bfcc98c 100644 --- a/docs/variables/client_api.StakingRewardStateEnum-1.html +++ b/docs/variables/client_api.StakingRewardStateEnum-1.html @@ -1 +1 @@ -StakingRewardStateEnum | @coinbase/coinbase-sdk

    Variable StakingRewardStateEnumConst

    StakingRewardStateEnum: {
        Distributed: "distributed";
        Pending: "pending";
    } = ...

    Type declaration

    • Readonly Distributed: "distributed"
    • Readonly Pending: "pending"
    \ No newline at end of file +StakingRewardStateEnum | @coinbase/coinbase-sdk

    Variable StakingRewardStateEnumConst

    StakingRewardStateEnum: {
        Distributed: "distributed";
        Pending: "pending";
    } = ...

    Type declaration

    • Readonly Distributed: "distributed"
    • Readonly Pending: "pending"
    \ No newline at end of file diff --git a/docs/variables/client_api.TransactionStatusEnum-1.html b/docs/variables/client_api.TransactionStatusEnum-1.html index cbaa5680..afb13c01 100644 --- a/docs/variables/client_api.TransactionStatusEnum-1.html +++ b/docs/variables/client_api.TransactionStatusEnum-1.html @@ -1 +1 @@ -TransactionStatusEnum | @coinbase/coinbase-sdk

    Variable TransactionStatusEnumConst

    TransactionStatusEnum: {
        Broadcast: "broadcast";
        Complete: "complete";
        Failed: "failed";
        Pending: "pending";
        Signed: "signed";
    } = ...

    Type declaration

    • Readonly Broadcast: "broadcast"
    • Readonly Complete: "complete"
    • Readonly Failed: "failed"
    • Readonly Pending: "pending"
    • Readonly Signed: "signed"
    \ No newline at end of file +TransactionStatusEnum | @coinbase/coinbase-sdk

    Variable TransactionStatusEnumConst

    TransactionStatusEnum: {
        Broadcast: "broadcast";
        Complete: "complete";
        Failed: "failed";
        Pending: "pending";
        Signed: "signed";
    } = ...

    Type declaration

    • Readonly Broadcast: "broadcast"
    • Readonly Complete: "complete"
    • Readonly Failed: "failed"
    • Readonly Pending: "pending"
    • Readonly Signed: "signed"
    \ No newline at end of file diff --git a/docs/variables/client_api.TransferStatusEnum-1.html b/docs/variables/client_api.TransferStatusEnum-1.html deleted file mode 100644 index 738702ba..00000000 --- a/docs/variables/client_api.TransferStatusEnum-1.html +++ /dev/null @@ -1 +0,0 @@ -TransferStatusEnum | @coinbase/coinbase-sdk
    TransferStatusEnum: {
        Broadcast: "broadcast";
        Complete: "complete";
        Failed: "failed";
        Pending: "pending";
    } = ...

    Type declaration

    • Readonly Broadcast: "broadcast"
    • Readonly Complete: "complete"
    • Readonly Failed: "failed"
    • Readonly Pending: "pending"
    \ No newline at end of file diff --git a/docs/variables/client_api.WalletServerSignerStatusEnum-1.html b/docs/variables/client_api.WalletServerSignerStatusEnum-1.html index 3642caed..1d6f7f24 100644 --- a/docs/variables/client_api.WalletServerSignerStatusEnum-1.html +++ b/docs/variables/client_api.WalletServerSignerStatusEnum-1.html @@ -1 +1 @@ -WalletServerSignerStatusEnum | @coinbase/coinbase-sdk

    Variable WalletServerSignerStatusEnumConst

    WalletServerSignerStatusEnum: {
        ActiveSeed: "active_seed";
        PendingSeedCreation: "pending_seed_creation";
    } = ...

    Type declaration

    • Readonly ActiveSeed: "active_seed"
    • Readonly PendingSeedCreation: "pending_seed_creation"
    \ No newline at end of file +WalletServerSignerStatusEnum | @coinbase/coinbase-sdk

    Variable WalletServerSignerStatusEnumConst

    WalletServerSignerStatusEnum: {
        ActiveSeed: "active_seed";
        PendingSeedCreation: "pending_seed_creation";
    } = ...

    Type declaration

    • Readonly ActiveSeed: "active_seed"
    • Readonly PendingSeedCreation: "pending_seed_creation"
    \ No newline at end of file diff --git a/docs/variables/client_base.BASE_PATH.html b/docs/variables/client_base.BASE_PATH.html index b4316f04..6a67bdfd 100644 --- a/docs/variables/client_base.BASE_PATH.html +++ b/docs/variables/client_base.BASE_PATH.html @@ -1 +1 @@ -BASE_PATH | @coinbase/coinbase-sdk
    BASE_PATH: string = ...
    \ No newline at end of file +BASE_PATH | @coinbase/coinbase-sdk
    BASE_PATH: string = ...
    \ No newline at end of file diff --git a/docs/variables/client_base.COLLECTION_FORMATS.html b/docs/variables/client_base.COLLECTION_FORMATS.html index 31b37d63..d6f70121 100644 --- a/docs/variables/client_base.COLLECTION_FORMATS.html +++ b/docs/variables/client_base.COLLECTION_FORMATS.html @@ -1 +1 @@ -COLLECTION_FORMATS | @coinbase/coinbase-sdk
    COLLECTION_FORMATS: {
        csv: string;
        pipes: string;
        ssv: string;
        tsv: string;
    } = ...

    Type declaration

    • csv: string
    • pipes: string
    • ssv: string
    • tsv: string

    Export

    \ No newline at end of file +COLLECTION_FORMATS | @coinbase/coinbase-sdk
    COLLECTION_FORMATS: {
        csv: string;
        pipes: string;
        ssv: string;
        tsv: string;
    } = ...

    Type declaration

    • csv: string
    • pipes: string
    • ssv: string
    • tsv: string

    Export

    \ No newline at end of file diff --git a/docs/variables/client_base.operationServerMap.html b/docs/variables/client_base.operationServerMap.html index a96f4862..8fa53a0f 100644 --- a/docs/variables/client_base.operationServerMap.html +++ b/docs/variables/client_base.operationServerMap.html @@ -1 +1 @@ -operationServerMap | @coinbase/coinbase-sdk
    operationServerMap: ServerMap = {}

    Export

    \ No newline at end of file +operationServerMap | @coinbase/coinbase-sdk
    operationServerMap: ServerMap = {}

    Export

    \ No newline at end of file diff --git a/docs/variables/client_common.DUMMY_BASE_URL.html b/docs/variables/client_common.DUMMY_BASE_URL.html index 525c1c9e..6a78da8e 100644 --- a/docs/variables/client_common.DUMMY_BASE_URL.html +++ b/docs/variables/client_common.DUMMY_BASE_URL.html @@ -1 +1 @@ -DUMMY_BASE_URL | @coinbase/coinbase-sdk
    DUMMY_BASE_URL: "https://example.com" = 'https://example.com'

    Export

    \ No newline at end of file +DUMMY_BASE_URL | @coinbase/coinbase-sdk
    DUMMY_BASE_URL: "https://example.com" = 'https://example.com'

    Export

    \ No newline at end of file diff --git a/docs/variables/coinbase_constants.ATOMIC_UNITS_PER_USDC.html b/docs/variables/coinbase_constants.ATOMIC_UNITS_PER_USDC.html index 1fb355eb..931895bf 100644 --- a/docs/variables/coinbase_constants.ATOMIC_UNITS_PER_USDC.html +++ b/docs/variables/coinbase_constants.ATOMIC_UNITS_PER_USDC.html @@ -1 +1 @@ -ATOMIC_UNITS_PER_USDC | @coinbase/coinbase-sdk
    ATOMIC_UNITS_PER_USDC: Decimal = ...
    \ No newline at end of file +ATOMIC_UNITS_PER_USDC | @coinbase/coinbase-sdk
    ATOMIC_UNITS_PER_USDC: Decimal = ...
    \ No newline at end of file diff --git a/docs/variables/coinbase_constants.GWEI_DECIMALS.html b/docs/variables/coinbase_constants.GWEI_DECIMALS.html index 08d00457..c79ff253 100644 --- a/docs/variables/coinbase_constants.GWEI_DECIMALS.html +++ b/docs/variables/coinbase_constants.GWEI_DECIMALS.html @@ -1 +1 @@ -GWEI_DECIMALS | @coinbase/coinbase-sdk
    GWEI_DECIMALS: 9 = 9
    \ No newline at end of file +GWEI_DECIMALS | @coinbase/coinbase-sdk
    GWEI_DECIMALS: 9 = 9
    \ No newline at end of file diff --git a/docs/variables/coinbase_constants.WEI_PER_ETHER.html b/docs/variables/coinbase_constants.WEI_PER_ETHER.html index e5cfa6f7..76247466 100644 --- a/docs/variables/coinbase_constants.WEI_PER_ETHER.html +++ b/docs/variables/coinbase_constants.WEI_PER_ETHER.html @@ -1 +1 @@ -WEI_PER_ETHER | @coinbase/coinbase-sdk
    WEI_PER_ETHER: Decimal = ...
    \ No newline at end of file +WEI_PER_ETHER | @coinbase/coinbase-sdk
    WEI_PER_ETHER: Decimal = ...
    \ No newline at end of file From d0e63694bc49fb00c3788a5714b77663531e31cb Mon Sep 17 00:00:00 2001 From: Marcin Lenczewski Date: Mon, 5 Aug 2024 18:15:16 -0400 Subject: [PATCH 22/22] Update capabilities --- CAPABILITIES.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/CAPABILITIES.md b/CAPABILITIES.md index 3e4be9da..0784611b 100644 --- a/CAPABILITIES.md +++ b/CAPABILITIES.md @@ -1,26 +1,29 @@ # Capabilities The Coinbase SDK has different capabilities for different wallet types and networks. This page summarizes -those capabilities for the Ruby SDK: +those capabilities for the NodeJS SDK: ## Developer Wallets | Concept | Base-Sepolia | Base-Mainnet | Ethereum-Holesky | Ethereum-Mainnet | | ------------- | :----------: | :----------: | :--------------: | :--------------: | -| Addresses | ✅ | ✅ | ❌ | ❌ | -| Send | ✅ | ✅ | ❌ | ❌ | +| Addresses | ✅ | ✅ | ✅ | ✅ | +| Send | ✅ | ✅ | ✅ | ❌ | | Trade | ❌ | ✅ | ❌ | ❌ | | Faucet | ✅ | ❌ | ✅ | ❌ | | Server-Signer | ✅ | ✅ | ❌ | ❌ | +| Stake [^1] | ❌ | ❌ | ✅ | ✅ | + +[^1]: Currently only available for Shared ETH Staking. ## End-User Wallets | Concept | Base-Sepolia | Base-Mainnet | Ethereum-Holesky | Ethereum-Mainnet | | ------------------ | :----------: | :----------: | :--------------: | :--------------: | | External Addresses | ✅ | ✅ | ✅ | ✅ | -| Stake [^1] | ❌ | ❌ | ✅ | ✅ | +| Stake [^2] | ❌ | ❌ | ✅ | ✅ | -[^1]: Dedicated ETH Staking is currently only available on Testnet (Ethereum-Holesky). +[^2]: Dedicated ETH Staking is currently only available on Testnet (Ethereum-Holesky). ## Testnet vs. Mainnet