@imtbl/orderbook 2.19.0 → 2.20.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.js +2 -2
- package/dist/node/index.cjs +3 -3
- package/dist/node/index.js +2 -2
- package/dist/types/api-client/api-client.d.ts +1 -1
- package/dist/types/openapi/sdk/index.d.ts +1 -0
- package/dist/types/openapi/sdk/models/CreateMetadataBidRequestBody.d.ts +9 -2
- package/dist/types/openapi/sdk/models/MetadataFieldFilter.d.ts +14 -0
- package/dist/types/openapi/sdk/models/Order.d.ts +9 -1
- package/dist/types/orderbook.d.ts +8 -2
- package/dist/types/types.d.ts +49 -3
- package/package.json +3 -3
|
@@ -30,6 +30,6 @@ export declare class ImmutableApiClient {
|
|
|
30
30
|
createListing({ orderHash, orderComponents, orderSignature, makerFees, }: CreateListingParams): Promise<ListingResult>;
|
|
31
31
|
createBid({ orderHash, orderComponents, orderSignature, makerFees, }: CreateBidParams): Promise<BidResult>;
|
|
32
32
|
createCollectionBid({ orderHash, orderComponents, orderSignature, makerFees, }: CreateCollectionBidParams): Promise<CollectionBidResult>;
|
|
33
|
-
createMetadataBid(
|
|
33
|
+
createMetadataBid(params: CreateMetadataBidParams): Promise<MetadataBidResult>;
|
|
34
34
|
createTraitBid({ orderHash, orderComponents, orderSignature, makerFees, traitCriteria, }: CreateTraitBidParams): Promise<TraitBidResult>;
|
|
35
35
|
}
|
|
@@ -56,5 +56,6 @@ export type { TradeResult } from './models/TradeResult';
|
|
|
56
56
|
export type { TraitBidResult } from './models/TraitBidResult';
|
|
57
57
|
export type { MetadataBidResult } from './models/MetadataBidResult';
|
|
58
58
|
export type { TraitFilter } from './models/TraitFilter';
|
|
59
|
+
export type { MetadataFieldFilter } from './models/MetadataFieldFilter';
|
|
59
60
|
export type { UnfulfillableOrder } from './models/UnfulfillableOrder';
|
|
60
61
|
export { OrdersService } from './services/OrdersService';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { AssetCollectionItem } from './AssetCollectionItem';
|
|
2
2
|
import type { ERC20Item } from './ERC20Item';
|
|
3
3
|
import type { Fee } from './Fee';
|
|
4
|
+
import type { MetadataFieldFilter } from './MetadataFieldFilter';
|
|
4
5
|
import type { ProtocolData } from './ProtocolData';
|
|
5
6
|
export type CreateMetadataBidRequestBody = {
|
|
6
7
|
account_address: string;
|
|
@@ -35,7 +36,13 @@ export type CreateMetadataBidRequestBody = {
|
|
|
35
36
|
*/
|
|
36
37
|
start_at: string;
|
|
37
38
|
/**
|
|
38
|
-
* The metadata_id (stack_id) that NFTs must have to fulfil this bid
|
|
39
|
+
* The metadata_id (stack_id) that NFTs must have to fulfil this bid.
|
|
40
|
+
* Mutually exclusive with `metadata_criteria`; exactly one must be set.
|
|
39
41
|
*/
|
|
40
|
-
metadata_id
|
|
42
|
+
metadata_id?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Field-level metadata filters that NFTs must satisfy to fulfil this bid.
|
|
45
|
+
* Mutually exclusive with `metadata_id`; exactly one must be set.
|
|
46
|
+
*/
|
|
47
|
+
metadata_criteria?: Array<MetadataFieldFilter>;
|
|
41
48
|
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type MetadataFieldFilter = {
|
|
2
|
+
/**
|
|
3
|
+
* The metadata field name. Either a top-level NFT metadata field
|
|
4
|
+
* (`name`, `image`, `description`, `animation_url`, `external_url`,
|
|
5
|
+
* `youtube_url`) or an attribute identified by the `attribute:<trait_type>`
|
|
6
|
+
* prefix (e.g. `attribute:Background`).
|
|
7
|
+
*/
|
|
8
|
+
field_name: string;
|
|
9
|
+
/**
|
|
10
|
+
* The metadata field values to match against. Matching is case-insensitive
|
|
11
|
+
* and OR-style within a single filter; multiple filters on a bid AND.
|
|
12
|
+
*/
|
|
13
|
+
values: Array<string>;
|
|
14
|
+
};
|
|
@@ -2,6 +2,7 @@ import type { Chain } from './Chain';
|
|
|
2
2
|
import type { Fee } from './Fee';
|
|
3
3
|
import type { FillStatus } from './FillStatus';
|
|
4
4
|
import type { Item } from './Item';
|
|
5
|
+
import type { MetadataFieldFilter } from './MetadataFieldFilter';
|
|
5
6
|
import type { OrderStatus } from './OrderStatus';
|
|
6
7
|
import type { ProtocolData } from './ProtocolData';
|
|
7
8
|
import type { TraitFilter } from './TraitFilter';
|
|
@@ -52,9 +53,16 @@ export type Order = {
|
|
|
52
53
|
*/
|
|
53
54
|
trait_criteria?: Array<TraitFilter>;
|
|
54
55
|
/**
|
|
55
|
-
* Metadata ID (stack ID) for metadata bids
|
|
56
|
+
* Metadata ID (stack ID) for metadata bids created with a single metadata
|
|
57
|
+
* stack. Omitted for metadata bids created with `metadata_criteria`.
|
|
56
58
|
*/
|
|
57
59
|
metadata_id?: string;
|
|
60
|
+
/**
|
|
61
|
+
* Field-level metadata filters for metadata bids created with criteria
|
|
62
|
+
* instead of a `metadata_id`. Omitted for metadata bids created with a
|
|
63
|
+
* `metadata_id`.
|
|
64
|
+
*/
|
|
65
|
+
metadata_criteria?: Array<MetadataFieldFilter>;
|
|
58
66
|
};
|
|
59
67
|
export declare namespace Order {
|
|
60
68
|
/**
|
|
@@ -191,8 +191,14 @@ export declare class Orderbook {
|
|
|
191
191
|
*/
|
|
192
192
|
prepareMetadataBid({ makerAddress, sell, buy, orderStart, orderExpiry, }: PrepareMetadataBidParams): Promise<PrepareMetadataBidResponse>;
|
|
193
193
|
/**
|
|
194
|
-
* Create a metadata bid (collection criteria offer plus metadata
|
|
195
|
-
*
|
|
194
|
+
* Create a metadata bid (collection criteria offer plus a metadata matching
|
|
195
|
+
* spec submitted to the API). The matching spec is either a single
|
|
196
|
+
* `metadataId` (NFTs whose indexed metadata stack ID equals this UUID) or
|
|
197
|
+
* a `metadataCriteria` array of field-level filters (NFTs whose metadata
|
|
198
|
+
* satisfies every filter; AND across filters, OR within a filter's
|
|
199
|
+
* `values`, case-insensitive). Exactly one of the two must be provided.
|
|
200
|
+
* @param {CreateMetadataBidParams} createMetadataBidParams - Signed order and
|
|
201
|
+
* metadata ID or criteria.
|
|
196
202
|
* @return {MetadataBidResult} The created metadata bid.
|
|
197
203
|
*/
|
|
198
204
|
createMetadataBid(createMetadataBidParams: CreateMetadataBidParams): Promise<MetadataBidResult>;
|
package/dist/types/types.d.ts
CHANGED
|
@@ -64,14 +64,46 @@ export interface TraitBid extends OrderFields {
|
|
|
64
64
|
*/
|
|
65
65
|
traitCriteria: TraitFilter[];
|
|
66
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Top-level NFT metadata fields a metadata bid criterion may target.
|
|
69
|
+
* Mirrors the ERC-721 / OpenSea metadata schema indexed by Immutable.
|
|
70
|
+
*/
|
|
71
|
+
export type MetadataTopLevelField = 'name' | 'image' | 'description' | 'animation_url' | 'external_url' | 'youtube_url';
|
|
72
|
+
/**
|
|
73
|
+
* An attribute-style field name. The portion after `attribute:` is the
|
|
74
|
+
* attribute's `trait_type` (e.g. `attribute:Background`).
|
|
75
|
+
*/
|
|
76
|
+
export type MetadataAttributeField = `attribute:${string}`;
|
|
77
|
+
/**
|
|
78
|
+
* Field name a single metadata bid criterion can target. Either a known
|
|
79
|
+
* top-level metadata field, or an attribute-prefixed name.
|
|
80
|
+
*/
|
|
81
|
+
export type MetadataFieldName = MetadataTopLevelField | MetadataAttributeField;
|
|
82
|
+
/**
|
|
83
|
+
* A single metadata bid criterion: a field name plus the acceptable values
|
|
84
|
+
* for that field. Within a filter values are OR'd; across filters they AND.
|
|
85
|
+
* Comparisons are case-insensitive.
|
|
86
|
+
*/
|
|
87
|
+
export interface MetadataFieldFilter {
|
|
88
|
+
fieldName: MetadataFieldName;
|
|
89
|
+
values: string[];
|
|
90
|
+
}
|
|
67
91
|
export interface MetadataBid extends OrderFields {
|
|
68
92
|
type: 'METADATA_BID';
|
|
69
93
|
sell: ERC20Item[];
|
|
70
94
|
buy: (ERC721CollectionItem | ERC1155CollectionItem)[];
|
|
71
95
|
/**
|
|
72
96
|
* The metadata ID (stack ID) that NFTs must match to fulfil this bid.
|
|
97
|
+
* Set when the bid was created with a single metadata stack identifier.
|
|
98
|
+
* Mutually exclusive with `metadataCriteria`.
|
|
73
99
|
*/
|
|
74
|
-
metadataId
|
|
100
|
+
metadataId?: string;
|
|
101
|
+
/**
|
|
102
|
+
* Field-level metadata filters that NFTs must match to fulfil this bid.
|
|
103
|
+
* Set when the bid was created with criteria instead of a metadata ID.
|
|
104
|
+
* Empty when the bid was created with a `metadataId`.
|
|
105
|
+
*/
|
|
106
|
+
metadataCriteria: MetadataFieldFilter[];
|
|
75
107
|
}
|
|
76
108
|
interface OrderFields {
|
|
77
109
|
id: string;
|
|
@@ -304,9 +336,23 @@ export interface ListMetadataBidsResult {
|
|
|
304
336
|
}
|
|
305
337
|
export type PrepareMetadataBidParams = PrepareCollectionBidParams;
|
|
306
338
|
export type PrepareMetadataBidResponse = PrepareOrderResponse;
|
|
307
|
-
|
|
339
|
+
/**
|
|
340
|
+
* Parameters for creating a metadata bid. Exactly one of `metadataId` or
|
|
341
|
+
* `metadataCriteria` must be provided.
|
|
342
|
+
*
|
|
343
|
+
* - `metadataId` mode: matches NFTs whose indexed metadata stack ID equals
|
|
344
|
+
* the supplied UUID.
|
|
345
|
+
* - `metadataCriteria` mode: matches NFTs whose metadata satisfies every
|
|
346
|
+
* filter (AND across filters, OR within a filter's `values`,
|
|
347
|
+
* case-insensitive).
|
|
348
|
+
*/
|
|
349
|
+
export type CreateMetadataBidParams = CreateCollectionBidParams & ({
|
|
308
350
|
metadataId: string;
|
|
309
|
-
|
|
351
|
+
metadataCriteria?: never;
|
|
352
|
+
} | {
|
|
353
|
+
metadataId?: never;
|
|
354
|
+
metadataCriteria: MetadataFieldFilter[];
|
|
355
|
+
});
|
|
310
356
|
export interface FulfillmentOrder {
|
|
311
357
|
orderId: string;
|
|
312
358
|
takerFees: FeeValue[];
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@imtbl/orderbook",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.20.1-alpha.0",
|
|
4
4
|
"author": "Immutable",
|
|
5
5
|
"bugs": "https://github.com/immutable/ts-immutable-sdk/issues",
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@imtbl/config": "2.
|
|
8
|
-
"@imtbl/metrics": "2.
|
|
7
|
+
"@imtbl/config": "2.20.1-alpha.0",
|
|
8
|
+
"@imtbl/metrics": "2.20.1-alpha.0",
|
|
9
9
|
"@opensea/seaport-js": "4.0.3",
|
|
10
10
|
"axios": "^1.6.5",
|
|
11
11
|
"ethers": "^6.13.4",
|