diff --git a/src/ncw-api-client.ts b/src/ncw-api-client.ts index 592ab556..45efa643 100644 --- a/src/ncw-api-client.ts +++ b/src/ncw-api-client.ts @@ -6,6 +6,9 @@ import { } from "./types"; import { NcwSdk } from "./ncw-sdk"; +function normalizePath(rawPath: string) { + return rawPath.replace(/\?$/, ""); +} export class NcwApiClient implements NcwSdk { private readonly NCW_BASE_PATH = "/v1/ncw/wallets"; @@ -17,8 +20,8 @@ export class NcwApiClient implements NcwSdk { ...(pageSize && { pageSize: pageSize.toString() }), ...(onlyBaseAssets !== undefined && { onlyBaseAssets: String(onlyBaseAssets) }), }); - - return await this.apiClient.issueGetRequest(`${this.NCW_BASE_PATH}/supported_assets?${params.toString()}`); + const url = normalizePath(`${this.NCW_BASE_PATH}/supported_assets?${params.toString()}`); + return await this.apiClient.issueGetRequest(url); } public async createWallet(): Promise<{ walletId: string; enabled: boolean; }> { @@ -77,7 +80,8 @@ export class NcwApiClient implements NcwSdk { ...(order && { order }), }); - return await this.apiClient.issueGetRequest(`${this.NCW_BASE_PATH}?${params.toString()}`); + const url = normalizePath(`${this.NCW_BASE_PATH}?${params.toString()}`); + return await this.apiClient.issueGetRequest(url); } public async getWalletAccounts(walletId: string, { pageCursor, pageSize, sort, order }: NCW.GetWalletsPayload = {}): Promise { @@ -133,8 +137,8 @@ export class NcwApiClient implements NcwSdk { ...(order && { order }), }); - return await this.apiClient.issueGetRequest( - `${this.NCW_BASE_PATH}/${walletId}/accounts/${accountId}/assets/${assetId}/addresses?${params.toString()}`); + const url = normalizePath(`${this.NCW_BASE_PATH}/${walletId}/accounts/${accountId}/assets/${assetId}/addresses?${params.toString()}`); + return await this.apiClient.issueGetRequest(url); } public async getWalletAssetBalance(walletId: string, accountId: number, assetId: string): Promise {