@bosonprotocol/core-sdk 1.45.0-alpha.0 → 1.45.0-alpha.2

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 (119) hide show
  1. package/dist/cjs/accounts/handler.d.ts +17 -1
  2. package/dist/cjs/accounts/handler.d.ts.map +1 -1
  3. package/dist/cjs/accounts/handler.js +16 -0
  4. package/dist/cjs/accounts/handler.js.map +1 -1
  5. package/dist/cjs/accounts/interface.d.ts +2 -1
  6. package/dist/cjs/accounts/interface.d.ts.map +1 -1
  7. package/dist/cjs/accounts/interface.js +14 -0
  8. package/dist/cjs/accounts/interface.js.map +1 -1
  9. package/dist/cjs/accounts/mixin.d.ts +10 -0
  10. package/dist/cjs/accounts/mixin.d.ts.map +1 -1
  11. package/dist/cjs/accounts/mixin.js +19 -0
  12. package/dist/cjs/accounts/mixin.js.map +1 -1
  13. package/dist/cjs/accounts/types.d.ts +1 -1
  14. package/dist/cjs/accounts/types.d.ts.map +1 -1
  15. package/dist/cjs/accounts/types.js.map +1 -1
  16. package/dist/cjs/exchanges/handler.d.ts +36 -1
  17. package/dist/cjs/exchanges/handler.d.ts.map +1 -1
  18. package/dist/cjs/exchanges/handler.js +200 -0
  19. package/dist/cjs/exchanges/handler.js.map +1 -1
  20. package/dist/cjs/exchanges/interface.d.ts +14 -1
  21. package/dist/cjs/exchanges/interface.d.ts.map +1 -1
  22. package/dist/cjs/exchanges/interface.js +38 -0
  23. package/dist/cjs/exchanges/interface.js.map +1 -1
  24. package/dist/cjs/exchanges/mixin.d.ts +31 -1
  25. package/dist/cjs/exchanges/mixin.d.ts.map +1 -1
  26. package/dist/cjs/exchanges/mixin.js +45 -0
  27. package/dist/cjs/exchanges/mixin.js.map +1 -1
  28. package/dist/cjs/exchanges/subgraph.d.ts +2 -1
  29. package/dist/cjs/exchanges/subgraph.d.ts.map +1 -1
  30. package/dist/cjs/exchanges/subgraph.js +8 -0
  31. package/dist/cjs/exchanges/subgraph.js.map +1 -1
  32. package/dist/cjs/offers/handler.d.ts +34 -1
  33. package/dist/cjs/offers/handler.d.ts.map +1 -1
  34. package/dist/cjs/offers/handler.js +51 -2
  35. package/dist/cjs/offers/handler.js.map +1 -1
  36. package/dist/cjs/offers/interface.d.ts +5 -1
  37. package/dist/cjs/offers/interface.d.ts.map +1 -1
  38. package/dist/cjs/offers/interface.js +26 -1
  39. package/dist/cjs/offers/interface.js.map +1 -1
  40. package/dist/cjs/offers/mixin.d.ts +27 -1
  41. package/dist/cjs/offers/mixin.d.ts.map +1 -1
  42. package/dist/cjs/offers/mixin.js +67 -0
  43. package/dist/cjs/offers/mixin.js.map +1 -1
  44. package/dist/cjs/offers/types.d.ts +1 -1
  45. package/dist/cjs/offers/types.d.ts.map +1 -1
  46. package/dist/cjs/offers/types.js.map +1 -1
  47. package/dist/cjs/subgraph.d.ts +162 -0
  48. package/dist/cjs/subgraph.d.ts.map +1 -1
  49. package/dist/cjs/subgraph.js +53 -4
  50. package/dist/cjs/subgraph.js.map +1 -1
  51. package/dist/cjs/utils/graphql.d.ts +1 -0
  52. package/dist/cjs/utils/graphql.d.ts.map +1 -1
  53. package/dist/esm/accounts/handler.d.ts +17 -1
  54. package/dist/esm/accounts/handler.d.ts.map +1 -1
  55. package/dist/esm/accounts/handler.js +14 -1
  56. package/dist/esm/accounts/handler.js.map +1 -1
  57. package/dist/esm/accounts/interface.d.ts +2 -1
  58. package/dist/esm/accounts/interface.d.ts.map +1 -1
  59. package/dist/esm/accounts/interface.js +16 -0
  60. package/dist/esm/accounts/interface.js.map +1 -1
  61. package/dist/esm/accounts/mixin.d.ts +10 -0
  62. package/dist/esm/accounts/mixin.d.ts.map +1 -1
  63. package/dist/esm/accounts/mixin.js +23 -0
  64. package/dist/esm/accounts/mixin.js.map +1 -1
  65. package/dist/esm/accounts/types.d.ts +1 -1
  66. package/dist/esm/accounts/types.d.ts.map +1 -1
  67. package/dist/esm/accounts/types.js.map +1 -1
  68. package/dist/esm/exchanges/handler.d.ts +36 -1
  69. package/dist/esm/exchanges/handler.d.ts.map +1 -1
  70. package/dist/esm/exchanges/handler.js +216 -3
  71. package/dist/esm/exchanges/handler.js.map +1 -1
  72. package/dist/esm/exchanges/interface.d.ts +14 -1
  73. package/dist/esm/exchanges/interface.d.ts.map +1 -1
  74. package/dist/esm/exchanges/interface.js +36 -0
  75. package/dist/esm/exchanges/interface.js.map +1 -1
  76. package/dist/esm/exchanges/mixin.d.ts +31 -1
  77. package/dist/esm/exchanges/mixin.d.ts.map +1 -1
  78. package/dist/esm/exchanges/mixin.js +48 -1
  79. package/dist/esm/exchanges/mixin.js.map +1 -1
  80. package/dist/esm/exchanges/subgraph.d.ts +2 -1
  81. package/dist/esm/exchanges/subgraph.d.ts.map +1 -1
  82. package/dist/esm/exchanges/subgraph.js +5 -0
  83. package/dist/esm/exchanges/subgraph.js.map +1 -1
  84. package/dist/esm/offers/handler.d.ts +34 -1
  85. package/dist/esm/offers/handler.d.ts.map +1 -1
  86. package/dist/esm/offers/handler.js +43 -4
  87. package/dist/esm/offers/handler.js.map +1 -1
  88. package/dist/esm/offers/interface.d.ts +5 -1
  89. package/dist/esm/offers/interface.d.ts.map +1 -1
  90. package/dist/esm/offers/interface.js +22 -0
  91. package/dist/esm/offers/interface.js.map +1 -1
  92. package/dist/esm/offers/mixin.d.ts +27 -1
  93. package/dist/esm/offers/mixin.d.ts.map +1 -1
  94. package/dist/esm/offers/mixin.js +72 -0
  95. package/dist/esm/offers/mixin.js.map +1 -1
  96. package/dist/esm/offers/types.d.ts +1 -1
  97. package/dist/esm/offers/types.d.ts.map +1 -1
  98. package/dist/esm/offers/types.js.map +1 -1
  99. package/dist/esm/subgraph.d.ts +162 -0
  100. package/dist/esm/subgraph.d.ts.map +1 -1
  101. package/dist/esm/subgraph.js +49 -0
  102. package/dist/esm/subgraph.js.map +1 -1
  103. package/dist/esm/utils/graphql.d.ts +1 -0
  104. package/dist/esm/utils/graphql.d.ts.map +1 -1
  105. package/package.json +3 -3
  106. package/src/accounts/handler.ts +42 -2
  107. package/src/accounts/interface.ts +23 -1
  108. package/src/accounts/mixin.ts +52 -0
  109. package/src/accounts/types.ts +1 -0
  110. package/src/exchanges/handler.ts +329 -2
  111. package/src/exchanges/interface.ts +94 -1
  112. package/src/exchanges/mixin.ts +104 -0
  113. package/src/exchanges/queries.graphql +28 -0
  114. package/src/exchanges/subgraph.ts +13 -1
  115. package/src/offers/handler.ts +150 -3
  116. package/src/offers/interface.ts +58 -1
  117. package/src/offers/mixin.ts +182 -1
  118. package/src/offers/types.ts +5 -1
  119. package/src/subgraph.ts +218 -0
@@ -5,15 +5,21 @@ import {
5
5
  MetadataStorage,
6
6
  utils,
7
7
  RoyaltyInfo,
8
- TransactionRequest
8
+ TransactionRequest,
9
+ FullOfferArgs,
10
+ OfferCreator
9
11
  } from "@bosonprotocol/common";
10
12
  import {
11
13
  bosonOfferHandlerIface,
14
+ decodeGetOfferHash,
12
15
  encodeCreateOffer,
13
16
  encodeCreateOfferBatch,
17
+ encodeGetOfferHash,
14
18
  encodeReserveRange,
15
19
  encodeUpdateOfferRoyaltyRecipients,
16
- encodeUpdateOfferRoyaltyRecipientsBatch
20
+ encodeUpdateOfferRoyaltyRecipientsBatch,
21
+ encodeVoidNonListedOffer,
22
+ encodeVoidNonListedOfferBatch
17
23
  } from "./interface";
18
24
  import { getOfferById, getOffers } from "./subgraph";
19
25
  import { storeMetadataOnTheGraph } from "./storage";
@@ -328,6 +334,124 @@ export async function voidOfferBatch(args: {
328
334
  }
329
335
  }
330
336
 
337
+ // Overload: returnTxInfo is true → returns TransactionRequest
338
+ export async function voidNonListedOffer(args: {
339
+ contractAddress: string;
340
+ subgraphUrl: string;
341
+ fullOffer: Omit<
342
+ FullOfferArgs,
343
+ | "offerCreator"
344
+ | "committer"
345
+ | "signature"
346
+ | "conditionalTokenId"
347
+ | "sellerOfferParams"
348
+ >;
349
+ web3Lib: Web3LibAdapter;
350
+ returnTxInfo: true;
351
+ }): Promise<TransactionRequest>;
352
+
353
+ // Overload: returnTxInfo is false or undefined → returns TransactionResponse
354
+ export async function voidNonListedOffer(args: {
355
+ contractAddress: string;
356
+ subgraphUrl: string;
357
+ fullOffer: Omit<
358
+ FullOfferArgs,
359
+ | "offerCreator"
360
+ | "committer"
361
+ | "signature"
362
+ | "conditionalTokenId"
363
+ | "sellerOfferParams"
364
+ >;
365
+ web3Lib: Web3LibAdapter;
366
+ returnTxInfo?: false | undefined;
367
+ }): Promise<TransactionResponse>;
368
+
369
+ // Implementation
370
+ export async function voidNonListedOffer(args: {
371
+ contractAddress: string;
372
+ subgraphUrl: string;
373
+ fullOffer: Omit<
374
+ FullOfferArgs,
375
+ | "offerCreator"
376
+ | "committer"
377
+ | "signature"
378
+ | "conditionalTokenId"
379
+ | "sellerOfferParams"
380
+ >;
381
+ web3Lib: Web3LibAdapter;
382
+ returnTxInfo?: boolean;
383
+ }): Promise<TransactionRequest | TransactionResponse> {
384
+ const transactionRequest = {
385
+ to: args.contractAddress,
386
+ data: encodeVoidNonListedOffer(args.fullOffer)
387
+ } satisfies TransactionRequest;
388
+
389
+ if (args.returnTxInfo) {
390
+ return transactionRequest;
391
+ } else {
392
+ return args.web3Lib.sendTransaction(transactionRequest);
393
+ }
394
+ }
395
+
396
+ // Overload: returnTxInfo is true → returns TransactionRequest
397
+ export async function voidNonListedOfferBatch(args: {
398
+ contractAddress: string;
399
+ subgraphUrl: string;
400
+ fullOffers: Omit<
401
+ FullOfferArgs,
402
+ | "offerCreator"
403
+ | "committer"
404
+ | "signature"
405
+ | "conditionalTokenId"
406
+ | "sellerOfferParams"
407
+ >[];
408
+ web3Lib: Web3LibAdapter;
409
+ returnTxInfo: true;
410
+ }): Promise<TransactionRequest>;
411
+
412
+ // Overload: returnTxInfo is false or undefined → returns TransactionResponse
413
+ export async function voidNonListedOfferBatch(args: {
414
+ contractAddress: string;
415
+ subgraphUrl: string;
416
+ fullOffers: Omit<
417
+ FullOfferArgs,
418
+ | "offerCreator"
419
+ | "committer"
420
+ | "signature"
421
+ | "conditionalTokenId"
422
+ | "sellerOfferParams"
423
+ >[];
424
+ web3Lib: Web3LibAdapter;
425
+ returnTxInfo?: false | undefined;
426
+ }): Promise<TransactionResponse>;
427
+
428
+ // Implementation
429
+ export async function voidNonListedOfferBatch(args: {
430
+ contractAddress: string;
431
+ subgraphUrl: string;
432
+ fullOffers: Omit<
433
+ FullOfferArgs,
434
+ | "offerCreator"
435
+ | "committer"
436
+ | "signature"
437
+ | "conditionalTokenId"
438
+ | "sellerOfferParams"
439
+ >[];
440
+ web3Lib: Web3LibAdapter;
441
+ returnTxInfo?: boolean;
442
+ }): Promise<TransactionRequest | TransactionResponse> {
443
+ const transactionRequest = {
444
+ to: args.contractAddress,
445
+ data: encodeVoidNonListedOfferBatch(args.fullOffers)
446
+ } satisfies TransactionRequest;
447
+
448
+ if (args.returnTxInfo) {
449
+ return transactionRequest;
450
+ } else {
451
+ return args.web3Lib.sendTransaction(transactionRequest);
452
+ }
453
+ }
454
+
331
455
  // Overload: returnTxInfo is true → returns TransactionRequest
332
456
  export async function extendOffer(args: {
333
457
  contractAddress: string;
@@ -506,13 +630,24 @@ function checkIfOfferVoidable(
506
630
  }
507
631
 
508
632
  if (
633
+ offerFromSubgraph.creator === OfferCreator.Seller &&
509
634
  offerFromSubgraph.seller.assistant.toLowerCase() !==
510
- signerAddress.toLowerCase()
635
+ signerAddress.toLowerCase()
511
636
  ) {
512
637
  throw new Error(
513
638
  `Signer with address "${signerAddress}" is not the assistant "${offerFromSubgraph.seller.assistant}" of offer with id "${offerId}"`
514
639
  );
515
640
  }
641
+
642
+ if (
643
+ offerFromSubgraph.creator === OfferCreator.Buyer &&
644
+ offerFromSubgraph.buyer?.wallet.toLowerCase() !==
645
+ signerAddress.toLowerCase()
646
+ ) {
647
+ throw new Error(
648
+ `Signer with address "${signerAddress}" is not the creator's wallet "${offerFromSubgraph.buyer?.wallet}" of offer with id "${offerId}"`
649
+ );
650
+ }
516
651
  }
517
652
 
518
653
  function checkIfOfferReservable(
@@ -531,3 +666,15 @@ function checkIfOfferReservable(
531
666
  throw new Error(`Range length is too large`);
532
667
  }
533
668
  }
669
+
670
+ export async function getOfferHash(args: {
671
+ fullOfferArgsUnsigned: Omit<FullOfferArgs, "signature">;
672
+ contractAddress: string;
673
+ web3Lib: Web3LibAdapter;
674
+ }): Promise<string> {
675
+ const result = await args.web3Lib.call({
676
+ to: args.contractAddress,
677
+ data: encodeGetOfferHash(args.fullOfferArgsUnsigned)
678
+ });
679
+ return decodeGetOfferHash(result);
680
+ }
@@ -7,13 +7,15 @@ import {
7
7
  PriceType,
8
8
  RoyaltyInfo,
9
9
  OfferCreator,
10
- DRParametersStruct
10
+ DRParametersStruct,
11
+ FullOfferArgs
11
12
  } from "@bosonprotocol/common";
12
13
  import { Interface } from "@ethersproject/abi";
13
14
  import { getAddress } from "@ethersproject/address";
14
15
  import { BigNumberish } from "@ethersproject/bignumber";
15
16
  import { CreateOfferArgs } from "./types";
16
17
  import { AddressZero } from "@ethersproject/constants";
18
+ import { fullOfferArgsToStruct } from "../exchanges/interface";
17
19
 
18
20
  export const bosonOfferHandlerIface = new Interface(abis.IBosonOfferHandlerABI);
19
21
 
@@ -150,6 +152,7 @@ export function argsToOfferStruct(args: CreateOfferArgs): Partial<OfferStruct> {
150
152
  id: "0",
151
153
  sellerId: "0",
152
154
  buyerId: "0",
155
+ voided: false,
153
156
  ...restArgs,
154
157
  exchangeToken: getAddress(exchangeToken),
155
158
  priceType,
@@ -223,3 +226,57 @@ export function encodeReserveRange(
223
226
  to
224
227
  ]);
225
228
  }
229
+
230
+ export function encodeVoidNonListedOffer(
231
+ fullOfferArgsUnsigned: Omit<
232
+ FullOfferArgs,
233
+ | "offerCreator"
234
+ | "committer"
235
+ | "signature"
236
+ | "conditionalTokenId"
237
+ | "sellerOfferParams"
238
+ >
239
+ ) {
240
+ return bosonOfferHandlerIface.encodeFunctionData("voidNonListedOffer", [
241
+ fullOfferArgsToStruct(fullOfferArgsUnsigned)
242
+ ]);
243
+ }
244
+
245
+ export function encodeVoidNonListedOfferBatch(
246
+ argsBatch: Omit<
247
+ FullOfferArgs,
248
+ | "offerCreator"
249
+ | "committer"
250
+ | "signature"
251
+ | "conditionalTokenId"
252
+ | "sellerOfferParams"
253
+ >[]
254
+ ) {
255
+ const argsStructs = argsBatch.map((args) => fullOfferArgsToStruct(args));
256
+ return bosonOfferHandlerIface.encodeFunctionData("voidNonListedOfferBatch", [
257
+ argsStructs
258
+ ]);
259
+ }
260
+
261
+ export function encodeGetOfferHash(
262
+ fullOfferArgsUnsigned: Omit<
263
+ FullOfferArgs,
264
+ | "offerCreator"
265
+ | "committer"
266
+ | "signature"
267
+ | "conditionalTokenId"
268
+ | "sellerOfferParams"
269
+ >
270
+ ) {
271
+ return bosonOfferHandlerIface.encodeFunctionData("getOfferHash", [
272
+ fullOfferArgsToStruct(fullOfferArgsUnsigned)
273
+ ]);
274
+ }
275
+
276
+ export function decodeGetOfferHash(result: string): string {
277
+ const [offerHash] = bosonOfferHandlerIface.decodeFunctionResult(
278
+ "getOfferHash",
279
+ result
280
+ );
281
+ return offerHash;
282
+ }
@@ -15,7 +15,8 @@ import {
15
15
  GatingType,
16
16
  RoyaltyInfo,
17
17
  TransactionRequest,
18
- Web3LibAdapter
18
+ Web3LibAdapter,
19
+ FullOfferArgs
19
20
  } from "@bosonprotocol/common";
20
21
  import groupBy from "lodash/groupBy";
21
22
  import { BigNumber, BigNumberish } from "@ethersproject/bignumber";
@@ -225,6 +226,31 @@ export class OfferMixin<T extends Web3LibAdapter> extends BaseCoreSDK<T> {
225
226
  )?.toString();
226
227
  }
227
228
 
229
+ /**
230
+ * Utility method to retrieve the created `buyerId` from logs after calling `createBuyer`
231
+ *
232
+ * @param logs - Logs to search in.
233
+ * @returns Created buyer id.
234
+ */
235
+ public getCreatedBuyerIdFromLogs(logs: Log[]): string | null {
236
+ const buyerId = getValueFromLogs<BigNumber>({
237
+ iface: accounts.iface.bosonAccountHandlerIface,
238
+ logs,
239
+ eventArgsKey: "buyerId",
240
+ eventName: "BuyerCreated"
241
+ });
242
+
243
+ return (
244
+ buyerId ||
245
+ getValueFromLogs<BigNumber>({
246
+ iface: orchestration.iface.bosonOrchestrationHandlerIface,
247
+ logs,
248
+ eventArgsKey: "buyerId",
249
+ eventName: "BuyerCreated"
250
+ })
251
+ )?.toString();
252
+ }
253
+
228
254
  /**
229
255
  * Voids an existing offer by calling the `OfferHandlerFacet` contract.
230
256
  * This transaction only succeeds if the connected signer is the `assistant`.
@@ -336,6 +362,148 @@ export class OfferMixin<T extends Web3LibAdapter> extends BaseCoreSDK<T> {
336
362
  }
337
363
  }
338
364
 
365
+ // Overload: returnTxInfo is true → returns TransactionRequest
366
+ public async voidNonListedOffer(
367
+ fullOffer: Omit<
368
+ FullOfferArgs,
369
+ | "offerCreator"
370
+ | "committer"
371
+ | "signature"
372
+ | "conditionalTokenId"
373
+ | "sellerOfferParams"
374
+ >,
375
+ overrides: Partial<{
376
+ contractAddress: string;
377
+ returnTxInfo: true;
378
+ }>
379
+ ): Promise<TransactionRequest>;
380
+
381
+ // Overload: returnTxInfo is false or undefined → returns TransactionResponse
382
+ public async voidNonListedOffer(
383
+ fullOffer: Omit<
384
+ FullOfferArgs,
385
+ | "offerCreator"
386
+ | "committer"
387
+ | "signature"
388
+ | "conditionalTokenId"
389
+ | "sellerOfferParams"
390
+ >,
391
+ overrides?: Partial<{
392
+ contractAddress: string;
393
+ returnTxInfo?: false | undefined;
394
+ }>
395
+ ): Promise<TransactionResponse>;
396
+
397
+ // Implementation
398
+ public async voidNonListedOffer(
399
+ fullOffer: Omit<
400
+ FullOfferArgs,
401
+ | "offerCreator"
402
+ | "committer"
403
+ | "signature"
404
+ | "conditionalTokenId"
405
+ | "sellerOfferParams"
406
+ >,
407
+ overrides: Partial<{
408
+ contractAddress: string;
409
+ returnTxInfo?: boolean;
410
+ }> = {}
411
+ ): Promise<TransactionResponse | TransactionRequest> {
412
+ const { returnTxInfo } = overrides;
413
+
414
+ const voidArgs = {
415
+ fullOffer,
416
+ web3Lib: this._web3Lib,
417
+ subgraphUrl: this._subgraphUrl,
418
+ contractAddress: overrides.contractAddress || this._protocolDiamond
419
+ } as const satisfies Parameters<
420
+ typeof offers.handler.voidNonListedOffer
421
+ >[0];
422
+
423
+ if (returnTxInfo === true) {
424
+ return offers.handler.voidNonListedOffer({
425
+ ...voidArgs,
426
+ returnTxInfo: true
427
+ });
428
+ } else {
429
+ return offers.handler.voidNonListedOffer({
430
+ ...voidArgs,
431
+ returnTxInfo: false
432
+ });
433
+ }
434
+ }
435
+
436
+ // Overload: returnTxInfo is true → returns TransactionRequest
437
+ public async voidNonListedOfferBatch(
438
+ fullOffers: Omit<
439
+ FullOfferArgs,
440
+ | "offerCreator"
441
+ | "committer"
442
+ | "signature"
443
+ | "conditionalTokenId"
444
+ | "sellerOfferParams"
445
+ >[],
446
+ overrides: Partial<{
447
+ contractAddress: string;
448
+ returnTxInfo: true;
449
+ }>
450
+ ): Promise<TransactionRequest>;
451
+
452
+ // Overload: returnTxInfo is false or undefined → returns TransactionResponse
453
+ public async voidNonListedOfferBatch(
454
+ fullOffers: Omit<
455
+ FullOfferArgs,
456
+ | "offerCreator"
457
+ | "committer"
458
+ | "signature"
459
+ | "conditionalTokenId"
460
+ | "sellerOfferParams"
461
+ >[],
462
+ overrides?: Partial<{
463
+ contractAddress: string;
464
+ returnTxInfo?: false | undefined;
465
+ }>
466
+ ): Promise<TransactionResponse>;
467
+
468
+ // Implementation
469
+ public async voidNonListedOfferBatch(
470
+ fullOffers: Omit<
471
+ FullOfferArgs,
472
+ | "offerCreator"
473
+ | "committer"
474
+ | "signature"
475
+ | "conditionalTokenId"
476
+ | "sellerOfferParams"
477
+ >[],
478
+ overrides: Partial<{
479
+ contractAddress: string;
480
+ returnTxInfo?: boolean;
481
+ }> = {}
482
+ ): Promise<TransactionResponse | TransactionRequest> {
483
+ const { returnTxInfo } = overrides;
484
+
485
+ const voidArgs = {
486
+ fullOffers,
487
+ web3Lib: this._web3Lib,
488
+ subgraphUrl: this._subgraphUrl,
489
+ contractAddress: overrides.contractAddress || this._protocolDiamond
490
+ } as const satisfies Parameters<
491
+ typeof offers.handler.voidNonListedOfferBatch
492
+ >[0];
493
+
494
+ if (returnTxInfo === true) {
495
+ return offers.handler.voidNonListedOfferBatch({
496
+ ...voidArgs,
497
+ returnTxInfo: true
498
+ });
499
+ } else {
500
+ return offers.handler.voidNonListedOfferBatch({
501
+ ...voidArgs,
502
+ returnTxInfo: false
503
+ });
504
+ }
505
+ }
506
+
339
507
  /**
340
508
  * Extends an existing offer by calling the `OfferHandlerFacet` contract.
341
509
  * This transaction only succeeds if the connected signer is the `assistant`.
@@ -1093,4 +1261,17 @@ export class OfferMixin<T extends Web3LibAdapter> extends BaseCoreSDK<T> {
1093
1261
  });
1094
1262
  }
1095
1263
  }
1264
+
1265
+ public async getOfferHash(
1266
+ fullOfferArgsUnsigned: Omit<FullOfferArgs, "signature">,
1267
+ overrides: Partial<{
1268
+ contractAddress: string;
1269
+ }> = {}
1270
+ ) {
1271
+ return offers.handler.getOfferHash({
1272
+ fullOfferArgsUnsigned,
1273
+ web3Lib: this._web3Lib,
1274
+ contractAddress: overrides.contractAddress || this._protocolDiamond
1275
+ });
1276
+ }
1096
1277
  }
@@ -1 +1,5 @@
1
- export { CreateOfferArgs, PriceType } from "@bosonprotocol/common";
1
+ export {
2
+ CreateOfferArgs,
3
+ PriceType,
4
+ FullOfferArgs
5
+ } from "@bosonprotocol/common";