@opensea/seaport-js 2.0.4 → 2.0.6

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.
Files changed (53) hide show
  1. package/README.md +4 -4
  2. package/lib/bundle.js +10 -5
  3. package/lib/seaport.js +10 -5
  4. package/lib/seaport.js.map +1 -1
  5. package/lib/typechain-types/seaport-core/src/lib/Assertions.d.ts +4 -4
  6. package/lib/typechain-types/seaport-core/src/lib/BasicOrderFulfiller.d.ts +4 -4
  7. package/lib/typechain-types/seaport-core/src/lib/Consideration.d.ts +6 -6
  8. package/lib/typechain-types/seaport-core/src/lib/ConsiderationBase.d.ts +4 -4
  9. package/lib/typechain-types/seaport-core/src/lib/CounterManager.d.ts +4 -4
  10. package/lib/typechain-types/seaport-core/src/lib/Executor.d.ts +4 -4
  11. package/lib/typechain-types/seaport-core/src/lib/GettersAndDerivers.d.ts +4 -4
  12. package/lib/typechain-types/seaport-core/src/lib/OrderCombiner.d.ts +4 -4
  13. package/lib/typechain-types/seaport-core/src/lib/OrderFulfiller.d.ts +4 -4
  14. package/lib/typechain-types/seaport-core/src/lib/OrderValidator.d.ts +4 -4
  15. package/lib/typechain-types/seaport-core/src/lib/Verifiers.d.ts +4 -4
  16. package/lib/typechain-types/seaport-types/src/interfaces/ConsiderationEventsAndErrors.d.ts +4 -4
  17. package/lib/typechain-types/seaport-types/src/interfaces/ConsiderationInterface.d.ts +2 -2
  18. package/lib/typechain-types/seaport_v1_4/contracts/Seaport.d.ts +6 -6
  19. package/lib/typechain-types/seaport_v1_5/contracts/Seaport.d.ts +6 -6
  20. package/lib/types.d.ts +1 -0
  21. package/lib/utils/criteria.js.map +1 -1
  22. package/package.json +6 -6
  23. package/src/constants.ts +1 -1
  24. package/src/seaport.ts +66 -59
  25. package/src/typechain-types/seaport-core/src/lib/Assertions.ts +4 -4
  26. package/src/typechain-types/seaport-core/src/lib/BasicOrderFulfiller.ts +4 -4
  27. package/src/typechain-types/seaport-core/src/lib/Consideration.ts +6 -6
  28. package/src/typechain-types/seaport-core/src/lib/ConsiderationBase.ts +4 -4
  29. package/src/typechain-types/seaport-core/src/lib/CounterManager.ts +4 -4
  30. package/src/typechain-types/seaport-core/src/lib/Executor.ts +4 -4
  31. package/src/typechain-types/seaport-core/src/lib/GettersAndDerivers.ts +4 -4
  32. package/src/typechain-types/seaport-core/src/lib/OrderCombiner.ts +4 -4
  33. package/src/typechain-types/seaport-core/src/lib/OrderFulfiller.ts +4 -4
  34. package/src/typechain-types/seaport-core/src/lib/OrderValidator.ts +4 -4
  35. package/src/typechain-types/seaport-core/src/lib/Verifiers.ts +4 -4
  36. package/src/typechain-types/seaport-types/src/interfaces/ConsiderationEventsAndErrors.ts +4 -4
  37. package/src/typechain-types/seaport-types/src/interfaces/ConsiderationInterface.ts +2 -2
  38. package/src/typechain-types/seaport_v1_4/contracts/Seaport.ts +6 -6
  39. package/src/typechain-types/seaport_v1_5/contracts/Seaport.ts +6 -6
  40. package/src/types.ts +13 -12
  41. package/src/utils/approval.ts +9 -9
  42. package/src/utils/balance.ts +7 -7
  43. package/src/utils/balanceAndApprovalCheck.ts +22 -22
  44. package/src/utils/criteria.ts +7 -7
  45. package/src/utils/eip712/Eip712MerkleTree.ts +2 -2
  46. package/src/utils/eip712/bulk-orders.ts +2 -2
  47. package/src/utils/eip712/defaults.ts +5 -5
  48. package/src/utils/eip712/utils.ts +1 -1
  49. package/src/utils/fulfill.ts +44 -44
  50. package/src/utils/item.ts +3 -3
  51. package/src/utils/merkletree.ts +2 -2
  52. package/src/utils/order.ts +15 -15
  53. package/src/utils/usecase.ts +8 -8
@@ -305,8 +305,8 @@ export interface SeaportInterface extends utils.Interface {
305
305
  functions: {
306
306
  "cancel((address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256)[])": FunctionFragment;
307
307
  "fulfillAdvancedOrder(((address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256),uint120,uint120,bytes,bytes),(uint256,uint8,uint256,uint256,bytes32[])[],bytes32,address)": FunctionFragment;
308
- "fulfillAvailableAdvancedOrders(((address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256),uint120,uint120,bytes,bytes)[],(uint256,uint8,uint256,uint256,bytes32[])[],tuple[][],tuple[][],bytes32,address,uint256)": FunctionFragment;
309
- "fulfillAvailableOrders(((address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256),bytes)[],tuple[][],tuple[][],bytes32,uint256)": FunctionFragment;
308
+ "fulfillAvailableAdvancedOrders(((address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256),uint120,uint120,bytes,bytes)[],(uint256,uint8,uint256,uint256,bytes32[])[],(uint256,uint256)[][],(uint256,uint256)[][],bytes32,address,uint256)": FunctionFragment;
309
+ "fulfillAvailableOrders(((address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256),bytes)[],(uint256,uint256)[][],(uint256,uint256)[][],bytes32,uint256)": FunctionFragment;
310
310
  "fulfillBasicOrder((address,uint256,uint256,address,address,address,uint256,uint256,uint8,uint256,uint256,bytes32,uint256,bytes32,bytes32,uint256,(uint256,address)[],bytes))": FunctionFragment;
311
311
  "fulfillBasicOrder_efficient_6GL6yc((address,uint256,uint256,address,address,address,uint256,uint256,uint8,uint256,uint256,bytes32,uint256,bytes32,bytes32,uint256,(uint256,address)[],bytes))": FunctionFragment;
312
312
  "fulfillOrder(((address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256),bytes),bytes32)": FunctionFragment;
@@ -378,8 +378,8 @@ export interface SeaportInterface extends utils.Interface {
378
378
  events: {
379
379
  "CounterIncremented(uint256,address)": EventFragment;
380
380
  "OrderCancelled(bytes32,address,address)": EventFragment;
381
- "OrderFulfilled(bytes32,address,address,address,tuple[],tuple[])": EventFragment;
382
- "OrderValidated(bytes32,tuple)": EventFragment;
381
+ "OrderFulfilled(bytes32,address,address,address,(uint8,address,uint256,uint256)[],(uint8,address,uint256,uint256,address)[])": EventFragment;
382
+ "OrderValidated(bytes32,(address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256))": EventFragment;
383
383
  "OrdersMatched(bytes32[])": EventFragment;
384
384
  };
385
385
  getEvent(nameOrSignatureOrTopic: "CounterIncremented"): EventFragment;
@@ -619,9 +619,9 @@ export interface Seaport extends BaseContract {
619
619
  CounterIncremented(newCounter?: null, offerer?: string | null): CounterIncrementedEventFilter;
620
620
  "OrderCancelled(bytes32,address,address)"(orderHash?: null, offerer?: string | null, zone?: string | null): OrderCancelledEventFilter;
621
621
  OrderCancelled(orderHash?: null, offerer?: string | null, zone?: string | null): OrderCancelledEventFilter;
622
- "OrderFulfilled(bytes32,address,address,address,tuple[],tuple[])"(orderHash?: null, offerer?: string | null, zone?: string | null, recipient?: null, offer?: null, consideration?: null): OrderFulfilledEventFilter;
622
+ "OrderFulfilled(bytes32,address,address,address,(uint8,address,uint256,uint256)[],(uint8,address,uint256,uint256,address)[])"(orderHash?: null, offerer?: string | null, zone?: string | null, recipient?: null, offer?: null, consideration?: null): OrderFulfilledEventFilter;
623
623
  OrderFulfilled(orderHash?: null, offerer?: string | null, zone?: string | null, recipient?: null, offer?: null, consideration?: null): OrderFulfilledEventFilter;
624
- "OrderValidated(bytes32,tuple)"(orderHash?: null, orderParameters?: null): OrderValidatedEventFilter;
624
+ "OrderValidated(bytes32,(address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256))"(orderHash?: null, orderParameters?: null): OrderValidatedEventFilter;
625
625
  OrderValidated(orderHash?: null, orderParameters?: null): OrderValidatedEventFilter;
626
626
  "OrdersMatched(bytes32[])"(orderHashes?: null): OrdersMatchedEventFilter;
627
627
  OrdersMatched(orderHashes?: null): OrdersMatchedEventFilter;
package/lib/types.d.ts CHANGED
@@ -122,6 +122,7 @@ export type Fee = {
122
122
  export type CreateOrderInput = {
123
123
  conduitKey?: string;
124
124
  zone?: string;
125
+ zoneHash?: string;
125
126
  startTime?: BigNumberish;
126
127
  endTime?: BigNumberish;
127
128
  offer: readonly CreateInputItem[];
@@ -1 +1 @@
1
- {"version":3,"file":"criteria.js","sourceRoot":"","sources":["../../src/utils/criteria.ts"],"names":[],"mappings":";;;AAAA,4CAAoC;AAEpC,iCAAwC;AAEjC,MAAM,yBAAyB,GAAG,CAAC,EACxC,MAAM,EACN,cAAc,GAAG,CAAC,EAAE,CAAC,EACrB,sBAAsB,GAAG,CAAC,EAAE,CAAC,GAK9B,EAAE,EAAE;IACH,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAC9D,KAAK,CAAC,UAAU,CAAC,KAAK;SACnB,GAAG,CACF,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,CAAC;QACC,UAAU;QACV,IAAI;QACJ,KAAK;QACL,IAAI,EAAE,gBAAI,CAAC,KAAK;KACP,CAAA,CACd;SACA,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAA,qBAAc,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CACvD,CAAC;IAEF,MAAM,0BAA0B,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CACtE,KAAK,CAAC,UAAU,CAAC,aAAa;SAC3B,GAAG,CACF,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,CAAC;QACC,UAAU;QACV,IAAI;QACJ,KAAK;QACL,IAAI,EAAE,gBAAI,CAAC,aAAa;KACf,CAAA,CACd;SACA,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAA,qBAAc,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CACvD,CAAC;IAEF,MAAM,0BAA0B,GAAG,CACjC,aAEqC,EACrC,SAA4B,EAC5B,EAAE,CACF,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,IAAI,GAAG,CAAC;QACpD,MAAM,aAAa,GAAkB,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;QAClE,OAAO;YACL,UAAU;YACV,KAAK;YACL,IAAI;YACJ,UAAU,EAAE,aAAa,CAAC,UAAU;YACpC,aAAa,EAAE,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK;SAC7D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,MAAM,iBAAiB,GAAG;QACxB,GAAG,0BAA0B,CAAC,kBAAkB,EAAE,cAAc,CAAC;QACjE,GAAG,0BAA0B,CAC3B,0BAA0B,EAC1B,sBAAsB,CACvB;KACF,CAAC;IAEF,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AAhEW,QAAA,yBAAyB,6BAgEpC;AAEK,MAAM,oBAAoB,GAAG,CAClC,KAAa,EACb,SAA0B,EAC1B,EAAE;IACF,MAAM,aAAa,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;IAErC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QAChC,IAAI,IAAA,qBAAc,EAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACjC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,EAAmB,CAAC,CAAC;SACvD;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,IAAI,GAAG,EAAuB,CAAC,CAAC;AACrC,CAAC,CAAC;AAZW,QAAA,oBAAoB,wBAY/B"}
1
+ {"version":3,"file":"criteria.js","sourceRoot":"","sources":["../../src/utils/criteria.ts"],"names":[],"mappings":";;;AAAA,4CAAoC;AAEpC,iCAAwC;AAEjC,MAAM,yBAAyB,GAAG,CAAC,EACxC,MAAM,EACN,cAAc,GAAG,CAAC,EAAE,CAAC,EACrB,sBAAsB,GAAG,CAAC,EAAE,CAAC,GAK9B,EAAE,EAAE;IACH,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAC9D,KAAK,CAAC,UAAU,CAAC,KAAK;SACnB,GAAG,CACF,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,CAAC;QACC,UAAU;QACV,IAAI;QACJ,KAAK;QACL,IAAI,EAAE,gBAAI,CAAC,KAAK;KACjB,CAAU,CACd;SACA,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAA,qBAAc,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CACvD,CAAC;IAEF,MAAM,0BAA0B,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CACtE,KAAK,CAAC,UAAU,CAAC,aAAa;SAC3B,GAAG,CACF,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,CAAC;QACC,UAAU;QACV,IAAI;QACJ,KAAK;QACL,IAAI,EAAE,gBAAI,CAAC,aAAa;KACzB,CAAU,CACd;SACA,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAA,qBAAc,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CACvD,CAAC;IAEF,MAAM,0BAA0B,GAAG,CACjC,aAEqC,EACrC,SAA4B,EAC5B,EAAE,CACF,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,IAAI,GAAG,CAAC;QACpD,MAAM,aAAa,GAAkB,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;QAClE,OAAO;YACL,UAAU;YACV,KAAK;YACL,IAAI;YACJ,UAAU,EAAE,aAAa,CAAC,UAAU;YACpC,aAAa,EAAE,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK;SAC7D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,MAAM,iBAAiB,GAAG;QACxB,GAAG,0BAA0B,CAAC,kBAAkB,EAAE,cAAc,CAAC;QACjE,GAAG,0BAA0B,CAC3B,0BAA0B,EAC1B,sBAAsB,CACvB;KACF,CAAC;IAEF,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AAhEW,QAAA,yBAAyB,6BAgEpC;AAEK,MAAM,oBAAoB,GAAG,CAClC,KAAa,EACb,SAA0B,EAC1B,EAAE;IACF,MAAM,aAAa,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;IAErC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QAChC,IAAI,IAAA,qBAAc,EAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACjC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,EAAmB,CAAC,CAAC;SACvD;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,IAAI,GAAG,EAAuB,CAAC,CAAC;AACrC,CAAC,CAAC;AAZW,QAAA,oBAAoB,wBAY/B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensea/seaport-js",
3
- "version": "2.0.4",
3
+ "version": "2.0.6",
4
4
  "description": "[Seaport](https://github.com/ProjectOpenSea/seaport) is a new marketplace protocol for safely and efficiently buying and selling NFTs. This is a JavaScript library intended to make interfacing with the contract reasonable and easy.",
5
5
  "license": "MIT",
6
6
  "author": "OpenSea Developers",
@@ -51,9 +51,9 @@
51
51
  "@types/chai": "^4.3.5",
52
52
  "@types/chai-as-promised": "^7.1.5",
53
53
  "@types/mocha": "^10.0.1",
54
- "@types/node": "^16",
55
- "@typescript-eslint/eslint-plugin": "^5.59.7",
56
- "@typescript-eslint/parser": "^5.59.7",
54
+ "@types/node": "^18.0.0",
55
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
56
+ "@typescript-eslint/parser": "^6.0.0",
57
57
  "browserify": "^17.0.0",
58
58
  "c8": "^8.0.0",
59
59
  "chai": "^4.3.7",
@@ -64,13 +64,13 @@
64
64
  "eslint": "^8.41.0",
65
65
  "eslint-config-prettier": "^8.8.0",
66
66
  "eslint-plugin-import": "^2.27.5",
67
- "eslint-plugin-prettier": "^4.2.1",
67
+ "eslint-plugin-prettier": "^5.0.0-alpha.2",
68
68
  "eslint-plugin-promise": "^6.1.1",
69
69
  "ethereum-waffle": "^4.0.10",
70
70
  "hardhat": "^2.14.0",
71
71
  "husky": "^8.0.3",
72
72
  "lint-staged": "^13.2.2",
73
- "prettier": "^2.8.8",
73
+ "prettier": "^3.0.0",
74
74
  "prettier-package-json": "^2.8.0",
75
75
  "prettier-plugin-solidity": "^1.1.3",
76
76
  "seaport_v1_4": "ProjectOpenSea/seaport#1.4",
package/src/constants.ts CHANGED
@@ -106,7 +106,7 @@ export enum BasicOrderRouteType {
106
106
  }
107
107
 
108
108
  export const MAX_INT = BigNumber.from(
109
- "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
109
+ "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
110
110
  );
111
111
  export const ONE_HUNDRED_PERCENT_BP = 10000;
112
112
  export const NO_CONDUIT =
package/src/seaport.ts CHANGED
@@ -105,7 +105,7 @@ export class Seaport {
105
105
  balanceAndApprovalChecksOnOrderCreation = true,
106
106
  conduitKeyToConduit,
107
107
  seaportVersion = "1.5",
108
- }: SeaportConfig = {}
108
+ }: SeaportConfig = {},
109
109
  ) {
110
110
  const provider =
111
111
  providerOrSigner instanceof providers.Provider
@@ -117,14 +117,14 @@ export class Seaport {
117
117
 
118
118
  if (!provider) {
119
119
  throw new Error(
120
- "Either a provider or custom signer with provider must be provided"
120
+ "Either a provider or custom signer with provider must be provided",
121
121
  );
122
122
  }
123
123
 
124
124
  this.provider = provider;
125
125
 
126
126
  this.multicallProvider = new multicallProviders.MulticallProvider(
127
- this.provider
127
+ this.provider,
128
128
  );
129
129
 
130
130
  this.contract = new Contract(
@@ -133,13 +133,13 @@ export class Seaport {
133
133
  ? CROSS_CHAIN_SEAPORT_V1_5_ADDRESS
134
134
  : CROSS_CHAIN_SEAPORT_V1_4_ADDRESS),
135
135
  SeaportABIv14,
136
- this.multicallProvider
136
+ this.multicallProvider,
137
137
  ) as SeaportContract;
138
138
 
139
139
  this.domainRegistry = new Contract(
140
140
  overrides?.domainRegistryAddress ?? DOMAIN_REGISTRY_ADDRESS,
141
141
  DomainRegistryABI,
142
- this.multicallProvider
142
+ this.multicallProvider,
143
143
  ) as DomainRegistryContract;
144
144
 
145
145
  this.config = {
@@ -186,7 +186,7 @@ export class Seaport {
186
186
  public async createOrder(
187
187
  input: CreateOrderInput,
188
188
  accountAddress?: string,
189
- exactApproval?: boolean
189
+ exactApproval?: boolean,
190
190
  ): Promise<OrderUseCase<CreateOrderAction>> {
191
191
  const signer = this._getSigner(accountAddress);
192
192
  const offerer = accountAddress ?? (await signer.getAddress());
@@ -195,7 +195,7 @@ export class Seaport {
195
195
  signer,
196
196
  offerer,
197
197
  Boolean(exactApproval),
198
- input
198
+ input,
199
199
  );
200
200
 
201
201
  const createOrderAction = {
@@ -235,7 +235,7 @@ export class Seaport {
235
235
  public async createBulkOrders(
236
236
  createOrderInput: CreateOrderInput[],
237
237
  accountAddress?: string,
238
- exactApproval?: boolean
238
+ exactApproval?: boolean,
239
239
  ): Promise<OrderUseCase<CreateBulkOrdersAction>> {
240
240
  const signer = this._getSigner(accountAddress);
241
241
  const offerer = await signer.getAddress();
@@ -250,7 +250,7 @@ export class Seaport {
250
250
  signer,
251
251
  offerer,
252
252
  Boolean(exactApproval),
253
- input
253
+ input,
254
254
  );
255
255
 
256
256
  allOrderComponents.push(orderComponents);
@@ -296,6 +296,7 @@ export class Seaport {
296
296
  {
297
297
  conduitKey = this.defaultConduitKey,
298
298
  zone = ethers.constants.AddressZero,
299
+ zoneHash = ethers.constants.HashZero,
299
300
  startTime = Math.floor(Date.now() / 1000).toString(),
300
301
  endTime = MAX_INT.toString(),
301
302
  offer,
@@ -306,7 +307,7 @@ export class Seaport {
306
307
  fees,
307
308
  domain,
308
309
  salt,
309
- }: CreateOrderInput
310
+ }: CreateOrderInput,
310
311
  ) {
311
312
  const offerItems = offer.map(mapInputItemToOfferItem);
312
313
  const considerationItems = [
@@ -324,12 +325,12 @@ export class Seaport {
324
325
  })
325
326
  ) {
326
327
  throw new Error(
327
- "All currency tokens in the order must be the same token when applying fees"
328
+ "All currency tokens in the order must be the same token when applying fees",
328
329
  );
329
330
  }
330
331
 
331
332
  const currencies = [...offerItems, ...considerationItems].filter(
332
- isCurrencyItem
333
+ isCurrencyItem,
333
334
  );
334
335
 
335
336
  const totalCurrencyAmount = totalItemsAmount(currencies);
@@ -350,7 +351,7 @@ export class Seaport {
350
351
  token: currencies[0].token,
351
352
  baseAmount: totalCurrencyAmount.startAmount,
352
353
  baseEndAmount: totalCurrencyAmount.endAmount,
353
- })
354
+ }),
354
355
  ) ?? []
355
356
  : []),
356
357
  ];
@@ -363,7 +364,7 @@ export class Seaport {
363
364
  const orderComponents: OrderComponents = {
364
365
  offerer,
365
366
  zone,
366
- zoneHash: ethers.constants.HashZero,
367
+ zoneHash,
367
368
  startTime,
368
369
  endTime,
369
370
  orderType,
@@ -397,7 +398,7 @@ export class Seaport {
397
398
  const approvals = getApprovalActions(
398
399
  insufficientApprovals,
399
400
  exactApproval,
400
- signer
401
+ signer,
401
402
  );
402
403
  approvalActions.push(...approvals);
403
404
  }
@@ -468,8 +469,8 @@ export class Seaport {
468
469
  _TypedDataEncoder.getPayload(
469
470
  domainData,
470
471
  EIP_712_ORDER_TYPE,
471
- orderComponents
472
- )
472
+ orderComponents,
473
+ ),
473
474
  );
474
475
  }
475
476
 
@@ -487,7 +488,7 @@ export class Seaport {
487
488
  const chunks = tree.getDataToSign();
488
489
 
489
490
  return JSON.stringify(
490
- _TypedDataEncoder.getPayload(domainData, bulkOrderType, { tree: chunks })
491
+ _TypedDataEncoder.getPayload(domainData, bulkOrderType, { tree: chunks }),
491
492
  );
492
493
  }
493
494
 
@@ -499,20 +500,24 @@ export class Seaport {
499
500
  */
500
501
  public async signOrder(
501
502
  orderComponents: OrderComponents,
502
- accountAddress?: string
503
+ accountAddress?: string,
503
504
  ): Promise<string> {
504
505
  const signer = this._getSigner(accountAddress);
505
506
 
506
507
  const domainData = await this._getDomainData();
507
508
 
508
- const signature = await signer._signTypedData(
509
+ let signature = await signer._signTypedData(
509
510
  domainData,
510
511
  EIP_712_ORDER_TYPE,
511
- orderComponents
512
+ orderComponents,
512
513
  );
513
514
 
514
515
  // Use EIP-2098 compact signatures to save gas.
515
- return ethers.utils.splitSignature(signature).compact;
516
+ if (signature.length === 132) {
517
+ signature = ethers.utils.splitSignature(signature).compact;
518
+ }
519
+
520
+ return signature;
516
521
  }
517
522
 
518
523
  /**
@@ -523,7 +528,7 @@ export class Seaport {
523
528
  */
524
529
  public async signBulkOrder(
525
530
  orderComponents: OrderComponents[],
526
- accountAddress?: string
531
+ accountAddress?: string,
527
532
  ): Promise<OrderWithCounter[]> {
528
533
  const signer = this._getSigner(accountAddress);
529
534
 
@@ -536,11 +541,13 @@ export class Seaport {
536
541
  let signature = await signer._signTypedData(
537
542
  domainData,
538
543
  bulkOrderType,
539
- value
544
+ value,
540
545
  );
541
546
 
542
547
  // Use EIP-2098 compact signatures to save gas.
543
- signature = ethers.utils.splitSignature(signature).compact;
548
+ if (signature.length === 132) {
549
+ signature = ethers.utils.splitSignature(signature).compact;
550
+ }
544
551
 
545
552
  const orders: OrderWithCounter[] = orderComponents.map((parameters, i) => ({
546
553
  parameters,
@@ -561,7 +568,7 @@ export class Seaport {
561
568
  public cancelOrders(
562
569
  orders: OrderComponents[],
563
570
  accountAddress?: string,
564
- domain?: string
571
+ domain?: string,
565
572
  ): TransactionMethods<ContractMethodReturnType<SeaportContract, "cancel">> {
566
573
  const signer = this._getSigner(accountAddress);
567
574
 
@@ -569,7 +576,7 @@ export class Seaport {
569
576
  this.contract.connect(signer),
570
577
  "cancel",
571
578
  [orders],
572
- domain
579
+ domain,
573
580
  );
574
581
  }
575
582
 
@@ -581,7 +588,7 @@ export class Seaport {
581
588
  */
582
589
  public bulkCancelOrders(
583
590
  offerer?: string,
584
- domain?: string
591
+ domain?: string,
585
592
  ): TransactionMethods<
586
593
  ContractMethodReturnType<SeaportContract, "incrementCounter">
587
594
  > {
@@ -591,7 +598,7 @@ export class Seaport {
591
598
  this.contract.connect(signer),
592
599
  "incrementCounter",
593
600
  [],
594
- domain
601
+ domain,
595
602
  );
596
603
  }
597
604
 
@@ -606,7 +613,7 @@ export class Seaport {
606
613
  public validate(
607
614
  orders: Order[],
608
615
  accountAddress?: string,
609
- domain?: string
616
+ domain?: string,
610
617
  ): TransactionMethods<ContractMethodReturnType<SeaportContract, "validate">> {
611
618
  const signer = this._getSigner(accountAddress);
612
619
 
@@ -614,7 +621,7 @@ export class Seaport {
614
621
  this.contract.connect(signer),
615
622
  "validate",
616
623
  [orders],
617
- domain
624
+ domain,
618
625
  );
619
626
  }
620
627
 
@@ -650,13 +657,13 @@ export class Seaport {
650
657
  const orderTypeString = `${orderComponentsPartialTypeString}${considerationItemTypeString}${offerItemTypeString}`;
651
658
 
652
659
  const offerItemTypeHash = ethers.utils.keccak256(
653
- ethers.utils.toUtf8Bytes(offerItemTypeString)
660
+ ethers.utils.toUtf8Bytes(offerItemTypeString),
654
661
  );
655
662
  const considerationItemTypeHash = ethers.utils.keccak256(
656
- ethers.utils.toUtf8Bytes(considerationItemTypeString)
663
+ ethers.utils.toUtf8Bytes(considerationItemTypeString),
657
664
  );
658
665
  const orderTypeHash = ethers.utils.keccak256(
659
- ethers.utils.toUtf8Bytes(orderTypeString)
666
+ ethers.utils.toUtf8Bytes(orderTypeString),
660
667
  );
661
668
 
662
669
  const offerHash = ethers.utils.keccak256(
@@ -682,11 +689,11 @@ export class Seaport {
682
689
  .toHexString()
683
690
  .slice(2)
684
691
  .padStart(64, "0"),
685
- ].join("")
692
+ ].join(""),
686
693
  )
687
694
  .slice(2);
688
695
  })
689
- .join("")
696
+ .join(""),
690
697
  );
691
698
 
692
699
  const considerationHash = ethers.utils.keccak256(
@@ -701,7 +708,7 @@ export class Seaport {
701
708
  considerationItem.itemType.toString().padStart(64, "0"),
702
709
  considerationItem.token.slice(2).padStart(64, "0"),
703
710
  ethers.BigNumber.from(
704
- considerationItem.identifierOrCriteria
711
+ considerationItem.identifierOrCriteria,
705
712
  )
706
713
  .toHexString()
707
714
  .slice(2)
@@ -715,11 +722,11 @@ export class Seaport {
715
722
  .slice(2)
716
723
  .padStart(64, "0"),
717
724
  considerationItem.recipient.slice(2).padStart(64, "0"),
718
- ].join("")
725
+ ].join(""),
719
726
  )
720
727
  .slice(2);
721
728
  })
722
- .join("")
729
+ .join(""),
723
730
  );
724
731
 
725
732
  const derivedOrderHash = ethers.utils.keccak256(
@@ -749,7 +756,7 @@ export class Seaport {
749
756
  .toHexString()
750
757
  .slice(2)
751
758
  .padStart(64, "0"),
752
- ].join("")
759
+ ].join(""),
753
760
  );
754
761
 
755
762
  return derivedOrderHash;
@@ -857,7 +864,7 @@ export class Seaport {
857
864
 
858
865
  const sanitizedOrder = validateAndSanitizeFromOrderStatus(
859
866
  order,
860
- orderStatus
867
+ orderStatus,
861
868
  );
862
869
 
863
870
  const timeBasedItemParams = {
@@ -897,7 +904,7 @@ export class Seaport {
897
904
  tips: tipConsiderationItems,
898
905
  domain,
899
906
  },
900
- exactApproval
907
+ exactApproval,
901
908
  );
902
909
  }
903
910
 
@@ -925,7 +932,7 @@ export class Seaport {
925
932
  recipientAddress,
926
933
  domain,
927
934
  },
928
- exactApproval
935
+ exactApproval,
929
936
  );
930
937
  }
931
938
 
@@ -976,23 +983,23 @@ export class Seaport {
976
983
 
977
984
  const allOffererOperators = fulfillOrderDetails.map(
978
985
  ({ order }) =>
979
- this.config.conduitKeyToConduit[order.parameters.conduitKey]
986
+ this.config.conduitKeyToConduit[order.parameters.conduitKey],
980
987
  );
981
988
 
982
989
  const fulfillerOperator = this.config.conduitKeyToConduit[conduitKey];
983
990
 
984
991
  const allOfferItems = fulfillOrderDetails.flatMap(
985
- ({ order }) => order.parameters.offer
992
+ ({ order }) => order.parameters.offer,
986
993
  );
987
994
 
988
995
  const allConsiderationItems = fulfillOrderDetails.flatMap(
989
- ({ order }) => order.parameters.consideration
996
+ ({ order }) => order.parameters.consideration,
990
997
  );
991
998
  const allOfferCriteria = fulfillOrderDetails.flatMap(
992
- ({ offerCriteria = [] }) => offerCriteria
999
+ ({ offerCriteria = [] }) => offerCriteria,
993
1000
  );
994
1001
  const allConsiderationCriteria = fulfillOrderDetails.flatMap(
995
- ({ considerationCriteria = [] }) => considerationCriteria
1002
+ ({ considerationCriteria = [] }) => considerationCriteria,
996
1003
  );
997
1004
 
998
1005
  const [
@@ -1009,8 +1016,8 @@ export class Seaport {
1009
1016
  criterias: offerCriteria,
1010
1017
  operator: allOffererOperators[i],
1011
1018
  multicallProvider: this.multicallProvider,
1012
- })
1013
- )
1019
+ }),
1020
+ ),
1014
1021
  ),
1015
1022
  // Get fulfiller balances and approvals of all items in the set, as offer items
1016
1023
  // may be received by the fulfiller for standard fulfills
@@ -1024,8 +1031,8 @@ export class Seaport {
1024
1031
  this.multicallProvider.getBlock("latest"),
1025
1032
  Promise.all(
1026
1033
  fulfillOrderDetails.map(({ order }) =>
1027
- this.getOrderStatus(this.getOrderHash(order.parameters))
1028
- )
1034
+ this.getOrderStatus(this.getOrderHash(order.parameters)),
1035
+ ),
1029
1036
  ),
1030
1037
  ]);
1031
1038
 
@@ -1044,7 +1051,7 @@ export class Seaport {
1044
1051
  extraData: orderDetails.extraData ?? "0x",
1045
1052
  offererBalancesAndApprovals: offerersBalancesAndApprovals[index],
1046
1053
  offererOperator: allOffererOperators[index],
1047
- })
1054
+ }),
1048
1055
  );
1049
1056
 
1050
1057
  return fulfillAvailableOrders({
@@ -1096,13 +1103,13 @@ export class Seaport {
1096
1103
  this.contract.connect(signer),
1097
1104
  "matchOrders",
1098
1105
  [orders, fulfillments, overrides],
1099
- domain
1106
+ domain,
1100
1107
  );
1101
1108
  }
1102
1109
 
1103
1110
  public setDomain(
1104
1111
  domain: string,
1105
- accountAddress?: string
1112
+ accountAddress?: string,
1106
1113
  ): TransactionMethods<
1107
1114
  ContractMethodReturnType<DomainRegistryContract, "setDomain">
1108
1115
  > {
@@ -1111,7 +1118,7 @@ export class Seaport {
1111
1118
  return getTransactionMethods(
1112
1119
  this.domainRegistry.connect(signer),
1113
1120
  "setDomain",
1114
- [domain]
1121
+ [domain],
1115
1122
  );
1116
1123
  }
1117
1124
 
@@ -1125,7 +1132,7 @@ export class Seaport {
1125
1132
 
1126
1133
  public async getDomains(
1127
1134
  tag: string,
1128
- shouldThrow?: boolean
1135
+ shouldThrow?: boolean,
1129
1136
  ): Promise<string[]> {
1130
1137
  try {
1131
1138
  if (shouldThrow) {
@@ -1140,8 +1147,8 @@ export class Seaport {
1140
1147
 
1141
1148
  const domainArray = Promise.all(
1142
1149
  [...Array(totalDomains).keys()].map((i) =>
1143
- this.domainRegistry.getDomain(tag, i)
1144
- )
1150
+ this.domainRegistry.getDomain(tag, i),
1151
+ ),
1145
1152
  );
1146
1153
 
1147
1154
  return domainArray;
@@ -147,8 +147,8 @@ export interface AssertionsInterface extends utils.Interface {
147
147
  events: {
148
148
  "CounterIncremented(uint256,address)": EventFragment;
149
149
  "OrderCancelled(bytes32,address,address)": EventFragment;
150
- "OrderFulfilled(bytes32,address,address,address,tuple[],tuple[])": EventFragment;
151
- "OrderValidated(bytes32,tuple)": EventFragment;
150
+ "OrderFulfilled(bytes32,address,address,address,(uint8,address,uint256,uint256)[],(uint8,address,uint256,uint256,address)[])": EventFragment;
151
+ "OrderValidated(bytes32,(address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256))": EventFragment;
152
152
  "OrdersMatched(bytes32[])": EventFragment;
153
153
  };
154
154
 
@@ -277,7 +277,7 @@ export interface Assertions extends BaseContract {
277
277
  zone?: string | null
278
278
  ): OrderCancelledEventFilter;
279
279
 
280
- "OrderFulfilled(bytes32,address,address,address,tuple[],tuple[])"(
280
+ "OrderFulfilled(bytes32,address,address,address,(uint8,address,uint256,uint256)[],(uint8,address,uint256,uint256,address)[])"(
281
281
  orderHash?: null,
282
282
  offerer?: string | null,
283
283
  zone?: string | null,
@@ -294,7 +294,7 @@ export interface Assertions extends BaseContract {
294
294
  consideration?: null
295
295
  ): OrderFulfilledEventFilter;
296
296
 
297
- "OrderValidated(bytes32,tuple)"(
297
+ "OrderValidated(bytes32,(address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256))"(
298
298
  orderHash?: null,
299
299
  orderParameters?: null
300
300
  ): OrderValidatedEventFilter;
@@ -147,8 +147,8 @@ export interface BasicOrderFulfillerInterface extends utils.Interface {
147
147
  events: {
148
148
  "CounterIncremented(uint256,address)": EventFragment;
149
149
  "OrderCancelled(bytes32,address,address)": EventFragment;
150
- "OrderFulfilled(bytes32,address,address,address,tuple[],tuple[])": EventFragment;
151
- "OrderValidated(bytes32,tuple)": EventFragment;
150
+ "OrderFulfilled(bytes32,address,address,address,(uint8,address,uint256,uint256)[],(uint8,address,uint256,uint256,address)[])": EventFragment;
151
+ "OrderValidated(bytes32,(address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256))": EventFragment;
152
152
  "OrdersMatched(bytes32[])": EventFragment;
153
153
  };
154
154
 
@@ -277,7 +277,7 @@ export interface BasicOrderFulfiller extends BaseContract {
277
277
  zone?: string | null
278
278
  ): OrderCancelledEventFilter;
279
279
 
280
- "OrderFulfilled(bytes32,address,address,address,tuple[],tuple[])"(
280
+ "OrderFulfilled(bytes32,address,address,address,(uint8,address,uint256,uint256)[],(uint8,address,uint256,uint256,address)[])"(
281
281
  orderHash?: null,
282
282
  offerer?: string | null,
283
283
  zone?: string | null,
@@ -294,7 +294,7 @@ export interface BasicOrderFulfiller extends BaseContract {
294
294
  consideration?: null
295
295
  ): OrderFulfilledEventFilter;
296
296
 
297
- "OrderValidated(bytes32,tuple)"(
297
+ "OrderValidated(bytes32,(address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256))"(
298
298
  orderHash?: null,
299
299
  orderParameters?: null
300
300
  ): OrderValidatedEventFilter;
@@ -354,8 +354,8 @@ export interface ConsiderationInterface extends utils.Interface {
354
354
  functions: {
355
355
  "cancel((address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256)[])": FunctionFragment;
356
356
  "fulfillAdvancedOrder(((address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256),uint120,uint120,bytes,bytes),(uint256,uint8,uint256,uint256,bytes32[])[],bytes32,address)": FunctionFragment;
357
- "fulfillAvailableAdvancedOrders(((address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256),uint120,uint120,bytes,bytes)[],(uint256,uint8,uint256,uint256,bytes32[])[],tuple[][],tuple[][],bytes32,address,uint256)": FunctionFragment;
358
- "fulfillAvailableOrders(((address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256),bytes)[],tuple[][],tuple[][],bytes32,uint256)": FunctionFragment;
357
+ "fulfillAvailableAdvancedOrders(((address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256),uint120,uint120,bytes,bytes)[],(uint256,uint8,uint256,uint256,bytes32[])[],(uint256,uint256)[][],(uint256,uint256)[][],bytes32,address,uint256)": FunctionFragment;
358
+ "fulfillAvailableOrders(((address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256),bytes)[],(uint256,uint256)[][],(uint256,uint256)[][],bytes32,uint256)": FunctionFragment;
359
359
  "fulfillBasicOrder((address,uint256,uint256,address,address,address,uint256,uint256,uint8,uint256,uint256,bytes32,uint256,bytes32,bytes32,uint256,(uint256,address)[],bytes))": FunctionFragment;
360
360
  "fulfillBasicOrder_efficient_6GL6yc((address,uint256,uint256,address,address,address,uint256,uint256,uint8,uint256,uint256,bytes32,uint256,bytes32,bytes32,uint256,(uint256,address)[],bytes))": FunctionFragment;
361
361
  "fulfillOrder(((address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256),bytes),bytes32)": FunctionFragment;
@@ -534,8 +534,8 @@ export interface ConsiderationInterface extends utils.Interface {
534
534
  events: {
535
535
  "CounterIncremented(uint256,address)": EventFragment;
536
536
  "OrderCancelled(bytes32,address,address)": EventFragment;
537
- "OrderFulfilled(bytes32,address,address,address,tuple[],tuple[])": EventFragment;
538
- "OrderValidated(bytes32,tuple)": EventFragment;
537
+ "OrderFulfilled(bytes32,address,address,address,(uint8,address,uint256,uint256)[],(uint8,address,uint256,uint256,address)[])": EventFragment;
538
+ "OrderValidated(bytes32,(address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256))": EventFragment;
539
539
  "OrdersMatched(bytes32[])": EventFragment;
540
540
  };
541
541
 
@@ -986,7 +986,7 @@ export interface Consideration extends BaseContract {
986
986
  zone?: string | null
987
987
  ): OrderCancelledEventFilter;
988
988
 
989
- "OrderFulfilled(bytes32,address,address,address,tuple[],tuple[])"(
989
+ "OrderFulfilled(bytes32,address,address,address,(uint8,address,uint256,uint256)[],(uint8,address,uint256,uint256,address)[])"(
990
990
  orderHash?: null,
991
991
  offerer?: string | null,
992
992
  zone?: string | null,
@@ -1003,7 +1003,7 @@ export interface Consideration extends BaseContract {
1003
1003
  consideration?: null
1004
1004
  ): OrderFulfilledEventFilter;
1005
1005
 
1006
- "OrderValidated(bytes32,tuple)"(
1006
+ "OrderValidated(bytes32,(address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256))"(
1007
1007
  orderHash?: null,
1008
1008
  orderParameters?: null
1009
1009
  ): OrderValidatedEventFilter;