@bosonprotocol/core-sdk 1.23.0-alpha.17 → 1.23.0-alpha.18

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 (118) hide show
  1. package/dist/cjs/accounts/mixin.d.ts +194 -0
  2. package/dist/cjs/accounts/mixin.d.ts.map +1 -0
  3. package/dist/cjs/accounts/mixin.js +426 -0
  4. package/dist/cjs/accounts/mixin.js.map +1 -0
  5. package/dist/cjs/core-sdk.d.ts +16 -818
  6. package/dist/cjs/core-sdk.d.ts.map +1 -1
  7. package/dist/cjs/core-sdk.js +26 -1579
  8. package/dist/cjs/core-sdk.js.map +1 -1
  9. package/dist/cjs/disputes/mixin.d.ts +113 -0
  10. package/dist/cjs/disputes/mixin.d.ts.map +1 -0
  11. package/dist/cjs/disputes/mixin.js +203 -0
  12. package/dist/cjs/disputes/mixin.js.map +1 -0
  13. package/dist/cjs/event-logs/mixin.d.ts +11 -0
  14. package/dist/cjs/event-logs/mixin.d.ts.map +1 -0
  15. package/dist/cjs/event-logs/mixin.js +28 -0
  16. package/dist/cjs/event-logs/mixin.js.map +1 -0
  17. package/dist/cjs/exchanges/mixin.d.ts +77 -0
  18. package/dist/cjs/exchanges/mixin.d.ts.map +1 -0
  19. package/dist/cjs/exchanges/mixin.js +172 -0
  20. package/dist/cjs/exchanges/mixin.js.map +1 -0
  21. package/dist/cjs/funds/mixin.d.ts +42 -0
  22. package/dist/cjs/funds/mixin.d.ts.map +1 -0
  23. package/dist/cjs/funds/mixin.js +95 -0
  24. package/dist/cjs/funds/mixin.js.map +1 -0
  25. package/dist/cjs/groups/mixin.d.ts +14 -0
  26. package/dist/cjs/groups/mixin.d.ts.map +1 -0
  27. package/dist/cjs/groups/mixin.js +33 -0
  28. package/dist/cjs/groups/mixin.js.map +1 -0
  29. package/dist/cjs/meta-tx/mixin.d.ts +176 -0
  30. package/dist/cjs/meta-tx/mixin.d.ts.map +1 -0
  31. package/dist/cjs/meta-tx/mixin.js +296 -0
  32. package/dist/cjs/meta-tx/mixin.js.map +1 -0
  33. package/dist/cjs/metadata/mixin.d.ts +40 -0
  34. package/dist/cjs/metadata/mixin.d.ts.map +1 -0
  35. package/dist/cjs/metadata/mixin.js +102 -0
  36. package/dist/cjs/metadata/mixin.js.map +1 -0
  37. package/dist/cjs/mixins/base-core-sdk.d.ts +41 -0
  38. package/dist/cjs/mixins/base-core-sdk.d.ts.map +1 -0
  39. package/dist/cjs/mixins/base-core-sdk.js +51 -0
  40. package/dist/cjs/mixins/base-core-sdk.js.map +1 -0
  41. package/dist/cjs/native-meta-tx/mixin.d.ts +35 -0
  42. package/dist/cjs/native-meta-tx/mixin.d.ts.map +1 -0
  43. package/dist/cjs/native-meta-tx/mixin.js +68 -0
  44. package/dist/cjs/native-meta-tx/mixin.js.map +1 -0
  45. package/dist/cjs/offers/mixin.d.ts +132 -0
  46. package/dist/cjs/offers/mixin.d.ts.map +1 -0
  47. package/dist/cjs/offers/mixin.js +292 -0
  48. package/dist/cjs/offers/mixin.js.map +1 -0
  49. package/dist/cjs/orchestration/mixin.d.ts +28 -0
  50. package/dist/cjs/orchestration/mixin.d.ts.map +1 -0
  51. package/dist/cjs/orchestration/mixin.js +59 -0
  52. package/dist/cjs/orchestration/mixin.js.map +1 -0
  53. package/dist/esm/accounts/mixin.d.ts +194 -0
  54. package/dist/esm/accounts/mixin.d.ts.map +1 -0
  55. package/dist/esm/accounts/mixin.js +342 -0
  56. package/dist/esm/accounts/mixin.js.map +1 -0
  57. package/dist/esm/core-sdk.d.ts +16 -818
  58. package/dist/esm/core-sdk.d.ts.map +1 -1
  59. package/dist/esm/core-sdk.js +27 -1483
  60. package/dist/esm/core-sdk.js.map +1 -1
  61. package/dist/esm/disputes/mixin.d.ts +113 -0
  62. package/dist/esm/disputes/mixin.d.ts.map +1 -0
  63. package/dist/esm/disputes/mixin.js +173 -0
  64. package/dist/esm/disputes/mixin.js.map +1 -0
  65. package/dist/esm/event-logs/mixin.d.ts +11 -0
  66. package/dist/esm/event-logs/mixin.d.ts.map +1 -0
  67. package/dist/esm/event-logs/mixin.js +13 -0
  68. package/dist/esm/event-logs/mixin.js.map +1 -0
  69. package/dist/esm/exchanges/mixin.d.ts +77 -0
  70. package/dist/esm/exchanges/mixin.d.ts.map +1 -0
  71. package/dist/esm/exchanges/mixin.js +141 -0
  72. package/dist/esm/exchanges/mixin.js.map +1 -0
  73. package/dist/esm/funds/mixin.d.ts +42 -0
  74. package/dist/esm/funds/mixin.d.ts.map +1 -0
  75. package/dist/esm/funds/mixin.js +72 -0
  76. package/dist/esm/funds/mixin.js.map +1 -0
  77. package/dist/esm/groups/mixin.d.ts +14 -0
  78. package/dist/esm/groups/mixin.d.ts.map +1 -0
  79. package/dist/esm/groups/mixin.js +18 -0
  80. package/dist/esm/groups/mixin.js.map +1 -0
  81. package/dist/esm/meta-tx/mixin.d.ts +176 -0
  82. package/dist/esm/meta-tx/mixin.d.ts.map +1 -0
  83. package/dist/esm/meta-tx/mixin.js +351 -0
  84. package/dist/esm/meta-tx/mixin.js.map +1 -0
  85. package/dist/esm/metadata/mixin.d.ts +40 -0
  86. package/dist/esm/metadata/mixin.d.ts.map +1 -0
  87. package/dist/esm/metadata/mixin.js +54 -0
  88. package/dist/esm/metadata/mixin.js.map +1 -0
  89. package/dist/esm/mixins/base-core-sdk.d.ts +41 -0
  90. package/dist/esm/mixins/base-core-sdk.d.ts.map +1 -0
  91. package/dist/esm/mixins/base-core-sdk.js +54 -0
  92. package/dist/esm/mixins/base-core-sdk.js.map +1 -0
  93. package/dist/esm/native-meta-tx/mixin.d.ts +35 -0
  94. package/dist/esm/native-meta-tx/mixin.d.ts.map +1 -0
  95. package/dist/esm/native-meta-tx/mixin.js +51 -0
  96. package/dist/esm/native-meta-tx/mixin.js.map +1 -0
  97. package/dist/esm/offers/mixin.d.ts +132 -0
  98. package/dist/esm/offers/mixin.d.ts.map +1 -0
  99. package/dist/esm/offers/mixin.js +232 -0
  100. package/dist/esm/offers/mixin.js.map +1 -0
  101. package/dist/esm/orchestration/mixin.d.ts +28 -0
  102. package/dist/esm/orchestration/mixin.d.ts.map +1 -0
  103. package/dist/esm/orchestration/mixin.js +42 -0
  104. package/dist/esm/orchestration/mixin.js.map +1 -0
  105. package/package.json +3 -3
  106. package/src/accounts/mixin.ts +484 -0
  107. package/src/core-sdk.ts +42 -2103
  108. package/src/disputes/mixin.ts +240 -0
  109. package/src/event-logs/mixin.ts +16 -0
  110. package/src/exchanges/mixin.ts +184 -0
  111. package/src/funds/mixin.ts +99 -0
  112. package/src/groups/mixin.ts +24 -0
  113. package/src/meta-tx/mixin.ts +515 -0
  114. package/src/metadata/mixin.ts +85 -0
  115. package/src/mixins/base-core-sdk.ts +96 -0
  116. package/src/native-meta-tx/mixin.ts +77 -0
  117. package/src/offers/mixin.ts +322 -0
  118. package/src/orchestration/mixin.ts +57 -0
@@ -0,0 +1,77 @@
1
+ import { MetaTxConfig, TransactionResponse } from "@bosonprotocol/common";
2
+ import { BigNumberish } from "@ethersproject/bignumber";
3
+ import { BytesLike } from "@ethersproject/bytes";
4
+ import { handler } from ".";
5
+ import { BaseCoreSDK } from "./../mixins/base-core-sdk";
6
+
7
+ export class NativeMetaTxMixin extends BaseCoreSDK {
8
+ /**
9
+ * Encodes and signs a native "token.approve()" meta transaction that can be relayed.
10
+ * @param exchangeToken - The address of the token contract.
11
+ * @param value - The value to be approved.
12
+ * @param overrides - Optionally specify a spender address (default is the protocol contract address).
13
+ * @returns Signature.
14
+ */
15
+ public async signNativeMetaTxApproveExchangeToken(
16
+ exchangeToken: string,
17
+ value: BigNumberish,
18
+ overrides: Partial<{
19
+ spender: string;
20
+ }> = {}
21
+ ) {
22
+ const user = await this._web3Lib.getSignerAddress();
23
+ return handler.signNativeMetaTxApproveExchangeToken({
24
+ web3Lib: this._web3Lib,
25
+ chainId: this._chainId,
26
+ user,
27
+ exchangeToken,
28
+ spender: overrides.spender || this._protocolDiamond,
29
+ value
30
+ });
31
+ }
32
+
33
+ /**
34
+ * Relay a native meta transaction,
35
+ * @param metaTxParams - Required params for meta transaction.
36
+ * @param overrides - Optional overrides.
37
+ * @returns Transaction response.
38
+ */
39
+ public async relayNativeMetaTransaction(
40
+ contractAddress: string,
41
+ metaTxParams: {
42
+ functionSignature: BytesLike;
43
+ sigR: BytesLike;
44
+ sigS: BytesLike;
45
+ sigV: BigNumberish;
46
+ },
47
+ overrides: Partial<{
48
+ userAddress: string;
49
+ metaTxConfig: Partial<Omit<MetaTxConfig, "apiIds"> & { apiId: string }>;
50
+ metaTransactionMethod: string;
51
+ }> = {}
52
+ ): Promise<TransactionResponse> {
53
+ const { metaTxApiId, metaTxApiKey, metaTxRelayerUrl } =
54
+ this.assertAndGetMetaTxConfig({ ...overrides, contractAddress });
55
+
56
+ return handler.relayNativeMetaTransaction({
57
+ web3LibAdapter: this._web3Lib,
58
+ contractAddress,
59
+ chainId: this._chainId,
60
+ metaTx: {
61
+ config: {
62
+ relayerUrl: metaTxRelayerUrl,
63
+ apiId: metaTxApiId,
64
+ apiKey: metaTxApiKey
65
+ },
66
+ params: {
67
+ userAddress:
68
+ overrides.userAddress || (await this._web3Lib.getSignerAddress()),
69
+ functionSignature: metaTxParams.functionSignature,
70
+ sigR: metaTxParams.sigR,
71
+ sigS: metaTxParams.sigS,
72
+ sigV: metaTxParams.sigV
73
+ }
74
+ }
75
+ });
76
+ }
77
+ }
@@ -0,0 +1,322 @@
1
+ import { BaseCoreSDK } from "./../mixins/base-core-sdk";
2
+ import * as erc20 from "../erc20";
3
+ import * as subgraph from "../subgraph";
4
+ import * as offers from ".";
5
+ import * as accounts from "../accounts";
6
+ import * as orchestration from "../orchestration";
7
+ import * as groups from "../groups";
8
+ import { TransactionResponse, Log } from "@bosonprotocol/common";
9
+ import { BigNumberish } from "@ethersproject/bignumber";
10
+ import { getValueFromLogs, getValuesFromLogs } from "../utils/logs";
11
+ import { ITokenInfo, TokenInfoManager } from "../utils/tokenInfoManager";
12
+
13
+ export class OfferMixin extends BaseCoreSDK {
14
+ /* -------------------------------------------------------------------------- */
15
+ /* Offer related methods */
16
+ /* -------------------------------------------------------------------------- */
17
+
18
+ /**
19
+ * Creates offer by calling the `OfferHandlerFacet` contract.
20
+ * This transaction only succeeds if there is an existing seller account for connected signer.
21
+ * @param offerToCreate - Offer arguments.
22
+ * @param overrides - Optional overrides.
23
+ * @returns Transaction response.
24
+ */
25
+ public async createOffer(
26
+ offerToCreate: offers.CreateOfferArgs,
27
+ overrides: Partial<{
28
+ contractAddress: string;
29
+ }> = {}
30
+ ): Promise<TransactionResponse> {
31
+ return offers.handler.createOffer({
32
+ offerToCreate,
33
+ web3Lib: this._web3Lib,
34
+ theGraphStorage: this._theGraphStorage,
35
+ metadataStorage: this._metadataStorage,
36
+ contractAddress: overrides.contractAddress || this._protocolDiamond
37
+ });
38
+ }
39
+
40
+ /**
41
+ * Creates a batch of offers by calling the `OfferHandlerFacet` contract.
42
+ * This transaction only succeeds if there is an existing seller account for connected signer.
43
+ * @param offersToCreate - Offer arguments.
44
+ * @param overrides - Optional overrides.
45
+ * @returns Transaction response.
46
+ */
47
+ public async createOfferBatch(
48
+ offersToCreate: offers.CreateOfferArgs[],
49
+ overrides: Partial<{
50
+ contractAddress: string;
51
+ }> = {}
52
+ ): Promise<TransactionResponse> {
53
+ return offers.handler.createOfferBatch({
54
+ offersToCreate,
55
+ web3Lib: this._web3Lib,
56
+ theGraphStorage: this._theGraphStorage,
57
+ metadataStorage: this._metadataStorage,
58
+ contractAddress: overrides.contractAddress || this._protocolDiamond
59
+ });
60
+ }
61
+
62
+ /**
63
+ * Utility method to retrieve the created `offerId` from logs after calling `createOffer`
64
+ * or `createOfferAndSeller`.
65
+ * @param logs - Logs to search in.
66
+ * @returns Created offer id.
67
+ */
68
+ public getCreatedOfferIdFromLogs(logs: Log[]): string | null {
69
+ const offerId = getValueFromLogs({
70
+ iface: offers.iface.bosonOfferHandlerIface,
71
+ logs,
72
+ eventArgsKey: "offerId",
73
+ eventName: "OfferCreated"
74
+ });
75
+
76
+ return (
77
+ offerId ||
78
+ getValueFromLogs({
79
+ iface: orchestration.iface.bosonOrchestrationHandlerIface,
80
+ logs,
81
+ eventArgsKey: "offerId",
82
+ eventName: "OfferCreated"
83
+ })
84
+ );
85
+ }
86
+
87
+ /**
88
+ * Utility method to retrieve the created `offerIds` from logs after calling `createOfferBatch`
89
+ * @param logs - Logs to search in.
90
+ * @returns Array of created offerIds.
91
+ */
92
+ public getCreatedOfferIdsFromLogs(logs: Log[]): string[] {
93
+ return getValuesFromLogs({
94
+ iface: offers.iface.bosonOfferHandlerIface,
95
+ logs,
96
+ eventArgsKey: "offerId",
97
+ eventName: "OfferCreated"
98
+ });
99
+ }
100
+
101
+ /**
102
+ * Utility method to retrieve the created `groupIds` from logs after calling `createGroup`
103
+ * @param logs - Logs to search in.
104
+ * @returns Array of group Ids.
105
+ */
106
+ public getCreatedGroupIdsFromLogs(logs: Log[]): string[] {
107
+ return getValuesFromLogs({
108
+ iface: groups.iface.bosonGroupHandlerIface,
109
+ logs,
110
+ eventArgsKey: "groupId",
111
+ eventName: "GroupCreated"
112
+ });
113
+ }
114
+
115
+ /**
116
+ * Utility method to retrieve the created `sellerId` from logs after calling `createSeller`
117
+ * or `createOfferAndSeller`.
118
+ * @param logs - Logs to search in.
119
+ * @returns Created offer id.
120
+ */
121
+ public getCreatedSellerIdFromLogs(logs: Log[]): string | null {
122
+ const sellerId = getValueFromLogs({
123
+ iface: accounts.iface.bosonAccountHandlerIface,
124
+ logs,
125
+ eventArgsKey: "sellerId",
126
+ eventName: "SellerCreated"
127
+ });
128
+
129
+ return (
130
+ sellerId ||
131
+ getValueFromLogs({
132
+ iface: orchestration.iface.bosonOrchestrationHandlerIface,
133
+ logs,
134
+ eventArgsKey: "sellerId",
135
+ eventName: "SellerCreated"
136
+ })
137
+ );
138
+ }
139
+
140
+ /**
141
+ * Voids an existing offer by calling the `OfferHandlerFacet` contract.
142
+ * This transaction only succeeds if the connected signer is the `operator`.
143
+ * @param offerId - ID of offer to void.
144
+ * @param overrides - Optional overrides.
145
+ * @returns Transaction response.
146
+ */
147
+ public async voidOffer(
148
+ offerId: BigNumberish,
149
+ overrides: Partial<{
150
+ contractAddress: string;
151
+ }> = {}
152
+ ): Promise<TransactionResponse> {
153
+ return offers.handler.voidOffer({
154
+ offerId,
155
+ web3Lib: this._web3Lib,
156
+ subgraphUrl: this._subgraphUrl,
157
+ contractAddress: overrides.contractAddress || this._protocolDiamond
158
+ });
159
+ }
160
+
161
+ /**
162
+ * Voids a batch of existing offers by calling the `OfferHandlerFacet` contract.
163
+ * This transaction only succeeds if the connected signer is the `operator` of all
164
+ * provided offers.
165
+ * @param offerIds - IDs of offers to void.
166
+ * @param overrides - Optional overrides.
167
+ * @returns Transaction response.
168
+ */
169
+ public async voidOfferBatch(
170
+ offerIds: BigNumberish[],
171
+ overrides: Partial<{
172
+ contractAddress: string;
173
+ }> = {}
174
+ ): Promise<TransactionResponse> {
175
+ return offers.handler.voidOfferBatch({
176
+ offerIds,
177
+ web3Lib: this._web3Lib,
178
+ subgraphUrl: this._subgraphUrl,
179
+ contractAddress: overrides.contractAddress || this._protocolDiamond
180
+ });
181
+ }
182
+
183
+ /**
184
+ * Returns offer from subgraph.
185
+ * @param offerId - ID of offer.
186
+ * @param queryVars - Optional query variables to skip, order or filter.
187
+ * @returns Offer entity from subgraph.
188
+ */
189
+ public async getOfferById(
190
+ offerId: BigNumberish,
191
+ queryVars?: offers.subgraph.SingleOfferQueryVariables
192
+ ): Promise<subgraph.OfferFieldsFragment> {
193
+ return offers.subgraph.getOfferById(this._subgraphUrl, offerId, queryVars);
194
+ }
195
+
196
+ /**
197
+ * Returns offers from subgraph.
198
+ * @param queryVars - Optional query variables to skip, order or filter.
199
+ * @returns Offer entities from subgraph.
200
+ */
201
+ public async getOffers(
202
+ queryVars?: subgraph.GetOffersQueryQueryVariables
203
+ ): Promise<subgraph.OfferFieldsFragment[]> {
204
+ return offers.subgraph.getOffers(this._subgraphUrl, queryVars);
205
+ }
206
+
207
+ /**
208
+ * Renders contractual agreement for given offer.
209
+ * @param offerId - Id of offer to render agreement for.
210
+ * @returns Contractual agreement as string.
211
+ */
212
+ public async renderContractualAgreementForOffer(
213
+ offerId: BigNumberish
214
+ ): Promise<string> {
215
+ const offerData = await offers.subgraph.getOfferById(
216
+ this._subgraphUrl,
217
+ offerId
218
+ );
219
+ return offers.renderContractualAgreementForOffer(offerData);
220
+ }
221
+
222
+ /**
223
+ * Renders contractual agreement for given offer.
224
+ * @param template - Mustache syntax based template.
225
+ * @param offerData - Offer data.
226
+ * @returns Contractual agreement as string.
227
+ */
228
+ public async renderContractualAgreement(
229
+ template: string,
230
+ offerData: offers.CreateOfferArgs,
231
+ offerMetadata: offers.AdditionalOfferMetadata
232
+ ): Promise<string> {
233
+ const tokenInfo = await this.getExchangeTokenInfo(offerData.exchangeToken);
234
+ return offers.renderContractualAgreement(
235
+ template,
236
+ offerData,
237
+ offerMetadata,
238
+ tokenInfo
239
+ );
240
+ }
241
+
242
+ /* -------------------------------------------------------------------------- */
243
+ /* ERC20 / Exchange Token related methods */
244
+ /* -------------------------------------------------------------------------- */
245
+
246
+ /**
247
+ * Returns the current allowance of the given token by calling the contract.
248
+ * @param exchangeToken - Address of exchange token.
249
+ * @param overrides - Optional overrides.
250
+ * @returns Allowance for given signer.
251
+ */
252
+ public async getExchangeTokenAllowance(
253
+ exchangeToken: string,
254
+ overrides: Partial<{
255
+ spender: string;
256
+ owner: string;
257
+ }> = {}
258
+ ): Promise<string> {
259
+ return erc20.handler.getAllowance({
260
+ web3Lib: this._web3Lib,
261
+ contractAddress: exchangeToken,
262
+ spender: overrides.spender || this._protocolDiamond,
263
+ owner: overrides.owner || (await this._web3Lib.getSignerAddress())
264
+ });
265
+ }
266
+
267
+ /**
268
+ * Returns `name`, `decimals` and `symbol` of the given token by calling the contract.
269
+ * @param exchangeToken - Address exchange token.
270
+ * @returns Decimals, name and symbol.
271
+ */
272
+ public async getExchangeTokenInfo(
273
+ exchangeToken: string
274
+ ): Promise<ITokenInfo> {
275
+ if (this._tokenInfoManager === undefined) {
276
+ this._tokenInfoManager = new TokenInfoManager(
277
+ this._chainId,
278
+ this._web3Lib,
279
+ this._subgraphUrl
280
+ );
281
+ }
282
+
283
+ return this._tokenInfoManager.getExchangeTokenInfo(exchangeToken);
284
+ }
285
+
286
+ /**
287
+ * Approves the given amount for the main protocol contract.
288
+ * @param exchangeToken - Address of token to approve.
289
+ * @param value - Amount of allowance.
290
+ * @param overrides - Optional overrides.
291
+ * @returns Transaction response.
292
+ */
293
+ public async approveExchangeToken(
294
+ exchangeToken: string,
295
+ value: BigNumberish,
296
+ overrides: Partial<{
297
+ spender: string;
298
+ }> = {}
299
+ ): Promise<TransactionResponse> {
300
+ return erc20.handler.approve({
301
+ contractAddress: exchangeToken,
302
+ spender: overrides.spender || this._protocolDiamond,
303
+ value,
304
+ web3Lib: this._web3Lib
305
+ });
306
+ }
307
+
308
+ public async getProtocolAllowance(
309
+ exchangeToken: string,
310
+ overrides: Partial<{
311
+ spender: string;
312
+ owner: string;
313
+ }> = {}
314
+ ): Promise<string> {
315
+ return erc20.handler.getAllowance({
316
+ contractAddress: exchangeToken,
317
+ owner: overrides.owner || (await this._web3Lib.getSignerAddress()),
318
+ spender: overrides.spender || this._protocolDiamond,
319
+ web3Lib: this._web3Lib
320
+ });
321
+ }
322
+ }
@@ -0,0 +1,57 @@
1
+ import { ConditionStruct, TransactionResponse } from "@bosonprotocol/common";
2
+ import { handler } from ".";
3
+ import { offers, accounts } from "..";
4
+ import { BaseCoreSDK } from "./../mixins/base-core-sdk";
5
+
6
+ export class OrchestrationMixin extends BaseCoreSDK {
7
+ /**
8
+ * Creates an offer with a specific conditions
9
+ * @param offerToCreate - Offer arguments.
10
+ * @param condition - contract condition applied to the offer
11
+ * @param overrides - Optional overrides.
12
+ * @returns Transaction response.
13
+ */
14
+ public async createOfferWithCondition(
15
+ offerToCreate: offers.CreateOfferArgs,
16
+ condition: ConditionStruct,
17
+ overrides: Partial<{
18
+ contractAddress: string;
19
+ }> = {}
20
+ ): Promise<TransactionResponse> {
21
+ return handler.createOfferWithCondition({
22
+ offerToCreate,
23
+ contractAddress: overrides.contractAddress || this._protocolDiamond,
24
+ web3Lib: this._web3Lib,
25
+ metadataStorage: this._metadataStorage,
26
+ theGraphStorage: this._theGraphStorage,
27
+ condition
28
+ });
29
+ }
30
+ /**
31
+ * Creates a seller account and offer with a specific conditions
32
+ * This transaction only succeeds if there is no existing seller account for the connected signer.
33
+ * @param sellerToCreate - Addresses to set in the seller account.
34
+ * @param offerToCreate - Offer arguments.
35
+ * @param condition - contract condition applied to the offer
36
+ * @param overrides - Optional overrides.
37
+ * @returns Transaction response.
38
+ */
39
+ public async createSellerAndOfferWithCondition(
40
+ sellerToCreate: accounts.CreateSellerArgs,
41
+ offerToCreate: offers.CreateOfferArgs,
42
+ condition: ConditionStruct,
43
+ overrides: Partial<{
44
+ contractAddress: string;
45
+ }> = {}
46
+ ): Promise<TransactionResponse> {
47
+ return handler.createSellerAndOfferWithCondition({
48
+ sellerToCreate,
49
+ offerToCreate,
50
+ contractAddress: overrides.contractAddress || this._protocolDiamond,
51
+ web3Lib: this._web3Lib,
52
+ metadataStorage: this._metadataStorage,
53
+ theGraphStorage: this._theGraphStorage,
54
+ condition
55
+ });
56
+ }
57
+ }