Skip to content
This repository was archived by the owner on May 16, 2024. It is now read-only.

WT-946: imx-exchange API updates #229

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
610 changes: 507 additions & 103 deletions openapi.json

Large diffs are not rendered by default.

105 changes: 90 additions & 15 deletions src/ImmutableX.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,14 @@ import {
NftCheckoutPrimaryApi,
NftCheckoutPrimaryApiCreateNftPrimaryRequest,
NftCheckoutPrimaryApiGetCurrenciesNFTCheckoutPrimaryRequest,
NftCheckoutPrimaryApiGetMintStatusByIdRequest,
NftCheckoutPrimaryApiGetNftPrimaryTransactionRequest,
NftCheckoutPrimaryApiGetNftPrimaryTransactionsRequest,
NonCryptoCheckoutApi,
NonCryptoCheckoutApiCreateNonCryptoCheckoutTransactionRequest,
NonCryptoCheckoutApiGetNonCryptoCheckoutOrderAvailabilityRequest,
NonCryptoCheckoutApiGetNonCryptoCheckoutSellerKycStatusRequest,
NonCryptoCheckoutApiGetNonCryptoCheckoutTransactionRequest,
NonCryptoCheckoutApiGetNonCryptoCheckoutTransactionsRequest,
} from './api';
import { formatError } from './utils/formatError';
import { ImmutableXConfiguration } from './config';
Expand All @@ -81,6 +86,7 @@ export class ImmutableX {
public transfersApi: TransfersApi;
public exchangeApi: ExchangesApi;
public nftCheckoutPrimaryApi: NftCheckoutPrimaryApi;
public nonCryptoCheckoutApi: NonCryptoCheckoutApi;
public usersApi: UsersApi;
public withdrawalsApi: WithdrawalsApi;
public balanceApi: BalancesApi;
Expand Down Expand Up @@ -111,6 +117,9 @@ export class ImmutableX {
this.nftCheckoutPrimaryApi = new NftCheckoutPrimaryApi(
config.apiConfiguration,
);
this.nonCryptoCheckoutApi = new NonCryptoCheckoutApi(
config.apiConfiguration,
);
this.projectsApi = new ProjectsApi(config.apiConfiguration);
this.workflows = new Workflows(config);
}
Expand Down Expand Up @@ -941,20 +950,6 @@ export class ImmutableX {
});
}

/**
* Get mint status by nft primary transaction id
* @param request - the request object to be provided in the API request
* @returns a promise that resolves with nft primary mint status
* @throws {@link index.IMXError}
*/
public getMintStatusById(
request: NftCheckoutPrimaryApiGetMintStatusByIdRequest,
) {
return this.nftCheckoutPrimaryApi.getMintStatusById(request).catch(err => {
throw formatError(err);
});
}

/**
* Get nft primary transaction by transaction id
* @param request - the request object to be provided in the API request
Expand Down Expand Up @@ -986,4 +981,84 @@ export class ImmutableX {
throw formatError(err);
});
}

/**
* Check order availability for non-crypto checkout
* @param request - the request object to be provided in the API request
* @returns a promise that resolves with the available status of the order
* @throws {@link index.IMXError}
*/
public getNonCryptoCheckoutOrderAvailability(
request: NonCryptoCheckoutApiGetNonCryptoCheckoutOrderAvailabilityRequest,
) {
return this.nonCryptoCheckoutApi
.getNonCryptoCheckoutOrderAvailability(request)
.catch(err => {
throw formatError(err);
});
}

/**
* Get KYC status of a seller of a non-crypto checkout order
* @param request - the request object to be provided in the API request
* @returns a promise that resolves with the KYC status of the user and URL to perform KYC
* @throws {@link index.IMXError}
*/
public getNonCryptoCheckoutSellerKycStatus(
request: NonCryptoCheckoutApiGetNonCryptoCheckoutSellerKycStatusRequest,
) {
return this.nonCryptoCheckoutApi
.getNonCryptoCheckoutSellerKycStatus(request)
.catch(err => {
throw formatError(err);
});
}

/**
* Create a non-crypto checkout transaction
* @param request - the request object to be provided in the API request
* @returns a promise that resolves with the created non-crypto checkout transaction
* @throws {@link index.IMXError}
*/
public createNonCryptoCheckoutTransaction(
request: NonCryptoCheckoutApiCreateNonCryptoCheckoutTransactionRequest,
) {
return this.nonCryptoCheckoutApi
.createNonCryptoCheckoutTransaction(request)
.catch(err => {
throw formatError(err);
});
}

/**
* Get non-crypto checkout transaction by ID
* @param request - the request object to be provided in the API request
* @returns a promise that resolves with the non-crypto checkout transaction
* @throws {@link index.IMXError}
*/
public getNonCryptoCheckoutTransaction(
request: NonCryptoCheckoutApiGetNonCryptoCheckoutTransactionRequest,
) {
return this.nonCryptoCheckoutApi
.getNonCryptoCheckoutTransaction(request)
.catch(err => {
throw formatError(err);
});
}

/**
* Get a list of non-crypto checkout transactions
* @param request - the request object to be provided in the API request
* @returns a promise that resolves with the list of matching non-crypto checkout transactions
* @throws {@link index.IMXError}
*/
public getNonCryptoCheckoutTransactions(
request: NonCryptoCheckoutApiGetNonCryptoCheckoutTransactionsRequest,
) {
return this.nonCryptoCheckoutApi
.getNonCryptoCheckoutTransactions(request)
.catch(err => {
throw formatError(err);
});
}
}
13 changes: 11 additions & 2 deletions src/api/.openapi-generator/FILES
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ domain/metadata-api.ts
domain/metadata-refreshes-api.ts
domain/mints-api.ts
domain/nft-checkout-primary-api.ts
domain/non-crypto-checkout-api.ts
domain/orders-api.ts
domain/projects-api.ts
domain/tokens-api.ts
Expand All @@ -36,6 +37,8 @@ models/cancel-order-response.ts
models/collection-details.ts
models/collection-filter.ts
models/collection.ts
models/contract-create-apirequest.ts
models/contract-create-response.ts
models/create-collection-request.ts
models/create-exchange-and-urlapirequest.ts
models/create-metadata-refresh-request.ts
Expand Down Expand Up @@ -119,13 +122,19 @@ models/nftprimarytransaction-get-response.ts
models/nftprimarytransaction-list-transactions-response.ts
models/nftprimarytransaction-transaction-data.ts
models/nftprimarytransaction-widget-params.ts
models/nftsecondarytransaction-check-order-response.ts
models/nftsecondarytransaction-check-user-response.ts
models/nftsecondarytransaction-create-apirequest.ts
models/nftsecondarytransaction-create-response.ts
models/nftsecondarytransaction-get-transaction-response.ts
models/nftsecondarytransaction-list-transactions-response.ts
models/nftsecondarytransaction-transaction-data.ts
models/nftsecondarytransaction-widget-params.ts
models/optional-exchange-data.ts
models/order-details.ts
models/order-fee-info.ts
models/order.ts
models/project.ts
models/provider-get-mint-status-response.ts
models/provider-mint-status.ts
models/range.ts
models/register-user-request.ts
models/register-user-response.ts
Expand Down
1 change: 1 addition & 0 deletions src/api/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ export * from './domain/metadata-api';
export * from './domain/metadata-refreshes-api';
export * from './domain/mints-api';
export * from './domain/nft-checkout-primary-api';
export * from './domain/non-crypto-checkout-api';
export * from './domain/orders-api';
export * from './domain/projects-api';
export * from './domain/tokens-api';
Expand Down
36 changes: 18 additions & 18 deletions src/api/domain/deposits-api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,8 @@ export const DepositsApiAxiosParamCreator = function (configuration?: Configurat
* @param {string} [direction] Direction to sort (asc/desc)
* @param {string} [user] Ethereum address of the user who submitted this deposit
* @param {string} [status] Status of this deposit
* @param {string} [updatedMinTimestamp] Minimum timestamp for this deposit, in ISO 8601 UTC format. Example: \'2022-05-27T00:10:22Z\'
* @param {string} [updatedMaxTimestamp] Maximum timestamp for this deposit, in ISO 8601 UTC format. Example: \'2022-05-27T00:10:22Z\'
* @param {string} [minTimestamp] Minimum timestamp for this deposit, in ISO 8601 UTC format. Example: \'2022-05-27T00:10:22Z\'
* @param {string} [maxTimestamp] Maximum timestamp for this deposit, in ISO 8601 UTC format. Example: \'2022-05-27T00:10:22Z\'
* @param {string} [tokenType] Token type of the deposited asset
* @param {string} [tokenId] ERC721 Token ID of the minted asset
* @param {string} [assetId] Internal IMX ID of the minted asset
Expand All @@ -126,7 +126,7 @@ export const DepositsApiAxiosParamCreator = function (configuration?: Configurat
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listDeposits: async (pageSize?: number, cursor?: string, orderBy?: string, direction?: string, user?: string, status?: string, updatedMinTimestamp?: string, updatedMaxTimestamp?: string, tokenType?: string, tokenId?: string, assetId?: string, tokenAddress?: string, tokenName?: string, minQuantity?: string, maxQuantity?: string, metadata?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
listDeposits: async (pageSize?: number, cursor?: string, orderBy?: string, direction?: string, user?: string, status?: string, minTimestamp?: string, maxTimestamp?: string, tokenType?: string, tokenId?: string, assetId?: string, tokenAddress?: string, tokenName?: string, minQuantity?: string, maxQuantity?: string, metadata?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/v1/deposits`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
Expand Down Expand Up @@ -163,12 +163,12 @@ export const DepositsApiAxiosParamCreator = function (configuration?: Configurat
localVarQueryParameter['status'] = status;
}

if (updatedMinTimestamp !== undefined) {
localVarQueryParameter['updated_min_timestamp'] = updatedMinTimestamp;
if (minTimestamp !== undefined) {
localVarQueryParameter['min_timestamp'] = minTimestamp;
}

if (updatedMaxTimestamp !== undefined) {
localVarQueryParameter['updated_max_timestamp'] = updatedMaxTimestamp;
if (maxTimestamp !== undefined) {
localVarQueryParameter['max_timestamp'] = maxTimestamp;
}

if (tokenType !== undefined) {
Expand Down Expand Up @@ -255,8 +255,8 @@ export const DepositsApiFp = function(configuration?: Configuration) {
* @param {string} [direction] Direction to sort (asc/desc)
* @param {string} [user] Ethereum address of the user who submitted this deposit
* @param {string} [status] Status of this deposit
* @param {string} [updatedMinTimestamp] Minimum timestamp for this deposit, in ISO 8601 UTC format. Example: \&#39;2022-05-27T00:10:22Z\&#39;
* @param {string} [updatedMaxTimestamp] Maximum timestamp for this deposit, in ISO 8601 UTC format. Example: \&#39;2022-05-27T00:10:22Z\&#39;
* @param {string} [minTimestamp] Minimum timestamp for this deposit, in ISO 8601 UTC format. Example: \&#39;2022-05-27T00:10:22Z\&#39;
* @param {string} [maxTimestamp] Maximum timestamp for this deposit, in ISO 8601 UTC format. Example: \&#39;2022-05-27T00:10:22Z\&#39;
* @param {string} [tokenType] Token type of the deposited asset
* @param {string} [tokenId] ERC721 Token ID of the minted asset
* @param {string} [assetId] Internal IMX ID of the minted asset
Expand All @@ -268,8 +268,8 @@ export const DepositsApiFp = function(configuration?: Configuration) {
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async listDeposits(pageSize?: number, cursor?: string, orderBy?: string, direction?: string, user?: string, status?: string, updatedMinTimestamp?: string, updatedMaxTimestamp?: string, tokenType?: string, tokenId?: string, assetId?: string, tokenAddress?: string, tokenName?: string, minQuantity?: string, maxQuantity?: string, metadata?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ListDepositsResponse>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.listDeposits(pageSize, cursor, orderBy, direction, user, status, updatedMinTimestamp, updatedMaxTimestamp, tokenType, tokenId, assetId, tokenAddress, tokenName, minQuantity, maxQuantity, metadata, options);
async listDeposits(pageSize?: number, cursor?: string, orderBy?: string, direction?: string, user?: string, status?: string, minTimestamp?: string, maxTimestamp?: string, tokenType?: string, tokenId?: string, assetId?: string, tokenAddress?: string, tokenName?: string, minQuantity?: string, maxQuantity?: string, metadata?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ListDepositsResponse>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.listDeposits(pageSize, cursor, orderBy, direction, user, status, minTimestamp, maxTimestamp, tokenType, tokenId, assetId, tokenAddress, tokenName, minQuantity, maxQuantity, metadata, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
},
}
Expand Down Expand Up @@ -311,8 +311,8 @@ export const DepositsApiFactory = function (configuration?: Configuration, baseP
* @param {string} [direction] Direction to sort (asc/desc)
* @param {string} [user] Ethereum address of the user who submitted this deposit
* @param {string} [status] Status of this deposit
* @param {string} [updatedMinTimestamp] Minimum timestamp for this deposit, in ISO 8601 UTC format. Example: \&#39;2022-05-27T00:10:22Z\&#39;
* @param {string} [updatedMaxTimestamp] Maximum timestamp for this deposit, in ISO 8601 UTC format. Example: \&#39;2022-05-27T00:10:22Z\&#39;
* @param {string} [minTimestamp] Minimum timestamp for this deposit, in ISO 8601 UTC format. Example: \&#39;2022-05-27T00:10:22Z\&#39;
* @param {string} [maxTimestamp] Maximum timestamp for this deposit, in ISO 8601 UTC format. Example: \&#39;2022-05-27T00:10:22Z\&#39;
* @param {string} [tokenType] Token type of the deposited asset
* @param {string} [tokenId] ERC721 Token ID of the minted asset
* @param {string} [assetId] Internal IMX ID of the minted asset
Expand All @@ -324,8 +324,8 @@ export const DepositsApiFactory = function (configuration?: Configuration, baseP
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listDeposits(pageSize?: number, cursor?: string, orderBy?: string, direction?: string, user?: string, status?: string, updatedMinTimestamp?: string, updatedMaxTimestamp?: string, tokenType?: string, tokenId?: string, assetId?: string, tokenAddress?: string, tokenName?: string, minQuantity?: string, maxQuantity?: string, metadata?: string, options?: any): AxiosPromise<ListDepositsResponse> {
return localVarFp.listDeposits(pageSize, cursor, orderBy, direction, user, status, updatedMinTimestamp, updatedMaxTimestamp, tokenType, tokenId, assetId, tokenAddress, tokenName, minQuantity, maxQuantity, metadata, options).then((request) => request(axios, basePath));
listDeposits(pageSize?: number, cursor?: string, orderBy?: string, direction?: string, user?: string, status?: string, minTimestamp?: string, maxTimestamp?: string, tokenType?: string, tokenId?: string, assetId?: string, tokenAddress?: string, tokenName?: string, minQuantity?: string, maxQuantity?: string, metadata?: string, options?: any): AxiosPromise<ListDepositsResponse> {
return localVarFp.listDeposits(pageSize, cursor, orderBy, direction, user, status, minTimestamp, maxTimestamp, tokenType, tokenId, assetId, tokenAddress, tokenName, minQuantity, maxQuantity, metadata, options).then((request) => request(axios, basePath));
},
};
};
Expand Down Expand Up @@ -411,14 +411,14 @@ export interface DepositsApiListDepositsRequest {
* @type {string}
* @memberof DepositsApiListDeposits
*/
readonly updatedMinTimestamp?: string
readonly minTimestamp?: string

/**
* Maximum timestamp for this deposit, in ISO 8601 UTC format. Example: \&#39;2022-05-27T00:10:22Z\&#39;
* @type {string}
* @memberof DepositsApiListDeposits
*/
readonly updatedMaxTimestamp?: string
readonly maxTimestamp?: string

/**
* Token type of the deposited asset
Expand Down Expand Up @@ -517,6 +517,6 @@ export class DepositsApi extends BaseAPI {
* @memberof DepositsApi
*/
public listDeposits(requestParameters: DepositsApiListDepositsRequest = {}, options?: AxiosRequestConfig) {
return DepositsApiFp(this.configuration).listDeposits(requestParameters.pageSize, requestParameters.cursor, requestParameters.orderBy, requestParameters.direction, requestParameters.user, requestParameters.status, requestParameters.updatedMinTimestamp, requestParameters.updatedMaxTimestamp, requestParameters.tokenType, requestParameters.tokenId, requestParameters.assetId, requestParameters.tokenAddress, requestParameters.tokenName, requestParameters.minQuantity, requestParameters.maxQuantity, requestParameters.metadata, options).then((request) => request(this.axios, this.basePath));
return DepositsApiFp(this.configuration).listDeposits(requestParameters.pageSize, requestParameters.cursor, requestParameters.orderBy, requestParameters.direction, requestParameters.user, requestParameters.status, requestParameters.minTimestamp, requestParameters.maxTimestamp, requestParameters.tokenType, requestParameters.tokenId, requestParameters.assetId, requestParameters.tokenAddress, requestParameters.tokenName, requestParameters.minQuantity, requestParameters.maxQuantity, requestParameters.metadata, options).then((request) => request(this.axios, this.basePath));
}
}
Loading