@bosonprotocol/core-sdk 1.12.0-alpha.0 → 1.12.0-alpha.10
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.
- package/dist/cjs/accounts/handler.d.ts +43 -1
- package/dist/cjs/accounts/handler.d.ts.map +1 -1
- package/dist/cjs/accounts/handler.js +79 -1
- package/dist/cjs/accounts/handler.js.map +1 -1
- package/dist/cjs/accounts/index.d.ts +2 -0
- package/dist/cjs/accounts/index.d.ts.map +1 -1
- package/dist/cjs/accounts/interface.d.ts +26 -3
- package/dist/cjs/accounts/interface.d.ts.map +1 -1
- package/dist/cjs/accounts/interface.js +72 -4
- package/dist/cjs/accounts/interface.js.map +1 -1
- package/dist/cjs/accounts/subgraph.d.ts +4 -1
- package/dist/cjs/accounts/subgraph.d.ts.map +1 -1
- package/dist/cjs/accounts/subgraph.js +17 -1
- package/dist/cjs/accounts/subgraph.js.map +1 -1
- package/dist/cjs/accounts/types.d.ts +28 -1
- package/dist/cjs/accounts/types.d.ts.map +1 -1
- package/dist/cjs/core-sdk.d.ts +130 -7
- package/dist/cjs/core-sdk.d.ts.map +1 -1
- package/dist/cjs/core-sdk.js +335 -13
- package/dist/cjs/core-sdk.js.map +1 -1
- package/dist/cjs/disputes/handler.d.ts +61 -0
- package/dist/cjs/disputes/handler.d.ts.map +1 -0
- package/dist/cjs/disputes/handler.js +104 -0
- package/dist/cjs/disputes/handler.js.map +1 -0
- package/dist/cjs/disputes/index.d.ts +4 -0
- package/dist/cjs/disputes/index.d.ts.map +1 -0
- package/dist/cjs/disputes/index.js +30 -0
- package/dist/cjs/disputes/index.js.map +1 -0
- package/dist/cjs/disputes/interface.d.ts +30 -0
- package/dist/cjs/disputes/interface.d.ts.map +1 -0
- package/dist/cjs/disputes/interface.js +74 -0
- package/dist/cjs/disputes/interface.js.map +1 -0
- package/dist/cjs/disputes/subgraph.d.ts +6 -0
- package/dist/cjs/disputes/subgraph.d.ts.map +1 -0
- package/dist/cjs/disputes/subgraph.js +30 -0
- package/dist/cjs/disputes/subgraph.js.map +1 -0
- package/dist/cjs/offers/index.d.ts +1 -2
- package/dist/cjs/offers/index.d.ts.map +1 -1
- package/dist/cjs/offers/index.js +1 -0
- package/dist/cjs/offers/index.js.map +1 -1
- package/dist/cjs/offers/interface.d.ts +1 -0
- package/dist/cjs/offers/interface.d.ts.map +1 -1
- package/dist/cjs/offers/interface.js +2 -1
- package/dist/cjs/offers/interface.js.map +1 -1
- package/dist/cjs/offers/renderContractualAgreement.d.ts +41 -0
- package/dist/cjs/offers/renderContractualAgreement.d.ts.map +1 -0
- package/dist/cjs/offers/renderContractualAgreement.js +156 -0
- package/dist/cjs/offers/renderContractualAgreement.js.map +1 -0
- package/dist/cjs/offers/subgraph.d.ts.map +1 -1
- package/dist/cjs/offers/subgraph.js.map +1 -1
- package/dist/cjs/orchestration/interface.d.ts.map +1 -1
- package/dist/cjs/orchestration/interface.js +9 -2
- package/dist/cjs/orchestration/interface.js.map +1 -1
- package/dist/cjs/subgraph.d.ts +5892 -322
- package/dist/cjs/subgraph.d.ts.map +1 -1
- package/dist/cjs/subgraph.js +431 -169
- package/dist/cjs/subgraph.js.map +1 -1
- package/dist/cjs/utils/graphql.d.ts +38 -0
- package/dist/cjs/utils/graphql.d.ts.map +1 -1
- package/dist/cjs/utils/tokenInfoManager.d.ts +16 -0
- package/dist/cjs/utils/tokenInfoManager.d.ts.map +1 -0
- package/dist/cjs/utils/tokenInfoManager.js +97 -0
- package/dist/cjs/utils/tokenInfoManager.js.map +1 -0
- package/dist/esm/accounts/handler.d.ts +43 -1
- package/dist/esm/accounts/handler.d.ts.map +1 -1
- package/dist/esm/accounts/handler.js +62 -1
- package/dist/esm/accounts/handler.js.map +1 -1
- package/dist/esm/accounts/index.d.ts +2 -0
- package/dist/esm/accounts/index.d.ts.map +1 -1
- package/dist/esm/accounts/interface.d.ts +26 -3
- package/dist/esm/accounts/interface.d.ts.map +1 -1
- package/dist/esm/accounts/interface.js +57 -4
- package/dist/esm/accounts/interface.js.map +1 -1
- package/dist/esm/accounts/subgraph.d.ts +4 -1
- package/dist/esm/accounts/subgraph.d.ts.map +1 -1
- package/dist/esm/accounts/subgraph.js +13 -0
- package/dist/esm/accounts/subgraph.js.map +1 -1
- package/dist/esm/accounts/types.d.ts +28 -1
- package/dist/esm/accounts/types.d.ts.map +1 -1
- package/dist/esm/core-sdk.d.ts +130 -7
- package/dist/esm/core-sdk.d.ts.map +1 -1
- package/dist/esm/core-sdk.js +289 -13
- package/dist/esm/core-sdk.js.map +1 -1
- package/dist/esm/disputes/handler.d.ts +61 -0
- package/dist/esm/disputes/handler.d.ts.map +1 -0
- package/dist/esm/disputes/handler.js +62 -0
- package/dist/esm/disputes/handler.js.map +1 -0
- package/dist/esm/disputes/index.d.ts +4 -0
- package/dist/esm/disputes/index.d.ts.map +1 -0
- package/dist/esm/disputes/index.js +4 -0
- package/dist/esm/disputes/index.js.map +1 -0
- package/dist/esm/disputes/interface.d.ts +30 -0
- package/dist/esm/disputes/interface.d.ts.map +1 -0
- package/dist/esm/disputes/interface.js +61 -0
- package/dist/esm/disputes/interface.js.map +1 -0
- package/dist/esm/disputes/subgraph.d.ts +6 -0
- package/dist/esm/disputes/subgraph.d.ts.map +1 -0
- package/dist/esm/disputes/subgraph.js +15 -0
- package/dist/esm/disputes/subgraph.js.map +1 -0
- package/dist/esm/offers/index.d.ts +1 -2
- package/dist/esm/offers/index.d.ts.map +1 -1
- package/dist/esm/offers/index.js +1 -0
- package/dist/esm/offers/index.js.map +1 -1
- package/dist/esm/offers/interface.d.ts +1 -0
- package/dist/esm/offers/interface.d.ts.map +1 -1
- package/dist/esm/offers/interface.js +2 -1
- package/dist/esm/offers/interface.js.map +1 -1
- package/dist/esm/offers/renderContractualAgreement.d.ts +41 -0
- package/dist/esm/offers/renderContractualAgreement.d.ts.map +1 -0
- package/dist/esm/offers/renderContractualAgreement.js +132 -0
- package/dist/esm/offers/renderContractualAgreement.js.map +1 -0
- package/dist/esm/offers/subgraph.d.ts.map +1 -1
- package/dist/esm/offers/subgraph.js.map +1 -1
- package/dist/esm/orchestration/interface.d.ts.map +1 -1
- package/dist/esm/orchestration/interface.js +9 -2
- package/dist/esm/orchestration/interface.js.map +1 -1
- package/dist/esm/subgraph.d.ts +5892 -322
- package/dist/esm/subgraph.d.ts.map +1 -1
- package/dist/esm/subgraph.js +429 -167
- package/dist/esm/subgraph.js.map +1 -1
- package/dist/esm/utils/graphql.d.ts +38 -0
- package/dist/esm/utils/graphql.d.ts.map +1 -1
- package/dist/esm/utils/tokenInfoManager.d.ts +16 -0
- package/dist/esm/utils/tokenInfoManager.d.ts.map +1 -0
- package/dist/esm/utils/tokenInfoManager.js +83 -0
- package/dist/esm/utils/tokenInfoManager.js.map +1 -0
- package/package.json +6 -4
- package/src/accounts/handler.ts +137 -4
- package/src/accounts/interface.ts +111 -8
- package/src/accounts/queries.graphql +87 -0
- package/src/accounts/subgraph.ts +34 -2
- package/src/accounts/types.ts +34 -1
- package/src/core-sdk.ts +420 -18
- package/src/disputes/handler.ts +132 -0
- package/src/disputes/index.ts +3 -0
- package/src/disputes/interface.ts +90 -0
- package/src/disputes/queries.graphql +56 -0
- package/src/disputes/subgraph.ts +34 -0
- package/src/metadata/product-v1.graphql +3 -0
- package/src/offers/index.ts +1 -0
- package/src/offers/interface.ts +3 -1
- package/src/offers/queries.graphql +37 -0
- package/src/offers/renderContractualAgreement.ts +203 -0
- package/src/offers/subgraph.ts +0 -1
- package/src/orchestration/interface.ts +9 -2
- package/src/subgraph.ts +6097 -293
- package/src/utils/tokenInfoManager.ts +97 -0
package/src/accounts/subgraph.ts
CHANGED
|
@@ -2,10 +2,13 @@ import { getSubgraphSdk } from "../utils/graphql";
|
|
|
2
2
|
import {
|
|
3
3
|
BuyerFieldsFragment,
|
|
4
4
|
GetBuyerByIdQueryQueryVariables,
|
|
5
|
+
GetBuyersQueryQueryVariables,
|
|
5
6
|
SellerFieldsFragment,
|
|
6
7
|
GetSellersQueryQueryVariables,
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
GetSellerByIdQueryQueryVariables,
|
|
9
|
+
GetDisputeResolverByIdQueryQueryVariables,
|
|
10
|
+
GetDisputeResolversQueryQueryVariables,
|
|
11
|
+
DisputeResolverFieldsFragment
|
|
9
12
|
} from "../subgraph";
|
|
10
13
|
import { BigNumberish } from "@ethersproject/bignumber";
|
|
11
14
|
|
|
@@ -19,6 +22,11 @@ export type SingleBuyerQueryVariables = Omit<
|
|
|
19
22
|
"buyerId"
|
|
20
23
|
>;
|
|
21
24
|
|
|
25
|
+
export type SingleDisputeResolverQueryVariables = Omit<
|
|
26
|
+
GetDisputeResolverByIdQueryQueryVariables,
|
|
27
|
+
"disputeResolverId"
|
|
28
|
+
>;
|
|
29
|
+
|
|
22
30
|
export async function getBuyerById(
|
|
23
31
|
subgraphUrl: string,
|
|
24
32
|
buyerId: BigNumberish,
|
|
@@ -137,3 +145,27 @@ export async function getSellerByAddress(
|
|
|
137
145
|
|
|
138
146
|
return operator || admin || clerk || treasury;
|
|
139
147
|
}
|
|
148
|
+
|
|
149
|
+
export async function getDisputeResolverById(
|
|
150
|
+
subgraphUrl: string,
|
|
151
|
+
disputeResolverId: BigNumberish,
|
|
152
|
+
queryVars: SingleDisputeResolverQueryVariables = {}
|
|
153
|
+
): Promise<DisputeResolverFieldsFragment> {
|
|
154
|
+
const sdk = getSubgraphSdk(subgraphUrl);
|
|
155
|
+
const { disputeResolver } = await sdk.getDisputeResolverByIdQuery({
|
|
156
|
+
disputeResolverId: disputeResolverId.toString(),
|
|
157
|
+
...queryVars
|
|
158
|
+
});
|
|
159
|
+
return disputeResolver;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
export async function getDisputeResolvers(
|
|
163
|
+
subgraphUrl: string,
|
|
164
|
+
queryVars: GetDisputeResolversQueryQueryVariables = {}
|
|
165
|
+
): Promise<DisputeResolverFieldsFragment[]> {
|
|
166
|
+
const sdk = getSubgraphSdk(subgraphUrl);
|
|
167
|
+
const { disputeResolvers = [] } = await sdk.getDisputeResolversQuery(
|
|
168
|
+
queryVars
|
|
169
|
+
);
|
|
170
|
+
return disputeResolvers;
|
|
171
|
+
}
|
package/src/accounts/types.ts
CHANGED
|
@@ -1 +1,34 @@
|
|
|
1
|
-
|
|
1
|
+
import { BigNumberish } from "@ethersproject/bignumber";
|
|
2
|
+
import { DisputeResolverStruct } from "@bosonprotocol/common";
|
|
3
|
+
|
|
4
|
+
export { CreateSellerArgs, DisputeResolverStruct } from "@bosonprotocol/common";
|
|
5
|
+
|
|
6
|
+
export type CreateDisputeResolverArgs = {
|
|
7
|
+
escalationResponsePeriodInMS: number;
|
|
8
|
+
operator: string;
|
|
9
|
+
admin: string;
|
|
10
|
+
clerk: string;
|
|
11
|
+
treasury: string;
|
|
12
|
+
metadataUri: string;
|
|
13
|
+
/**
|
|
14
|
+
* List of supported fees. Should contain at lest one element.
|
|
15
|
+
*/
|
|
16
|
+
fees: DisputeResolutionFee[];
|
|
17
|
+
/**
|
|
18
|
+
* Ids of sellers that are allowed to use the dispute resolver.
|
|
19
|
+
* If empty or `undefined`, then any seller can use the dispute resolver.
|
|
20
|
+
*/
|
|
21
|
+
sellerAllowList?: BigNumberish[];
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export type DisputeResolutionFee = {
|
|
25
|
+
tokenAddress: string;
|
|
26
|
+
tokenName: string;
|
|
27
|
+
feeAmount: BigNumberish;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export type DisputeResolverUpdates = Partial<
|
|
31
|
+
Omit<DisputeResolverStruct, "id" | "active" | "escalationResponsePeriod"> & {
|
|
32
|
+
escalationResponsePeriodInMS: BigNumberish;
|
|
33
|
+
}
|
|
34
|
+
>;
|
package/src/core-sdk.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ITokenInfo, TokenInfoManager } from "./utils/tokenInfoManager";
|
|
1
2
|
import {
|
|
2
3
|
Web3LibAdapter,
|
|
3
4
|
TransactionResponse,
|
|
@@ -8,8 +9,10 @@ import {
|
|
|
8
9
|
} from "@bosonprotocol/common";
|
|
9
10
|
import { BigNumberish } from "@ethersproject/bignumber";
|
|
10
11
|
import { AddressZero } from "@ethersproject/constants";
|
|
12
|
+
import { BytesLike } from "@ethersproject/bytes";
|
|
11
13
|
|
|
12
14
|
import * as accounts from "./accounts";
|
|
15
|
+
import * as disputes from "./disputes";
|
|
13
16
|
import * as exchanges from "./exchanges";
|
|
14
17
|
import * as offers from "./offers";
|
|
15
18
|
import * as orchestration from "./orchestration";
|
|
@@ -28,6 +31,8 @@ export class CoreSDK {
|
|
|
28
31
|
|
|
29
32
|
private _subgraphUrl: string;
|
|
30
33
|
private _protocolDiamond: string;
|
|
34
|
+
private _chainId: number;
|
|
35
|
+
private _tokenInfoManager: TokenInfoManager;
|
|
31
36
|
|
|
32
37
|
/**
|
|
33
38
|
* Creates an instance of `CoreSDK`
|
|
@@ -39,12 +44,14 @@ export class CoreSDK {
|
|
|
39
44
|
protocolDiamond: string;
|
|
40
45
|
metadataStorage?: MetadataStorage;
|
|
41
46
|
theGraphStorage?: MetadataStorage;
|
|
47
|
+
chainId?: number;
|
|
42
48
|
}) {
|
|
43
49
|
this._web3Lib = opts.web3Lib;
|
|
44
50
|
this._subgraphUrl = opts.subgraphUrl;
|
|
45
51
|
this._protocolDiamond = opts.protocolDiamond;
|
|
46
52
|
this._metadataStorage = opts.metadataStorage;
|
|
47
53
|
this._theGraphStorage = opts.theGraphStorage;
|
|
54
|
+
this._chainId = opts.chainId;
|
|
48
55
|
}
|
|
49
56
|
|
|
50
57
|
/**
|
|
@@ -80,7 +87,8 @@ export class CoreSDK {
|
|
|
80
87
|
metadataStorage: args.metadataStorage,
|
|
81
88
|
theGraphStorage: args.theGraphStorage,
|
|
82
89
|
subgraphUrl: defaultConfig.subgraphUrl,
|
|
83
|
-
protocolDiamond: defaultConfig.contracts.protocolDiamond
|
|
90
|
+
protocolDiamond: defaultConfig.contracts.protocolDiamond,
|
|
91
|
+
chainId: args.chainId
|
|
84
92
|
});
|
|
85
93
|
}
|
|
86
94
|
|
|
@@ -201,6 +209,40 @@ export class CoreSDK {
|
|
|
201
209
|
);
|
|
202
210
|
}
|
|
203
211
|
|
|
212
|
+
/**
|
|
213
|
+
* Returns seller entity from subgraph.
|
|
214
|
+
* @param admin - Admin address of seller entity to query for.
|
|
215
|
+
* @param queryVars - Optional query variables to skip, order or filter.
|
|
216
|
+
* @returns Seller entity from subgraph.
|
|
217
|
+
*/
|
|
218
|
+
public async getSellerByAdmin(
|
|
219
|
+
admin: string,
|
|
220
|
+
queryVars?: subgraph.GetSellersQueryQueryVariables
|
|
221
|
+
): Promise<subgraph.SellerFieldsFragment> {
|
|
222
|
+
return accounts.subgraph.getSellerByAdmin(
|
|
223
|
+
this._subgraphUrl,
|
|
224
|
+
admin,
|
|
225
|
+
queryVars
|
|
226
|
+
);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Returns seller entity from subgraph.
|
|
231
|
+
* @param treasury - Treasury address of seller entity to query for.
|
|
232
|
+
* @param queryVars - Optional query variables to skip, order or filter.
|
|
233
|
+
* @returns Seller entity from subgraph.
|
|
234
|
+
*/
|
|
235
|
+
public async getSellerByTreasury(
|
|
236
|
+
treasury: string,
|
|
237
|
+
queryVars?: subgraph.GetSellersQueryQueryVariables
|
|
238
|
+
): Promise<subgraph.SellerFieldsFragment> {
|
|
239
|
+
return accounts.subgraph.getSellerByTreasury(
|
|
240
|
+
this._subgraphUrl,
|
|
241
|
+
treasury,
|
|
242
|
+
queryVars
|
|
243
|
+
);
|
|
244
|
+
}
|
|
245
|
+
|
|
204
246
|
/**
|
|
205
247
|
* Returns seller entity from subgraph. Matches `operator`, `clerk`, `admin` or `treasury`.
|
|
206
248
|
* @param address - Address of seller entity to query for.
|
|
@@ -231,7 +273,7 @@ export class CoreSDK {
|
|
|
231
273
|
|
|
232
274
|
/**
|
|
233
275
|
* Creates seller account by calling the `AccountHandlerFacet` contract.
|
|
234
|
-
* @param sellerToCreate - Addresses to set in the seller account.
|
|
276
|
+
* @param sellerToCreate - Addresses and contract URI to set in the seller account.
|
|
235
277
|
* @param overrides - Optional overrides.
|
|
236
278
|
* @returns Transaction response.
|
|
237
279
|
*/
|
|
@@ -295,7 +337,7 @@ export class CoreSDK {
|
|
|
295
337
|
/**
|
|
296
338
|
* Returns buyer entities from subgraph.
|
|
297
339
|
* @param queryVars - Optional query variables to skip, order or filter.
|
|
298
|
-
* @returns
|
|
340
|
+
* @returns Buyer entities from subgraph.
|
|
299
341
|
*/
|
|
300
342
|
public async getBuyers(
|
|
301
343
|
queryVars?: subgraph.GetBuyersQueryQueryVariables
|
|
@@ -303,6 +345,184 @@ export class CoreSDK {
|
|
|
303
345
|
return accounts.subgraph.getBuyers(this._subgraphUrl, queryVars);
|
|
304
346
|
}
|
|
305
347
|
|
|
348
|
+
/* ---------------------------- Dispute Resolver ---------------------------- */
|
|
349
|
+
|
|
350
|
+
/**
|
|
351
|
+
* Creates a dispute resolver account by calling the `AccountHandlerFacet` contract.
|
|
352
|
+
* @param disputeResolverToCreate - Dispute resolver arguments.
|
|
353
|
+
* @returns Transaction response.
|
|
354
|
+
*/
|
|
355
|
+
public async createDisputeResolver(
|
|
356
|
+
disputeResolverToCreate: accounts.CreateDisputeResolverArgs
|
|
357
|
+
): Promise<TransactionResponse> {
|
|
358
|
+
return accounts.handler.createDisputeResolver({
|
|
359
|
+
disputeResolverToCreate,
|
|
360
|
+
contractAddress: this._protocolDiamond,
|
|
361
|
+
web3Lib: this._web3Lib
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* Utility method to retrieve the created `exchangeId` from logs after calling `commitToOffer`.
|
|
367
|
+
* @param logs - Logs to search in.
|
|
368
|
+
* @returns Created exchange id.
|
|
369
|
+
*/
|
|
370
|
+
public getDisputeResolverIdFromLogs(logs: Log[]): string | null {
|
|
371
|
+
return getValueFromLogs({
|
|
372
|
+
iface: accounts.iface.bosonAccountHandlerIface,
|
|
373
|
+
logs,
|
|
374
|
+
eventArgsKey: "disputeResolverId",
|
|
375
|
+
eventName: "DisputeResolverCreated"
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* Updates a dispute resolver account by calling the `AccountHandlerFacet` contract.
|
|
381
|
+
* Note, that the caller must be the specified `admin` address of the dispute resolver account.
|
|
382
|
+
* @param disputeResolverId - Id of dispute resolver to update.
|
|
383
|
+
* @param updates - Values to update for the given dispute resolver.
|
|
384
|
+
* @returns Transaction response.
|
|
385
|
+
*/
|
|
386
|
+
public async updateDisputeResolver(
|
|
387
|
+
disputeResolverId: BigNumberish,
|
|
388
|
+
updates: accounts.DisputeResolverUpdates
|
|
389
|
+
): Promise<TransactionResponse> {
|
|
390
|
+
return accounts.handler.updateDisputeResolver({
|
|
391
|
+
disputeResolverId,
|
|
392
|
+
updates,
|
|
393
|
+
subgraphUrl: this._subgraphUrl,
|
|
394
|
+
contractAddress: this._protocolDiamond,
|
|
395
|
+
web3Lib: this._web3Lib
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
/**
|
|
400
|
+
* Activates a dispute resolver account by calling the `AccountHandlerFacet` contract.
|
|
401
|
+
* Note, that the caller needs to have the ADMIN role.
|
|
402
|
+
* @param disputeResolverId - Id of dispute resolver to activate.
|
|
403
|
+
* @returns Transaction response.
|
|
404
|
+
*/
|
|
405
|
+
public async activateDisputeResolver(
|
|
406
|
+
disputeResolverId: BigNumberish
|
|
407
|
+
): Promise<TransactionResponse> {
|
|
408
|
+
return accounts.handler.activateDisputeResolver({
|
|
409
|
+
disputeResolverId,
|
|
410
|
+
contractAddress: this._protocolDiamond,
|
|
411
|
+
web3Lib: this._web3Lib
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
/**
|
|
416
|
+
* Adds fees to a dispute resolver account by calling the `AccountHandlerFacet`
|
|
417
|
+
* contract. Note, that the caller must be the specified `admin` address of the dispute
|
|
418
|
+
* resolver account.
|
|
419
|
+
* @param disputeResolverId - Id of dispute resolver.
|
|
420
|
+
* @param fees - Dispute resolution fees. Should only contain token addresses that are
|
|
421
|
+
* not already specified.
|
|
422
|
+
* @returns Transaction response.
|
|
423
|
+
*/
|
|
424
|
+
public async addFeesToDisputeResolver(
|
|
425
|
+
disputeResolverId: BigNumberish,
|
|
426
|
+
fees: accounts.DisputeResolutionFee[]
|
|
427
|
+
): Promise<TransactionResponse> {
|
|
428
|
+
return accounts.handler.addFeesToDisputeResolver({
|
|
429
|
+
disputeResolverId,
|
|
430
|
+
fees,
|
|
431
|
+
contractAddress: this._protocolDiamond,
|
|
432
|
+
web3Lib: this._web3Lib
|
|
433
|
+
});
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
/**
|
|
437
|
+
* Adds sellers to the allow list of a dispute resolver account by calling the
|
|
438
|
+
* `AccountHandlerFacet` contract. Note, that the caller must be the specified
|
|
439
|
+
* `admin` address of the dispute resolver account.
|
|
440
|
+
* @param disputeResolverId - Id of dispute resolver.
|
|
441
|
+
* @param sellerAllowList - List of seller ids that are allowed to use the dispute resolver.
|
|
442
|
+
* Should only contain seller ids that are not part of the current allow list.
|
|
443
|
+
* @returns Transaction response.
|
|
444
|
+
*/
|
|
445
|
+
public async addSellersToDisputeResolverAllowList(
|
|
446
|
+
disputeResolverId: BigNumberish,
|
|
447
|
+
sellerAllowList: BigNumberish[]
|
|
448
|
+
): Promise<TransactionResponse> {
|
|
449
|
+
return accounts.handler.addSellersToAllowList({
|
|
450
|
+
disputeResolverId,
|
|
451
|
+
sellerAllowList,
|
|
452
|
+
contractAddress: this._protocolDiamond,
|
|
453
|
+
web3Lib: this._web3Lib
|
|
454
|
+
});
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
/**
|
|
458
|
+
* Removes fees from a dispute resolver account by calling the `AccountHandlerFacet`
|
|
459
|
+
* contract. Note, that the caller must be the specified `admin` address of the dispute
|
|
460
|
+
* resolver account.
|
|
461
|
+
* @param disputeResolverId - Id of dispute resolver.
|
|
462
|
+
* @param feeTokenAddresses - Addresses of fee tokens to remove.
|
|
463
|
+
* @returns Transaction response.
|
|
464
|
+
*/
|
|
465
|
+
public async removeFeesFromDisputeResolver(
|
|
466
|
+
disputeResolverId: BigNumberish,
|
|
467
|
+
feeTokenAddresses: string[]
|
|
468
|
+
): Promise<TransactionResponse> {
|
|
469
|
+
return accounts.handler.removeFeesFromDisputeResolver({
|
|
470
|
+
disputeResolverId,
|
|
471
|
+
feeTokenAddresses,
|
|
472
|
+
contractAddress: this._protocolDiamond,
|
|
473
|
+
web3Lib: this._web3Lib
|
|
474
|
+
});
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
/**
|
|
478
|
+
* Removes sellers from the allow list of a dispute resolver account by calling the
|
|
479
|
+
* `AccountHandlerFacet` contract. Note, that the caller must be the specified
|
|
480
|
+
* `admin` address of the dispute resolver account.
|
|
481
|
+
* @param disputeResolverId - Id of dispute resolver.
|
|
482
|
+
* @param sellerAllowList - List of seller ids that should be removed from the allow
|
|
483
|
+
* list of a dispute resolver.
|
|
484
|
+
* @returns Transaction response.
|
|
485
|
+
*/
|
|
486
|
+
public async removeSellersFromDisputeResolverAllowList(
|
|
487
|
+
disputeResolverId: BigNumberish,
|
|
488
|
+
sellerAllowList: string[]
|
|
489
|
+
): Promise<TransactionResponse> {
|
|
490
|
+
return accounts.handler.removeSellersFromAllowList({
|
|
491
|
+
disputeResolverId,
|
|
492
|
+
sellerAllowList,
|
|
493
|
+
contractAddress: this._protocolDiamond,
|
|
494
|
+
web3Lib: this._web3Lib
|
|
495
|
+
});
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
/**
|
|
499
|
+
* Returns dispute resolver entity from subgraph.
|
|
500
|
+
* @param disputeResolverId - ID of dispute resolver entity to query for.
|
|
501
|
+
* @param queryVars - Optional query variables to skip, order or filter.
|
|
502
|
+
* @returns Dispute resolver entity from subgraph.
|
|
503
|
+
*/
|
|
504
|
+
public async getDisputeResolverById(
|
|
505
|
+
disputeResolverId: BigNumberish,
|
|
506
|
+
queryVars?: accounts.subgraph.SingleDisputeResolverQueryVariables
|
|
507
|
+
): Promise<subgraph.DisputeResolverFieldsFragment> {
|
|
508
|
+
return accounts.subgraph.getDisputeResolverById(
|
|
509
|
+
this._subgraphUrl,
|
|
510
|
+
disputeResolverId,
|
|
511
|
+
queryVars
|
|
512
|
+
);
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
/**
|
|
516
|
+
* Returns dispute resolver entities from subgraph.
|
|
517
|
+
* @param queryVars - Optional query variables to skip, order or filter.
|
|
518
|
+
* @returns Dispute resolver entities from subgraph.
|
|
519
|
+
*/
|
|
520
|
+
public async getDisputeResolvers(
|
|
521
|
+
queryVars?: subgraph.GetDisputeResolversQueryQueryVariables
|
|
522
|
+
): Promise<subgraph.DisputeResolverFieldsFragment[]> {
|
|
523
|
+
return accounts.subgraph.getDisputeResolvers(this._subgraphUrl, queryVars);
|
|
524
|
+
}
|
|
525
|
+
|
|
306
526
|
/* -------------------------------------------------------------------------- */
|
|
307
527
|
/* Offer related methods */
|
|
308
528
|
/* -------------------------------------------------------------------------- */
|
|
@@ -429,22 +649,21 @@ export class CoreSDK {
|
|
|
429
649
|
* @param exchangeToken - Address exchange token.
|
|
430
650
|
* @returns Decimals, name and symbol.
|
|
431
651
|
*/
|
|
432
|
-
public async getExchangeTokenInfo(
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
web3Lib: this._web3Lib,
|
|
439
|
-
contractAddress: exchangeToken
|
|
440
|
-
};
|
|
441
|
-
const [decimals, name, symbol] = await Promise.all([
|
|
442
|
-
erc20.handler.getDecimals(args),
|
|
443
|
-
erc20.handler.getName(args),
|
|
444
|
-
erc20.handler.getSymbol(args)
|
|
445
|
-
]);
|
|
652
|
+
public async getExchangeTokenInfo(
|
|
653
|
+
exchangeToken: string
|
|
654
|
+
): Promise<ITokenInfo> {
|
|
655
|
+
if (this._chainId === undefined) {
|
|
656
|
+
this._chainId = await this._web3Lib.getChainId();
|
|
657
|
+
}
|
|
446
658
|
|
|
447
|
-
|
|
659
|
+
if (this._tokenInfoManager === undefined) {
|
|
660
|
+
this._tokenInfoManager = new TokenInfoManager(
|
|
661
|
+
this._chainId,
|
|
662
|
+
this._web3Lib
|
|
663
|
+
);
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
return this._tokenInfoManager.getExchangeTokenInfo(exchangeToken);
|
|
448
667
|
}
|
|
449
668
|
|
|
450
669
|
/**
|
|
@@ -707,6 +926,171 @@ export class CoreSDK {
|
|
|
707
926
|
});
|
|
708
927
|
}
|
|
709
928
|
|
|
929
|
+
/* -------------------------------------------------------------------------- */
|
|
930
|
+
/* Dispute related methods */
|
|
931
|
+
/* -------------------------------------------------------------------------- */
|
|
932
|
+
|
|
933
|
+
public async getDisputeById(
|
|
934
|
+
disputeId: BigNumberish,
|
|
935
|
+
queryVars?: disputes.subgraph.SingleDisputeQueryVariables
|
|
936
|
+
) {
|
|
937
|
+
return disputes.subgraph.getDisputeById(
|
|
938
|
+
this._subgraphUrl,
|
|
939
|
+
disputeId,
|
|
940
|
+
queryVars
|
|
941
|
+
);
|
|
942
|
+
}
|
|
943
|
+
|
|
944
|
+
public async getDisputes(
|
|
945
|
+
queryVars?: subgraph.GetDisputesQueryQueryVariables
|
|
946
|
+
) {
|
|
947
|
+
return disputes.subgraph.getDisputes(this._subgraphUrl, queryVars);
|
|
948
|
+
}
|
|
949
|
+
|
|
950
|
+
public async raiseDispute(
|
|
951
|
+
exchangeId: BigNumberish,
|
|
952
|
+
complaint: string
|
|
953
|
+
): Promise<TransactionResponse> {
|
|
954
|
+
return disputes.handler.raiseDispute({
|
|
955
|
+
exchangeId,
|
|
956
|
+
complaint,
|
|
957
|
+
contractAddress: this._protocolDiamond,
|
|
958
|
+
web3Lib: this._web3Lib
|
|
959
|
+
});
|
|
960
|
+
}
|
|
961
|
+
|
|
962
|
+
public async retractDispute(
|
|
963
|
+
exchangeId: BigNumberish
|
|
964
|
+
): Promise<TransactionResponse> {
|
|
965
|
+
return disputes.handler.retractDispute({
|
|
966
|
+
exchangeId,
|
|
967
|
+
contractAddress: this._protocolDiamond,
|
|
968
|
+
web3Lib: this._web3Lib
|
|
969
|
+
});
|
|
970
|
+
}
|
|
971
|
+
|
|
972
|
+
public async extendDisputeTimeout(
|
|
973
|
+
exchangeId: BigNumberish,
|
|
974
|
+
newDisputeTimeout: BigNumberish
|
|
975
|
+
): Promise<TransactionResponse> {
|
|
976
|
+
return disputes.handler.extendDisputeTimeout({
|
|
977
|
+
exchangeId,
|
|
978
|
+
newDisputeTimeout,
|
|
979
|
+
contractAddress: this._protocolDiamond,
|
|
980
|
+
web3Lib: this._web3Lib
|
|
981
|
+
});
|
|
982
|
+
}
|
|
983
|
+
|
|
984
|
+
public async expireDispute(
|
|
985
|
+
exchangeId: BigNumberish
|
|
986
|
+
): Promise<TransactionResponse> {
|
|
987
|
+
return disputes.handler.expireDispute({
|
|
988
|
+
exchangeId,
|
|
989
|
+
contractAddress: this._protocolDiamond,
|
|
990
|
+
web3Lib: this._web3Lib
|
|
991
|
+
});
|
|
992
|
+
}
|
|
993
|
+
|
|
994
|
+
public async expireDisputeBatch(
|
|
995
|
+
exchangeIds: BigNumberish[]
|
|
996
|
+
): Promise<TransactionResponse> {
|
|
997
|
+
return disputes.handler.expireDisputeBatch({
|
|
998
|
+
exchangeIds,
|
|
999
|
+
contractAddress: this._protocolDiamond,
|
|
1000
|
+
web3Lib: this._web3Lib
|
|
1001
|
+
});
|
|
1002
|
+
}
|
|
1003
|
+
|
|
1004
|
+
public async resolveDispute(args: {
|
|
1005
|
+
exchangeId: BigNumberish;
|
|
1006
|
+
buyerPercent: BigNumberish;
|
|
1007
|
+
sigR: BytesLike;
|
|
1008
|
+
sigS: BytesLike;
|
|
1009
|
+
sigV: BigNumberish;
|
|
1010
|
+
}): Promise<TransactionResponse> {
|
|
1011
|
+
return disputes.handler.resolveDispute({
|
|
1012
|
+
...args,
|
|
1013
|
+
contractAddress: this._protocolDiamond,
|
|
1014
|
+
web3Lib: this._web3Lib
|
|
1015
|
+
});
|
|
1016
|
+
}
|
|
1017
|
+
|
|
1018
|
+
public async escalateDispute(
|
|
1019
|
+
exchangeId: BigNumberish
|
|
1020
|
+
): Promise<TransactionResponse> {
|
|
1021
|
+
return disputes.handler.escalateDispute({
|
|
1022
|
+
exchangeId,
|
|
1023
|
+
contractAddress: this._protocolDiamond,
|
|
1024
|
+
web3Lib: this._web3Lib
|
|
1025
|
+
});
|
|
1026
|
+
}
|
|
1027
|
+
|
|
1028
|
+
public async decideDispute(
|
|
1029
|
+
exchangeId: BigNumberish,
|
|
1030
|
+
buyerPercent: BigNumberish
|
|
1031
|
+
): Promise<TransactionResponse> {
|
|
1032
|
+
return disputes.handler.decideDispute({
|
|
1033
|
+
exchangeId,
|
|
1034
|
+
buyerPercent,
|
|
1035
|
+
contractAddress: this._protocolDiamond,
|
|
1036
|
+
web3Lib: this._web3Lib
|
|
1037
|
+
});
|
|
1038
|
+
}
|
|
1039
|
+
|
|
1040
|
+
public async refuseEscalatedDispute(
|
|
1041
|
+
exchangeId: BigNumberish
|
|
1042
|
+
): Promise<TransactionResponse> {
|
|
1043
|
+
return disputes.handler.refuseEscalatedDispute({
|
|
1044
|
+
exchangeId,
|
|
1045
|
+
contractAddress: this._protocolDiamond,
|
|
1046
|
+
web3Lib: this._web3Lib
|
|
1047
|
+
});
|
|
1048
|
+
}
|
|
1049
|
+
|
|
1050
|
+
public async expireEscalatedDispute(
|
|
1051
|
+
exchangeId: BigNumberish
|
|
1052
|
+
): Promise<TransactionResponse> {
|
|
1053
|
+
return disputes.handler.expireEscalatedDispute({
|
|
1054
|
+
exchangeId,
|
|
1055
|
+
contractAddress: this._protocolDiamond,
|
|
1056
|
+
web3Lib: this._web3Lib
|
|
1057
|
+
});
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1060
|
+
public async signMutualAgreement(args: {
|
|
1061
|
+
exchangeId: string;
|
|
1062
|
+
buyerPercent: string;
|
|
1063
|
+
}) {
|
|
1064
|
+
// Set the message Type, needed for signature
|
|
1065
|
+
const resolutionType = [
|
|
1066
|
+
{ name: "exchangeId", type: "uint256" },
|
|
1067
|
+
{ name: "buyerPercent", type: "uint256" }
|
|
1068
|
+
];
|
|
1069
|
+
|
|
1070
|
+
const customSignatureType = {
|
|
1071
|
+
Resolution: resolutionType
|
|
1072
|
+
};
|
|
1073
|
+
|
|
1074
|
+
const message = {
|
|
1075
|
+
exchangeId: args.exchangeId,
|
|
1076
|
+
buyerPercent: args.buyerPercent
|
|
1077
|
+
};
|
|
1078
|
+
|
|
1079
|
+
if (this._chainId === undefined) {
|
|
1080
|
+
this._chainId = await this._web3Lib.getChainId();
|
|
1081
|
+
}
|
|
1082
|
+
|
|
1083
|
+
return metaTx.handler.prepareDataSignatureParameters({
|
|
1084
|
+
web3Lib: this._web3Lib,
|
|
1085
|
+
metaTxHandlerAddress: this._protocolDiamond,
|
|
1086
|
+
chainId: this._chainId,
|
|
1087
|
+
customTransactionType: customSignatureType,
|
|
1088
|
+
primaryType: "Resolution",
|
|
1089
|
+
message,
|
|
1090
|
+
nonce: "" // not used in this case
|
|
1091
|
+
});
|
|
1092
|
+
}
|
|
1093
|
+
|
|
710
1094
|
/* -------------------------------------------------------------------------- */
|
|
711
1095
|
/* Meta Tx related methods */
|
|
712
1096
|
/* -------------------------------------------------------------------------- */
|
|
@@ -767,4 +1151,22 @@ export class CoreSDK {
|
|
|
767
1151
|
...args
|
|
768
1152
|
});
|
|
769
1153
|
}
|
|
1154
|
+
|
|
1155
|
+
public async renderContractualAgreementForOffer(
|
|
1156
|
+
offerId: BigNumberish
|
|
1157
|
+
): Promise<string> {
|
|
1158
|
+
const offerData = await offers.subgraph.getOfferById(
|
|
1159
|
+
this._subgraphUrl,
|
|
1160
|
+
offerId
|
|
1161
|
+
);
|
|
1162
|
+
return offers.renderContractualAgreementForOffer(offerData);
|
|
1163
|
+
}
|
|
1164
|
+
|
|
1165
|
+
public async renderContractualAgreement(
|
|
1166
|
+
template: string,
|
|
1167
|
+
offerData: offers.CreateOfferArgs
|
|
1168
|
+
): Promise<string> {
|
|
1169
|
+
const tokenInfo = await this.getExchangeTokenInfo(offerData.exchangeToken);
|
|
1170
|
+
return offers.renderContractualAgreement(template, offerData, tokenInfo);
|
|
1171
|
+
}
|
|
770
1172
|
}
|