@bosonprotocol/core-sdk 1.25.0-alpha.2 → 1.25.0-alpha.21

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 (217) hide show
  1. package/dist/cjs/accounts/mixin.d.ts +4 -4
  2. package/dist/cjs/accounts/mixin.d.ts.map +1 -1
  3. package/dist/cjs/accounts/mixin.js +8 -8
  4. package/dist/cjs/accounts/mixin.js.map +1 -1
  5. package/dist/cjs/accounts/subgraph.d.ts +1 -1
  6. package/dist/cjs/accounts/subgraph.d.ts.map +1 -1
  7. package/dist/cjs/accounts/subgraph.js +7 -7
  8. package/dist/cjs/accounts/subgraph.js.map +1 -1
  9. package/dist/cjs/accounts/types.d.ts +1 -1
  10. package/dist/cjs/accounts/types.d.ts.map +1 -1
  11. package/dist/cjs/core-sdk.d.ts +1 -0
  12. package/dist/cjs/core-sdk.d.ts.map +1 -1
  13. package/dist/cjs/core-sdk.js +3 -0
  14. package/dist/cjs/core-sdk.js.map +1 -1
  15. package/dist/cjs/erc1155/mixin.d.ts +1 -1
  16. package/dist/cjs/erc1155/mixin.d.ts.map +1 -1
  17. package/dist/cjs/erc1155/mixin.js +2 -2
  18. package/dist/cjs/erc1155/mixin.js.map +1 -1
  19. package/dist/cjs/erc20/mixin.d.ts +7 -7
  20. package/dist/cjs/erc20/mixin.d.ts.map +1 -1
  21. package/dist/cjs/erc20/mixin.js +14 -14
  22. package/dist/cjs/erc20/mixin.js.map +1 -1
  23. package/dist/cjs/erc721/mixin.d.ts +3 -3
  24. package/dist/cjs/erc721/mixin.d.ts.map +1 -1
  25. package/dist/cjs/erc721/mixin.js +6 -6
  26. package/dist/cjs/erc721/mixin.js.map +1 -1
  27. package/dist/cjs/exchanges/handler.js +12 -12
  28. package/dist/cjs/exchanges/handler.js.map +1 -1
  29. package/dist/cjs/exchanges/mixin.d.ts +3 -3
  30. package/dist/cjs/exchanges/mixin.js +3 -3
  31. package/dist/cjs/forwarder/handler.d.ts +1 -1
  32. package/dist/cjs/forwarder/handler.d.ts.map +1 -1
  33. package/dist/cjs/forwarder/handler.js +2 -4
  34. package/dist/cjs/forwarder/handler.js.map +1 -1
  35. package/dist/cjs/index.d.ts +1 -0
  36. package/dist/cjs/index.d.ts.map +1 -1
  37. package/dist/cjs/index.js +2 -1
  38. package/dist/cjs/index.js.map +1 -1
  39. package/dist/cjs/meta-tx/biconomy.d.ts +17 -3
  40. package/dist/cjs/meta-tx/biconomy.d.ts.map +1 -1
  41. package/dist/cjs/meta-tx/biconomy.js +19 -0
  42. package/dist/cjs/meta-tx/biconomy.js.map +1 -1
  43. package/dist/cjs/meta-tx/handler.d.ts +38 -4
  44. package/dist/cjs/meta-tx/handler.d.ts.map +1 -1
  45. package/dist/cjs/meta-tx/handler.js +92 -23
  46. package/dist/cjs/meta-tx/handler.js.map +1 -1
  47. package/dist/cjs/meta-tx/mixin.d.ts +25 -3
  48. package/dist/cjs/meta-tx/mixin.d.ts.map +1 -1
  49. package/dist/cjs/meta-tx/mixin.js +51 -22
  50. package/dist/cjs/meta-tx/mixin.js.map +1 -1
  51. package/dist/cjs/offers/handler.d.ts +15 -0
  52. package/dist/cjs/offers/handler.d.ts.map +1 -1
  53. package/dist/cjs/offers/handler.js +28 -4
  54. package/dist/cjs/offers/handler.js.map +1 -1
  55. package/dist/cjs/offers/interface.d.ts +1 -1
  56. package/dist/cjs/offers/interface.d.ts.map +1 -1
  57. package/dist/cjs/offers/interface.js +3 -2
  58. package/dist/cjs/offers/interface.js.map +1 -1
  59. package/dist/cjs/offers/mixin.d.ts +26 -3
  60. package/dist/cjs/offers/mixin.d.ts.map +1 -1
  61. package/dist/cjs/offers/mixin.js +46 -3
  62. package/dist/cjs/offers/mixin.js.map +1 -1
  63. package/dist/cjs/offers/renderContractualAgreement.d.ts.map +1 -1
  64. package/dist/cjs/offers/renderContractualAgreement.js +5 -4
  65. package/dist/cjs/offers/renderContractualAgreement.js.map +1 -1
  66. package/dist/cjs/seaport/abi.d.ts +41 -0
  67. package/dist/cjs/seaport/abi.d.ts.map +1 -0
  68. package/dist/cjs/seaport/abi.js +153 -0
  69. package/dist/cjs/seaport/abi.js.map +1 -0
  70. package/dist/cjs/seaport/handler.d.ts +46 -0
  71. package/dist/cjs/seaport/handler.d.ts.map +1 -0
  72. package/dist/cjs/seaport/handler.js +28 -0
  73. package/dist/cjs/seaport/handler.js.map +1 -0
  74. package/dist/cjs/seaport/index.d.ts +2 -0
  75. package/dist/cjs/seaport/index.d.ts.map +1 -0
  76. package/dist/cjs/seaport/index.js +28 -0
  77. package/dist/cjs/seaport/index.js.map +1 -0
  78. package/dist/cjs/subgraph.d.ts +1451 -212
  79. package/dist/cjs/subgraph.d.ts.map +1 -1
  80. package/dist/cjs/subgraph.js +67 -11
  81. package/dist/cjs/subgraph.js.map +1 -1
  82. package/dist/cjs/voucher/handler.d.ts +31 -0
  83. package/dist/cjs/voucher/handler.d.ts.map +1 -1
  84. package/dist/cjs/voucher/handler.js +57 -1
  85. package/dist/cjs/voucher/handler.js.map +1 -1
  86. package/dist/cjs/voucher/interface.d.ts +8 -0
  87. package/dist/cjs/voucher/interface.d.ts.map +1 -1
  88. package/dist/cjs/voucher/interface.js +81 -1
  89. package/dist/cjs/voucher/interface.js.map +1 -1
  90. package/dist/cjs/voucher/mixin.d.ts +11 -0
  91. package/dist/cjs/voucher/mixin.d.ts.map +1 -1
  92. package/dist/cjs/voucher/mixin.js +47 -0
  93. package/dist/cjs/voucher/mixin.js.map +1 -1
  94. package/dist/esm/accounts/mixin.d.ts +4 -4
  95. package/dist/esm/accounts/mixin.d.ts.map +1 -1
  96. package/dist/esm/accounts/mixin.js +8 -8
  97. package/dist/esm/accounts/mixin.js.map +1 -1
  98. package/dist/esm/accounts/subgraph.d.ts +1 -1
  99. package/dist/esm/accounts/subgraph.d.ts.map +1 -1
  100. package/dist/esm/accounts/subgraph.js +5 -5
  101. package/dist/esm/accounts/subgraph.js.map +1 -1
  102. package/dist/esm/accounts/types.d.ts +1 -1
  103. package/dist/esm/accounts/types.d.ts.map +1 -1
  104. package/dist/esm/core-sdk.d.ts +1 -0
  105. package/dist/esm/core-sdk.d.ts.map +1 -1
  106. package/dist/esm/core-sdk.js +3 -0
  107. package/dist/esm/core-sdk.js.map +1 -1
  108. package/dist/esm/erc1155/mixin.d.ts +1 -1
  109. package/dist/esm/erc1155/mixin.d.ts.map +1 -1
  110. package/dist/esm/erc1155/mixin.js +2 -2
  111. package/dist/esm/erc1155/mixin.js.map +1 -1
  112. package/dist/esm/erc20/mixin.d.ts +7 -7
  113. package/dist/esm/erc20/mixin.d.ts.map +1 -1
  114. package/dist/esm/erc20/mixin.js +14 -14
  115. package/dist/esm/erc20/mixin.js.map +1 -1
  116. package/dist/esm/erc721/mixin.d.ts +3 -3
  117. package/dist/esm/erc721/mixin.d.ts.map +1 -1
  118. package/dist/esm/erc721/mixin.js +6 -6
  119. package/dist/esm/erc721/mixin.js.map +1 -1
  120. package/dist/esm/exchanges/handler.js +12 -12
  121. package/dist/esm/exchanges/handler.js.map +1 -1
  122. package/dist/esm/exchanges/mixin.d.ts +3 -3
  123. package/dist/esm/exchanges/mixin.js +3 -3
  124. package/dist/esm/forwarder/handler.d.ts +1 -1
  125. package/dist/esm/forwarder/handler.d.ts.map +1 -1
  126. package/dist/esm/forwarder/handler.js +2 -4
  127. package/dist/esm/forwarder/handler.js.map +1 -1
  128. package/dist/esm/index.d.ts +1 -0
  129. package/dist/esm/index.d.ts.map +1 -1
  130. package/dist/esm/index.js +1 -0
  131. package/dist/esm/index.js.map +1 -1
  132. package/dist/esm/meta-tx/biconomy.d.ts +17 -3
  133. package/dist/esm/meta-tx/biconomy.d.ts.map +1 -1
  134. package/dist/esm/meta-tx/biconomy.js +17 -0
  135. package/dist/esm/meta-tx/biconomy.js.map +1 -1
  136. package/dist/esm/meta-tx/handler.d.ts +38 -4
  137. package/dist/esm/meta-tx/handler.d.ts.map +1 -1
  138. package/dist/esm/meta-tx/handler.js +118 -21
  139. package/dist/esm/meta-tx/handler.js.map +1 -1
  140. package/dist/esm/meta-tx/mixin.d.ts +25 -3
  141. package/dist/esm/meta-tx/mixin.d.ts.map +1 -1
  142. package/dist/esm/meta-tx/mixin.js +67 -17
  143. package/dist/esm/meta-tx/mixin.js.map +1 -1
  144. package/dist/esm/offers/handler.d.ts +15 -0
  145. package/dist/esm/offers/handler.d.ts.map +1 -1
  146. package/dist/esm/offers/handler.js +21 -3
  147. package/dist/esm/offers/handler.js.map +1 -1
  148. package/dist/esm/offers/interface.d.ts +1 -1
  149. package/dist/esm/offers/interface.d.ts.map +1 -1
  150. package/dist/esm/offers/interface.js +3 -2
  151. package/dist/esm/offers/interface.js.map +1 -1
  152. package/dist/esm/offers/mixin.d.ts +26 -3
  153. package/dist/esm/offers/mixin.d.ts.map +1 -1
  154. package/dist/esm/offers/mixin.js +42 -3
  155. package/dist/esm/offers/mixin.js.map +1 -1
  156. package/dist/esm/offers/renderContractualAgreement.d.ts.map +1 -1
  157. package/dist/esm/offers/renderContractualAgreement.js +5 -4
  158. package/dist/esm/offers/renderContractualAgreement.js.map +1 -1
  159. package/dist/esm/seaport/abi.d.ts +41 -0
  160. package/dist/esm/seaport/abi.d.ts.map +1 -0
  161. package/dist/esm/seaport/abi.js +150 -0
  162. package/dist/esm/seaport/abi.js.map +1 -0
  163. package/dist/esm/seaport/handler.d.ts +46 -0
  164. package/dist/esm/seaport/handler.d.ts.map +1 -0
  165. package/dist/esm/seaport/handler.js +24 -0
  166. package/dist/esm/seaport/handler.js.map +1 -0
  167. package/dist/esm/seaport/index.d.ts +2 -0
  168. package/dist/esm/seaport/index.d.ts.map +1 -0
  169. package/dist/esm/seaport/index.js +2 -0
  170. package/dist/esm/seaport/index.js.map +1 -0
  171. package/dist/esm/subgraph.d.ts +1451 -212
  172. package/dist/esm/subgraph.d.ts.map +1 -1
  173. package/dist/esm/subgraph.js +64 -8
  174. package/dist/esm/subgraph.js.map +1 -1
  175. package/dist/esm/voucher/handler.d.ts +31 -0
  176. package/dist/esm/voucher/handler.d.ts.map +1 -1
  177. package/dist/esm/voucher/handler.js +39 -1
  178. package/dist/esm/voucher/handler.js.map +1 -1
  179. package/dist/esm/voucher/interface.d.ts +8 -0
  180. package/dist/esm/voucher/interface.d.ts.map +1 -1
  181. package/dist/esm/voucher/interface.js +72 -0
  182. package/dist/esm/voucher/interface.js.map +1 -1
  183. package/dist/esm/voucher/mixin.d.ts +11 -0
  184. package/dist/esm/voucher/mixin.d.ts.map +1 -1
  185. package/dist/esm/voucher/mixin.js +41 -0
  186. package/dist/esm/voucher/mixin.js.map +1 -1
  187. package/package.json +3 -3
  188. package/src/accounts/interface.ts +1 -1
  189. package/src/accounts/mixin.ts +15 -14
  190. package/src/accounts/queries.graphql +4 -4
  191. package/src/accounts/subgraph.ts +6 -6
  192. package/src/accounts/types.ts +1 -1
  193. package/src/core-sdk.ts +4 -0
  194. package/src/erc1155/mixin.ts +2 -2
  195. package/src/erc20/mixin.ts +14 -14
  196. package/src/erc721/mixin.ts +6 -6
  197. package/src/exchanges/handler.ts +13 -13
  198. package/src/exchanges/mixin.ts +3 -3
  199. package/src/forwarder/handler.ts +3 -5
  200. package/src/index.ts +1 -0
  201. package/src/meta-tx/biconomy.ts +35 -2
  202. package/src/meta-tx/handler.ts +202 -31
  203. package/src/meta-tx/mixin.ts +135 -21
  204. package/src/metadata/base.graphql +3 -0
  205. package/src/metadata/product-v1.graphql +12 -0
  206. package/src/offers/handler.ts +36 -3
  207. package/src/offers/interface.ts +4 -2
  208. package/src/offers/mixin.ts +57 -2
  209. package/src/offers/queries.graphql +13 -0
  210. package/src/offers/renderContractualAgreement.ts +6 -9
  211. package/src/seaport/abi.ts +149 -0
  212. package/src/seaport/handler.ts +57 -0
  213. package/src/seaport/index.ts +1 -0
  214. package/src/subgraph.ts +1501 -216
  215. package/src/voucher/handler.ts +78 -1
  216. package/src/voucher/interface.ts +88 -0
  217. package/src/voucher/mixin.ts +76 -0
@@ -73,6 +73,7 @@ export async function reserveRange(args: {
73
73
  subgraphUrl: string;
74
74
  offerId: BigNumberish;
75
75
  length: BigNumberish;
76
+ to: string;
76
77
  web3Lib: Web3LibAdapter;
77
78
  }): Promise<TransactionResponse> {
78
79
  const offerFromSubgraph = await getOfferById(args.subgraphUrl, args.offerId);
@@ -87,7 +88,7 @@ export async function reserveRange(args: {
87
88
 
88
89
  return args.web3Lib.sendTransaction({
89
90
  to: args.contractAddress,
90
- data: encodeReserveRange(args.offerId, args.length)
91
+ data: encodeReserveRange(args.offerId, args.length, args.to)
91
92
  });
92
93
  }
93
94
 
@@ -145,6 +146,38 @@ export async function voidOfferBatch(args: {
145
146
  });
146
147
  }
147
148
 
149
+ export async function extendOffer(args: {
150
+ contractAddress: string;
151
+ subgraphUrl: string;
152
+ offerId: BigNumberish;
153
+ validUntil: BigNumberish;
154
+ web3Lib: Web3LibAdapter;
155
+ }): Promise<TransactionResponse> {
156
+ return args.web3Lib.sendTransaction({
157
+ to: args.contractAddress,
158
+ data: bosonOfferHandlerIface.encodeFunctionData("extendOffer", [
159
+ args.offerId,
160
+ args.validUntil
161
+ ])
162
+ });
163
+ }
164
+
165
+ export async function extendOfferBatch(args: {
166
+ contractAddress: string;
167
+ subgraphUrl: string;
168
+ offerIds: BigNumberish[];
169
+ validUntil: BigNumberish;
170
+ web3Lib: Web3LibAdapter;
171
+ }): Promise<TransactionResponse> {
172
+ return args.web3Lib.sendTransaction({
173
+ to: args.contractAddress,
174
+ data: bosonOfferHandlerIface.encodeFunctionData("extendOfferBatch", [
175
+ args.offerIds,
176
+ args.validUntil
177
+ ])
178
+ });
179
+ }
180
+
148
181
  function checkIfOfferVoidable(
149
182
  offerId: BigNumberish,
150
183
  signerAddress: string,
@@ -159,11 +192,11 @@ function checkIfOfferVoidable(
159
192
  }
160
193
 
161
194
  if (
162
- offerFromSubgraph.seller.operator.toLowerCase() !==
195
+ offerFromSubgraph.seller.assistant.toLowerCase() !==
163
196
  signerAddress.toLowerCase()
164
197
  ) {
165
198
  throw new Error(
166
- `Signer with address "${signerAddress}" is not the operator "${offerFromSubgraph.seller.operator}" of offer with id "${offerId}"`
199
+ `Signer with address "${signerAddress}" is not the assistant "${offerFromSubgraph.seller.assistant}" of offer with id "${offerId}"`
167
200
  );
168
201
  }
169
202
  }
@@ -132,10 +132,12 @@ export function argsToOfferDurationsStruct(
132
132
 
133
133
  export function encodeReserveRange(
134
134
  offerId: BigNumberish,
135
- length: BigNumberish
135
+ length: BigNumberish,
136
+ to: string
136
137
  ) {
137
138
  return bosonOfferHandlerIface.encodeFunctionData("reserveRange", [
138
139
  offerId,
139
- length
140
+ length,
141
+ to
140
142
  ]);
141
143
  }
@@ -146,7 +146,7 @@ export class OfferMixin extends BaseCoreSDK {
146
146
 
147
147
  /**
148
148
  * Voids an existing offer by calling the `OfferHandlerFacet` contract.
149
- * This transaction only succeeds if the connected signer is the `operator`.
149
+ * This transaction only succeeds if the connected signer is the `assistant`.
150
150
  * @param offerId - ID of offer to void.
151
151
  * @param overrides - Optional overrides.
152
152
  * @returns Transaction response.
@@ -167,7 +167,7 @@ export class OfferMixin extends BaseCoreSDK {
167
167
 
168
168
  /**
169
169
  * Voids a batch of existing offers by calling the `OfferHandlerFacet` contract.
170
- * This transaction only succeeds if the connected signer is the `operator` of all
170
+ * This transaction only succeeds if the connected signer is the `assistant` of all
171
171
  * provided offers.
172
172
  * @param offerIds - IDs of offers to void.
173
173
  * @param overrides - Optional overrides.
@@ -187,6 +187,55 @@ export class OfferMixin extends BaseCoreSDK {
187
187
  });
188
188
  }
189
189
 
190
+ /**
191
+ * Extends an existing offer by calling the `OfferHandlerFacet` contract.
192
+ * This transaction only succeeds if the connected signer is the `assistant`.
193
+ * @param offerId - ID of offer to void.
194
+ * @param validUntil - new validity date.
195
+ * @param overrides - Optional overrides.
196
+ * @returns Transaction response.
197
+ */
198
+ public async extendOffer(
199
+ offerId: BigNumberish,
200
+ validUntil: BigNumberish,
201
+ overrides: Partial<{
202
+ contractAddress: string;
203
+ }> = {}
204
+ ): Promise<TransactionResponse> {
205
+ return offers.handler.extendOffer({
206
+ offerId,
207
+ validUntil,
208
+ web3Lib: this._web3Lib,
209
+ subgraphUrl: this._subgraphUrl,
210
+ contractAddress: overrides.contractAddress || this._protocolDiamond
211
+ });
212
+ }
213
+
214
+ /**
215
+ * Extends a batch of existing offers by calling the `OfferHandlerFacet` contract.
216
+ * This transaction only succeeds if the connected signer is the `assistant` of all
217
+ * provided offers.
218
+ * @param offerIds - IDs of offers to void.
219
+ * @param validUntil - new validity date.
220
+ * @param overrides - Optional overrides.
221
+ * @returns Transaction response.
222
+ */
223
+ public async extendOfferBatch(
224
+ offerIds: BigNumberish[],
225
+ validUntil: BigNumberish,
226
+ overrides: Partial<{
227
+ contractAddress: string;
228
+ }> = {}
229
+ ): Promise<TransactionResponse> {
230
+ return offers.handler.extendOfferBatch({
231
+ offerIds,
232
+ validUntil,
233
+ web3Lib: this._web3Lib,
234
+ subgraphUrl: this._subgraphUrl,
235
+ contractAddress: overrides.contractAddress || this._protocolDiamond
236
+ });
237
+ }
238
+
190
239
  /**
191
240
  * Returns offer from subgraph.
192
241
  * @param offerId - ID of offer.
@@ -255,13 +304,19 @@ export class OfferMixin extends BaseCoreSDK {
255
304
  public async reserveRange(
256
305
  offerId: BigNumberish,
257
306
  length: BigNumberish,
307
+ to: "seller" | "contract",
258
308
  overrides: Partial<{
259
309
  contractAddress: string;
260
310
  }> = {}
261
311
  ): Promise<TransactionResponse> {
312
+ const offer = await this.getOfferById(offerId);
262
313
  return offers.handler.reserveRange({
263
314
  offerId,
264
315
  length,
316
+ to:
317
+ to === "contract"
318
+ ? offer.seller.voucherCloneAddress
319
+ : offer.seller.assistant,
265
320
  subgraphUrl: this._subgraphUrl,
266
321
  contractAddress: overrides.contractAddress || this._protocolDiamond,
267
322
  web3Lib: this._web3Lib
@@ -94,6 +94,9 @@ fragment BaseOfferFields on Offer {
94
94
  description
95
95
  externalUrl
96
96
  animationUrl
97
+ animationMetadata {
98
+ ...BaseAnimationMetadataFields
99
+ }
97
100
  licenseUrl
98
101
  condition
99
102
  schemaUrl
@@ -128,4 +131,14 @@ fragment BaseOfferFields on Offer {
128
131
  }
129
132
  }
130
133
  }
134
+ range {
135
+ ...BaseRangeFields
136
+ }
137
+ }
138
+
139
+ fragment BaseRangeFields on RangeEntity {
140
+ id
141
+ start
142
+ end
143
+ owner
131
144
  }
@@ -292,21 +292,18 @@ export async function renderContractualAgreementForOffer(
292
292
  `Invalid Offer Metadata: Type is not supported: '${existingOfferData.metadata.type}'`
293
293
  );
294
294
  }
295
- if (
296
- !(existingOfferData.metadata as productV1.ProductV1Metadata).exchangePolicy
297
- ) {
295
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
296
+ if (!(existingOfferData.metadata as any).exchangePolicy) {
298
297
  throw new Error(`Invalid Offer Metadata: exchangePolicy is not defined`);
299
298
  }
300
- if (
301
- !(existingOfferData.metadata as productV1.ProductV1Metadata).exchangePolicy
302
- .template
303
- ) {
299
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
300
+ if (!(existingOfferData.metadata as any).exchangePolicy.template) {
304
301
  throw new Error(
305
302
  `Invalid Offer Metadata: exchangePolicy.template is not defined`
306
303
  );
307
304
  }
308
- const template = (existingOfferData.metadata as productV1.ProductV1Metadata)
309
- .exchangePolicy.template;
305
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
306
+ const template = (existingOfferData.metadata as any).exchangePolicy.template;
310
307
  const convertedOfferArgs = convertExistingOfferData(existingOfferData);
311
308
  return renderContractualAgreement(
312
309
  template,
@@ -0,0 +1,149 @@
1
+ export const seaportAbi = [
2
+ {
3
+ inputs: [
4
+ {
5
+ components: [
6
+ {
7
+ components: [
8
+ {
9
+ internalType: "address",
10
+ name: "offerer",
11
+ type: "address"
12
+ },
13
+ {
14
+ internalType: "address",
15
+ name: "zone",
16
+ type: "address"
17
+ },
18
+ {
19
+ components: [
20
+ {
21
+ internalType: "enum ItemType",
22
+ name: "itemType",
23
+ type: "uint8"
24
+ },
25
+ {
26
+ internalType: "address",
27
+ name: "token",
28
+ type: "address"
29
+ },
30
+ {
31
+ internalType: "uint256",
32
+ name: "identifierOrCriteria",
33
+ type: "uint256"
34
+ },
35
+ {
36
+ internalType: "uint256",
37
+ name: "startAmount",
38
+ type: "uint256"
39
+ },
40
+ {
41
+ internalType: "uint256",
42
+ name: "endAmount",
43
+ type: "uint256"
44
+ }
45
+ ],
46
+ internalType: "struct OfferItem[]",
47
+ name: "offer",
48
+ type: "tuple[]"
49
+ },
50
+ {
51
+ components: [
52
+ {
53
+ internalType: "enum ItemType",
54
+ name: "itemType",
55
+ type: "uint8"
56
+ },
57
+ {
58
+ internalType: "address",
59
+ name: "token",
60
+ type: "address"
61
+ },
62
+ {
63
+ internalType: "uint256",
64
+ name: "identifierOrCriteria",
65
+ type: "uint256"
66
+ },
67
+ {
68
+ internalType: "uint256",
69
+ name: "startAmount",
70
+ type: "uint256"
71
+ },
72
+ {
73
+ internalType: "uint256",
74
+ name: "endAmount",
75
+ type: "uint256"
76
+ },
77
+ {
78
+ internalType: "address payable",
79
+ name: "recipient",
80
+ type: "address"
81
+ }
82
+ ],
83
+ internalType: "struct ConsiderationItem[]",
84
+ name: "consideration",
85
+ type: "tuple[]"
86
+ },
87
+ {
88
+ internalType: "enum OrderType",
89
+ name: "orderType",
90
+ type: "uint8"
91
+ },
92
+ {
93
+ internalType: "uint256",
94
+ name: "startTime",
95
+ type: "uint256"
96
+ },
97
+ {
98
+ internalType: "uint256",
99
+ name: "endTime",
100
+ type: "uint256"
101
+ },
102
+ {
103
+ internalType: "bytes32",
104
+ name: "zoneHash",
105
+ type: "bytes32"
106
+ },
107
+ {
108
+ internalType: "uint256",
109
+ name: "salt",
110
+ type: "uint256"
111
+ },
112
+ {
113
+ internalType: "bytes32",
114
+ name: "conduitKey",
115
+ type: "bytes32"
116
+ },
117
+ {
118
+ internalType: "uint256",
119
+ name: "totalOriginalConsiderationItems",
120
+ type: "uint256"
121
+ }
122
+ ],
123
+ internalType: "struct OrderParameters",
124
+ name: "parameters",
125
+ type: "tuple"
126
+ },
127
+ {
128
+ internalType: "bytes",
129
+ name: "signature",
130
+ type: "bytes"
131
+ }
132
+ ],
133
+ internalType: "struct Order[]",
134
+ name: "",
135
+ type: "tuple[]"
136
+ }
137
+ ],
138
+ name: "validate",
139
+ outputs: [
140
+ {
141
+ internalType: "bool",
142
+ name: "",
143
+ type: "bool"
144
+ }
145
+ ],
146
+ stateMutability: "nonpayable",
147
+ type: "function"
148
+ }
149
+ ];
@@ -0,0 +1,57 @@
1
+ import { BigNumberish } from "@ethersproject/bignumber";
2
+ import { Interface } from "@ethersproject/abi";
3
+ import { seaportAbi } from "./abi";
4
+
5
+ const seaportIface = new Interface(seaportAbi);
6
+
7
+ export enum eOrderType {
8
+ FULL_OPEN = 0,
9
+ PARTIAL_OPEN = 1,
10
+ FULL_RESTRICTED = 2,
11
+ PARTIAL_RESTRICTED = 3,
12
+ CONTRACT = 4
13
+ }
14
+
15
+ export enum eItemType {
16
+ NATIVE = 0,
17
+ ERC20 = 1,
18
+ ERC721 = 2,
19
+ ERC1155 = 3,
20
+ ERC721_WITH_CRITERIA = 4,
21
+ ERC1155_WITH_CRITERIA = 5
22
+ }
23
+
24
+ type OfferItem = {
25
+ itemType: eItemType;
26
+ token: string;
27
+ identifierOrCriteria: BigNumberish;
28
+ startAmount: BigNumberish;
29
+ endAmount: BigNumberish;
30
+ };
31
+
32
+ type ConsiderationItem = OfferItem & {
33
+ recipient: string;
34
+ };
35
+
36
+ type OrderParameters = {
37
+ offerer: string;
38
+ zone: string;
39
+ offer: OfferItem[];
40
+ consideration: ConsiderationItem[];
41
+ orderType: eOrderType;
42
+ startTime: BigNumberish;
43
+ endTime: BigNumberish;
44
+ zoneHash: string;
45
+ salt: BigNumberish;
46
+ conduitKey: string;
47
+ totalOriginalConsiderationItems: BigNumberish;
48
+ };
49
+
50
+ export type Order = {
51
+ parameters: OrderParameters;
52
+ signature: string;
53
+ };
54
+
55
+ export function encodeValidate(orders: Order[]) {
56
+ return seaportIface.encodeFunctionData("validate", [orders]);
57
+ }
@@ -0,0 +1 @@
1
+ export * as handler from "./handler";