@bosonprotocol/core-sdk 1.25.0-alpha.2 → 1.25.0-alpha.21
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/mixin.d.ts +4 -4
- package/dist/cjs/accounts/mixin.d.ts.map +1 -1
- package/dist/cjs/accounts/mixin.js +8 -8
- package/dist/cjs/accounts/mixin.js.map +1 -1
- package/dist/cjs/accounts/subgraph.d.ts +1 -1
- package/dist/cjs/accounts/subgraph.d.ts.map +1 -1
- package/dist/cjs/accounts/subgraph.js +7 -7
- package/dist/cjs/accounts/subgraph.js.map +1 -1
- package/dist/cjs/accounts/types.d.ts +1 -1
- package/dist/cjs/accounts/types.d.ts.map +1 -1
- package/dist/cjs/core-sdk.d.ts +1 -0
- package/dist/cjs/core-sdk.d.ts.map +1 -1
- package/dist/cjs/core-sdk.js +3 -0
- package/dist/cjs/core-sdk.js.map +1 -1
- package/dist/cjs/erc1155/mixin.d.ts +1 -1
- package/dist/cjs/erc1155/mixin.d.ts.map +1 -1
- package/dist/cjs/erc1155/mixin.js +2 -2
- package/dist/cjs/erc1155/mixin.js.map +1 -1
- package/dist/cjs/erc20/mixin.d.ts +7 -7
- package/dist/cjs/erc20/mixin.d.ts.map +1 -1
- package/dist/cjs/erc20/mixin.js +14 -14
- package/dist/cjs/erc20/mixin.js.map +1 -1
- package/dist/cjs/erc721/mixin.d.ts +3 -3
- package/dist/cjs/erc721/mixin.d.ts.map +1 -1
- package/dist/cjs/erc721/mixin.js +6 -6
- package/dist/cjs/erc721/mixin.js.map +1 -1
- package/dist/cjs/exchanges/handler.js +12 -12
- package/dist/cjs/exchanges/handler.js.map +1 -1
- package/dist/cjs/exchanges/mixin.d.ts +3 -3
- package/dist/cjs/exchanges/mixin.js +3 -3
- package/dist/cjs/forwarder/handler.d.ts +1 -1
- package/dist/cjs/forwarder/handler.d.ts.map +1 -1
- package/dist/cjs/forwarder/handler.js +2 -4
- package/dist/cjs/forwarder/handler.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/meta-tx/biconomy.d.ts +17 -3
- package/dist/cjs/meta-tx/biconomy.d.ts.map +1 -1
- package/dist/cjs/meta-tx/biconomy.js +19 -0
- package/dist/cjs/meta-tx/biconomy.js.map +1 -1
- package/dist/cjs/meta-tx/handler.d.ts +38 -4
- package/dist/cjs/meta-tx/handler.d.ts.map +1 -1
- package/dist/cjs/meta-tx/handler.js +92 -23
- package/dist/cjs/meta-tx/handler.js.map +1 -1
- package/dist/cjs/meta-tx/mixin.d.ts +25 -3
- package/dist/cjs/meta-tx/mixin.d.ts.map +1 -1
- package/dist/cjs/meta-tx/mixin.js +51 -22
- package/dist/cjs/meta-tx/mixin.js.map +1 -1
- package/dist/cjs/offers/handler.d.ts +15 -0
- package/dist/cjs/offers/handler.d.ts.map +1 -1
- package/dist/cjs/offers/handler.js +28 -4
- package/dist/cjs/offers/handler.js.map +1 -1
- package/dist/cjs/offers/interface.d.ts +1 -1
- package/dist/cjs/offers/interface.d.ts.map +1 -1
- package/dist/cjs/offers/interface.js +3 -2
- package/dist/cjs/offers/interface.js.map +1 -1
- package/dist/cjs/offers/mixin.d.ts +26 -3
- package/dist/cjs/offers/mixin.d.ts.map +1 -1
- package/dist/cjs/offers/mixin.js +46 -3
- package/dist/cjs/offers/mixin.js.map +1 -1
- package/dist/cjs/offers/renderContractualAgreement.d.ts.map +1 -1
- package/dist/cjs/offers/renderContractualAgreement.js +5 -4
- package/dist/cjs/offers/renderContractualAgreement.js.map +1 -1
- package/dist/cjs/seaport/abi.d.ts +41 -0
- package/dist/cjs/seaport/abi.d.ts.map +1 -0
- package/dist/cjs/seaport/abi.js +153 -0
- package/dist/cjs/seaport/abi.js.map +1 -0
- package/dist/cjs/seaport/handler.d.ts +46 -0
- package/dist/cjs/seaport/handler.d.ts.map +1 -0
- package/dist/cjs/seaport/handler.js +28 -0
- package/dist/cjs/seaport/handler.js.map +1 -0
- package/dist/cjs/seaport/index.d.ts +2 -0
- package/dist/cjs/seaport/index.d.ts.map +1 -0
- package/dist/cjs/seaport/index.js +28 -0
- package/dist/cjs/seaport/index.js.map +1 -0
- package/dist/cjs/subgraph.d.ts +1451 -212
- package/dist/cjs/subgraph.d.ts.map +1 -1
- package/dist/cjs/subgraph.js +67 -11
- package/dist/cjs/subgraph.js.map +1 -1
- package/dist/cjs/voucher/handler.d.ts +31 -0
- package/dist/cjs/voucher/handler.d.ts.map +1 -1
- package/dist/cjs/voucher/handler.js +57 -1
- package/dist/cjs/voucher/handler.js.map +1 -1
- package/dist/cjs/voucher/interface.d.ts +8 -0
- package/dist/cjs/voucher/interface.d.ts.map +1 -1
- package/dist/cjs/voucher/interface.js +81 -1
- package/dist/cjs/voucher/interface.js.map +1 -1
- package/dist/cjs/voucher/mixin.d.ts +11 -0
- package/dist/cjs/voucher/mixin.d.ts.map +1 -1
- package/dist/cjs/voucher/mixin.js +47 -0
- package/dist/cjs/voucher/mixin.js.map +1 -1
- package/dist/esm/accounts/mixin.d.ts +4 -4
- package/dist/esm/accounts/mixin.d.ts.map +1 -1
- package/dist/esm/accounts/mixin.js +8 -8
- package/dist/esm/accounts/mixin.js.map +1 -1
- package/dist/esm/accounts/subgraph.d.ts +1 -1
- package/dist/esm/accounts/subgraph.d.ts.map +1 -1
- package/dist/esm/accounts/subgraph.js +5 -5
- package/dist/esm/accounts/subgraph.js.map +1 -1
- package/dist/esm/accounts/types.d.ts +1 -1
- package/dist/esm/accounts/types.d.ts.map +1 -1
- package/dist/esm/core-sdk.d.ts +1 -0
- package/dist/esm/core-sdk.d.ts.map +1 -1
- package/dist/esm/core-sdk.js +3 -0
- package/dist/esm/core-sdk.js.map +1 -1
- package/dist/esm/erc1155/mixin.d.ts +1 -1
- package/dist/esm/erc1155/mixin.d.ts.map +1 -1
- package/dist/esm/erc1155/mixin.js +2 -2
- package/dist/esm/erc1155/mixin.js.map +1 -1
- package/dist/esm/erc20/mixin.d.ts +7 -7
- package/dist/esm/erc20/mixin.d.ts.map +1 -1
- package/dist/esm/erc20/mixin.js +14 -14
- package/dist/esm/erc20/mixin.js.map +1 -1
- package/dist/esm/erc721/mixin.d.ts +3 -3
- package/dist/esm/erc721/mixin.d.ts.map +1 -1
- package/dist/esm/erc721/mixin.js +6 -6
- package/dist/esm/erc721/mixin.js.map +1 -1
- package/dist/esm/exchanges/handler.js +12 -12
- package/dist/esm/exchanges/handler.js.map +1 -1
- package/dist/esm/exchanges/mixin.d.ts +3 -3
- package/dist/esm/exchanges/mixin.js +3 -3
- package/dist/esm/forwarder/handler.d.ts +1 -1
- package/dist/esm/forwarder/handler.d.ts.map +1 -1
- package/dist/esm/forwarder/handler.js +2 -4
- package/dist/esm/forwarder/handler.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/meta-tx/biconomy.d.ts +17 -3
- package/dist/esm/meta-tx/biconomy.d.ts.map +1 -1
- package/dist/esm/meta-tx/biconomy.js +17 -0
- package/dist/esm/meta-tx/biconomy.js.map +1 -1
- package/dist/esm/meta-tx/handler.d.ts +38 -4
- package/dist/esm/meta-tx/handler.d.ts.map +1 -1
- package/dist/esm/meta-tx/handler.js +118 -21
- package/dist/esm/meta-tx/handler.js.map +1 -1
- package/dist/esm/meta-tx/mixin.d.ts +25 -3
- package/dist/esm/meta-tx/mixin.d.ts.map +1 -1
- package/dist/esm/meta-tx/mixin.js +67 -17
- package/dist/esm/meta-tx/mixin.js.map +1 -1
- package/dist/esm/offers/handler.d.ts +15 -0
- package/dist/esm/offers/handler.d.ts.map +1 -1
- package/dist/esm/offers/handler.js +21 -3
- package/dist/esm/offers/handler.js.map +1 -1
- package/dist/esm/offers/interface.d.ts +1 -1
- package/dist/esm/offers/interface.d.ts.map +1 -1
- package/dist/esm/offers/interface.js +3 -2
- package/dist/esm/offers/interface.js.map +1 -1
- package/dist/esm/offers/mixin.d.ts +26 -3
- package/dist/esm/offers/mixin.d.ts.map +1 -1
- package/dist/esm/offers/mixin.js +42 -3
- package/dist/esm/offers/mixin.js.map +1 -1
- package/dist/esm/offers/renderContractualAgreement.d.ts.map +1 -1
- package/dist/esm/offers/renderContractualAgreement.js +5 -4
- package/dist/esm/offers/renderContractualAgreement.js.map +1 -1
- package/dist/esm/seaport/abi.d.ts +41 -0
- package/dist/esm/seaport/abi.d.ts.map +1 -0
- package/dist/esm/seaport/abi.js +150 -0
- package/dist/esm/seaport/abi.js.map +1 -0
- package/dist/esm/seaport/handler.d.ts +46 -0
- package/dist/esm/seaport/handler.d.ts.map +1 -0
- package/dist/esm/seaport/handler.js +24 -0
- package/dist/esm/seaport/handler.js.map +1 -0
- package/dist/esm/seaport/index.d.ts +2 -0
- package/dist/esm/seaport/index.d.ts.map +1 -0
- package/dist/esm/seaport/index.js +2 -0
- package/dist/esm/seaport/index.js.map +1 -0
- package/dist/esm/subgraph.d.ts +1451 -212
- package/dist/esm/subgraph.d.ts.map +1 -1
- package/dist/esm/subgraph.js +64 -8
- package/dist/esm/subgraph.js.map +1 -1
- package/dist/esm/voucher/handler.d.ts +31 -0
- package/dist/esm/voucher/handler.d.ts.map +1 -1
- package/dist/esm/voucher/handler.js +39 -1
- package/dist/esm/voucher/handler.js.map +1 -1
- package/dist/esm/voucher/interface.d.ts +8 -0
- package/dist/esm/voucher/interface.d.ts.map +1 -1
- package/dist/esm/voucher/interface.js +72 -0
- package/dist/esm/voucher/interface.js.map +1 -1
- package/dist/esm/voucher/mixin.d.ts +11 -0
- package/dist/esm/voucher/mixin.d.ts.map +1 -1
- package/dist/esm/voucher/mixin.js +41 -0
- package/dist/esm/voucher/mixin.js.map +1 -1
- package/package.json +3 -3
- package/src/accounts/interface.ts +1 -1
- package/src/accounts/mixin.ts +15 -14
- package/src/accounts/queries.graphql +4 -4
- package/src/accounts/subgraph.ts +6 -6
- package/src/accounts/types.ts +1 -1
- package/src/core-sdk.ts +4 -0
- package/src/erc1155/mixin.ts +2 -2
- package/src/erc20/mixin.ts +14 -14
- package/src/erc721/mixin.ts +6 -6
- package/src/exchanges/handler.ts +13 -13
- package/src/exchanges/mixin.ts +3 -3
- package/src/forwarder/handler.ts +3 -5
- package/src/index.ts +1 -0
- package/src/meta-tx/biconomy.ts +35 -2
- package/src/meta-tx/handler.ts +202 -31
- package/src/meta-tx/mixin.ts +135 -21
- package/src/metadata/base.graphql +3 -0
- package/src/metadata/product-v1.graphql +12 -0
- package/src/offers/handler.ts +36 -3
- package/src/offers/interface.ts +4 -2
- package/src/offers/mixin.ts +57 -2
- package/src/offers/queries.graphql +13 -0
- package/src/offers/renderContractualAgreement.ts +6 -9
- package/src/seaport/abi.ts +149 -0
- package/src/seaport/handler.ts +57 -0
- package/src/seaport/index.ts +1 -0
- package/src/subgraph.ts +1501 -216
- package/src/voucher/handler.ts +78 -1
- package/src/voucher/interface.ts +88 -0
- package/src/voucher/mixin.ts +76 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { handler } from ".";
|
|
2
2
|
import { accounts } from "..";
|
|
3
3
|
import { getOfferById } from "../offers/subgraph";
|
|
4
|
+
import { encodeValidate } from "../seaport/handler";
|
|
4
5
|
import { BaseCoreSDK } from "./../mixins/base-core-sdk";
|
|
5
6
|
export class VoucherMixin extends BaseCoreSDK {
|
|
6
7
|
/**
|
|
@@ -91,5 +92,45 @@ export class VoucherMixin extends BaseCoreSDK {
|
|
|
91
92
|
web3Lib: this._web3Lib
|
|
92
93
|
});
|
|
93
94
|
}
|
|
95
|
+
async setApprovalForAllToContract(operator, approved, overrides = {}) {
|
|
96
|
+
const sellerAddress = await this._web3Lib.getSignerAddress();
|
|
97
|
+
const seller = await accounts.subgraph.getSellerByAddress(this._subgraphUrl, sellerAddress);
|
|
98
|
+
return handler.setApprovalForAllToContract({
|
|
99
|
+
operator,
|
|
100
|
+
approved,
|
|
101
|
+
contractAddress: overrides.contractAddress || seller.voucherCloneAddress,
|
|
102
|
+
web3Lib: this._web3Lib
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
async setContractURI(contractURI, overrides = {}) {
|
|
106
|
+
const sellerAddress = await this._web3Lib.getSignerAddress();
|
|
107
|
+
const seller = await accounts.subgraph.getSellerByAddress(this._subgraphUrl, sellerAddress);
|
|
108
|
+
return handler.setContractURI({
|
|
109
|
+
contractURI,
|
|
110
|
+
contractAddress: overrides.contractAddress || seller.voucherCloneAddress,
|
|
111
|
+
web3Lib: this._web3Lib
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
async validateSeaportOrders(openseaConduit, seaportContract, orders, overrides = { approveIfNeeded: true }) {
|
|
115
|
+
const sellerAddress = await this._web3Lib.getSignerAddress();
|
|
116
|
+
const seller = await accounts.subgraph.getSellerByAddress(this._subgraphUrl, sellerAddress);
|
|
117
|
+
if (overrides.approveIfNeeded) {
|
|
118
|
+
// Check the openseaConduit is approved for preminted tokens
|
|
119
|
+
const isApprovedForAll = await this.isApprovedForAll(openseaConduit, {
|
|
120
|
+
owner: seller.voucherCloneAddress,
|
|
121
|
+
contractAddress: overrides.contractAddress || seller.voucherCloneAddress
|
|
122
|
+
});
|
|
123
|
+
if (!isApprovedForAll) {
|
|
124
|
+
const txApproval = await this.setApprovalForAllToContract(openseaConduit, true, overrides);
|
|
125
|
+
await txApproval.wait();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return handler.callExternalContract({
|
|
129
|
+
to: seaportContract,
|
|
130
|
+
data: encodeValidate(orders),
|
|
131
|
+
contractAddress: overrides.contractAddress || seller.voucherCloneAddress,
|
|
132
|
+
web3Lib: this._web3Lib
|
|
133
|
+
});
|
|
134
|
+
}
|
|
94
135
|
}
|
|
95
136
|
//# sourceMappingURL=mixin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mixin.js","sourceRoot":"","sources":["../../../src/voucher/mixin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mixin.js","sourceRoot":"","sources":["../../../src/voucher/mixin.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bosonprotocol/core-sdk",
|
|
3
|
-
"version": "1.25.0-alpha.
|
|
3
|
+
"version": "1.25.0-alpha.21",
|
|
4
4
|
"description": "Facilitates interaction with the contracts and subgraphs of the Boson Protocol",
|
|
5
5
|
"main": "./dist/cjs/index.js",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"access": "public"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@bosonprotocol/common": "^1.21.0-alpha.
|
|
36
|
+
"@bosonprotocol/common": "^1.21.0-alpha.21",
|
|
37
37
|
"@ethersproject/abi": "^5.5.0",
|
|
38
38
|
"@ethersproject/address": "^5.5.0",
|
|
39
39
|
"@ethersproject/bignumber": "^5.5.0",
|
|
@@ -54,5 +54,5 @@
|
|
|
54
54
|
"ts-jest": "^27.1.3",
|
|
55
55
|
"typescript": "^4.5.5"
|
|
56
56
|
},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "805450ddd063fffb5397c5eaca19bb6b4961fa25"
|
|
58
58
|
}
|
package/src/accounts/mixin.ts
CHANGED
|
@@ -34,17 +34,17 @@ export class AccountsMixin extends BaseCoreSDK {
|
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
36
|
* Returns seller entity from subgraph.
|
|
37
|
-
* @param
|
|
37
|
+
* @param assistant - Assistant address of seller entity to query for.
|
|
38
38
|
* @param queryVars - Optional query variables to skip, order or filter.
|
|
39
39
|
* @returns Seller entity from subgraph.
|
|
40
40
|
*/
|
|
41
|
-
public async
|
|
42
|
-
|
|
41
|
+
public async getSellerByAssistant(
|
|
42
|
+
assistant: string,
|
|
43
43
|
queryVars?: subgraph.GetSellersQueryQueryVariables
|
|
44
44
|
): Promise<subgraph.SellerFieldsFragment> {
|
|
45
|
-
return accounts.subgraph.
|
|
45
|
+
return accounts.subgraph.getSellerByAssistant(
|
|
46
46
|
this._subgraphUrl,
|
|
47
|
-
|
|
47
|
+
assistant,
|
|
48
48
|
queryVars
|
|
49
49
|
);
|
|
50
50
|
}
|
|
@@ -101,7 +101,7 @@ export class AccountsMixin extends BaseCoreSDK {
|
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
/**
|
|
104
|
-
* Returns seller entity from subgraph. Matches `
|
|
104
|
+
* Returns seller entity from subgraph. Matches `assistant`, `clerk`, `admin` or `treasury`.
|
|
105
105
|
* @param address - Address of seller entity to query for.
|
|
106
106
|
* @param queryVars - Optional query variables to skip, order or filter.
|
|
107
107
|
* @returns Seller entity from subgraph.
|
|
@@ -318,7 +318,8 @@ export class AccountsMixin extends BaseCoreSDK {
|
|
|
318
318
|
await this._web3Lib.getSignerAddress()
|
|
319
319
|
).toLowerCase();
|
|
320
320
|
const fieldsToUpdate = {
|
|
321
|
-
|
|
321
|
+
assistant:
|
|
322
|
+
currentAccount === pendingSellerUpdate.assistant?.toLowerCase(),
|
|
322
323
|
clerk: currentAccount === pendingSellerUpdate.clerk?.toLowerCase(),
|
|
323
324
|
admin: currentAccount === pendingSellerUpdate.admin?.toLowerCase(),
|
|
324
325
|
authToken:
|
|
@@ -327,7 +328,7 @@ export class AccountsMixin extends BaseCoreSDK {
|
|
|
327
328
|
pendingSellerUpdate.tokenType !== AuthTokenType.NONE
|
|
328
329
|
};
|
|
329
330
|
if (
|
|
330
|
-
fieldsToUpdate.
|
|
331
|
+
fieldsToUpdate.assistant ||
|
|
331
332
|
fieldsToUpdate.clerk ||
|
|
332
333
|
fieldsToUpdate.admin ||
|
|
333
334
|
fieldsToUpdate.authToken
|
|
@@ -335,8 +336,8 @@ export class AccountsMixin extends BaseCoreSDK {
|
|
|
335
336
|
return this.optInToSellerUpdate({
|
|
336
337
|
id: sellerUpdates.id,
|
|
337
338
|
fieldsToUpdate: {
|
|
338
|
-
|
|
339
|
-
currentAccount === pendingSellerUpdate.
|
|
339
|
+
assistant:
|
|
340
|
+
currentAccount === pendingSellerUpdate.assistant.toLowerCase(),
|
|
340
341
|
clerk: currentAccount === pendingSellerUpdate.clerk.toLowerCase(),
|
|
341
342
|
admin: currentAccount === pendingSellerUpdate.admin.toLowerCase(),
|
|
342
343
|
authToken: pendingSellerUpdate.tokenType !== AuthTokenType.NONE
|
|
@@ -414,7 +415,7 @@ export class AccountsMixin extends BaseCoreSDK {
|
|
|
414
415
|
* @returns Created exchange id.
|
|
415
416
|
*/
|
|
416
417
|
public getPendingSellerUpdateFromLogs(logs: Log[]): {
|
|
417
|
-
|
|
418
|
+
assistant: string;
|
|
418
419
|
clerk: string;
|
|
419
420
|
admin: string;
|
|
420
421
|
tokenType: number;
|
|
@@ -424,7 +425,7 @@ export class AccountsMixin extends BaseCoreSDK {
|
|
|
424
425
|
// SellerUpdatePending or SellerUpdateApplied events
|
|
425
426
|
const valuesFromLogs = getValuesFromLogsExt<
|
|
426
427
|
| {
|
|
427
|
-
|
|
428
|
+
assistant: string;
|
|
428
429
|
clerk: string;
|
|
429
430
|
admin: string;
|
|
430
431
|
}
|
|
@@ -440,7 +441,7 @@ export class AccountsMixin extends BaseCoreSDK {
|
|
|
440
441
|
});
|
|
441
442
|
const pendingSellerStruct = (
|
|
442
443
|
valuesFromLogs["pendingSeller"] as {
|
|
443
|
-
|
|
444
|
+
assistant: string;
|
|
444
445
|
clerk: string;
|
|
445
446
|
admin: string;
|
|
446
447
|
}[]
|
|
@@ -452,7 +453,7 @@ export class AccountsMixin extends BaseCoreSDK {
|
|
|
452
453
|
}[]
|
|
453
454
|
)?.[0];
|
|
454
455
|
return {
|
|
455
|
-
|
|
456
|
+
assistant: pendingSellerStruct?.assistant,
|
|
456
457
|
admin: pendingSellerStruct?.admin,
|
|
457
458
|
clerk: pendingSellerStruct?.clerk,
|
|
458
459
|
tokenId: pendingAuthTokenStruct?.tokenId,
|
|
@@ -235,7 +235,7 @@ fragment SellerFields on Seller {
|
|
|
235
235
|
|
|
236
236
|
fragment BaseSellerFields on Seller {
|
|
237
237
|
id
|
|
238
|
-
|
|
238
|
+
assistant
|
|
239
239
|
admin
|
|
240
240
|
clerk
|
|
241
241
|
treasury
|
|
@@ -248,7 +248,7 @@ fragment BaseSellerFields on Seller {
|
|
|
248
248
|
}
|
|
249
249
|
|
|
250
250
|
fragment PendingSellerFields on PendingSeller {
|
|
251
|
-
|
|
251
|
+
assistant
|
|
252
252
|
admin
|
|
253
253
|
clerk
|
|
254
254
|
authTokenId
|
|
@@ -323,7 +323,7 @@ fragment BaseDisputeResolverFields on DisputeResolver {
|
|
|
323
323
|
admin
|
|
324
324
|
clerk
|
|
325
325
|
treasury
|
|
326
|
-
|
|
326
|
+
assistant
|
|
327
327
|
metadataUri
|
|
328
328
|
active
|
|
329
329
|
sellerAllowList
|
|
@@ -333,7 +333,7 @@ fragment BaseDisputeResolverFields on DisputeResolver {
|
|
|
333
333
|
}
|
|
334
334
|
|
|
335
335
|
fragment PendingDisputeResolverFields on PendingDisputeResolver {
|
|
336
|
-
|
|
336
|
+
assistant
|
|
337
337
|
admin
|
|
338
338
|
clerk
|
|
339
339
|
}
|
package/src/accounts/subgraph.ts
CHANGED
|
@@ -71,15 +71,15 @@ export async function getSellers(
|
|
|
71
71
|
return sellers;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
export async function
|
|
74
|
+
export async function getSellerByAssistant(
|
|
75
75
|
subgraphUrl: string,
|
|
76
|
-
|
|
76
|
+
assistantAddress: string,
|
|
77
77
|
queryVars: GetSellersQueryQueryVariables = {}
|
|
78
78
|
): Promise<SellerFieldsFragment | undefined> {
|
|
79
79
|
const sellers = await getSellers(subgraphUrl, {
|
|
80
80
|
sellersFilter: {
|
|
81
81
|
...queryVars.sellersFilter,
|
|
82
|
-
|
|
82
|
+
assistant: assistantAddress.toLowerCase()
|
|
83
83
|
},
|
|
84
84
|
...queryVars
|
|
85
85
|
});
|
|
@@ -153,13 +153,13 @@ export async function getSellerByAddress(
|
|
|
153
153
|
address: string,
|
|
154
154
|
queryVars: GetSellersQueryQueryVariables = {}
|
|
155
155
|
): Promise<SellerFieldsFragment> {
|
|
156
|
-
const [
|
|
157
|
-
|
|
156
|
+
const [assistant, admin, clerk] = await Promise.all([
|
|
157
|
+
getSellerByAssistant(subgraphUrl, address, queryVars),
|
|
158
158
|
getSellerByAdmin(subgraphUrl, address, queryVars),
|
|
159
159
|
getSellerByClerk(subgraphUrl, address, queryVars)
|
|
160
160
|
]);
|
|
161
161
|
|
|
162
|
-
return
|
|
162
|
+
return assistant || admin || clerk;
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
export async function getDisputeResolverById(
|
package/src/accounts/types.ts
CHANGED
package/src/core-sdk.ts
CHANGED
package/src/erc1155/mixin.ts
CHANGED
|
@@ -6,8 +6,8 @@ export class ERC1155Mixin extends BaseCoreSDK {
|
|
|
6
6
|
/* ERC1155 related methods */
|
|
7
7
|
/* -------------------------------------------------------------------------- */
|
|
8
8
|
public async erc1155BalanceOf(
|
|
9
|
-
|
|
9
|
+
args: Omit<Parameters<typeof balanceOf>[0], "web3Lib">
|
|
10
10
|
): Promise<ReturnType<typeof balanceOf>> {
|
|
11
|
-
return balanceOf(...args);
|
|
11
|
+
return balanceOf({ web3Lib: this._web3Lib, ...args });
|
|
12
12
|
}
|
|
13
13
|
}
|
package/src/erc20/mixin.ts
CHANGED
|
@@ -14,44 +14,44 @@ export class ERC20Mixin extends BaseCoreSDK {
|
|
|
14
14
|
/* ERC20 related methods */
|
|
15
15
|
/* -------------------------------------------------------------------------- */
|
|
16
16
|
public async erc20Approve(
|
|
17
|
-
|
|
17
|
+
args: Omit<Parameters<typeof approve>[0], "web3Lib">
|
|
18
18
|
): Promise<ReturnType<typeof approve>> {
|
|
19
|
-
return approve(...args);
|
|
19
|
+
return approve({ web3Lib: this._web3Lib, ...args });
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
public async erc20GetAllowance(
|
|
23
|
-
|
|
23
|
+
args: Omit<Parameters<typeof getAllowance>[0], "web3Lib">
|
|
24
24
|
): Promise<ReturnType<typeof getAllowance>> {
|
|
25
|
-
return getAllowance(...args);
|
|
25
|
+
return getAllowance({ web3Lib: this._web3Lib, ...args });
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
public async erc20GetDecimals(
|
|
29
|
-
|
|
29
|
+
args: Omit<Parameters<typeof getDecimals>[0], "web3Lib">
|
|
30
30
|
): Promise<ReturnType<typeof getDecimals>> {
|
|
31
|
-
return getDecimals(...args);
|
|
31
|
+
return getDecimals({ web3Lib: this._web3Lib, ...args });
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
public async erc20GetSymbol(
|
|
35
|
-
|
|
35
|
+
args: Omit<Parameters<typeof getSymbol>[0], "web3Lib">
|
|
36
36
|
): Promise<ReturnType<typeof getSymbol>> {
|
|
37
|
-
return getSymbol(...args);
|
|
37
|
+
return getSymbol({ web3Lib: this._web3Lib, ...args });
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
public async erc20GetName(
|
|
41
|
-
|
|
41
|
+
args: Omit<Parameters<typeof getName>[0], "web3Lib">
|
|
42
42
|
): Promise<ReturnType<typeof getName>> {
|
|
43
|
-
return getName(...args);
|
|
43
|
+
return getName({ web3Lib: this._web3Lib, ...args });
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
public async erc20EnsureAllowance(
|
|
47
|
-
|
|
47
|
+
args: Omit<Parameters<typeof ensureAllowance>[0], "web3Lib">
|
|
48
48
|
): Promise<ReturnType<typeof ensureAllowance>> {
|
|
49
|
-
return ensureAllowance(...args);
|
|
49
|
+
return ensureAllowance({ web3Lib: this._web3Lib, ...args });
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
public async erc20BalanceOf(
|
|
53
|
-
|
|
53
|
+
args: Omit<Parameters<typeof balanceOf>[0], "web3Lib">
|
|
54
54
|
): Promise<ReturnType<typeof balanceOf>> {
|
|
55
|
-
return balanceOf(...args);
|
|
55
|
+
return balanceOf({ web3Lib: this._web3Lib, ...args });
|
|
56
56
|
}
|
|
57
57
|
}
|
package/src/erc721/mixin.ts
CHANGED
|
@@ -6,20 +6,20 @@ export class ERC721Mixin extends BaseCoreSDK {
|
|
|
6
6
|
/* ERC721 related methods */
|
|
7
7
|
/* -------------------------------------------------------------------------- */
|
|
8
8
|
public async erc721BalanceOf(
|
|
9
|
-
|
|
9
|
+
args: Omit<Parameters<typeof balanceOf>[0], "web3Lib">
|
|
10
10
|
): Promise<ReturnType<typeof balanceOf>> {
|
|
11
|
-
return balanceOf(...args);
|
|
11
|
+
return balanceOf({ web3Lib: this._web3Lib, ...args });
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
public async erc721OwnerOf(
|
|
15
|
-
|
|
15
|
+
args: Omit<Parameters<typeof ownerOf>[0], "web3Lib">
|
|
16
16
|
): Promise<ReturnType<typeof ownerOf>> {
|
|
17
|
-
return ownerOf(...args);
|
|
17
|
+
return ownerOf({ web3Lib: this._web3Lib, ...args });
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
public async erc721TokenOfOwnerByIndex(
|
|
21
|
-
|
|
21
|
+
args: Omit<Parameters<typeof tokenOfOwnerByIndex>[0], "web3Lib">
|
|
22
22
|
): Promise<ReturnType<typeof tokenOfOwnerByIndex>> {
|
|
23
|
-
return tokenOfOwnerByIndex(...args);
|
|
23
|
+
return tokenOfOwnerByIndex({ web3Lib: this._web3Lib, ...args });
|
|
24
24
|
}
|
|
25
25
|
}
|
package/src/exchanges/handler.ts
CHANGED
|
@@ -123,7 +123,7 @@ export async function revokeVoucher(
|
|
|
123
123
|
|
|
124
124
|
assertExchange(args.exchangeId, exchange);
|
|
125
125
|
assertExchangeState(exchange, ExchangeState.Committed);
|
|
126
|
-
|
|
126
|
+
assertSignerIsAssistant(signerAddress, exchange);
|
|
127
127
|
|
|
128
128
|
return args.web3Lib.sendTransaction({
|
|
129
129
|
to: args.contractAddress,
|
|
@@ -218,13 +218,13 @@ function assertExchangeState(
|
|
|
218
218
|
}
|
|
219
219
|
}
|
|
220
220
|
|
|
221
|
-
function
|
|
221
|
+
function assertSignerIsAssistant(
|
|
222
222
|
signer: string,
|
|
223
223
|
exchange: ExchangeFieldsFragment
|
|
224
224
|
) {
|
|
225
|
-
if (exchange.seller.
|
|
225
|
+
if (exchange.seller.assistant.toLowerCase() !== signer.toLowerCase()) {
|
|
226
226
|
throw new Error(
|
|
227
|
-
`Signer ${signer} is not the
|
|
227
|
+
`Signer ${signer} is not the assistant ${exchange.seller.assistant}`
|
|
228
228
|
);
|
|
229
229
|
}
|
|
230
230
|
}
|
|
@@ -237,24 +237,24 @@ function assertSignerIsBuyer(signer: string, exchange: ExchangeFieldsFragment) {
|
|
|
237
237
|
}
|
|
238
238
|
}
|
|
239
239
|
|
|
240
|
-
function
|
|
240
|
+
function assertSignerIsBuyerOrAssistant(
|
|
241
241
|
signer: string,
|
|
242
242
|
exchange: ExchangeFieldsFragment
|
|
243
243
|
) {
|
|
244
244
|
const { seller, buyer } = exchange;
|
|
245
245
|
const buyerAddress = buyer.wallet;
|
|
246
|
-
const
|
|
247
|
-
const
|
|
248
|
-
signer.toLowerCase() ===
|
|
246
|
+
const assistantAddress = seller.assistant;
|
|
247
|
+
const isSignerAssistant =
|
|
248
|
+
signer.toLowerCase() === assistantAddress.toLowerCase();
|
|
249
249
|
const isSignerBuyer = signer.toLowerCase() === buyerAddress.toLowerCase();
|
|
250
250
|
|
|
251
|
-
if (!
|
|
251
|
+
if (!isSignerAssistant && !isSignerBuyer) {
|
|
252
252
|
throw new Error(
|
|
253
|
-
`Signer ${signer} is required to be the buyer ${buyerAddress} or
|
|
253
|
+
`Signer ${signer} is required to be the buyer ${buyerAddress} or assistant ${assistantAddress}`
|
|
254
254
|
);
|
|
255
255
|
}
|
|
256
256
|
|
|
257
|
-
return { isSignerBuyer,
|
|
257
|
+
return { isSignerBuyer, isSignerAssistant };
|
|
258
258
|
}
|
|
259
259
|
|
|
260
260
|
function assertCompletableExchange(
|
|
@@ -264,12 +264,12 @@ function assertCompletableExchange(
|
|
|
264
264
|
) {
|
|
265
265
|
assertExchange(exchangeId, exchange);
|
|
266
266
|
|
|
267
|
-
const {
|
|
267
|
+
const { isSignerAssistant, isSignerBuyer } = assertSignerIsBuyerOrAssistant(
|
|
268
268
|
signer,
|
|
269
269
|
exchange
|
|
270
270
|
);
|
|
271
271
|
|
|
272
|
-
if (
|
|
272
|
+
if (isSignerAssistant && !isSignerBuyer) {
|
|
273
273
|
const elapsedSinceRedeemMS =
|
|
274
274
|
Date.now() - Number(exchange.redeemedDate || "0") * 1000;
|
|
275
275
|
const didDisputePeriodElapse =
|
package/src/exchanges/mixin.ts
CHANGED
|
@@ -83,7 +83,7 @@ export class ExchangesMixin extends BaseCoreSDK {
|
|
|
83
83
|
|
|
84
84
|
/**
|
|
85
85
|
* Revokes an existing voucher by calling the `ExchangeHandlerContract`.
|
|
86
|
-
* Callable by seller `
|
|
86
|
+
* Callable by seller `assistant`.
|
|
87
87
|
* @param exchangeId - ID of exchange to revoke.
|
|
88
88
|
* @returns Transaction response.
|
|
89
89
|
*/
|
|
@@ -134,7 +134,7 @@ export class ExchangesMixin extends BaseCoreSDK {
|
|
|
134
134
|
|
|
135
135
|
/**
|
|
136
136
|
* Completes an existing voucher by calling the `ExchangeHandlerContract`.
|
|
137
|
-
* Callable by buyer or seller
|
|
137
|
+
* Callable by buyer or seller assistant.
|
|
138
138
|
* @param exchangeId - ID of exchange to complete.
|
|
139
139
|
* @returns Transaction response.
|
|
140
140
|
*/
|
|
@@ -151,7 +151,7 @@ export class ExchangesMixin extends BaseCoreSDK {
|
|
|
151
151
|
|
|
152
152
|
/**
|
|
153
153
|
* Completes a batch of existing vouchers by calling the `ExchangeHandlerContract`.
|
|
154
|
-
* Callable by buyer or seller
|
|
154
|
+
* Callable by buyer or seller assistant.
|
|
155
155
|
* @param exchangeIds - IDs of exchange to complete.
|
|
156
156
|
* @returns Transaction response.
|
|
157
157
|
*/
|
package/src/forwarder/handler.ts
CHANGED
|
@@ -7,13 +7,13 @@ export async function getNonce(args: {
|
|
|
7
7
|
contractAddress: string;
|
|
8
8
|
user: string;
|
|
9
9
|
web3Lib: Web3LibAdapter;
|
|
10
|
-
batchId
|
|
10
|
+
batchId?: BigNumberish;
|
|
11
11
|
forwarderAbi: typeof abis.MockForwarderABI | typeof abis.BiconomyForwarderABI;
|
|
12
12
|
}): Promise<string> {
|
|
13
13
|
const isMock = args.forwarderAbi === mockInterface.abi;
|
|
14
14
|
const data = isMock
|
|
15
15
|
? mockInterface.encodeGetNonce(args.user)
|
|
16
|
-
: biconomyInterface.encodeGetNonce(args.user, args.batchId);
|
|
16
|
+
: biconomyInterface.encodeGetNonce(args.user, args.batchId || "0");
|
|
17
17
|
|
|
18
18
|
const result = await args.web3Lib.call({
|
|
19
19
|
to: args.contractAddress,
|
|
@@ -45,12 +45,10 @@ export async function verifyEIP712(args: {
|
|
|
45
45
|
args.signature
|
|
46
46
|
);
|
|
47
47
|
try {
|
|
48
|
-
|
|
48
|
+
await args.web3Lib.call({
|
|
49
49
|
to: args.contractAddress,
|
|
50
50
|
data
|
|
51
51
|
});
|
|
52
|
-
const ret = biconomyInterface.decodeVerifyEIP712(result);
|
|
53
|
-
console.log({ ret });
|
|
54
52
|
return true;
|
|
55
53
|
} catch (e) {
|
|
56
54
|
return false;
|
package/src/index.ts
CHANGED
package/src/meta-tx/biconomy.ts
CHANGED
|
@@ -44,13 +44,46 @@ export type GetRetriedHashesArgs = {
|
|
|
44
44
|
transactionHash: string;
|
|
45
45
|
};
|
|
46
46
|
|
|
47
|
+
export type ForwarderDomainData = {
|
|
48
|
+
name: string;
|
|
49
|
+
version: string;
|
|
50
|
+
verifyingContract: string;
|
|
51
|
+
salt: string;
|
|
52
|
+
};
|
|
53
|
+
|
|
47
54
|
export class Biconomy {
|
|
48
55
|
public constructor(
|
|
49
56
|
private _relayerUrl: string,
|
|
50
|
-
private _apiKey
|
|
51
|
-
private _apiId
|
|
57
|
+
private _apiKey?: string,
|
|
58
|
+
private _apiId?: string
|
|
52
59
|
) {}
|
|
53
60
|
|
|
61
|
+
public async getForwarderDomainDetails(
|
|
62
|
+
args: { chainId: number },
|
|
63
|
+
overrides: Partial<{
|
|
64
|
+
relayerUrl: string;
|
|
65
|
+
forwarderAddress: string;
|
|
66
|
+
}> = {}
|
|
67
|
+
): Promise<{ [key: string]: ForwarderDomainData }> {
|
|
68
|
+
const url = `${
|
|
69
|
+
overrides.relayerUrl || this._relayerUrl
|
|
70
|
+
}/api/v2/meta-tx/systemInfo?networkId=${args.chainId}`;
|
|
71
|
+
const response = await fetch(url, { method: "GET" });
|
|
72
|
+
|
|
73
|
+
if (!response.ok) {
|
|
74
|
+
let message;
|
|
75
|
+
try {
|
|
76
|
+
const jsonResponse = await response.json();
|
|
77
|
+
message = JSON.stringify(jsonResponse);
|
|
78
|
+
} catch {
|
|
79
|
+
message = response.statusText;
|
|
80
|
+
}
|
|
81
|
+
throw new ApiError(response.status, `Failed to relay tx: ${message}`);
|
|
82
|
+
}
|
|
83
|
+
const txResponse = await response.json();
|
|
84
|
+
return txResponse?.forwarderDomainDetails;
|
|
85
|
+
}
|
|
86
|
+
|
|
54
87
|
public async relayTransaction(
|
|
55
88
|
args: RelayTransactionArgs,
|
|
56
89
|
overrides: Partial<RelayOverrides> = {}
|