@bosonprotocol/core-sdk 1.12.0-alpha.17 → 1.12.0-alpha.3

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 (127) hide show
  1. package/dist/cjs/accounts/index.d.ts +11 -2
  2. package/dist/cjs/accounts/index.d.ts.map +1 -1
  3. package/dist/cjs/accounts/index.js.map +1 -1
  4. package/dist/cjs/accounts/interface.d.ts +2 -5
  5. package/dist/cjs/accounts/interface.d.ts.map +1 -1
  6. package/dist/cjs/accounts/interface.js +7 -27
  7. package/dist/cjs/accounts/interface.js.map +1 -1
  8. package/dist/cjs/core-sdk.d.ts +8 -15
  9. package/dist/cjs/core-sdk.d.ts.map +1 -1
  10. package/dist/cjs/core-sdk.js +33 -44
  11. package/dist/cjs/core-sdk.js.map +1 -1
  12. package/dist/cjs/disputes/handler.d.ts +0 -11
  13. package/dist/cjs/disputes/handler.d.ts.map +1 -1
  14. package/dist/cjs/disputes/handler.js +1 -25
  15. package/dist/cjs/disputes/handler.js.map +1 -1
  16. package/dist/cjs/exchanges/handler.d.ts.map +1 -1
  17. package/dist/cjs/exchanges/handler.js +0 -1
  18. package/dist/cjs/exchanges/handler.js.map +1 -1
  19. package/dist/cjs/meta-tx/handler.d.ts +14 -0
  20. package/dist/cjs/meta-tx/handler.d.ts.map +1 -1
  21. package/dist/cjs/meta-tx/handler.js +60 -14
  22. package/dist/cjs/meta-tx/handler.js.map +1 -1
  23. package/dist/cjs/offers/getOfferStatus.d.ts +2 -2
  24. package/dist/cjs/offers/getOfferStatus.d.ts.map +1 -1
  25. package/dist/cjs/offers/getOfferStatus.js.map +1 -1
  26. package/dist/cjs/offers/index.d.ts +33 -3
  27. package/dist/cjs/offers/index.d.ts.map +1 -1
  28. package/dist/cjs/offers/index.js +0 -1
  29. package/dist/cjs/offers/index.js.map +1 -1
  30. package/dist/cjs/offers/interface.d.ts +0 -1
  31. package/dist/cjs/offers/interface.d.ts.map +1 -1
  32. package/dist/cjs/offers/interface.js +12 -6
  33. package/dist/cjs/offers/interface.js.map +1 -1
  34. package/dist/cjs/offers/subgraph.d.ts.map +1 -1
  35. package/dist/cjs/offers/subgraph.js.map +1 -1
  36. package/dist/cjs/orchestration/interface.d.ts.map +1 -1
  37. package/dist/cjs/orchestration/interface.js +2 -9
  38. package/dist/cjs/orchestration/interface.js.map +1 -1
  39. package/dist/cjs/subgraph.d.ts +15 -3983
  40. package/dist/cjs/subgraph.d.ts.map +1 -1
  41. package/dist/cjs/subgraph.js +169 -217
  42. package/dist/cjs/subgraph.js.map +1 -1
  43. package/dist/esm/accounts/index.d.ts +11 -2
  44. package/dist/esm/accounts/index.d.ts.map +1 -1
  45. package/dist/esm/accounts/index.js.map +1 -1
  46. package/dist/esm/accounts/interface.d.ts +2 -5
  47. package/dist/esm/accounts/interface.d.ts.map +1 -1
  48. package/dist/esm/accounts/interface.js +8 -17
  49. package/dist/esm/accounts/interface.js.map +1 -1
  50. package/dist/esm/core-sdk.d.ts +8 -15
  51. package/dist/esm/core-sdk.d.ts.map +1 -1
  52. package/dist/esm/core-sdk.js +30 -43
  53. package/dist/esm/core-sdk.js.map +1 -1
  54. package/dist/esm/disputes/handler.d.ts +0 -11
  55. package/dist/esm/disputes/handler.d.ts.map +1 -1
  56. package/dist/esm/disputes/handler.js +0 -21
  57. package/dist/esm/disputes/handler.js.map +1 -1
  58. package/dist/esm/exchanges/handler.d.ts.map +1 -1
  59. package/dist/esm/exchanges/handler.js +0 -1
  60. package/dist/esm/exchanges/handler.js.map +1 -1
  61. package/dist/esm/meta-tx/handler.d.ts +14 -0
  62. package/dist/esm/meta-tx/handler.d.ts.map +1 -1
  63. package/dist/esm/meta-tx/handler.js +58 -19
  64. package/dist/esm/meta-tx/handler.js.map +1 -1
  65. package/dist/esm/offers/getOfferStatus.d.ts +2 -2
  66. package/dist/esm/offers/getOfferStatus.d.ts.map +1 -1
  67. package/dist/esm/offers/getOfferStatus.js.map +1 -1
  68. package/dist/esm/offers/index.d.ts +33 -3
  69. package/dist/esm/offers/index.d.ts.map +1 -1
  70. package/dist/esm/offers/index.js +0 -1
  71. package/dist/esm/offers/index.js.map +1 -1
  72. package/dist/esm/offers/interface.d.ts +0 -1
  73. package/dist/esm/offers/interface.d.ts.map +1 -1
  74. package/dist/esm/offers/interface.js +12 -6
  75. package/dist/esm/offers/interface.js.map +1 -1
  76. package/dist/esm/offers/subgraph.d.ts.map +1 -1
  77. package/dist/esm/offers/subgraph.js.map +1 -1
  78. package/dist/esm/orchestration/interface.d.ts.map +1 -1
  79. package/dist/esm/orchestration/interface.js +2 -9
  80. package/dist/esm/orchestration/interface.js.map +1 -1
  81. package/dist/esm/subgraph.d.ts +15 -3983
  82. package/dist/esm/subgraph.d.ts.map +1 -1
  83. package/dist/esm/subgraph.js +167 -215
  84. package/dist/esm/subgraph.js.map +1 -1
  85. package/package.json +4 -6
  86. package/src/accounts/index.ts +1 -3
  87. package/src/accounts/interface.ts +11 -22
  88. package/src/accounts/queries.graphql +0 -3
  89. package/src/core-sdk.ts +40 -66
  90. package/src/disputes/handler.ts +0 -31
  91. package/src/exchanges/handler.ts +0 -1
  92. package/src/meta-tx/handler.ts +74 -20
  93. package/src/metadata/product-v1.graphql +0 -3
  94. package/src/offers/getOfferStatus.ts +2 -2
  95. package/src/offers/index.ts +1 -4
  96. package/src/offers/interface.ts +16 -9
  97. package/src/offers/queries.graphql +0 -31
  98. package/src/offers/subgraph.ts +1 -0
  99. package/src/orchestration/interface.ts +2 -9
  100. package/src/subgraph.ts +169 -4132
  101. package/dist/cjs/offers/renderContractualAgreement.d.ts +0 -42
  102. package/dist/cjs/offers/renderContractualAgreement.d.ts.map +0 -1
  103. package/dist/cjs/offers/renderContractualAgreement.js +0 -156
  104. package/dist/cjs/offers/renderContractualAgreement.js.map +0 -1
  105. package/dist/cjs/utils/signature.d.ts +0 -21
  106. package/dist/cjs/utils/signature.d.ts.map +0 -1
  107. package/dist/cjs/utils/signature.js +0 -60
  108. package/dist/cjs/utils/signature.js.map +0 -1
  109. package/dist/cjs/utils/tokenInfoManager.d.ts +0 -19
  110. package/dist/cjs/utils/tokenInfoManager.d.ts.map +0 -1
  111. package/dist/cjs/utils/tokenInfoManager.js +0 -97
  112. package/dist/cjs/utils/tokenInfoManager.js.map +0 -1
  113. package/dist/esm/offers/renderContractualAgreement.d.ts +0 -42
  114. package/dist/esm/offers/renderContractualAgreement.d.ts.map +0 -1
  115. package/dist/esm/offers/renderContractualAgreement.js +0 -132
  116. package/dist/esm/offers/renderContractualAgreement.js.map +0 -1
  117. package/dist/esm/utils/signature.d.ts +0 -21
  118. package/dist/esm/utils/signature.d.ts.map +0 -1
  119. package/dist/esm/utils/signature.js +0 -47
  120. package/dist/esm/utils/signature.js.map +0 -1
  121. package/dist/esm/utils/tokenInfoManager.d.ts +0 -19
  122. package/dist/esm/utils/tokenInfoManager.d.ts.map +0 -1
  123. package/dist/esm/utils/tokenInfoManager.js +0 -83
  124. package/dist/esm/utils/tokenInfoManager.js.map +0 -1
  125. package/src/offers/renderContractualAgreement.ts +0 -206
  126. package/src/utils/signature.ts +0 -65
  127. package/src/utils/tokenInfoManager.ts +0 -97
package/src/core-sdk.ts CHANGED
@@ -1,4 +1,3 @@
1
- import { ITokenInfo, TokenInfoManager } from "./utils/tokenInfoManager";
2
1
  import {
3
2
  Web3LibAdapter,
4
3
  TransactionResponse,
@@ -32,7 +31,6 @@ export class CoreSDK {
32
31
  private _subgraphUrl: string;
33
32
  private _protocolDiamond: string;
34
33
  private _chainId: number;
35
- private _tokenInfoManager: TokenInfoManager;
36
34
 
37
35
  /**
38
36
  * Creates an instance of `CoreSDK`
@@ -574,31 +572,6 @@ export class CoreSDK {
574
572
  );
575
573
  }
576
574
 
577
- /**
578
- * Utility method to retrieve the created `sellerId` from logs after calling `createSeller`
579
- * or `createOfferAndSeller`.
580
- * @param logs - Logs to search in.
581
- * @returns Created offer id.
582
- */
583
- public getCreatedSellerIdFromLogs(logs: Log[]): string | null {
584
- const sellerId = getValueFromLogs({
585
- iface: accounts.iface.bosonAccountHandlerIface,
586
- logs,
587
- eventArgsKey: "sellerId",
588
- eventName: "SellerCreated"
589
- });
590
-
591
- return (
592
- sellerId ||
593
- getValueFromLogs({
594
- iface: orchestration.iface.bosonOrchestrationHandlerIface,
595
- logs,
596
- eventArgsKey: "sellerId",
597
- eventName: "SellerCreated"
598
- })
599
- );
600
- }
601
-
602
575
  /**
603
576
  * Voids an existing offer by calling the `OfferHandlerFacet` contract.
604
577
  * This transaction only succeeds if the connected signer is the `operator`.
@@ -674,21 +647,22 @@ export class CoreSDK {
674
647
  * @param exchangeToken - Address exchange token.
675
648
  * @returns Decimals, name and symbol.
676
649
  */
677
- public async getExchangeTokenInfo(
678
- exchangeToken: string
679
- ): Promise<ITokenInfo> {
680
- if (this._chainId === undefined) {
681
- this._chainId = await this._web3Lib.getChainId();
682
- }
683
-
684
- if (this._tokenInfoManager === undefined) {
685
- this._tokenInfoManager = new TokenInfoManager(
686
- this._chainId,
687
- this._web3Lib
688
- );
689
- }
650
+ public async getExchangeTokenInfo(exchangeToken: string): Promise<{
651
+ name: string;
652
+ decimals: number;
653
+ symbol: string;
654
+ }> {
655
+ const args = {
656
+ web3Lib: this._web3Lib,
657
+ contractAddress: exchangeToken
658
+ };
659
+ const [decimals, name, symbol] = await Promise.all([
660
+ erc20.handler.getDecimals(args),
661
+ erc20.handler.getName(args),
662
+ erc20.handler.getSymbol(args)
663
+ ]);
690
664
 
691
- return this._tokenInfoManager.getExchangeTokenInfo(exchangeToken);
665
+ return { decimals, name, symbol };
692
666
  }
693
667
 
694
668
  /**
@@ -1082,19 +1056,37 @@ export class CoreSDK {
1082
1056
  });
1083
1057
  }
1084
1058
 
1085
- public async signDisputeResolutionProposal(args: {
1086
- exchangeId: BigNumberish;
1087
- buyerPercent: BigNumberish;
1059
+ public async signMutualAgreement(args: {
1060
+ exchangeId: string;
1061
+ buyerPercent: string;
1088
1062
  }) {
1063
+ // Set the message Type, needed for signature
1064
+ const resolutionType = [
1065
+ { name: "exchangeId", type: "uint256" },
1066
+ { name: "buyerPercent", type: "uint256" }
1067
+ ];
1068
+
1069
+ const customSignatureType = {
1070
+ Resolution: resolutionType
1071
+ };
1072
+
1073
+ const message = {
1074
+ exchangeId: args.exchangeId,
1075
+ buyerPercent: args.buyerPercent
1076
+ };
1077
+
1089
1078
  if (this._chainId === undefined) {
1090
1079
  this._chainId = await this._web3Lib.getChainId();
1091
1080
  }
1092
1081
 
1093
- return disputes.handler.signResolutionProposal({
1094
- ...args,
1082
+ return metaTx.handler.prepareDataSignatureParameters({
1095
1083
  web3Lib: this._web3Lib,
1096
- contractAddress: this._protocolDiamond,
1097
- chainId: this._chainId
1084
+ metaTxHandlerAddress: this._protocolDiamond,
1085
+ chainId: this._chainId,
1086
+ customTransactionType: customSignatureType,
1087
+ primaryType: "Resolution",
1088
+ message,
1089
+ nonce: "" // not used in this case
1098
1090
  });
1099
1091
  }
1100
1092
 
@@ -1158,22 +1150,4 @@ export class CoreSDK {
1158
1150
  ...args
1159
1151
  });
1160
1152
  }
1161
-
1162
- public async renderContractualAgreementForOffer(
1163
- offerId: BigNumberish
1164
- ): Promise<string> {
1165
- const offerData = await offers.subgraph.getOfferById(
1166
- this._subgraphUrl,
1167
- offerId
1168
- );
1169
- return offers.renderContractualAgreementForOffer(offerData);
1170
- }
1171
-
1172
- public async renderContractualAgreement(
1173
- template: string,
1174
- offerData: offers.CreateOfferArgs
1175
- ): Promise<string> {
1176
- const tokenInfo = await this.getExchangeTokenInfo(offerData.exchangeToken);
1177
- return offers.renderContractualAgreement(template, offerData, tokenInfo);
1178
- }
1179
1153
  }
@@ -1,7 +1,6 @@
1
1
  import { Web3LibAdapter, TransactionResponse } from "@bosonprotocol/common";
2
2
  import { BigNumberish } from "@ethersproject/bignumber";
3
3
  import { BytesLike } from "@ethersproject/bytes";
4
-
5
4
  import {
6
5
  encodeRaiseDispute,
7
6
  encodeDecideDispute,
@@ -14,7 +13,6 @@ import {
14
13
  encodeResolveDispute,
15
14
  encodeRetractDispute
16
15
  } from "./interface";
17
- import { prepareDataSignatureParameters } from "../utils/signature";
18
16
 
19
17
  export async function raiseDispute(args: {
20
18
  exchangeId: BigNumberish;
@@ -132,32 +130,3 @@ export async function expireEscalatedDispute(args: {
132
130
  data: encodeExpireEscalatedDispute(args.exchangeId)
133
131
  });
134
132
  }
135
-
136
- export async function signResolutionProposal(args: {
137
- exchangeId: BigNumberish;
138
- buyerPercent: BigNumberish;
139
- contractAddress: string;
140
- web3Lib: Web3LibAdapter;
141
- chainId: number;
142
- }) {
143
- const customSignatureType = {
144
- Resolution: [
145
- { name: "exchangeId", type: "uint256" },
146
- { name: "buyerPercent", type: "uint256" }
147
- ]
148
- };
149
-
150
- const message = {
151
- exchangeId: args.exchangeId,
152
- buyerPercent: args.buyerPercent
153
- };
154
-
155
- return prepareDataSignatureParameters({
156
- message,
157
- customSignatureType,
158
- web3Lib: args.web3Lib,
159
- verifyingContractAddress: args.contractAddress,
160
- chainId: args.chainId,
161
- primaryType: "Resolution"
162
- });
163
- }
@@ -48,7 +48,6 @@ export async function commitToOffer(
48
48
  }
49
49
 
50
50
  return args.web3Lib.sendTransaction({
51
- from: args.buyer,
52
51
  to: args.contractAddress,
53
52
  data: encodeCommitToOffer(args.buyer, args.offerId),
54
53
  value: offer.exchangeToken.address === AddressZero ? offer.price : "0"
@@ -1,8 +1,9 @@
1
1
  import { Web3LibAdapter } from "@bosonprotocol/common";
2
- import { BigNumberish } from "@ethersproject/bignumber";
2
+ import { isHexString, hexZeroPad } from "@ethersproject/bytes";
3
+ import { BigNumber, BigNumberish } from "@ethersproject/bignumber";
3
4
 
4
5
  import { bosonExchangeHandlerIface } from "../exchanges/interface";
5
- import { prepareDataSignatureParameters } from "../utils/signature";
6
+ import { bosonFundsHandlerIface } from "../funds/interface";
6
7
 
7
8
  type BaseMetaTxArgs = {
8
9
  web3Lib: Web3LibAdapter;
@@ -25,7 +26,7 @@ export async function signExecuteMetaTx(
25
26
  { name: "functionSignature", type: "bytes" }
26
27
  ];
27
28
 
28
- const customSignatureType = {
29
+ const customTransactionType = {
29
30
  MetaTransaction: metaTransactionType
30
31
  };
31
32
 
@@ -41,8 +42,7 @@ export async function signExecuteMetaTx(
41
42
 
42
43
  return prepareDataSignatureParameters({
43
44
  ...args,
44
- verifyingContractAddress: args.metaTxHandlerAddress,
45
- customSignatureType,
45
+ customTransactionType,
46
46
  primaryType: "MetaTransaction",
47
47
  message
48
48
  });
@@ -68,7 +68,7 @@ export async function signExecuteMetaTxCommitToOffer(
68
68
  { name: "offerDetails", type: "MetaTxOfferDetails" }
69
69
  ];
70
70
 
71
- const customSignatureType = {
71
+ const customTransactionType = {
72
72
  MetaTxCommitToOffer: metaTransactionType,
73
73
  MetaTxOfferDetails: offerType
74
74
  };
@@ -88,8 +88,7 @@ export async function signExecuteMetaTxCommitToOffer(
88
88
 
89
89
  const signatureParams = await prepareDataSignatureParameters({
90
90
  ...args,
91
- verifyingContractAddress: args.metaTxHandlerAddress,
92
- customSignatureType,
91
+ customTransactionType,
93
92
  primaryType: "MetaTxCommitToOffer",
94
93
  message
95
94
  });
@@ -163,7 +162,7 @@ export async function signExecuteMetaTxRaiseDispute(
163
162
  { name: "disputeDetails", type: "MetaTxDisputeDetails" }
164
163
  ];
165
164
 
166
- const customSignatureType = {
165
+ const customTransactionType = {
167
166
  MetaTxDispute: metaTransactionType,
168
167
  MetaTxDisputeDetails: disputeType
169
168
  };
@@ -182,8 +181,7 @@ export async function signExecuteMetaTxRaiseDispute(
182
181
  // TODO: encode function data when adding dispute resolver module
183
182
  return prepareDataSignatureParameters({
184
183
  ...args,
185
- verifyingContractAddress: args.metaTxHandlerAddress,
186
- customSignatureType,
184
+ customTransactionType,
187
185
  primaryType: "MetaTxDispute",
188
186
  message
189
187
  });
@@ -216,7 +214,7 @@ export async function signExecuteMetaTxResolveDispute(
216
214
  { name: "disputeResolutionDetails", type: "MetaTxDisputeResolutionDetails" }
217
215
  ];
218
216
 
219
- const customSignatureType = {
217
+ const customTransactionType = {
220
218
  MetaTxDisputeResolution: metaTransactionType,
221
219
  MetaTxDisputeResolutionDetails: disputeResolutionType
222
220
  };
@@ -238,8 +236,7 @@ export async function signExecuteMetaTxResolveDispute(
238
236
  // TODO: encode function data when adding dispute resolver module
239
237
  return prepareDataSignatureParameters({
240
238
  ...args,
241
- verifyingContractAddress: args.metaTxHandlerAddress,
242
- customSignatureType,
239
+ customTransactionType,
243
240
  primaryType: "MetaTxDisputeResolution",
244
241
  message
245
242
  });
@@ -268,7 +265,7 @@ export async function signExecuteMetaTxWithdrawFunds(
268
265
  { name: "fundDetails", type: "MetaTxFundDetails" }
269
266
  ];
270
267
 
271
- const customSignatureType = {
268
+ const customTransactionType = {
272
269
  MetaTxFund: metaTransactionType,
273
270
  MetaTxFundDetails: fundType
274
271
  };
@@ -287,8 +284,7 @@ export async function signExecuteMetaTxWithdrawFunds(
287
284
 
288
285
  const signatureParams = await prepareDataSignatureParameters({
289
286
  ...args,
290
- verifyingContractAddress: args.metaTxHandlerAddress,
291
- customSignatureType,
287
+ customTransactionType,
292
288
  primaryType: "MetaTxFund",
293
289
  message
294
290
  });
@@ -326,7 +322,7 @@ function makeExchangeMetaTxSigner(
326
322
  { name: "exchangeDetails", type: "MetaTxExchangeDetails" }
327
323
  ];
328
324
 
329
- const customSignatureType = {
325
+ const customTransactionType = {
330
326
  MetaTxExchange: metaTransactionType,
331
327
  MetaTxExchangeDetails: exchangeType
332
328
  };
@@ -345,8 +341,7 @@ function makeExchangeMetaTxSigner(
345
341
 
346
342
  const signatureParams = await prepareDataSignatureParameters({
347
343
  ...args,
348
- verifyingContractAddress: args.metaTxHandlerAddress,
349
- customSignatureType,
344
+ customTransactionType,
350
345
  primaryType: "MetaTxExchange",
351
346
  message
352
347
  });
@@ -362,3 +357,62 @@ function makeExchangeMetaTxSigner(
362
357
  };
363
358
  };
364
359
  }
360
+
361
+ export async function prepareDataSignatureParameters(
362
+ args: BaseMetaTxArgs & {
363
+ customTransactionType?: Record<string, unknown>;
364
+ primaryType: string;
365
+ message: Record<string, unknown>;
366
+ }
367
+ ) {
368
+ const domainType = [
369
+ { name: "name", type: "string" },
370
+ { name: "version", type: "string" },
371
+ { name: "verifyingContract", type: "address" },
372
+ { name: "salt", type: "bytes32" }
373
+ ];
374
+
375
+ const domainData = {
376
+ name: "BosonProtocolDiamond",
377
+ version: "V1",
378
+ verifyingContract: args.metaTxHandlerAddress,
379
+ salt: hexZeroPad(BigNumber.from(args.chainId).toHexString(), 32)
380
+ };
381
+
382
+ const metaTxTypes = {
383
+ EIP712Domain: domainType,
384
+ ...args.customTransactionType
385
+ };
386
+
387
+ const dataToSign = JSON.stringify({
388
+ types: metaTxTypes,
389
+ domain: domainData,
390
+ primaryType: args.primaryType,
391
+ message: args.message
392
+ });
393
+
394
+ const signer = await args.web3Lib.getSignerAddress();
395
+ const signature = await args.web3Lib.send("eth_signTypedData_v4", [
396
+ signer,
397
+ dataToSign
398
+ ]);
399
+
400
+ return getSignatureParameters(signature);
401
+ }
402
+
403
+ export function getSignatureParameters(signature: string) {
404
+ if (!isHexString(signature)) {
405
+ throw new Error(`Value "${signature}" is not a valid hex string`);
406
+ }
407
+
408
+ signature = signature.substring(2);
409
+ const r = "0x" + signature.substring(0, 64);
410
+ const s = "0x" + signature.substring(64, 128);
411
+ const v = parseInt(signature.substring(128, 130), 16);
412
+
413
+ return {
414
+ r,
415
+ s,
416
+ v
417
+ };
418
+ }
@@ -107,9 +107,6 @@ fragment BaseProductV1MetadataEntityFields on ProductV1MetadataEntity {
107
107
  productV1Seller {
108
108
  ...BaseProductV1SellerFields
109
109
  }
110
- exchangePolicy {
111
- ...BaseProductV1ExchangePolicyFields
112
- }
113
110
  }
114
111
 
115
112
  fragment BaseProductV1ProductFields on ProductV1Product {
@@ -1,4 +1,4 @@
1
- import { OfferFieldsFragment } from "../subgraph";
1
+ import { subgraph } from "..";
2
2
 
3
3
  export enum OfferState {
4
4
  VOIDED = "VOIDED",
@@ -7,7 +7,7 @@ export enum OfferState {
7
7
  VALID = "VALID"
8
8
  }
9
9
 
10
- export function getOfferStatus(offer: OfferFieldsFragment) {
10
+ export function getOfferStatus(offer: subgraph.OfferFieldsFragment) {
11
11
  const toTimeStamp = (numberString: string) => Number(numberString) * 1000;
12
12
  const timeNow = Date.now();
13
13
 
@@ -6,10 +6,7 @@ export * as iface from "./interface";
6
6
  export * as storage from "./storage";
7
7
  export * from "./types";
8
8
  export * from "./getOfferStatus";
9
- export * from "./renderContractualAgreement";
10
9
 
11
- export const validation: {
12
- createOfferArgsSchema: typeof utils.validation.createOfferArgsSchema;
13
- } = {
10
+ export const validation = {
14
11
  createOfferArgsSchema: utils.validation.createOfferArgsSchema
15
12
  };
@@ -25,15 +25,13 @@ export function createOfferArgsToStructs(
25
25
  Partial<OfferStruct>,
26
26
  Partial<OfferDatesStruct>,
27
27
  Partial<OfferDurationsStruct>,
28
- BigNumberish,
29
28
  BigNumberish
30
29
  ] {
31
30
  return [
32
31
  argsToOfferStruct(args),
33
32
  argsToOfferDatesStruct(args),
34
33
  argsToOfferDurationsStruct(args),
35
- args.disputeResolverId,
36
- args.agentId
34
+ args.disputeResolverId
37
35
  ];
38
36
  }
39
37
 
@@ -54,8 +52,7 @@ export function argsToOfferDatesStruct(
54
52
  const {
55
53
  validFromDateInMS,
56
54
  validUntilDateInMS,
57
- voucherRedeemableFromDateInMS,
58
- voucherRedeemableUntilDateInMS
55
+ voucherRedeemableFromDateInMS
59
56
  } = args;
60
57
 
61
58
  return {
@@ -64,9 +61,10 @@ export function argsToOfferDatesStruct(
64
61
  voucherRedeemableFrom: utils.timestamp.msToSec(
65
62
  voucherRedeemableFromDateInMS
66
63
  ),
67
- voucherRedeemableUntil: utils.timestamp.msToSec(
68
- voucherRedeemableUntilDateInMS
69
- )
64
+ voucherRedeemableUntil:
65
+ // NOTE: Field `voucherRedeemableUntil` not yet fully supported in protocol.
66
+ // Therefore converting to `voucherValid` field.
67
+ "0"
70
68
  };
71
69
  }
72
70
 
@@ -75,13 +73,22 @@ export function argsToOfferDurationsStruct(
75
73
  ): Partial<OfferDurationsStruct> {
76
74
  const {
77
75
  fulfillmentPeriodDurationInMS,
76
+ voucherRedeemableUntilDateInMS,
77
+ voucherRedeemableFromDateInMS,
78
78
  voucherValidDurationInMS = 0,
79
79
  resolutionPeriodDurationInMS
80
80
  } = args;
81
81
 
82
82
  return {
83
83
  fulfillmentPeriod: utils.timestamp.msToSec(fulfillmentPeriodDurationInMS),
84
- voucherValid: utils.timestamp.msToSec(voucherValidDurationInMS),
84
+ voucherValid: utils.timestamp.msToSec(
85
+ voucherValidDurationInMS ||
86
+ // NOTE: Field `voucherRedeemableUntil` not yet fully supported in protocol.
87
+ // Therefore converting to `voucherValid` field.
88
+ BigNumber.from(voucherRedeemableUntilDateInMS).sub(
89
+ BigNumber.from(voucherRedeemableFromDateInMS)
90
+ )
91
+ ),
85
92
  resolutionPeriod: utils.timestamp.msToSec(resolutionPeriodDurationInMS)
86
93
  };
87
94
  }
@@ -55,8 +55,6 @@ fragment BaseOfferFields on Offer {
55
55
  price
56
56
  sellerDeposit
57
57
  protocolFee
58
- agentFee
59
- agentId
60
58
  buyerCancelPenalty
61
59
  quantityAvailable
62
60
  quantityInitial
@@ -89,34 +87,5 @@ fragment BaseOfferFields on Offer {
89
87
  externalUrl
90
88
  schemaUrl
91
89
  type
92
- ... on ProductV1MetadataEntity {
93
- image
94
- attributes {
95
- traitType
96
- value
97
- displayType
98
- }
99
- createdAt
100
- voided
101
- validFromDate
102
- validUntilDate
103
- quantityAvailable
104
- uuid
105
- product {
106
- ...BaseProductV1ProductFields
107
- }
108
- variations {
109
- ...BaseProductV1VariationFields
110
- }
111
- productV1Seller {
112
- ...BaseProductV1SellerFields
113
- }
114
- exchangePolicy {
115
- ...BaseProductV1ExchangePolicyFields
116
- }
117
- shipping {
118
- ...BaseProductV1ShippingOptionFields
119
- }
120
- }
121
90
  }
122
91
  }
@@ -21,6 +21,7 @@ export async function getOfferById(
21
21
  offerId: offerId.toString(),
22
22
  ...queryVars
23
23
  });
24
+
24
25
  return offer;
25
26
  }
26
27
 
@@ -14,19 +14,12 @@ export function encodeCreateSellerAndOffer(
14
14
  seller: CreateSellerArgs,
15
15
  offer: CreateOfferArgs
16
16
  ) {
17
- const sellerArgs = createSellerArgsToStruct(seller);
18
- const offerArgs = createOfferArgsToStructs(offer);
19
17
  return bosonOrchestrationHandlerIface.encodeFunctionData(
20
18
  "createSellerAndOffer",
21
19
  [
22
- sellerArgs.sellerStruct,
20
+ createSellerArgsToStruct(seller),
23
21
  seller.contractUri,
24
- offerArgs[0], // offer
25
- offerArgs[1], // offerDates
26
- offerArgs[2], // offerDurations
27
- offerArgs[3], // disputeResolverId
28
- sellerArgs.authTokenStruct,
29
- offerArgs[4] // agentId
22
+ ...createOfferArgsToStructs(offer)
30
23
  ]
31
24
  );
32
25
  }