From 83e3ad7a25abb36bbbcf8f62287674bc78d77090 Mon Sep 17 00:00:00 2001 From: Allan Almeida <152931211+allan-almeida-imtbl@users.noreply.github.com> Date: Wed, 13 Nov 2024 13:58:09 +1100 Subject: [PATCH] feat: Add marketplace api endpoints to blockchain-data package (#2387) --- .../sdk/src/blockchain-data.ts | 123 + .../src/blockchain-data-openapi.json | 3281 +++-- .../blockchain-data/.openapi-generator/FILES | 27 + .../src/blockchain-data/api.ts | 2 + .../blockchain-data/domain/metadata-api.ts | 25 + .../domain/metadata-search-api.ts | 214 + .../src/blockchain-data/domain/pricing-api.ts | 119 + .../blockchain-data/models/filter-result.ts | 48 + .../blockchain-data/models/filter-value.ts | 36 + .../src/blockchain-data/models/filter.ts | 45 + .../src/blockchain-data/models/index.ts | 25 + .../src/blockchain-data/models/last-trade.ts | 63 + .../models/list-filters-result.ts | 42 + .../src/blockchain-data/models/listing.ts | 63 + .../models/market-floor-listing.ts | 30 + .../src/blockchain-data/models/market-nft.ts | 33 + .../models/market-price-details-token.ts | 30 + .../models/market-price-details.ts | 60 + .../models/market-price-erc20-token.ts | 57 + .../models/market-price-fees.ts | 54 + .../models/market-price-native-token.ts | 45 + .../src/blockchain-data/models/market.ts | 42 + .../models/marketplace-contract-type.ts | 29 + .../src/blockchain-data/models/nftbundle.ts | 51 + .../blockchain-data/models/nftquote-result.ts | 63 + .../blockchain-data/models/nftwith-stack.ts | 125 + .../models/quotes-for-nfts-result.ts | 42 + .../models/quotes-for-stacks-result.ts | 42 + .../models/search-nfts-result.ts | 42 + .../models/search-stacks-result.ts | 42 + .../blockchain-data/models/stack-bundle.ts | 57 + .../models/stack-quote-result.ts | 54 + .../src/blockchain-data/models/stack.ts | 113 + .../generated-clients/src/mr-openapi.json | 10958 +++++++++------- .../src/multi-rollup/.openapi-generator/FILES | 27 + .../generated-clients/src/multi-rollup/api.ts | 2 + .../src/multi-rollup/domain/metadata-api.ts | 98 + .../domain/metadata-search-api.ts | 539 + .../src/multi-rollup/domain/pricing-api.ts | 318 + .../src/multi-rollup/models/filter-result.ts | 48 + .../src/multi-rollup/models/filter-value.ts | 36 + .../src/multi-rollup/models/filter.ts | 45 + .../src/multi-rollup/models/index.ts | 25 + .../src/multi-rollup/models/last-trade.ts | 63 + .../models/list-filters-result.ts | 42 + .../src/multi-rollup/models/listing.ts | 63 + .../models/market-floor-listing.ts | 30 + .../src/multi-rollup/models/market-nft.ts | 33 + .../models/market-price-details-token.ts | 30 + .../models/market-price-details.ts | 60 + .../models/market-price-erc20-token.ts | 55 + .../multi-rollup/models/market-price-fees.ts | 52 + .../models/market-price-native-token.ts | 43 + .../src/multi-rollup/models/market.ts | 42 + .../models/marketplace-contract-type.ts | 31 + .../src/multi-rollup/models/nftbundle.ts | 51 + .../multi-rollup/models/nftquote-result.ts | 63 + .../src/multi-rollup/models/nftwith-stack.ts | 125 + .../models/quotes-for-nfts-result.ts | 42 + .../models/quotes-for-stacks-result.ts | 42 + .../multi-rollup/models/search-nfts-result.ts | 42 + .../models/search-stacks-result.ts | 42 + .../src/multi-rollup/models/stack-bundle.ts | 57 + .../multi-rollup/models/stack-quote-result.ts | 54 + .../src/multi-rollup/models/stack.ts | 113 + 65 files changed, 12686 insertions(+), 5709 deletions(-) create mode 100644 packages/internal/generated-clients/src/blockchain-data/domain/metadata-search-api.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/domain/pricing-api.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/filter-result.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/filter-value.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/filter.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/last-trade.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/list-filters-result.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/listing.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/market-floor-listing.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/market-nft.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/market-price-details-token.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/market-price-details.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/market-price-erc20-token.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/market-price-fees.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/market-price-native-token.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/market.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/marketplace-contract-type.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/nftbundle.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/nftquote-result.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/nftwith-stack.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/quotes-for-nfts-result.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/quotes-for-stacks-result.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/search-nfts-result.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/search-stacks-result.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/stack-bundle.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/stack-quote-result.ts create mode 100644 packages/internal/generated-clients/src/blockchain-data/models/stack.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/domain/metadata-search-api.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/domain/pricing-api.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/filter-result.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/filter-value.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/filter.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/last-trade.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/list-filters-result.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/listing.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/market-floor-listing.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/market-nft.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/market-price-details-token.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/market-price-details.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/market-price-erc20-token.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/market-price-fees.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/market-price-native-token.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/market.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/marketplace-contract-type.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/nftbundle.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/nftquote-result.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/nftwith-stack.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/quotes-for-nfts-result.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/quotes-for-stacks-result.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/search-nfts-result.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/search-stacks-result.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/stack-bundle.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/stack-quote-result.ts create mode 100644 packages/internal/generated-clients/src/multi-rollup/models/stack.ts diff --git a/packages/blockchain-data/sdk/src/blockchain-data.ts b/packages/blockchain-data/sdk/src/blockchain-data.ts index f22f44f58f..b6f4c5e65d 100644 --- a/packages/blockchain-data/sdk/src/blockchain-data.ts +++ b/packages/blockchain-data/sdk/src/blockchain-data.ts @@ -24,6 +24,10 @@ export class BlockchainData { private readonly crafting: mr.CraftingApi; + private readonly pricing: mr.PricingApi; + + private readonly metadataSearch: mr.MetadataSearchApi; + constructor(moduleConfig: BlockchainDataModuleConfiguration) { this.config = new BlockchainDataConfiguration(moduleConfig); @@ -35,6 +39,8 @@ export class BlockchainData { this.tokens = new mr.TokensApi(this.config.apiConfig); this.metadata = new mr.MetadataApi(this.config.apiConfig); this.crafting = new mr.CraftingApi(this.config.apiConfig); + this.pricing = new mr.PricingApi(this.config.apiConfig); + this.metadataSearch = new mr.MetadataSearchApi(this.config.apiConfig); } /** @@ -478,4 +484,121 @@ export class BlockchainData { throw formatError(err); })) as Types.SignCraftingResult; } + + /** + * Marketplace APIs + * - Metadata search + */ + + /** + * Get list of metadata filters + * @param request - the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the a list of metadata filters + * @throws {@link index.APIError} + */ + public async listFilters( + request: Types.ListFiltersRequestParams, + ): Promise { + return (await this.metadataSearch + .listFilters(request) + .then((res) => res.data) + .catch((err) => { + throw formatError(err); + })) as Types.ListFiltersResult; + } + + /** + * Search NFTs + * @param request - the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the a list NFTs with metadata, market and listings information + * @throws {@link index.APIError} + */ + public async searchNFTs( + request: Types.SearchNFTsRequestParams, + ): Promise { + return (await this.metadataSearch + .searchNFTs(request) + .then((res) => res.data) + .catch((err) => { + throw formatError(err); + })) as Types.SearchNFTsResult; + } + + /** + * Search NFT stacks + * @param request - the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the a list NFT stacks with stack count, market and listings information + * @throws {@link index.APIError} + */ + public async searchStacks( + request: Types.SearchStacksRequestParams, + ): Promise { + return (await this.metadataSearch + .searchStacks(request) + .then((res) => res.data) + .catch((err) => { + throw formatError(err); + })) as Types.SearchStacksResult; + } + + /** + * Marketplace APIs + * - Pricing + */ + + /** + * Get pricing data for a list of token ids + * @param request - the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the a list of pricing data for particular NFTs + * @throws {@link index.APIError} + */ + public async quotesForNFTs( + request: Types.QuotesForNFTsRequestParams, + ): Promise { + return (await this.pricing + .quotesForNFTs(request) + .then((res) => res.data) + .catch((err) => { + throw formatError(err); + })) as Types.QuotesForNFTsResult; + } + + /** + * Get pricing data for a list of stack ids + * @param request - the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the a list of pricing data for particular stack ids + * @throws {@link index.APIError} + */ + public async quotesForStacks( + request: Types.QuotesForStacksRequestParams, + ): Promise { + return (await this.pricing + .quotesForStacks(request) + .then((res) => res.data) + .catch((err) => { + throw formatError(err); + })) as Types.QuotesForStacksResult; + } + + /** + * Marketplace APIs + * - Metadata + */ + + /** + * List NFT stack bundles by stack_id. + * @param request - the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with a list of NFT stacks with stack count, market and listings information + * @throws {@link index.APIError} + */ + public async listStacks( + request: Types.ListStacksRequestParams, + ): Promise { + return (await this.metadata + .listStacks(request) + .then((res) => res.data) + .catch((err) => { + throw formatError(err); + })) as Types.StackBundle[]; + } } diff --git a/packages/internal/generated-clients/src/blockchain-data-openapi.json b/packages/internal/generated-clients/src/blockchain-data-openapi.json index 02001034c5..997887d2aa 100644 --- a/packages/internal/generated-clients/src/blockchain-data-openapi.json +++ b/packages/internal/generated-clients/src/blockchain-data-openapi.json @@ -2222,6 +2222,616 @@ } } } + }, + "/v1/chains/{chain_name}/search/filters/{contract_address}": { + "get": { + "tags": [ + "metadata-search" + ], + "operationId": "ListFilters", + "summary": "Get list of metadata attribute filters", + "description": "Get list of metadata filters", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "in": "path", + "required": true, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "contract_address", + "in": "path", + "required": true, + "description": "Contract addresses for collection", + "schema": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]{40}$", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListFiltersResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "403": { + "$ref": "#/components/responses/ForbiddenRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "429": { + "$ref": "#/components/responses/TooManyRequests" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/search/nfts": { + "get": { + "tags": [ + "metadata-search" + ], + "operationId": "SearchNFTs", + "summary": "Search NFTs", + "description": "Search NFTs", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "in": "path", + "required": true, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "contract_address", + "in": "query", + "required": true, + "description": "List of contract addresses to filter by", + "schema": { + "type": "array", + "items": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]{40}$", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + "maxItems": 20, + "minItems": 1 + } + }, + { + "name": "account_address", + "in": "query", + "required": false, + "description": "Account address to filter by", + "schema": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]{40}$", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + } + }, + { + "name": "stack_id", + "in": "query", + "required": false, + "description": "Filters NFTs that belong to any of these stacks", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid", + "example": "7053e765-c119-4efb-b5cf-405ccccaf6c4" + }, + "minItems": 1, + "maxItems": 20 + } + }, + { + "name": "only_include_owner_listings", + "in": "query", + "required": false, + "description": "Whether the listings should include only the owner created listings", + "schema": { + "type": "boolean", + "example": true + } + }, + { + "name": "page_size", + "in": "query", + "required": false, + "description": "Number of results to return per page", + "schema": { + "$ref": "#/components/schemas/PageSize" + } + }, + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchNFTsResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "403": { + "$ref": "#/components/responses/ForbiddenRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "429": { + "$ref": "#/components/responses/TooManyRequests" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/search/stacks": { + "get": { + "tags": [ + "metadata-search" + ], + "operationId": "SearchStacks", + "summary": "Search NFT stacks", + "description": "Search NFT stacks", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "in": "path", + "required": true, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "contract_address", + "in": "query", + "required": true, + "description": "List of contract addresses to filter by", + "schema": { + "type": "array", + "items": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]{40}$", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + "maxItems": 20, + "minItems": 1 + } + }, + { + "name": "account_address", + "in": "query", + "required": false, + "description": "Account address to filter by", + "schema": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]{40}$", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + } + }, + { + "name": "only_include_owner_listings", + "in": "query", + "required": false, + "description": "Whether to the listings should include only the owner created listings", + "schema": { + "type": "boolean", + "example": true + } + }, + { + "name": "only_if_has_active_listings", + "in": "query", + "required": false, + "description": "Filters results to include only stacks that have a current active listing. False and 'null' return all unfiltered stacks.", + "schema": { + "type": "boolean", + "example": true + } + }, + { + "name": "traits", + "in": "query", + "required": false, + "description": "JSON encoded traits to filter by. e.g. encodeURIComponent(JSON.stringify({\"rarity\": {\"values\": [\"common\", \"rare\"], \"condition\": \"eq\"}}))", + "schema": { + "type": "string" + } + }, + { + "name": "keyword", + "in": "query", + "required": false, + "description": "Keyword to search NFT name and description. Alphanumeric characters only.", + "schema": { + "type": "string", + "example": "sword" + } + }, + { + "name": "sort_by", + "in": "query", + "required": false, + "description": "Sort results in a specific order", + "schema": { + "type": "string", + "nullable": false, + "enum": [ + "cheapest_first" + ] + } + }, + { + "name": "page_size", + "in": "query", + "required": false, + "description": "Number of results to return per page", + "schema": { + "$ref": "#/components/schemas/PageSize" + } + }, + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchStacksResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "403": { + "$ref": "#/components/responses/ForbiddenRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "429": { + "$ref": "#/components/responses/TooManyRequests" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/stacks": { + "get": { + "tags": [ + "metadata" + ], + "operationId": "ListStacks", + "summary": "List NFT stack bundles by stack_id. Response will include Market, Listings & Stack Count information for each stack", + "description": "List NFT stack bundles by stack_id. This endpoint functions similarly to `ListMetadataByID` but extends the response to include Market, Listings & Stack Count information for each stack.", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "in": "path", + "required": true, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "stack_id", + "in": "query", + "required": true, + "description": "List of stack_id to filter by", + "schema": { + "type": "array", + "items": { + "format": "uuid", + "type": "string", + "example": "7053e765-c119-4efb-b5cf-405ccccaf6c4" + }, + "maxItems": 20, + "minItems": 1 + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "List of stack bundles", + "items": { + "$ref": "#/components/schemas/StackBundle" + } + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "403": { + "$ref": "#/components/responses/ForbiddenRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "429": { + "$ref": "#/components/responses/TooManyRequests" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/quotes/{contract_address}/stacks": { + "get": { + "tags": [ + "pricing" + ], + "operationId": "QuotesForStacks", + "summary": "Get pricing data for a list of stack ids", + "description": "Get pricing data for a list of stack ids", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "in": "path", + "required": true, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "contract_address", + "in": "path", + "required": true, + "description": "Contract address for collection that these stacks are on", + "schema": { + "pattern": "^0x[a-fA-F0-9]{40}$", + "type": "string" + } + }, + { + "name": "stack_id", + "in": "query", + "required": true, + "description": "List of stack ids to get pricing data for", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid", + "example": "7053e765-c119-4efb-b5cf-405ccccaf6c4" + }, + "minItems": 1, + "maxItems": 20 + } + }, + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuotesForStacksResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "403": { + "$ref": "#/components/responses/ForbiddenRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "429": { + "$ref": "#/components/responses/TooManyRequests" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/quotes/{contract_address}/nfts": { + "get": { + "tags": [ + "pricing" + ], + "operationId": "QuotesForNFTs", + "summary": "Get pricing data for a list of token ids", + "description": "pricing data for a list of token ids", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "in": "path", + "required": true, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "contract_address", + "in": "path", + "required": true, + "description": "Contract address for collection that these token ids are on", + "schema": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + }, + { + "name": "token_id", + "in": "query", + "required": true, + "description": "List of token ids to get pricing data for", + "schema": { + "type": "array", + "items": { + "type": "string", + "example": "1337" + }, + "minItems": 1, + "maxItems": 20 + } + }, + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuotesForNFTsResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "403": { + "$ref": "#/components/responses/ForbiddenRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "429": { + "$ref": "#/components/responses/TooManyRequests" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } } }, "components": { @@ -2315,6 +2925,21 @@ } } }, + "TooManyRequests": { + "description": "Too Many Requests (429)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError429" + } + } + }, + "headers": { + "Retry-After": { + "$ref": "#/components/headers/RetryAfter" + } + } + }, "TooManyMetadataRefreshes": { "description": "Too Many Metadata refreshes (429)", "content": { @@ -2402,6 +3027,12 @@ "type": "string" } }, + "RetryAfter": { + "description": "The number of seconds until the next request can be made.", + "schema": { + "type": "string" + } + }, "MintRequestsLimit": { "description": "The mint requests limit available to the project for each time window.", "schema": { @@ -3104,12 +3735,134 @@ "example": "2022-08-16T17:43:26.991388Z", "description": "When the metadata was created" }, - "updated_at": { + "updated_at": { + "type": "string", + "format": "date-time", + "nullable": true, + "description": "When the metadata was last updated", + "example": "2022-08-16T17:43:26.991388Z" + }, + "name": { + "type": "string", + "nullable": true, + "example": "Sword", + "description": "The name of the NFT" + }, + "description": { + "type": "string", + "nullable": true, + "example": "2022-08-16T17:43:26.991388Z", + "description": "The description of the NFT" + }, + "image": { + "type": "string", + "nullable": true, + "description": "The image url of the NFT", + "example": "https://some-url" + }, + "external_url": { + "type": "string", + "nullable": true, + "description": "The external website link of NFT", + "example": "https://some-url" + }, + "animation_url": { + "type": "string", + "nullable": true, + "description": "The animation url of the NFT", + "example": "https://some-url" + }, + "youtube_url": { + "type": "string", + "nullable": true, + "description": "The youtube URL of NFT", + "example": "https://some-url" + }, + "attributes": { + "type": "array", + "description": "List of Metadata attributes", + "nullable": true, + "items": { + "$ref": "#/components/schemas/NFTMetadataAttribute" + } + } + }, + "required": [ + "id", + "chain", + "contract_address", + "created_at", + "updated_at", + "name", + "description", + "image", + "external_link", + "animation_url", + "youtube_url", + "attributes" + ] + }, + "RefreshMetadataByIDRequest": { + "type": "object", + "description": "Request body for refreshing metadata by id. Total size of this list should not exceed 228 KiB", + "properties": { + "metadata": { + "type": "array", + "maxItems": 10, + "minItems": 1, + "items": { + "$ref": "#/components/schemas/RefreshMetadataByID" + } + } + }, + "required": [ + "metadata" + ] + }, + "NFT": { + "type": "object", + "properties": { + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "token_id": { + "type": "string", + "example": "1", + "description": "An `uint256` token id as string" + }, + "contract_address": { + "type": "string", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e", + "description": "The contract address of the NFT" + }, + "contract_type": { + "$ref": "#/components/schemas/NFTContractType" + }, + "indexed_at": { + "type": "string", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the NFT was first indexed" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the NFT owner was last updated" + }, + "metadata_synced_at": { + "type": "string", + "format": "date-time", + "nullable": true, + "description": "When NFT metadata was last synced", + "example": "2022-08-16T17:43:26.991388Z" + }, + "metadata_id": { "type": "string", - "format": "date-time", + "format": "uuid", "nullable": true, - "description": "When the metadata was last updated", - "example": "2022-08-16T17:43:26.991388Z" + "description": "The id of the metadata of this NFT", + "example": "ae83bc80-4dd5-11ee-be56-0242ac120002" }, "name": { "type": "string", @@ -3129,6 +3882,13 @@ "description": "The image url of the NFT", "example": "https://some-url" }, + "external_link": { + "deprecated": true, + "type": "string", + "nullable": true, + "description": "(deprecated - use external_url instead) The external website link of NFT", + "example": "https://some-url" + }, "external_url": { "type": "string", "nullable": true, @@ -3149,46 +3909,37 @@ }, "attributes": { "type": "array", - "description": "List of Metadata attributes", - "nullable": true, + "description": "List of NFT Metadata attributes", "items": { "$ref": "#/components/schemas/NFTMetadataAttribute" } + }, + "total_supply": { + "type": "string", + "nullable": true, + "description": "The total supply of NFT", + "example": "100" } }, "required": [ - "id", "chain", + "token_id", "contract_address", - "created_at", + "indexed_at", "updated_at", + "metadata_synced_at", "name", "description", "image", "external_link", + "external_url", "animation_url", "youtube_url", - "attributes" - ] - }, - "RefreshMetadataByIDRequest": { - "type": "object", - "description": "Request body for refreshing metadata by id. Total size of this list should not exceed 228 KiB", - "properties": { - "metadata": { - "type": "array", - "maxItems": 10, - "minItems": 1, - "items": { - "$ref": "#/components/schemas/RefreshMetadataByID" - } - } - }, - "required": [ - "metadata" + "attributes", + "contract_type" ] }, - "NFT": { + "NFTWithBalance": { "type": "object", "properties": { "chain": { @@ -3236,14 +3987,14 @@ "name": { "type": "string", "nullable": true, - "example": "Sword", - "description": "The name of the NFT" + "description": "The name of the NFT", + "example": "Sword" }, "description": { "type": "string", "nullable": true, - "example": "2022-08-16T17:43:26.991388Z", - "description": "The description of the NFT" + "description": "The description of the NFT", + "example": "This is a super awesome sword" }, "image": { "type": "string", @@ -3252,118 +4003,489 @@ "example": "https://some-url" }, "external_link": { - "deprecated": true, "type": "string", "nullable": true, - "description": "(deprecated - use external_url instead) The external website link of NFT", + "description": "The external website link of NFT", "example": "https://some-url" }, - "external_url": { + "animation_url": { "type": "string", "nullable": true, - "description": "The external website link of NFT", + "description": "The animation url of the NFT", + "example": "https://some-url" + }, + "youtube_url": { + "type": "string", + "nullable": true, + "description": "The youtube URL of NFT", "example": "https://some-url" }, - "animation_url": { + "attributes": { + "type": "array", + "description": "List of Metadata attributes", + "nullable": false, + "items": { + "$ref": "#/components/schemas/NFTMetadataAttribute" + } + }, + "balance": { + "type": "string", + "nullable": false, + "description": "The amount of this NFT this account owns", + "example": "11" + } + }, + "required": [ + "chain", + "token_id", + "contract_address", + "indexed_at", + "updated_at", + "metadata_synced_at", + "name", + "description", + "image", + "external_link", + "animation_url", + "youtube_url", + "balance", + "contract_type", + "attributes" + ] + }, + "NFTMetadataAttribute": { + "type": "object", + "properties": { + "display_type": { + "description": "Display type for this attribute", + "type": "string", + "nullable": true, + "enum": [ + "number", + "boost_percentage", + "boost_number", + "date" + ], + "example": "number" + }, + "trait_type": { + "description": "The metadata trait type", + "type": "string", + "example": "Aqua Power" + }, + "value": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } + ], + "description": "The metadata trait value", + "example": "Happy" + } + }, + "required": [ + "trait_type", + "value" + ] + }, + "ChainName": { + "type": "string", + "description": "The name of chain", + "example": "imtbl-zkevm-testnet" + }, + "ActivityID": { + "description": "Activity id in UUIDv4 format", + "type": "string", + "format": "uuid", + "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b" + }, + "MetadataID": { + "description": "Metadata id in UUIDv4 format", + "type": "string", + "format": "uuid", + "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b" + }, + "CollectionContractType": { + "description": "The collection contract type", + "type": "string", + "enum": [ + "ERC721", + "ERC1155" + ] + }, + "NFTContractType": { + "description": "The contract type for an NFT", + "type": "string", + "enum": [ + "ERC721", + "ERC1155" + ] + }, + "TokenContractType": { + "description": "The contract type for a token", + "type": "string", + "enum": [ + "ERC20" + ] + }, + "AssetVerificationStatus": { + "description": "The verification status for a given contract", + "type": "string", + "enum": [ + "verified", + "unverified", + "spam", + "inactive" + ] + }, + "GetNFTResult": { + "type": "object", + "description": "Single NFT", + "properties": { + "result": { + "$ref": "#/components/schemas/NFT" + } + }, + "required": [ + "result" + ] + }, + "ListNFTsResult": { + "type": "object", + "properties": { + "result": { + "description": "List of NFTs", + "type": "array", + "items": { + "$ref": "#/components/schemas/NFT" + } + }, + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "ListNFTsByOwnerResult": { + "type": "object", + "properties": { + "result": { + "description": "List of NFTs by owner", + "type": "array", + "items": { + "$ref": "#/components/schemas/NFTWithBalance" + } + }, + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "NFTOwner": { + "type": "object", + "properties": { + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "contract_address": { + "type": "string", + "description": "The address of NFT contract", + "example": "0x5a019874f4fae314b0eaa4606be746366e661306" + }, + "token_id": { "type": "string", - "nullable": true, - "description": "The animation url of the NFT", - "example": "https://some-url" + "description": "An `uint256` token id as string", + "example": "1" }, - "youtube_url": { + "account_address": { "type": "string", - "nullable": true, - "description": "The youtube URL of NFT", - "example": "https://some-url" + "description": "The account address of the owner of the NFT", + "example": "0x5a019874f4fae314b0eaa4606be746366e661306" }, - "attributes": { - "type": "array", - "description": "List of NFT Metadata attributes", - "items": { - "$ref": "#/components/schemas/NFTMetadataAttribute" - } + "balance": { + "type": "string", + "description": "The amount of owned tokens (uint256 as string)", + "example": "1" }, - "total_supply": { + "updated_at": { "type": "string", - "nullable": true, - "description": "The total supply of NFT", - "example": "100" + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the NFT owner was last updated" } }, "required": [ "chain", - "token_id", "contract_address", - "indexed_at", - "updated_at", - "metadata_synced_at", - "name", - "description", - "image", - "external_link", - "external_url", - "animation_url", - "youtube_url", - "attributes", - "contract_type" + "token_id", + "account_address", + "balance" ] }, - "NFTWithBalance": { + "NFTWithOwner": { "type": "object", "properties": { "chain": { "$ref": "#/components/schemas/Chain" }, - "token_id": { + "contract_address": { "type": "string", - "example": "1", - "description": "An `uint256` token id as string" + "description": "The address of NFT contract", + "example": "0x5a019874f4fae314b0eaa4606be746366e661306" }, - "contract_address": { + "token_id": { "type": "string", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e", - "description": "The contract address of the NFT" + "description": "An `uint256` token id as string", + "example": "1" }, - "contract_type": { - "$ref": "#/components/schemas/NFTContractType" + "account_address": { + "type": "string", + "description": "The account address of the owner of the NFT", + "example": "0x5a019874f4fae314b0eaa4606be746366e661306" }, - "indexed_at": { + "balance": { "type": "string", - "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z", - "description": "When the NFT was first indexed" + "description": "The amount of owned tokens (uint256 as string)", + "example": "1" }, "updated_at": { "type": "string", "format": "date-time", "example": "2022-08-16T17:43:26.991388Z", - "description": "When the NFT owner was last updated" + "description": "When the owner last changed for the given NFT" + } + }, + "required": [ + "chain", + "contract_address", + "token_id", + "account_address", + "balance", + "updated_at" + ] + }, + "GetTokenResult": { + "type": "object", + "description": "Single Token", + "properties": { + "result": { + "$ref": "#/components/schemas/Token" + } + }, + "required": [ + "result" + ] + }, + "ListNFTOwnersResult": { + "type": "object", + "properties": { + "result": { + "description": "List of nft owners", + "type": "array", + "items": { + "$ref": "#/components/schemas/NFTOwner" + } }, - "metadata_synced_at": { + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "ListCollectionOwnersResult": { + "type": "object", + "properties": { + "result": { + "description": "List of NFT owners", + "type": "array", + "items": { + "$ref": "#/components/schemas/NFTWithOwner" + } + }, + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "ChainWithDetails": { + "allOf": [ + { + "$ref": "#/components/schemas/Chain" + }, + { + "type": "object", + "properties": { + "rpc_url": { + "type": "string", + "nullable": true, + "description": "URL for RPC node" + }, + "operator_allowlist_address": { + "type": "string", + "nullable": true, + "description": "The address of the Operator Allowlist - https://docs.immutable.com/products/zkevm/minting/royalties/allowlist-spec/" + }, + "minter_address": { + "type": "string", + "nullable": true, + "description": "The address of the minter used in the Minting API - https://docs.immutable.com/products/zkEVM/minting/minting-api#minting-api-prerequisites" + } + }, + "required": [ + "rpc_url", + "operator_allowlist_address", + "minter_address" + ] + } + ] + }, + "Chain": { + "type": "object", + "description": "The chain details", + "properties": { + "id": { "type": "string", - "format": "date-time", - "nullable": true, - "description": "When NFT metadata was last synced", - "example": "2022-08-16T17:43:26.991388Z" + "description": "The id of chain", + "example": "eip155:13372" }, - "metadata_id": { + "name": { "type": "string", - "format": "uuid", - "nullable": true, - "description": "The id of the metadata of this NFT", - "example": "ae83bc80-4dd5-11ee-be56-0242ac120002" + "description": "The name of chain", + "example": "imtbl-zkevm-testnet" + } + }, + "required": [ + "id", + "name" + ] + }, + "ListChainsResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "description": "List of chains", + "items": { + "$ref": "#/components/schemas/ChainWithDetails" + } + }, + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "ListTokensResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "description": "List of tokens", + "items": { + "$ref": "#/components/schemas/Token" + } + }, + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "RefreshMetadataByID": { + "allOf": [ + { + "$ref": "#/components/schemas/RefreshableNFTAttributes" + }, + { + "type": "object", + "properties": { + "metadata_id": { + "$ref": "#/components/schemas/MetadataID" + } + }, + "required": [ + "metadata_id" + ] + } + ] + }, + "RefreshMetadataByTokenID": { + "allOf": [ + { + "$ref": "#/components/schemas/RefreshableNFTAttributes" }, + { + "type": "object", + "properties": { + "token_id": { + "type": "string", + "description": "An `uint256` token id as string", + "example": "1" + } + }, + "required": [ + "token_id" + ] + } + ] + }, + "RefreshableNFTAttributes": { + "allOf": [ + { + "$ref": "#/components/schemas/NFTMetadataRequest" + } + ], + "required": [ + "name", + "description", + "image", + "external_url", + "animation_url", + "youtube_url", + "attributes" + ] + }, + "NFTMetadataRequest": { + "type": "object", + "description": "The NFT metadata. Total size of this object should not exceed 16 KiB", + "properties": { "name": { "type": "string", "nullable": true, - "description": "The name of the NFT", - "example": "Sword" + "example": "Sword", + "description": "The name of the NFT" }, "description": { "type": "string", "nullable": true, - "description": "The description of the NFT", - "example": "This is a super awesome sword" + "example": "2022-08-16T17:43:26.991388Z", + "description": "The description of the NFT" }, "image": { "type": "string", @@ -3371,10 +4493,10 @@ "description": "The image url of the NFT", "example": "https://some-url" }, - "external_link": { + "external_url": { "type": "string", "nullable": true, - "description": "The external website link of NFT", + "description": "The external link of the NFT", "example": "https://some-url" }, "animation_url": { @@ -3386,172 +4508,310 @@ "youtube_url": { "type": "string", "nullable": true, - "description": "The youtube URL of NFT", + "description": "The youtube link of the NFT", "example": "https://some-url" }, "attributes": { "type": "array", "description": "List of Metadata attributes", - "nullable": false, + "nullable": true, "items": { "$ref": "#/components/schemas/NFTMetadataAttribute" } + } + } + }, + "RefreshNFTMetadataByTokenIDRequest": { + "type": "object", + "properties": { + "nft_metadata": { + "type": "array", + "description": "List of nft metadata to be refreshed. Total size of the list should not exceed 228 KiB", + "maxItems": 250, + "minItems": 1, + "items": { + "$ref": "#/components/schemas/RefreshMetadataByTokenID" + } + } + }, + "required": [ + "nft_metadata" + ] + }, + "Token": { + "type": "object", + "properties": { + "chain": { + "$ref": "#/components/schemas/Chain" }, - "balance": { + "contract_address": { "type": "string", - "nullable": false, - "description": "The amount of this NFT this account owns", - "example": "11" + "description": "The address of token contract", + "example": "0xc344c05eef8876e517072f879dae8905aa2b956b" + }, + "root_contract_address": { + "type": "string", + "description": "The address of root token contract", + "example": "0x43e60b30d5bec48c0f5890e3d1e9f1b1296bb4aa", + "nullable": true + }, + "root_chain_id": { + "type": "string", + "description": "The id of the root chain for a bridged token", + "example": "eip155:1", + "nullable": true + }, + "bridge_used": { + "type": "string", + "description": "The name of the bridge, for bridged tokens only", + "example": "axelar", + "nullable": true + }, + "symbol": { + "type": "string", + "description": "The symbol of token", + "example": "AAA", + "nullable": true + }, + "decimals": { + "type": "integer", + "description": "The decimals of token", + "example": 18, + "nullable": true + }, + "image_url": { + "type": "string", + "description": "The image url of token", + "example": "https://some-url", + "nullable": true + }, + "name": { + "type": "string", + "description": "The name of token", + "example": "Token A", + "nullable": true + }, + "verification_status": { + "$ref": "#/components/schemas/AssetVerificationStatus" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the collection was last updated" + }, + "is_canonical": { + "type": "boolean", + "example": true, + "description": "Indicates whether the token is canonical or not" } }, "required": [ "chain", - "token_id", "contract_address", - "indexed_at", - "updated_at", - "metadata_synced_at", + "root_contract_address", + "symbol", + "decimals", + "image_url", "name", - "description", - "image", - "external_link", - "animation_url", - "youtube_url", - "balance", - "contract_type", - "attributes" + "updated_at", + "verification_status", + "is_canonical" ] }, - "NFTMetadataAttribute": { + "CollectionMetadata": { "type": "object", "properties": { - "display_type": { - "description": "Display type for this attribute", + "name": { "type": "string", "nullable": true, - "enum": [ - "number", - "boost_percentage", - "boost_number", - "date" - ], - "example": "number" + "description": "The name of the collection", + "example": "Gigantic Lizards" }, - "trait_type": { - "description": "The metadata trait type", + "symbol": { "type": "string", - "example": "Aqua Power" + "nullable": true, + "description": "The symbol of contract", + "example": "GLZ" }, - "value": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "The metadata trait value", - "example": "Happy" - } - }, - "required": [ - "trait_type", - "value" - ] - }, - "ChainName": { - "type": "string", - "description": "The name of chain", - "example": "imtbl-zkevm-testnet" - }, - "ActivityID": { - "description": "Activity id in UUIDv4 format", - "type": "string", - "format": "uuid", - "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b" - }, - "MetadataID": { - "description": "Metadata id in UUIDv4 format", - "type": "string", - "format": "uuid", - "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b" - }, - "CollectionContractType": { - "description": "The collection contract type", - "type": "string", - "enum": [ - "ERC721", - "ERC1155" - ] - }, - "NFTContractType": { - "description": "The contract type for an NFT", - "type": "string", - "enum": [ - "ERC721", - "ERC1155" + "description": { + "type": "string", + "nullable": true, + "description": "The description of collection", + "example": "This is the Gigantic Lizards collection" + }, + "image": { + "type": "string", + "description": "The url of the collection image", + "example": "https://some-url", + "nullable": true + }, + "external_link": { + "type": "string", + "description": "The url of external link", + "example": "https://some-url", + "nullable": true + }, + "contract_uri": { + "type": "string", + "description": "The uri for the metadata of the collection", + "example": "https://some-url", + "nullable": true + }, + "base_uri": { + "type": "string", + "nullable": true, + "description": "The metadata uri for nft", + "example": "https://some-url" + } + }, + "required": [ + "name", + "image", + "symbol", + "description", + "base_uri", + "external_link", + "contract_uri" ] }, - "TokenContractType": { - "description": "The contract type for a token", - "type": "string", - "enum": [ - "ERC20" + "RefreshCollectionMetadataRequest": { + "type": "object", + "properties": { + "collection_metadata": { + "$ref": "#/components/schemas/CollectionMetadata" + } + }, + "required": [ + "collection_metadata" ] }, - "AssetVerificationStatus": { - "description": "The verification status for a given contract", - "type": "string", - "enum": [ - "verified", - "unverified", - "spam", - "inactive" + "RefreshCollectionMetadataResult": { + "type": "object", + "properties": { + "contract_address": { + "type": "string" + }, + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "collection_metadata": { + "$ref": "#/components/schemas/CollectionMetadata" + } + }, + "required": [ + "contract_address", + "chain", + "collection_metadata" ] }, - "GetNFTResult": { + "MetadataRefreshRateLimitResult": { "type": "object", - "description": "Single NFT", "properties": { - "result": { - "$ref": "#/components/schemas/NFT" + "imx_refreshes_limit": { + "type": "string" + }, + "imx_refresh_limit_reset": { + "type": "string" + }, + "imx_remaining_refreshes": { + "type": "string" + }, + "retry_after": { + "type": "string" } }, "required": [ - "result" + "imx_refreshes_limit", + "imx_refresh_limit_reset", + "imx_remaining_refreshes", + "retry_after" ] }, - "ListNFTsResult": { + "CreateMintRequestRequest": { "type": "object", "properties": { - "result": { - "description": "List of NFTs", + "assets": { "type": "array", + "maxItems": 100, + "minItems": 1, + "description": "List of nft to be minted", "items": { - "$ref": "#/components/schemas/NFT" + "$ref": "#/components/schemas/MintAsset" } + } + }, + "required": [ + "assets" + ] + }, + "MintAsset": { + "type": "object", + "properties": { + "reference_id": { + "type": "string", + "description": "The id of this asset in the system that originates the mint request", + "example": "67f7d464-b8f0-4f6a-9a3b-8d3cb4a21af0" }, - "page": { - "$ref": "#/components/schemas/Page" + "owner_address": { + "type": "string", + "description": "The address of the receiver", + "example": "0xc344c05eef8876e517072f879dae8905aa2b956b" + }, + "token_id": { + "type": "string", + "description": "An optional `uint256` token id as string. Required for ERC1155 collections.", + "example": "1", + "nullable": true + }, + "amount": { + "type": "string", + "description": "Optional mount of tokens to mint. Required for ERC1155 collections. ERC712 collections can omit this field or set it to 1", + "example": "1", + "nullable": true, + "minLength": 1 + }, + "metadata": { + "$ref": "#/components/schemas/NFTMetadataRequest" } }, "required": [ - "result", - "page" + "reference_id", + "owner_address" ] }, - "ListNFTsByOwnerResult": { + "CreateMintRequestResult": { + "type": "object", + "properties": { + "imx_mint_requests_limit": { + "type": "string" + }, + "imx_mint_requests_limit_reset": { + "type": "string" + }, + "imx_remaining_mint_requests": { + "type": "string" + }, + "imx_mint_requests_retry_after": { + "type": "string" + } + }, + "required": [ + "imx_mint_requests_limit", + "imx_mint_requests_limit_reset", + "imx_remaining_mint_requests", + "imx_mint_requests_retry_after" + ] + }, + "ListMintRequestsResult": { "type": "object", + "description": "List mint requests", "properties": { "result": { - "description": "List of NFTs by owner", "type": "array", + "description": "List of mint requests", "items": { - "$ref": "#/components/schemas/NFTWithBalance" + "$ref": "#/components/schemas/GetMintRequestResult" } }, "page": { @@ -3563,351 +4823,486 @@ "page" ] }, - "NFTOwner": { + "GetMintRequestResult": { "type": "object", "properties": { "chain": { "$ref": "#/components/schemas/Chain" }, - "contract_address": { + "collection_address": { "type": "string", - "description": "The address of NFT contract", - "example": "0x5a019874f4fae314b0eaa4606be746366e661306" + "description": "The address of the contract", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + "reference_id": { + "type": "string", + "description": "The reference id of this mint request" + }, + "owner_address": { + "type": "string", + "description": "The address of the owner of the NFT" }, "token_id": { "type": "string", - "description": "An `uint256` token id as string", - "example": "1" + "example": "1", + "nullable": true, + "description": "An `uint256` token id as string. Only available when the mint request succeeds" }, - "account_address": { + "amount": { "type": "string", - "description": "The account address of the owner of the NFT", - "example": "0x5a019874f4fae314b0eaa4606be746366e661306" + "example": "1", + "nullable": true, + "description": "An `uint256` amount as string. Only relevant for mint requests on ERC1155 contracts" }, - "balance": { + "activity_id": { "type": "string", - "description": "The amount of owned tokens (uint256 as string)", - "example": "1" + "format": "uuid", + "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b", + "nullable": true, + "description": "The id of the mint activity associated with this mint request" + }, + "transaction_hash": { + "type": "string", + "nullable": true, + "description": "The transaction hash of the activity", + "example": "0x68d9eac5e3b3c3580404989a4030c948a78e1b07b2b5ea5688d8c38a6c61c93e" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the mint request was created" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "When the mint request was last updated", + "example": "2022-08-16T17:43:26.991388Z" + }, + "error": { + "$ref": "#/components/schemas/MintRequestErrorMessage" + }, + "status": { + "$ref": "#/components/schemas/MintRequestStatus" + } + }, + "required": [ + "chain", + "collection_address", + "reference_id", + "owner_address", + "status", + "token_id", + "transaction_hash", + "error", + "created_at", + "updated_at" + ] + }, + "MintRequestErrorMessage": { + "type": "object", + "description": "The error details in case the mint request fails", + "nullable": true, + "properties": { + "message": { + "description": "An error message in case the mint request fails", + "type": "string" + } + } + }, + "MintRequestStatus": { + "description": "The status of the mint request", + "example": "pending", + "type": "string", + "enum": [ + "pending", + "succeeded", + "failed" + ] + }, + "Call": { + "type": "object", + "properties": { + "target_address": { + "$ref": "#/components/schemas/Address" }, - "updated_at": { + "function_signature": { "type": "string", - "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z", - "description": "When the NFT owner was last updated" + "description": "The function signature", + "example": "mint(address,uint256)" + }, + "function_args": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The function arguments", + "example": [ + "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e", + "1" + ] } }, "required": [ - "chain", - "contract_address", - "token_id", - "account_address", - "balance" + "target_address", + "function_signature", + "function_args" ] }, - "NFTWithOwner": { + "SignCraftingRequest": { "type": "object", "properties": { - "chain": { - "$ref": "#/components/schemas/Chain" - }, - "contract_address": { - "type": "string", - "description": "The address of NFT contract", - "example": "0x5a019874f4fae314b0eaa4606be746366e661306" - }, - "token_id": { - "type": "string", - "description": "An `uint256` token id as string", - "example": "1" + "multi_caller": { + "type": "object", + "properties": { + "address": { + "$ref": "#/components/schemas/Address" + }, + "name": { + "type": "string", + "description": "The name of the multicaller contract", + "example": "Multicaller" + }, + "version": { + "type": "string", + "description": "The version of the multicaller contract", + "example": "1" + } + }, + "required": [ + "address", + "name", + "version" + ] }, - "account_address": { + "reference_id": { "type": "string", - "description": "The account address of the owner of the NFT", - "example": "0x5a019874f4fae314b0eaa4606be746366e661306" + "description": "The id of this request in the system that originates the crafting request, specified as a 32 byte hex string", + "example": "67f7d464b8f04f6a9a3b8d3cb4a21af0" }, - "balance": { - "type": "string", - "description": "The amount of owned tokens (uint256 as string)", - "example": "1" + "calls": { + "type": "array", + "description": "The calls to be signed", + "items": { + "$ref": "#/components/schemas/Call" + }, + "minLength": 1, + "maxLength": 100 }, - "updated_at": { + "expires_at": { "type": "string", "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z", - "description": "When the owner last changed for the given NFT" - } - }, - "required": [ - "chain", - "contract_address", - "token_id", - "account_address", - "balance", - "updated_at" - ] - }, - "GetTokenResult": { - "type": "object", - "description": "Single Token", - "properties": { - "result": { - "$ref": "#/components/schemas/Token" + "description": "The expiration time of the request", + "example": "2022-08-16T17:43:26.991388Z" } }, "required": [ - "result" + "multi_caller", + "reference_id", + "calls", + "expires_at" ] }, - "ListNFTOwnersResult": { + "SignCraftingResult": { "type": "object", "properties": { - "result": { - "description": "List of nft owners", - "type": "array", - "items": { - "$ref": "#/components/schemas/NFTOwner" - } + "signer_address": { + "$ref": "#/components/schemas/Address" }, - "page": { - "$ref": "#/components/schemas/Page" + "signature": { + "type": "string", + "description": "The signature of the request", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" } }, "required": [ - "result", - "page" + "signer_address", + "signature" ] }, - "ListCollectionOwnersResult": { + "BasicAPIError": { "type": "object", "properties": { - "result": { - "description": "List of NFT owners", - "type": "array", - "items": { - "$ref": "#/components/schemas/NFTWithOwner" - } + "message": { + "type": "string", + "description": "Error Message", + "example": "all fields must be provided" }, - "page": { - "$ref": "#/components/schemas/Page" + "link": { + "type": "string", + "description": "Link to IMX documentation that can help resolve this error", + "example": "https://docs.x.immutable.com/reference/#/" + }, + "trace_id": { + "type": "string", + "description": "Trace ID of the initial request", + "example": "e47634b79a5cd6894ddc9639ec4aad26" } }, "required": [ - "result", - "page" + "message", + "link", + "trace_id" ] }, - "ChainWithDetails": { + "APIError400": { "allOf": [ { - "$ref": "#/components/schemas/Chain" + "$ref": "#/components/schemas/BasicAPIError" }, { "type": "object", "properties": { - "rpc_url": { - "type": "string", - "nullable": true, - "description": "URL for RPC node" - }, - "operator_allowlist_address": { + "code": { "type": "string", - "nullable": true, - "description": "The address of the Operator Allowlist - https://docs.immutable.com/products/zkevm/minting/royalties/allowlist-spec/" + "description": "Error Code", + "enum": [ + "VALIDATION_ERROR" + ], + "example": "VALIDATION_ERROR" }, - "minter_address": { - "type": "string", + "details": { + "type": "object", "nullable": true, - "description": "The address of the minter used in the Minting API - https://docs.immutable.com/products/zkEVM/minting/minting-api#minting-api-prerequisites" + "description": "Additional details to help resolve the error" } }, "required": [ - "rpc_url", - "operator_allowlist_address", - "minter_address" + "code", + "details" ] } ] }, - "Chain": { - "type": "object", - "description": "The chain details", - "properties": { - "id": { - "type": "string", - "description": "The id of chain", - "example": "eip155:13372" + "APIError404": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" }, - "name": { - "type": "string", - "description": "The name of chain", - "example": "imtbl-zkevm-testnet" + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "RESOURCE_NOT_FOUND" + ], + "example": "RESOURCE_NOT_FOUND" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error" + } + }, + "required": [ + "code", + "details" + ] } - }, - "required": [ - "id", - "name" ] }, - "ListChainsResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "description": "List of chains", - "items": { - "$ref": "#/components/schemas/ChainWithDetails" - } + "APIError500": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" }, - "page": { - "$ref": "#/components/schemas/Page" + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "INTERNAL_SERVER_ERROR" + ], + "example": "INTERNAL_SERVER_ERROR" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error" + } + }, + "required": [ + "code", + "details" + ] } - }, - "required": [ - "result", - "page" ] }, - "ListTokensResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "description": "List of tokens", - "items": { - "$ref": "#/components/schemas/Token" - } + "APIError401": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" }, - "page": { - "$ref": "#/components/schemas/Page" + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "UNAUTHORISED_REQUEST" + ], + "example": "UNAUTHORISED_REQUEST" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error" + } + }, + "required": [ + "code", + "details" + ] } - }, - "required": [ - "result", - "page" ] }, - "RefreshMetadataByID": { + "APIError403": { "allOf": [ { - "$ref": "#/components/schemas/RefreshableNFTAttributes" + "$ref": "#/components/schemas/BasicAPIError" }, { "type": "object", "properties": { - "metadata_id": { - "$ref": "#/components/schemas/MetadataID" + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "AUTHENTICATION_ERROR" + ], + "example": "AUTHENTICATION_ERROR" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error" } }, "required": [ - "metadata_id" + "code", + "details" ] } ] }, - "RefreshMetadataByTokenID": { + "APIError429": { "allOf": [ { - "$ref": "#/components/schemas/RefreshableNFTAttributes" + "$ref": "#/components/schemas/BasicAPIError" }, { "type": "object", "properties": { - "token_id": { + "code": { "type": "string", - "description": "An `uint256` token id as string", - "example": "1" + "description": "Error Code", + "enum": [ + "TOO_MANY_REQUESTS_ERROR" + ], + "example": "TOO_MANY_REQUESTS_ERROR" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error" } }, "required": [ - "token_id" + "code", + "details" ] } ] }, - "RefreshableNFTAttributes": { + "APIError409": { "allOf": [ { - "$ref": "#/components/schemas/NFTMetadataRequest" + "$ref": "#/components/schemas/BasicAPIError" + }, + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "CONFLICT_ERROR" + ], + "example": "CONFLICT_ERROR" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error", + "additionalProperties": true + } + }, + "required": [ + "code", + "details" + ] } - ], - "required": [ - "name", - "description", - "image", - "external_url", - "animation_url", - "youtube_url", - "attributes" ] }, - "NFTMetadataRequest": { + "FilterValue": { "type": "object", - "description": "The NFT metadata. Total size of this object should not exceed 16 KiB", "properties": { - "name": { - "type": "string", - "nullable": true, - "example": "Sword", - "description": "The name of the NFT" - }, - "description": { - "type": "string", - "nullable": true, - "example": "2022-08-16T17:43:26.991388Z", - "description": "The description of the NFT" - }, - "image": { - "type": "string", - "nullable": true, - "description": "The image url of the NFT", - "example": "https://some-url" - }, - "external_url": { - "type": "string", - "nullable": true, - "description": "The external link of the NFT", - "example": "https://some-url" - }, - "animation_url": { - "type": "string", - "nullable": true, - "description": "The animation url of the NFT", - "example": "https://some-url" + "value": { + "type": "string" }, - "youtube_url": { + "nft_count": { "type": "string", - "nullable": true, - "description": "The youtube link of the NFT", - "example": "https://some-url" + "description": "Number of NFTs that have this trait. Uint256 as string" + } + }, + "example": [ + { + "value": "Common", + "nft_count": "42" }, - "attributes": { - "type": "array", - "description": "List of Metadata attributes", - "nullable": true, - "items": { - "$ref": "#/components/schemas/NFTMetadataAttribute" - } + { + "value": "Rare", + "nft_count": "17" } - } + ], + "required": [ + "value", + "nft_count" + ] }, - "RefreshNFTMetadataByTokenIDRequest": { + "Filter": { "type": "object", "properties": { - "nft_metadata": { + "name": { + "type": "string", + "description": "Name of trait", + "example": "Rarity" + }, + "values": { + "description": "List of 100 most common values for this trait sorted by number of associated NFTs", "type": "array", - "description": "List of nft metadata to be refreshed. Total size of the list should not exceed 228 KiB", - "maxItems": 250, - "minItems": 1, "items": { - "$ref": "#/components/schemas/RefreshMetadataByTokenID" + "$ref": "#/components/schemas/FilterValue" } + }, + "omitted_values_count": { + "type": "integer", + "description": "Indicated how many more distinct values exist", + "example": 0 } }, "required": [ - "nft_metadata" + "name", + "values", + "omitted_values_count" ] }, - "Token": { + "FilterResult": { "type": "object", "properties": { "chain": { @@ -3915,272 +5310,470 @@ }, "contract_address": { "type": "string", - "description": "The address of token contract", - "example": "0xc344c05eef8876e517072f879dae8905aa2b956b" - }, - "root_contract_address": { - "type": "string", - "description": "The address of root token contract", - "example": "0x43e60b30d5bec48c0f5890e3d1e9f1b1296bb4aa", - "nullable": true - }, - "root_chain_id": { - "type": "string", - "description": "The id of the root chain for a bridged token", - "example": "eip155:1", - "nullable": true - }, - "bridge_used": { - "type": "string", - "description": "The name of the bridge, for bridged tokens only", - "example": "axelar", - "nullable": true + "description": "ETH Address of collection that the asset belongs to", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" }, - "symbol": { - "type": "string", - "description": "The symbol of token", - "example": "AAA", - "nullable": true + "filters": { + "description": "List of all filters and the most common values", + "type": "array", + "items": { + "$ref": "#/components/schemas/Filter" + } + } + }, + "required": [ + "chain", + "contract_address", + "filters" + ] + }, + "ListFiltersResult": { + "type": "object", + "description": "List filters result", + "properties": { + "result": { + "$ref": "#/components/schemas/FilterResult" }, - "decimals": { - "type": "integer", - "description": "The decimals of token", - "example": 18, - "nullable": true + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "MarketplaceContractType": { + "description": "The contract type for a collection", + "type": "string", + "enum": [ + "ERC721", + "ERC1155" + ] + }, + "NFTWithStack": { + "type": "object", + "description": "Stack", + "properties": { + "token_id": { + "description": "Token id of NFT (uint256 as string)", + "type": "string" }, - "image_url": { + "stack_id": { "type": "string", - "description": "The image url of token", - "example": "https://some-url", - "nullable": true + "format": "uuid", + "description": "Stack ID" }, - "name": { + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "contract_address": { "type": "string", - "description": "The name of token", - "example": "Token A", - "nullable": true + "description": "Contract address" }, - "verification_status": { - "$ref": "#/components/schemas/AssetVerificationStatus" + "contract_type": { + "$ref": "#/components/schemas/MarketplaceContractType" }, - "updated_at": { + "created_at": { "type": "string", "format": "date-time", "example": "2022-08-16T17:43:26.991388Z", - "description": "When the collection was last updated" + "description": "When the metadata was created" }, - "is_canonical": { - "type": "boolean", - "example": true, - "description": "Indicates whether the token is canonical or not" - } - }, - "required": [ - "chain", - "contract_address", - "root_contract_address", - "symbol", - "decimals", - "image_url", - "name", - "updated_at", - "verification_status", - "is_canonical" - ] - }, - "CollectionMetadata": { - "type": "object", - "properties": { - "name": { + "updated_at": { "type": "string", - "nullable": true, - "description": "The name of the collection", - "example": "Gigantic Lizards" + "format": "date-time", + "description": "When the metadata was last updated", + "example": "2022-08-16T17:43:26.991388Z" }, - "symbol": { + "name": { "type": "string", "nullable": true, - "description": "The symbol of contract", - "example": "GLZ" + "example": "Sword", + "description": "The name of the NFT" }, "description": { "type": "string", "nullable": true, - "description": "The description of collection", - "example": "This is the Gigantic Lizards collection" + "example": "2022-08-16T17:43:26.991388Z", + "description": "The description of the NFT" }, "image": { "type": "string", - "description": "The url of the collection image", - "example": "https://some-url", - "nullable": true + "nullable": true, + "description": "The image url of the NFT", + "example": "https://some-url" }, - "external_link": { + "external_url": { "type": "string", - "description": "The url of external link", - "example": "https://some-url", - "nullable": true + "nullable": true, + "description": "The external website link of NFT", + "example": "https://some-url" }, - "contract_uri": { + "animation_url": { "type": "string", - "description": "The uri for the metadata of the collection", - "example": "https://some-url", - "nullable": true + "nullable": true, + "description": "The animation url of the NFT", + "example": "https://some-url" }, - "base_uri": { + "youtube_url": { "type": "string", "nullable": true, - "description": "The metadata uri for nft", + "description": "The youtube URL of NFT", "example": "https://some-url" + }, + "attributes": { + "type": "array", + "description": "List of Metadata attributes", + "nullable": true, + "items": { + "$ref": "#/components/schemas/NFTMetadataAttribute" + } + }, + "balance": { + "type": "integer", + "description": "Balance of NFT", + "minimum": 1, + "nullable": true } }, "required": [ + "token_id", + "stack_id", + "chain", + "contract_address", + "contract_type", + "updated_at", + "created_at", "name", - "image", - "symbol", "description", - "base_uri", - "external_link", - "contract_uri" + "image", + "external_url", + "animation_url", + "youtube_url", + "attributes", + "balance" ] }, - "RefreshCollectionMetadataRequest": { + "MarketPriceNativeToken": { "type": "object", "properties": { - "collection_metadata": { - "$ref": "#/components/schemas/CollectionMetadata" + "type": { + "type": "string", + "description": "Token type user is offering, which in this case is the native IMX token", + "example": "NATIVE", + "enum": [ + "NATIVE" + ] + }, + "symbol": { + "nullable": true, + "type": "string", + "description": "The symbol of token", + "example": "IMX" } }, "required": [ - "collection_metadata" + "type", + "symbol" ] }, - "RefreshCollectionMetadataResult": { + "MarketPriceERC20Token": { "type": "object", "properties": { + "type": { + "type": "string", + "description": "Token type user is offering, which in this case is ERC20", + "example": "ERC20", + "enum": [ + "ERC20" + ] + }, "contract_address": { - "type": "string" + "type": "string", + "description": "Address of ERC20 token", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F", + "pattern": "^0x[a-fA-F0-9]{40}$" }, - "chain": { - "$ref": "#/components/schemas/Chain" + "symbol": { + "nullable": true, + "type": "string", + "description": "The symbol of token", + "example": "ETH" }, - "collection_metadata": { - "$ref": "#/components/schemas/CollectionMetadata" + "decimals": { + "nullable": true, + "type": "integer", + "description": "The decimals of token", + "example": 18 } }, "required": [ + "type", "contract_address", - "chain", - "collection_metadata" + "symbol", + "decimals" ] }, - "MetadataRefreshRateLimitResult": { + "PaymentAmount": { + "type": "string", + "description": "The token amount value. This value is provided in the smallest unit of the token (e.g. wei for ETH)", + "example": "9750000000000000000", + "pattern": "\\d+" + }, + "MarketPriceFees": { "type": "object", "properties": { - "imx_refreshes_limit": { - "type": "string" - }, - "imx_refresh_limit_reset": { - "type": "string" + "amount": { + "type": "string", + "description": "Fee in the payment currency", + "example": "1000000000000000000" }, - "imx_remaining_refreshes": { - "type": "string" + "type": { + "type": "string", + "description": "Fee type", + "example": "ROYALTY", + "enum": [ + "ROYALTY", + "MAKER_ECOSYSTEM", + "TAKER_ECOSYSTEM", + "PROTOCOL" + ] }, - "retry_after": { - "type": "string" + "recipient_address": { + "type": "string", + "description": "Wallet address of fee recipient", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233", + "pattern": "^0x[a-fA-F0-9]{40}$" } }, + "example": { + "amount": "1000000000000000000", + "type": "ROYALTY", + "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" + }, "required": [ - "imx_refreshes_limit", - "imx_refresh_limit_reset", - "imx_remaining_refreshes", - "retry_after" + "type", + "amount", + "recipient_address" ] }, - "CreateMintRequestRequest": { + "ConvertedPrices": { + "type": "object", + "description": "A mapping of converted prices for major currencies such as ETH, USD. All converted prices are fee-inclusive.", + "nullable": true, + "additionalProperties": { + "type": "string" + }, + "example": { + "ETH": "0.0058079775", + "USD": "15.89" + } + }, + "MarketPriceDetails": { "type": "object", + "description": "Market Price details", "properties": { - "assets": { + "token": { + "description": "Token details", + "oneOf": [ + { + "$ref": "#/components/schemas/MarketPriceNativeToken" + }, + { + "$ref": "#/components/schemas/MarketPriceERC20Token" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "NATIVE": "#/components/schemas/MarketPriceNativeToken", + "ERC20": "#/components/schemas/MarketPriceERC20Token" + } + } + }, + "amount": { + "$ref": "#/components/schemas/PaymentAmount" + }, + "fee_inclusive_amount": { + "$ref": "#/components/schemas/PaymentAmount" + }, + "fees": { "type": "array", - "maxItems": 100, - "minItems": 1, - "description": "List of nft to be minted", "items": { - "$ref": "#/components/schemas/MintAsset" - } + "$ref": "#/components/schemas/MarketPriceFees" + }, + "example": [ + { + "type": "TAKER_ECOSYSTEM", + "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233", + "amount": "1000000000000000000" + } + ] + }, + "converted_prices": { + "$ref": "#/components/schemas/ConvertedPrices" } }, "required": [ - "assets" + "token", + "amount", + "fee_inclusive_amount", + "fees", + "converted_prices" ] }, - "MintAsset": { + "Listing": { "type": "object", "properties": { - "reference_id": { + "listing_id": { "type": "string", - "description": "The id of this asset in the system that originates the mint request", - "example": "67f7d464-b8f0-4f6a-9a3b-8d3cb4a21af0" + "description": "Global Order identifier", + "example": "018792C9-4AD7-8EC4-4038-9E05C598534A" }, - "owner_address": { + "price_details": { + "$ref": "#/components/schemas/MarketPriceDetails" + }, + "token_id": { + "type": "string", + "description": "Token ID", + "example": "1" + }, + "contract_address": { + "type": "string", + "description": "ETH Address of collection that the asset belongs to", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + "creator": { + "type": "string", + "description": "ETH Address of listing creator", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + "amount": { + "type": "string", + "description": "Amount of token included in the listing", + "example": "1" + } + }, + "required": [ + "listing_id", + "price_details", + "creator", + "token_id", + "contract_address", + "amount" + ] + }, + "LastTrade": { + "type": "object", + "nullable": true, + "description": "Most recent trade", + "properties": { + "trade_id": { + "type": "string", + "description": "Trade ID", + "format": "uuid", + "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b" + }, + "contract_address": { "type": "string", - "description": "The address of the receiver", - "example": "0xc344c05eef8876e517072f879dae8905aa2b956b" + "description": "ETH Address of collection that the asset belongs to", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" }, "token_id": { "type": "string", - "description": "An optional `uint256` token id as string. Required for ERC1155 collections.", - "example": "1", - "nullable": true + "description": "Token id of the traded asset (uint256 as string)", + "example": "1" + }, + "price_details": { + "type": "array", + "description": "Price details, list of payments involved in this trade", + "items": { + "$ref": "#/components/schemas/MarketPriceDetails" + } }, "amount": { "type": "string", - "description": "Optional mount of tokens to mint. Required for ERC1155 collections. ERC712 collections can omit this field or set it to 1", - "example": "1", - "nullable": true, - "minLength": 1 + "description": "Amount of the trade (uint256 as string)", + "example": "1" }, - "metadata": { - "$ref": "#/components/schemas/NFTMetadataRequest" + "created_at": { + "type": "string", + "format": "date-time", + "description": "When the trade was created", + "example": "2022-08-16T17:43:26.991388Z" } }, "required": [ - "reference_id", - "owner_address" + "trade_id", + "token_id", + "contract_address", + "price_details", + "amount", + "created_at" ] }, - "CreateMintRequestResult": { + "Market": { "type": "object", + "description": "Market data", "properties": { - "imx_mint_requests_limit": { - "type": "string" + "floor_listing": { + "description": "Cheapest active listing", + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/Listing" + } + ] }, - "imx_mint_requests_limit_reset": { - "type": "string" + "last_trade": { + "$ref": "#/components/schemas/LastTrade" + } + }, + "required": [ + "floor_listing", + "last_trade" + ] + }, + "NFTBundle": { + "type": "object", + "description": "NFT bundle includes NFT with stack, markets and listings", + "properties": { + "nft_with_stack": { + "$ref": "#/components/schemas/NFTWithStack" }, - "imx_remaining_mint_requests": { - "type": "string" + "market": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/Market" + } + ] }, - "imx_mint_requests_retry_after": { - "type": "string" + "listings": { + "type": "array", + "description": "List of open listings for the stack.", + "maxItems": 10, + "items": { + "$ref": "#/components/schemas/Listing" + } } }, "required": [ - "imx_mint_requests_limit", - "imx_mint_requests_limit_reset", - "imx_remaining_mint_requests", - "imx_mint_requests_retry_after" + "nft_with_stack", + "market", + "listings" ] }, - "ListMintRequestsResult": { + "SearchNFTsResult": { "type": "object", - "description": "List mint requests", + "description": "Search NFTs result", "properties": { "result": { "type": "array", - "description": "List of mint requests", + "description": "List of nft bundles", "items": { - "$ref": "#/components/schemas/GetMintRequestResult" + "$ref": "#/components/schemas/NFTBundle" } }, "page": { @@ -4192,430 +5785,258 @@ "page" ] }, - "GetMintRequestResult": { + "Stack": { "type": "object", + "description": "Stack", "properties": { + "stack_id": { + "type": "string", + "format": "uuid", + "description": "Stack ID" + }, "chain": { "$ref": "#/components/schemas/Chain" }, - "collection_address": { + "contract_address": { "type": "string", - "description": "The address of the contract", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + "description": "Contract address" }, - "reference_id": { + "contract_type": { + "$ref": "#/components/schemas/MarketplaceContractType" + }, + "created_at": { "type": "string", - "description": "The reference id of this mint request" + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the metadata was created" }, - "owner_address": { + "updated_at": { "type": "string", - "description": "The address of the owner of the NFT" + "format": "date-time", + "description": "When the metadata was last updated", + "example": "2022-08-16T17:43:26.991388Z" }, - "token_id": { + "name": { "type": "string", - "example": "1", "nullable": true, - "description": "An `uint256` token id as string. Only available when the mint request succeeds" + "example": "Sword", + "description": "The name of the NFT" }, - "amount": { + "description": { "type": "string", - "example": "1", "nullable": true, - "description": "An `uint256` amount as string. Only relevant for mint requests on ERC1155 contracts" + "example": "2022-08-16T17:43:26.991388Z", + "description": "The description of the NFT" }, - "activity_id": { + "image": { "type": "string", - "format": "uuid", - "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b", "nullable": true, - "description": "The id of the mint activity associated with this mint request" + "description": "The image url of the NFT", + "example": "https://some-url" }, - "transaction_hash": { + "external_url": { "type": "string", "nullable": true, - "description": "The transaction hash of the activity", - "example": "0x68d9eac5e3b3c3580404989a4030c948a78e1b07b2b5ea5688d8c38a6c61c93e" + "description": "The external website link of NFT", + "example": "https://some-url" }, - "created_at": { + "animation_url": { "type": "string", - "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z", - "description": "When the mint request was created" + "nullable": true, + "description": "The animation url of the NFT", + "example": "https://some-url" }, - "updated_at": { + "youtube_url": { "type": "string", - "format": "date-time", - "description": "When the mint request was last updated", - "example": "2022-08-16T17:43:26.991388Z" - }, - "error": { - "$ref": "#/components/schemas/MintRequestErrorMessage" + "nullable": true, + "description": "The youtube URL of NFT", + "example": "https://some-url" }, - "status": { - "$ref": "#/components/schemas/MintRequestStatus" + "attributes": { + "type": "array", + "description": "List of Metadata attributes", + "nullable": true, + "items": { + "$ref": "#/components/schemas/NFTMetadataAttribute" + } } }, "required": [ + "stack_id", "chain", - "collection_address", - "reference_id", - "owner_address", - "status", - "token_id", - "transaction_hash", - "error", + "contract_address", + "contract_type", + "updated_at", "created_at", - "updated_at" - ] - }, - "MintRequestErrorMessage": { - "type": "object", - "description": "The error details in case the mint request fails", - "nullable": true, - "properties": { - "message": { - "description": "An error message in case the mint request fails", - "type": "string" - } - } - }, - "MintRequestStatus": { - "description": "The status of the mint request", - "example": "pending", - "type": "string", - "enum": [ - "pending", - "succeeded", - "failed" + "name", + "description", + "image", + "external_url", + "animation_url", + "youtube_url", + "attributes" ] }, - "Call": { + "StackBundle": { "type": "object", + "description": "Stack bundle includes stacks, markets and listings", "properties": { - "target_address": { - "$ref": "#/components/schemas/Address" + "stack": { + "$ref": "#/components/schemas/Stack" }, - "function_signature": { - "type": "string", - "description": "The function signature", - "example": "mint(address,uint256)" + "stack_count": { + "type": "integer", + "description": "Total count of NFTs in the stack matching the filter params", + "example": 1 }, - "function_args": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The function arguments", - "example": [ - "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e", - "1" - ] - } - }, - "required": [ - "target_address", - "function_signature", - "function_args" - ] - }, - "SignCraftingRequest": { - "type": "object", - "properties": { - "multi_caller": { - "type": "object", - "properties": { - "address": { - "$ref": "#/components/schemas/Address" - }, - "name": { - "type": "string", - "description": "The name of the multicaller contract", - "example": "Multicaller" - }, - "version": { - "type": "string", - "description": "The version of the multicaller contract", - "example": "1" + "market": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/Market" } - }, - "required": [ - "address", - "name", - "version" ] }, - "reference_id": { - "type": "string", - "description": "The id of this request in the system that originates the crafting request, specified as a 32 byte hex string", - "example": "67f7d464b8f04f6a9a3b8d3cb4a21af0" - }, - "calls": { + "listings": { "type": "array", - "description": "The calls to be signed", + "description": "List of open listings for the stack.", + "maxItems": 10, "items": { - "$ref": "#/components/schemas/Call" - }, - "minLength": 1, - "maxLength": 100 - }, - "expires_at": { - "type": "string", - "format": "date-time", - "description": "The expiration time of the request", - "example": "2022-08-16T17:43:26.991388Z" + "$ref": "#/components/schemas/Listing" + } } }, "required": [ - "multi_caller", - "reference_id", - "calls", - "expires_at" + "stack", + "stack_count", + "market", + "listings" ] }, - "SignCraftingResult": { + "SearchStacksResult": { "type": "object", + "description": "Search stacks result", "properties": { - "signer_address": { - "$ref": "#/components/schemas/Address" + "result": { + "type": "array", + "description": "List of stack bundles", + "items": { + "$ref": "#/components/schemas/StackBundle" + } }, - "signature": { - "type": "string", - "description": "The signature of the request", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + "page": { + "$ref": "#/components/schemas/Page" } }, "required": [ - "signer_address", - "signature" + "result", + "page" ] }, - "BasicAPIError": { + "StackQuoteResult": { "type": "object", + "description": "Stack quote result", "properties": { - "message": { - "type": "string", - "description": "Error Message", - "example": "all fields must be provided" + "chain": { + "$ref": "#/components/schemas/Chain" }, - "link": { - "type": "string", - "description": "Link to IMX documentation that can help resolve this error", - "example": "https://docs.x.immutable.com/reference/#/" + "stack_id": { + "format": "uuid", + "type": "string" }, - "trace_id": { - "type": "string", - "description": "Trace ID of the initial request", - "example": "e47634b79a5cd6894ddc9639ec4aad26" + "market_stack": { + "$ref": "#/components/schemas/Market" + }, + "market_collection": { + "$ref": "#/components/schemas/Market" } }, "required": [ - "message", - "link", - "trace_id" + "stack_id", + "market_stack", + "market_collection", + "chain" ] }, - "APIError400": { - "allOf": [ - { - "$ref": "#/components/schemas/BasicAPIError" + "QuotesForStacksResult": { + "type": "object", + "description": "Quotes for stacks result", + "properties": { + "result": { + "type": "array", + "description": "List of quotes", + "items": { + "$ref": "#/components/schemas/StackQuoteResult" + } }, - { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error Code", - "enum": [ - "VALIDATION_ERROR" - ], - "example": "VALIDATION_ERROR" - }, - "details": { - "type": "object", - "nullable": true, - "description": "Additional details to help resolve the error" - } - }, - "required": [ - "code", - "details" - ] + "page": { + "$ref": "#/components/schemas/Page" } + }, + "required": [ + "result", + "page" ] }, - "APIError404": { - "allOf": [ - { - "$ref": "#/components/schemas/BasicAPIError" - }, - { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error Code", - "enum": [ - "RESOURCE_NOT_FOUND" - ], - "example": "RESOURCE_NOT_FOUND" - }, - "details": { - "type": "object", - "nullable": true, - "description": "Additional details to help resolve the error" - } - }, - "required": [ - "code", - "details" - ] + "MarketNft": { + "type": "object", + "description": "NFT market data", + "properties": { + "last_trade": { + "$ref": "#/components/schemas/LastTrade" } + }, + "required": [ + "last_trade" ] }, - "APIError500": { - "allOf": [ - { - "$ref": "#/components/schemas/BasicAPIError" + "NFTQuoteResult": { + "type": "object", + "description": "NFT quote result", + "properties": { + "chain": { + "$ref": "#/components/schemas/Chain" }, - { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error Code", - "enum": [ - "INTERNAL_SERVER_ERROR" - ], - "example": "INTERNAL_SERVER_ERROR" - }, - "details": { - "type": "object", - "nullable": true, - "description": "Additional details to help resolve the error" - } - }, - "required": [ - "code", - "details" - ] - } - ] - }, - "APIError401": { - "allOf": [ - { - "$ref": "#/components/schemas/BasicAPIError" + "token_id": { + "description": "Token id of NFT (uint256 as string)", + "type": "string" }, - { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error Code", - "enum": [ - "UNAUTHORISED_REQUEST" - ], - "example": "UNAUTHORISED_REQUEST" - }, - "details": { - "type": "object", - "nullable": true, - "description": "Additional details to help resolve the error" - } - }, - "required": [ - "code", - "details" - ] - } - ] - }, - "APIError403": { - "allOf": [ - { - "$ref": "#/components/schemas/BasicAPIError" + "market_stack": { + "$ref": "#/components/schemas/Market" }, - { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error Code", - "enum": [ - "AUTHENTICATION_ERROR" - ], - "example": "AUTHENTICATION_ERROR" - }, - "details": { - "type": "object", - "nullable": true, - "description": "Additional details to help resolve the error" - } - }, - "required": [ - "code", - "details" - ] - } - ] - }, - "APIError429": { - "allOf": [ - { - "$ref": "#/components/schemas/BasicAPIError" + "market_nft": { + "$ref": "#/components/schemas/MarketNft" }, - { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error Code", - "enum": [ - "TOO_MANY_REQUESTS_ERROR" - ], - "example": "TOO_MANY_REQUESTS_ERROR" - }, - "details": { - "type": "object", - "nullable": true, - "description": "Additional details to help resolve the error" - } - }, - "required": [ - "code", - "details" - ] + "market_collection": { + "$ref": "#/components/schemas/Market" } + }, + "required": [ + "token_id", + "market_stack", + "market_nft", + "market_collection", + "chain" ] }, - "APIError409": { - "allOf": [ - { - "$ref": "#/components/schemas/BasicAPIError" + "QuotesForNFTsResult": { + "type": "object", + "description": "Quotes for NFTs result", + "properties": { + "result": { + "type": "array", + "description": "List of quotes", + "items": { + "$ref": "#/components/schemas/NFTQuoteResult" + } }, - { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error Code", - "enum": [ - "CONFLICT_ERROR" - ], - "example": "CONFLICT_ERROR" - }, - "details": { - "type": "object", - "nullable": true, - "description": "Additional details to help resolve the error", - "additionalProperties": true - } - }, - "required": [ - "code", - "details" - ] + "page": { + "$ref": "#/components/schemas/Page" } + }, + "required": [ + "result", + "page" ] } } diff --git a/packages/internal/generated-clients/src/blockchain-data/.openapi-generator/FILES b/packages/internal/generated-clients/src/blockchain-data/.openapi-generator/FILES index 6293b044a8..1528c5b9fe 100644 --- a/packages/internal/generated-clients/src/blockchain-data/.openapi-generator/FILES +++ b/packages/internal/generated-clients/src/blockchain-data/.openapi-generator/FILES @@ -10,8 +10,10 @@ domain/chains-api.ts domain/collections-api.ts domain/crafting-api.ts domain/metadata-api.ts +domain/metadata-search-api.ts domain/nft-owners-api.ts domain/nfts-api.ts +domain/pricing-api.ts domain/tokens-api.ts git_push.sh index.ts @@ -50,6 +52,9 @@ models/collection.ts models/create-mint-request-request.ts models/create-mint-request-result.ts models/deposit.ts +models/filter-result.ts +models/filter-value.ts +models/filter.ts models/get-activity-result.ts models/get-collection-result.ts models/get-metadata-result.ts @@ -57,16 +62,28 @@ models/get-mint-request-result.ts models/get-nftresult.ts models/get-token-result.ts models/index.ts +models/last-trade.ts models/list-activities-result.ts models/list-chains-result.ts models/list-collection-owners-result.ts models/list-collections-result.ts +models/list-filters-result.ts models/list-metadata-result.ts models/list-mint-requests-result.ts models/list-nftowners-result.ts models/list-nfts-by-owner-result.ts models/list-nfts-result.ts models/list-tokens-result.ts +models/listing.ts +models/market-floor-listing.ts +models/market-nft.ts +models/market-price-details-token.ts +models/market-price-details.ts +models/market-price-erc20-token.ts +models/market-price-fees.ts +models/market-price-native-token.ts +models/market.ts +models/marketplace-contract-type.ts models/metadata-refresh-rate-limit-result.ts models/metadata.ts models/mint-asset.ts @@ -74,15 +91,20 @@ models/mint-request-error-message.ts models/mint-request-status.ts models/mint.ts models/nft.ts +models/nftbundle.ts models/nftcontract-type.ts models/nftmetadata-attribute-value.ts models/nftmetadata-attribute.ts models/nftmetadata-request.ts models/nftowner.ts +models/nftquote-result.ts models/nftsale.ts models/nftwith-balance.ts models/nftwith-owner.ts +models/nftwith-stack.ts models/page.ts +models/quotes-for-nfts-result.ts +models/quotes-for-stacks-result.ts models/refresh-collection-metadata-request.ts models/refresh-collection-metadata-result.ts models/refresh-metadata-by-id.ts @@ -95,9 +117,14 @@ models/refreshable-nftattributes.ts models/sale-fee.ts models/sale-payment-token.ts models/sale-payment.ts +models/search-nfts-result.ts +models/search-stacks-result.ts models/sign-crafting-request-multi-caller.ts models/sign-crafting-request.ts models/sign-crafting-result.ts +models/stack-bundle.ts +models/stack-quote-result.ts +models/stack.ts models/token-contract-type.ts models/token.ts models/transfer.ts diff --git a/packages/internal/generated-clients/src/blockchain-data/api.ts b/packages/internal/generated-clients/src/blockchain-data/api.ts index 3d9ed6dbf3..2469a0a753 100644 --- a/packages/internal/generated-clients/src/blockchain-data/api.ts +++ b/packages/internal/generated-clients/src/blockchain-data/api.ts @@ -19,7 +19,9 @@ export * from './domain/chains-api'; export * from './domain/collections-api'; export * from './domain/crafting-api'; export * from './domain/metadata-api'; +export * from './domain/metadata-search-api'; export * from './domain/nft-owners-api'; export * from './domain/nfts-api'; +export * from './domain/pricing-api'; export * from './domain/tokens-api'; diff --git a/packages/internal/generated-clients/src/blockchain-data/domain/metadata-api.ts b/packages/internal/generated-clients/src/blockchain-data/domain/metadata-api.ts index eb7ca9cf37..1fc8c2eaf1 100644 --- a/packages/internal/generated-clients/src/blockchain-data/domain/metadata-api.ts +++ b/packages/internal/generated-clients/src/blockchain-data/domain/metadata-api.ts @@ -36,6 +36,8 @@ import { RefreshMetadataByIDRequest } from '../models'; // @ts-ignore import { RefreshNFTMetadataByTokenIDRequest } from '../models'; // @ts-ignore +import { StackBundle } from '../models'; +// @ts-ignore export type { APIError400 } from '../models'; // @ts-ignore export type { APIError401 } from '../models'; @@ -57,6 +59,8 @@ export type { MetadataRefreshRateLimitResult } from '../models'; export type { RefreshMetadataByIDRequest } from '../models'; // @ts-ignore export type { RefreshNFTMetadataByTokenIDRequest } from '../models'; +// @ts-ignore +export type { StackBundle } from '../models'; /** * Request parameters for getMetadata operation in MetadataApi. @@ -163,6 +167,27 @@ export interface ListMetadataForChainRequestParams { readonly pageSize?: number } +/** + * Request parameters for listStacks operation in MetadataApi. + * @export + * @interface ListStacksRequest + */ +export interface ListStacksRequestParams { + /** + * The name of chain + * @type {string} + * @memberof ListStacks + */ + readonly chainName: string + + /** + * List of stack_id to filter by + * @type {Array} + * @memberof ListStacks + */ + readonly stackId: Array +} + /** * Request parameters for refreshMetadataByID operation in MetadataApi. * @export diff --git a/packages/internal/generated-clients/src/blockchain-data/domain/metadata-search-api.ts b/packages/internal/generated-clients/src/blockchain-data/domain/metadata-search-api.ts new file mode 100644 index 0000000000..63eb55a33d --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/domain/metadata-search-api.ts @@ -0,0 +1,214 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// @ts-ignore +import { APIError400 } from '../models'; +// @ts-ignore +import { APIError401 } from '../models'; +// @ts-ignore +import { APIError403 } from '../models'; +// @ts-ignore +import { APIError404 } from '../models'; +// @ts-ignore +import { APIError429 } from '../models'; +// @ts-ignore +import { APIError500 } from '../models'; +// @ts-ignore +import { ListFiltersResult } from '../models'; +// @ts-ignore +import { SearchNFTsResult } from '../models'; +// @ts-ignore +import { SearchStacksResult } from '../models'; +// @ts-ignore +export type { APIError400 } from '../models'; +// @ts-ignore +export type { APIError401 } from '../models'; +// @ts-ignore +export type { APIError403 } from '../models'; +// @ts-ignore +export type { APIError404 } from '../models'; +// @ts-ignore +export type { APIError429 } from '../models'; +// @ts-ignore +export type { APIError500 } from '../models'; +// @ts-ignore +export type { ListFiltersResult } from '../models'; +// @ts-ignore +export type { SearchNFTsResult } from '../models'; +// @ts-ignore +export type { SearchStacksResult } from '../models'; + +/** + * Request parameters for listFilters operation in MetadataSearchApi. + * @export + * @interface ListFiltersRequest + */ +export interface ListFiltersRequestParams { + /** + * The name of chain + * @type {string} + * @memberof ListFilters + */ + readonly chainName: string + + /** + * Contract addresses for collection + * @type {string} + * @memberof ListFilters + */ + readonly contractAddress: string +} + +/** + * Request parameters for searchNFTs operation in MetadataSearchApi. + * @export + * @interface SearchNFTsRequest + */ +export interface SearchNFTsRequestParams { + /** + * The name of chain + * @type {string} + * @memberof SearchNFTs + */ + readonly chainName: string + + /** + * List of contract addresses to filter by + * @type {Array} + * @memberof SearchNFTs + */ + readonly contractAddress: Array + + /** + * Account address to filter by + * @type {string} + * @memberof SearchNFTs + */ + readonly accountAddress?: string + + /** + * Filters NFTs that belong to any of these stacks + * @type {Array} + * @memberof SearchNFTs + */ + readonly stackId?: Array + + /** + * Whether the listings should include only the owner created listings + * @type {boolean} + * @memberof SearchNFTs + */ + readonly onlyIncludeOwnerListings?: boolean + + /** + * Number of results to return per page + * @type {number} + * @memberof SearchNFTs + */ + readonly pageSize?: number + + /** + * Encoded page cursor to retrieve previous or next page. Use the value returned in the response. + * @type {string} + * @memberof SearchNFTs + */ + readonly pageCursor?: string +} + +/** + * Request parameters for searchStacks operation in MetadataSearchApi. + * @export + * @interface SearchStacksRequest + */ +export interface SearchStacksRequestParams { + /** + * The name of chain + * @type {string} + * @memberof SearchStacks + */ + readonly chainName: string + + /** + * List of contract addresses to filter by + * @type {Array} + * @memberof SearchStacks + */ + readonly contractAddress: Array + + /** + * Account address to filter by + * @type {string} + * @memberof SearchStacks + */ + readonly accountAddress?: string + + /** + * Whether to the listings should include only the owner created listings + * @type {boolean} + * @memberof SearchStacks + */ + readonly onlyIncludeOwnerListings?: boolean + + /** + * Filters results to include only stacks that have a current active listing. False and \'null\' return all unfiltered stacks. + * @type {boolean} + * @memberof SearchStacks + */ + readonly onlyIfHasActiveListings?: boolean + + /** + * JSON encoded traits to filter by. e.g. encodeURIComponent(JSON.stringify({\"rarity\": {\"values\": [\"common\", \"rare\"], \"condition\": \"eq\"}})) + * @type {string} + * @memberof SearchStacks + */ + readonly traits?: string + + /** + * Keyword to search NFT name and description. Alphanumeric characters only. + * @type {string} + * @memberof SearchStacks + */ + readonly keyword?: string + + /** + * Sort results in a specific order + * @type {'cheapest_first'} + * @memberof SearchStacks + */ + readonly sortBy?: SearchStacksSortByEnum + + /** + * Number of results to return per page + * @type {number} + * @memberof SearchStacks + */ + readonly pageSize?: number + + /** + * Encoded page cursor to retrieve previous or next page. Use the value returned in the response. + * @type {string} + * @memberof SearchStacks + */ + readonly pageCursor?: string +} + + +/** + * @export + * @enum {string} + */ +export enum SearchStacksSortByEnum { + CheapestFirst = 'cheapest_first' +} diff --git a/packages/internal/generated-clients/src/blockchain-data/domain/pricing-api.ts b/packages/internal/generated-clients/src/blockchain-data/domain/pricing-api.ts new file mode 100644 index 0000000000..ade8dd50d6 --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/domain/pricing-api.ts @@ -0,0 +1,119 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// @ts-ignore +import { APIError400 } from '../models'; +// @ts-ignore +import { APIError401 } from '../models'; +// @ts-ignore +import { APIError403 } from '../models'; +// @ts-ignore +import { APIError404 } from '../models'; +// @ts-ignore +import { APIError429 } from '../models'; +// @ts-ignore +import { APIError500 } from '../models'; +// @ts-ignore +import { QuotesForNFTsResult } from '../models'; +// @ts-ignore +import { QuotesForStacksResult } from '../models'; +// @ts-ignore +export type { APIError400 } from '../models'; +// @ts-ignore +export type { APIError401 } from '../models'; +// @ts-ignore +export type { APIError403 } from '../models'; +// @ts-ignore +export type { APIError404 } from '../models'; +// @ts-ignore +export type { APIError429 } from '../models'; +// @ts-ignore +export type { APIError500 } from '../models'; +// @ts-ignore +export type { QuotesForNFTsResult } from '../models'; +// @ts-ignore +export type { QuotesForStacksResult } from '../models'; + +/** + * Request parameters for quotesForNFTs operation in PricingApi. + * @export + * @interface QuotesForNFTsRequest + */ +export interface QuotesForNFTsRequestParams { + /** + * The name of chain + * @type {string} + * @memberof QuotesForNFTs + */ + readonly chainName: string + + /** + * Contract address for collection that these token ids are on + * @type {string} + * @memberof QuotesForNFTs + */ + readonly contractAddress: string + + /** + * List of token ids to get pricing data for + * @type {Array} + * @memberof QuotesForNFTs + */ + readonly tokenId: Array + + /** + * Encoded page cursor to retrieve previous or next page. Use the value returned in the response. + * @type {string} + * @memberof QuotesForNFTs + */ + readonly pageCursor?: string +} + +/** + * Request parameters for quotesForStacks operation in PricingApi. + * @export + * @interface QuotesForStacksRequest + */ +export interface QuotesForStacksRequestParams { + /** + * The name of chain + * @type {string} + * @memberof QuotesForStacks + */ + readonly chainName: string + + /** + * Contract address for collection that these stacks are on + * @type {string} + * @memberof QuotesForStacks + */ + readonly contractAddress: string + + /** + * List of stack ids to get pricing data for + * @type {Array} + * @memberof QuotesForStacks + */ + readonly stackId: Array + + /** + * Encoded page cursor to retrieve previous or next page. Use the value returned in the response. + * @type {string} + * @memberof QuotesForStacks + */ + readonly pageCursor?: string +} + + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/filter-result.ts b/packages/internal/generated-clients/src/blockchain-data/models/filter-result.ts new file mode 100644 index 0000000000..c4df126894 --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/filter-result.ts @@ -0,0 +1,48 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { Chain } from './chain'; +// May contain unused imports in some cases +// @ts-ignore +import { Filter } from './filter'; + +/** + * + * @export + * @interface FilterResult + */ +export interface FilterResult { + /** + * + * @type {Chain} + * @memberof FilterResult + */ + 'chain': Chain; + /** + * ETH Address of collection that the asset belongs to + * @type {string} + * @memberof FilterResult + */ + 'contract_address': string; + /** + * List of all filters and the most common values + * @type {Array} + * @memberof FilterResult + */ + 'filters': Array; +} + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/filter-value.ts b/packages/internal/generated-clients/src/blockchain-data/models/filter-value.ts new file mode 100644 index 0000000000..8a653db0d9 --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/filter-value.ts @@ -0,0 +1,36 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * + * @export + * @interface FilterValue + */ +export interface FilterValue { + /** + * + * @type {string} + * @memberof FilterValue + */ + 'value': string; + /** + * Number of NFTs that have this trait. Uint256 as string + * @type {string} + * @memberof FilterValue + */ + 'nft_count': string; +} + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/filter.ts b/packages/internal/generated-clients/src/blockchain-data/models/filter.ts new file mode 100644 index 0000000000..57785cf669 --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/filter.ts @@ -0,0 +1,45 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { FilterValue } from './filter-value'; + +/** + * + * @export + * @interface Filter + */ +export interface Filter { + /** + * Name of trait + * @type {string} + * @memberof Filter + */ + 'name': string; + /** + * List of 100 most common values for this trait sorted by number of associated NFTs + * @type {Array} + * @memberof Filter + */ + 'values': Array; + /** + * Indicated how many more distinct values exist + * @type {number} + * @memberof Filter + */ + 'omitted_values_count': number; +} + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/index.ts b/packages/internal/generated-clients/src/blockchain-data/models/index.ts index fb2e5cbb01..52ba07182e 100644 --- a/packages/internal/generated-clients/src/blockchain-data/models/index.ts +++ b/packages/internal/generated-clients/src/blockchain-data/models/index.ts @@ -33,22 +33,37 @@ export * from './collection-metadata'; export * from './create-mint-request-request'; export * from './create-mint-request-result'; export * from './deposit'; +export * from './filter'; +export * from './filter-result'; +export * from './filter-value'; export * from './get-activity-result'; export * from './get-collection-result'; export * from './get-metadata-result'; export * from './get-mint-request-result'; export * from './get-nftresult'; export * from './get-token-result'; +export * from './last-trade'; export * from './list-activities-result'; export * from './list-chains-result'; export * from './list-collection-owners-result'; export * from './list-collections-result'; +export * from './list-filters-result'; export * from './list-metadata-result'; export * from './list-mint-requests-result'; export * from './list-nftowners-result'; export * from './list-nfts-by-owner-result'; export * from './list-nfts-result'; export * from './list-tokens-result'; +export * from './listing'; +export * from './market'; +export * from './market-floor-listing'; +export * from './market-nft'; +export * from './market-price-details'; +export * from './market-price-details-token'; +export * from './market-price-erc20-token'; +export * from './market-price-fees'; +export * from './market-price-native-token'; +export * from './marketplace-contract-type'; export * from './metadata'; export * from './metadata-refresh-rate-limit-result'; export * from './mint'; @@ -56,15 +71,20 @@ export * from './mint-asset'; export * from './mint-request-error-message'; export * from './mint-request-status'; export * from './nft'; +export * from './nftbundle'; export * from './nftcontract-type'; export * from './nftmetadata-attribute'; export * from './nftmetadata-attribute-value'; export * from './nftmetadata-request'; export * from './nftowner'; +export * from './nftquote-result'; export * from './nftsale'; export * from './nftwith-balance'; export * from './nftwith-owner'; +export * from './nftwith-stack'; export * from './page'; +export * from './quotes-for-nfts-result'; +export * from './quotes-for-stacks-result'; export * from './refresh-collection-metadata-request'; export * from './refresh-collection-metadata-result'; export * from './refresh-metadata-by-id'; @@ -77,9 +97,14 @@ export * from './refreshable-nftattributes'; export * from './sale-fee'; export * from './sale-payment'; export * from './sale-payment-token'; +export * from './search-nfts-result'; +export * from './search-stacks-result'; export * from './sign-crafting-request'; export * from './sign-crafting-request-multi-caller'; export * from './sign-crafting-result'; +export * from './stack'; +export * from './stack-bundle'; +export * from './stack-quote-result'; export * from './token'; export * from './token-contract-type'; export * from './transfer'; diff --git a/packages/internal/generated-clients/src/blockchain-data/models/last-trade.ts b/packages/internal/generated-clients/src/blockchain-data/models/last-trade.ts new file mode 100644 index 0000000000..dc3925a2da --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/last-trade.ts @@ -0,0 +1,63 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { MarketPriceDetails } from './market-price-details'; + +/** + * Most recent trade + * @export + * @interface LastTrade + */ +export interface LastTrade { + /** + * Trade ID + * @type {string} + * @memberof LastTrade + */ + 'trade_id': string; + /** + * ETH Address of collection that the asset belongs to + * @type {string} + * @memberof LastTrade + */ + 'contract_address': string; + /** + * Token id of the traded asset (uint256 as string) + * @type {string} + * @memberof LastTrade + */ + 'token_id': string; + /** + * Price details, list of payments involved in this trade + * @type {Array} + * @memberof LastTrade + */ + 'price_details': Array; + /** + * Amount of the trade (uint256 as string) + * @type {string} + * @memberof LastTrade + */ + 'amount': string; + /** + * When the trade was created + * @type {string} + * @memberof LastTrade + */ + 'created_at': string; +} + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/list-filters-result.ts b/packages/internal/generated-clients/src/blockchain-data/models/list-filters-result.ts new file mode 100644 index 0000000000..440e561e7e --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/list-filters-result.ts @@ -0,0 +1,42 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { FilterResult } from './filter-result'; +// May contain unused imports in some cases +// @ts-ignore +import { Page } from './page'; + +/** + * List filters result + * @export + * @interface ListFiltersResult + */ +export interface ListFiltersResult { + /** + * + * @type {FilterResult} + * @memberof ListFiltersResult + */ + 'result': FilterResult; + /** + * + * @type {Page} + * @memberof ListFiltersResult + */ + 'page': Page; +} + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/listing.ts b/packages/internal/generated-clients/src/blockchain-data/models/listing.ts new file mode 100644 index 0000000000..af2e894acd --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/listing.ts @@ -0,0 +1,63 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { MarketPriceDetails } from './market-price-details'; + +/** + * + * @export + * @interface Listing + */ +export interface Listing { + /** + * Global Order identifier + * @type {string} + * @memberof Listing + */ + 'listing_id': string; + /** + * + * @type {MarketPriceDetails} + * @memberof Listing + */ + 'price_details': MarketPriceDetails; + /** + * Token ID + * @type {string} + * @memberof Listing + */ + 'token_id': string; + /** + * ETH Address of collection that the asset belongs to + * @type {string} + * @memberof Listing + */ + 'contract_address': string; + /** + * ETH Address of listing creator + * @type {string} + * @memberof Listing + */ + 'creator': string; + /** + * Amount of token included in the listing + * @type {string} + * @memberof Listing + */ + 'amount': string; +} + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/market-floor-listing.ts b/packages/internal/generated-clients/src/blockchain-data/models/market-floor-listing.ts new file mode 100644 index 0000000000..ea4388ba88 --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/market-floor-listing.ts @@ -0,0 +1,30 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { Listing } from './listing'; +// May contain unused imports in some cases +// @ts-ignore +import { MarketPriceDetails } from './market-price-details'; + +/** + * @type MarketFloorListing + * Cheapest active listing + * @export + */ +export type MarketFloorListing = Listing; + + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/market-nft.ts b/packages/internal/generated-clients/src/blockchain-data/models/market-nft.ts new file mode 100644 index 0000000000..b9e6693617 --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/market-nft.ts @@ -0,0 +1,33 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { LastTrade } from './last-trade'; + +/** + * NFT market data + * @export + * @interface MarketNft + */ +export interface MarketNft { + /** + * + * @type {LastTrade} + * @memberof MarketNft + */ + 'last_trade': LastTrade | null; +} + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/market-price-details-token.ts b/packages/internal/generated-clients/src/blockchain-data/models/market-price-details-token.ts new file mode 100644 index 0000000000..39f2741679 --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/market-price-details-token.ts @@ -0,0 +1,30 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { MarketPriceERC20Token } from './market-price-erc20-token'; +// May contain unused imports in some cases +// @ts-ignore +import { MarketPriceNativeToken } from './market-price-native-token'; + +/** + * @type MarketPriceDetailsToken + * Token details + * @export + */ +export type MarketPriceDetailsToken = { type: 'ERC20' } & MarketPriceERC20Token | { type: 'NATIVE' } & MarketPriceNativeToken; + + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/market-price-details.ts b/packages/internal/generated-clients/src/blockchain-data/models/market-price-details.ts new file mode 100644 index 0000000000..9ef8697c09 --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/market-price-details.ts @@ -0,0 +1,60 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { MarketPriceDetailsToken } from './market-price-details-token'; +// May contain unused imports in some cases +// @ts-ignore +import { MarketPriceFees } from './market-price-fees'; + +/** + * Market Price details + * @export + * @interface MarketPriceDetails + */ +export interface MarketPriceDetails { + /** + * + * @type {MarketPriceDetailsToken} + * @memberof MarketPriceDetails + */ + 'token': MarketPriceDetailsToken; + /** + * The token amount value. This value is provided in the smallest unit of the token (e.g. wei for ETH) + * @type {string} + * @memberof MarketPriceDetails + */ + 'amount': string; + /** + * The token amount value. This value is provided in the smallest unit of the token (e.g. wei for ETH) + * @type {string} + * @memberof MarketPriceDetails + */ + 'fee_inclusive_amount': string; + /** + * + * @type {Array} + * @memberof MarketPriceDetails + */ + 'fees': Array; + /** + * A mapping of converted prices for major currencies such as ETH, USD. All converted prices are fee-inclusive. + * @type {{ [key: string]: string; }} + * @memberof MarketPriceDetails + */ + 'converted_prices': { [key: string]: string; } | null; +} + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/market-price-erc20-token.ts b/packages/internal/generated-clients/src/blockchain-data/models/market-price-erc20-token.ts new file mode 100644 index 0000000000..da39ff9bf0 --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/market-price-erc20-token.ts @@ -0,0 +1,57 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * + * @export + * @interface MarketPriceERC20Token + */ +export interface MarketPriceERC20Token { + /** + * Token type user is offering, which in this case is ERC20 + * @type {string} + * @memberof MarketPriceERC20Token + */ + 'type': MarketPriceERC20TokenTypeEnum; + /** + * Address of ERC20 token + * @type {string} + * @memberof MarketPriceERC20Token + */ + 'contract_address': string; + /** + * The symbol of token + * @type {string} + * @memberof MarketPriceERC20Token + */ + 'symbol': string | null; + /** + * The decimals of token + * @type {number} + * @memberof MarketPriceERC20Token + */ + 'decimals': number | null; +} + +/** + * @export + * @enum {string} + */ +export enum MarketPriceERC20TokenTypeEnum { + Erc20 = 'ERC20' +} + + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/market-price-fees.ts b/packages/internal/generated-clients/src/blockchain-data/models/market-price-fees.ts new file mode 100644 index 0000000000..474cd8160d --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/market-price-fees.ts @@ -0,0 +1,54 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * + * @export + * @interface MarketPriceFees + */ +export interface MarketPriceFees { + /** + * Fee in the payment currency + * @type {string} + * @memberof MarketPriceFees + */ + 'amount': string; + /** + * Fee type + * @type {string} + * @memberof MarketPriceFees + */ + 'type': MarketPriceFeesTypeEnum; + /** + * Wallet address of fee recipient + * @type {string} + * @memberof MarketPriceFees + */ + 'recipient_address': string; +} + +/** + * @export + * @enum {string} + */ +export enum MarketPriceFeesTypeEnum { + Royalty = 'ROYALTY', + MakerEcosystem = 'MAKER_ECOSYSTEM', + TakerEcosystem = 'TAKER_ECOSYSTEM', + Protocol = 'PROTOCOL' +} + + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/market-price-native-token.ts b/packages/internal/generated-clients/src/blockchain-data/models/market-price-native-token.ts new file mode 100644 index 0000000000..908e5ff210 --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/market-price-native-token.ts @@ -0,0 +1,45 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * + * @export + * @interface MarketPriceNativeToken + */ +export interface MarketPriceNativeToken { + /** + * Token type user is offering, which in this case is the native IMX token + * @type {string} + * @memberof MarketPriceNativeToken + */ + 'type': MarketPriceNativeTokenTypeEnum; + /** + * The symbol of token + * @type {string} + * @memberof MarketPriceNativeToken + */ + 'symbol': string | null; +} + +/** + * @export + * @enum {string} + */ +export enum MarketPriceNativeTokenTypeEnum { + Native = 'NATIVE' +} + + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/market.ts b/packages/internal/generated-clients/src/blockchain-data/models/market.ts new file mode 100644 index 0000000000..97e3d1baef --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/market.ts @@ -0,0 +1,42 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { LastTrade } from './last-trade'; +// May contain unused imports in some cases +// @ts-ignore +import { MarketFloorListing } from './market-floor-listing'; + +/** + * Market data + * @export + * @interface Market + */ +export interface Market { + /** + * + * @type {MarketFloorListing} + * @memberof Market + */ + 'floor_listing': MarketFloorListing | null; + /** + * + * @type {LastTrade} + * @memberof Market + */ + 'last_trade': LastTrade | null; +} + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/marketplace-contract-type.ts b/packages/internal/generated-clients/src/blockchain-data/models/marketplace-contract-type.ts new file mode 100644 index 0000000000..4913d1c3a5 --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/marketplace-contract-type.ts @@ -0,0 +1,29 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * The contract type for a collection + * @export + * @enum {string} + */ + +export enum MarketplaceContractType { + Erc721 = 'ERC721', + Erc1155 = 'ERC1155' +} + + + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/nftbundle.ts b/packages/internal/generated-clients/src/blockchain-data/models/nftbundle.ts new file mode 100644 index 0000000000..a2108d4ed2 --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/nftbundle.ts @@ -0,0 +1,51 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { Listing } from './listing'; +// May contain unused imports in some cases +// @ts-ignore +import { Market } from './market'; +// May contain unused imports in some cases +// @ts-ignore +import { NFTWithStack } from './nftwith-stack'; + +/** + * NFT bundle includes NFT with stack, markets and listings + * @export + * @interface NFTBundle + */ +export interface NFTBundle { + /** + * + * @type {NFTWithStack} + * @memberof NFTBundle + */ + 'nft_with_stack': NFTWithStack; + /** + * + * @type {Market} + * @memberof NFTBundle + */ + 'market': Market | null; + /** + * List of open listings for the stack. + * @type {Array} + * @memberof NFTBundle + */ + 'listings': Array; +} + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/nftquote-result.ts b/packages/internal/generated-clients/src/blockchain-data/models/nftquote-result.ts new file mode 100644 index 0000000000..57af1d0a7c --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/nftquote-result.ts @@ -0,0 +1,63 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { Chain } from './chain'; +// May contain unused imports in some cases +// @ts-ignore +import { Market } from './market'; +// May contain unused imports in some cases +// @ts-ignore +import { MarketNft } from './market-nft'; + +/** + * NFT quote result + * @export + * @interface NFTQuoteResult + */ +export interface NFTQuoteResult { + /** + * + * @type {Chain} + * @memberof NFTQuoteResult + */ + 'chain': Chain; + /** + * Token id of NFT (uint256 as string) + * @type {string} + * @memberof NFTQuoteResult + */ + 'token_id': string; + /** + * + * @type {Market} + * @memberof NFTQuoteResult + */ + 'market_stack': Market; + /** + * + * @type {MarketNft} + * @memberof NFTQuoteResult + */ + 'market_nft': MarketNft; + /** + * + * @type {Market} + * @memberof NFTQuoteResult + */ + 'market_collection': Market; +} + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/nftwith-stack.ts b/packages/internal/generated-clients/src/blockchain-data/models/nftwith-stack.ts new file mode 100644 index 0000000000..6117ddc06d --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/nftwith-stack.ts @@ -0,0 +1,125 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { Chain } from './chain'; +// May contain unused imports in some cases +// @ts-ignore +import { MarketplaceContractType } from './marketplace-contract-type'; +// May contain unused imports in some cases +// @ts-ignore +import { NFTMetadataAttribute } from './nftmetadata-attribute'; + +/** + * Stack + * @export + * @interface NFTWithStack + */ +export interface NFTWithStack { + /** + * Token id of NFT (uint256 as string) + * @type {string} + * @memberof NFTWithStack + */ + 'token_id': string; + /** + * Stack ID + * @type {string} + * @memberof NFTWithStack + */ + 'stack_id': string; + /** + * + * @type {Chain} + * @memberof NFTWithStack + */ + 'chain': Chain; + /** + * Contract address + * @type {string} + * @memberof NFTWithStack + */ + 'contract_address': string; + /** + * + * @type {MarketplaceContractType} + * @memberof NFTWithStack + */ + 'contract_type': MarketplaceContractType; + /** + * When the metadata was created + * @type {string} + * @memberof NFTWithStack + */ + 'created_at': string; + /** + * When the metadata was last updated + * @type {string} + * @memberof NFTWithStack + */ + 'updated_at': string; + /** + * The name of the NFT + * @type {string} + * @memberof NFTWithStack + */ + 'name': string | null; + /** + * The description of the NFT + * @type {string} + * @memberof NFTWithStack + */ + 'description': string | null; + /** + * The image url of the NFT + * @type {string} + * @memberof NFTWithStack + */ + 'image': string | null; + /** + * The external website link of NFT + * @type {string} + * @memberof NFTWithStack + */ + 'external_url': string | null; + /** + * The animation url of the NFT + * @type {string} + * @memberof NFTWithStack + */ + 'animation_url': string | null; + /** + * The youtube URL of NFT + * @type {string} + * @memberof NFTWithStack + */ + 'youtube_url': string | null; + /** + * List of Metadata attributes + * @type {Array} + * @memberof NFTWithStack + */ + 'attributes': Array | null; + /** + * Balance of NFT + * @type {number} + * @memberof NFTWithStack + */ + 'balance': number | null; +} + + + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/quotes-for-nfts-result.ts b/packages/internal/generated-clients/src/blockchain-data/models/quotes-for-nfts-result.ts new file mode 100644 index 0000000000..d7cd73faac --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/quotes-for-nfts-result.ts @@ -0,0 +1,42 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { NFTQuoteResult } from './nftquote-result'; +// May contain unused imports in some cases +// @ts-ignore +import { Page } from './page'; + +/** + * Quotes for NFTs result + * @export + * @interface QuotesForNFTsResult + */ +export interface QuotesForNFTsResult { + /** + * List of quotes + * @type {Array} + * @memberof QuotesForNFTsResult + */ + 'result': Array; + /** + * + * @type {Page} + * @memberof QuotesForNFTsResult + */ + 'page': Page; +} + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/quotes-for-stacks-result.ts b/packages/internal/generated-clients/src/blockchain-data/models/quotes-for-stacks-result.ts new file mode 100644 index 0000000000..e27fd9396a --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/quotes-for-stacks-result.ts @@ -0,0 +1,42 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { Page } from './page'; +// May contain unused imports in some cases +// @ts-ignore +import { StackQuoteResult } from './stack-quote-result'; + +/** + * Quotes for stacks result + * @export + * @interface QuotesForStacksResult + */ +export interface QuotesForStacksResult { + /** + * List of quotes + * @type {Array} + * @memberof QuotesForStacksResult + */ + 'result': Array; + /** + * + * @type {Page} + * @memberof QuotesForStacksResult + */ + 'page': Page; +} + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/search-nfts-result.ts b/packages/internal/generated-clients/src/blockchain-data/models/search-nfts-result.ts new file mode 100644 index 0000000000..f54e967604 --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/search-nfts-result.ts @@ -0,0 +1,42 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { NFTBundle } from './nftbundle'; +// May contain unused imports in some cases +// @ts-ignore +import { Page } from './page'; + +/** + * Search NFTs result + * @export + * @interface SearchNFTsResult + */ +export interface SearchNFTsResult { + /** + * List of nft bundles + * @type {Array} + * @memberof SearchNFTsResult + */ + 'result': Array; + /** + * + * @type {Page} + * @memberof SearchNFTsResult + */ + 'page': Page; +} + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/search-stacks-result.ts b/packages/internal/generated-clients/src/blockchain-data/models/search-stacks-result.ts new file mode 100644 index 0000000000..b1de140585 --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/search-stacks-result.ts @@ -0,0 +1,42 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { Page } from './page'; +// May contain unused imports in some cases +// @ts-ignore +import { StackBundle } from './stack-bundle'; + +/** + * Search stacks result + * @export + * @interface SearchStacksResult + */ +export interface SearchStacksResult { + /** + * List of stack bundles + * @type {Array} + * @memberof SearchStacksResult + */ + 'result': Array; + /** + * + * @type {Page} + * @memberof SearchStacksResult + */ + 'page': Page; +} + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/stack-bundle.ts b/packages/internal/generated-clients/src/blockchain-data/models/stack-bundle.ts new file mode 100644 index 0000000000..63c881d69d --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/stack-bundle.ts @@ -0,0 +1,57 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { Listing } from './listing'; +// May contain unused imports in some cases +// @ts-ignore +import { Market } from './market'; +// May contain unused imports in some cases +// @ts-ignore +import { Stack } from './stack'; + +/** + * Stack bundle includes stacks, markets and listings + * @export + * @interface StackBundle + */ +export interface StackBundle { + /** + * + * @type {Stack} + * @memberof StackBundle + */ + 'stack': Stack; + /** + * Total count of NFTs in the stack matching the filter params + * @type {number} + * @memberof StackBundle + */ + 'stack_count': number; + /** + * + * @type {Market} + * @memberof StackBundle + */ + 'market': Market | null; + /** + * List of open listings for the stack. + * @type {Array} + * @memberof StackBundle + */ + 'listings': Array; +} + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/stack-quote-result.ts b/packages/internal/generated-clients/src/blockchain-data/models/stack-quote-result.ts new file mode 100644 index 0000000000..4b7536f34a --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/stack-quote-result.ts @@ -0,0 +1,54 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { Chain } from './chain'; +// May contain unused imports in some cases +// @ts-ignore +import { Market } from './market'; + +/** + * Stack quote result + * @export + * @interface StackQuoteResult + */ +export interface StackQuoteResult { + /** + * + * @type {Chain} + * @memberof StackQuoteResult + */ + 'chain': Chain; + /** + * + * @type {string} + * @memberof StackQuoteResult + */ + 'stack_id': string; + /** + * + * @type {Market} + * @memberof StackQuoteResult + */ + 'market_stack': Market; + /** + * + * @type {Market} + * @memberof StackQuoteResult + */ + 'market_collection': Market; +} + diff --git a/packages/internal/generated-clients/src/blockchain-data/models/stack.ts b/packages/internal/generated-clients/src/blockchain-data/models/stack.ts new file mode 100644 index 0000000000..afbce0cc3b --- /dev/null +++ b/packages/internal/generated-clients/src/blockchain-data/models/stack.ts @@ -0,0 +1,113 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { Chain } from './chain'; +// May contain unused imports in some cases +// @ts-ignore +import { MarketplaceContractType } from './marketplace-contract-type'; +// May contain unused imports in some cases +// @ts-ignore +import { NFTMetadataAttribute } from './nftmetadata-attribute'; + +/** + * Stack + * @export + * @interface Stack + */ +export interface Stack { + /** + * Stack ID + * @type {string} + * @memberof Stack + */ + 'stack_id': string; + /** + * + * @type {Chain} + * @memberof Stack + */ + 'chain': Chain; + /** + * Contract address + * @type {string} + * @memberof Stack + */ + 'contract_address': string; + /** + * + * @type {MarketplaceContractType} + * @memberof Stack + */ + 'contract_type': MarketplaceContractType; + /** + * When the metadata was created + * @type {string} + * @memberof Stack + */ + 'created_at': string; + /** + * When the metadata was last updated + * @type {string} + * @memberof Stack + */ + 'updated_at': string; + /** + * The name of the NFT + * @type {string} + * @memberof Stack + */ + 'name': string | null; + /** + * The description of the NFT + * @type {string} + * @memberof Stack + */ + 'description': string | null; + /** + * The image url of the NFT + * @type {string} + * @memberof Stack + */ + 'image': string | null; + /** + * The external website link of NFT + * @type {string} + * @memberof Stack + */ + 'external_url': string | null; + /** + * The animation url of the NFT + * @type {string} + * @memberof Stack + */ + 'animation_url': string | null; + /** + * The youtube URL of NFT + * @type {string} + * @memberof Stack + */ + 'youtube_url': string | null; + /** + * List of Metadata attributes + * @type {Array} + * @memberof Stack + */ + 'attributes': Array | null; +} + + + diff --git a/packages/internal/generated-clients/src/mr-openapi.json b/packages/internal/generated-clients/src/mr-openapi.json index 24fa2a50b3..cfdaea69d5 100644 --- a/packages/internal/generated-clients/src/mr-openapi.json +++ b/packages/internal/generated-clients/src/mr-openapi.json @@ -4861,1385 +4861,1508 @@ } } } - } - }, - "components": { - "securitySchemes": { - "BearerAuth": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT" - }, - "ImmutableApiKey": { - "x-go-name": "ImmutableApiKey", - "type": "apiKey", - "in": "header", - "name": "x-immutable-api-key" - } - }, - "parameters": { - "ChainName": { - "name": "chain_name", - "description": "The name of chain", - "in": "path", - "required": true, - "schema": { - "$ref": "#/components/schemas/ChainName" - }, - "examples": { - "testnet": { - "value": "imtbl-zkevm-testnet", - "summary": "Immutable zkEVM Public Testnet" - } - } - }, - "ContractAddress": { - "name": "contract_address", - "in": "path", - "required": true, - "description": "Contract address", - "schema": { - "$ref": "#/components/schemas/Address" - } - }, - "TransactionId": { - "name": "id", - "in": "path", - "description": "Transaction identifier: payloadHash on StarkEx or EVM ID", - "required": true, - "schema": { - "type": "string", - "description": "Hash of the transaction" - } - } }, - "responses": { - "NotFound": { - "description": "The specified resource was not found (404)", - "content": { - "application/json": { + "/v1/chains/{chain_name}/search/filters/{contract_address}": { + "get": { + "tags": [ + "metadata-search" + ], + "operationId": "ListFilters", + "summary": "Get list of metadata attribute filters", + "description": "Get list of metadata filters", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", "schema": { - "$ref": "#/components/schemas/APIError404" + "$ref": "#/components/schemas/ChainName" + }, + "in": "path", + "required": true, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } } - } - } - }, - "BadRequest": { - "description": "Bad Request (400)", - "content": { - "application/json": { + }, + { + "name": "contract_address", + "in": "path", + "required": true, + "description": "Contract addresses for collection", "schema": { - "$ref": "#/components/schemas/APIError400" + "type": "string", + "pattern": "^0x[a-fA-F0-9]{40}$", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" } } - } - }, - "UnauthorisedRequest": { - "description": "Unauthorised Request (401)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError401" + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListFiltersResult" + } + } } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "403": { + "$ref": "#/components/responses/ForbiddenRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "429": { + "$ref": "#/components/responses/TooManyRequests" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" } } - }, - "ForbiddenRequest": { - "description": "Forbidden Request (403)", - "content": { - "application/json": { + } + }, + "/v1/chains/{chain_name}/search/nfts": { + "get": { + "tags": [ + "metadata-search" + ], + "operationId": "SearchNFTs", + "summary": "Search NFTs", + "description": "Search NFTs", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", "schema": { - "$ref": "#/components/schemas/APIError403" + "$ref": "#/components/schemas/ChainName" + }, + "in": "path", + "required": true, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } } - } - } - }, - "Conflict": { - "description": "Conflict (409)", - "content": { - "application/json": { + }, + { + "name": "contract_address", + "in": "query", + "required": true, + "description": "List of contract addresses to filter by", "schema": { - "$ref": "#/components/schemas/APIError409" + "type": "array", + "items": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]{40}$", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + "maxItems": 20, + "minItems": 1 } - } - } - }, - "TooManyRequests": { - "description": "Too Many Requests (429)", - "content": { - "application/json": { + }, + { + "name": "account_address", + "in": "query", + "required": false, + "description": "Account address to filter by", "schema": { - "$ref": "#/components/schemas/APIError429" + "type": "string", + "pattern": "^0x[a-fA-F0-9]{40}$", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" } - } - }, - "headers": { - "Retry-After": { - "$ref": "#/components/headers/RetryAfter" - } - } - }, - "TooManyMetadataRefreshes": { - "description": "Too Many Metadata refreshes (429)", - "content": { - "application/json": { + }, + { + "name": "stack_id", + "in": "query", + "required": false, + "description": "Filters NFTs that belong to any of these stacks", "schema": { - "$ref": "#/components/schemas/APIError429" + "type": "array", + "items": { + "type": "string", + "format": "uuid", + "example": "7053e765-c119-4efb-b5cf-405ccccaf6c4" + }, + "minItems": 1, + "maxItems": 20 } - } - }, - "headers": { - "imx-refreshes-limit": { - "$ref": "#/components/headers/MetadataRefreshLimit" }, - "imx-refresh-limit-reset": { - "$ref": "#/components/headers/MetadataRefreshLimitReset" + { + "name": "only_include_owner_listings", + "in": "query", + "required": false, + "description": "Whether the listings should include only the owner created listings", + "schema": { + "type": "boolean", + "example": true + } }, - "imx-remaining-refreshes": { - "$ref": "#/components/headers/MetadataRefreshLimitRemaining" + { + "name": "page_size", + "in": "query", + "required": false, + "description": "Number of results to return per page", + "schema": { + "$ref": "#/components/schemas/PageSize" + } }, - "Retry-After": { - "$ref": "#/components/headers/MetadataRefreshRetryAfter" - } - } - }, - "TooManyMintRequests": { - "description": "Too Many mint requests (429)", - "content": { - "application/json": { + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, "schema": { - "$ref": "#/components/schemas/APIError429" + "$ref": "#/components/schemas/PageCursor" } } - }, - "headers": { - "imx-mint-requests-limit": { - "$ref": "#/components/headers/MintRequestsLimit" + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchNFTsResult" + } + } + } }, - "imx-mint-requests-limit-reset": { - "$ref": "#/components/headers/MintRequestsLimitReset" + "400": { + "$ref": "#/components/responses/BadRequest" }, - "imx-remaining-mint-requests": { - "$ref": "#/components/headers/MintRequestsLimitRemaining" + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" }, - "imx-mint-requests-retry-after": { - "$ref": "#/components/headers/MintRequestsRetryAfter" + "403": { + "$ref": "#/components/responses/ForbiddenRequest" }, - "Retry-After": { - "$ref": "#/components/headers/MintRequestsRetryAfter" + "404": { + "$ref": "#/components/responses/NotFound" + }, + "429": { + "$ref": "#/components/responses/TooManyRequests" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" } } - }, - "InternalServerError": { - "description": "Internal Server Error (500)", - "content": { - "application/json": { + } + }, + "/v1/chains/{chain_name}/search/stacks": { + "get": { + "tags": [ + "metadata-search" + ], + "operationId": "SearchStacks", + "summary": "Search NFT stacks", + "description": "Search NFT stacks", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", "schema": { - "$ref": "#/components/schemas/APIError500" + "$ref": "#/components/schemas/ChainName" + }, + "in": "path", + "required": true, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } } - } - } - }, - "NotImplementedError": { - "description": "Not Implemented Error (501)", - "content": { - "application/json": { + }, + { + "name": "contract_address", + "in": "query", + "required": true, + "description": "List of contract addresses to filter by", "schema": { - "$ref": "#/components/schemas/APIError501" + "type": "array", + "items": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]{40}$", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + "maxItems": 20, + "minItems": 1 } - } - } - } - }, - "headers": { - "MetadataRefreshLimit": { - "description": "The refresh request limit available to the project for each one-hour window.", - "schema": { - "type": "string" - } - }, - "MetadataRefreshLimitReset": { - "description": "The expiry date of the current one-hour window.", - "schema": { - "type": "string" - } - }, - "MetadataRefreshLimitRemaining": { - "description": "The number of refresh requests remaining in the current window.", - "schema": { - "type": "string" - } - }, - "MetadataRefreshRetryAfter": { - "description": "The number of seconds until the next refresh request can be made.", - "schema": { - "type": "string" - } - }, - "RetryAfter": { - "description": "The number of seconds until the next request can be made.", - "schema": { - "type": "string" - } - }, - "MintRequestsLimit": { - "description": "The mint requests limit available to the project for each time window.", - "schema": { - "type": "string" - } - }, - "MintRequestsLimitReset": { - "description": "The expiry date of the current time window.", - "schema": { - "type": "string" - } - }, - "MintRequestsLimitRemaining": { - "description": "The number of mint requests remaining in the current window.", - "schema": { - "type": "string" - } - }, - "MintRequestsRetryAfter": { - "description": "The number of seconds until the next refresh request can be made.", - "schema": { - "type": "string" - } - } - }, - "schemas": { - "PageSize": { - "type": "integer", - "format": "int32", - "description": "Maximum number of items to return", - "minimum": 1, - "default": 100, - "maximum": 200, - "example": 10 - }, - "PageCursor": { - "type": "string", - "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", - "example": "ewogICJ0eXBlIjogInByZXYiLAogICJpdGVtIjogewogICAgImlkIjogNjI3NTEzMCwKICAgICJjcmVhdGVkX2F0IjogIjIwMjItMDktMTNUMTc6MDQ6MTIuMDI0MTI2WiIKICB9Cn0=" - }, - "Page": { - "type": "object", - "description": "Pagination properties", - "properties": { - "previous_cursor": { - "type": "string", - "nullable": true, - "description": "First item as an encoded string", - "example": "ewogICJ0eXBlIjogInByZXYiLAogICJpdGVtIjogewogICAgImlkIjogNjI3NTEzMCwKICAgICJjcmVhdGVkX2F0IjogIjIwMjItMDktMTNUMTc6MDQ6MTIuMDI0MTI2WiIKICB9Cn0=" }, - "next_cursor": { - "type": "string", - "nullable": true, - "description": "Last item as an encoded string", - "example": "ewogICJ0eXBlIjogInByZXYiLAogICJpdGVtIjogewogICAgImlkIjogNjI3NTEzMCwKICAgICJjcmVhdGVkX2F0IjogIjIwMjItMDktMTNUMTc6MDQ6MTIuMDI0MTI2WiIKICB9Cn0=" - } - }, - "required": [ - "previous_cursor", - "next_cursor" - ] - }, - "ActivityType": { - "description": "The activity type", - "example": "mint", - "type": "string", - "enum": [ - "mint", - "burn", - "transfer", - "sale", - "deposit", - "withdrawal" - ] - }, - "ActivityNFT": { - "type": "object", - "properties": { - "contract_type": { - "$ref": "#/components/schemas/NFTContractType" + { + "name": "account_address", + "in": "query", + "required": false, + "description": "Account address to filter by", + "schema": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]{40}$", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + } }, - "contract_address": { - "description": "The token contract address", - "type": "string", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + { + "name": "only_include_owner_listings", + "in": "query", + "required": false, + "description": "Whether to the listings should include only the owner created listings", + "schema": { + "type": "boolean", + "example": true + } }, - "token_id": { - "description": "An `uint256` token id as string", - "type": "string", - "example": "1" + { + "name": "only_if_has_active_listings", + "in": "query", + "required": false, + "description": "Filters results to include only stacks that have a current active listing. False and 'null' return all unfiltered stacks.", + "schema": { + "type": "boolean", + "example": true + } }, - "amount": { - "description": "(deprecated - will never be filled, use amount on Activity instead) The amount of tokens exchanged", - "type": "string", - "example": "1", - "deprecated": true - } - }, - "required": [ - "contract_type", - "contract_address", - "token_id", - "amount" - ] - }, - "ActivityToken": { - "type": "object", - "properties": { - "contract_type": { - "$ref": "#/components/schemas/TokenContractType" + { + "name": "traits", + "in": "query", + "required": false, + "description": "JSON encoded traits to filter by. e.g. encodeURIComponent(JSON.stringify({\"rarity\": {\"values\": [\"common\", \"rare\"], \"condition\": \"eq\"}}))", + "schema": { + "type": "string" + } }, - "contract_address": { - "description": "The contract address", - "type": "string", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" - } - }, - "required": [ - "contract_type", - "contract_address" - ] - }, - "ActivityAsset": { - "description": "The contract and asset details for this activity", - "oneOf": [ { - "$ref": "#/components/schemas/ActivityNFT" + "name": "keyword", + "in": "query", + "required": false, + "description": "Keyword to search NFT name and description. Alphanumeric characters only.", + "schema": { + "type": "string", + "example": "sword" + } }, { - "$ref": "#/components/schemas/ActivityToken" - } - ], - "discriminator": { - "propertyName": "contract_type" - } - }, - "Address": { - "x-go-type": "common.Address", - "x-go-type-import": { - "path": "github.com/ethereum/go-ethereum/common", - "name": "common" - }, - "description": "An Ethereum address", - "type": "string", - "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3", - "pattern": "^0x[a-fA-F0-9]{40}$" - }, - "Mint": { - "type": "object", - "description": "The mint activity details", - "properties": { - "to": { - "description": "The account address the asset was minted to", - "type": "string", - "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + "name": "sort_by", + "in": "query", + "required": false, + "description": "Sort results in a specific order", + "schema": { + "type": "string", + "nullable": false, + "enum": [ + "cheapest_first" + ] + } }, - "amount": { - "description": "The minted amount", - "type": "string", - "example": "1" + { + "name": "page_size", + "in": "query", + "required": false, + "description": "Number of results to return per page", + "schema": { + "$ref": "#/components/schemas/PageSize" + } }, - "asset": { - "$ref": "#/components/schemas/ActivityAsset" + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } } - }, - "required": [ - "to", - "amount", - "asset" - ] - }, - "Deposit": { - "type": "object", - "description": "The deposit activity details", - "properties": { - "to": { - "description": "The account address the asset was deposited to", - "type": "string", - "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchStacksResult" + } + } + } }, - "amount": { - "description": "The deposited amount", - "type": "string", - "example": "1" + "400": { + "$ref": "#/components/responses/BadRequest" }, - "asset": { - "$ref": "#/components/schemas/ActivityAsset" - } - }, - "required": [ - "to", - "amount", - "asset" - ] - }, - "Burn": { - "description": "The burn activity details", - "type": "object", - "properties": { - "from": { - "description": "The account address the asset was transferred from", - "type": "string", - "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" }, - "amount": { - "description": "The amount of assets burnt", - "type": "string", - "example": "1" + "403": { + "$ref": "#/components/responses/ForbiddenRequest" }, - "asset": { - "$ref": "#/components/schemas/ActivityAsset" - } - }, - "required": [ - "from", - "amount", - "asset" - ] - }, - "Withdrawal": { - "description": "The withdrawal activity details", - "type": "object", - "properties": { - "from": { - "description": "The account address the asset was withdrawn from", - "type": "string", - "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + "404": { + "$ref": "#/components/responses/NotFound" }, - "amount": { - "description": "The amount of assets withdrawn", - "type": "string", - "example": "1" + "429": { + "$ref": "#/components/responses/TooManyRequests" }, - "asset": { - "$ref": "#/components/schemas/ActivityAsset" + "500": { + "$ref": "#/components/responses/InternalServerError" } - }, - "required": [ - "from", - "amount", - "asset" - ] - }, - "Transfer": { - "type": "object", - "description": "The transfer activity details", - "properties": { - "from": { - "description": "The account address the asset was transferred from", - "type": "string", - "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" - }, - "to": { - "description": "The account address the asset was transferred to", - "type": "string", - "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" - }, - "amount": { - "description": "The amount of assets transferred", - "type": "string", - "example": "1" + } + } + }, + "/v1/chains/{chain_name}/stacks": { + "get": { + "tags": [ + "metadata" + ], + "operationId": "ListStacks", + "summary": "List NFT stack bundles by stack_id. Response will include Market, Listings & Stack Count information for each stack", + "description": "List NFT stack bundles by stack_id. This endpoint functions similarly to `ListMetadataByID` but extends the response to include Market, Listings & Stack Count information for each stack.", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "in": "path", + "required": true, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } }, - "asset": { - "$ref": "#/components/schemas/ActivityAsset" - } - }, - "required": [ - "activity_type", - "from", - "to", - "amount", - "asset" - ] - }, - "ActivityNativeToken": { - "type": "object", - "properties": { - "symbol": { - "description": "The token symbol", - "type": "string", - "example": "ETH" - } - }, - "required": [ - "symbol" - ] - }, - "SalePayment": { - "type": "object", - "properties": { - "token": { - "description": "The type of payment token", - "oneOf": [ - { - "$ref": "#/components/schemas/ActivityToken" + { + "name": "stack_id", + "in": "query", + "required": true, + "description": "List of stack_id to filter by", + "schema": { + "type": "array", + "items": { + "format": "uuid", + "type": "string", + "example": "7053e765-c119-4efb-b5cf-405ccccaf6c4" }, - { - "$ref": "#/components/schemas/ActivityNativeToken" + "maxItems": 20, + "minItems": 1 + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "List of stack bundles", + "items": { + "$ref": "#/components/schemas/StackBundle" + } + } } - ] + } }, - "price_excluding_fees": { - "description": "The base price of the sale not including any fees", - "type": "string", - "example": "180" + "400": { + "$ref": "#/components/responses/BadRequest" }, - "price_including_fees": { - "description": "The total price of the sale. Includes the sum of all fees", - "type": "string", - "example": "200" + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" }, - "fees": { - "description": "The fees associated with this sale", - "type": "array", - "items": { - "$ref": "#/components/schemas/SaleFee" - }, - "example": [ - { - "address": "0xB0F3749458169B7Ad51B5503CC3649DE55c2D0D2", - "amount": "20", - "type": "ROYALTY" - } - ], - "minItems": 0 - } - }, - "required": [ - "token", - "price_excluding_fees", - "price_including_fees", - "fees" - ] - }, - "SaleFee": { - "type": "object", - "properties": { - "amount": { - "type": "string", - "description": "Fee payable to recipient upon settlement", - "example": "200" + "403": { + "$ref": "#/components/responses/ForbiddenRequest" }, - "type": { - "type": "string", - "description": "Fee type", - "example": "ROYALTY", - "enum": [ - "ROYALTY" - ] + "404": { + "$ref": "#/components/responses/NotFound" }, - "recipient": { - "type": "string", - "description": "Wallet address of fee recipient", - "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" + "429": { + "$ref": "#/components/responses/TooManyRequests" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" } } - }, - "NFTSale": { - "description": "The NFT Sale activity details", - "type": "object", - "properties": { - "order_id": { - "description": "The id of order", - "type": "string", - "example": "ARZ3NDEKTSV4RRFFQ69G5FAV" - }, - "to": { - "description": "The account address of buyer", - "type": "string", - "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" - }, - "from": { - "description": "The account address of seller", - "type": "string", - "example": "0xbD6cFcf93474De653d7B42b346c7c25d1F9c559C" + } + }, + "/v1/chains/{chain_name}/quotes/{contract_address}/stacks": { + "get": { + "tags": [ + "pricing" + ], + "operationId": "QuotesForStacks", + "summary": "Get pricing data for a list of stack ids", + "description": "Get pricing data for a list of stack ids", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "in": "path", + "required": true, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } }, - "asset": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ActivityNFT" + { + "name": "contract_address", + "in": "path", + "required": true, + "description": "Contract address for collection that these stacks are on", + "schema": { + "pattern": "^0x[a-fA-F0-9]{40}$", + "type": "string" } }, - "payment": { - "$ref": "#/components/schemas/SalePayment" - } - }, - "required": [ - "order_id", - "to", - "from", - "asset", - "payment" - ] - }, - "ActivityDetails": { - "description": "The activity details", - "oneOf": [ { - "$ref": "#/components/schemas/Mint" + "name": "stack_id", + "in": "query", + "required": true, + "description": "List of stack ids to get pricing data for", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid", + "example": "7053e765-c119-4efb-b5cf-405ccccaf6c4" + }, + "minItems": 1, + "maxItems": 20 + } }, { - "$ref": "#/components/schemas/Burn" + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuotesForStacksResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "403": { + "$ref": "#/components/responses/ForbiddenRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "429": { + "$ref": "#/components/responses/TooManyRequests" }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/quotes/{contract_address}/nfts": { + "get": { + "tags": [ + "pricing" + ], + "operationId": "QuotesForNFTs", + "summary": "Get pricing data for a list of token ids", + "description": "pricing data for a list of token ids", + "parameters": [ { - "$ref": "#/components/schemas/Transfer" + "name": "chain_name", + "description": "The name of chain", + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "in": "path", + "required": true, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } }, { - "$ref": "#/components/schemas/NFTSale" + "name": "contract_address", + "in": "path", + "required": true, + "description": "Contract address for collection that these token ids are on", + "schema": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]{40}$" + } }, { - "$ref": "#/components/schemas/Deposit" + "name": "token_id", + "in": "query", + "required": true, + "description": "List of token ids to get pricing data for", + "schema": { + "type": "array", + "items": { + "type": "string", + "example": "1337" + }, + "minItems": 1, + "maxItems": 20 + } }, { - "$ref": "#/components/schemas/Withdrawal" + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } } - ] - }, - "BlockchainMetadata": { - "description": "The metadata related to blockchain transaction", - "nullable": true, - "type": "object", - "properties": { - "transaction_hash": { - "type": "string", - "description": "The transaction hash of the activity", - "example": "0x68d9eac5e3b3c3580404989a4030c948a78e1b07b2b5ea5688d8c38a6c61c93e" - }, - "block_number": { - "description": "EVM block number (uint64 as string)", - "type": "string", - "example": "1" + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuotesForNFTsResult" + } + } + } }, - "transaction_index": { - "description": "Transaction index in a block (uint32 as string)", - "type": "string", - "example": "1" + "400": { + "$ref": "#/components/responses/BadRequest" }, - "log_index": { - "description": "The log index of activity in a block (uint32 as string)", - "type": "string", - "nullable": true, - "example": "1" - } - }, - "required": [ - "transaction_hash", - "block_number", - "transaction_index", - "log_index" - ] - }, - "Activity": { - "type": "object", - "properties": { - "id": { - "$ref": "#/components/schemas/ActivityID" + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" }, - "chain": { - "$ref": "#/components/schemas/Chain" + "403": { + "$ref": "#/components/responses/ForbiddenRequest" }, - "type": { - "$ref": "#/components/schemas/ActivityType" + "404": { + "$ref": "#/components/responses/NotFound" }, - "details": { - "$ref": "#/components/schemas/ActivityDetails" - }, - "updated_at": { - "type": "string", - "description": "The time activity was updated at", - "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z" - }, - "indexed_at": { - "type": "string", - "description": "The time activity was indexed", - "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z" + "429": { + "$ref": "#/components/responses/TooManyRequests" }, - "blockchain_metadata": { - "$ref": "#/components/schemas/BlockchainMetadata" + "500": { + "$ref": "#/components/responses/InternalServerError" } + } + } + } + }, + "components": { + "securitySchemes": { + "BearerAuth": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT" + }, + "ImmutableApiKey": { + "x-go-name": "ImmutableApiKey", + "type": "apiKey", + "in": "header", + "name": "x-immutable-api-key" + } + }, + "parameters": { + "ChainName": { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" }, - "required": [ - "id", - "chain", - "type", - "details", - "indexed_at", - "updated_at", - "blockchain_metadata" - ] + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } }, - "ListActivitiesResult": { - "type": "object", - "description": "List activities response", - "properties": { - "result": { - "type": "array", - "description": "List of activities", - "items": { - "$ref": "#/components/schemas/Activity" + "ContractAddress": { + "name": "contract_address", + "in": "path", + "required": true, + "description": "Contract address", + "schema": { + "$ref": "#/components/schemas/Address" + } + }, + "TransactionId": { + "name": "id", + "in": "path", + "description": "Transaction identifier: payloadHash on StarkEx or EVM ID", + "required": true, + "schema": { + "type": "string", + "description": "Hash of the transaction" + } + } + }, + "responses": { + "NotFound": { + "description": "The specified resource was not found (404)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError404" } - }, - "page": { - "$ref": "#/components/schemas/Page" } - }, - "required": [ - "result", - "page" - ] + } }, - "GetActivityResult": { - "type": "object", - "description": "Single activity", - "properties": { - "result": { - "$ref": "#/components/schemas/Activity" + "BadRequest": { + "description": "Bad Request (400)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } + }, + "UnauthorisedRequest": { + "description": "Unauthorised Request (401)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } + } + }, + "ForbiddenRequest": { + "description": "Forbidden Request (403)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } + }, + "Conflict": { + "description": "Conflict (409)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError409" + } + } + } + }, + "TooManyRequests": { + "description": "Too Many Requests (429)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError429" + } } }, - "required": [ - "result" - ] + "headers": { + "Retry-After": { + "$ref": "#/components/headers/RetryAfter" + } + } }, - "Collection": { - "type": "object", - "properties": { - "chain": { - "$ref": "#/components/schemas/Chain" - }, - "name": { - "type": "string", - "nullable": true, - "description": "The name of the collection", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" - }, - "symbol": { - "type": "string", - "nullable": true, - "description": "The symbol of contract", - "example": "BASP" - }, - "contract_type": { - "$ref": "#/components/schemas/CollectionContractType" + "TooManyMetadataRefreshes": { + "description": "Too Many Metadata refreshes (429)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError429" + } + } + }, + "headers": { + "imx-refreshes-limit": { + "$ref": "#/components/headers/MetadataRefreshLimit" }, - "contract_address": { - "type": "string", - "description": "The address of the contract", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + "imx-refresh-limit-reset": { + "$ref": "#/components/headers/MetadataRefreshLimitReset" }, - "description": { - "type": "string", - "nullable": true, - "description": "The description of collection", - "example": "Some description" + "imx-remaining-refreshes": { + "$ref": "#/components/headers/MetadataRefreshLimitRemaining" }, - "image": { - "type": "string", - "description": "The url of the collection image", - "example": "https://some-url", - "nullable": true + "Retry-After": { + "$ref": "#/components/headers/MetadataRefreshRetryAfter" + } + } + }, + "TooManyMintRequests": { + "description": "Too Many mint requests (429)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError429" + } + } + }, + "headers": { + "imx-mint-requests-limit": { + "$ref": "#/components/headers/MintRequestsLimit" }, - "external_link": { - "type": "string", - "description": "The url of external link", - "example": "https://some-url", - "nullable": true + "imx-mint-requests-limit-reset": { + "$ref": "#/components/headers/MintRequestsLimitReset" }, - "contract_uri": { - "type": "string", - "description": "The uri for the metadata of the collection", - "example": "https://some-url", - "nullable": true + "imx-remaining-mint-requests": { + "$ref": "#/components/headers/MintRequestsLimitRemaining" }, - "base_uri": { - "type": "string", - "nullable": true, - "description": "The metadata uri for nft", - "example": "https://some-url" + "imx-mint-requests-retry-after": { + "$ref": "#/components/headers/MintRequestsRetryAfter" }, - "verification_status": { - "$ref": "#/components/schemas/AssetVerificationStatus" - }, - "indexed_at": { - "type": "string", - "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z", - "description": "When the collection was first indexed" - }, - "updated_at": { + "Retry-After": { + "$ref": "#/components/headers/MintRequestsRetryAfter" + } + } + }, + "InternalServerError": { + "description": "Internal Server Error (500)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } + }, + "NotImplementedError": { + "description": "Not Implemented Error (501)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError501" + } + } + } + } + }, + "headers": { + "MetadataRefreshLimit": { + "description": "The refresh request limit available to the project for each one-hour window.", + "schema": { + "type": "string" + } + }, + "MetadataRefreshLimitReset": { + "description": "The expiry date of the current one-hour window.", + "schema": { + "type": "string" + } + }, + "MetadataRefreshLimitRemaining": { + "description": "The number of refresh requests remaining in the current window.", + "schema": { + "type": "string" + } + }, + "MetadataRefreshRetryAfter": { + "description": "The number of seconds until the next refresh request can be made.", + "schema": { + "type": "string" + } + }, + "RetryAfter": { + "description": "The number of seconds until the next request can be made.", + "schema": { + "type": "string" + } + }, + "MintRequestsLimit": { + "description": "The mint requests limit available to the project for each time window.", + "schema": { + "type": "string" + } + }, + "MintRequestsLimitReset": { + "description": "The expiry date of the current time window.", + "schema": { + "type": "string" + } + }, + "MintRequestsLimitRemaining": { + "description": "The number of mint requests remaining in the current window.", + "schema": { + "type": "string" + } + }, + "MintRequestsRetryAfter": { + "description": "The number of seconds until the next refresh request can be made.", + "schema": { + "type": "string" + } + } + }, + "schemas": { + "PageSize": { + "type": "integer", + "format": "int32", + "description": "Maximum number of items to return", + "minimum": 1, + "default": 100, + "maximum": 200, + "example": 10 + }, + "PageCursor": { + "type": "string", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "example": "ewogICJ0eXBlIjogInByZXYiLAogICJpdGVtIjogewogICAgImlkIjogNjI3NTEzMCwKICAgICJjcmVhdGVkX2F0IjogIjIwMjItMDktMTNUMTc6MDQ6MTIuMDI0MTI2WiIKICB9Cn0=" + }, + "Page": { + "type": "object", + "description": "Pagination properties", + "properties": { + "previous_cursor": { "type": "string", - "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z", - "description": "When the collection was last updated" + "nullable": true, + "description": "First item as an encoded string", + "example": "ewogICJ0eXBlIjogInByZXYiLAogICJpdGVtIjogewogICAgImlkIjogNjI3NTEzMCwKICAgICJjcmVhdGVkX2F0IjogIjIwMjItMDktMTNUMTc6MDQ6MTIuMDI0MTI2WiIKICB9Cn0=" }, - "metadata_synced_at": { + "next_cursor": { "type": "string", - "format": "date-time", "nullable": true, - "example": "2022-08-16T17:43:26.991388Z", - "description": "When the collection metadata was last synced" + "description": "Last item as an encoded string", + "example": "ewogICJ0eXBlIjogInByZXYiLAogICJpdGVtIjogewogICAgImlkIjogNjI3NTEzMCwKICAgICJjcmVhdGVkX2F0IjogIjIwMjItMDktMTNUMTc6MDQ6MTIuMDI0MTI2WiIKICB9Cn0=" } }, "required": [ - "chain", - "name", - "symbol", - "contract_type", - "contract_address", - "description", - "image", - "external_link", - "base_uri", - "metadata_uri", - "indexed_at", - "updated_at", - "metadata_synced_at", - "verification_status" + "previous_cursor", + "next_cursor" ] }, - "ListCollectionsResult": { + "ActivityType": { + "description": "The activity type", + "example": "mint", + "type": "string", + "enum": [ + "mint", + "burn", + "transfer", + "sale", + "deposit", + "withdrawal" + ] + }, + "ActivityNFT": { "type": "object", "properties": { - "result": { - "description": "List of collections", - "type": "array", - "items": { - "$ref": "#/components/schemas/Collection" - } + "contract_type": { + "$ref": "#/components/schemas/NFTContractType" }, - "page": { - "$ref": "#/components/schemas/Page" + "contract_address": { + "description": "The token contract address", + "type": "string", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + "token_id": { + "description": "An `uint256` token id as string", + "type": "string", + "example": "1" + }, + "amount": { + "description": "(deprecated - will never be filled, use amount on Activity instead) The amount of tokens exchanged", + "type": "string", + "example": "1", + "deprecated": true } }, "required": [ - "result", - "page" + "contract_type", + "contract_address", + "token_id", + "amount" ] }, - "GetCollectionResult": { + "ActivityToken": { "type": "object", - "description": "Single Collection", "properties": { - "result": { - "$ref": "#/components/schemas/Collection" + "contract_type": { + "$ref": "#/components/schemas/TokenContractType" + }, + "contract_address": { + "description": "The contract address", + "type": "string", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" } }, "required": [ - "result" + "contract_type", + "contract_address" ] }, - "GetMetadataResult": { - "type": "object", - "description": "Single metadata", - "properties": { - "result": { - "$ref": "#/components/schemas/Metadata" + "ActivityAsset": { + "description": "The contract and asset details for this activity", + "oneOf": [ + { + "$ref": "#/components/schemas/ActivityNFT" + }, + { + "$ref": "#/components/schemas/ActivityToken" } + ], + "discriminator": { + "propertyName": "contract_type" + } + }, + "Address": { + "x-go-type": "common.Address", + "x-go-type-import": { + "path": "github.com/ethereum/go-ethereum/common", + "name": "common" }, - "required": [ - "result" - ] + "description": "An Ethereum address", + "type": "string", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3", + "pattern": "^0x[a-fA-F0-9]{40}$" }, - "ListMetadataResult": { + "Mint": { "type": "object", + "description": "The mint activity details", "properties": { - "result": { - "description": "List of metadata", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } + "to": { + "description": "The account address the asset was minted to", + "type": "string", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" }, - "page": { - "$ref": "#/components/schemas/Page" + "amount": { + "description": "The minted amount", + "type": "string", + "example": "1" + }, + "asset": { + "$ref": "#/components/schemas/ActivityAsset" } }, "required": [ - "result", - "page" + "to", + "amount", + "asset" ] }, - "Metadata": { + "Deposit": { "type": "object", + "description": "The deposit activity details", "properties": { - "id": { - "$ref": "#/components/schemas/MetadataID" - }, - "chain": { - "$ref": "#/components/schemas/Chain" - }, - "contract_address": { + "to": { + "description": "The account address the asset was deposited to", "type": "string", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e", - "description": "The contract address of the metadata" + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" }, - "created_at": { + "amount": { + "description": "The deposited amount", "type": "string", - "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z", - "description": "When the metadata was created" + "example": "1" }, - "updated_at": { + "asset": { + "$ref": "#/components/schemas/ActivityAsset" + } + }, + "required": [ + "to", + "amount", + "asset" + ] + }, + "Burn": { + "description": "The burn activity details", + "type": "object", + "properties": { + "from": { + "description": "The account address the asset was transferred from", "type": "string", - "format": "date-time", - "nullable": true, - "description": "When the metadata was last updated", - "example": "2022-08-16T17:43:26.991388Z" + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" }, - "name": { + "amount": { + "description": "The amount of assets burnt", "type": "string", - "nullable": true, - "example": "Sword", - "description": "The name of the NFT" + "example": "1" }, - "description": { + "asset": { + "$ref": "#/components/schemas/ActivityAsset" + } + }, + "required": [ + "from", + "amount", + "asset" + ] + }, + "Withdrawal": { + "description": "The withdrawal activity details", + "type": "object", + "properties": { + "from": { + "description": "The account address the asset was withdrawn from", "type": "string", - "nullable": true, - "example": "2022-08-16T17:43:26.991388Z", - "description": "The description of the NFT" + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" }, - "image": { + "amount": { + "description": "The amount of assets withdrawn", "type": "string", - "nullable": true, - "description": "The image url of the NFT", - "example": "https://some-url" + "example": "1" }, - "external_url": { + "asset": { + "$ref": "#/components/schemas/ActivityAsset" + } + }, + "required": [ + "from", + "amount", + "asset" + ] + }, + "Transfer": { + "type": "object", + "description": "The transfer activity details", + "properties": { + "from": { + "description": "The account address the asset was transferred from", "type": "string", - "nullable": true, - "description": "The external website link of NFT", - "example": "https://some-url" + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" }, - "animation_url": { + "to": { + "description": "The account address the asset was transferred to", "type": "string", - "nullable": true, - "description": "The animation url of the NFT", - "example": "https://some-url" + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" }, - "youtube_url": { + "amount": { + "description": "The amount of assets transferred", "type": "string", - "nullable": true, - "description": "The youtube URL of NFT", - "example": "https://some-url" + "example": "1" }, - "attributes": { - "type": "array", - "description": "List of Metadata attributes", - "nullable": true, - "items": { - "$ref": "#/components/schemas/NFTMetadataAttribute" - } + "asset": { + "$ref": "#/components/schemas/ActivityAsset" } }, "required": [ - "id", - "chain", - "contract_address", - "created_at", - "updated_at", - "name", - "description", - "image", - "external_link", - "animation_url", - "youtube_url", - "attributes" + "activity_type", + "from", + "to", + "amount", + "asset" ] }, - "RefreshMetadataByIDRequest": { + "ActivityNativeToken": { "type": "object", - "description": "Request body for refreshing metadata by id. Total size of this list should not exceed 228 KiB", "properties": { - "metadata": { - "type": "array", - "maxItems": 10, - "minItems": 1, - "items": { - "$ref": "#/components/schemas/RefreshMetadataByID" - } + "symbol": { + "description": "The token symbol", + "type": "string", + "example": "ETH" } }, "required": [ - "metadata" + "symbol" ] }, - "NFT": { + "SalePayment": { "type": "object", "properties": { - "chain": { - "$ref": "#/components/schemas/Chain" + "token": { + "description": "The type of payment token", + "oneOf": [ + { + "$ref": "#/components/schemas/ActivityToken" + }, + { + "$ref": "#/components/schemas/ActivityNativeToken" + } + ] }, - "token_id": { + "price_excluding_fees": { + "description": "The base price of the sale not including any fees", "type": "string", - "example": "1", - "description": "An `uint256` token id as string" + "example": "180" }, - "contract_address": { + "price_including_fees": { + "description": "The total price of the sale. Includes the sum of all fees", "type": "string", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e", - "description": "The contract address of the NFT" + "example": "200" }, - "contract_type": { - "$ref": "#/components/schemas/NFTContractType" + "fees": { + "description": "The fees associated with this sale", + "type": "array", + "items": { + "$ref": "#/components/schemas/SaleFee" + }, + "example": [ + { + "address": "0xB0F3749458169B7Ad51B5503CC3649DE55c2D0D2", + "amount": "20", + "type": "ROYALTY" + } + ], + "minItems": 0 + } + }, + "required": [ + "token", + "price_excluding_fees", + "price_including_fees", + "fees" + ] + }, + "SaleFee": { + "type": "object", + "properties": { + "amount": { + "type": "string", + "description": "Fee payable to recipient upon settlement", + "example": "200" }, - "indexed_at": { + "type": { "type": "string", - "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z", - "description": "When the NFT was first indexed" + "description": "Fee type", + "example": "ROYALTY", + "enum": [ + "ROYALTY" + ] }, - "updated_at": { + "recipient": { "type": "string", - "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z", - "description": "When the NFT owner was last updated" + "description": "Wallet address of fee recipient", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" + } + } + }, + "NFTSale": { + "description": "The NFT Sale activity details", + "type": "object", + "properties": { + "order_id": { + "description": "The id of order", + "type": "string", + "example": "ARZ3NDEKTSV4RRFFQ69G5FAV" }, - "metadata_synced_at": { + "to": { + "description": "The account address of buyer", "type": "string", - "format": "date-time", - "nullable": true, - "description": "When NFT metadata was last synced", - "example": "2022-08-16T17:43:26.991388Z" + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" }, - "metadata_id": { + "from": { + "description": "The account address of seller", "type": "string", - "format": "uuid", - "nullable": true, - "description": "The id of the metadata of this NFT", - "example": "ae83bc80-4dd5-11ee-be56-0242ac120002" + "example": "0xbD6cFcf93474De653d7B42b346c7c25d1F9c559C" }, - "name": { - "type": "string", - "nullable": true, - "example": "Sword", - "description": "The name of the NFT" + "asset": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ActivityNFT" + } }, - "description": { - "type": "string", - "nullable": true, - "example": "2022-08-16T17:43:26.991388Z", - "description": "The description of the NFT" + "payment": { + "$ref": "#/components/schemas/SalePayment" + } + }, + "required": [ + "order_id", + "to", + "from", + "asset", + "payment" + ] + }, + "ActivityDetails": { + "description": "The activity details", + "oneOf": [ + { + "$ref": "#/components/schemas/Mint" }, - "image": { - "type": "string", - "nullable": true, - "description": "The image url of the NFT", - "example": "https://some-url" + { + "$ref": "#/components/schemas/Burn" }, - "external_link": { - "deprecated": true, - "type": "string", - "nullable": true, - "description": "(deprecated - use external_url instead) The external website link of NFT", - "example": "https://some-url" + { + "$ref": "#/components/schemas/Transfer" }, - "external_url": { - "type": "string", - "nullable": true, - "description": "The external website link of NFT", - "example": "https://some-url" + { + "$ref": "#/components/schemas/NFTSale" }, - "animation_url": { + { + "$ref": "#/components/schemas/Deposit" + }, + { + "$ref": "#/components/schemas/Withdrawal" + } + ] + }, + "BlockchainMetadata": { + "description": "The metadata related to blockchain transaction", + "nullable": true, + "type": "object", + "properties": { + "transaction_hash": { "type": "string", - "nullable": true, - "description": "The animation url of the NFT", - "example": "https://some-url" + "description": "The transaction hash of the activity", + "example": "0x68d9eac5e3b3c3580404989a4030c948a78e1b07b2b5ea5688d8c38a6c61c93e" }, - "youtube_url": { + "block_number": { + "description": "EVM block number (uint64 as string)", "type": "string", - "nullable": true, - "description": "The youtube URL of NFT", - "example": "https://some-url" + "example": "1" }, - "attributes": { - "type": "array", - "description": "List of NFT Metadata attributes", - "items": { - "$ref": "#/components/schemas/NFTMetadataAttribute" - } + "transaction_index": { + "description": "Transaction index in a block (uint32 as string)", + "type": "string", + "example": "1" }, - "total_supply": { + "log_index": { + "description": "The log index of activity in a block (uint32 as string)", "type": "string", "nullable": true, - "description": "The total supply of NFT", - "example": "100" + "example": "1" } }, "required": [ - "chain", - "token_id", - "contract_address", - "indexed_at", - "updated_at", - "metadata_synced_at", - "name", - "description", - "image", - "external_link", - "external_url", - "animation_url", - "youtube_url", - "attributes", - "contract_type" + "transaction_hash", + "block_number", + "transaction_index", + "log_index" ] }, - "NFTWithBalance": { + "Activity": { "type": "object", "properties": { + "id": { + "$ref": "#/components/schemas/ActivityID" + }, "chain": { "$ref": "#/components/schemas/Chain" }, - "token_id": { - "type": "string", - "example": "1", - "description": "An `uint256` token id as string" - }, - "contract_address": { - "type": "string", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e", - "description": "The contract address of the NFT" - }, - "contract_type": { - "$ref": "#/components/schemas/NFTContractType" + "type": { + "$ref": "#/components/schemas/ActivityType" }, - "indexed_at": { - "type": "string", - "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z", - "description": "When the NFT was first indexed" + "details": { + "$ref": "#/components/schemas/ActivityDetails" }, "updated_at": { "type": "string", + "description": "The time activity was updated at", "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z", - "description": "When the NFT owner was last updated" + "example": "2022-08-16T17:43:26.991388Z" }, - "metadata_synced_at": { + "indexed_at": { "type": "string", + "description": "The time activity was indexed", "format": "date-time", - "nullable": true, - "description": "When NFT metadata was last synced", "example": "2022-08-16T17:43:26.991388Z" }, - "metadata_id": { + "blockchain_metadata": { + "$ref": "#/components/schemas/BlockchainMetadata" + } + }, + "required": [ + "id", + "chain", + "type", + "details", + "indexed_at", + "updated_at", + "blockchain_metadata" + ] + }, + "ListActivitiesResult": { + "type": "object", + "description": "List activities response", + "properties": { + "result": { + "type": "array", + "description": "List of activities", + "items": { + "$ref": "#/components/schemas/Activity" + } + }, + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "GetActivityResult": { + "type": "object", + "description": "Single activity", + "properties": { + "result": { + "$ref": "#/components/schemas/Activity" + } + }, + "required": [ + "result" + ] + }, + "Collection": { + "type": "object", + "properties": { + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "name": { "type": "string", - "format": "uuid", "nullable": true, - "description": "The id of the metadata of this NFT", - "example": "ae83bc80-4dd5-11ee-be56-0242ac120002" + "description": "The name of the collection", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" }, - "name": { + "symbol": { "type": "string", "nullable": true, - "description": "The name of the NFT", - "example": "Sword" + "description": "The symbol of contract", + "example": "BASP" + }, + "contract_type": { + "$ref": "#/components/schemas/CollectionContractType" + }, + "contract_address": { + "type": "string", + "description": "The address of the contract", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" }, "description": { "type": "string", "nullable": true, - "description": "The description of the NFT", - "example": "This is a super awesome sword" + "description": "The description of collection", + "example": "Some description" }, "image": { "type": "string", - "nullable": true, - "description": "The image url of the NFT", - "example": "https://some-url" + "description": "The url of the collection image", + "example": "https://some-url", + "nullable": true }, "external_link": { "type": "string", - "nullable": true, - "description": "The external website link of NFT", - "example": "https://some-url" + "description": "The url of external link", + "example": "https://some-url", + "nullable": true }, - "animation_url": { + "contract_uri": { "type": "string", - "nullable": true, - "description": "The animation url of the NFT", - "example": "https://some-url" + "description": "The uri for the metadata of the collection", + "example": "https://some-url", + "nullable": true }, - "youtube_url": { + "base_uri": { "type": "string", "nullable": true, - "description": "The youtube URL of NFT", + "description": "The metadata uri for nft", "example": "https://some-url" }, - "attributes": { - "type": "array", - "description": "List of Metadata attributes", - "nullable": false, - "items": { - "$ref": "#/components/schemas/NFTMetadataAttribute" - } + "verification_status": { + "$ref": "#/components/schemas/AssetVerificationStatus" }, - "balance": { + "indexed_at": { "type": "string", - "nullable": false, - "description": "The amount of this NFT this account owns", - "example": "11" + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the collection was first indexed" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the collection was last updated" + }, + "metadata_synced_at": { + "type": "string", + "format": "date-time", + "nullable": true, + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the collection metadata was last synced" } }, "required": [ "chain", - "token_id", - "contract_address", - "indexed_at", - "updated_at", - "metadata_synced_at", "name", + "symbol", + "contract_type", + "contract_address", "description", "image", "external_link", - "animation_url", - "youtube_url", - "balance", - "contract_type", - "attributes" + "base_uri", + "metadata_uri", + "indexed_at", + "updated_at", + "metadata_synced_at", + "verification_status" ] }, - "NFTMetadataAttribute": { + "ListCollectionsResult": { "type": "object", "properties": { - "display_type": { - "description": "Display type for this attribute", - "type": "string", - "nullable": true, - "enum": [ - "number", - "boost_percentage", - "boost_number", - "date" - ], - "example": "number" - }, - "trait_type": { - "description": "The metadata trait type", - "type": "string", - "example": "Aqua Power" + "result": { + "description": "List of collections", + "type": "array", + "items": { + "$ref": "#/components/schemas/Collection" + } }, - "value": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "The metadata trait value", - "example": "Happy" + "page": { + "$ref": "#/components/schemas/Page" } }, "required": [ - "trait_type", - "value" - ] - }, - "ChainName": { - "type": "string", - "description": "The name of chain", - "example": "imtbl-zkevm-testnet" - }, - "ActivityID": { - "description": "Activity id in UUIDv4 format", - "type": "string", - "format": "uuid", - "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b" - }, - "MetadataID": { - "description": "Metadata id in UUIDv4 format", - "type": "string", - "format": "uuid", - "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b" - }, - "CollectionContractType": { - "description": "The collection contract type", - "type": "string", - "enum": [ - "ERC721", - "ERC1155" - ] - }, - "NFTContractType": { - "description": "The contract type for an NFT", - "type": "string", - "enum": [ - "ERC721", - "ERC1155" - ] - }, - "TokenContractType": { - "description": "The contract type for a token", - "type": "string", - "enum": [ - "ERC20" - ] - }, - "AssetVerificationStatus": { - "description": "The verification status for a given contract", - "type": "string", - "enum": [ - "verified", - "unverified", - "spam", - "inactive" - ] - }, - "VerificationRequestStatus": { - "description": "The status of the verification request", - "type": "string", - "enum": [ - "completed", - "pending" + "result", + "page" ] }, - "GetNFTResult": { + "GetCollectionResult": { "type": "object", - "description": "Single NFT", + "description": "Single Collection", "properties": { "result": { - "$ref": "#/components/schemas/NFT" + "$ref": "#/components/schemas/Collection" } }, "required": [ "result" ] }, - "ListNFTsResult": { + "GetMetadataResult": { "type": "object", + "description": "Single metadata", "properties": { "result": { - "description": "List of NFTs", - "type": "array", - "items": { - "$ref": "#/components/schemas/NFT" - } - }, - "page": { - "$ref": "#/components/schemas/Page" + "$ref": "#/components/schemas/Metadata" } }, "required": [ - "result", - "page" + "result" ] }, - "ListNFTsByOwnerResult": { + "ListMetadataResult": { "type": "object", "properties": { "result": { - "description": "List of NFTs by owner", + "description": "List of metadata", "type": "array", "items": { - "$ref": "#/components/schemas/NFTWithBalance" + "$ref": "#/components/schemas/Metadata" } }, "page": { @@ -6251,287 +6374,155 @@ "page" ] }, - "NFTOwner": { + "Metadata": { "type": "object", "properties": { + "id": { + "$ref": "#/components/schemas/MetadataID" + }, "chain": { "$ref": "#/components/schemas/Chain" }, "contract_address": { "type": "string", - "description": "The address of NFT contract", - "example": "0x5a019874f4fae314b0eaa4606be746366e661306" + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e", + "description": "The contract address of the metadata" }, - "token_id": { + "created_at": { "type": "string", - "description": "An `uint256` token id as string", - "example": "1" + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the metadata was created" }, - "account_address": { + "updated_at": { "type": "string", - "description": "The account address of the owner of the NFT", - "example": "0x5a019874f4fae314b0eaa4606be746366e661306" + "format": "date-time", + "nullable": true, + "description": "When the metadata was last updated", + "example": "2022-08-16T17:43:26.991388Z" }, - "balance": { + "name": { "type": "string", - "description": "The amount of owned tokens (uint256 as string)", - "example": "1" + "nullable": true, + "example": "Sword", + "description": "The name of the NFT" }, - "updated_at": { + "description": { "type": "string", - "format": "date-time", + "nullable": true, "example": "2022-08-16T17:43:26.991388Z", - "description": "When the NFT owner was last updated" - } - }, - "required": [ - "chain", - "contract_address", - "token_id", - "account_address", - "balance" - ] - }, - "NFTWithOwner": { - "type": "object", - "properties": { - "chain": { - "$ref": "#/components/schemas/Chain" + "description": "The description of the NFT" }, - "contract_address": { + "image": { "type": "string", - "description": "The address of NFT contract", - "example": "0x5a019874f4fae314b0eaa4606be746366e661306" + "nullable": true, + "description": "The image url of the NFT", + "example": "https://some-url" }, - "token_id": { + "external_url": { "type": "string", - "description": "An `uint256` token id as string", - "example": "1" + "nullable": true, + "description": "The external website link of NFT", + "example": "https://some-url" }, - "account_address": { + "animation_url": { "type": "string", - "description": "The account address of the owner of the NFT", - "example": "0x5a019874f4fae314b0eaa4606be746366e661306" + "nullable": true, + "description": "The animation url of the NFT", + "example": "https://some-url" }, - "balance": { + "youtube_url": { "type": "string", - "description": "The amount of owned tokens (uint256 as string)", - "example": "1" + "nullable": true, + "description": "The youtube URL of NFT", + "example": "https://some-url" }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z", - "description": "When the owner last changed for the given NFT" + "attributes": { + "type": "array", + "description": "List of Metadata attributes", + "nullable": true, + "items": { + "$ref": "#/components/schemas/NFTMetadataAttribute" + } } }, "required": [ + "id", "chain", "contract_address", - "token_id", - "account_address", - "balance", - "updated_at" - ] - }, - "GetTokenResult": { - "type": "object", - "description": "Single Token", - "properties": { - "result": { - "$ref": "#/components/schemas/Token" - } - }, - "required": [ - "result" + "created_at", + "updated_at", + "name", + "description", + "image", + "external_link", + "animation_url", + "youtube_url", + "attributes" ] }, - "ListNFTOwnersResult": { + "RefreshMetadataByIDRequest": { "type": "object", + "description": "Request body for refreshing metadata by id. Total size of this list should not exceed 228 KiB", "properties": { - "result": { - "description": "List of nft owners", + "metadata": { "type": "array", + "maxItems": 10, + "minItems": 1, "items": { - "$ref": "#/components/schemas/NFTOwner" + "$ref": "#/components/schemas/RefreshMetadataByID" } - }, - "page": { - "$ref": "#/components/schemas/Page" } }, "required": [ - "result", - "page" + "metadata" ] }, - "ListCollectionOwnersResult": { + "NFT": { "type": "object", "properties": { - "result": { - "description": "List of NFT owners", - "type": "array", - "items": { - "$ref": "#/components/schemas/NFTWithOwner" - } - }, - "page": { - "$ref": "#/components/schemas/Page" - } - }, - "required": [ - "result", - "page" - ] - }, - "ChainWithDetails": { - "allOf": [ - { + "chain": { "$ref": "#/components/schemas/Chain" }, - { - "type": "object", - "properties": { - "rpc_url": { - "type": "string", - "nullable": true, - "description": "URL for RPC node" - }, - "operator_allowlist_address": { - "type": "string", - "nullable": true, - "description": "The address of the Operator Allowlist - https://docs.immutable.com/products/zkevm/minting/royalties/allowlist-spec/" - }, - "minter_address": { - "type": "string", - "nullable": true, - "description": "The address of the minter used in the Minting API - https://docs.immutable.com/products/zkEVM/minting/minting-api#minting-api-prerequisites" - } - }, - "required": [ - "rpc_url", - "operator_allowlist_address", - "minter_address" - ] - } - ] - }, - "Chain": { - "type": "object", - "description": "The chain details", - "properties": { - "id": { + "token_id": { "type": "string", - "description": "The id of chain", - "example": "eip155:13372" + "example": "1", + "description": "An `uint256` token id as string" }, - "name": { + "contract_address": { "type": "string", - "description": "The name of chain", - "example": "imtbl-zkevm-testnet" - } - }, - "required": [ - "id", - "name" - ] - }, - "ListChainsResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "description": "List of chains", - "items": { - "$ref": "#/components/schemas/ChainWithDetails" - } + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e", + "description": "The contract address of the NFT" }, - "page": { - "$ref": "#/components/schemas/Page" - } - }, - "required": [ - "result", - "page" - ] - }, - "ListTokensResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "description": "List of tokens", - "items": { - "$ref": "#/components/schemas/Token" - } + "contract_type": { + "$ref": "#/components/schemas/NFTContractType" }, - "page": { - "$ref": "#/components/schemas/Page" - } - }, - "required": [ - "result", - "page" - ] - }, - "RefreshMetadataByID": { - "allOf": [ - { - "$ref": "#/components/schemas/RefreshableNFTAttributes" + "indexed_at": { + "type": "string", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the NFT was first indexed" }, - { - "type": "object", - "properties": { - "metadata_id": { - "$ref": "#/components/schemas/MetadataID" - } - }, - "required": [ - "metadata_id" - ] - } - ] - }, - "RefreshMetadataByTokenID": { - "allOf": [ - { - "$ref": "#/components/schemas/RefreshableNFTAttributes" + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the NFT owner was last updated" + }, + "metadata_synced_at": { + "type": "string", + "format": "date-time", + "nullable": true, + "description": "When NFT metadata was last synced", + "example": "2022-08-16T17:43:26.991388Z" + }, + "metadata_id": { + "type": "string", + "format": "uuid", + "nullable": true, + "description": "The id of the metadata of this NFT", + "example": "ae83bc80-4dd5-11ee-be56-0242ac120002" }, - { - "type": "object", - "properties": { - "token_id": { - "type": "string", - "description": "An `uint256` token id as string", - "example": "1" - } - }, - "required": [ - "token_id" - ] - } - ] - }, - "RefreshableNFTAttributes": { - "allOf": [ - { - "$ref": "#/components/schemas/NFTMetadataRequest" - } - ], - "required": [ - "name", - "description", - "image", - "external_url", - "animation_url", - "youtube_url", - "attributes" - ] - }, - "NFTMetadataRequest": { - "type": "object", - "description": "The NFT metadata. Total size of this object should not exceed 16 KiB", - "properties": { "name": { "type": "string", "nullable": true, @@ -6550,10 +6541,17 @@ "description": "The image url of the NFT", "example": "https://some-url" }, + "external_link": { + "deprecated": true, + "type": "string", + "nullable": true, + "description": "(deprecated - use external_url instead) The external website link of NFT", + "example": "https://some-url" + }, "external_url": { "type": "string", "nullable": true, - "description": "The external link of the NFT", + "description": "The external website link of NFT", "example": "https://some-url" }, "animation_url": { @@ -6565,425 +6563,293 @@ "youtube_url": { "type": "string", "nullable": true, - "description": "The youtube link of the NFT", + "description": "The youtube URL of NFT", "example": "https://some-url" }, "attributes": { "type": "array", - "description": "List of Metadata attributes", - "nullable": true, + "description": "List of NFT Metadata attributes", "items": { "$ref": "#/components/schemas/NFTMetadataAttribute" } - } - } - }, - "RefreshNFTMetadataByTokenIDRequest": { - "type": "object", - "properties": { - "nft_metadata": { - "type": "array", - "description": "List of nft metadata to be refreshed. Total size of the list should not exceed 228 KiB", - "maxItems": 250, - "minItems": 1, - "items": { - "$ref": "#/components/schemas/RefreshMetadataByTokenID" - } + }, + "total_supply": { + "type": "string", + "nullable": true, + "description": "The total supply of NFT", + "example": "100" } }, "required": [ - "nft_metadata" + "chain", + "token_id", + "contract_address", + "indexed_at", + "updated_at", + "metadata_synced_at", + "name", + "description", + "image", + "external_link", + "external_url", + "animation_url", + "youtube_url", + "attributes", + "contract_type" ] }, - "Token": { + "NFTWithBalance": { "type": "object", "properties": { "chain": { "$ref": "#/components/schemas/Chain" }, - "contract_address": { - "type": "string", - "description": "The address of token contract", - "example": "0xc344c05eef8876e517072f879dae8905aa2b956b" - }, - "root_contract_address": { - "type": "string", - "description": "The address of root token contract", - "example": "0x43e60b30d5bec48c0f5890e3d1e9f1b1296bb4aa", - "nullable": true - }, - "root_chain_id": { - "type": "string", - "description": "The id of the root chain for a bridged token", - "example": "eip155:1", - "nullable": true - }, - "bridge_used": { + "token_id": { "type": "string", - "description": "The name of the bridge, for bridged tokens only", - "example": "axelar", - "nullable": true + "example": "1", + "description": "An `uint256` token id as string" }, - "symbol": { + "contract_address": { "type": "string", - "description": "The symbol of token", - "example": "AAA", - "nullable": true - }, - "decimals": { - "type": "integer", - "description": "The decimals of token", - "example": 18, - "nullable": true + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e", + "description": "The contract address of the NFT" }, - "image_url": { - "type": "string", - "description": "The image url of token", - "example": "https://some-url", - "nullable": true + "contract_type": { + "$ref": "#/components/schemas/NFTContractType" }, - "name": { + "indexed_at": { "type": "string", - "description": "The name of token", - "example": "Token A", - "nullable": true - }, - "verification_status": { - "$ref": "#/components/schemas/AssetVerificationStatus" + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the NFT was first indexed" }, "updated_at": { "type": "string", "format": "date-time", "example": "2022-08-16T17:43:26.991388Z", - "description": "When the collection was last updated" + "description": "When the NFT owner was last updated" }, - "is_canonical": { - "type": "boolean", - "example": true, - "description": "Indicates whether the token is canonical or not" - } - }, - "required": [ - "chain", - "contract_address", - "root_contract_address", - "symbol", - "decimals", - "image_url", - "name", - "updated_at", - "verification_status", - "is_canonical" - ] - }, - "CollectionMetadata": { - "type": "object", - "properties": { - "name": { + "metadata_synced_at": { "type": "string", + "format": "date-time", "nullable": true, - "description": "The name of the collection", - "example": "Gigantic Lizards" + "description": "When NFT metadata was last synced", + "example": "2022-08-16T17:43:26.991388Z" }, - "symbol": { + "metadata_id": { "type": "string", + "format": "uuid", "nullable": true, - "description": "The symbol of contract", - "example": "GLZ" + "description": "The id of the metadata of this NFT", + "example": "ae83bc80-4dd5-11ee-be56-0242ac120002" + }, + "name": { + "type": "string", + "nullable": true, + "description": "The name of the NFT", + "example": "Sword" }, "description": { "type": "string", "nullable": true, - "description": "The description of collection", - "example": "This is the Gigantic Lizards collection" + "description": "The description of the NFT", + "example": "This is a super awesome sword" }, "image": { "type": "string", - "description": "The url of the collection image", - "example": "https://some-url", - "nullable": true + "nullable": true, + "description": "The image url of the NFT", + "example": "https://some-url" }, "external_link": { "type": "string", - "description": "The url of external link", - "example": "https://some-url", - "nullable": true + "nullable": true, + "description": "The external website link of NFT", + "example": "https://some-url" }, - "contract_uri": { + "animation_url": { "type": "string", - "description": "The uri for the metadata of the collection", - "example": "https://some-url", - "nullable": true + "nullable": true, + "description": "The animation url of the NFT", + "example": "https://some-url" }, - "base_uri": { + "youtube_url": { "type": "string", "nullable": true, - "description": "The metadata uri for nft", + "description": "The youtube URL of NFT", "example": "https://some-url" + }, + "attributes": { + "type": "array", + "description": "List of Metadata attributes", + "nullable": false, + "items": { + "$ref": "#/components/schemas/NFTMetadataAttribute" + } + }, + "balance": { + "type": "string", + "nullable": false, + "description": "The amount of this NFT this account owns", + "example": "11" } }, "required": [ + "chain", + "token_id", + "contract_address", + "indexed_at", + "updated_at", + "metadata_synced_at", "name", - "image", - "symbol", "description", - "base_uri", + "image", "external_link", - "contract_uri" - ] - }, - "RefreshCollectionMetadataRequest": { - "type": "object", - "properties": { - "collection_metadata": { - "$ref": "#/components/schemas/CollectionMetadata" - } - }, - "required": [ - "collection_metadata" + "animation_url", + "youtube_url", + "balance", + "contract_type", + "attributes" ] }, - "RefreshCollectionMetadataResult": { + "NFTMetadataAttribute": { "type": "object", "properties": { - "contract_address": { - "type": "string" + "display_type": { + "description": "Display type for this attribute", + "type": "string", + "nullable": true, + "enum": [ + "number", + "boost_percentage", + "boost_number", + "date" + ], + "example": "number" }, - "chain": { - "$ref": "#/components/schemas/Chain" + "trait_type": { + "description": "The metadata trait type", + "type": "string", + "example": "Aqua Power" }, - "collection_metadata": { - "$ref": "#/components/schemas/CollectionMetadata" + "value": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } + ], + "description": "The metadata trait value", + "example": "Happy" } }, "required": [ - "contract_address", - "chain", - "collection_metadata" + "trait_type", + "value" ] }, - "MetadataRefreshRateLimitResult": { - "type": "object", - "properties": { - "imx_refreshes_limit": { - "type": "string" - }, - "imx_refresh_limit_reset": { - "type": "string" - }, - "imx_remaining_refreshes": { - "type": "string" - }, - "retry_after": { - "type": "string" - } - }, - "required": [ - "imx_refreshes_limit", - "imx_refresh_limit_reset", - "imx_remaining_refreshes", - "retry_after" - ] + "ChainName": { + "type": "string", + "description": "The name of chain", + "example": "imtbl-zkevm-testnet" }, - "CreateMintRequestRequest": { - "type": "object", - "properties": { - "assets": { - "type": "array", - "maxItems": 100, - "minItems": 1, - "description": "List of nft to be minted", - "items": { - "$ref": "#/components/schemas/MintAsset" - } - } - }, - "required": [ - "assets" - ] + "ActivityID": { + "description": "Activity id in UUIDv4 format", + "type": "string", + "format": "uuid", + "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b" }, - "VerificationRequestInternal": { - "description": "The verification request (internal)", - "allOf": [ - { - "$ref": "#/components/schemas/VerificationRequest" - }, - { - "type": "object", - "properties": { - "org_tier": { - "$ref": "#/components/schemas/OrganisationTier" - } - }, - "required": [ - "org_tier" - ] - } - ] + "MetadataID": { + "description": "Metadata id in UUIDv4 format", + "type": "string", + "format": "uuid", + "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b" }, - "VerificationRequest": { - "description": "The verification request", - "type": "object", - "properties": { - "id": { - "description": "The id of the verification request", - "type": "string", - "format": "uuid", - "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b" - }, - "chain": { - "$ref": "#/components/schemas/Chain" - }, - "contract_address": { - "description": "The contract address", - "type": "string", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" - }, - "org_name": { - "description": "The name of the organisation associated with this contract", - "nullable": true, - "type": "string", - "example": "Immutable" - }, - "name": { - "type": "string", - "nullable": true, - "description": "The name of the collection", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" - }, - "symbol": { - "type": "string", - "nullable": true, - "description": "The symbol of contract", - "example": "BASP" - }, - "description": { - "type": "string", - "nullable": true, - "description": "The description of collection", - "example": "Some description" - }, - "org_id": { - "type": "string", - "nullable": true, - "description": "The id of the organisation associated with this contract", - "example": "753da67a-5d3b-42c7-b87a-eba3d17a6362" - }, - "requester_email": { - "type": "string", - "nullable": true, - "description": "The email address of the user who requested the contract to be verified", - "example": "user@immutable.com" - }, - "contract_type": { - "$ref": "#/components/schemas/VerificationRequestContractType" - }, - "verification_request_status": { - "$ref": "#/components/schemas/VerificationRequestStatus" - } - }, - "required": [ - "id", - "chain", - "contract_address", - "name", - "symbol", - "description", - "contract_type", - "org_name", - "org_id", - "requester_email", - "verification_request_status" + "CollectionContractType": { + "description": "The collection contract type", + "type": "string", + "enum": [ + "ERC721", + "ERC1155" ] }, - "VerificationRequestContractType": { - "description": "The contract type associated with the given request", + "NFTContractType": { + "description": "The contract type for an NFT", "type": "string", "enum": [ - "ERC20", "ERC721", "ERC1155" ] }, - "OrganisationTier": { - "description": "The tier of the organisation", + "TokenContractType": { + "description": "The contract type for a token", "type": "string", - "nullable": true, "enum": [ - "common", - "uncommon", - "rare", - "epic", - "legendary" + "ERC20" ] }, - "MintAsset": { + "AssetVerificationStatus": { + "description": "The verification status for a given contract", + "type": "string", + "enum": [ + "verified", + "unverified", + "spam", + "inactive" + ] + }, + "VerificationRequestStatus": { + "description": "The status of the verification request", + "type": "string", + "enum": [ + "completed", + "pending" + ] + }, + "GetNFTResult": { "type": "object", + "description": "Single NFT", "properties": { - "reference_id": { - "type": "string", - "description": "The id of this asset in the system that originates the mint request", - "example": "67f7d464-b8f0-4f6a-9a3b-8d3cb4a21af0" - }, - "owner_address": { - "type": "string", - "description": "The address of the receiver", - "example": "0xc344c05eef8876e517072f879dae8905aa2b956b" - }, - "token_id": { - "type": "string", - "description": "An optional `uint256` token id as string. Required for ERC1155 collections.", - "example": "1", - "nullable": true - }, - "amount": { - "type": "string", - "description": "Optional mount of tokens to mint. Required for ERC1155 collections. ERC712 collections can omit this field or set it to 1", - "example": "1", - "nullable": true, - "minLength": 1 - }, - "metadata": { - "$ref": "#/components/schemas/NFTMetadataRequest" + "result": { + "$ref": "#/components/schemas/NFT" } }, "required": [ - "reference_id", - "owner_address" + "result" ] }, - "CreateMintRequestResult": { + "ListNFTsResult": { "type": "object", "properties": { - "imx_mint_requests_limit": { - "type": "string" - }, - "imx_mint_requests_limit_reset": { - "type": "string" - }, - "imx_remaining_mint_requests": { - "type": "string" + "result": { + "description": "List of NFTs", + "type": "array", + "items": { + "$ref": "#/components/schemas/NFT" + } }, - "imx_mint_requests_retry_after": { - "type": "string" + "page": { + "$ref": "#/components/schemas/Page" } }, "required": [ - "imx_mint_requests_limit", - "imx_mint_requests_limit_reset", - "imx_remaining_mint_requests", - "imx_mint_requests_retry_after" + "result", + "page" ] }, - "ListMintRequestsResult": { + "ListNFTsByOwnerResult": { "type": "object", - "description": "List mint requests", "properties": { "result": { + "description": "List of NFTs by owner", "type": "array", - "description": "List of mint requests", "items": { - "$ref": "#/components/schemas/GetMintRequestResult" + "$ref": "#/components/schemas/NFTWithBalance" } }, "page": { @@ -6995,1341 +6861,2085 @@ "page" ] }, - "GetMintRequestResult": { + "NFTOwner": { "type": "object", "properties": { "chain": { "$ref": "#/components/schemas/Chain" }, - "collection_address": { + "contract_address": { "type": "string", - "description": "The address of the contract", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + "description": "The address of NFT contract", + "example": "0x5a019874f4fae314b0eaa4606be746366e661306" }, - "reference_id": { + "token_id": { "type": "string", - "description": "The reference id of this mint request" + "description": "An `uint256` token id as string", + "example": "1" }, - "owner_address": { + "account_address": { "type": "string", - "description": "The address of the owner of the NFT" + "description": "The account address of the owner of the NFT", + "example": "0x5a019874f4fae314b0eaa4606be746366e661306" }, - "token_id": { + "balance": { "type": "string", - "example": "1", - "nullable": true, - "description": "An `uint256` token id as string. Only available when the mint request succeeds" + "description": "The amount of owned tokens (uint256 as string)", + "example": "1" }, - "amount": { + "updated_at": { "type": "string", - "example": "1", - "nullable": true, - "description": "An `uint256` amount as string. Only relevant for mint requests on ERC1155 contracts" + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the NFT owner was last updated" + } + }, + "required": [ + "chain", + "contract_address", + "token_id", + "account_address", + "balance" + ] + }, + "NFTWithOwner": { + "type": "object", + "properties": { + "chain": { + "$ref": "#/components/schemas/Chain" }, - "activity_id": { + "contract_address": { "type": "string", - "format": "uuid", - "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b", - "nullable": true, - "description": "The id of the mint activity associated with this mint request" + "description": "The address of NFT contract", + "example": "0x5a019874f4fae314b0eaa4606be746366e661306" }, - "transaction_hash": { + "token_id": { "type": "string", - "nullable": true, - "description": "The transaction hash of the activity", - "example": "0x68d9eac5e3b3c3580404989a4030c948a78e1b07b2b5ea5688d8c38a6c61c93e" + "description": "An `uint256` token id as string", + "example": "1" }, - "created_at": { + "account_address": { "type": "string", - "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z", - "description": "When the mint request was created" + "description": "The account address of the owner of the NFT", + "example": "0x5a019874f4fae314b0eaa4606be746366e661306" + }, + "balance": { + "type": "string", + "description": "The amount of owned tokens (uint256 as string)", + "example": "1" }, "updated_at": { "type": "string", "format": "date-time", - "description": "When the mint request was last updated", - "example": "2022-08-16T17:43:26.991388Z" - }, - "error": { - "$ref": "#/components/schemas/MintRequestErrorMessage" - }, - "status": { - "$ref": "#/components/schemas/MintRequestStatus" + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the owner last changed for the given NFT" } }, "required": [ "chain", - "collection_address", - "reference_id", - "owner_address", - "status", + "contract_address", "token_id", - "transaction_hash", - "error", - "created_at", + "account_address", + "balance", "updated_at" ] }, - "MintRequestErrorMessage": { + "GetTokenResult": { "type": "object", - "description": "The error details in case the mint request fails", - "nullable": true, + "description": "Single Token", "properties": { - "message": { - "description": "An error message in case the mint request fails", - "type": "string" - } - } - }, - "MintRequestStatus": { - "description": "The status of the mint request", - "example": "pending", - "type": "string", - "enum": [ - "pending", - "succeeded", - "failed" - ] - }, - "OperatorAllowlistStatus": { - "description": "The status of a contract on the operator allowlist", - "example": "requested", - "type": "string", - "enum": [ - "requested", - "approved", - "rejected", - "removed", - "added" - ] - }, - "OperatorAllowlistStatusDetails": { - "description": "The operator allowlist status details", - "oneOf": [ - { - "$ref": "#/components/schemas/OperatorAllowlistStatusRequested" - }, - { - "$ref": "#/components/schemas/OperatorAllowlistStatusUpdated" + "result": { + "$ref": "#/components/schemas/Token" } + }, + "required": [ + "result" ] }, - "OperatorAllowlistStatusRequested": { + "ListNFTOwnersResult": { "type": "object", - "description": "The request details", "properties": { - "purpose": { - "description": "Reason this contract needs to be added", - "type": "string", - "example": "Custom crafting contract" + "result": { + "description": "List of nft owners", + "type": "array", + "items": { + "$ref": "#/components/schemas/NFTOwner" + } }, - "is_settlement_contract": { - "description": "Attestation of whether this contract is a settlement contract", - "type": "boolean", - "example": false + "page": { + "$ref": "#/components/schemas/Page" } }, "required": [ - "purpose", - "is_settlement_contract" + "result", + "page" ] }, - "OperatorAllowlistStatusUpdated": { + "ListCollectionOwnersResult": { "type": "object", - "description": "The update details", "properties": { - "reason": { - "description": "Why this action was performed", - "type": "string", - "example": "Contract meets expectations" + "result": { + "description": "List of NFT owners", + "type": "array", + "items": { + "$ref": "#/components/schemas/NFTWithOwner" + } + }, + "page": { + "$ref": "#/components/schemas/Page" } }, "required": [ - "reason" + "result", + "page" ] }, - "OperatorAllowlistContractStatusInternal": { + "ChainWithDetails": { "allOf": [ { - "$ref": "#/components/schemas/OperatorAllowlistContractStatus" + "$ref": "#/components/schemas/Chain" }, { "type": "object", "properties": { - "org_name": { - "description": "The name of the organisation associated with this contract", + "rpc_url": { + "type": "string", "nullable": true, + "description": "URL for RPC node" + }, + "operator_allowlist_address": { "type": "string", - "example": "Immutable" + "nullable": true, + "description": "The address of the Operator Allowlist - https://docs.immutable.com/products/zkevm/minting/royalties/allowlist-spec/" }, - "org_tier": { - "$ref": "#/components/schemas/OrganisationTier" + "minter_address": { + "type": "string", + "nullable": true, + "description": "The address of the minter used in the Minting API - https://docs.immutable.com/products/zkEVM/minting/minting-api#minting-api-prerequisites" } }, "required": [ - "org_name", - "org_tier" + "rpc_url", + "operator_allowlist_address", + "minter_address" ] } ] }, - "OperatorAllowlistContractStatus": { + "Chain": { "type": "object", + "description": "The chain details", "properties": { - "chain": { - "$ref": "#/components/schemas/Chain" - }, - "contract_address": { - "type": "string", - "description": "The address of the contract", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" - }, - "status": { - "$ref": "#/components/schemas/OperatorAllowlistStatus" - }, - "details": { - "$ref": "#/components/schemas/OperatorAllowlistStatusDetails" - }, - "created_at": { + "id": { "type": "string", - "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z", - "description": "When the contract status was created" + "description": "The id of chain", + "example": "eip155:13372" }, - "created_by": { + "name": { "type": "string", - "format": "email", - "description": "Who created the status", - "example": "user@immutable.com" + "description": "The name of chain", + "example": "imtbl-zkevm-testnet" } }, "required": [ - "chain", - "contract_address", - "status", - "details", - "created_at", - "created_by" + "id", + "name" ] }, - "Call": { + "ListChainsResult": { "type": "object", "properties": { - "target_address": { - "$ref": "#/components/schemas/Address" - }, - "function_signature": { - "type": "string", - "description": "The function signature", - "example": "mint(address,uint256)" - }, - "function_args": { + "result": { "type": "array", + "description": "List of chains", "items": { - "type": "string" - }, - "description": "The function arguments", - "example": [ - "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e", - "1" - ] + "$ref": "#/components/schemas/ChainWithDetails" + } + }, + "page": { + "$ref": "#/components/schemas/Page" } }, "required": [ - "target_address", - "function_signature", - "function_args" + "result", + "page" ] }, - "SignCraftingRequest": { + "ListTokensResult": { "type": "object", "properties": { - "multi_caller": { - "type": "object", - "properties": { - "address": { - "$ref": "#/components/schemas/Address" - }, - "name": { - "type": "string", - "description": "The name of the multicaller contract", - "example": "Multicaller" - }, - "version": { - "type": "string", - "description": "The version of the multicaller contract", - "example": "1" - } - }, - "required": [ - "address", - "name", - "version" - ] - }, - "reference_id": { - "type": "string", - "description": "The id of this request in the system that originates the crafting request, specified as a 32 byte hex string", - "example": "67f7d464b8f04f6a9a3b8d3cb4a21af0" - }, - "calls": { + "result": { "type": "array", - "description": "The calls to be signed", + "description": "List of tokens", "items": { - "$ref": "#/components/schemas/Call" - }, - "minLength": 1, - "maxLength": 100 - }, - "expires_at": { - "type": "string", - "format": "date-time", - "description": "The expiration time of the request", - "example": "2022-08-16T17:43:26.991388Z" - } - }, - "required": [ - "multi_caller", - "reference_id", - "calls", - "expires_at" - ] - }, - "SignCraftingResult": { - "type": "object", - "properties": { - "signer_address": { - "$ref": "#/components/schemas/Address" - }, - "signature": { - "type": "string", - "description": "The signature of the request", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" - } - }, - "required": [ - "signer_address", - "signature" - ] - }, - "BasicAPIError": { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "Error Message", - "example": "all fields must be provided" - }, - "link": { - "type": "string", - "description": "Link to IMX documentation that can help resolve this error", - "example": "https://docs.x.immutable.com/reference/#/" + "$ref": "#/components/schemas/Token" + } }, - "trace_id": { - "type": "string", - "description": "Trace ID of the initial request", - "example": "e47634b79a5cd6894ddc9639ec4aad26" + "page": { + "$ref": "#/components/schemas/Page" } }, "required": [ - "message", - "link", - "trace_id" + "result", + "page" ] }, - "APIError400": { + "RefreshMetadataByID": { "allOf": [ { - "$ref": "#/components/schemas/BasicAPIError" + "$ref": "#/components/schemas/RefreshableNFTAttributes" }, { "type": "object", "properties": { - "code": { - "type": "string", - "description": "Error Code", - "enum": [ - "VALIDATION_ERROR" - ], - "example": "VALIDATION_ERROR" - }, - "details": { - "type": "object", - "nullable": true, - "description": "Additional details to help resolve the error" + "metadata_id": { + "$ref": "#/components/schemas/MetadataID" } }, "required": [ - "code", - "details" + "metadata_id" ] } ] }, - "APIError404": { + "RefreshMetadataByTokenID": { "allOf": [ { - "$ref": "#/components/schemas/BasicAPIError" + "$ref": "#/components/schemas/RefreshableNFTAttributes" }, { "type": "object", "properties": { - "code": { + "token_id": { "type": "string", - "description": "Error Code", - "enum": [ - "RESOURCE_NOT_FOUND" - ], - "example": "RESOURCE_NOT_FOUND" - }, - "details": { - "type": "object", - "nullable": true, - "description": "Additional details to help resolve the error" + "description": "An `uint256` token id as string", + "example": "1" } }, "required": [ - "code", - "details" + "token_id" ] } ] }, - "APIError500": { + "RefreshableNFTAttributes": { "allOf": [ { - "$ref": "#/components/schemas/BasicAPIError" - }, - { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error Code", - "enum": [ - "INTERNAL_SERVER_ERROR" - ], - "example": "INTERNAL_SERVER_ERROR" - }, - "details": { - "type": "object", - "nullable": true, - "description": "Additional details to help resolve the error" - } - }, - "required": [ - "code", - "details" - ] + "$ref": "#/components/schemas/NFTMetadataRequest" } + ], + "required": [ + "name", + "description", + "image", + "external_url", + "animation_url", + "youtube_url", + "attributes" ] }, - "APIError401": { - "allOf": [ - { - "$ref": "#/components/schemas/BasicAPIError" + "NFTMetadataRequest": { + "type": "object", + "description": "The NFT metadata. Total size of this object should not exceed 16 KiB", + "properties": { + "name": { + "type": "string", + "nullable": true, + "example": "Sword", + "description": "The name of the NFT" }, - { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error Code", - "enum": [ - "UNAUTHORISED_REQUEST" - ], - "example": "UNAUTHORISED_REQUEST" - }, - "details": { - "type": "object", - "nullable": true, - "description": "Additional details to help resolve the error" - } - }, - "required": [ - "code", - "details" - ] + "description": { + "type": "string", + "nullable": true, + "example": "2022-08-16T17:43:26.991388Z", + "description": "The description of the NFT" + }, + "image": { + "type": "string", + "nullable": true, + "description": "The image url of the NFT", + "example": "https://some-url" + }, + "external_url": { + "type": "string", + "nullable": true, + "description": "The external link of the NFT", + "example": "https://some-url" + }, + "animation_url": { + "type": "string", + "nullable": true, + "description": "The animation url of the NFT", + "example": "https://some-url" + }, + "youtube_url": { + "type": "string", + "nullable": true, + "description": "The youtube link of the NFT", + "example": "https://some-url" + }, + "attributes": { + "type": "array", + "description": "List of Metadata attributes", + "nullable": true, + "items": { + "$ref": "#/components/schemas/NFTMetadataAttribute" + } } - ] + } }, - "APIError403": { - "allOf": [ - { - "$ref": "#/components/schemas/BasicAPIError" - }, - { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error Code", - "enum": [ - "AUTHENTICATION_ERROR" - ], - "example": "AUTHENTICATION_ERROR" - }, - "details": { - "type": "object", - "nullable": true, - "description": "Additional details to help resolve the error" - } - }, - "required": [ - "code", - "details" - ] - } - ] - }, - "APIError429": { - "allOf": [ - { - "$ref": "#/components/schemas/BasicAPIError" - }, - { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error Code", - "enum": [ - "TOO_MANY_REQUESTS_ERROR" - ], - "example": "TOO_MANY_REQUESTS_ERROR" - }, - "details": { - "type": "object", - "nullable": true, - "description": "Additional details to help resolve the error" - } - }, - "required": [ - "code", - "details" - ] + "RefreshNFTMetadataByTokenIDRequest": { + "type": "object", + "properties": { + "nft_metadata": { + "type": "array", + "description": "List of nft metadata to be refreshed. Total size of the list should not exceed 228 KiB", + "maxItems": 250, + "minItems": 1, + "items": { + "$ref": "#/components/schemas/RefreshMetadataByTokenID" + } } + }, + "required": [ + "nft_metadata" ] }, - "APIError409": { - "allOf": [ - { - "$ref": "#/components/schemas/BasicAPIError" + "Token": { + "type": "object", + "properties": { + "chain": { + "$ref": "#/components/schemas/Chain" }, - { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error Code", - "enum": [ - "CONFLICT_ERROR" - ], - "example": "CONFLICT_ERROR" - }, - "details": { - "type": "object", - "nullable": true, - "description": "Additional details to help resolve the error", - "additionalProperties": true - } - }, - "required": [ - "code", - "details" - ] - } - ] - }, - "Item": { - "oneOf": [ - { - "$ref": "#/components/schemas/NativeItem" + "contract_address": { + "type": "string", + "description": "The address of token contract", + "example": "0xc344c05eef8876e517072f879dae8905aa2b956b" }, - { - "$ref": "#/components/schemas/ERC20Item" + "root_contract_address": { + "type": "string", + "description": "The address of root token contract", + "example": "0x43e60b30d5bec48c0f5890e3d1e9f1b1296bb4aa", + "nullable": true }, - { - "$ref": "#/components/schemas/ERC721Item" + "root_chain_id": { + "type": "string", + "description": "The id of the root chain for a bridged token", + "example": "eip155:1", + "nullable": true }, - { - "$ref": "#/components/schemas/ERC1155Item" + "bridge_used": { + "type": "string", + "description": "The name of the bridge, for bridged tokens only", + "example": "axelar", + "nullable": true }, - { - "$ref": "#/components/schemas/ERC721CollectionItem" + "symbol": { + "type": "string", + "description": "The symbol of token", + "example": "AAA", + "nullable": true }, - { - "$ref": "#/components/schemas/ERC1155CollectionItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "NATIVE": "#/components/schemas/NativeItem", - "ERC20": "#/components/schemas/ERC20Item", - "ERC721": "#/components/schemas/ERC721Item", - "ERC1155": "#/components/schemas/ERC1155Item", - "ERC721_COLLECTION": "#/components/schemas/ERC721CollectionItem", - "ERC1155_COLLECTION": "#/components/schemas/ERC1155CollectionItem" - } - } - }, - "AssetCollectionItem": { - "oneOf": [ - { - "$ref": "#/components/schemas/ERC721CollectionItem" + "decimals": { + "type": "integer", + "description": "The decimals of token", + "example": 18, + "nullable": true }, - { - "$ref": "#/components/schemas/ERC1155CollectionItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "ERC721_COLLECTION": "#/components/schemas/ERC721CollectionItem", - "ERC1155_COLLECTION": "#/components/schemas/ERC1155CollectionItem" - } - } - }, - "FulfillmentDataRequest": { - "type": "object", - "properties": { - "order_id": { + "image_url": { "type": "string", - "format": "uuid" + "description": "The image url of token", + "example": "https://some-url", + "nullable": true }, - "taker_address": { + "name": { "type": "string", - "description": "Address of the intended account fulfilling the order", - "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "pattern": "^0x[a-fA-F0-9]{40}$" + "description": "The name of token", + "example": "Token A", + "nullable": true }, - "fees": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Fee" - }, - "example": [ - { - "type": "TAKER_ECOSYSTEM", - "amount": "2250000000000000000", - "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" - } - ], - "minItems": 0, - "maxItems": 2 + "verification_status": { + "$ref": "#/components/schemas/AssetVerificationStatus" }, - "token_id": { + "updated_at": { "type": "string", - "description": "Token ID for the ERC721 or ERC1155 token when fulfilling a collection order", - "example": "123", - "pattern": "\\d+" + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the collection was last updated" + }, + "is_canonical": { + "type": "boolean", + "example": true, + "description": "Indicates whether the token is canonical or not" } }, "required": [ - "order_id", - "fees", - "taker_address" + "chain", + "contract_address", + "root_contract_address", + "symbol", + "decimals", + "image_url", + "name", + "updated_at", + "verification_status", + "is_canonical" ] }, - "FulfillableOrder": { + "CollectionMetadata": { "type": "object", "properties": { - "order": { - "$ref": "#/components/schemas/Order" + "name": { + "type": "string", + "nullable": true, + "description": "The name of the collection", + "example": "Gigantic Lizards" }, - "token_id": { + "symbol": { "type": "string", - "description": "Token ID for the ERC721 or ERC1155 token when fulfilling a collection order", - "example": "123", - "pattern": "\\d+" + "nullable": true, + "description": "The symbol of contract", + "example": "GLZ" }, - "extra_data": { - "type": "string" - } - }, - "required": [ - "extra_data", - "order" - ] - }, - "UnfulfillableOrder": { - "type": "object", - "properties": { - "order_id": { + "description": { "type": "string", - "description": "OrderID for the requested but unfulfillable order", - "example": "7df3e99e-f7b3-459c-bef6-ffb66a18bb59" + "nullable": true, + "description": "The description of collection", + "example": "This is the Gigantic Lizards collection" }, - "token_id": { + "image": { "type": "string", - "description": "Token ID for the ERC721 or ERC1155 token when fulfilling a collection order", - "example": "123", - "pattern": "\\d+" + "description": "The url of the collection image", + "example": "https://some-url", + "nullable": true }, - "reason": { + "external_link": { "type": "string", - "description": "Nullable string containing error reason if the signing is unsuccessful for the order", - "example": "Invalid order status INACTIVE for order 7df3e99e-f7b3-459c-bef6-ffb66a18bb59" + "description": "The url of external link", + "example": "https://some-url", + "nullable": true + }, + "contract_uri": { + "type": "string", + "description": "The uri for the metadata of the collection", + "example": "https://some-url", + "nullable": true + }, + "base_uri": { + "type": "string", + "nullable": true, + "description": "The metadata uri for nft", + "example": "https://some-url" } }, "required": [ - "reason", - "order_id" + "name", + "image", + "symbol", + "description", + "base_uri", + "external_link", + "contract_uri" ] }, - "NativeItem": { + "RefreshCollectionMetadataRequest": { "type": "object", "properties": { - "type": { - "type": "string", - "description": "Token type user is offering, which in this case is the native IMX token", - "example": "NATIVE", - "enum": [ - "NATIVE" - ] - }, - "amount": { - "type": "string", - "description": "A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).", - "example": "9750000000000000000", - "pattern": "\\d+" + "collection_metadata": { + "$ref": "#/components/schemas/CollectionMetadata" } }, "required": [ - "type", - "amount" + "collection_metadata" ] }, - "ERC20Item": { + "RefreshCollectionMetadataResult": { "type": "object", "properties": { - "type": { - "type": "string", - "description": "Token type user is offering, which in this case is ERC20", - "example": "ERC20", - "enum": [ - "ERC20" - ] - }, "contract_address": { - "type": "string", - "description": "Address of ERC20 token", - "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F", - "pattern": "^0x[a-fA-F0-9]{40}$" + "type": "string" }, - "amount": { - "type": "string", - "description": "A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).", - "example": "9750000000000000000", - "pattern": "\\d+" + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "collection_metadata": { + "$ref": "#/components/schemas/CollectionMetadata" } }, "required": [ - "type", "contract_address", - "amount" + "chain", + "collection_metadata" ] }, - "ERC721Item": { + "MetadataRefreshRateLimitResult": { "type": "object", "properties": { - "type": { - "type": "string", - "description": "Token type user is offering, which in this case is ERC721", - "example": "ERC721", - "enum": [ - "ERC721" - ] + "imx_refreshes_limit": { + "type": "string" }, - "contract_address": { - "type": "string", - "description": "Address of ERC721 token", - "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "pattern": "^0x[a-fA-F0-9]{40}$" + "imx_refresh_limit_reset": { + "type": "string" }, - "token_id": { - "type": "string", - "description": "ID of ERC721 token", - "example": "1", - "pattern": "\\d+" + "imx_remaining_refreshes": { + "type": "string" + }, + "retry_after": { + "type": "string" } }, "required": [ - "type", - "contract_address", - "token_id" + "imx_refreshes_limit", + "imx_refresh_limit_reset", + "imx_remaining_refreshes", + "retry_after" ] }, - "ERC1155Item": { + "CreateMintRequestRequest": { "type": "object", "properties": { - "type": { - "type": "string", - "description": "Token type user is offering, which in this case is ERC1155", - "example": "ERC1155", - "enum": [ - "ERC1155" - ] - }, - "contract_address": { - "type": "string", - "description": "Address of ERC1155 token", - "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "pattern": "^0x[a-fA-F0-9]{40}$" - }, - "token_id": { - "type": "string", - "description": "ID of ERC1155 token", - "example": "1", - "pattern": "\\d+" - }, - "amount": { - "type": "string", - "description": "A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).", - "example": "9750000000000000000", - "pattern": "\\d+" + "assets": { + "type": "array", + "maxItems": 100, + "minItems": 1, + "description": "List of nft to be minted", + "items": { + "$ref": "#/components/schemas/MintAsset" + } } }, "required": [ - "type", - "contract_address", - "token_id", - "amount" + "assets" ] }, - "ERC721CollectionItem": { + "VerificationRequestInternal": { + "description": "The verification request (internal)", + "allOf": [ + { + "$ref": "#/components/schemas/VerificationRequest" + }, + { + "type": "object", + "properties": { + "org_tier": { + "$ref": "#/components/schemas/OrganisationTier" + } + }, + "required": [ + "org_tier" + ] + } + ] + }, + "VerificationRequest": { + "description": "The verification request", "type": "object", "properties": { - "type": { + "id": { + "description": "The id of the verification request", "type": "string", - "description": "Token type user is offering, which in this case is ERC721", - "example": "ERC721_COLLECTION", - "enum": [ - "ERC721_COLLECTION" - ] + "format": "uuid", + "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b" + }, + "chain": { + "$ref": "#/components/schemas/Chain" }, "contract_address": { + "description": "The contract address", "type": "string", - "description": "Address of ERC721 collection", - "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "pattern": "^0x[a-fA-F0-9]{40}$" + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" }, - "amount": { + "org_name": { + "description": "The name of the organisation associated with this contract", + "nullable": true, "type": "string", - "description": "A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).", - "example": "9750000000000000000", - "pattern": "\\d+" - } - }, - "required": [ - "type", - "contract_address", - "amount" - ] - }, - "ERC1155CollectionItem": { - "type": "object", - "properties": { - "type": { + "example": "Immutable" + }, + "name": { "type": "string", - "description": "Token type user is offering, which in this case is ERC1155", - "example": "ERC1155_COLLECTION", - "enum": [ - "ERC1155_COLLECTION" - ] + "nullable": true, + "description": "The name of the collection", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" }, - "contract_address": { + "symbol": { "type": "string", - "description": "Address of ERC1155 collection", - "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "pattern": "^0x[a-fA-F0-9]{40}$" + "nullable": true, + "description": "The symbol of contract", + "example": "BASP" }, - "amount": { + "description": { "type": "string", - "description": "A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).", - "example": "9750000000000000000", - "pattern": "\\d+" + "nullable": true, + "description": "The description of collection", + "example": "Some description" + }, + "org_id": { + "type": "string", + "nullable": true, + "description": "The id of the organisation associated with this contract", + "example": "753da67a-5d3b-42c7-b87a-eba3d17a6362" + }, + "requester_email": { + "type": "string", + "nullable": true, + "description": "The email address of the user who requested the contract to be verified", + "example": "user@immutable.com" + }, + "contract_type": { + "$ref": "#/components/schemas/VerificationRequestContractType" + }, + "verification_request_status": { + "$ref": "#/components/schemas/VerificationRequestStatus" } }, "required": [ - "type", + "id", + "chain", "contract_address", - "amount" + "name", + "symbol", + "description", + "contract_type", + "org_name", + "org_id", + "requester_email", + "verification_request_status" ] }, - "CancelOrdersRequestBody": { + "VerificationRequestContractType": { + "description": "The contract type associated with the given request", + "type": "string", + "enum": [ + "ERC20", + "ERC721", + "ERC1155" + ] + }, + "OrganisationTier": { + "description": "The tier of the organisation", + "type": "string", + "nullable": true, + "enum": [ + "common", + "uncommon", + "rare", + "epic", + "legendary" + ] + }, + "MintAsset": { "type": "object", "properties": { - "account_address": { + "reference_id": { "type": "string", - "description": "Address of the user initiating the cancel request", - "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "pattern": "^0x[a-fA-F0-9]{40}$" + "description": "The id of this asset in the system that originates the mint request", + "example": "67f7d464-b8f0-4f6a-9a3b-8d3cb4a21af0" }, - "orders": { - "type": "array", - "description": "List of order ids proposed for cancellation", - "items": { - "type": "string", - "format": "uuid" - }, - "uniqueItems": true, - "minItems": 1, - "maxItems": 20 + "owner_address": { + "type": "string", + "description": "The address of the receiver", + "example": "0xc344c05eef8876e517072f879dae8905aa2b956b" }, - "signature": { + "token_id": { "type": "string", - "description": "Signature generated by the user for the specific cancellation request", - "example": "0x12345" + "description": "An optional `uint256` token id as string. Required for ERC1155 collections.", + "example": "1", + "nullable": true + }, + "amount": { + "type": "string", + "description": "Optional mount of tokens to mint. Required for ERC1155 collections. ERC712 collections can omit this field or set it to 1", + "example": "1", + "nullable": true, + "minLength": 1 + }, + "metadata": { + "$ref": "#/components/schemas/NFTMetadataRequest" } }, "required": [ - "account_address", - "orders", - "signature" - ], - "example": { - "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "ids": [ - "018a8c71-d7e4-e303-a2ef-318871ef7756", - "238a8c71-d7e4-e303-a2ef-318871ef7778", - "458a8c71-d7e4-e303-a2ef-318871ef7790" - ], - "signature": 291 - } + "reference_id", + "owner_address" + ] }, - "CreateListingRequestBody": { + "CreateMintRequestResult": { "type": "object", "properties": { - "account_address": { - "type": "string", - "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "pattern": "^0x[a-fA-F0-9]{40}$" + "imx_mint_requests_limit": { + "type": "string" }, - "order_hash": { - "type": "string", - "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" + "imx_mint_requests_limit_reset": { + "type": "string" }, - "buy": { - "type": "array", - "description": "Buy item for listing should either be NATIVE or ERC20 item", - "items": { - "$ref": "#/components/schemas/Item" - }, - "example": [ - { - "type": "NATIVE", - "amount": "9750000000000000000", - "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" - } - ], - "minItems": 1, - "maxItems": 1 + "imx_remaining_mint_requests": { + "type": "string" }, - "fees": { + "imx_mint_requests_retry_after": { + "type": "string" + } + }, + "required": [ + "imx_mint_requests_limit", + "imx_mint_requests_limit_reset", + "imx_remaining_mint_requests", + "imx_mint_requests_retry_after" + ] + }, + "ListMintRequestsResult": { + "type": "object", + "description": "List mint requests", + "properties": { + "result": { "type": "array", - "description": "Buy fees should only include maker marketplace fees and should be no more than two entries as more entires will incur more gas. It is best practice to have this as few as possible.", + "description": "List of mint requests", "items": { - "$ref": "#/components/schemas/Fee" - }, - "example": [], - "minItems": 0, - "maxItems": 2 + "$ref": "#/components/schemas/GetMintRequestResult" + } }, - "end_at": { + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "GetMintRequestResult": { + "type": "object", + "properties": { + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "collection_address": { "type": "string", - "description": "Time after which the Order is considered expired", - "format": "date-time", - "example": "2022-03-09T05:00:50.52Z" + "description": "The address of the contract", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" }, - "protocol_data": { - "$ref": "#/components/schemas/ProtocolData" + "reference_id": { + "type": "string", + "description": "The reference id of this mint request" }, - "salt": { + "owner_address": { "type": "string", - "description": "A random value added to the create Order request", - "example": "12686911856931635052326433555881236148" + "description": "The address of the owner of the NFT" }, - "sell": { - "type": "array", - "description": "Sell item for listing should be an ERC721 item", - "items": { - "$ref": "#/components/schemas/Item" - }, - "example": [ - { - "type": "ERC721", - "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "token_id": "1" - } - ], - "minItems": 1, - "maxItems": 1 + "token_id": { + "type": "string", + "example": "1", + "nullable": true, + "description": "An `uint256` token id as string. Only available when the mint request succeeds" }, - "signature": { + "amount": { "type": "string", - "description": "Digital signature generated by the user for the specific Order", - "example": "0x" + "example": "1", + "nullable": true, + "description": "An `uint256` amount as string. Only relevant for mint requests on ERC1155 contracts" }, - "start_at": { + "activity_id": { + "type": "string", + "format": "uuid", + "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b", + "nullable": true, + "description": "The id of the mint activity associated with this mint request" + }, + "transaction_hash": { + "type": "string", + "nullable": true, + "description": "The transaction hash of the activity", + "example": "0x68d9eac5e3b3c3580404989a4030c948a78e1b07b2b5ea5688d8c38a6c61c93e" + }, + "created_at": { "type": "string", - "description": "Time after which Order is considered active", "format": "date-time", - "example": "2022-03-09T05:00:50.52Z" - } - }, - "example": { - "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "order_hash": "0x0821933d9391bc9bf11a6010fe84776c84b203abff0c1ad781fb4881409c8770", - "buy": [ - { - "type": "NATIVE", - "amount": "9750000000000000000", - "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" - } - ], - "fees": [ - { - "type": "MAKER_ECOSYSTEM", - "amount": "2250000000000000000", - "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" - } - ], - "end_at": "2022-03-10T05:00:50.52Z", - "protocol_data": { - "order_type": "FULL_RESTRICTED", - "counter": "1", - "zone_address": "0x12", - "seaport_address": "0x12", - "seaport_version": "1.4" + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the mint request was created" }, - "salt": "12686911856931635052326433555881236148", - "sell": [ - { - "type": "ERC721", - "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "token_id": "1" - } - ], - "signature": "0x", - "start_at": "2022-03-09T05:00:50.52Z" + "updated_at": { + "type": "string", + "format": "date-time", + "description": "When the mint request was last updated", + "example": "2022-08-16T17:43:26.991388Z" + }, + "error": { + "$ref": "#/components/schemas/MintRequestErrorMessage" + }, + "status": { + "$ref": "#/components/schemas/MintRequestStatus" + } }, "required": [ - "account_address", - "order_hash", - "buy", - "sell", - "fees", - "end_at", - "start_at", - "protocol_data", - "salt", - "signature" + "chain", + "collection_address", + "reference_id", + "owner_address", + "status", + "token_id", + "transaction_hash", + "error", + "created_at", + "updated_at" ] }, - "CreateBidRequestBody": { + "MintRequestErrorMessage": { "type": "object", + "description": "The error details in case the mint request fails", + "nullable": true, "properties": { - "account_address": { + "message": { + "description": "An error message in case the mint request fails", + "type": "string" + } + } + }, + "MintRequestStatus": { + "description": "The status of the mint request", + "example": "pending", + "type": "string", + "enum": [ + "pending", + "succeeded", + "failed" + ] + }, + "OperatorAllowlistStatus": { + "description": "The status of a contract on the operator allowlist", + "example": "requested", + "type": "string", + "enum": [ + "requested", + "approved", + "rejected", + "removed", + "added" + ] + }, + "OperatorAllowlistStatusDetails": { + "description": "The operator allowlist status details", + "oneOf": [ + { + "$ref": "#/components/schemas/OperatorAllowlistStatusRequested" + }, + { + "$ref": "#/components/schemas/OperatorAllowlistStatusUpdated" + } + ] + }, + "OperatorAllowlistStatusRequested": { + "type": "object", + "description": "The request details", + "properties": { + "purpose": { + "description": "Reason this contract needs to be added", "type": "string", - "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "pattern": "^0x[a-fA-F0-9]{40}$" + "example": "Custom crafting contract" }, - "order_hash": { + "is_settlement_contract": { + "description": "Attestation of whether this contract is a settlement contract", + "type": "boolean", + "example": false + } + }, + "required": [ + "purpose", + "is_settlement_contract" + ] + }, + "OperatorAllowlistStatusUpdated": { + "type": "object", + "description": "The update details", + "properties": { + "reason": { + "description": "Why this action was performed", "type": "string", - "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" + "example": "Contract meets expectations" + } + }, + "required": [ + "reason" + ] + }, + "OperatorAllowlistContractStatusInternal": { + "allOf": [ + { + "$ref": "#/components/schemas/OperatorAllowlistContractStatus" }, - "buy": { - "type": "array", - "description": "Buy item for bid should either be ERC721 or ERC1155 item", - "items": { - "$ref": "#/components/schemas/Item" - }, - "example": [ - { - "type": "ERC721", - "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "token_id": "1" + { + "type": "object", + "properties": { + "org_name": { + "description": "The name of the organisation associated with this contract", + "nullable": true, + "type": "string", + "example": "Immutable" + }, + "org_tier": { + "$ref": "#/components/schemas/OrganisationTier" } - ], - "minItems": 1, - "maxItems": 1 - }, - "fees": { - "type": "array", - "description": "Buy fees should only include maker marketplace fees and should be no more than two entries as more entires will incur more gas. It is best practice to have this as few as possible.", - "items": { - "$ref": "#/components/schemas/Fee" }, - "example": [], - "minItems": 0, - "maxItems": 2 + "required": [ + "org_name", + "org_tier" + ] + } + ] + }, + "OperatorAllowlistContractStatus": { + "type": "object", + "properties": { + "chain": { + "$ref": "#/components/schemas/Chain" }, - "end_at": { + "contract_address": { + "type": "string", + "description": "The address of the contract", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + "status": { + "$ref": "#/components/schemas/OperatorAllowlistStatus" + }, + "details": { + "$ref": "#/components/schemas/OperatorAllowlistStatusDetails" + }, + "created_at": { "type": "string", - "description": "Time after which the Order is considered expired", "format": "date-time", - "example": "2022-03-09T05:00:50.52Z" + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the contract status was created" }, - "protocol_data": { - "$ref": "#/components/schemas/ProtocolData" + "created_by": { + "type": "string", + "format": "email", + "description": "Who created the status", + "example": "user@immutable.com" + } + }, + "required": [ + "chain", + "contract_address", + "status", + "details", + "created_at", + "created_by" + ] + }, + "Call": { + "type": "object", + "properties": { + "target_address": { + "$ref": "#/components/schemas/Address" }, - "salt": { + "function_signature": { "type": "string", - "description": "A random value added to the create Order request", - "example": "12686911856931635052326433555881236148" + "description": "The function signature", + "example": "mint(address,uint256)" }, - "sell": { + "function_args": { "type": "array", - "description": "Sell item for bid should be an ERC20 item", "items": { - "$ref": "#/components/schemas/ERC20Item" + "type": "string" }, + "description": "The function arguments", "example": [ - { - "type": "ERC20", - "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "amount": "9750000000000000000" - } - ], - "minItems": 1, - "maxItems": 1 - }, - "signature": { - "type": "string", - "description": "Digital signature generated by the user for the specific Order", - "example": "0x" - }, - "start_at": { - "type": "string", - "description": "Time after which Order is considered active", - "format": "date-time", - "example": "2022-03-09T05:00:50.52Z" + "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e", + "1" + ] } }, - "example": { - "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "order_hash": "0x0821933d9391bc9bf11a6010fe84776c84b203abff0c1ad781fb4881409c8770", - "sell": [ - { - "type": "ERC20", - "amount": "9750000000000000000", - "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" - } - ], - "fees": [ - { - "type": "MAKER_ECOSYSTEM", - "amount": "2250000000000000000", - "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" - } - ], - "end_at": "2022-03-10T05:00:50.52Z", - "protocol_data": { - "order_type": "FULL_RESTRICTED", - "counter": "1", - "zone_address": "0x12", - "seaport_address": "0x12", - "seaport_version": "1.5" - }, - "salt": "12686911856931635052326433555881236148", - "buy": [ - { - "type": "ERC721", - "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "token_id": "1" - } - ], - "signature": "0x", - "start_at": "2022-03-09T05:00:50.52Z" - }, "required": [ - "account_address", - "order_hash", - "buy", - "sell", - "fees", - "end_at", - "start_at", - "protocol_data", - "salt", - "signature" + "target_address", + "function_signature", + "function_args" ] }, - "CreateCollectionBidRequestBody": { + "SignCraftingRequest": { "type": "object", "properties": { - "account_address": { - "type": "string", - "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "pattern": "^0x[a-fA-F0-9]{40}$" - }, - "order_hash": { - "type": "string", - "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" - }, - "buy": { - "type": "array", - "description": "Buy item for collection bid should either be ERC721 or ERC1155 collection item", - "items": { - "$ref": "#/components/schemas/AssetCollectionItem" - }, - "example": [ - { - "type": "ERC721_COLLECTION", - "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "amount": "1" + "multi_caller": { + "type": "object", + "properties": { + "address": { + "$ref": "#/components/schemas/Address" + }, + "name": { + "type": "string", + "description": "The name of the multicaller contract", + "example": "Multicaller" + }, + "version": { + "type": "string", + "description": "The version of the multicaller contract", + "example": "1" } - ], - "minItems": 1, - "maxItems": 1 - }, - "fees": { - "type": "array", - "description": "Buy fees should only include maker marketplace fees and should be no more than two entries as more entires will incur more gas. It is best practice to have this as few as possible.", - "items": { - "$ref": "#/components/schemas/Fee" }, - "example": [], - "minItems": 0, - "maxItems": 2 - }, - "end_at": { - "type": "string", - "description": "Time after which the Order is considered expired", - "format": "date-time", - "example": "2022-03-09T05:00:50.52Z" - }, - "protocol_data": { - "$ref": "#/components/schemas/ProtocolData" + "required": [ + "address", + "name", + "version" + ] }, - "salt": { + "reference_id": { "type": "string", - "description": "A random value added to the create Order request", - "example": "12686911856931635052326433555881236148" + "description": "The id of this request in the system that originates the crafting request, specified as a 32 byte hex string", + "example": "67f7d464b8f04f6a9a3b8d3cb4a21af0" }, - "sell": { + "calls": { "type": "array", - "description": "Sell item for collection bid should be an ERC20 item", + "description": "The calls to be signed", "items": { - "$ref": "#/components/schemas/ERC20Item" + "$ref": "#/components/schemas/Call" }, - "example": [ - { - "type": "ERC20", - "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "amount": "9750000000000000000" - } - ], - "minItems": 1, - "maxItems": 1 - }, - "signature": { - "type": "string", - "description": "Digital signature generated by the user for the specific Order", - "example": "0x" + "minLength": 1, + "maxLength": 100 }, - "start_at": { + "expires_at": { "type": "string", - "description": "Time after which Order is considered active", "format": "date-time", - "example": "2022-03-09T05:00:50.52Z" + "description": "The expiration time of the request", + "example": "2022-08-16T17:43:26.991388Z" } }, - "example": { - "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "order_hash": "0x0821933d9391bc9bf11a6010fe84776c84b203abff0c1ad781fb4881409c8770", - "sell": [ - { - "type": "ERC20", - "amount": "9750000000000000000", - "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" - } - ], - "fees": [ - { - "type": "MAKER_ECOSYSTEM", - "amount": "2250000000000000000", - "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" - } - ], - "end_at": "2022-03-10T05:00:50.52Z", - "protocol_data": { - "order_type": "FULL_RESTRICTED", - "counter": "1", - "zone_address": "0x12", - "seaport_address": "0x12", - "seaport_version": "1.5" + "required": [ + "multi_caller", + "reference_id", + "calls", + "expires_at" + ] + }, + "SignCraftingResult": { + "type": "object", + "properties": { + "signer_address": { + "$ref": "#/components/schemas/Address" }, - "salt": "12686911856931635052326433555881236148", - "buy": [ - { - "type": "ERC721_COLLECTION", - "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "amount": "1" - } - ], - "signature": "0x", - "start_at": "2022-03-09T05:00:50.52Z" + "signature": { + "type": "string", + "description": "The signature of the request", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + } }, "required": [ - "account_address", - "order_hash", - "buy", - "sell", - "fees", - "end_at", - "start_at", - "protocol_data", - "salt", + "signer_address", "signature" ] }, - "Fee": { + "BasicAPIError": { "type": "object", "properties": { - "amount": { + "message": { "type": "string", - "description": "Fee payable to recipient upon settlement", - "example": "2250000000000000000", - "pattern": "\\d+" + "description": "Error Message", + "example": "all fields must be provided" }, - "type": { + "link": { "type": "string", - "description": "Fee type", - "example": "ROYALTY", - "enum": [ - "ROYALTY", - "MAKER_ECOSYSTEM", - "TAKER_ECOSYSTEM", - "PROTOCOL" - ] + "description": "Link to IMX documentation that can help resolve this error", + "example": "https://docs.x.immutable.com/reference/#/" }, - "recipient_address": { + "trace_id": { "type": "string", - "description": "Wallet address of fee recipient", - "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233", - "pattern": "^0x[a-fA-F0-9]{40}$" + "description": "Trace ID of the initial request", + "example": "e47634b79a5cd6894ddc9639ec4aad26" } }, - "example": { - "amount": "2250000000000000000", - "type": "ROYALTY", - "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" - }, "required": [ - "type", - "amount", - "recipient_address" + "message", + "link", + "trace_id" ] }, - "Order": { - "type": "object", - "properties": { - "account_address": { - "type": "string", + "APIError400": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" + }, + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "VALIDATION_ERROR" + ], + "example": "VALIDATION_ERROR" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error" + } + }, + "required": [ + "code", + "details" + ] + } + ] + }, + "APIError404": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" + }, + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "RESOURCE_NOT_FOUND" + ], + "example": "RESOURCE_NOT_FOUND" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error" + } + }, + "required": [ + "code", + "details" + ] + } + ] + }, + "APIError500": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" + }, + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "INTERNAL_SERVER_ERROR" + ], + "example": "INTERNAL_SERVER_ERROR" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error" + } + }, + "required": [ + "code", + "details" + ] + } + ] + }, + "APIError401": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" + }, + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "UNAUTHORISED_REQUEST" + ], + "example": "UNAUTHORISED_REQUEST" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error" + } + }, + "required": [ + "code", + "details" + ] + } + ] + }, + "APIError403": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" + }, + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "AUTHENTICATION_ERROR" + ], + "example": "AUTHENTICATION_ERROR" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error" + } + }, + "required": [ + "code", + "details" + ] + } + ] + }, + "APIError429": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" + }, + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "TOO_MANY_REQUESTS_ERROR" + ], + "example": "TOO_MANY_REQUESTS_ERROR" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error" + } + }, + "required": [ + "code", + "details" + ] + } + ] + }, + "APIError409": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" + }, + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "CONFLICT_ERROR" + ], + "example": "CONFLICT_ERROR" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error", + "additionalProperties": true + } + }, + "required": [ + "code", + "details" + ] + } + ] + }, + "Item": { + "oneOf": [ + { + "$ref": "#/components/schemas/NativeItem" + }, + { + "$ref": "#/components/schemas/ERC20Item" + }, + { + "$ref": "#/components/schemas/ERC721Item" + }, + { + "$ref": "#/components/schemas/ERC1155Item" + }, + { + "$ref": "#/components/schemas/ERC721CollectionItem" + }, + { + "$ref": "#/components/schemas/ERC1155CollectionItem" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "NATIVE": "#/components/schemas/NativeItem", + "ERC20": "#/components/schemas/ERC20Item", + "ERC721": "#/components/schemas/ERC721Item", + "ERC1155": "#/components/schemas/ERC1155Item", + "ERC721_COLLECTION": "#/components/schemas/ERC721CollectionItem", + "ERC1155_COLLECTION": "#/components/schemas/ERC1155CollectionItem" + } + } + }, + "AssetCollectionItem": { + "oneOf": [ + { + "$ref": "#/components/schemas/ERC721CollectionItem" + }, + { + "$ref": "#/components/schemas/ERC1155CollectionItem" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "ERC721_COLLECTION": "#/components/schemas/ERC721CollectionItem", + "ERC1155_COLLECTION": "#/components/schemas/ERC1155CollectionItem" + } + } + }, + "FulfillmentDataRequest": { + "type": "object", + "properties": { + "order_id": { + "type": "string", + "format": "uuid" + }, + "taker_address": { + "type": "string", + "description": "Address of the intended account fulfilling the order", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "fees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Fee" + }, + "example": [ + { + "type": "TAKER_ECOSYSTEM", + "amount": "2250000000000000000", + "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" + } + ], + "minItems": 0, + "maxItems": 2 + }, + "token_id": { + "type": "string", + "description": "Token ID for the ERC721 or ERC1155 token when fulfilling a collection order", + "example": "123", + "pattern": "\\d+" + } + }, + "required": [ + "order_id", + "fees", + "taker_address" + ] + }, + "FulfillableOrder": { + "type": "object", + "properties": { + "order": { + "$ref": "#/components/schemas/Order" + }, + "token_id": { + "type": "string", + "description": "Token ID for the ERC721 or ERC1155 token when fulfilling a collection order", + "example": "123", + "pattern": "\\d+" + }, + "extra_data": { + "type": "string" + } + }, + "required": [ + "extra_data", + "order" + ] + }, + "UnfulfillableOrder": { + "type": "object", + "properties": { + "order_id": { + "type": "string", + "description": "OrderID for the requested but unfulfillable order", + "example": "7df3e99e-f7b3-459c-bef6-ffb66a18bb59" + }, + "token_id": { + "type": "string", + "description": "Token ID for the ERC721 or ERC1155 token when fulfilling a collection order", + "example": "123", + "pattern": "\\d+" + }, + "reason": { + "type": "string", + "description": "Nullable string containing error reason if the signing is unsuccessful for the order", + "example": "Invalid order status INACTIVE for order 7df3e99e-f7b3-459c-bef6-ffb66a18bb59" + } + }, + "required": [ + "reason", + "order_id" + ] + }, + "NativeItem": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Token type user is offering, which in this case is the native IMX token", + "example": "NATIVE", + "enum": [ + "NATIVE" + ] + }, + "amount": { + "type": "string", + "description": "A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).", + "example": "9750000000000000000", + "pattern": "\\d+" + } + }, + "required": [ + "type", + "amount" + ] + }, + "ERC20Item": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Token type user is offering, which in this case is ERC20", + "example": "ERC20", + "enum": [ + "ERC20" + ] + }, + "contract_address": { + "type": "string", + "description": "Address of ERC20 token", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "type": "string", + "description": "A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).", + "example": "9750000000000000000", + "pattern": "\\d+" + } + }, + "required": [ + "type", + "contract_address", + "amount" + ] + }, + "ERC721Item": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Token type user is offering, which in this case is ERC721", + "example": "ERC721", + "enum": [ + "ERC721" + ] + }, + "contract_address": { + "type": "string", + "description": "Address of ERC721 token", + "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "token_id": { + "type": "string", + "description": "ID of ERC721 token", + "example": "1", + "pattern": "\\d+" + } + }, + "required": [ + "type", + "contract_address", + "token_id" + ] + }, + "ERC1155Item": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Token type user is offering, which in this case is ERC1155", + "example": "ERC1155", + "enum": [ + "ERC1155" + ] + }, + "contract_address": { + "type": "string", + "description": "Address of ERC1155 token", + "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "token_id": { + "type": "string", + "description": "ID of ERC1155 token", + "example": "1", + "pattern": "\\d+" + }, + "amount": { + "type": "string", + "description": "A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).", + "example": "9750000000000000000", + "pattern": "\\d+" + } + }, + "required": [ + "type", + "contract_address", + "token_id", + "amount" + ] + }, + "ERC721CollectionItem": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Token type user is offering, which in this case is ERC721", + "example": "ERC721_COLLECTION", + "enum": [ + "ERC721_COLLECTION" + ] + }, + "contract_address": { + "type": "string", + "description": "Address of ERC721 collection", + "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "type": "string", + "description": "A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).", + "example": "9750000000000000000", + "pattern": "\\d+" + } + }, + "required": [ + "type", + "contract_address", + "amount" + ] + }, + "ERC1155CollectionItem": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Token type user is offering, which in this case is ERC1155", + "example": "ERC1155_COLLECTION", + "enum": [ + "ERC1155_COLLECTION" + ] + }, + "contract_address": { + "type": "string", + "description": "Address of ERC1155 collection", + "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "type": "string", + "description": "A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).", + "example": "9750000000000000000", + "pattern": "\\d+" + } + }, + "required": [ + "type", + "contract_address", + "amount" + ] + }, + "CancelOrdersRequestBody": { + "type": "object", + "properties": { + "account_address": { + "type": "string", + "description": "Address of the user initiating the cancel request", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "orders": { + "type": "array", + "description": "List of order ids proposed for cancellation", + "items": { + "type": "string", + "format": "uuid" + }, + "uniqueItems": true, + "minItems": 1, + "maxItems": 20 + }, + "signature": { + "type": "string", + "description": "Signature generated by the user for the specific cancellation request", + "example": "0x12345" + } + }, + "required": [ + "account_address", + "orders", + "signature" + ], + "example": { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "ids": [ + "018a8c71-d7e4-e303-a2ef-318871ef7756", + "238a8c71-d7e4-e303-a2ef-318871ef7778", + "458a8c71-d7e4-e303-a2ef-318871ef7790" + ], + "signature": 291 + } + }, + "CreateListingRequestBody": { + "type": "object", + "properties": { + "account_address": { + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "order_hash": { + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" + }, + "buy": { + "type": "array", + "description": "Buy item for listing should either be NATIVE or ERC20 item", + "items": { + "$ref": "#/components/schemas/Item" + }, + "example": [ + { + "type": "NATIVE", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "minItems": 1, + "maxItems": 1 + }, + "fees": { + "type": "array", + "description": "Buy fees should only include maker marketplace fees and should be no more than two entries as more entires will incur more gas. It is best practice to have this as few as possible.", + "items": { + "$ref": "#/components/schemas/Fee" + }, + "example": [], + "minItems": 0, + "maxItems": 2 + }, + "end_at": { + "type": "string", + "description": "Time after which the Order is considered expired", + "format": "date-time", + "example": "2022-03-09T05:00:50.52Z" + }, + "protocol_data": { + "$ref": "#/components/schemas/ProtocolData" + }, + "salt": { + "type": "string", + "description": "A random value added to the create Order request", + "example": "12686911856931635052326433555881236148" + }, + "sell": { + "type": "array", + "description": "Sell item for listing should be an ERC721 item", + "items": { + "$ref": "#/components/schemas/Item" + }, + "example": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "minItems": 1, + "maxItems": 1 + }, + "signature": { + "type": "string", + "description": "Digital signature generated by the user for the specific Order", + "example": "0x" + }, + "start_at": { + "type": "string", + "description": "Time after which Order is considered active", + "format": "date-time", + "example": "2022-03-09T05:00:50.52Z" + } + }, + "example": { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "order_hash": "0x0821933d9391bc9bf11a6010fe84776c84b203abff0c1ad781fb4881409c8770", + "buy": [ + { + "type": "NATIVE", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [ + { + "type": "MAKER_ECOSYSTEM", + "amount": "2250000000000000000", + "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" + } + ], + "end_at": "2022-03-10T05:00:50.52Z", + "protocol_data": { + "order_type": "FULL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.4" + }, + "salt": "12686911856931635052326433555881236148", + "sell": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z" + }, + "required": [ + "account_address", + "order_hash", + "buy", + "sell", + "fees", + "end_at", + "start_at", + "protocol_data", + "salt", + "signature" + ] + }, + "CreateBidRequestBody": { + "type": "object", + "properties": { + "account_address": { + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "order_hash": { + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" + }, + "buy": { + "type": "array", + "description": "Buy item for bid should either be ERC721 or ERC1155 item", + "items": { + "$ref": "#/components/schemas/Item" + }, + "example": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "minItems": 1, + "maxItems": 1 + }, + "fees": { + "type": "array", + "description": "Buy fees should only include maker marketplace fees and should be no more than two entries as more entires will incur more gas. It is best practice to have this as few as possible.", + "items": { + "$ref": "#/components/schemas/Fee" + }, + "example": [], + "minItems": 0, + "maxItems": 2 + }, + "end_at": { + "type": "string", + "description": "Time after which the Order is considered expired", + "format": "date-time", + "example": "2022-03-09T05:00:50.52Z" + }, + "protocol_data": { + "$ref": "#/components/schemas/ProtocolData" + }, + "salt": { + "type": "string", + "description": "A random value added to the create Order request", + "example": "12686911856931635052326433555881236148" + }, + "sell": { + "type": "array", + "description": "Sell item for bid should be an ERC20 item", + "items": { + "$ref": "#/components/schemas/ERC20Item" + }, + "example": [ + { + "type": "ERC20", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "amount": "9750000000000000000" + } + ], + "minItems": 1, + "maxItems": 1 + }, + "signature": { + "type": "string", + "description": "Digital signature generated by the user for the specific Order", + "example": "0x" + }, + "start_at": { + "type": "string", + "description": "Time after which Order is considered active", + "format": "date-time", + "example": "2022-03-09T05:00:50.52Z" + } + }, + "example": { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "order_hash": "0x0821933d9391bc9bf11a6010fe84776c84b203abff0c1ad781fb4881409c8770", + "sell": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [ + { + "type": "MAKER_ECOSYSTEM", + "amount": "2250000000000000000", + "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" + } + ], + "end_at": "2022-03-10T05:00:50.52Z", + "protocol_data": { + "order_type": "FULL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "salt": "12686911856931635052326433555881236148", + "buy": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z" + }, + "required": [ + "account_address", + "order_hash", + "buy", + "sell", + "fees", + "end_at", + "start_at", + "protocol_data", + "salt", + "signature" + ] + }, + "CreateCollectionBidRequestBody": { + "type": "object", + "properties": { + "account_address": { + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "order_hash": { + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" + }, + "buy": { + "type": "array", + "description": "Buy item for collection bid should either be ERC721 or ERC1155 collection item", + "items": { + "$ref": "#/components/schemas/AssetCollectionItem" + }, + "example": [ + { + "type": "ERC721_COLLECTION", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "amount": "1" + } + ], + "minItems": 1, + "maxItems": 1 + }, + "fees": { + "type": "array", + "description": "Buy fees should only include maker marketplace fees and should be no more than two entries as more entires will incur more gas. It is best practice to have this as few as possible.", + "items": { + "$ref": "#/components/schemas/Fee" + }, + "example": [], + "minItems": 0, + "maxItems": 2 + }, + "end_at": { + "type": "string", + "description": "Time after which the Order is considered expired", + "format": "date-time", + "example": "2022-03-09T05:00:50.52Z" + }, + "protocol_data": { + "$ref": "#/components/schemas/ProtocolData" + }, + "salt": { + "type": "string", + "description": "A random value added to the create Order request", + "example": "12686911856931635052326433555881236148" + }, + "sell": { + "type": "array", + "description": "Sell item for collection bid should be an ERC20 item", + "items": { + "$ref": "#/components/schemas/ERC20Item" + }, + "example": [ + { + "type": "ERC20", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "amount": "9750000000000000000" + } + ], + "minItems": 1, + "maxItems": 1 + }, + "signature": { + "type": "string", + "description": "Digital signature generated by the user for the specific Order", + "example": "0x" + }, + "start_at": { + "type": "string", + "description": "Time after which Order is considered active", + "format": "date-time", + "example": "2022-03-09T05:00:50.52Z" + } + }, + "example": { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "order_hash": "0x0821933d9391bc9bf11a6010fe84776c84b203abff0c1ad781fb4881409c8770", + "sell": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [ + { + "type": "MAKER_ECOSYSTEM", + "amount": "2250000000000000000", + "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" + } + ], + "end_at": "2022-03-10T05:00:50.52Z", + "protocol_data": { + "order_type": "FULL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "salt": "12686911856931635052326433555881236148", + "buy": [ + { + "type": "ERC721_COLLECTION", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "amount": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z" + }, + "required": [ + "account_address", + "order_hash", + "buy", + "sell", + "fees", + "end_at", + "start_at", + "protocol_data", + "salt", + "signature" + ] + }, + "Fee": { + "type": "object", + "properties": { + "amount": { + "type": "string", + "description": "Fee payable to recipient upon settlement", + "example": "2250000000000000000", + "pattern": "\\d+" + }, + "type": { + "type": "string", + "description": "Fee type", + "example": "ROYALTY", + "enum": [ + "ROYALTY", + "MAKER_ECOSYSTEM", + "TAKER_ECOSYSTEM", + "PROTOCOL" + ] + }, + "recipient_address": { + "type": "string", + "description": "Wallet address of fee recipient", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + }, + "example": { + "amount": "2250000000000000000", + "type": "ROYALTY", + "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" + }, + "required": [ + "type", + "amount", + "recipient_address" + ] + }, + "Order": { + "type": "object", + "properties": { + "account_address": { + "type": "string", "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" }, "buy": { @@ -8638,11 +9248,213 @@ "blockchain_metadata" ] }, - "CancelOrdersResult": { + "CancelOrdersResult": { + "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/CancelOrdersResultData" + } + }, + "required": [ + "result" + ], + "example": { + "result": { + "successful_cancellations": [ + "018a8c71-d7e4-e303-a2ef-318871ef7756", + "458a8c71-d7e4-e303-a2ef-318871ef7778" + ], + "pending_cancellations": [ + "238a8c71-d7e4-e303-a2ef-318871ef7778", + "898a8c71-d7e4-e303-a2ef-318871ef7735" + ], + "failed_cancellations": [ + { + "order": "458a8c71-d7e4-e303-a2ef-318871ef7790", + "reason_code": "FILLED" + }, + { + "order": "338a8c71-d7e4-e303-a2ef-318871ef7342", + "reason_code": "FILLED" + } + ] + } + } + }, + "CancelOrdersResultData": { + "type": "object", + "properties": { + "successful_cancellations": { + "type": "array", + "description": "Orders which were successfully cancelled", + "items": { + "type": "string" + }, + "minItems": 0, + "maxItems": 10 + }, + "pending_cancellations": { + "type": "array", + "description": "Orders which are marked for cancellation but the cancellation cannot be guaranteed", + "items": { + "type": "string" + }, + "minItems": 0, + "maxItems": 10 + }, + "failed_cancellations": { + "type": "array", + "description": "Orders which failed to be cancelled", + "items": { + "$ref": "#/components/schemas/FailedOrderCancellation" + }, + "minItems": 0, + "maxItems": 10 + } + }, + "required": [ + "successful_cancellations", + "pending_cancellations", + "failed_cancellations" + ] + }, + "FailedOrderCancellation": { + "type": "object", + "properties": { + "order": { + "type": "string", + "description": "ID of the order which failed to be cancelled", + "example": "7df3e99e-f7b3-459c-bef6-ffb66a18bb59" + }, + "reason_code": { + "type": "string", + "enum": [ + "FILLED" + ], + "description": "Reason code indicating why the order failed to be cancelled", + "example": "FILLED" + } + }, + "required": [ + "order", + "reason_code" + ] + }, + "ListingResult": { + "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/Order" + } + }, + "required": [ + "result" + ], + "example": { + "result": { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "buy": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "created_at": "2022-03-07T07:20:50.52Z", + "end_at": "2022-03-10T05:00:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534B", + "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "protocol_data": { + "order_type": "FULL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "salt": "12686911856931635052326433555881236148", + "sell": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z", + "status": { + "name": "EXPIRED" + }, + "type": { + "name": "LISTING" + }, + "updated_at": "2022-03-07T07:20:50.52Z" + } + } + }, + "BidResult": { + "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/Order" + } + }, + "required": [ + "result" + ], + "example": { + "result": { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "sell": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "created_at": "2022-03-07T07:20:50.52Z", + "end_at": "2022-03-10T05:00:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534B", + "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "protocol_data": { + "order_type": "FULL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "salt": "12686911856931635052326433555881236148", + "buy": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z", + "status": { + "name": "EXPIRED" + }, + "type": "BID", + "updated_at": "2022-03-07T07:20:50.52Z" + } + } + }, + "CollectionBidResult": { "type": "object", "properties": { "result": { - "$ref": "#/components/schemas/CancelOrdersResultData" + "$ref": "#/components/schemas/Order" } }, "required": [ @@ -8650,147 +9462,377 @@ ], "example": { "result": { - "successful_cancellations": [ - "018a8c71-d7e4-e303-a2ef-318871ef7756", - "458a8c71-d7e4-e303-a2ef-318871ef7778" - ], - "pending_cancellations": [ - "238a8c71-d7e4-e303-a2ef-318871ef7778", - "898a8c71-d7e4-e303-a2ef-318871ef7735" - ], - "failed_cancellations": [ + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "sell": [ { - "order": "458a8c71-d7e4-e303-a2ef-318871ef7790", - "reason_code": "FILLED" - }, + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "created_at": "2022-03-07T07:20:50.52Z", + "end_at": "2022-03-10T05:00:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", + "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "protocol_data": { + "order_type": "PARTIAL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "salt": "12686911856931635052326433555881236148", + "buy": [ { - "order": "338a8c71-d7e4-e303-a2ef-318871ef7342", - "reason_code": "FILLED" + "type": "ERC721_COLLECTION", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "amount": "1" } - ] + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z", + "status": { + "name": "EXPIRED" + }, + "type": "COLLECTION_BID", + "updated_at": "2022-03-07T07:20:50.52Z" } } }, - "CancelOrdersResultData": { + "ListListingsResult": { "type": "object", "properties": { - "successful_cancellations": { + "page": { + "$ref": "#/components/schemas/Page" + }, + "result": { "type": "array", - "description": "Orders which were successfully cancelled", "items": { - "type": "string" + "$ref": "#/components/schemas/Order" }, "minItems": 0, - "maxItems": 10 + "maxItems": 200 + } + }, + "required": [ + "page", + "result" + ], + "example": { + "page": { + "previous_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA", + "next_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA" }, - "pending_cancellations": { - "type": "array", - "description": "Orders which are marked for cancellation but the cancellation cannot be guaranteed", - "items": { - "type": "string" + "result": [ + { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "buy": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "created_at": "2022-03-07T07:20:50.52Z", + "end_at": "2022-03-10T05:00:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", + "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "protocol_data": { + "order_type": "FULL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "salt": "12686911856931635052326433555881236148", + "sell": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z", + "status": { + "name": "EXPIRED" + }, + "updated_at": "2022-03-07T07:20:50.52Z" }, - "minItems": 0, - "maxItems": 10 + { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "buy": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "created_at": "2022-03-07T07:20:50.52Z", + "end_at": "2022-03-10T05:00:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", + "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "protocol_data": { + "order_type": "FULL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "salt": "12686911856931635052326433555881236148", + "sell": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z", + "status": { + "name": "EXPIRED" + }, + "updated_at": "2022-03-07T07:20:50.52Z" + } + ] + } + }, + "ListBidsResult": { + "type": "object", + "properties": { + "page": { + "$ref": "#/components/schemas/Page" }, - "failed_cancellations": { + "result": { "type": "array", - "description": "Orders which failed to be cancelled", "items": { - "$ref": "#/components/schemas/FailedOrderCancellation" + "$ref": "#/components/schemas/Order" }, "minItems": 0, - "maxItems": 10 + "maxItems": 200 } }, "required": [ - "successful_cancellations", - "pending_cancellations", - "failed_cancellations" - ] + "page", + "result" + ], + "example": { + "page": { + "previous_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA", + "next_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA" + }, + "result": [ + { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "sell": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "created_at": "2022-03-07T07:20:50.52Z", + "end_at": "2022-03-10T05:00:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", + "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "protocol_data": { + "order_type": "FULL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "salt": "12686911856931635052326433555881236148", + "buy": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z", + "status": { + "name": "EXPIRED" + }, + "updated_at": "2022-03-07T07:20:50.52Z" + }, + { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "sell": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "created_at": "2022-03-07T07:20:50.52Z", + "end_at": "2022-03-10T05:00:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", + "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "protocol_data": { + "order_type": "FULL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "salt": "12686911856931635052326433555881236148", + "buy": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z", + "status": { + "name": "EXPIRED" + }, + "updated_at": "2022-03-07T07:20:50.52Z" + } + ] + } }, - "FailedOrderCancellation": { + "ListCollectionBidsResult": { "type": "object", "properties": { - "order": { - "type": "string", - "description": "ID of the order which failed to be cancelled", - "example": "7df3e99e-f7b3-459c-bef6-ffb66a18bb59" + "page": { + "$ref": "#/components/schemas/Page" }, - "reason_code": { - "type": "string", - "enum": [ - "FILLED" - ], - "description": "Reason code indicating why the order failed to be cancelled", - "example": "FILLED" - } - }, - "required": [ - "order", - "reason_code" - ] - }, - "ListingResult": { - "type": "object", - "properties": { "result": { - "$ref": "#/components/schemas/Order" + "type": "array", + "items": { + "$ref": "#/components/schemas/Order" + }, + "minItems": 0, + "maxItems": 200 } }, "required": [ + "page", "result" ], "example": { - "result": { - "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "buy": [ - { - "type": "ERC20", - "amount": "9750000000000000000", - "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" - } - ], - "fees": [], - "chain": { - "id": "eip155:11155111", - "name": "sepolia" - }, - "created_at": "2022-03-07T07:20:50.52Z", - "end_at": "2022-03-10T05:00:50.52Z", - "id": "018792C9-4AD7-8EC4-4038-9E05C598534B", - "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "protocol_data": { - "order_type": "FULL_RESTRICTED", - "counter": "1", - "zone_address": "0x12", - "seaport_address": "0x12", - "seaport_version": "1.5" - }, - "salt": "12686911856931635052326433555881236148", - "sell": [ - { - "type": "ERC721", - "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "token_id": "1" - } - ], - "signature": "0x", - "start_at": "2022-03-09T05:00:50.52Z", - "status": { - "name": "EXPIRED" - }, - "type": { - "name": "LISTING" + "page": { + "previous_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA", + "next_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA" + }, + "result": [ + { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "sell": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "created_at": "2022-03-07T07:20:50.52Z", + "end_at": "2022-03-10T05:00:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", + "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "protocol_data": { + "order_type": "PARTIAL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "salt": "12686911856931635052326433555881236148", + "buy": [ + { + "type": "ERC721_COLLECTION", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "amount": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z", + "status": { + "name": "EXPIRED" + }, + "updated_at": "2022-03-07T07:20:50.52Z" }, - "updated_at": "2022-03-07T07:20:50.52Z" - } + { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "sell": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "created_at": "2022-03-07T07:20:50.52Z", + "end_at": "2022-03-10T05:00:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", + "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "protocol_data": { + "order_type": "PARTIAL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "salt": "12686911856931635052326433555881236148", + "buy": [ + { + "type": "ERC721_COLLECTION", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "amount": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z", + "status": { + "name": "EXPIRED" + }, + "updated_at": "2022-03-07T07:20:50.52Z" + } + ] } }, - "BidResult": { + "TradeResult": { "type": "object", "properties": { "result": { - "$ref": "#/components/schemas/Order" + "$ref": "#/components/schemas/Trade" } }, "required": [ @@ -8798,103 +9840,36 @@ ], "example": { "result": { - "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "sell": [ + "buy": [ { "type": "ERC20", "amount": "9750000000000000000", "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" } ], - "fees": [], + "buyer_address": "0xFC99a706C0D05B8C71E1fAAC91b3E1343aC34D40", + "buyer_fees": [], "chain": { "id": "eip155:11155111", "name": "sepolia" }, "created_at": "2022-03-07T07:20:50.52Z", - "end_at": "2022-03-10T05:00:50.52Z", "id": "018792C9-4AD7-8EC4-4038-9E05C598534B", - "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "protocol_data": { - "order_type": "FULL_RESTRICTED", - "counter": "1", - "zone_address": "0x12", - "seaport_address": "0x12", - "seaport_version": "1.5" - }, - "salt": "12686911856931635052326433555881236148", - "buy": [ - { - "type": "ERC721", - "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "token_id": "1" - } - ], - "signature": "0x", - "start_at": "2022-03-09T05:00:50.52Z", - "status": { - "name": "EXPIRED" - }, - "type": "BID", - "updated_at": "2022-03-07T07:20:50.52Z" - } - } - }, - "CollectionBidResult": { - "type": "object", - "properties": { - "result": { - "$ref": "#/components/schemas/Order" - } - }, - "required": [ - "result" - ], - "example": { - "result": { - "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", "sell": [ { - "type": "ERC20", - "amount": "9750000000000000000", - "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" - } - ], - "fees": [], - "chain": { - "id": "eip155:11155111", - "name": "sepolia" - }, - "created_at": "2022-03-07T07:20:50.52Z", - "end_at": "2022-03-10T05:00:50.52Z", - "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", - "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "protocol_data": { - "order_type": "PARTIAL_RESTRICTED", - "counter": "1", - "zone_address": "0x12", - "seaport_address": "0x12", - "seaport_version": "1.5" - }, - "salt": "12686911856931635052326433555881236148", - "buy": [ - { - "type": "ERC721_COLLECTION", + "type": "ERC721", "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "amount": "1" + "token_id": "1" } ], - "signature": "0x", - "start_at": "2022-03-09T05:00:50.52Z", - "status": { - "name": "EXPIRED" - }, - "type": "COLLECTION_BID", + "seller_address": "0x002b9B1cbf464782Df5d48870358FA6c09f1b19D", + "maker_address": "0x002b9B1cbf464782Df5d48870358FA6c09f1b19D", + "taker_address": "0xFC99a706C0D05B8C71E1fAAC91b3E1343aC34D40", "updated_at": "2022-03-07T07:20:50.52Z" } } }, - "ListListingsResult": { + "ListTradeResult": { "type": "object", "properties": { "page": { @@ -8903,7 +9878,7 @@ "result": { "type": "array", "items": { - "$ref": "#/components/schemas/Order" + "$ref": "#/components/schemas/Trade" }, "minItems": 0, "maxItems": 200 @@ -8920,7 +9895,6 @@ }, "result": [ { - "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", "buy": [ { "type": "ERC20", @@ -8928,23 +9902,14 @@ "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" } ], - "fees": [], + "buyer_address": "0xFC99a706C0D05B8C71E1fAAC91b3E1343aC34D40", + "buyer_fees": [], "chain": { "id": "eip155:11155111", "name": "sepolia" }, "created_at": "2022-03-07T07:20:50.52Z", - "end_at": "2022-03-10T05:00:50.52Z", "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", - "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "protocol_data": { - "order_type": "FULL_RESTRICTED", - "counter": "1", - "zone_address": "0x12", - "seaport_address": "0x12", - "seaport_version": "1.5" - }, - "salt": "12686911856931635052326433555881236148", "sell": [ { "type": "ERC721", @@ -8952,15 +9917,12 @@ "token_id": "1" } ], - "signature": "0x", - "start_at": "2022-03-09T05:00:50.52Z", - "status": { - "name": "EXPIRED" - }, + "seller_address": "0x002b9B1cbf464782Df5d48870358FA6c09f1b19D", + "maker_address": "0x002b9B1cbf464782Df5d48870358FA6c09f1b19D", + "taker_address": "0xFC99a706C0D05B8C71E1fAAC91b3E1343aC34D40", "updated_at": "2022-03-07T07:20:50.52Z" }, { - "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", "buy": [ { "type": "ERC20", @@ -8968,23 +9930,14 @@ "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" } ], - "fees": [], + "buyer_address": "0x017406f3F27d507a1491976B7835CE5CD0fA647a", + "buyer_fees": [], "chain": { "id": "eip155:11155111", "name": "sepolia" }, "created_at": "2022-03-07T07:20:50.52Z", - "end_at": "2022-03-10T05:00:50.52Z", "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", - "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "protocol_data": { - "order_type": "FULL_RESTRICTED", - "counter": "1", - "zone_address": "0x12", - "seaport_address": "0x12", - "seaport_version": "1.5" - }, - "salt": "12686911856931635052326433555881236148", "sell": [ { "type": "ERC721", @@ -8992,814 +9945,884 @@ "token_id": "1" } ], - "signature": "0x", - "start_at": "2022-03-09T05:00:50.52Z", - "status": { - "name": "EXPIRED" - }, + "seller_address": "0xC73349c545C1D757eb650cDc463A2f6dF1Ec41cb", + "maker_address": "0xC73349c545C1D757eb650cDc463A2f6dF1Ec41cb", + "taker_address": "0x017406f3F27d507a1491976B7835CE5CD0fA647a", "updated_at": "2022-03-07T07:20:50.52Z" } ] } }, - "ListBidsResult": { + "OrderStatus": { + "description": "The Order status", + "oneOf": [ + { + "$ref": "#/components/schemas/CancelledOrderStatus" + }, + { + "$ref": "#/components/schemas/PendingOrderStatus" + }, + { + "$ref": "#/components/schemas/ActiveOrderStatus" + }, + { + "$ref": "#/components/schemas/InactiveOrderStatus" + }, + { + "$ref": "#/components/schemas/FilledOrderStatus" + }, + { + "$ref": "#/components/schemas/ExpiredOrderStatus" + } + ], + "discriminator": { + "propertyName": "name", + "mapping": { + "CANCELLED": "#/components/schemas/CancelledOrderStatus", + "PENDING": "#/components/schemas/PendingOrderStatus", + "ACTIVE": "#/components/schemas/ActiveOrderStatus", + "INACTIVE": "#/components/schemas/InactiveOrderStatus", + "FILLED": "#/components/schemas/FilledOrderStatus", + "EXPIRED": "#/components/schemas/ExpiredOrderStatus" + } + } + }, + "CancelledOrderStatus": { "type": "object", "properties": { - "page": { - "$ref": "#/components/schemas/Page" + "name": { + "type": "string", + "description": "The order status indicating a order is has been cancelled or about to be cancelled.", + "enum": [ + "CANCELLED" + ] + }, + "pending": { + "type": "boolean", + "description": "Whether the cancellation of the order is pending", + "example": false + }, + "cancellation_type": { + "type": "string", + "description": "Whether the cancellation was done on-chain or off-chain or as a result of an underfunded account", + "enum": [ + "ON_CHAIN", + "OFF_CHAIN", + "UNDERFUNDED" + ], + "example": "ON_CHAIN" + } + }, + "required": [ + "name", + "pending", + "cancellation_type" + ] + }, + "PendingOrderStatus": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The order status that indicates the order is yet to be active due to various reasons.", + "enum": [ + "PENDING" + ] + }, + "evaluated": { + "type": "boolean", + "description": "Whether the order has been evaluated after its creation", + "example": false + }, + "started": { + "type": "boolean", + "description": "Whether the order has reached its specified start time", + "example": false + } + }, + "required": [ + "name", + "evaluated", + "started" + ] + }, + "ActiveOrderStatus": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The order status that indicates an order can be fulfilled.", + "enum": [ + "ACTIVE" + ] + } + }, + "required": [ + "name" + ] + }, + "InactiveOrderStatus": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The order status that indicates an order cannot be fulfilled.", + "enum": [ + "INACTIVE" + ] + }, + "sufficient_approvals": { + "type": "boolean", + "description": "Whether the order offerer has sufficient approvals", + "example": false + }, + "sufficient_balances": { + "type": "boolean", + "description": "Whether the order offerer still has sufficient balance to complete the order", + "example": false + } + }, + "required": [ + "name", + "sufficient_approvals", + "sufficient_balances" + ] + }, + "ExpiredOrderStatus": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "A terminal order status indicating that an order cannot be fulfilled due to expiry.", + "enum": [ + "EXPIRED" + ] + } + }, + "required": [ + "name" + ] + }, + "FilledOrderStatus": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "A terminal order status indicating that an order has been fulfilled.", + "enum": [ + "FILLED" + ] + } + }, + "required": [ + "name" + ] + }, + "OrderStatusName": { + "type": "string", + "description": "The Order status", + "enum": [ + "PENDING", + "ACTIVE", + "INACTIVE", + "FILLED", + "EXPIRED", + "CANCELLED" + ] + }, + "ProtocolData": { + "type": "object", + "properties": { + "order_type": { + "type": "string", + "description": "Seaport order type. Orders containing ERC721 tokens will need to pass in the order type as FULL_RESTRICTED while orders with ERC1155 tokens will need to pass in the order_type as PARTIAL_RESTRICTED", + "example": "FULL_RESTRICTED", + "enum": [ + "FULL_RESTRICTED", + "PARTIAL_RESTRICTED" + ] + }, + "counter": { + "type": "string", + "description": "big.Int or uint256 string for order counter", + "example": "92315562" + }, + "zone_address": { + "type": "string", + "description": "Immutable zone address", + "example": "0x12" }, - "result": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Order" - }, - "minItems": 0, - "maxItems": 200 + "seaport_address": { + "type": "string", + "description": "Immutable Seaport contract address", + "example": "0x12" + }, + "seaport_version": { + "type": "string", + "description": "Immutable Seaport contract version", + "example": "1.5" } }, - "required": [ - "page", - "result" - ], "example": { - "page": { - "previous_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA", - "next_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA" - }, - "result": [ - { - "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "sell": [ - { - "type": "ERC20", - "amount": "9750000000000000000", - "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" - } - ], - "fees": [], - "chain": { - "id": "eip155:11155111", - "name": "sepolia" - }, - "created_at": "2022-03-07T07:20:50.52Z", - "end_at": "2022-03-10T05:00:50.52Z", - "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", - "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "protocol_data": { - "order_type": "FULL_RESTRICTED", - "counter": "1", - "zone_address": "0x12", - "seaport_address": "0x12", - "seaport_version": "1.5" - }, - "salt": "12686911856931635052326433555881236148", - "buy": [ - { - "type": "ERC721", - "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "token_id": "1" - } - ], - "signature": "0x", - "start_at": "2022-03-09T05:00:50.52Z", - "status": { - "name": "EXPIRED" - }, - "updated_at": "2022-03-07T07:20:50.52Z" - }, - { - "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "sell": [ - { - "type": "ERC20", - "amount": "9750000000000000000", - "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" - } - ], - "fees": [], - "chain": { - "id": "eip155:11155111", - "name": "sepolia" - }, - "created_at": "2022-03-07T07:20:50.52Z", - "end_at": "2022-03-10T05:00:50.52Z", - "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", - "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "protocol_data": { - "order_type": "FULL_RESTRICTED", - "counter": "1", - "zone_address": "0x12", - "seaport_address": "0x12", - "seaport_version": "1.5" - }, - "salt": "12686911856931635052326433555881236148", - "buy": [ - { - "type": "ERC721", - "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "token_id": "1" - } - ], - "signature": "0x", - "start_at": "2022-03-09T05:00:50.52Z", - "status": { - "name": "EXPIRED" - }, - "updated_at": "2022-03-07T07:20:50.52Z" - } - ] - } + "order_type": "FULL_RESTRICTED", + "counter": "92315562", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "required": [ + "order_type", + "counter", + "zone_address", + "seaport_address", + "seaport_version" + ] }, - "ListCollectionBidsResult": { + "TradeBlockchainMetadata": { + "description": "The metadata related to the transaction in which the activity occurred", + "nullable": true, "type": "object", "properties": { - "page": { - "$ref": "#/components/schemas/Page" + "transaction_hash": { + "type": "string", + "description": "The transaction hash of the trade", + "example": "0x68d9eac5e3b3c3580404989a4030c948a78e1b07b2b5ea5688d8c38a6c61c93e" }, - "result": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Order" - }, - "minItems": 0, - "maxItems": 200 + "block_number": { + "description": "EVM block number (uint64 as string)", + "type": "string", + "example": "1" + }, + "transaction_index": { + "description": "Transaction index in a block (uint32 as string)", + "type": "string", + "example": "1" + }, + "log_index": { + "description": "The log index of the fulfillment event in a block (uint32 as string)", + "type": "string", + "example": "1" } }, "required": [ - "page", - "result" - ], - "example": { - "page": { - "previous_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA", - "next_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA" - }, - "result": [ - { - "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "sell": [ - { - "type": "ERC20", - "amount": "9750000000000000000", - "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" - } - ], - "fees": [], - "chain": { - "id": "eip155:11155111", - "name": "sepolia" - }, - "created_at": "2022-03-07T07:20:50.52Z", - "end_at": "2022-03-10T05:00:50.52Z", - "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", - "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "protocol_data": { - "order_type": "PARTIAL_RESTRICTED", - "counter": "1", - "zone_address": "0x12", - "seaport_address": "0x12", - "seaport_version": "1.5" - }, - "salt": "12686911856931635052326433555881236148", - "buy": [ - { - "type": "ERC721_COLLECTION", - "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "amount": "1" - } - ], - "signature": "0x", - "start_at": "2022-03-09T05:00:50.52Z", - "status": { - "name": "EXPIRED" - }, - "updated_at": "2022-03-07T07:20:50.52Z" - }, - { - "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "sell": [ - { - "type": "ERC20", - "amount": "9750000000000000000", - "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" - } - ], - "fees": [], - "chain": { - "id": "eip155:11155111", - "name": "sepolia" - }, - "created_at": "2022-03-07T07:20:50.52Z", - "end_at": "2022-03-10T05:00:50.52Z", - "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", - "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "protocol_data": { - "order_type": "PARTIAL_RESTRICTED", - "counter": "1", - "zone_address": "0x12", - "seaport_address": "0x12", - "seaport_version": "1.5" - }, - "salt": "12686911856931635052326433555881236148", - "buy": [ - { - "type": "ERC721_COLLECTION", - "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "amount": "1" - } - ], - "signature": "0x", - "start_at": "2022-03-09T05:00:50.52Z", - "status": { - "name": "EXPIRED" - }, - "updated_at": "2022-03-07T07:20:50.52Z" - } - ] - } + "transaction_hash", + "block_number", + "transaction_index", + "log_index" + ] }, - "TradeResult": { + "FillStatus": { + "description": "The ratio of the order that has been filled, an order that has been fully filled will have the same numerator and denominator values.", "type": "object", "properties": { - "result": { - "$ref": "#/components/schemas/Trade" + "numerator": { + "type": "string", + "description": "The numerator of the fill status", + "example": "1" + }, + "denominator": { + "type": "string", + "description": "The denominator of the fill status", + "example": "2" } }, "required": [ - "result" - ], - "example": { - "result": { - "buy": [ - { - "type": "ERC20", - "amount": "9750000000000000000", - "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + "numerator", + "denominator" + ] + }, + "APIError501": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" + }, + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "NOT_IMPLEMENTED_ERROR" + ], + "example": "NOT_IMPLEMENTED_ERROR" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error" } - ], - "buyer_address": "0xFC99a706C0D05B8C71E1fAAC91b3E1343aC34D40", - "buyer_fees": [], - "chain": { - "id": "eip155:11155111", - "name": "sepolia" }, - "created_at": "2022-03-07T07:20:50.52Z", - "id": "018792C9-4AD7-8EC4-4038-9E05C598534B", - "sell": [ - { - "type": "ERC721", - "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "token_id": "1" - } - ], - "seller_address": "0x002b9B1cbf464782Df5d48870358FA6c09f1b19D", - "maker_address": "0x002b9B1cbf464782Df5d48870358FA6c09f1b19D", - "taker_address": "0xFC99a706C0D05B8C71E1fAAC91b3E1343aC34D40", - "updated_at": "2022-03-07T07:20:50.52Z" + "required": [ + "code", + "details" + ] } - } + ] }, - "ListTradeResult": { + "CreateCounterfactualAddressRequest": { "type": "object", + "required": [ + "ethereum_address", + "ethereum_signature" + ], "properties": { - "page": { - "$ref": "#/components/schemas/Page" + "ethereum_address": { + "description": "The user's UAK address", + "type": "string", + "maxLength": 42 }, - "result": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Trade" - }, - "minItems": 0, - "maxItems": 200 + "ethereum_signature": { + "description": "The signature generated with the UAK", + "type": "string", + "maxLength": 132 } }, + "additionalProperties": false + }, + "GetTransactionMetadataRequest": { + "type": "object", "required": [ - "page", - "result" + "contract_address", + "method_id", + "transaction_id", + "transaction_data" ], - "example": { - "page": { - "previous_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA", - "next_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA" - }, - "result": [ - { - "buy": [ - { - "type": "ERC20", - "amount": "9750000000000000000", - "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" - } - ], - "buyer_address": "0xFC99a706C0D05B8C71E1fAAC91b3E1343aC34D40", - "buyer_fees": [], - "chain": { - "id": "eip155:11155111", - "name": "sepolia" - }, - "created_at": "2022-03-07T07:20:50.52Z", - "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", - "sell": [ - { - "type": "ERC721", - "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "token_id": "1" - } - ], - "seller_address": "0x002b9B1cbf464782Df5d48870358FA6c09f1b19D", - "maker_address": "0x002b9B1cbf464782Df5d48870358FA6c09f1b19D", - "taker_address": "0xFC99a706C0D05B8C71E1fAAC91b3E1343aC34D40", - "updated_at": "2022-03-07T07:20:50.52Z" - }, - { - "buy": [ - { - "type": "ERC20", - "amount": "9750000000000000000", - "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" - } - ], - "buyer_address": "0x017406f3F27d507a1491976B7835CE5CD0fA647a", - "buyer_fees": [], - "chain": { - "id": "eip155:11155111", - "name": "sepolia" - }, - "created_at": "2022-03-07T07:20:50.52Z", - "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", - "sell": [ - { - "type": "ERC721", - "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "token_id": "1" - } - ], - "seller_address": "0xC73349c545C1D757eb650cDc463A2f6dF1Ec41cb", - "maker_address": "0xC73349c545C1D757eb650cDc463A2f6dF1Ec41cb", - "taker_address": "0x017406f3F27d507a1491976B7835CE5CD0fA647a", - "updated_at": "2022-03-07T07:20:50.52Z" - } - ] - } - }, - "OrderStatus": { - "description": "The Order status", - "oneOf": [ - { - "$ref": "#/components/schemas/CancelledOrderStatus" - }, - { - "$ref": "#/components/schemas/PendingOrderStatus" - }, - { - "$ref": "#/components/schemas/ActiveOrderStatus" + "properties": { + "contract_address": { + "description": "The address of the contract intended for interaction with this transaction", + "type": "string", + "pattern": "^0x[0-9a-fA-F]*$", + "maxLength": 42 }, - { - "$ref": "#/components/schemas/InactiveOrderStatus" + "method_id": { + "description": "The method ID of the contract intended for interaction with this transaction", + "type": "string", + "maxLength": 132 }, - { - "$ref": "#/components/schemas/FilledOrderStatus" + "transaction_id": { + "description": "ID of the given transaction to be decoded", + "type": "string" }, - { - "$ref": "#/components/schemas/ExpiredOrderStatus" + "transaction_data": { + "description": "Encoded transaction data", + "pattern": "^0x[0-9a-fA-F]*$", + "type": "string" } + }, + "additionalProperties": false + }, + "CreateCounterfactualAddressRes": { + "type": "object", + "required": [ + "counterfactual_address" ], - "discriminator": { - "propertyName": "name", - "mapping": { - "CANCELLED": "#/components/schemas/CancelledOrderStatus", - "PENDING": "#/components/schemas/PendingOrderStatus", - "ACTIVE": "#/components/schemas/ActiveOrderStatus", - "INACTIVE": "#/components/schemas/InactiveOrderStatus", - "FILLED": "#/components/schemas/FilledOrderStatus", - "EXPIRED": "#/components/schemas/ExpiredOrderStatus" + "properties": { + "counterfactual_address": { + "description": "The user's counterfactual address", + "type": "string", + "maxLength": 42 + } + } + }, + "GetLinkedAddressesResDeprecated": { + "type": "object", + "required": [ + "linkedAddresses" + ], + "properties": { + "linkedAddresses": { + "type": "array", + "minItems": 0, + "description": "The user's list of linked addresses", + "items": { + "description": "The user's linked address", + "type": "string", + "pattern": "^0x[0-9a-fA-F]*$", + "maxLength": 42 + } + } + } + }, + "GetLinkedAddressesRes": { + "type": "object", + "required": [ + "linked_addresses" + ], + "properties": { + "linked_addresses": { + "type": "array", + "minItems": 0, + "description": "The user's list of linked addresses", + "items": { + "description": "The user's linked address", + "type": "string", + "pattern": "^0x[0-9a-fA-F]*$", + "maxLength": 42 + } } } }, - "CancelledOrderStatus": { + "ImmutableVerificationStatusEnum": { + "type": "string", + "enum": [ + "verified", + "unverified", + "spam", + "inactive" + ] + }, + "ERC721ApproveMetadata": { "type": "object", + "required": [ + "transaction_type", + "collection_name", + "collection_image", + "asset_image", + "asset_name", + "is_smart_contract", + "is_contract_verified", + "contract_name", + "token_id", + "immutable_verification_status" + ], "properties": { - "name": { + "transaction_type": { "type": "string", - "description": "The order status indicating a order is has been cancelled or about to be cancelled.", + "description": "Transaction type", "enum": [ - "CANCELLED" + "ERC721_APPROVE" ] }, - "pending": { - "type": "boolean", - "description": "Whether the cancellation of the order is pending", - "example": false + "collection_name": { + "type": "string", + "description": "NFT Collection name" }, - "cancellation_type": { + "collection_image": { "type": "string", - "description": "Whether the cancellation was done on-chain or off-chain or as a result of an underfunded account", - "enum": [ - "ON_CHAIN", - "OFF_CHAIN", - "UNDERFUNDED" - ], - "example": "ON_CHAIN" - } - }, - "required": [ - "name", - "pending", - "cancellation_type" - ] - }, - "PendingOrderStatus": { - "type": "object", - "properties": { - "name": { + "description": "NFT Collection image" + }, + "asset_image": { "type": "string", - "description": "The order status that indicates the order is yet to be active due to various reasons.", - "enum": [ - "PENDING" - ] + "description": "NFT Asset name" }, - "evaluated": { + "asset_name": { + "type": "string", + "description": "NFT Asset image" + }, + "is_smart_contract": { "type": "boolean", - "description": "Whether the order has been evaluated after its creation", - "example": false + "description": "Indicate if it is a Smart Contract or EOA" }, - "started": { + "is_contract_verified": { "type": "boolean", - "description": "Whether the order has reached its specified start time", - "example": false - } - }, - "required": [ - "name", - "evaluated", - "started" - ] - }, - "ActiveOrderStatus": { - "type": "object", - "properties": { - "name": { + "description": "Is Contract Verified" + }, + "contract_name": { "type": "string", - "description": "The order status that indicates an order can be fulfilled.", - "enum": [ - "ACTIVE" - ] + "description": "Smart Contract Name" + }, + "token_id": { + "type": "string", + "description": "ID of the ERC721", + "example": "1" + }, + "immutable_verification_status": { + "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" } - }, - "required": [ - "name" - ] + } }, - "InactiveOrderStatus": { + "ERC20TransferMetadata": { "type": "object", + "required": [ + "transaction_type", + "to_address", + "amount", + "decimals", + "symbol", + "immutable_verification_status", + "image_url" + ], "properties": { - "name": { + "transaction_type": { "type": "string", - "description": "The order status that indicates an order cannot be fulfilled.", + "description": "Transaction type", "enum": [ - "INACTIVE" + "ERC20_TRANSFER" ] }, - "sufficient_approvals": { - "type": "boolean", - "description": "Whether the order offerer has sufficient approvals", - "example": false + "to_address": { + "type": "string", + "description": "The address to transfer the token to", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" }, - "sufficient_balances": { - "type": "boolean", - "description": "Whether the order offerer still has sufficient balance to complete the order", - "example": false - } - }, - "required": [ - "name", - "sufficient_approvals", - "sufficient_balances" - ] - }, - "ExpiredOrderStatus": { - "type": "object", - "properties": { - "name": { + "amount": { "type": "string", - "description": "A terminal order status indicating that an order cannot be fulfilled due to expiry.", - "enum": [ - "EXPIRED" - ] + "description": "A string representing the amount of tokens to transfer", + "example": "10000000000000000" + }, + "immutable_verification_status": { + "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" + }, + "decimals": { + "type": "integer", + "description": "The token decimals", + "example": 18 + }, + "symbol": { + "type": "string", + "description": "The symbol of the token being transferred", + "example": "AAA" + }, + "image_url": { + "type": "string", + "description": "The image of the token being transferred", + "example": "https://some-url" } - }, - "required": [ - "name" - ] + } }, - "FilledOrderStatus": { + "ERC20TransferFromMetadata": { "type": "object", + "required": [ + "transaction_type", + "immutable_verification_status", + "from_address", + "to_address", + "amount", + "decimals", + "symbol", + "image_url" + ], "properties": { - "name": { + "transaction_type": { "type": "string", - "description": "A terminal order status indicating that an order has been fulfilled.", + "description": "Transaction type", "enum": [ - "FILLED" + "ERC20_TRANSFER_FROM" ] + }, + "from_address": { + "type": "string", + "description": "The address to transfer the token from", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + }, + "to_address": { + "type": "string", + "description": "The address to transfer the token to", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + }, + "amount": { + "type": "string", + "description": "A string representing the amount of tokens to transfer", + "example": "10000000000000000" + }, + "immutable_verification_status": { + "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" + }, + "decimals": { + "type": "integer", + "description": "The token decimals", + "example": 18 + }, + "symbol": { + "type": "string", + "description": "The symbol of the token being transferred", + "example": "AAA" + }, + "image_url": { + "type": "string", + "description": "The image of the token being transferred", + "example": "https://some-url" } - }, - "required": [ - "name" - ] - }, - "OrderStatusName": { - "type": "string", - "description": "The Order status", - "enum": [ - "PENDING", - "ACTIVE", - "INACTIVE", - "FILLED", - "EXPIRED", - "CANCELLED" - ] + } }, - "ProtocolData": { + "ERC20ApproveMetadata": { "type": "object", + "required": [ + "transaction_type", + "amount", + "token_symbol", + "spender", + "is_smart_contract", + "is_contract_verified", + "immutable_verification_status", + "contract_name", + "image_url" + ], "properties": { - "order_type": { + "transaction_type": { "type": "string", - "description": "Seaport order type. Orders containing ERC721 tokens will need to pass in the order type as FULL_RESTRICTED while orders with ERC1155 tokens will need to pass in the order_type as PARTIAL_RESTRICTED", - "example": "FULL_RESTRICTED", + "description": "Transaction type", "enum": [ - "FULL_RESTRICTED", - "PARTIAL_RESTRICTED" + "ERC20_APPROVE" ] }, - "counter": { + "immutable_verification_status": { + "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" + }, + "amount": { "type": "string", - "description": "big.Int or uint256 string for order counter", - "example": "92315562" + "description": "Requested approval amount" }, - "zone_address": { + "token_symbol": { "type": "string", - "description": "Immutable zone address", - "example": "0x12" + "description": "Requested token symbol" }, - "seaport_address": { + "spender": { "type": "string", - "description": "Immutable Seaport contract address", - "example": "0x12" + "description": "Spender address" }, - "seaport_version": { + "is_smart_contract": { + "type": "boolean", + "description": "Indicate if it is a Smart Contract or EOA" + }, + "is_contract_verified": { + "type": "boolean", + "description": "Is Contract Verified" + }, + "contract_name": { "type": "string", - "description": "Immutable Seaport contract version", - "example": "1.5" + "description": "Smart Contract Name" + }, + "image_url": { + "type": "string", + "example": "https://example.com/erc20.jpg" } - }, - "example": { - "order_type": "FULL_RESTRICTED", - "counter": "92315562", - "zone_address": "0x12", - "seaport_address": "0x12", - "seaport_version": "1.5" - }, - "required": [ - "order_type", - "counter", - "zone_address", - "seaport_address", - "seaport_version" - ] + } }, - "TradeBlockchainMetadata": { - "description": "The metadata related to the transaction in which the activity occurred", - "nullable": true, + "NFTSetApprovalForAllMetadata": { "type": "object", + "required": [ + "transaction_type", + "collection_name", + "collection_image", + "is_smart_contract", + "is_contract_verified", + "contract_name", + "immutable_verification_status" + ], "properties": { - "transaction_hash": { + "transaction_type": { "type": "string", - "description": "The transaction hash of the trade", - "example": "0x68d9eac5e3b3c3580404989a4030c948a78e1b07b2b5ea5688d8c38a6c61c93e" + "description": "Transaction type", + "enum": [ + "ERC721_SET_APPROVAL_FOR_ALL", + "ERC1155_SET_APPROVAL_FOR_ALL" + ] }, - "block_number": { - "description": "EVM block number (uint64 as string)", + "collection_name": { "type": "string", - "example": "1" + "description": "NFT Collection name" }, - "transaction_index": { - "description": "Transaction index in a block (uint32 as string)", + "collection_image": { "type": "string", - "example": "1" + "description": "NFT Collection image" }, - "log_index": { - "description": "The log index of the fulfillment event in a block (uint32 as string)", - "type": "string", - "example": "1" - } - }, - "required": [ - "transaction_hash", - "block_number", - "transaction_index", - "log_index" - ] - }, - "FillStatus": { - "description": "The ratio of the order that has been filled, an order that has been fully filled will have the same numerator and denominator values.", - "type": "object", - "properties": { - "numerator": { - "type": "string", - "description": "The numerator of the fill status", - "example": "1" + "is_smart_contract": { + "type": "boolean", + "description": "Indicate if it is a Smart Contract or EOA" }, - "denominator": { + "is_contract_verified": { + "type": "boolean", + "description": "Is Contract Verified" + }, + "contract_name": { "type": "string", - "description": "The denominator of the fill status", - "example": "2" - } - }, - "required": [ - "numerator", - "denominator" - ] - }, - "APIError501": { - "allOf": [ - { - "$ref": "#/components/schemas/BasicAPIError" + "description": "Smart Contract Name" }, - { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error Code", - "enum": [ - "NOT_IMPLEMENTED_ERROR" - ], - "example": "NOT_IMPLEMENTED_ERROR" - }, - "details": { - "type": "object", - "nullable": true, - "description": "Additional details to help resolve the error" - } - }, - "required": [ - "code", - "details" - ] + "immutable_verification_status": { + "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" } - ] + } }, - "CreateCounterfactualAddressRequest": { + "ERC721TransferFromMetadata": { "type": "object", "required": [ - "ethereum_address", - "ethereum_signature" + "transaction_type", + "from_address", + "to_address", + "collection_name", + "token_id", + "asset_name", + "asset_image", + "immutable_verification_status" ], "properties": { - "ethereum_address": { - "description": "The user's UAK address", + "transaction_type": { "type": "string", - "maxLength": 42 + "description": "Transaction type", + "enum": [ + "ERC721_TRANSFER_FROM" + ] }, - "ethereum_signature": { - "description": "The signature generated with the UAK", + "from_address": { "type": "string", - "maxLength": 132 + "description": "The address to transfer the token from", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + }, + "to_address": { + "type": "string", + "description": "The address to transfer the token to", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + }, + "collection_name": { + "type": "string", + "description": "The collection name the ERC721 belongs to" + }, + "token_id": { + "type": "string", + "description": "ID of the ERC721", + "example": "1" + }, + "asset_name": { + "type": "string", + "description": "The name of the ERC721", + "example": "Sword" + }, + "asset_image": { + "type": "string", + "description": "The image of the ERC721", + "example": "https://some-url" + }, + "immutable_verification_status": { + "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" } - }, - "additionalProperties": false + } }, - "GetTransactionMetadataRequest": { + "ERC721SafeTransferFromBatchMetadata": { "type": "object", "required": [ - "contract_address", - "method_id", - "transaction_id", - "transaction_data" + "transaction_type", + "from_address", + "collection_name", + "items", + "immutable_verification_status" ], "properties": { - "contract_address": { - "description": "The address of the contract intended for interaction with this transaction", + "transaction_type": { "type": "string", - "pattern": "^0x[0-9a-fA-F]*$", - "maxLength": 42 + "description": "Transaction type", + "enum": [ + "ERC721_SAFE_TRANSFER_FROM_BATCH" + ] }, - "method_id": { - "description": "The method ID of the contract intended for interaction with this transaction", + "from_address": { "type": "string", - "maxLength": 132 + "description": "The address to transfer the token from", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" }, - "transaction_id": { - "description": "ID of the given transaction to be decoded", - "type": "string" + "collection_name": { + "type": "string", + "description": "The collection name the ERC721 belongs to", + "example": "Guild of Guardians Heroes" }, - "transaction_data": { - "description": "Encoded transaction data", - "pattern": "^0x[0-9a-fA-F]*$", - "type": "string" + "items": { + "type": "array", + "description": "The ERC721s to transfer and where to transfer them to", + "items": { + "$ref": "#/components/schemas/ERC721SafeTransferFromBatchItem" + } + }, + "immutable_verification_status": { + "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" } - }, - "additionalProperties": false + } }, - "CreateCounterfactualAddressRes": { + "ERC721SafeTransferFromBatchItem": { "type": "object", "required": [ - "counterfactual_address" + "to_address", + "token_id", + "asset_name", + "asset_image" ], "properties": { - "counterfactual_address": { - "description": "The user's counterfactual address", + "to_address": { "type": "string", - "maxLength": 42 + "description": "The address to transfer the token to", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + }, + "token_id": { + "type": "string", + "description": "ID of the ERC721", + "example": "1" + }, + "asset_name": { + "type": "string", + "description": "The name of the ERC721", + "example": "Sword" + }, + "asset_image": { + "type": "string", + "description": "The image of the ERC721", + "example": "https://some-url" } } }, - "GetLinkedAddressesResDeprecated": { + "UnknownMetadata": { "type": "object", "required": [ - "linkedAddresses" + "transaction_type", + "is_smart_contract", + "is_contract_verified", + "contract_name" ], "properties": { - "linkedAddresses": { - "type": "array", - "minItems": 0, - "description": "The user's list of linked addresses", - "items": { - "description": "The user's linked address", - "type": "string", - "pattern": "^0x[0-9a-fA-F]*$", - "maxLength": 42 - } + "transaction_type": { + "type": "string", + "description": "Transaction type", + "enum": [ + "UNKNOWN" + ] + }, + "is_smart_contract": { + "type": "boolean", + "description": "Indicate if it is a Smart Contract or EOA" + }, + "is_contract_verified": { + "type": "boolean", + "description": "Is Contract Verified" + }, + "contract_name": { + "type": "string", + "description": "Smart Contract Name" } } }, - "GetLinkedAddressesRes": { + "UnknownTypedDataMetadata": { "type": "object", "required": [ - "linked_addresses" + "typed_data_type" ], "properties": { - "linked_addresses": { - "type": "array", - "minItems": 0, - "description": "The user's list of linked addresses", - "items": { - "description": "The user's linked address", - "type": "string", - "pattern": "^0x[0-9a-fA-F]*$", - "maxLength": 42 - } + "typed_data_type": { + "type": "string", + "description": "Unknown typed data type", + "enum": [ + "UNKNOWN" + ] } } }, - "ImmutableVerificationStatusEnum": { - "type": "string", - "enum": [ - "verified", - "unverified", - "spam", - "inactive" - ] - }, - "ERC721ApproveMetadata": { + "SeaportFulfillAvailableAdvancedOrdersMetadata": { "type": "object", "required": [ "transaction_type", - "collection_name", - "collection_image", - "asset_image", - "asset_name", "is_smart_contract", "is_contract_verified", "contract_name", - "token_id", - "immutable_verification_status" + "buy", + "sell", + "fees" ], "properties": { "transaction_type": { "type": "string", "description": "Transaction type", "enum": [ - "ERC721_APPROVE" + "SEAPORT_FULFILL_AVAILABLE_ADVANCED_ORDERS" ] }, - "collection_name": { - "type": "string", - "description": "NFT Collection name" - }, - "collection_image": { - "type": "string", - "description": "NFT Collection image" - }, - "asset_image": { - "type": "string", - "description": "NFT Asset name" - }, - "asset_name": { - "type": "string", - "description": "NFT Asset image" - }, "is_smart_contract": { "type": "boolean", "description": "Indicate if it is a Smart Contract or EOA" @@ -9812,431 +10835,474 @@ "type": "string", "description": "Smart Contract Name" }, - "token_id": { - "type": "string", - "description": "ID of the ERC721", - "example": "1" - }, - "immutable_verification_status": { - "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" + "orders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeaportAdvancedOrder" + } } } }, - "ERC20TransferMetadata": { + "SeaportAdvancedOrder": { "type": "object", + "properties": { + "buy": { + "oneOf": [ + { + "$ref": "#/components/schemas/SeaportNativeItem" + }, + { + "$ref": "#/components/schemas/SeaportERC20Item" + }, + { + "$ref": "#/components/schemas/SeaportERC1155Item" + }, + { + "$ref": "#/components/schemas/SeaportERC1155CollectionItem" + }, + { + "$ref": "#/components/schemas/SeaportERC721Item" + }, + { + "$ref": "#/components/schemas/SeaportERC721CollectionItem" + } + ], + "example": [ + { + "type": "NATIVE", + "amount": "10000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ] + }, + "sell": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/SeaportERC1155Item" + }, + { + "$ref": "#/components/schemas/SeaportERC721Item" + }, + { + "$ref": "#/components/schemas/SeaportNativeItem" + }, + { + "$ref": "#/components/schemas/SeaportERC20Item" + } + ] + }, + "fees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeaportFee" + }, + "example": [], + "minItems": 0 + } + }, "required": [ - "transaction_type", - "to_address", - "amount", - "decimals", - "symbol", - "immutable_verification_status", - "image_url" - ], + "buy", + "sell", + "fees" + ] + }, + "SeaportNativeItem": { + "type": "object", "properties": { - "transaction_type": { + "type": { "type": "string", - "description": "Transaction type", + "description": "Token type user is offering, which in this case is the native IMX token", + "example": "NATIVE", "enum": [ - "ERC20_TRANSFER" + "NATIVE" ] }, - "to_address": { - "type": "string", - "description": "The address to transfer the token to", - "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" - }, "amount": { "type": "string", - "description": "A string representing the amount of tokens to transfer", + "description": "A string representing the price at which the user is willing to sell the token", "example": "10000000000000000" }, - "immutable_verification_status": { - "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" - }, "decimals": { "type": "integer", - "description": "The token decimals", - "example": 18 - }, - "symbol": { - "type": "string", - "description": "The symbol of the token being transferred", - "example": "AAA" - }, - "image_url": { - "type": "string", - "description": "The image of the token being transferred", - "example": "https://some-url" - } - } - }, - "ERC20TransferFromMetadata": { - "type": "object", + "description": "The decimal of this item", + "example": 18 + } + }, "required": [ - "transaction_type", - "immutable_verification_status", - "from_address", - "to_address", + "type", "amount", - "decimals", - "symbol", - "image_url" - ], + "decimals" + ] + }, + "SeaportERC20Item": { + "type": "object", "properties": { - "transaction_type": { + "type": { "type": "string", - "description": "Transaction type", + "description": "Token type user is offering, which in this case is ERC20", + "example": "ERC20", "enum": [ - "ERC20_TRANSFER_FROM" + "ERC20" ] }, - "from_address": { + "contract_address": { "type": "string", - "description": "The address to transfer the token from", - "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + "description": "Address of ERC20 token", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F", + "pattern": "^0x[a-fA-F0-9]{40}$" }, - "to_address": { + "symbol": { "type": "string", - "description": "The address to transfer the token to", - "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + "description": "The symbol of token", + "example": "AAA", + "nullable": true + }, + "image_url": { + "type": "string", + "description": "The image url of token", + "example": "https://some-url", + "nullable": true }, "amount": { "type": "string", - "description": "A string representing the amount of tokens to transfer", + "description": "A string representing the price at which the user is willing to sell the token", "example": "10000000000000000" }, - "immutable_verification_status": { - "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" - }, "decimals": { "type": "integer", - "description": "The token decimals", + "description": "The decimal of this erc20 item", "example": 18 }, - "symbol": { - "type": "string", - "description": "The symbol of the token being transferred", - "example": "AAA" - }, - "image_url": { + "immutable_verification_status": { "type": "string", - "description": "The image of the token being transferred", - "example": "https://some-url" + "description": "The Immutable verification status of this collection", + "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" } - } - }, - "ERC20ApproveMetadata": { - "type": "object", + }, "required": [ - "transaction_type", + "type", + "contract_address", "amount", - "token_symbol", - "spender", - "is_smart_contract", - "is_contract_verified", - "immutable_verification_status", - "contract_name", - "image_url" - ], + "decimals", + "immutable_verification_status" + ] + }, + "SeaportERC721Item": { + "type": "object", "properties": { - "transaction_type": { + "type": { "type": "string", - "description": "Transaction type", + "description": "Token type user is offering, which in this case is ERC721", + "example": "ERC721", "enum": [ - "ERC20_APPROVE" + "ERC721" ] }, - "immutable_verification_status": { - "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" - }, - "amount": { + "contract_address": { "type": "string", - "description": "Requested approval amount" + "description": "Address of ERC721 token", + "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "pattern": "^0x[a-fA-F0-9]{40}$" }, - "token_symbol": { + "contract_name": { "type": "string", - "description": "Requested token symbol" + "nullable": true, + "description": "The name of the collection", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" }, - "spender": { + "image_url": { "type": "string", - "description": "Spender address" - }, - "is_smart_contract": { - "type": "boolean", - "description": "Indicate if it is a Smart Contract or EOA" + "description": "The URL of the NFT", + "example": "https://example.com/nft.jpeg" }, - "is_contract_verified": { - "type": "boolean", - "description": "Is Contract Verified" + "name": { + "type": "string", + "nullable": true, + "example": "Sword", + "description": "The name of the NFT" }, - "contract_name": { + "token_id": { "type": "string", - "description": "Smart Contract Name" + "description": "ID of ERC721 token", + "example": "1", + "pattern": "\\d+" }, - "image_url": { + "immutable_verification_status": { "type": "string", - "example": "https://example.com/erc20.jpg" + "description": "The Immutable verification status of this collection", + "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" } - } - }, - "NFTSetApprovalForAllMetadata": { - "type": "object", + }, + "example": [ + { + "type": "ERC721", + "contract_address": "0x87c07c927eba711cbc55ec628a670acd48d0b525", + "contract_name": "Guild of Guardians Heroes", + "name": "Bestowing Saint", + "token_id": "1", + "immutable_verification_status": "verified" + } + ], "required": [ - "transaction_type", - "collection_name", - "collection_image", - "is_smart_contract", - "is_contract_verified", - "contract_name", + "type", + "contract_address", + "token_id", "immutable_verification_status" - ], + ] + }, + "SeaportERC1155Item": { + "type": "object", "properties": { - "transaction_type": { + "type": { "type": "string", - "description": "Transaction type", + "description": "Token type user is offering, which in this case is ERC1155", + "example": "ERC1155", "enum": [ - "ERC721_SET_APPROVAL_FOR_ALL", - "ERC1155_SET_APPROVAL_FOR_ALL" + "ERC1155" ] }, - "collection_name": { + "contract_address": { "type": "string", - "description": "NFT Collection name" + "description": "Address of ERC1155 token", + "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "pattern": "^0x[a-fA-F0-9]{40}$" }, - "collection_image": { + "contract_name": { "type": "string", - "description": "NFT Collection image" + "nullable": true, + "description": "The name of the collection", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" }, - "is_smart_contract": { - "type": "boolean", - "description": "Indicate if it is a Smart Contract or EOA" + "image_url": { + "type": "string", + "description": "The URL of the asset", + "example": "https://example.com/nft.jpeg" }, - "is_contract_verified": { - "type": "boolean", - "description": "Is Contract Verified" + "name": { + "type": "string", + "nullable": true, + "example": "Sword", + "description": "The name of the asset" }, - "contract_name": { + "token_id": { "type": "string", - "description": "Smart Contract Name" + "description": "ID of ERC1155 token", + "example": "1", + "pattern": "\\d+" + }, + "amount": { + "type": "string", + "description": "A string representing the total units of an ERC1155 token which the user is buying/selling", + "example": "100" }, "immutable_verification_status": { + "type": "string", + "description": "The Immutable verification status of this collection", "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" } - } - }, - "ERC721TransferFromMetadata": { - "type": "object", + }, + "example": [ + { + "type": "ERC1155", + "contract_address": "0x87c07c927eba711cbc55ec628a670acd48d0b525", + "contract_name": "Guild of Guardians Heroes", + "name": "Bestowing Saint", + "token_id": "1", + "amount": "100", + "immutable_verification_status": "verified" + } + ], "required": [ - "transaction_type", - "from_address", - "to_address", - "collection_name", + "type", + "contract_address", "token_id", - "asset_name", - "asset_image", + "amount", "immutable_verification_status" - ], - "properties": { - "transaction_type": { - "type": "string", - "description": "Transaction type", - "enum": [ - "ERC721_TRANSFER_FROM" - ] - }, - "from_address": { - "type": "string", - "description": "The address to transfer the token from", - "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" - }, - "to_address": { + ] + }, + "SeaportERC721CollectionItem": { + "type": "object", + "properties": { + "type": { "type": "string", - "description": "The address to transfer the token to", - "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + "description": "Token type user is offering, which in this case is ERC721Collection", + "example": "ERC721Collection", + "enum": [ + "ERC721Collection" + ] }, - "collection_name": { + "contract_address": { "type": "string", - "description": "The collection name the ERC721 belongs to" + "description": "Address of ERC721 token", + "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "pattern": "^0x[a-fA-F0-9]{40}$" }, - "token_id": { + "contract_name": { "type": "string", - "description": "ID of the ERC721", - "example": "1" + "nullable": true, + "description": "The name of the collection", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" }, - "asset_name": { + "image_url": { "type": "string", - "description": "The name of the ERC721", - "example": "Sword" + "description": "The URL of the collection image", + "example": "https://example.com/nft.jpeg" }, - "asset_image": { + "amount": { "type": "string", - "description": "The image of the ERC721", - "example": "https://some-url" + "description": "A string representing the total units of an ERC721 token which the user is buying", + "example": "10" }, "immutable_verification_status": { + "type": "string", + "description": "The Immutable verification status of this collection", "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" } - } - }, - "ERC721SafeTransferFromBatchMetadata": { - "type": "object", + }, + "example": [ + { + "type": "ERC721Collection", + "contract_address": "0x87c07c927eba711cbc55ec628a670acd48d0b525", + "amount": "10", + "immutable_verification_status": "verified" + } + ], "required": [ - "transaction_type", - "from_address", - "collection_name", - "items", + "type", + "contract_address", + "image_url", + "amount", "immutable_verification_status" - ], + ] + }, + "SeaportERC1155CollectionItem": { + "type": "object", "properties": { - "transaction_type": { + "type": { "type": "string", - "description": "Transaction type", + "description": "Token type user is offering, which in this case is ERC1155Collection", + "example": "ERC1155Collection", "enum": [ - "ERC721_SAFE_TRANSFER_FROM_BATCH" + "ERC1155Collection" ] }, - "from_address": { - "type": "string", - "description": "The address to transfer the token from", - "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" - }, - "collection_name": { + "contract_address": { "type": "string", - "description": "The collection name the ERC721 belongs to", - "example": "Guild of Guardians Heroes" - }, - "items": { - "type": "array", - "description": "The ERC721s to transfer and where to transfer them to", - "items": { - "$ref": "#/components/schemas/ERC721SafeTransferFromBatchItem" - } + "description": "Address of ERC1155 token", + "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "pattern": "^0x[a-fA-F0-9]{40}$" }, - "immutable_verification_status": { - "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" - } - } - }, - "ERC721SafeTransferFromBatchItem": { - "type": "object", - "required": [ - "to_address", - "token_id", - "asset_name", - "asset_image" - ], - "properties": { - "to_address": { + "image_url": { "type": "string", - "description": "The address to transfer the token to", - "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + "description": "The URL of the collection image", + "example": "https://example.com/nft.jpeg" }, - "token_id": { + "contract_name": { "type": "string", - "description": "ID of the ERC721", - "example": "1" + "nullable": true, + "description": "The name of the collection", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" }, - "asset_name": { + "amount": { "type": "string", - "description": "The name of the ERC721", - "example": "Sword" + "description": "A string representing the total units of an ERC1155 token which the user is buying", + "example": "100" }, - "asset_image": { + "immutable_verification_status": { "type": "string", - "description": "The image of the ERC721", - "example": "https://some-url" + "description": "The Immutable verification status of this collection", + "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" } - } + }, + "example": [ + { + "type": "ERC1155", + "contract_address": "0x87c07c927eba711cbc55ec628a670acd48d0b525", + "contract_name": "Guild of Guardians Heroes", + "amount": "100", + "immutable_verification_status": "verified" + } + ], + "required": [ + "type", + "image_url", + "contract_address", + "amount", + "immutable_verification_status" + ] }, - "UnknownMetadata": { + "SeaportFee": { "type": "object", - "required": [ - "transaction_type", - "is_smart_contract", - "is_contract_verified", - "contract_name" - ], "properties": { - "transaction_type": { + "type": { "type": "string", - "description": "Transaction type", + "description": "Token type of the Fee", + "example": "ERC20", "enum": [ - "UNKNOWN" + "ERC20", + "NATIVE" ] }, - "is_smart_contract": { - "type": "boolean", - "description": "Indicate if it is a Smart Contract or EOA" + "amount": { + "type": "string", + "description": "Fee payable to recipient upon settlement", + "example": "10000000000000000" }, - "is_contract_verified": { - "type": "boolean", - "description": "Is Contract Verified" + "recipient_address": { + "type": "string", + "description": "Wallet address of fee recipient", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233", + "pattern": "^0x[a-fA-F0-9]{40}$" }, - "contract_name": { + "contract_address": { "type": "string", - "description": "Smart Contract Name" - } - } - }, - "UnknownTypedDataMetadata": { - "type": "object", - "required": [ - "typed_data_type" - ], - "properties": { - "typed_data_type": { + "description": "Address of the ERC20 token for the fee", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "symbol": { "type": "string", - "description": "Unknown typed data type", - "enum": [ - "UNKNOWN" - ] + "description": "The symbol of token for the fee", + "example": "AAA", + "nullable": true + }, + "decimals": { + "type": "integer", + "description": "The decimal of this item", + "example": 18 } - } + }, + "example": { + "amount": "10000000000000000", + "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233", + "type": "NATIVE" + }, + "required": [ + "amount", + "type", + "recipient_address", + "decimals" + ] }, - "SeaportFulfillAvailableAdvancedOrdersMetadata": { + "SeaportCreateListingMetadata": { "type": "object", "required": [ - "transaction_type", - "is_smart_contract", - "is_contract_verified", - "contract_name", + "typed_data_type", "buy", "sell", "fees" ], "properties": { - "transaction_type": { + "typed_data_type": { "type": "string", - "description": "Transaction type", + "description": "Typed data type", "enum": [ - "SEAPORT_FULFILL_AVAILABLE_ADVANCED_ORDERS" + "SEAPORT_CREATE_LISTING_METADATA" ] - }, - "is_smart_contract": { - "type": "boolean", - "description": "Indicate if it is a Smart Contract or EOA" - }, - "is_contract_verified": { - "type": "boolean", - "description": "Is Contract Verified" - }, - "contract_name": { - "type": "string", - "description": "Smart Contract Name" - }, - "orders": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SeaportAdvancedOrder" - } - } - } - }, - "SeaportAdvancedOrder": { - "type": "object", - "properties": { + }, "buy": { + "type": "object", "oneOf": [ { "$ref": "#/components/schemas/SeaportNativeItem" @@ -10245,23 +11311,25 @@ "$ref": "#/components/schemas/SeaportERC20Item" }, { - "$ref": "#/components/schemas/SeaportERC1155Item" + "$ref": "#/components/schemas/SeaportERC721Item" }, { - "$ref": "#/components/schemas/SeaportERC1155CollectionItem" + "$ref": "#/components/schemas/SeaportERC721CollectionItem" }, { - "$ref": "#/components/schemas/SeaportERC721Item" + "$ref": "#/components/schemas/SeaportERC1155Item" }, { - "$ref": "#/components/schemas/SeaportERC721CollectionItem" + "$ref": "#/components/schemas/SeaportERC1155CollectionItem" } ], "example": [ { - "type": "NATIVE", - "amount": "10000000000000000", - "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + "type": "ERC721", + "contract_address": "0x87c07c927eba711cbc55ec628a670acd48d0b525", + "contract_name": "Guild of Guardians Heroes", + "name": "Bestowing Saint", + "token_id": 1 } ] }, @@ -10269,16 +11337,16 @@ "type": "object", "oneOf": [ { - "$ref": "#/components/schemas/SeaportERC1155Item" + "$ref": "#/components/schemas/SeaportNativeItem" }, { - "$ref": "#/components/schemas/SeaportERC721Item" + "$ref": "#/components/schemas/SeaportERC20Item" }, { - "$ref": "#/components/schemas/SeaportNativeItem" + "$ref": "#/components/schemas/SeaportERC721Item" }, { - "$ref": "#/components/schemas/SeaportERC20Item" + "$ref": "#/components/schemas/SeaportERC1155Item" } ] }, @@ -10286,1216 +11354,1548 @@ "type": "array", "items": { "$ref": "#/components/schemas/SeaportFee" + } + } + } + }, + "GetTransactionMetadataRes": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/ERC20ApproveMetadata" + }, + { + "$ref": "#/components/schemas/ERC20TransferMetadata" + }, + { + "$ref": "#/components/schemas/ERC20TransferFromMetadata" + }, + { + "$ref": "#/components/schemas/ERC721ApproveMetadata" + }, + { + "$ref": "#/components/schemas/NFTSetApprovalForAllMetadata" + }, + { + "$ref": "#/components/schemas/ERC721TransferFromMetadata" + }, + { + "$ref": "#/components/schemas/ERC721SafeTransferFromBatchMetadata" + }, + { + "$ref": "#/components/schemas/SeaportFulfillAvailableAdvancedOrdersMetadata" + }, + { + "$ref": "#/components/schemas/UnknownMetadata" + } + ] + }, + "GetTypedDataMetadataRes": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/SeaportCreateListingMetadata" + }, + { + "$ref": "#/components/schemas/UnknownTypedDataMetadata" + } + ] + }, + "GetTypedDataMetadataRequest": { + "type": "object", + "required": [ + "payload" + ], + "properties": { + "payload": { + "$ref": "#/components/schemas/EIP712Message" + } + } + }, + "EIP712Message": { + "type": "object", + "properties": { + "types": { + "type": "object", + "properties": { + "EIP712Domain": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name", + "type" + ] + } + } }, - "example": [], - "minItems": 0 + "additionalProperties": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name", + "type" + ] + } + }, + "required": [ + "EIP712Domain" + ] + }, + "primaryType": { + "type": "string" + }, + "domain": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + }, + "chainId": { + "type": "integer" + }, + "verifyingContract": { + "type": "string" + }, + "salt": { + "type": "string" + } + } + }, + "message": { + "type": "object" } }, "required": [ - "buy", - "sell", - "fees" + "types", + "primaryType", + "domain", + "message" ] }, - "SeaportNativeItem": { + "EthAddress": { + "description": "Ethereum address", + "type": "string", + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" + }, + "CreatedAt": { + "description": "Created at", + "type": "string", + "format": "date-time", + "example": "2021-08-31T00:00:00Z" + }, + "Name": { + "description": "Name", + "type": "string", + "example": "Test" + }, + "WalletType": { + "description": "Wallet type", + "type": "string", + "example": "MetaMask" + }, + "Wallet": { + "description": "Linked wallet", + "type": "object", + "required": [ + "address", + "type", + "created_at", + "updated_at", + "clientName" + ], + "properties": { + "address": { + "$ref": "#/components/schemas/EthAddress" + }, + "type": { + "$ref": "#/components/schemas/WalletType" + }, + "created_at": { + "$ref": "#/components/schemas/CreatedAt" + }, + "updated_at": { + "$ref": "#/components/schemas/CreatedAt" + }, + "name": { + "$ref": "#/components/schemas/Name" + }, + "clientName": { + "type": "string", + "description": "Name of client that linked the wallet", + "example": "Passport Dashboard" + } + } + }, + "LinkWalletV2Request": { + "description": "Link wallet V2 request", + "type": "object", + "required": [ + "type", + "wallet_address", + "signature", + "nonce" + ], + "properties": { + "type": { + "type": "string", + "description": "This should be the EIP-6963 rdns value, if you're unable to get the rdns value you can provide \"External\". If using WalletConnect then provide \"WalletConnect\".", + "example": "io.metamask", + "maxLength": 32, + "not": { + "enum": [ + "Passport", + "com.immutable.passport" + ] + } + }, + "wallet_address": { + "description": "The address of the external wallet being linked to Passport", + "type": "string", + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "signature": { + "description": "The EIP-712 signature", + "type": "string" + }, + "nonce": { + "description": "A unique identifier for the signature", + "type": "string" + } + } + }, + "UserInfo": { "type": "object", + "required": [ + "sub", + "linked_addresses" + ], "properties": { - "type": { + "sub": { "type": "string", - "description": "Token type user is offering, which in this case is the native IMX token", - "example": "NATIVE", - "enum": [ - "NATIVE" - ] + "description": "The user's id" }, - "amount": { + "email": { "type": "string", - "description": "A string representing the price at which the user is willing to sell the token", - "example": "10000000000000000" + "description": "The user's email address" }, - "decimals": { - "type": "integer", - "description": "The decimal of this item", - "example": 18 + "passport_address": { + "type": "string", + "description": "The user's Passport address if it has been registered", + "pattern": "^0x[0-9a-fA-F]*$", + "maxLength": 42 + }, + "linked_addresses": { + "type": "array", + "minItems": 0, + "description": "The user's list of linked addresses", + "items": { + "description": "The user's linked address", + "type": "string", + "pattern": "^0x[0-9a-fA-F]*$", + "maxLength": 42 + } } - }, - "required": [ - "type", - "amount", - "decimals" - ] + } }, - "SeaportERC20Item": { + "Transaction": { "type": "object", + "required": [ + "id", + "eth_address", + "transaction_metadata", + "version", + "transaction_type", + "status" + ], "properties": { - "type": { - "type": "string", - "description": "Token type user is offering, which in this case is ERC20", - "example": "ERC20", - "enum": [ - "ERC20" - ] + "id": { + "description": "Confirmation Candidate ID", + "type": "string" }, - "contract_address": { - "type": "string", - "description": "Address of ERC20 token", - "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F", - "pattern": "^0x[a-fA-F0-9]{40}$" + "eth_address": { + "description": "candidate's ether address", + "type": "string" }, - "symbol": { - "type": "string", - "description": "The symbol of token", - "example": "AAA", - "nullable": true + "status": { + "description": "Status of the starkex transactions", + "type": "string" }, - "image_url": { - "type": "string", - "description": "The image url of token", - "example": "https://some-url", - "nullable": true + "transaction_type": { + "description": "Confirmation candidate type", + "type": "string" }, - "amount": { - "type": "string", - "description": "A string representing the price at which the user is willing to sell the token", - "example": "10000000000000000" + "version": { + "description": "Which version is at", + "type": "string" }, - "decimals": { - "type": "integer", - "description": "The decimal of this erc20 item", - "example": 18 + "transaction_metadata": { + "description": "Transaction metadata as a string", + "type": "object", + "additionalProperties": true }, - "immutable_verification_status": { - "type": "string", - "description": "The Immutable verification status of this collection", - "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" + "client_name": { + "description": "Name of request client", + "type": "string" + }, + "validation": { + "description": "Validation results", + "$ref": "#/components/schemas/ValidationResult", + "nullable": true } - }, - "required": [ - "type", - "contract_address", - "amount", - "decimals", - "immutable_verification_status" - ] + } }, - "SeaportERC721Item": { + "TransactionApprovalRequest": { "type": "object", + "required": [ + "chainType" + ], "properties": { - "type": { + "chainID": { + "description": "rollup chain ID", + "type": "string" + }, + "chainType": { + "description": "chain type", "type": "string", - "description": "Token type user is offering, which in this case is ERC721", - "example": "ERC721", "enum": [ - "ERC721" + "starkex", + "evm" ] }, - "contract_address": { - "type": "string", - "description": "Address of ERC721 token", - "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "pattern": "^0x[a-fA-F0-9]{40}$" + "otp": { + "description": "otp string", + "type": "string" + } + } + }, + "TransactionEvaluationRequest": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/StarkExTransactionEvaluationRequest" }, - "contract_name": { + { + "$ref": "#/components/schemas/ZkEvmTransactionEvaluationRequest" + } + ] + }, + "StarkExTransactionEvaluationRequest": { + "required": [ + "chainType" + ], + "type": "object", + "properties": { + "chainId": { "type": "string", - "nullable": true, - "description": "The name of the collection", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + "description": "The ID of the chain" }, - "image_url": { + "chainType": { "type": "string", - "description": "The URL of the NFT", - "example": "https://example.com/nft.jpeg" - }, - "name": { + "enum": [ + "starkex" + ], + "description": "The type of the chain" + } + } + }, + "ZkEvmTransactionEvaluationRequest": { + "required": [ + "transactionData", + "chainId", + "chainType" + ], + "type": "object", + "properties": { + "chainId": { "type": "string", - "nullable": true, - "example": "Sword", - "description": "The name of the NFT" + "description": "The ID of the chain" }, - "token_id": { + "chainType": { "type": "string", - "description": "ID of ERC721 token", - "example": "1", - "pattern": "\\d+" + "enum": [ + "evm" + ], + "description": "The type of the chain" }, - "immutable_verification_status": { - "type": "string", - "description": "The Immutable verification status of this collection", - "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" - } - }, - "example": [ - { - "type": "ERC721", - "contract_address": "0x87c07c927eba711cbc55ec628a670acd48d0b525", - "contract_name": "Guild of Guardians Heroes", - "name": "Bestowing Saint", - "token_id": "1", - "immutable_verification_status": "verified" + "transactionData": { + "$ref": "#/components/schemas/ZkEvmTransactionData" } - ], + } + }, + "TransactionEvaluationResponse": { + "type": "object", "required": [ - "type", - "contract_address", - "token_id", - "immutable_verification_status" - ] + "confirmationRequired" + ], + "properties": { + "confirmationRequired": { + "type": "boolean" + }, + "confirmationMethod": { + "type": "string", + "enum": [ + "otp", + "web" + ] + }, + "transactionId": { + "type": "string" + } + } }, - "SeaportERC1155Item": { + "MessageEvaluationResponse": { "type": "object", + "required": [ + "confirmationRequired", + "confirmationMethod", + "messageId" + ], "properties": { - "type": { + "confirmationRequired": { + "type": "boolean" + }, + "confirmationMethod": { "type": "string", - "description": "Token type user is offering, which in this case is ERC1155", - "example": "ERC1155", "enum": [ - "ERC1155" + "otp", + "web" ] }, - "contract_address": { + "messageId": { + "type": "string" + } + } + }, + "ZkEvmTransactionData": { + "type": "object", + "required": [ + "userAddress", + "metaTransactions", + "nonce" + ], + "properties": { + "userAddress": { "type": "string", - "description": "Address of ERC1155 token", - "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "pattern": "^0x[a-fA-F0-9]{40}$" + "description": "The user address", + "pattern": "^0x[0-9a-fA-F]*$" }, - "contract_name": { - "type": "string", - "nullable": true, - "description": "The name of the collection", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + "metaTransactions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetaTransaction" + }, + "minItems": 1, + "maxItems": 2, + "description": "An array of exactly two meta-transactions" }, - "image_url": { + "nonce": { "type": "string", - "description": "The URL of the asset", - "example": "https://example.com/nft.jpeg" + "description": "The nonce value" + } + } + }, + "MetaTransaction": { + "type": "object", + "required": [ + "delegateCall", + "revertOnError", + "gasLimit", + "target", + "value", + "data" + ], + "properties": { + "delegateCall": { + "type": "boolean", + "description": "Whether the transaction is a delegate call" }, - "name": { - "type": "string", - "nullable": true, - "example": "Sword", - "description": "The name of the asset" + "revertOnError": { + "type": "boolean", + "description": "Whether to revert on error" }, - "token_id": { + "gasLimit": { "type": "string", - "description": "ID of ERC1155 token", - "example": "1", - "pattern": "\\d+" + "description": "The gas limit for the transaction" }, - "amount": { + "target": { "type": "string", - "description": "A string representing the total units of an ERC1155 token which the user is buying/selling", - "example": "100" + "description": "The SM target address of the transaction", + "pattern": "^0x[0-9a-fA-F]*$" }, - "immutable_verification_status": { + "value": { "type": "string", - "description": "The Immutable verification status of this collection", - "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" - } - }, - "example": [ - { - "type": "ERC1155", - "contract_address": "0x87c07c927eba711cbc55ec628a670acd48d0b525", - "contract_name": "Guild of Guardians Heroes", - "name": "Bestowing Saint", - "token_id": "1", - "amount": "100", - "immutable_verification_status": "verified" + "description": "The value of the transaction" + }, + "data": { + "oneOf": [ + { + "type": "string", + "description": "Encoded data for calling the `execute()` function on the SCW", + "pattern": "^0x[0-9a-fA-F]*$" + }, + { + "type": "array", + "items": { + "type": "number" + } + } + ] } + } + }, + "MessageEvaluationRequest": { + "type": "object", + "required": [ + "payload", + "chainID" ], + "properties": { + "payload": { + "$ref": "#/components/schemas/EIP712Message" + }, + "chainID": { + "description": "rollup chain ID", + "type": "string" + } + } + }, + "ERC191MessageEvaluationRequest": { + "type": "object", "required": [ - "type", - "contract_address", - "token_id", - "amount", - "immutable_verification_status" - ] + "payload", + "chainID" + ], + "properties": { + "payload": { + "$ref": "#/components/schemas/ERC191Message" + }, + "chainID": { + "description": "rollup chain ID", + "type": "string" + } + } }, - "SeaportERC721CollectionItem": { + "EVMMessage": { "type": "object", + "required": [ + "id", + "eth_address", + "data", + "version", + "status" + ], "properties": { - "type": { - "type": "string", - "description": "Token type user is offering, which in this case is ERC721Collection", - "example": "ERC721Collection", - "enum": [ - "ERC721Collection" - ] + "id": { + "description": "Confirmation Candidate ID", + "type": "string" }, - "contract_address": { - "type": "string", - "description": "Address of ERC721 token", - "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "pattern": "^0x[a-fA-F0-9]{40}$" + "eth_address": { + "description": "request user's ether address", + "type": "string" }, - "contract_name": { - "type": "string", - "nullable": true, - "description": "The name of the collection", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + "status": { + "description": "Status of the evm message", + "type": "string" }, - "image_url": { - "type": "string", - "description": "The URL of the collection image", - "example": "https://example.com/nft.jpeg" + "version": { + "description": "Which version is at", + "type": "string" }, - "amount": { - "type": "string", - "description": "A string representing the total units of an ERC721 token which the user is buying", - "example": "10" + "data": { + "description": "evm message data", + "$ref": "#/components/schemas/EIP712Message" }, - "immutable_verification_status": { - "type": "string", - "description": "The Immutable verification status of this collection", - "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" - } - }, - "example": [ - { - "type": "ERC721Collection", - "contract_address": "0x87c07c927eba711cbc55ec628a670acd48d0b525", - "amount": "10", - "immutable_verification_status": "verified" + "validation": { + "description": "Validation results", + "$ref": "#/components/schemas/ValidationResult", + "nullable": true } - ], - "required": [ - "type", - "contract_address", - "image_url", - "amount", - "immutable_verification_status" - ] + } }, - "SeaportERC1155CollectionItem": { + "Erc191MessageResponse": { "type": "object", + "required": [ + "id", + "eth_address", + "data", + "version", + "status" + ], "properties": { - "type": { - "type": "string", - "description": "Token type user is offering, which in this case is ERC1155Collection", - "example": "ERC1155Collection", - "enum": [ - "ERC1155Collection" - ] - }, - "contract_address": { - "type": "string", - "description": "Address of ERC1155 token", - "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "pattern": "^0x[a-fA-F0-9]{40}$" + "id": { + "description": "Confirmation Candidate ID", + "type": "string" }, - "image_url": { - "type": "string", - "description": "The URL of the collection image", - "example": "https://example.com/nft.jpeg" + "eth_address": { + "description": "request user's ether address", + "type": "string" }, - "contract_name": { - "type": "string", - "nullable": true, - "description": "The name of the collection", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + "status": { + "description": "Status of the evm message", + "type": "string" }, - "amount": { - "type": "string", - "description": "A string representing the total units of an ERC1155 token which the user is buying", - "example": "100" + "version": { + "description": "Which version is at", + "type": "string" }, - "immutable_verification_status": { - "type": "string", - "description": "The Immutable verification status of this collection", - "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" + "data": { + "description": "evm message data", + "$ref": "#/components/schemas/ERC191Message" } - }, - "example": [ + } + }, + "ValidationResult": { + "type": "object", + "oneOf": [ { - "type": "ERC1155", - "contract_address": "0x87c07c927eba711cbc55ec628a670acd48d0b525", - "contract_name": "Guild of Guardians Heroes", - "amount": "100", - "immutable_verification_status": "verified" + "$ref": "#/components/schemas/ValidationSuccessResults" + }, + { + "$ref": "#/components/schemas/ValidationErrorResults" + }, + { + "$ref": "#/components/schemas/ValidationSimulationFailedResults" } ], - "required": [ - "type", - "image_url", - "contract_address", - "amount", - "immutable_verification_status" - ] + "discriminator": { + "propertyName": "status", + "mapping": { + "error": "#/components/schemas/ValidationErrorResults", + "success": "#/components/schemas/ValidationSuccessResults", + "simulation_failed": "#/components/schemas/ValidationSimulationFailedResults" + } + } }, - "SeaportFee": { + "ValidationSuccessResults": { "type": "object", + "required": [ + "status", + "analysis", + "highestSeverity" + ], "properties": { - "type": { - "type": "string", - "description": "Token type of the Fee", - "example": "ERC20", - "enum": [ - "ERC20", - "NATIVE" - ] - }, - "amount": { - "type": "string", - "description": "Fee payable to recipient upon settlement", - "example": "10000000000000000" - }, - "recipient_address": { - "type": "string", - "description": "Wallet address of fee recipient", - "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233", - "pattern": "^0x[a-fA-F0-9]{40}$" - }, - "contract_address": { - "type": "string", - "description": "Address of the ERC20 token for the fee", - "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F", - "pattern": "^0x[a-fA-F0-9]{40}$" + "status": { + "$ref": "#/components/schemas/ValidationStatus" }, - "symbol": { - "type": "string", - "description": "The symbol of token for the fee", - "example": "AAA", - "nullable": true + "highestSeverity": { + "$ref": "#/components/schemas/HighestSeverity" }, - "decimals": { - "type": "integer", - "description": "The decimal of this item", - "example": 18 + "analysis": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Analysis" + }, + "minItems": 0, + "description": "Contains a recommended action and warnings pertaining to the simulated transaction, such as interactions with known malicious addresses" } - }, - "example": { - "amount": "10000000000000000", - "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233", - "type": "NATIVE" - }, + } + }, + "ValidationSimulationFailedResults": { + "type": "object", "required": [ - "amount", - "type", - "recipient_address", - "decimals" - ] + "status", + "error" + ], + "properties": { + "status": { + "$ref": "#/components/schemas/ValidationStatus" + }, + "error": { + "description": "human-readable error message representing a failure to simulate the transaction", + "type": "string" + } + } }, - "SeaportCreateListingMetadata": { + "ValidationErrorResults": { "type": "object", "required": [ - "typed_data_type", - "buy", - "sell", - "fees" + "status", + "error" ], "properties": { - "typed_data_type": { - "type": "string", - "description": "Typed data type", - "enum": [ - "SEAPORT_CREATE_LISTING_METADATA" - ] + "status": { + "$ref": "#/components/schemas/ValidationStatus" }, - "buy": { - "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/SeaportNativeItem" - }, - { - "$ref": "#/components/schemas/SeaportERC20Item" - }, - { - "$ref": "#/components/schemas/SeaportERC721Item" - }, - { - "$ref": "#/components/schemas/SeaportERC721CollectionItem" - }, - { - "$ref": "#/components/schemas/SeaportERC1155Item" - }, - { - "$ref": "#/components/schemas/SeaportERC1155CollectionItem" - } - ], - "example": [ - { - "type": "ERC721", - "contract_address": "0x87c07c927eba711cbc55ec628a670acd48d0b525", - "contract_name": "Guild of Guardians Heroes", - "name": "Bestowing Saint", - "token_id": 1 - } - ] + "error": { + "description": "human-readable error message representing a failure with the simulated transaction, such as a reversion", + "type": "string" + } + } + }, + "Analysis": { + "description": "Contains a recommended action and warnings pertaining to the simulated transaction, such as interactions with known malicious addresses", + "type": "object", + "required": [ + "severity", + "description" + ], + "properties": { + "severity": { + "$ref": "#/components/schemas/Severity" }, - "sell": { - "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/SeaportNativeItem" - }, - { - "$ref": "#/components/schemas/SeaportERC20Item" - }, - { - "$ref": "#/components/schemas/SeaportERC721Item" - }, - { - "$ref": "#/components/schemas/SeaportERC1155Item" - } - ] + "description": { + "description": "description of the analysis", + "type": "string" }, - "fees": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SeaportFee" - } + "address": { + "description": "address of related analysis", + "type": "string" + } + } + }, + "Severity": { + "type": "string", + "description": "Analysis severity level", + "enum": [ + "malicious", + "benign", + "warning", + "unknown", + "info" + ] + }, + "HighestSeverity": { + "type": "object", + "required": [ + "severity", + "description" + ], + "description": "Top level severity analysis", + "properties": { + "severity": { + "$ref": "#/components/schemas/Severity" + }, + "description": { + "type": "string" } } }, - "GetTransactionMetadataRes": { + "ValidationStatus": { + "type": "string", + "description": "Status of the validation", + "enum": [ + "success", + "error", + "simulation_failed" + ] + }, + "ERC191Message": { + "type": "string", + "description": "the raw message data to sign", + "maxLength": 500, + "minLength": 1 + }, + "FilterValue": { "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/ERC20ApproveMetadata" - }, - { - "$ref": "#/components/schemas/ERC20TransferMetadata" - }, - { - "$ref": "#/components/schemas/ERC20TransferFromMetadata" - }, - { - "$ref": "#/components/schemas/ERC721ApproveMetadata" - }, - { - "$ref": "#/components/schemas/NFTSetApprovalForAllMetadata" - }, - { - "$ref": "#/components/schemas/ERC721TransferFromMetadata" - }, - { - "$ref": "#/components/schemas/ERC721SafeTransferFromBatchMetadata" + "properties": { + "value": { + "type": "string" }, + "nft_count": { + "type": "string", + "description": "Number of NFTs that have this trait. Uint256 as string" + } + }, + "example": [ { - "$ref": "#/components/schemas/SeaportFulfillAvailableAdvancedOrdersMetadata" + "value": "Common", + "nft_count": "42" }, { - "$ref": "#/components/schemas/UnknownMetadata" + "value": "Rare", + "nft_count": "17" } + ], + "required": [ + "value", + "nft_count" ] }, - "GetTypedDataMetadataRes": { + "Filter": { "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/SeaportCreateListingMetadata" + "properties": { + "name": { + "type": "string", + "description": "Name of trait", + "example": "Rarity" }, - { - "$ref": "#/components/schemas/UnknownTypedDataMetadata" + "values": { + "description": "List of 100 most common values for this trait sorted by number of associated NFTs", + "type": "array", + "items": { + "$ref": "#/components/schemas/FilterValue" + } + }, + "omitted_values_count": { + "type": "integer", + "description": "Indicated how many more distinct values exist", + "example": 0 } + }, + "required": [ + "name", + "values", + "omitted_values_count" ] }, - "GetTypedDataMetadataRequest": { + "FilterResult": { "type": "object", - "required": [ - "payload" - ], "properties": { - "payload": { - "$ref": "#/components/schemas/EIP712Message" + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "contract_address": { + "type": "string", + "description": "ETH Address of collection that the asset belongs to", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + "filters": { + "description": "List of all filters and the most common values", + "type": "array", + "items": { + "$ref": "#/components/schemas/Filter" + } } - } + }, + "required": [ + "chain", + "contract_address", + "filters" + ] }, - "EIP712Message": { + "ListFiltersResult": { "type": "object", + "description": "List filters result", "properties": { - "types": { - "type": "object", - "properties": { - "EIP712Domain": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "name", - "type" - ] - } - } - }, - "additionalProperties": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "name", - "type" - ] - } - }, - "required": [ - "EIP712Domain" - ] - }, - "primaryType": { - "type": "string" - }, - "domain": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "version": { - "type": "string" - }, - "chainId": { - "type": "integer" - }, - "verifyingContract": { - "type": "string" - }, - "salt": { - "type": "string" - } - } + "result": { + "$ref": "#/components/schemas/FilterResult" }, - "message": { - "type": "object" + "page": { + "$ref": "#/components/schemas/Page" } }, "required": [ - "types", - "primaryType", - "domain", - "message" + "result", + "page" ] }, - "EthAddress": { - "description": "Ethereum address", - "type": "string", - "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" - }, - "CreatedAt": { - "description": "Created at", - "type": "string", - "format": "date-time", - "example": "2021-08-31T00:00:00Z" - }, - "Name": { - "description": "Name", - "type": "string", - "example": "Test" - }, - "WalletType": { - "description": "Wallet type", + "MarketplaceContractType": { + "description": "The contract type for a collection", "type": "string", - "example": "MetaMask" + "enum": [ + "ERC721", + "ERC1155" + ] }, - "Wallet": { - "description": "Linked wallet", + "NFTWithStack": { "type": "object", - "required": [ - "address", - "type", - "created_at", - "updated_at", - "clientName" - ], + "description": "Stack", "properties": { - "address": { - "$ref": "#/components/schemas/EthAddress" + "token_id": { + "description": "Token id of NFT (uint256 as string)", + "type": "string" }, - "type": { - "$ref": "#/components/schemas/WalletType" + "stack_id": { + "type": "string", + "format": "uuid", + "description": "Stack ID" }, - "created_at": { - "$ref": "#/components/schemas/CreatedAt" + "chain": { + "$ref": "#/components/schemas/Chain" }, - "updated_at": { - "$ref": "#/components/schemas/CreatedAt" + "contract_address": { + "type": "string", + "description": "Contract address" }, - "name": { - "$ref": "#/components/schemas/Name" + "contract_type": { + "$ref": "#/components/schemas/MarketplaceContractType" }, - "clientName": { + "created_at": { "type": "string", - "description": "Name of client that linked the wallet", - "example": "Passport Dashboard" - } - } - }, - "LinkWalletV2Request": { - "description": "Link wallet V2 request", - "type": "object", - "required": [ - "type", - "wallet_address", - "signature", - "nonce" - ], - "properties": { - "type": { + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the metadata was created" + }, + "updated_at": { "type": "string", - "description": "This should be the EIP-6963 rdns value, if you're unable to get the rdns value you can provide \"External\". If using WalletConnect then provide \"WalletConnect\".", - "example": "io.metamask", - "maxLength": 32, - "not": { - "enum": [ - "Passport", - "com.immutable.passport" - ] - } + "format": "date-time", + "description": "When the metadata was last updated", + "example": "2022-08-16T17:43:26.991388Z" }, - "wallet_address": { - "description": "The address of the external wallet being linked to Passport", + "name": { "type": "string", - "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045", - "pattern": "^0x[a-fA-F0-9]{40}$" + "nullable": true, + "example": "Sword", + "description": "The name of the NFT" }, - "signature": { - "description": "The EIP-712 signature", - "type": "string" + "description": { + "type": "string", + "nullable": true, + "example": "2022-08-16T17:43:26.991388Z", + "description": "The description of the NFT" }, - "nonce": { - "description": "A unique identifier for the signature", - "type": "string" - } - } - }, - "UserInfo": { - "type": "object", - "required": [ - "sub", - "linked_addresses" - ], - "properties": { - "sub": { + "image": { "type": "string", - "description": "The user's id" + "nullable": true, + "description": "The image url of the NFT", + "example": "https://some-url" }, - "email": { + "external_url": { "type": "string", - "description": "The user's email address" + "nullable": true, + "description": "The external website link of NFT", + "example": "https://some-url" }, - "passport_address": { + "animation_url": { "type": "string", - "description": "The user's Passport address if it has been registered", - "pattern": "^0x[0-9a-fA-F]*$", - "maxLength": 42 + "nullable": true, + "description": "The animation url of the NFT", + "example": "https://some-url" }, - "linked_addresses": { + "youtube_url": { + "type": "string", + "nullable": true, + "description": "The youtube URL of NFT", + "example": "https://some-url" + }, + "attributes": { "type": "array", - "minItems": 0, - "description": "The user's list of linked addresses", + "description": "List of Metadata attributes", + "nullable": true, "items": { - "description": "The user's linked address", - "type": "string", - "pattern": "^0x[0-9a-fA-F]*$", - "maxLength": 42 + "$ref": "#/components/schemas/NFTMetadataAttribute" } - } - } - }, - "Transaction": { - "type": "object", - "required": [ - "id", - "eth_address", - "transaction_metadata", - "version", - "transaction_type", - "status" - ], - "properties": { - "id": { - "description": "Confirmation Candidate ID", - "type": "string" - }, - "eth_address": { - "description": "candidate's ether address", - "type": "string" - }, - "status": { - "description": "Status of the starkex transactions", - "type": "string" - }, - "transaction_type": { - "description": "Confirmation candidate type", - "type": "string" - }, - "version": { - "description": "Which version is at", - "type": "string" - }, - "transaction_metadata": { - "description": "Transaction metadata as a string", - "type": "object", - "additionalProperties": true }, - "client_name": { - "description": "Name of request client", - "type": "string" - }, - "validation": { - "description": "Validation results", - "$ref": "#/components/schemas/ValidationResult", + "balance": { + "type": "integer", + "description": "Balance of NFT", + "minimum": 1, "nullable": true } - } + }, + "required": [ + "token_id", + "stack_id", + "chain", + "contract_address", + "contract_type", + "updated_at", + "created_at", + "name", + "description", + "image", + "external_url", + "animation_url", + "youtube_url", + "attributes", + "balance" + ] }, - "TransactionApprovalRequest": { + "MarketPriceNativeToken": { "type": "object", - "required": [ - "chainType" - ], "properties": { - "chainID": { - "description": "rollup chain ID", - "type": "string" - }, - "chainType": { - "description": "chain type", + "type": { "type": "string", + "description": "Token type user is offering, which in this case is the native IMX token", + "example": "NATIVE", "enum": [ - "starkex", - "evm" + "NATIVE" ] }, - "otp": { - "description": "otp string", - "type": "string" - } - } - }, - "TransactionEvaluationRequest": { - "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/StarkExTransactionEvaluationRequest" - }, - { - "$ref": "#/components/schemas/ZkEvmTransactionEvaluationRequest" + "symbol": { + "nullable": true, + "type": "string", + "description": "The symbol of token", + "example": "IMX" } + }, + "required": [ + "type", + "symbol" ] }, - "StarkExTransactionEvaluationRequest": { - "required": [ - "chainType" - ], + "MarketPriceERC20Token": { "type": "object", "properties": { - "chainId": { + "type": { "type": "string", - "description": "The ID of the chain" + "description": "Token type user is offering, which in this case is ERC20", + "example": "ERC20", + "enum": [ + "ERC20" + ] }, - "chainType": { + "contract_address": { "type": "string", - "enum": [ - "starkex" - ], - "description": "The type of the chain" + "description": "Address of ERC20 token", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "symbol": { + "nullable": true, + "type": "string", + "description": "The symbol of token", + "example": "ETH" + }, + "decimals": { + "nullable": true, + "type": "integer", + "description": "The decimals of token", + "example": 18 } - } - }, - "ZkEvmTransactionEvaluationRequest": { + }, "required": [ - "transactionData", - "chainId", - "chainType" - ], + "type", + "contract_address", + "symbol", + "decimals" + ] + }, + "PaymentAmount": { + "type": "string", + "description": "The token amount value. This value is provided in the smallest unit of the token (e.g. wei for ETH)", + "example": "9750000000000000000", + "pattern": "\\d+" + }, + "MarketPriceFees": { "type": "object", "properties": { - "chainId": { + "amount": { "type": "string", - "description": "The ID of the chain" + "description": "Fee in the payment currency", + "example": "1000000000000000000" }, - "chainType": { + "type": { "type": "string", + "description": "Fee type", + "example": "ROYALTY", "enum": [ - "evm" - ], - "description": "The type of the chain" + "ROYALTY", + "MAKER_ECOSYSTEM", + "TAKER_ECOSYSTEM", + "PROTOCOL" + ] }, - "transactionData": { - "$ref": "#/components/schemas/ZkEvmTransactionData" + "recipient_address": { + "type": "string", + "description": "Wallet address of fee recipient", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233", + "pattern": "^0x[a-fA-F0-9]{40}$" } + }, + "example": { + "amount": "1000000000000000000", + "type": "ROYALTY", + "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" + }, + "required": [ + "type", + "amount", + "recipient_address" + ] + }, + "ConvertedPrices": { + "type": "object", + "description": "A mapping of converted prices for major currencies such as ETH, USD. All converted prices are fee-inclusive.", + "nullable": true, + "additionalProperties": { + "type": "string" + }, + "example": { + "ETH": "0.0058079775", + "USD": "15.89" } }, - "TransactionEvaluationResponse": { + "MarketPriceDetails": { "type": "object", - "required": [ - "confirmationRequired" - ], + "description": "Market Price details", "properties": { - "confirmationRequired": { - "type": "boolean" + "token": { + "description": "Token details", + "oneOf": [ + { + "$ref": "#/components/schemas/MarketPriceNativeToken" + }, + { + "$ref": "#/components/schemas/MarketPriceERC20Token" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "NATIVE": "#/components/schemas/MarketPriceNativeToken", + "ERC20": "#/components/schemas/MarketPriceERC20Token" + } + } }, - "confirmationMethod": { - "type": "string", - "enum": [ - "otp", - "web" + "amount": { + "$ref": "#/components/schemas/PaymentAmount" + }, + "fee_inclusive_amount": { + "$ref": "#/components/schemas/PaymentAmount" + }, + "fees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MarketPriceFees" + }, + "example": [ + { + "type": "TAKER_ECOSYSTEM", + "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233", + "amount": "1000000000000000000" + } ] }, - "transactionId": { - "type": "string" + "converted_prices": { + "$ref": "#/components/schemas/ConvertedPrices" } - } + }, + "required": [ + "token", + "amount", + "fee_inclusive_amount", + "fees", + "converted_prices" + ] }, - "MessageEvaluationResponse": { + "Listing": { "type": "object", - "required": [ - "confirmationRequired", - "confirmationMethod", - "messageId" - ], "properties": { - "confirmationRequired": { - "type": "boolean" + "listing_id": { + "type": "string", + "description": "Global Order identifier", + "example": "018792C9-4AD7-8EC4-4038-9E05C598534A" }, - "confirmationMethod": { + "price_details": { + "$ref": "#/components/schemas/MarketPriceDetails" + }, + "token_id": { "type": "string", - "enum": [ - "otp", - "web" - ] + "description": "Token ID", + "example": "1" }, - "messageId": { - "type": "string" - } - } - }, - "ZkEvmTransactionData": { - "type": "object", - "required": [ - "userAddress", - "metaTransactions", - "nonce" - ], - "properties": { - "userAddress": { + "contract_address": { "type": "string", - "description": "The user address", - "pattern": "^0x[0-9a-fA-F]*$" + "description": "ETH Address of collection that the asset belongs to", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" }, - "metaTransactions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MetaTransaction" - }, - "minItems": 1, - "maxItems": 2, - "description": "An array of exactly two meta-transactions" + "creator": { + "type": "string", + "description": "ETH Address of listing creator", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" }, - "nonce": { + "amount": { "type": "string", - "description": "The nonce value" + "description": "Amount of token included in the listing", + "example": "1" } - } + }, + "required": [ + "listing_id", + "price_details", + "creator", + "token_id", + "contract_address", + "amount" + ] }, - "MetaTransaction": { + "LastTrade": { "type": "object", - "required": [ - "delegateCall", - "revertOnError", - "gasLimit", - "target", - "value", - "data" - ], + "nullable": true, + "description": "Most recent trade", "properties": { - "delegateCall": { - "type": "boolean", - "description": "Whether the transaction is a delegate call" - }, - "revertOnError": { - "type": "boolean", - "description": "Whether to revert on error" + "trade_id": { + "type": "string", + "description": "Trade ID", + "format": "uuid", + "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b" }, - "gasLimit": { + "contract_address": { "type": "string", - "description": "The gas limit for the transaction" + "description": "ETH Address of collection that the asset belongs to", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" }, - "target": { + "token_id": { "type": "string", - "description": "The SM target address of the transaction", - "pattern": "^0x[0-9a-fA-F]*$" + "description": "Token id of the traded asset (uint256 as string)", + "example": "1" }, - "value": { + "price_details": { + "type": "array", + "description": "Price details, list of payments involved in this trade", + "items": { + "$ref": "#/components/schemas/MarketPriceDetails" + } + }, + "amount": { "type": "string", - "description": "The value of the transaction" + "description": "Amount of the trade (uint256 as string)", + "example": "1" }, - "data": { - "oneOf": [ - { - "type": "string", - "description": "Encoded data for calling the `execute()` function on the SCW", - "pattern": "^0x[0-9a-fA-F]*$" - }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "When the trade was created", + "example": "2022-08-16T17:43:26.991388Z" + } + }, + "required": [ + "trade_id", + "token_id", + "contract_address", + "price_details", + "amount", + "created_at" + ] + }, + "Market": { + "type": "object", + "description": "Market data", + "properties": { + "floor_listing": { + "description": "Cheapest active listing", + "nullable": true, + "allOf": [ { - "type": "array", - "items": { - "type": "number" - } + "$ref": "#/components/schemas/Listing" } ] + }, + "last_trade": { + "$ref": "#/components/schemas/LastTrade" } - } + }, + "required": [ + "floor_listing", + "last_trade" + ] }, - "MessageEvaluationRequest": { + "NFTBundle": { "type": "object", - "required": [ - "payload", - "chainID" - ], + "description": "NFT bundle includes NFT with stack, markets and listings", "properties": { - "payload": { - "$ref": "#/components/schemas/EIP712Message" + "nft_with_stack": { + "$ref": "#/components/schemas/NFTWithStack" }, - "chainID": { - "description": "rollup chain ID", - "type": "string" + "market": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/Market" + } + ] + }, + "listings": { + "type": "array", + "description": "List of open listings for the stack.", + "maxItems": 10, + "items": { + "$ref": "#/components/schemas/Listing" + } } - } + }, + "required": [ + "nft_with_stack", + "market", + "listings" + ] }, - "ERC191MessageEvaluationRequest": { + "SearchNFTsResult": { "type": "object", - "required": [ - "payload", - "chainID" - ], + "description": "Search NFTs result", "properties": { - "payload": { - "$ref": "#/components/schemas/ERC191Message" + "result": { + "type": "array", + "description": "List of nft bundles", + "items": { + "$ref": "#/components/schemas/NFTBundle" + } }, - "chainID": { - "description": "rollup chain ID", - "type": "string" + "page": { + "$ref": "#/components/schemas/Page" } - } + }, + "required": [ + "result", + "page" + ] }, - "EVMMessage": { + "Stack": { "type": "object", - "required": [ - "id", - "eth_address", - "data", - "version", - "status" - ], + "description": "Stack", "properties": { - "id": { - "description": "Confirmation Candidate ID", - "type": "string" + "stack_id": { + "type": "string", + "format": "uuid", + "description": "Stack ID" + }, + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "contract_address": { + "type": "string", + "description": "Contract address" + }, + "contract_type": { + "$ref": "#/components/schemas/MarketplaceContractType" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the metadata was created" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "When the metadata was last updated", + "example": "2022-08-16T17:43:26.991388Z" + }, + "name": { + "type": "string", + "nullable": true, + "example": "Sword", + "description": "The name of the NFT" + }, + "description": { + "type": "string", + "nullable": true, + "example": "2022-08-16T17:43:26.991388Z", + "description": "The description of the NFT" }, - "eth_address": { - "description": "request user's ether address", - "type": "string" + "image": { + "type": "string", + "nullable": true, + "description": "The image url of the NFT", + "example": "https://some-url" }, - "status": { - "description": "Status of the evm message", - "type": "string" + "external_url": { + "type": "string", + "nullable": true, + "description": "The external website link of NFT", + "example": "https://some-url" }, - "version": { - "description": "Which version is at", - "type": "string" + "animation_url": { + "type": "string", + "nullable": true, + "description": "The animation url of the NFT", + "example": "https://some-url" }, - "data": { - "description": "evm message data", - "$ref": "#/components/schemas/EIP712Message" + "youtube_url": { + "type": "string", + "nullable": true, + "description": "The youtube URL of NFT", + "example": "https://some-url" }, - "validation": { - "description": "Validation results", - "$ref": "#/components/schemas/ValidationResult", - "nullable": true + "attributes": { + "type": "array", + "description": "List of Metadata attributes", + "nullable": true, + "items": { + "$ref": "#/components/schemas/NFTMetadataAttribute" + } } - } + }, + "required": [ + "stack_id", + "chain", + "contract_address", + "contract_type", + "updated_at", + "created_at", + "name", + "description", + "image", + "external_url", + "animation_url", + "youtube_url", + "attributes" + ] }, - "Erc191MessageResponse": { + "StackBundle": { "type": "object", - "required": [ - "id", - "eth_address", - "data", - "version", - "status" - ], + "description": "Stack bundle includes stacks, markets and listings", "properties": { - "id": { - "description": "Confirmation Candidate ID", - "type": "string" - }, - "eth_address": { - "description": "request user's ether address", - "type": "string" + "stack": { + "$ref": "#/components/schemas/Stack" }, - "status": { - "description": "Status of the evm message", - "type": "string" + "stack_count": { + "type": "integer", + "description": "Total count of NFTs in the stack matching the filter params", + "example": 1 }, - "version": { - "description": "Which version is at", - "type": "string" + "market": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/Market" + } + ] }, - "data": { - "description": "evm message data", - "$ref": "#/components/schemas/ERC191Message" + "listings": { + "type": "array", + "description": "List of open listings for the stack.", + "maxItems": 10, + "items": { + "$ref": "#/components/schemas/Listing" + } } - } + }, + "required": [ + "stack", + "stack_count", + "market", + "listings" + ] }, - "ValidationResult": { + "SearchStacksResult": { "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/ValidationSuccessResults" - }, - { - "$ref": "#/components/schemas/ValidationErrorResults" + "description": "Search stacks result", + "properties": { + "result": { + "type": "array", + "description": "List of stack bundles", + "items": { + "$ref": "#/components/schemas/StackBundle" + } }, - { - "$ref": "#/components/schemas/ValidationSimulationFailedResults" - } - ], - "discriminator": { - "propertyName": "status", - "mapping": { - "error": "#/components/schemas/ValidationErrorResults", - "success": "#/components/schemas/ValidationSuccessResults", - "simulation_failed": "#/components/schemas/ValidationSimulationFailedResults" + "page": { + "$ref": "#/components/schemas/Page" } - } + }, + "required": [ + "result", + "page" + ] }, - "ValidationSuccessResults": { + "StackQuoteResult": { "type": "object", - "required": [ - "status", - "analysis", - "highestSeverity" - ], + "description": "Stack quote result", "properties": { - "status": { - "$ref": "#/components/schemas/ValidationStatus" + "chain": { + "$ref": "#/components/schemas/Chain" }, - "highestSeverity": { - "$ref": "#/components/schemas/HighestSeverity" + "stack_id": { + "format": "uuid", + "type": "string" }, - "analysis": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Analysis" - }, - "minItems": 0, - "description": "Contains a recommended action and warnings pertaining to the simulated transaction, such as interactions with known malicious addresses" + "market_stack": { + "$ref": "#/components/schemas/Market" + }, + "market_collection": { + "$ref": "#/components/schemas/Market" } - } + }, + "required": [ + "stack_id", + "market_stack", + "market_collection", + "chain" + ] }, - "ValidationSimulationFailedResults": { + "QuotesForStacksResult": { "type": "object", - "required": [ - "status", - "error" - ], + "description": "Quotes for stacks result", "properties": { - "status": { - "$ref": "#/components/schemas/ValidationStatus" + "result": { + "type": "array", + "description": "List of quotes", + "items": { + "$ref": "#/components/schemas/StackQuoteResult" + } }, - "error": { - "description": "human-readable error message representing a failure to simulate the transaction", - "type": "string" + "page": { + "$ref": "#/components/schemas/Page" } - } + }, + "required": [ + "result", + "page" + ] }, - "ValidationErrorResults": { + "MarketNft": { "type": "object", - "required": [ - "status", - "error" - ], + "description": "NFT market data", "properties": { - "status": { - "$ref": "#/components/schemas/ValidationStatus" - }, - "error": { - "description": "human-readable error message representing a failure with the simulated transaction, such as a reversion", - "type": "string" + "last_trade": { + "$ref": "#/components/schemas/LastTrade" } - } + }, + "required": [ + "last_trade" + ] }, - "Analysis": { - "description": "Contains a recommended action and warnings pertaining to the simulated transaction, such as interactions with known malicious addresses", + "NFTQuoteResult": { "type": "object", - "required": [ - "severity", - "description" - ], + "description": "NFT quote result", "properties": { - "severity": { - "$ref": "#/components/schemas/Severity" + "chain": { + "$ref": "#/components/schemas/Chain" }, - "description": { - "description": "description of the analysis", + "token_id": { + "description": "Token id of NFT (uint256 as string)", "type": "string" }, - "address": { - "description": "address of related analysis", - "type": "string" + "market_stack": { + "$ref": "#/components/schemas/Market" + }, + "market_nft": { + "$ref": "#/components/schemas/MarketNft" + }, + "market_collection": { + "$ref": "#/components/schemas/Market" } - } - }, - "Severity": { - "type": "string", - "description": "Analysis severity level", - "enum": [ - "malicious", - "benign", - "warning", - "unknown", - "info" + }, + "required": [ + "token_id", + "market_stack", + "market_nft", + "market_collection", + "chain" ] }, - "HighestSeverity": { + "QuotesForNFTsResult": { "type": "object", - "required": [ - "severity", - "description" - ], - "description": "Top level severity analysis", + "description": "Quotes for NFTs result", "properties": { - "severity": { - "$ref": "#/components/schemas/Severity" + "result": { + "type": "array", + "description": "List of quotes", + "items": { + "$ref": "#/components/schemas/NFTQuoteResult" + } }, - "description": { - "type": "string" + "page": { + "$ref": "#/components/schemas/Page" } - } - }, - "ValidationStatus": { - "type": "string", - "description": "Status of the validation", - "enum": [ - "success", - "error", - "simulation_failed" + }, + "required": [ + "result", + "page" ] - }, - "ERC191Message": { - "type": "string", - "description": "the raw message data to sign", - "maxLength": 500, - "minLength": 1 } } } diff --git a/packages/internal/generated-clients/src/multi-rollup/.openapi-generator/FILES b/packages/internal/generated-clients/src/multi-rollup/.openapi-generator/FILES index 2deb6ad1d0..e32a8b49fb 100644 --- a/packages/internal/generated-clients/src/multi-rollup/.openapi-generator/FILES +++ b/packages/internal/generated-clients/src/multi-rollup/.openapi-generator/FILES @@ -11,11 +11,13 @@ domain/collections-api.ts domain/crafting-api.ts domain/guardian-api.ts domain/metadata-api.ts +domain/metadata-search-api.ts domain/nft-owners-api.ts domain/nfts-api.ts domain/orders-api.ts domain/passport-api.ts domain/passport-profile-api.ts +domain/pricing-api.ts domain/tokens-api.ts git_push.sh index.ts @@ -94,6 +96,9 @@ models/failed-order-cancellation.ts models/fee.ts models/fill-status.ts models/filled-order-status.ts +models/filter-result.ts +models/filter-value.ts +models/filter.ts models/fulfillable-order.ts models/fulfillment-data-request.ts models/fulfillment-data200-response-result.ts @@ -115,6 +120,7 @@ models/immutable-verification-status-enum.ts models/inactive-order-status.ts models/index.ts models/item.ts +models/last-trade.ts models/link-wallet-v2-request.ts models/list-activities-result.ts models/list-bids-result.ts @@ -122,6 +128,7 @@ models/list-chains-result.ts models/list-collection-bids-result.ts models/list-collection-owners-result.ts models/list-collections-result.ts +models/list-filters-result.ts models/list-listings-result.ts models/list-metadata-result.ts models/list-mint-requests-result.ts @@ -131,6 +138,16 @@ models/list-nfts-result.ts models/list-tokens-result.ts models/list-trade-result.ts models/listing-result.ts +models/listing.ts +models/market-floor-listing.ts +models/market-nft.ts +models/market-price-details-token.ts +models/market-price-details.ts +models/market-price-erc20-token.ts +models/market-price-fees.ts +models/market-price-native-token.ts +models/market.ts +models/marketplace-contract-type.ts models/message-evaluation-request.ts models/message-evaluation-response.ts models/meta-transaction-data.ts @@ -143,15 +160,18 @@ models/mint-request-status.ts models/mint.ts models/native-item.ts models/nft.ts +models/nftbundle.ts models/nftcontract-type.ts models/nftmetadata-attribute-value.ts models/nftmetadata-attribute.ts models/nftmetadata-request.ts models/nftowner.ts +models/nftquote-result.ts models/nftsale.ts models/nftset-approval-for-all-metadata.ts models/nftwith-balance.ts models/nftwith-owner.ts +models/nftwith-stack.ts models/operator-allowlist-contract-status-internal-all-of.ts models/operator-allowlist-contract-status-internal.ts models/operator-allowlist-contract-status.ts @@ -166,6 +186,8 @@ models/organisation-tier.ts models/page.ts models/pending-order-status.ts models/protocol-data.ts +models/quotes-for-nfts-result.ts +models/quotes-for-stacks-result.ts models/refresh-collection-metadata-request.ts models/refresh-collection-metadata-result.ts models/refresh-metadata-by-id.ts @@ -192,10 +214,15 @@ models/seaport-erc721-item.ts models/seaport-fee.ts models/seaport-fulfill-available-advanced-orders-metadata.ts models/seaport-native-item.ts +models/search-nfts-result.ts +models/search-stacks-result.ts models/severity.ts models/sign-crafting-request-multi-caller.ts models/sign-crafting-request.ts models/sign-crafting-result.ts +models/stack-bundle.ts +models/stack-quote-result.ts +models/stack.ts models/stark-ex-transaction-evaluation-request.ts models/token-contract-type.ts models/token.ts diff --git a/packages/internal/generated-clients/src/multi-rollup/api.ts b/packages/internal/generated-clients/src/multi-rollup/api.ts index a5bc07d233..023a862b05 100644 --- a/packages/internal/generated-clients/src/multi-rollup/api.ts +++ b/packages/internal/generated-clients/src/multi-rollup/api.ts @@ -20,10 +20,12 @@ export * from './domain/collections-api'; export * from './domain/crafting-api'; export * from './domain/guardian-api'; export * from './domain/metadata-api'; +export * from './domain/metadata-search-api'; export * from './domain/nft-owners-api'; export * from './domain/nfts-api'; export * from './domain/orders-api'; export * from './domain/passport-api'; export * from './domain/passport-profile-api'; +export * from './domain/pricing-api'; export * from './domain/tokens-api'; diff --git a/packages/internal/generated-clients/src/multi-rollup/domain/metadata-api.ts b/packages/internal/generated-clients/src/multi-rollup/domain/metadata-api.ts index f732cce12e..997f5e05e4 100644 --- a/packages/internal/generated-clients/src/multi-rollup/domain/metadata-api.ts +++ b/packages/internal/generated-clients/src/multi-rollup/domain/metadata-api.ts @@ -43,6 +43,8 @@ import { MetadataRefreshRateLimitResult } from '../models'; import { RefreshMetadataByIDRequest } from '../models'; // @ts-ignore import { RefreshNFTMetadataByTokenIDRequest } from '../models'; +// @ts-ignore +import { StackBundle } from '../models'; /** * MetadataApi - axios parameter creator * @export @@ -188,6 +190,47 @@ export const MetadataApiAxiosParamCreator = function (configuration?: Configurat + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * List NFT stack bundles by stack_id. This endpoint functions similarly to `ListMetadataByID` but extends the response to include Market, Listings & Stack Count information for each stack. + * @summary List NFT stack bundles by stack_id. Response will include Market, Listings & Stack Count information for each stack + * @param {string} chainName The name of chain + * @param {Array} stackId List of stack_id to filter by + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + listStacks: async (chainName: string, stackId: Array, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'chainName' is not null or undefined + assertParamExists('listStacks', 'chainName', chainName) + // verify required parameter 'stackId' is not null or undefined + assertParamExists('listStacks', 'stackId', stackId) + const localVarPath = `/v1/chains/{chain_name}/stacks` + .replace(`{${"chain_name"}}`, encodeURIComponent(String(chainName))); + // 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 (stackId) { + localVarQueryParameter['stack_id'] = stackId; + } + + + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -343,6 +386,18 @@ export const MetadataApiFp = function(configuration?: Configuration) { const localVarAxiosArgs = await localVarAxiosParamCreator.listMetadataForChain(chainName, fromUpdatedAt, pageCursor, pageSize, options); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, + /** + * List NFT stack bundles by stack_id. This endpoint functions similarly to `ListMetadataByID` but extends the response to include Market, Listings & Stack Count information for each stack. + * @summary List NFT stack bundles by stack_id. Response will include Market, Listings & Stack Count information for each stack + * @param {string} chainName The name of chain + * @param {Array} stackId List of stack_id to filter by + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async listStacks(chainName: string, stackId: Array, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.listStacks(chainName, stackId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, /** * Refresh stacked metadata * @summary Refresh stacked metadata @@ -409,6 +464,16 @@ export const MetadataApiFactory = function (configuration?: Configuration, baseP listMetadataForChain(requestParameters: MetadataApiListMetadataForChainRequest, options?: AxiosRequestConfig): AxiosPromise { return localVarFp.listMetadataForChain(requestParameters.chainName, requestParameters.fromUpdatedAt, requestParameters.pageCursor, requestParameters.pageSize, options).then((request) => request(axios, basePath)); }, + /** + * List NFT stack bundles by stack_id. This endpoint functions similarly to `ListMetadataByID` but extends the response to include Market, Listings & Stack Count information for each stack. + * @summary List NFT stack bundles by stack_id. Response will include Market, Listings & Stack Count information for each stack + * @param {MetadataApiListStacksRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + listStacks(requestParameters: MetadataApiListStacksRequest, options?: AxiosRequestConfig): AxiosPromise> { + return localVarFp.listStacks(requestParameters.chainName, requestParameters.stackId, options).then((request) => request(axios, basePath)); + }, /** * Refresh stacked metadata * @summary Refresh stacked metadata @@ -537,6 +602,27 @@ export interface MetadataApiListMetadataForChainRequest { readonly pageSize?: number } +/** + * Request parameters for listStacks operation in MetadataApi. + * @export + * @interface MetadataApiListStacksRequest + */ +export interface MetadataApiListStacksRequest { + /** + * The name of chain + * @type {string} + * @memberof MetadataApiListStacks + */ + readonly chainName: string + + /** + * List of stack_id to filter by + * @type {Array} + * @memberof MetadataApiListStacks + */ + readonly stackId: Array +} + /** * Request parameters for refreshMetadataByID operation in MetadataApi. * @export @@ -636,6 +722,18 @@ export class MetadataApi extends BaseAPI { return MetadataApiFp(this.configuration).listMetadataForChain(requestParameters.chainName, requestParameters.fromUpdatedAt, requestParameters.pageCursor, requestParameters.pageSize, options).then((request) => request(this.axios, this.basePath)); } + /** + * List NFT stack bundles by stack_id. This endpoint functions similarly to `ListMetadataByID` but extends the response to include Market, Listings & Stack Count information for each stack. + * @summary List NFT stack bundles by stack_id. Response will include Market, Listings & Stack Count information for each stack + * @param {MetadataApiListStacksRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof MetadataApi + */ + public listStacks(requestParameters: MetadataApiListStacksRequest, options?: AxiosRequestConfig) { + return MetadataApiFp(this.configuration).listStacks(requestParameters.chainName, requestParameters.stackId, options).then((request) => request(this.axios, this.basePath)); + } + /** * Refresh stacked metadata * @summary Refresh stacked metadata diff --git a/packages/internal/generated-clients/src/multi-rollup/domain/metadata-search-api.ts b/packages/internal/generated-clients/src/multi-rollup/domain/metadata-search-api.ts new file mode 100644 index 0000000000..59da349c51 --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/domain/metadata-search-api.ts @@ -0,0 +1,539 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import type { Configuration } from '../configuration'; +import type { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios'; +import globalAxios from 'axios'; +// Some imports not used depending on template conditions +// @ts-ignore +import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from '../common'; +// @ts-ignore +import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base'; +// @ts-ignore +import { APIError400 } from '../models'; +// @ts-ignore +import { APIError401 } from '../models'; +// @ts-ignore +import { APIError403 } from '../models'; +// @ts-ignore +import { APIError404 } from '../models'; +// @ts-ignore +import { APIError429 } from '../models'; +// @ts-ignore +import { APIError500 } from '../models'; +// @ts-ignore +import { ListFiltersResult } from '../models'; +// @ts-ignore +import { SearchNFTsResult } from '../models'; +// @ts-ignore +import { SearchStacksResult } from '../models'; +/** + * MetadataSearchApi - axios parameter creator + * @export + */ +export const MetadataSearchApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Get list of metadata filters + * @summary Get list of metadata attribute filters + * @param {string} chainName The name of chain + * @param {string} contractAddress Contract addresses for collection + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + listFilters: async (chainName: string, contractAddress: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'chainName' is not null or undefined + assertParamExists('listFilters', 'chainName', chainName) + // verify required parameter 'contractAddress' is not null or undefined + assertParamExists('listFilters', 'contractAddress', contractAddress) + const localVarPath = `/v1/chains/{chain_name}/search/filters/{contract_address}` + .replace(`{${"chain_name"}}`, encodeURIComponent(String(chainName))) + .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; + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Search NFTs + * @summary Search NFTs + * @param {string} chainName The name of chain + * @param {Array} contractAddress List of contract addresses to filter by + * @param {string} [accountAddress] Account address to filter by + * @param {Array} [stackId] Filters NFTs that belong to any of these stacks + * @param {boolean} [onlyIncludeOwnerListings] Whether the listings should include only the owner created listings + * @param {number} [pageSize] Number of results to return per page + * @param {string} [pageCursor] Encoded page cursor to retrieve previous or next page. Use the value returned in the response. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + searchNFTs: async (chainName: string, contractAddress: Array, accountAddress?: string, stackId?: Array, onlyIncludeOwnerListings?: boolean, pageSize?: number, pageCursor?: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'chainName' is not null or undefined + assertParamExists('searchNFTs', 'chainName', chainName) + // verify required parameter 'contractAddress' is not null or undefined + assertParamExists('searchNFTs', 'contractAddress', contractAddress) + const localVarPath = `/v1/chains/{chain_name}/search/nfts` + .replace(`{${"chain_name"}}`, encodeURIComponent(String(chainName))); + // 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 (contractAddress) { + localVarQueryParameter['contract_address'] = contractAddress; + } + + if (accountAddress !== undefined) { + localVarQueryParameter['account_address'] = accountAddress; + } + + if (stackId) { + localVarQueryParameter['stack_id'] = stackId; + } + + if (onlyIncludeOwnerListings !== undefined) { + localVarQueryParameter['only_include_owner_listings'] = onlyIncludeOwnerListings; + } + + if (pageSize !== undefined) { + localVarQueryParameter['page_size'] = pageSize; + } + + if (pageCursor !== undefined) { + localVarQueryParameter['page_cursor'] = pageCursor; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Search NFT stacks + * @summary Search NFT stacks + * @param {string} chainName The name of chain + * @param {Array} contractAddress List of contract addresses to filter by + * @param {string} [accountAddress] Account address to filter by + * @param {boolean} [onlyIncludeOwnerListings] Whether to the listings should include only the owner created listings + * @param {boolean} [onlyIfHasActiveListings] Filters results to include only stacks that have a current active listing. False and \'null\' return all unfiltered stacks. + * @param {string} [traits] JSON encoded traits to filter by. e.g. encodeURIComponent(JSON.stringify({\"rarity\": {\"values\": [\"common\", \"rare\"], \"condition\": \"eq\"}})) + * @param {string} [keyword] Keyword to search NFT name and description. Alphanumeric characters only. + * @param {SearchStacksSortByEnum} [sortBy] Sort results in a specific order + * @param {number} [pageSize] Number of results to return per page + * @param {string} [pageCursor] Encoded page cursor to retrieve previous or next page. Use the value returned in the response. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + searchStacks: async (chainName: string, contractAddress: Array, accountAddress?: string, onlyIncludeOwnerListings?: boolean, onlyIfHasActiveListings?: boolean, traits?: string, keyword?: string, sortBy?: SearchStacksSortByEnum, pageSize?: number, pageCursor?: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'chainName' is not null or undefined + assertParamExists('searchStacks', 'chainName', chainName) + // verify required parameter 'contractAddress' is not null or undefined + assertParamExists('searchStacks', 'contractAddress', contractAddress) + const localVarPath = `/v1/chains/{chain_name}/search/stacks` + .replace(`{${"chain_name"}}`, encodeURIComponent(String(chainName))); + // 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 (contractAddress) { + localVarQueryParameter['contract_address'] = contractAddress; + } + + if (accountAddress !== undefined) { + localVarQueryParameter['account_address'] = accountAddress; + } + + if (onlyIncludeOwnerListings !== undefined) { + localVarQueryParameter['only_include_owner_listings'] = onlyIncludeOwnerListings; + } + + if (onlyIfHasActiveListings !== undefined) { + localVarQueryParameter['only_if_has_active_listings'] = onlyIfHasActiveListings; + } + + if (traits !== undefined) { + localVarQueryParameter['traits'] = traits; + } + + if (keyword !== undefined) { + localVarQueryParameter['keyword'] = keyword; + } + + if (sortBy !== undefined) { + localVarQueryParameter['sort_by'] = sortBy; + } + + if (pageSize !== undefined) { + localVarQueryParameter['page_size'] = pageSize; + } + + if (pageCursor !== undefined) { + localVarQueryParameter['page_cursor'] = pageCursor; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * MetadataSearchApi - functional programming interface + * @export + */ +export const MetadataSearchApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = MetadataSearchApiAxiosParamCreator(configuration) + return { + /** + * Get list of metadata filters + * @summary Get list of metadata attribute filters + * @param {string} chainName The name of chain + * @param {string} contractAddress Contract addresses for collection + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async listFilters(chainName: string, contractAddress: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.listFilters(chainName, contractAddress, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Search NFTs + * @summary Search NFTs + * @param {string} chainName The name of chain + * @param {Array} contractAddress List of contract addresses to filter by + * @param {string} [accountAddress] Account address to filter by + * @param {Array} [stackId] Filters NFTs that belong to any of these stacks + * @param {boolean} [onlyIncludeOwnerListings] Whether the listings should include only the owner created listings + * @param {number} [pageSize] Number of results to return per page + * @param {string} [pageCursor] Encoded page cursor to retrieve previous or next page. Use the value returned in the response. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async searchNFTs(chainName: string, contractAddress: Array, accountAddress?: string, stackId?: Array, onlyIncludeOwnerListings?: boolean, pageSize?: number, pageCursor?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.searchNFTs(chainName, contractAddress, accountAddress, stackId, onlyIncludeOwnerListings, pageSize, pageCursor, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Search NFT stacks + * @summary Search NFT stacks + * @param {string} chainName The name of chain + * @param {Array} contractAddress List of contract addresses to filter by + * @param {string} [accountAddress] Account address to filter by + * @param {boolean} [onlyIncludeOwnerListings] Whether to the listings should include only the owner created listings + * @param {boolean} [onlyIfHasActiveListings] Filters results to include only stacks that have a current active listing. False and \'null\' return all unfiltered stacks. + * @param {string} [traits] JSON encoded traits to filter by. e.g. encodeURIComponent(JSON.stringify({\"rarity\": {\"values\": [\"common\", \"rare\"], \"condition\": \"eq\"}})) + * @param {string} [keyword] Keyword to search NFT name and description. Alphanumeric characters only. + * @param {SearchStacksSortByEnum} [sortBy] Sort results in a specific order + * @param {number} [pageSize] Number of results to return per page + * @param {string} [pageCursor] Encoded page cursor to retrieve previous or next page. Use the value returned in the response. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async searchStacks(chainName: string, contractAddress: Array, accountAddress?: string, onlyIncludeOwnerListings?: boolean, onlyIfHasActiveListings?: boolean, traits?: string, keyword?: string, sortBy?: SearchStacksSortByEnum, pageSize?: number, pageCursor?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.searchStacks(chainName, contractAddress, accountAddress, onlyIncludeOwnerListings, onlyIfHasActiveListings, traits, keyword, sortBy, pageSize, pageCursor, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * MetadataSearchApi - factory interface + * @export + */ +export const MetadataSearchApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = MetadataSearchApiFp(configuration) + return { + /** + * Get list of metadata filters + * @summary Get list of metadata attribute filters + * @param {MetadataSearchApiListFiltersRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + listFilters(requestParameters: MetadataSearchApiListFiltersRequest, options?: AxiosRequestConfig): AxiosPromise { + return localVarFp.listFilters(requestParameters.chainName, requestParameters.contractAddress, options).then((request) => request(axios, basePath)); + }, + /** + * Search NFTs + * @summary Search NFTs + * @param {MetadataSearchApiSearchNFTsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + searchNFTs(requestParameters: MetadataSearchApiSearchNFTsRequest, options?: AxiosRequestConfig): AxiosPromise { + return localVarFp.searchNFTs(requestParameters.chainName, requestParameters.contractAddress, requestParameters.accountAddress, requestParameters.stackId, requestParameters.onlyIncludeOwnerListings, requestParameters.pageSize, requestParameters.pageCursor, options).then((request) => request(axios, basePath)); + }, + /** + * Search NFT stacks + * @summary Search NFT stacks + * @param {MetadataSearchApiSearchStacksRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + searchStacks(requestParameters: MetadataSearchApiSearchStacksRequest, options?: AxiosRequestConfig): AxiosPromise { + return localVarFp.searchStacks(requestParameters.chainName, requestParameters.contractAddress, requestParameters.accountAddress, requestParameters.onlyIncludeOwnerListings, requestParameters.onlyIfHasActiveListings, requestParameters.traits, requestParameters.keyword, requestParameters.sortBy, requestParameters.pageSize, requestParameters.pageCursor, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for listFilters operation in MetadataSearchApi. + * @export + * @interface MetadataSearchApiListFiltersRequest + */ +export interface MetadataSearchApiListFiltersRequest { + /** + * The name of chain + * @type {string} + * @memberof MetadataSearchApiListFilters + */ + readonly chainName: string + + /** + * Contract addresses for collection + * @type {string} + * @memberof MetadataSearchApiListFilters + */ + readonly contractAddress: string +} + +/** + * Request parameters for searchNFTs operation in MetadataSearchApi. + * @export + * @interface MetadataSearchApiSearchNFTsRequest + */ +export interface MetadataSearchApiSearchNFTsRequest { + /** + * The name of chain + * @type {string} + * @memberof MetadataSearchApiSearchNFTs + */ + readonly chainName: string + + /** + * List of contract addresses to filter by + * @type {Array} + * @memberof MetadataSearchApiSearchNFTs + */ + readonly contractAddress: Array + + /** + * Account address to filter by + * @type {string} + * @memberof MetadataSearchApiSearchNFTs + */ + readonly accountAddress?: string + + /** + * Filters NFTs that belong to any of these stacks + * @type {Array} + * @memberof MetadataSearchApiSearchNFTs + */ + readonly stackId?: Array + + /** + * Whether the listings should include only the owner created listings + * @type {boolean} + * @memberof MetadataSearchApiSearchNFTs + */ + readonly onlyIncludeOwnerListings?: boolean + + /** + * Number of results to return per page + * @type {number} + * @memberof MetadataSearchApiSearchNFTs + */ + readonly pageSize?: number + + /** + * Encoded page cursor to retrieve previous or next page. Use the value returned in the response. + * @type {string} + * @memberof MetadataSearchApiSearchNFTs + */ + readonly pageCursor?: string +} + +/** + * Request parameters for searchStacks operation in MetadataSearchApi. + * @export + * @interface MetadataSearchApiSearchStacksRequest + */ +export interface MetadataSearchApiSearchStacksRequest { + /** + * The name of chain + * @type {string} + * @memberof MetadataSearchApiSearchStacks + */ + readonly chainName: string + + /** + * List of contract addresses to filter by + * @type {Array} + * @memberof MetadataSearchApiSearchStacks + */ + readonly contractAddress: Array + + /** + * Account address to filter by + * @type {string} + * @memberof MetadataSearchApiSearchStacks + */ + readonly accountAddress?: string + + /** + * Whether to the listings should include only the owner created listings + * @type {boolean} + * @memberof MetadataSearchApiSearchStacks + */ + readonly onlyIncludeOwnerListings?: boolean + + /** + * Filters results to include only stacks that have a current active listing. False and \'null\' return all unfiltered stacks. + * @type {boolean} + * @memberof MetadataSearchApiSearchStacks + */ + readonly onlyIfHasActiveListings?: boolean + + /** + * JSON encoded traits to filter by. e.g. encodeURIComponent(JSON.stringify({\"rarity\": {\"values\": [\"common\", \"rare\"], \"condition\": \"eq\"}})) + * @type {string} + * @memberof MetadataSearchApiSearchStacks + */ + readonly traits?: string + + /** + * Keyword to search NFT name and description. Alphanumeric characters only. + * @type {string} + * @memberof MetadataSearchApiSearchStacks + */ + readonly keyword?: string + + /** + * Sort results in a specific order + * @type {'cheapest_first'} + * @memberof MetadataSearchApiSearchStacks + */ + readonly sortBy?: SearchStacksSortByEnum + + /** + * Number of results to return per page + * @type {number} + * @memberof MetadataSearchApiSearchStacks + */ + readonly pageSize?: number + + /** + * Encoded page cursor to retrieve previous or next page. Use the value returned in the response. + * @type {string} + * @memberof MetadataSearchApiSearchStacks + */ + readonly pageCursor?: string +} + +/** + * MetadataSearchApi - object-oriented interface + * @export + * @class MetadataSearchApi + * @extends {BaseAPI} + */ +export class MetadataSearchApi extends BaseAPI { + /** + * Get list of metadata filters + * @summary Get list of metadata attribute filters + * @param {MetadataSearchApiListFiltersRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof MetadataSearchApi + */ + public listFilters(requestParameters: MetadataSearchApiListFiltersRequest, options?: AxiosRequestConfig) { + return MetadataSearchApiFp(this.configuration).listFilters(requestParameters.chainName, requestParameters.contractAddress, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Search NFTs + * @summary Search NFTs + * @param {MetadataSearchApiSearchNFTsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof MetadataSearchApi + */ + public searchNFTs(requestParameters: MetadataSearchApiSearchNFTsRequest, options?: AxiosRequestConfig) { + return MetadataSearchApiFp(this.configuration).searchNFTs(requestParameters.chainName, requestParameters.contractAddress, requestParameters.accountAddress, requestParameters.stackId, requestParameters.onlyIncludeOwnerListings, requestParameters.pageSize, requestParameters.pageCursor, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Search NFT stacks + * @summary Search NFT stacks + * @param {MetadataSearchApiSearchStacksRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof MetadataSearchApi + */ + public searchStacks(requestParameters: MetadataSearchApiSearchStacksRequest, options?: AxiosRequestConfig) { + return MetadataSearchApiFp(this.configuration).searchStacks(requestParameters.chainName, requestParameters.contractAddress, requestParameters.accountAddress, requestParameters.onlyIncludeOwnerListings, requestParameters.onlyIfHasActiveListings, requestParameters.traits, requestParameters.keyword, requestParameters.sortBy, requestParameters.pageSize, requestParameters.pageCursor, options).then((request) => request(this.axios, this.basePath)); + } +} + +/** + * @export + */ +export const SearchStacksSortByEnum = { + CheapestFirst: 'cheapest_first' +} as const; +export type SearchStacksSortByEnum = typeof SearchStacksSortByEnum[keyof typeof SearchStacksSortByEnum]; diff --git a/packages/internal/generated-clients/src/multi-rollup/domain/pricing-api.ts b/packages/internal/generated-clients/src/multi-rollup/domain/pricing-api.ts new file mode 100644 index 0000000000..a60a272fbc --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/domain/pricing-api.ts @@ -0,0 +1,318 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import type { Configuration } from '../configuration'; +import type { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios'; +import globalAxios from 'axios'; +// Some imports not used depending on template conditions +// @ts-ignore +import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from '../common'; +// @ts-ignore +import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base'; +// @ts-ignore +import { APIError400 } from '../models'; +// @ts-ignore +import { APIError401 } from '../models'; +// @ts-ignore +import { APIError403 } from '../models'; +// @ts-ignore +import { APIError404 } from '../models'; +// @ts-ignore +import { APIError429 } from '../models'; +// @ts-ignore +import { APIError500 } from '../models'; +// @ts-ignore +import { QuotesForNFTsResult } from '../models'; +// @ts-ignore +import { QuotesForStacksResult } from '../models'; +/** + * PricingApi - axios parameter creator + * @export + */ +export const PricingApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * pricing data for a list of token ids + * @summary Get pricing data for a list of token ids + * @param {string} chainName The name of chain + * @param {string} contractAddress Contract address for collection that these token ids are on + * @param {Array} tokenId List of token ids to get pricing data for + * @param {string} [pageCursor] Encoded page cursor to retrieve previous or next page. Use the value returned in the response. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + quotesForNFTs: async (chainName: string, contractAddress: string, tokenId: Array, pageCursor?: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'chainName' is not null or undefined + assertParamExists('quotesForNFTs', 'chainName', chainName) + // verify required parameter 'contractAddress' is not null or undefined + assertParamExists('quotesForNFTs', 'contractAddress', contractAddress) + // verify required parameter 'tokenId' is not null or undefined + assertParamExists('quotesForNFTs', 'tokenId', tokenId) + const localVarPath = `/v1/chains/{chain_name}/quotes/{contract_address}/nfts` + .replace(`{${"chain_name"}}`, encodeURIComponent(String(chainName))) + .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 (tokenId) { + localVarQueryParameter['token_id'] = tokenId; + } + + if (pageCursor !== undefined) { + localVarQueryParameter['page_cursor'] = pageCursor; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get pricing data for a list of stack ids + * @summary Get pricing data for a list of stack ids + * @param {string} chainName The name of chain + * @param {string} contractAddress Contract address for collection that these stacks are on + * @param {Array} stackId List of stack ids to get pricing data for + * @param {string} [pageCursor] Encoded page cursor to retrieve previous or next page. Use the value returned in the response. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + quotesForStacks: async (chainName: string, contractAddress: string, stackId: Array, pageCursor?: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'chainName' is not null or undefined + assertParamExists('quotesForStacks', 'chainName', chainName) + // verify required parameter 'contractAddress' is not null or undefined + assertParamExists('quotesForStacks', 'contractAddress', contractAddress) + // verify required parameter 'stackId' is not null or undefined + assertParamExists('quotesForStacks', 'stackId', stackId) + const localVarPath = `/v1/chains/{chain_name}/quotes/{contract_address}/stacks` + .replace(`{${"chain_name"}}`, encodeURIComponent(String(chainName))) + .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 (stackId) { + localVarQueryParameter['stack_id'] = stackId; + } + + if (pageCursor !== undefined) { + localVarQueryParameter['page_cursor'] = pageCursor; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * PricingApi - functional programming interface + * @export + */ +export const PricingApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = PricingApiAxiosParamCreator(configuration) + return { + /** + * pricing data for a list of token ids + * @summary Get pricing data for a list of token ids + * @param {string} chainName The name of chain + * @param {string} contractAddress Contract address for collection that these token ids are on + * @param {Array} tokenId List of token ids to get pricing data for + * @param {string} [pageCursor] Encoded page cursor to retrieve previous or next page. Use the value returned in the response. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async quotesForNFTs(chainName: string, contractAddress: string, tokenId: Array, pageCursor?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.quotesForNFTs(chainName, contractAddress, tokenId, pageCursor, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get pricing data for a list of stack ids + * @summary Get pricing data for a list of stack ids + * @param {string} chainName The name of chain + * @param {string} contractAddress Contract address for collection that these stacks are on + * @param {Array} stackId List of stack ids to get pricing data for + * @param {string} [pageCursor] Encoded page cursor to retrieve previous or next page. Use the value returned in the response. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async quotesForStacks(chainName: string, contractAddress: string, stackId: Array, pageCursor?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.quotesForStacks(chainName, contractAddress, stackId, pageCursor, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * PricingApi - factory interface + * @export + */ +export const PricingApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = PricingApiFp(configuration) + return { + /** + * pricing data for a list of token ids + * @summary Get pricing data for a list of token ids + * @param {PricingApiQuotesForNFTsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + quotesForNFTs(requestParameters: PricingApiQuotesForNFTsRequest, options?: AxiosRequestConfig): AxiosPromise { + return localVarFp.quotesForNFTs(requestParameters.chainName, requestParameters.contractAddress, requestParameters.tokenId, requestParameters.pageCursor, options).then((request) => request(axios, basePath)); + }, + /** + * Get pricing data for a list of stack ids + * @summary Get pricing data for a list of stack ids + * @param {PricingApiQuotesForStacksRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + quotesForStacks(requestParameters: PricingApiQuotesForStacksRequest, options?: AxiosRequestConfig): AxiosPromise { + return localVarFp.quotesForStacks(requestParameters.chainName, requestParameters.contractAddress, requestParameters.stackId, requestParameters.pageCursor, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for quotesForNFTs operation in PricingApi. + * @export + * @interface PricingApiQuotesForNFTsRequest + */ +export interface PricingApiQuotesForNFTsRequest { + /** + * The name of chain + * @type {string} + * @memberof PricingApiQuotesForNFTs + */ + readonly chainName: string + + /** + * Contract address for collection that these token ids are on + * @type {string} + * @memberof PricingApiQuotesForNFTs + */ + readonly contractAddress: string + + /** + * List of token ids to get pricing data for + * @type {Array} + * @memberof PricingApiQuotesForNFTs + */ + readonly tokenId: Array + + /** + * Encoded page cursor to retrieve previous or next page. Use the value returned in the response. + * @type {string} + * @memberof PricingApiQuotesForNFTs + */ + readonly pageCursor?: string +} + +/** + * Request parameters for quotesForStacks operation in PricingApi. + * @export + * @interface PricingApiQuotesForStacksRequest + */ +export interface PricingApiQuotesForStacksRequest { + /** + * The name of chain + * @type {string} + * @memberof PricingApiQuotesForStacks + */ + readonly chainName: string + + /** + * Contract address for collection that these stacks are on + * @type {string} + * @memberof PricingApiQuotesForStacks + */ + readonly contractAddress: string + + /** + * List of stack ids to get pricing data for + * @type {Array} + * @memberof PricingApiQuotesForStacks + */ + readonly stackId: Array + + /** + * Encoded page cursor to retrieve previous or next page. Use the value returned in the response. + * @type {string} + * @memberof PricingApiQuotesForStacks + */ + readonly pageCursor?: string +} + +/** + * PricingApi - object-oriented interface + * @export + * @class PricingApi + * @extends {BaseAPI} + */ +export class PricingApi extends BaseAPI { + /** + * pricing data for a list of token ids + * @summary Get pricing data for a list of token ids + * @param {PricingApiQuotesForNFTsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof PricingApi + */ + public quotesForNFTs(requestParameters: PricingApiQuotesForNFTsRequest, options?: AxiosRequestConfig) { + return PricingApiFp(this.configuration).quotesForNFTs(requestParameters.chainName, requestParameters.contractAddress, requestParameters.tokenId, requestParameters.pageCursor, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get pricing data for a list of stack ids + * @summary Get pricing data for a list of stack ids + * @param {PricingApiQuotesForStacksRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof PricingApi + */ + public quotesForStacks(requestParameters: PricingApiQuotesForStacksRequest, options?: AxiosRequestConfig) { + return PricingApiFp(this.configuration).quotesForStacks(requestParameters.chainName, requestParameters.contractAddress, requestParameters.stackId, requestParameters.pageCursor, options).then((request) => request(this.axios, this.basePath)); + } +} + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/filter-result.ts b/packages/internal/generated-clients/src/multi-rollup/models/filter-result.ts new file mode 100644 index 0000000000..c4df126894 --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/filter-result.ts @@ -0,0 +1,48 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { Chain } from './chain'; +// May contain unused imports in some cases +// @ts-ignore +import { Filter } from './filter'; + +/** + * + * @export + * @interface FilterResult + */ +export interface FilterResult { + /** + * + * @type {Chain} + * @memberof FilterResult + */ + 'chain': Chain; + /** + * ETH Address of collection that the asset belongs to + * @type {string} + * @memberof FilterResult + */ + 'contract_address': string; + /** + * List of all filters and the most common values + * @type {Array} + * @memberof FilterResult + */ + 'filters': Array; +} + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/filter-value.ts b/packages/internal/generated-clients/src/multi-rollup/models/filter-value.ts new file mode 100644 index 0000000000..8a653db0d9 --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/filter-value.ts @@ -0,0 +1,36 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * + * @export + * @interface FilterValue + */ +export interface FilterValue { + /** + * + * @type {string} + * @memberof FilterValue + */ + 'value': string; + /** + * Number of NFTs that have this trait. Uint256 as string + * @type {string} + * @memberof FilterValue + */ + 'nft_count': string; +} + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/filter.ts b/packages/internal/generated-clients/src/multi-rollup/models/filter.ts new file mode 100644 index 0000000000..57785cf669 --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/filter.ts @@ -0,0 +1,45 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { FilterValue } from './filter-value'; + +/** + * + * @export + * @interface Filter + */ +export interface Filter { + /** + * Name of trait + * @type {string} + * @memberof Filter + */ + 'name': string; + /** + * List of 100 most common values for this trait sorted by number of associated NFTs + * @type {Array} + * @memberof Filter + */ + 'values': Array; + /** + * Indicated how many more distinct values exist + * @type {number} + * @memberof Filter + */ + 'omitted_values_count': number; +} + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/index.ts b/packages/internal/generated-clients/src/multi-rollup/models/index.ts index 331485bc22..7838f22940 100644 --- a/packages/internal/generated-clients/src/multi-rollup/models/index.ts +++ b/packages/internal/generated-clients/src/multi-rollup/models/index.ts @@ -73,6 +73,9 @@ export * from './failed-order-cancellation'; export * from './fee'; export * from './fill-status'; export * from './filled-order-status'; +export * from './filter'; +export * from './filter-result'; +export * from './filter-value'; export * from './fulfillable-order'; export * from './fulfillment-data200-response'; export * from './fulfillment-data200-response-result'; @@ -93,6 +96,7 @@ export * from './highest-severity'; export * from './immutable-verification-status-enum'; export * from './inactive-order-status'; export * from './item'; +export * from './last-trade'; export * from './link-wallet-v2-request'; export * from './list-activities-result'; export * from './list-bids-result'; @@ -100,6 +104,7 @@ export * from './list-chains-result'; export * from './list-collection-bids-result'; export * from './list-collection-owners-result'; export * from './list-collections-result'; +export * from './list-filters-result'; export * from './list-listings-result'; export * from './list-metadata-result'; export * from './list-mint-requests-result'; @@ -108,7 +113,17 @@ export * from './list-nfts-by-owner-result'; export * from './list-nfts-result'; export * from './list-tokens-result'; export * from './list-trade-result'; +export * from './listing'; export * from './listing-result'; +export * from './market'; +export * from './market-floor-listing'; +export * from './market-nft'; +export * from './market-price-details'; +export * from './market-price-details-token'; +export * from './market-price-erc20-token'; +export * from './market-price-fees'; +export * from './market-price-native-token'; +export * from './marketplace-contract-type'; export * from './message-evaluation-request'; export * from './message-evaluation-response'; export * from './meta-transaction'; @@ -120,15 +135,18 @@ export * from './mint-asset'; export * from './mint-request-error-message'; export * from './mint-request-status'; export * from './nft'; +export * from './nftbundle'; export * from './nftcontract-type'; export * from './nftmetadata-attribute'; export * from './nftmetadata-attribute-value'; export * from './nftmetadata-request'; export * from './nftowner'; +export * from './nftquote-result'; export * from './nftsale'; export * from './nftset-approval-for-all-metadata'; export * from './nftwith-balance'; export * from './nftwith-owner'; +export * from './nftwith-stack'; export * from './native-item'; export * from './operator-allowlist-contract-status'; export * from './operator-allowlist-contract-status-internal'; @@ -144,6 +162,8 @@ export * from './organisation-tier'; export * from './page'; export * from './pending-order-status'; export * from './protocol-data'; +export * from './quotes-for-nfts-result'; +export * from './quotes-for-stacks-result'; export * from './refresh-collection-metadata-request'; export * from './refresh-collection-metadata-result'; export * from './refresh-metadata-by-id'; @@ -170,10 +190,15 @@ export * from './seaport-erc721-item'; export * from './seaport-fee'; export * from './seaport-fulfill-available-advanced-orders-metadata'; export * from './seaport-native-item'; +export * from './search-nfts-result'; +export * from './search-stacks-result'; export * from './severity'; export * from './sign-crafting-request'; export * from './sign-crafting-request-multi-caller'; export * from './sign-crafting-result'; +export * from './stack'; +export * from './stack-bundle'; +export * from './stack-quote-result'; export * from './stark-ex-transaction-evaluation-request'; export * from './token'; export * from './token-contract-type'; diff --git a/packages/internal/generated-clients/src/multi-rollup/models/last-trade.ts b/packages/internal/generated-clients/src/multi-rollup/models/last-trade.ts new file mode 100644 index 0000000000..dc3925a2da --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/last-trade.ts @@ -0,0 +1,63 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { MarketPriceDetails } from './market-price-details'; + +/** + * Most recent trade + * @export + * @interface LastTrade + */ +export interface LastTrade { + /** + * Trade ID + * @type {string} + * @memberof LastTrade + */ + 'trade_id': string; + /** + * ETH Address of collection that the asset belongs to + * @type {string} + * @memberof LastTrade + */ + 'contract_address': string; + /** + * Token id of the traded asset (uint256 as string) + * @type {string} + * @memberof LastTrade + */ + 'token_id': string; + /** + * Price details, list of payments involved in this trade + * @type {Array} + * @memberof LastTrade + */ + 'price_details': Array; + /** + * Amount of the trade (uint256 as string) + * @type {string} + * @memberof LastTrade + */ + 'amount': string; + /** + * When the trade was created + * @type {string} + * @memberof LastTrade + */ + 'created_at': string; +} + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/list-filters-result.ts b/packages/internal/generated-clients/src/multi-rollup/models/list-filters-result.ts new file mode 100644 index 0000000000..440e561e7e --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/list-filters-result.ts @@ -0,0 +1,42 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { FilterResult } from './filter-result'; +// May contain unused imports in some cases +// @ts-ignore +import { Page } from './page'; + +/** + * List filters result + * @export + * @interface ListFiltersResult + */ +export interface ListFiltersResult { + /** + * + * @type {FilterResult} + * @memberof ListFiltersResult + */ + 'result': FilterResult; + /** + * + * @type {Page} + * @memberof ListFiltersResult + */ + 'page': Page; +} + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/listing.ts b/packages/internal/generated-clients/src/multi-rollup/models/listing.ts new file mode 100644 index 0000000000..af2e894acd --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/listing.ts @@ -0,0 +1,63 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { MarketPriceDetails } from './market-price-details'; + +/** + * + * @export + * @interface Listing + */ +export interface Listing { + /** + * Global Order identifier + * @type {string} + * @memberof Listing + */ + 'listing_id': string; + /** + * + * @type {MarketPriceDetails} + * @memberof Listing + */ + 'price_details': MarketPriceDetails; + /** + * Token ID + * @type {string} + * @memberof Listing + */ + 'token_id': string; + /** + * ETH Address of collection that the asset belongs to + * @type {string} + * @memberof Listing + */ + 'contract_address': string; + /** + * ETH Address of listing creator + * @type {string} + * @memberof Listing + */ + 'creator': string; + /** + * Amount of token included in the listing + * @type {string} + * @memberof Listing + */ + 'amount': string; +} + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/market-floor-listing.ts b/packages/internal/generated-clients/src/multi-rollup/models/market-floor-listing.ts new file mode 100644 index 0000000000..ea4388ba88 --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/market-floor-listing.ts @@ -0,0 +1,30 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { Listing } from './listing'; +// May contain unused imports in some cases +// @ts-ignore +import { MarketPriceDetails } from './market-price-details'; + +/** + * @type MarketFloorListing + * Cheapest active listing + * @export + */ +export type MarketFloorListing = Listing; + + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/market-nft.ts b/packages/internal/generated-clients/src/multi-rollup/models/market-nft.ts new file mode 100644 index 0000000000..b9e6693617 --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/market-nft.ts @@ -0,0 +1,33 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { LastTrade } from './last-trade'; + +/** + * NFT market data + * @export + * @interface MarketNft + */ +export interface MarketNft { + /** + * + * @type {LastTrade} + * @memberof MarketNft + */ + 'last_trade': LastTrade | null; +} + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/market-price-details-token.ts b/packages/internal/generated-clients/src/multi-rollup/models/market-price-details-token.ts new file mode 100644 index 0000000000..39f2741679 --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/market-price-details-token.ts @@ -0,0 +1,30 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { MarketPriceERC20Token } from './market-price-erc20-token'; +// May contain unused imports in some cases +// @ts-ignore +import { MarketPriceNativeToken } from './market-price-native-token'; + +/** + * @type MarketPriceDetailsToken + * Token details + * @export + */ +export type MarketPriceDetailsToken = { type: 'ERC20' } & MarketPriceERC20Token | { type: 'NATIVE' } & MarketPriceNativeToken; + + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/market-price-details.ts b/packages/internal/generated-clients/src/multi-rollup/models/market-price-details.ts new file mode 100644 index 0000000000..9ef8697c09 --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/market-price-details.ts @@ -0,0 +1,60 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { MarketPriceDetailsToken } from './market-price-details-token'; +// May contain unused imports in some cases +// @ts-ignore +import { MarketPriceFees } from './market-price-fees'; + +/** + * Market Price details + * @export + * @interface MarketPriceDetails + */ +export interface MarketPriceDetails { + /** + * + * @type {MarketPriceDetailsToken} + * @memberof MarketPriceDetails + */ + 'token': MarketPriceDetailsToken; + /** + * The token amount value. This value is provided in the smallest unit of the token (e.g. wei for ETH) + * @type {string} + * @memberof MarketPriceDetails + */ + 'amount': string; + /** + * The token amount value. This value is provided in the smallest unit of the token (e.g. wei for ETH) + * @type {string} + * @memberof MarketPriceDetails + */ + 'fee_inclusive_amount': string; + /** + * + * @type {Array} + * @memberof MarketPriceDetails + */ + 'fees': Array; + /** + * A mapping of converted prices for major currencies such as ETH, USD. All converted prices are fee-inclusive. + * @type {{ [key: string]: string; }} + * @memberof MarketPriceDetails + */ + 'converted_prices': { [key: string]: string; } | null; +} + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/market-price-erc20-token.ts b/packages/internal/generated-clients/src/multi-rollup/models/market-price-erc20-token.ts new file mode 100644 index 0000000000..2e560f6fe2 --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/market-price-erc20-token.ts @@ -0,0 +1,55 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * + * @export + * @interface MarketPriceERC20Token + */ +export interface MarketPriceERC20Token { + /** + * Token type user is offering, which in this case is ERC20 + * @type {string} + * @memberof MarketPriceERC20Token + */ + 'type': MarketPriceERC20TokenTypeEnum; + /** + * Address of ERC20 token + * @type {string} + * @memberof MarketPriceERC20Token + */ + 'contract_address': string; + /** + * The symbol of token + * @type {string} + * @memberof MarketPriceERC20Token + */ + 'symbol': string | null; + /** + * The decimals of token + * @type {number} + * @memberof MarketPriceERC20Token + */ + 'decimals': number | null; +} + +export const MarketPriceERC20TokenTypeEnum = { + Erc20: 'ERC20' +} as const; + +export type MarketPriceERC20TokenTypeEnum = typeof MarketPriceERC20TokenTypeEnum[keyof typeof MarketPriceERC20TokenTypeEnum]; + + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/market-price-fees.ts b/packages/internal/generated-clients/src/multi-rollup/models/market-price-fees.ts new file mode 100644 index 0000000000..6e32d4b7dc --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/market-price-fees.ts @@ -0,0 +1,52 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * + * @export + * @interface MarketPriceFees + */ +export interface MarketPriceFees { + /** + * Fee in the payment currency + * @type {string} + * @memberof MarketPriceFees + */ + 'amount': string; + /** + * Fee type + * @type {string} + * @memberof MarketPriceFees + */ + 'type': MarketPriceFeesTypeEnum; + /** + * Wallet address of fee recipient + * @type {string} + * @memberof MarketPriceFees + */ + 'recipient_address': string; +} + +export const MarketPriceFeesTypeEnum = { + Royalty: 'ROYALTY', + MakerEcosystem: 'MAKER_ECOSYSTEM', + TakerEcosystem: 'TAKER_ECOSYSTEM', + Protocol: 'PROTOCOL' +} as const; + +export type MarketPriceFeesTypeEnum = typeof MarketPriceFeesTypeEnum[keyof typeof MarketPriceFeesTypeEnum]; + + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/market-price-native-token.ts b/packages/internal/generated-clients/src/multi-rollup/models/market-price-native-token.ts new file mode 100644 index 0000000000..76bbb6d96f --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/market-price-native-token.ts @@ -0,0 +1,43 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * + * @export + * @interface MarketPriceNativeToken + */ +export interface MarketPriceNativeToken { + /** + * Token type user is offering, which in this case is the native IMX token + * @type {string} + * @memberof MarketPriceNativeToken + */ + 'type': MarketPriceNativeTokenTypeEnum; + /** + * The symbol of token + * @type {string} + * @memberof MarketPriceNativeToken + */ + 'symbol': string | null; +} + +export const MarketPriceNativeTokenTypeEnum = { + Native: 'NATIVE' +} as const; + +export type MarketPriceNativeTokenTypeEnum = typeof MarketPriceNativeTokenTypeEnum[keyof typeof MarketPriceNativeTokenTypeEnum]; + + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/market.ts b/packages/internal/generated-clients/src/multi-rollup/models/market.ts new file mode 100644 index 0000000000..97e3d1baef --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/market.ts @@ -0,0 +1,42 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { LastTrade } from './last-trade'; +// May contain unused imports in some cases +// @ts-ignore +import { MarketFloorListing } from './market-floor-listing'; + +/** + * Market data + * @export + * @interface Market + */ +export interface Market { + /** + * + * @type {MarketFloorListing} + * @memberof Market + */ + 'floor_listing': MarketFloorListing | null; + /** + * + * @type {LastTrade} + * @memberof Market + */ + 'last_trade': LastTrade | null; +} + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/marketplace-contract-type.ts b/packages/internal/generated-clients/src/multi-rollup/models/marketplace-contract-type.ts new file mode 100644 index 0000000000..71f62cb4c4 --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/marketplace-contract-type.ts @@ -0,0 +1,31 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * The contract type for a collection + * @export + * @enum {string} + */ + +export const MarketplaceContractType = { + Erc721: 'ERC721', + Erc1155: 'ERC1155' +} as const; + +export type MarketplaceContractType = typeof MarketplaceContractType[keyof typeof MarketplaceContractType]; + + + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/nftbundle.ts b/packages/internal/generated-clients/src/multi-rollup/models/nftbundle.ts new file mode 100644 index 0000000000..a2108d4ed2 --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/nftbundle.ts @@ -0,0 +1,51 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { Listing } from './listing'; +// May contain unused imports in some cases +// @ts-ignore +import { Market } from './market'; +// May contain unused imports in some cases +// @ts-ignore +import { NFTWithStack } from './nftwith-stack'; + +/** + * NFT bundle includes NFT with stack, markets and listings + * @export + * @interface NFTBundle + */ +export interface NFTBundle { + /** + * + * @type {NFTWithStack} + * @memberof NFTBundle + */ + 'nft_with_stack': NFTWithStack; + /** + * + * @type {Market} + * @memberof NFTBundle + */ + 'market': Market | null; + /** + * List of open listings for the stack. + * @type {Array} + * @memberof NFTBundle + */ + 'listings': Array; +} + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/nftquote-result.ts b/packages/internal/generated-clients/src/multi-rollup/models/nftquote-result.ts new file mode 100644 index 0000000000..57af1d0a7c --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/nftquote-result.ts @@ -0,0 +1,63 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { Chain } from './chain'; +// May contain unused imports in some cases +// @ts-ignore +import { Market } from './market'; +// May contain unused imports in some cases +// @ts-ignore +import { MarketNft } from './market-nft'; + +/** + * NFT quote result + * @export + * @interface NFTQuoteResult + */ +export interface NFTQuoteResult { + /** + * + * @type {Chain} + * @memberof NFTQuoteResult + */ + 'chain': Chain; + /** + * Token id of NFT (uint256 as string) + * @type {string} + * @memberof NFTQuoteResult + */ + 'token_id': string; + /** + * + * @type {Market} + * @memberof NFTQuoteResult + */ + 'market_stack': Market; + /** + * + * @type {MarketNft} + * @memberof NFTQuoteResult + */ + 'market_nft': MarketNft; + /** + * + * @type {Market} + * @memberof NFTQuoteResult + */ + 'market_collection': Market; +} + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/nftwith-stack.ts b/packages/internal/generated-clients/src/multi-rollup/models/nftwith-stack.ts new file mode 100644 index 0000000000..6117ddc06d --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/nftwith-stack.ts @@ -0,0 +1,125 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { Chain } from './chain'; +// May contain unused imports in some cases +// @ts-ignore +import { MarketplaceContractType } from './marketplace-contract-type'; +// May contain unused imports in some cases +// @ts-ignore +import { NFTMetadataAttribute } from './nftmetadata-attribute'; + +/** + * Stack + * @export + * @interface NFTWithStack + */ +export interface NFTWithStack { + /** + * Token id of NFT (uint256 as string) + * @type {string} + * @memberof NFTWithStack + */ + 'token_id': string; + /** + * Stack ID + * @type {string} + * @memberof NFTWithStack + */ + 'stack_id': string; + /** + * + * @type {Chain} + * @memberof NFTWithStack + */ + 'chain': Chain; + /** + * Contract address + * @type {string} + * @memberof NFTWithStack + */ + 'contract_address': string; + /** + * + * @type {MarketplaceContractType} + * @memberof NFTWithStack + */ + 'contract_type': MarketplaceContractType; + /** + * When the metadata was created + * @type {string} + * @memberof NFTWithStack + */ + 'created_at': string; + /** + * When the metadata was last updated + * @type {string} + * @memberof NFTWithStack + */ + 'updated_at': string; + /** + * The name of the NFT + * @type {string} + * @memberof NFTWithStack + */ + 'name': string | null; + /** + * The description of the NFT + * @type {string} + * @memberof NFTWithStack + */ + 'description': string | null; + /** + * The image url of the NFT + * @type {string} + * @memberof NFTWithStack + */ + 'image': string | null; + /** + * The external website link of NFT + * @type {string} + * @memberof NFTWithStack + */ + 'external_url': string | null; + /** + * The animation url of the NFT + * @type {string} + * @memberof NFTWithStack + */ + 'animation_url': string | null; + /** + * The youtube URL of NFT + * @type {string} + * @memberof NFTWithStack + */ + 'youtube_url': string | null; + /** + * List of Metadata attributes + * @type {Array} + * @memberof NFTWithStack + */ + 'attributes': Array | null; + /** + * Balance of NFT + * @type {number} + * @memberof NFTWithStack + */ + 'balance': number | null; +} + + + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/quotes-for-nfts-result.ts b/packages/internal/generated-clients/src/multi-rollup/models/quotes-for-nfts-result.ts new file mode 100644 index 0000000000..d7cd73faac --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/quotes-for-nfts-result.ts @@ -0,0 +1,42 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { NFTQuoteResult } from './nftquote-result'; +// May contain unused imports in some cases +// @ts-ignore +import { Page } from './page'; + +/** + * Quotes for NFTs result + * @export + * @interface QuotesForNFTsResult + */ +export interface QuotesForNFTsResult { + /** + * List of quotes + * @type {Array} + * @memberof QuotesForNFTsResult + */ + 'result': Array; + /** + * + * @type {Page} + * @memberof QuotesForNFTsResult + */ + 'page': Page; +} + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/quotes-for-stacks-result.ts b/packages/internal/generated-clients/src/multi-rollup/models/quotes-for-stacks-result.ts new file mode 100644 index 0000000000..e27fd9396a --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/quotes-for-stacks-result.ts @@ -0,0 +1,42 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { Page } from './page'; +// May contain unused imports in some cases +// @ts-ignore +import { StackQuoteResult } from './stack-quote-result'; + +/** + * Quotes for stacks result + * @export + * @interface QuotesForStacksResult + */ +export interface QuotesForStacksResult { + /** + * List of quotes + * @type {Array} + * @memberof QuotesForStacksResult + */ + 'result': Array; + /** + * + * @type {Page} + * @memberof QuotesForStacksResult + */ + 'page': Page; +} + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/search-nfts-result.ts b/packages/internal/generated-clients/src/multi-rollup/models/search-nfts-result.ts new file mode 100644 index 0000000000..f54e967604 --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/search-nfts-result.ts @@ -0,0 +1,42 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { NFTBundle } from './nftbundle'; +// May contain unused imports in some cases +// @ts-ignore +import { Page } from './page'; + +/** + * Search NFTs result + * @export + * @interface SearchNFTsResult + */ +export interface SearchNFTsResult { + /** + * List of nft bundles + * @type {Array} + * @memberof SearchNFTsResult + */ + 'result': Array; + /** + * + * @type {Page} + * @memberof SearchNFTsResult + */ + 'page': Page; +} + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/search-stacks-result.ts b/packages/internal/generated-clients/src/multi-rollup/models/search-stacks-result.ts new file mode 100644 index 0000000000..b1de140585 --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/search-stacks-result.ts @@ -0,0 +1,42 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { Page } from './page'; +// May contain unused imports in some cases +// @ts-ignore +import { StackBundle } from './stack-bundle'; + +/** + * Search stacks result + * @export + * @interface SearchStacksResult + */ +export interface SearchStacksResult { + /** + * List of stack bundles + * @type {Array} + * @memberof SearchStacksResult + */ + 'result': Array; + /** + * + * @type {Page} + * @memberof SearchStacksResult + */ + 'page': Page; +} + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/stack-bundle.ts b/packages/internal/generated-clients/src/multi-rollup/models/stack-bundle.ts new file mode 100644 index 0000000000..63c881d69d --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/stack-bundle.ts @@ -0,0 +1,57 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { Listing } from './listing'; +// May contain unused imports in some cases +// @ts-ignore +import { Market } from './market'; +// May contain unused imports in some cases +// @ts-ignore +import { Stack } from './stack'; + +/** + * Stack bundle includes stacks, markets and listings + * @export + * @interface StackBundle + */ +export interface StackBundle { + /** + * + * @type {Stack} + * @memberof StackBundle + */ + 'stack': Stack; + /** + * Total count of NFTs in the stack matching the filter params + * @type {number} + * @memberof StackBundle + */ + 'stack_count': number; + /** + * + * @type {Market} + * @memberof StackBundle + */ + 'market': Market | null; + /** + * List of open listings for the stack. + * @type {Array} + * @memberof StackBundle + */ + 'listings': Array; +} + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/stack-quote-result.ts b/packages/internal/generated-clients/src/multi-rollup/models/stack-quote-result.ts new file mode 100644 index 0000000000..4b7536f34a --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/stack-quote-result.ts @@ -0,0 +1,54 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { Chain } from './chain'; +// May contain unused imports in some cases +// @ts-ignore +import { Market } from './market'; + +/** + * Stack quote result + * @export + * @interface StackQuoteResult + */ +export interface StackQuoteResult { + /** + * + * @type {Chain} + * @memberof StackQuoteResult + */ + 'chain': Chain; + /** + * + * @type {string} + * @memberof StackQuoteResult + */ + 'stack_id': string; + /** + * + * @type {Market} + * @memberof StackQuoteResult + */ + 'market_stack': Market; + /** + * + * @type {Market} + * @memberof StackQuoteResult + */ + 'market_collection': Market; +} + diff --git a/packages/internal/generated-clients/src/multi-rollup/models/stack.ts b/packages/internal/generated-clients/src/multi-rollup/models/stack.ts new file mode 100644 index 0000000000..afbce0cc3b --- /dev/null +++ b/packages/internal/generated-clients/src/multi-rollup/models/stack.ts @@ -0,0 +1,113 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable zkEVM API + * Immutable Multi Rollup API + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { Chain } from './chain'; +// May contain unused imports in some cases +// @ts-ignore +import { MarketplaceContractType } from './marketplace-contract-type'; +// May contain unused imports in some cases +// @ts-ignore +import { NFTMetadataAttribute } from './nftmetadata-attribute'; + +/** + * Stack + * @export + * @interface Stack + */ +export interface Stack { + /** + * Stack ID + * @type {string} + * @memberof Stack + */ + 'stack_id': string; + /** + * + * @type {Chain} + * @memberof Stack + */ + 'chain': Chain; + /** + * Contract address + * @type {string} + * @memberof Stack + */ + 'contract_address': string; + /** + * + * @type {MarketplaceContractType} + * @memberof Stack + */ + 'contract_type': MarketplaceContractType; + /** + * When the metadata was created + * @type {string} + * @memberof Stack + */ + 'created_at': string; + /** + * When the metadata was last updated + * @type {string} + * @memberof Stack + */ + 'updated_at': string; + /** + * The name of the NFT + * @type {string} + * @memberof Stack + */ + 'name': string | null; + /** + * The description of the NFT + * @type {string} + * @memberof Stack + */ + 'description': string | null; + /** + * The image url of the NFT + * @type {string} + * @memberof Stack + */ + 'image': string | null; + /** + * The external website link of NFT + * @type {string} + * @memberof Stack + */ + 'external_url': string | null; + /** + * The animation url of the NFT + * @type {string} + * @memberof Stack + */ + 'animation_url': string | null; + /** + * The youtube URL of NFT + * @type {string} + * @memberof Stack + */ + 'youtube_url': string | null; + /** + * List of Metadata attributes + * @type {Array} + * @memberof Stack + */ + 'attributes': Array | null; +} + + +