@bosonprotocol/core-sdk 1.18.0-alpha.8 → 1.18.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.
Files changed (46) hide show
  1. package/dist/cjs/core-sdk.d.ts +106 -10
  2. package/dist/cjs/core-sdk.d.ts.map +1 -1
  3. package/dist/cjs/core-sdk.js +113 -25
  4. package/dist/cjs/core-sdk.js.map +1 -1
  5. package/dist/cjs/meta-tx/handler.d.ts +76 -11
  6. package/dist/cjs/meta-tx/handler.d.ts.map +1 -1
  7. package/dist/cjs/meta-tx/handler.js +73 -26
  8. package/dist/cjs/meta-tx/handler.js.map +1 -1
  9. package/dist/cjs/offers/handler.d.ts +7 -0
  10. package/dist/cjs/offers/handler.d.ts.map +1 -1
  11. package/dist/cjs/offers/handler.js +20 -1
  12. package/dist/cjs/offers/handler.js.map +1 -1
  13. package/dist/cjs/offers/interface.d.ts +1 -0
  14. package/dist/cjs/offers/interface.d.ts.map +1 -1
  15. package/dist/cjs/offers/interface.js +28 -1
  16. package/dist/cjs/offers/interface.js.map +1 -1
  17. package/dist/cjs/subgraph.d.ts +1 -0
  18. package/dist/cjs/subgraph.d.ts.map +1 -1
  19. package/dist/cjs/subgraph.js +1 -0
  20. package/dist/cjs/subgraph.js.map +1 -1
  21. package/dist/esm/core-sdk.d.ts +106 -10
  22. package/dist/esm/core-sdk.d.ts.map +1 -1
  23. package/dist/esm/core-sdk.js +126 -25
  24. package/dist/esm/core-sdk.js.map +1 -1
  25. package/dist/esm/meta-tx/handler.d.ts +76 -11
  26. package/dist/esm/meta-tx/handler.d.ts.map +1 -1
  27. package/dist/esm/meta-tx/handler.js +69 -11
  28. package/dist/esm/meta-tx/handler.js.map +1 -1
  29. package/dist/esm/offers/handler.d.ts +7 -0
  30. package/dist/esm/offers/handler.d.ts.map +1 -1
  31. package/dist/esm/offers/handler.js +17 -1
  32. package/dist/esm/offers/handler.js.map +1 -1
  33. package/dist/esm/offers/interface.d.ts +1 -0
  34. package/dist/esm/offers/interface.d.ts.map +1 -1
  35. package/dist/esm/offers/interface.js +26 -0
  36. package/dist/esm/offers/interface.js.map +1 -1
  37. package/dist/esm/subgraph.d.ts +1 -0
  38. package/dist/esm/subgraph.d.ts.map +1 -1
  39. package/dist/esm/subgraph.js +1 -0
  40. package/dist/esm/subgraph.js.map +1 -1
  41. package/package.json +3 -3
  42. package/src/core-sdk.ts +188 -35
  43. package/src/meta-tx/handler.ts +127 -12
  44. package/src/offers/handler.ts +34 -1
  45. package/src/offers/interface.ts +45 -1
  46. package/src/subgraph.ts +1 -0
@@ -1,9 +1,20 @@
1
- import { MetaTxConfig, Web3LibAdapter } from "@bosonprotocol/common";
1
+ import {
2
+ CreateOfferArgs,
3
+ CreateSellerArgs,
4
+ MetaTxConfig,
5
+ Web3LibAdapter
6
+ } from "@bosonprotocol/common";
2
7
  import { BigNumber, BigNumberish } from "@ethersproject/bignumber";
3
8
  import { BytesLike } from "@ethersproject/bytes";
4
9
  import { ContractTransaction } from "@ethersproject/contracts";
5
10
 
11
+ import { encodeCreateSeller } from "../accounts/interface";
6
12
  import { bosonExchangeHandlerIface } from "../exchanges/interface";
13
+ import {
14
+ bosonOfferHandlerIface,
15
+ encodeCreateOffer,
16
+ encodeCreateOfferBatch
17
+ } from "../offers/interface";
7
18
  import { prepareDataSignatureParameters } from "../utils/signature";
8
19
  import { Biconomy } from "./biconomy";
9
20
 
@@ -14,7 +25,7 @@ type BaseMetaTxArgs = {
14
25
  chainId: number;
15
26
  };
16
27
 
17
- export async function signExecuteMetaTx(
28
+ export async function signMetaTx(
18
29
  args: BaseMetaTxArgs & {
19
30
  functionName: string;
20
31
  functionSignature: string;
@@ -42,16 +53,120 @@ export async function signExecuteMetaTx(
42
53
  functionSignature: args.functionSignature
43
54
  };
44
55
 
45
- return prepareDataSignatureParameters({
56
+ const signature = await prepareDataSignatureParameters({
46
57
  ...args,
47
58
  verifyingContractAddress: args.metaTxHandlerAddress,
48
59
  customSignatureType,
49
60
  primaryType: "MetaTransaction",
50
61
  message
51
62
  });
63
+
64
+ return {
65
+ functionName: args.functionName,
66
+ functionSignature: args.functionSignature,
67
+ ...signature
68
+ };
69
+ }
70
+
71
+ export async function signMetaTxCreateSeller(
72
+ args: BaseMetaTxArgs & {
73
+ createSellerArgs: CreateSellerArgs;
74
+ }
75
+ ) {
76
+ return signMetaTx({
77
+ ...args,
78
+ functionName:
79
+ "createSeller((uint256,address,address,address,address,bool),(uint256,uint8),(string,uint256))",
80
+ functionSignature: encodeCreateSeller(args.createSellerArgs)
81
+ });
82
+ }
83
+
84
+ export async function signMetaTxCreateOffer(
85
+ args: BaseMetaTxArgs & {
86
+ createOfferArgs: CreateOfferArgs;
87
+ }
88
+ ) {
89
+ return signMetaTx({
90
+ ...args,
91
+ functionName:
92
+ "createOffer((uint256,uint256,uint256,uint256,uint256,uint256,address,string,string,bool),(uint256,uint256,uint256,uint256),(uint256,uint256,uint256),uint256,uint256)",
93
+ functionSignature: encodeCreateOffer(args.createOfferArgs)
94
+ });
95
+ }
96
+
97
+ export async function signMetaTxCreateOfferBatch(
98
+ args: BaseMetaTxArgs & {
99
+ createOffersArgs: CreateOfferArgs[];
100
+ }
101
+ ) {
102
+ return signMetaTx({
103
+ ...args,
104
+ functionName:
105
+ "createOfferBatch((uint256,uint256,uint256,uint256,uint256,uint256,address,string,string,bool)[],(uint256,uint256,uint256,uint256)[],(uint256,uint256,uint256)[],uint256[],uint256[])",
106
+ functionSignature: encodeCreateOfferBatch(args.createOffersArgs)
107
+ });
108
+ }
109
+
110
+ export async function signMetaTxVoidOffer(
111
+ args: BaseMetaTxArgs & {
112
+ offerId: BigNumberish;
113
+ }
114
+ ) {
115
+ return signMetaTx({
116
+ ...args,
117
+ functionName: "voidOffer(uint256)",
118
+ functionSignature: bosonOfferHandlerIface.encodeFunctionData("voidOffer", [
119
+ args.offerId
120
+ ])
121
+ });
122
+ }
123
+
124
+ export async function signMetaTxVoidOfferBatch(
125
+ args: BaseMetaTxArgs & {
126
+ offerIds: BigNumberish[];
127
+ }
128
+ ) {
129
+ return signMetaTx({
130
+ ...args,
131
+ functionName: "voidOfferBatch(uint256[])",
132
+ functionSignature: bosonOfferHandlerIface.encodeFunctionData(
133
+ "voidOfferBatch",
134
+ [args.offerIds]
135
+ )
136
+ });
137
+ }
138
+
139
+ export async function signMetaTxCompleteExchangeBatch(
140
+ args: BaseMetaTxArgs & {
141
+ exchangeIds: BigNumberish[];
142
+ }
143
+ ) {
144
+ return signMetaTx({
145
+ ...args,
146
+ functionName: "completeExchangeBatch(uint256[])",
147
+ functionSignature: bosonExchangeHandlerIface.encodeFunctionData(
148
+ "completeExchangeBatch",
149
+ [args.exchangeIds]
150
+ )
151
+ });
152
+ }
153
+
154
+ export async function signMetaTxExpireVoucher(
155
+ args: BaseMetaTxArgs & {
156
+ exchangeId: BigNumberish;
157
+ }
158
+ ) {
159
+ return signMetaTx({
160
+ ...args,
161
+ functionName: "expireVoucher(uint256)",
162
+ functionSignature: bosonExchangeHandlerIface.encodeFunctionData(
163
+ "expireVoucher",
164
+ [args.exchangeId]
165
+ )
166
+ });
52
167
  }
53
168
 
54
- export async function signExecuteMetaTxCommitToOffer(
169
+ export async function signMetaTxCommitToOffer(
55
170
  args: BaseMetaTxArgs & {
56
171
  offerId: BigNumberish;
57
172
  }
@@ -107,7 +222,7 @@ export async function signExecuteMetaTxCommitToOffer(
107
222
  };
108
223
  }
109
224
 
110
- export async function signExecuteMetaTxCancelVoucher(
225
+ export async function signMetaTxCancelVoucher(
111
226
  args: BaseMetaTxArgs & {
112
227
  exchangeId: BigNumberish;
113
228
  }
@@ -115,7 +230,7 @@ export async function signExecuteMetaTxCancelVoucher(
115
230
  return makeExchangeMetaTxSigner("cancelVoucher(uint256)")(args);
116
231
  }
117
232
 
118
- export async function signExecuteMetaTxRedeemVoucher(
233
+ export async function signMetaTxRedeemVoucher(
119
234
  args: BaseMetaTxArgs & {
120
235
  exchangeId: BigNumberish;
121
236
  }
@@ -123,7 +238,7 @@ export async function signExecuteMetaTxRedeemVoucher(
123
238
  return makeExchangeMetaTxSigner("redeemVoucher(uint256)")(args);
124
239
  }
125
240
 
126
- export async function signExecuteMetaTxCompleteExchange(
241
+ export async function signMetaTxCompleteExchange(
127
242
  args: BaseMetaTxArgs & {
128
243
  exchangeId: BigNumberish;
129
244
  }
@@ -131,7 +246,7 @@ export async function signExecuteMetaTxCompleteExchange(
131
246
  return makeExchangeMetaTxSigner("completeExchange(uint256)")(args);
132
247
  }
133
248
 
134
- export async function signExecuteMetaTxRetractDispute(
249
+ export async function signMetaTxRetractDispute(
135
250
  args: BaseMetaTxArgs & {
136
251
  exchangeId: BigNumberish;
137
252
  }
@@ -139,7 +254,7 @@ export async function signExecuteMetaTxRetractDispute(
139
254
  return makeExchangeMetaTxSigner("retractDispute(uint256)")(args);
140
255
  }
141
256
 
142
- export async function signExecuteMetaTxEscalateDispute(
257
+ export async function signMetaTxEscalateDispute(
143
258
  args: BaseMetaTxArgs & {
144
259
  exchangeId: BigNumberish;
145
260
  }
@@ -147,7 +262,7 @@ export async function signExecuteMetaTxEscalateDispute(
147
262
  return makeExchangeMetaTxSigner("escalateDispute(uint256)")(args);
148
263
  }
149
264
 
150
- export async function signExecuteMetaTxRaiseDispute(
265
+ export async function signMetaTxRaiseDispute(
151
266
  args: BaseMetaTxArgs & {
152
267
  exchangeId: BigNumberish;
153
268
  }
@@ -187,7 +302,7 @@ export async function signExecuteMetaTxRaiseDispute(
187
302
  });
188
303
  }
189
304
 
190
- export async function signExecuteMetaTxResolveDispute(
305
+ export async function signMetaTxResolveDispute(
191
306
  args: BaseMetaTxArgs & {
192
307
  exchangeId: BigNumberish;
193
308
  buyerPercent: string;
@@ -243,7 +358,7 @@ export async function signExecuteMetaTxResolveDispute(
243
358
  });
244
359
  }
245
360
 
246
- export async function signExecuteMetaTxWithdrawFunds(
361
+ export async function signMetaTxWithdrawFunds(
247
362
  args: BaseMetaTxArgs & {
248
363
  entityId: BigNumberish;
249
364
  tokenList: string[];
@@ -5,7 +5,11 @@ import {
5
5
  MetadataStorage,
6
6
  utils
7
7
  } from "@bosonprotocol/common";
8
- import { bosonOfferHandlerIface, encodeCreateOffer } from "./interface";
8
+ import {
9
+ bosonOfferHandlerIface,
10
+ encodeCreateOffer,
11
+ encodeCreateOfferBatch
12
+ } from "./interface";
9
13
  import { getOfferById, getOffers } from "./subgraph";
10
14
  import { storeMetadataOnTheGraph } from "./storage";
11
15
  import { CreateOfferArgs } from "./types";
@@ -34,6 +38,35 @@ export async function createOffer(args: {
34
38
  });
35
39
  }
36
40
 
41
+ export async function createOfferBatch(args: {
42
+ offersToCreate: CreateOfferArgs[];
43
+ contractAddress: string;
44
+ web3Lib: Web3LibAdapter;
45
+ metadataStorage?: MetadataStorage;
46
+ theGraphStorage?: MetadataStorage;
47
+ }): Promise<TransactionResponse> {
48
+ for (const offerToCreate of args.offersToCreate) {
49
+ utils.validation.createOfferArgsSchema.validateSync(offerToCreate, {
50
+ abortEarly: false
51
+ });
52
+ }
53
+
54
+ await Promise.all(
55
+ args.offersToCreate.map((offerToCreate) =>
56
+ storeMetadataOnTheGraph({
57
+ metadataUriOrHash: offerToCreate.metadataUri,
58
+ metadataStorage: args.metadataStorage,
59
+ theGraphStorage: args.theGraphStorage
60
+ })
61
+ )
62
+ );
63
+
64
+ return args.web3Lib.sendTransaction({
65
+ to: args.contractAddress,
66
+ data: encodeCreateOfferBatch(args.offersToCreate)
67
+ });
68
+ }
69
+
37
70
  export async function voidOffer(args: {
38
71
  contractAddress: string;
39
72
  subgraphUrl: string;
@@ -7,7 +7,7 @@ import {
7
7
  } from "@bosonprotocol/common";
8
8
  import { Interface } from "@ethersproject/abi";
9
9
  import { getAddress } from "@ethersproject/address";
10
- import { BigNumber, BigNumberish } from "@ethersproject/bignumber";
10
+ import { BigNumberish } from "@ethersproject/bignumber";
11
11
  import { CreateOfferArgs } from "./types";
12
12
 
13
13
  export const bosonOfferHandlerIface = new Interface(abis.IBosonOfferHandlerABI);
@@ -19,6 +19,50 @@ export function encodeCreateOffer(args: CreateOfferArgs) {
19
19
  );
20
20
  }
21
21
 
22
+ export function encodeCreateOfferBatch(argsBatch: CreateOfferArgs[]) {
23
+ const argsTuples: [
24
+ Partial<OfferStruct>,
25
+ Partial<OfferDatesStruct>,
26
+ Partial<OfferDurationsStruct>,
27
+ BigNumberish,
28
+ BigNumberish
29
+ ][] = argsBatch.map((args) => [
30
+ argsToOfferStruct(args),
31
+ argsToOfferDatesStruct(args),
32
+ argsToOfferDurationsStruct(args),
33
+ args.disputeResolverId,
34
+ args.agentId
35
+ ]);
36
+ const [offers, offerDates, offerDurations, disputeResolverIds, agentIds]: [
37
+ Partial<OfferStruct>[],
38
+ Partial<OfferDatesStruct>[],
39
+ Partial<OfferDurationsStruct>[],
40
+ BigNumberish[],
41
+ BigNumberish[]
42
+ ] = argsTuples.reduce(
43
+ (acc, tuple) => {
44
+ const [offer, offerDates, offerDurations, disputeResolverId, agentId] =
45
+ tuple;
46
+ return [
47
+ [...acc[0], offer],
48
+ [...acc[1], offerDates],
49
+ [...acc[2], offerDurations],
50
+ [...acc[3], disputeResolverId],
51
+ [...acc[4], agentId]
52
+ ];
53
+ },
54
+ [[], [], [], [], []]
55
+ );
56
+
57
+ return bosonOfferHandlerIface.encodeFunctionData("createOfferBatch", [
58
+ offers,
59
+ offerDates,
60
+ offerDurations,
61
+ disputeResolverIds,
62
+ agentIds
63
+ ]);
64
+ }
65
+
22
66
  export function createOfferArgsToStructs(
23
67
  args: CreateOfferArgs
24
68
  ): [
package/src/subgraph.ts CHANGED
@@ -1366,6 +1366,7 @@ export enum EventType {
1366
1366
  SellerCreated = "SELLER_CREATED",
1367
1367
  SellerUpdated = "SELLER_UPDATED",
1368
1368
  VoucherCanceled = "VOUCHER_CANCELED",
1369
+ VoucherExpired = "VOUCHER_EXPIRED",
1369
1370
  VoucherExtended = "VOUCHER_EXTENDED",
1370
1371
  VoucherRedeemed = "VOUCHER_REDEEMED",
1371
1372
  VoucherRevoked = "VOUCHER_REVOKED",