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