@bosonprotocol/core-sdk 1.24.1-alpha.0 → 1.24.1-alpha.2
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.map +1 -1
- package/dist/cjs/core-sdk.js +2 -1
- package/dist/cjs/core-sdk.js.map +1 -1
- package/dist/cjs/forwarder/handler.d.ts +7 -0
- package/dist/cjs/forwarder/handler.d.ts.map +1 -0
- package/dist/cjs/forwarder/handler.js +25 -0
- package/dist/cjs/forwarder/handler.js.map +1 -0
- package/dist/cjs/forwarder/index.d.ts +2 -0
- package/dist/cjs/forwarder/index.d.ts.map +1 -0
- package/dist/cjs/forwarder/index.js +28 -0
- package/dist/cjs/forwarder/index.js.map +1 -0
- package/dist/cjs/forwarder/interface.d.ts +6 -0
- package/dist/cjs/forwarder/interface.d.ts.map +1 -0
- package/dist/cjs/forwarder/interface.js +15 -0
- package/dist/cjs/forwarder/interface.js.map +1 -0
- package/dist/cjs/meta-tx/handler.d.ts +24 -2
- package/dist/cjs/meta-tx/handler.d.ts.map +1 -1
- package/dist/cjs/meta-tx/handler.js +37 -2
- package/dist/cjs/meta-tx/handler.js.map +1 -1
- package/dist/cjs/meta-tx/mixin.d.ts +7 -1
- package/dist/cjs/meta-tx/mixin.d.ts.map +1 -1
- package/dist/cjs/meta-tx/mixin.js +10 -1
- package/dist/cjs/meta-tx/mixin.js.map +1 -1
- package/dist/cjs/mixins/base-core-sdk.d.ts +3 -1
- package/dist/cjs/mixins/base-core-sdk.d.ts.map +1 -1
- package/dist/cjs/mixins/base-core-sdk.js +1 -0
- package/dist/cjs/mixins/base-core-sdk.js.map +1 -1
- package/dist/cjs/utils/signature.d.ts.map +1 -1
- package/dist/cjs/utils/signature.js +5 -0
- package/dist/cjs/utils/signature.js.map +1 -1
- package/dist/cjs/voucher/handler.d.ts.map +1 -1
- package/dist/cjs/voucher/handler.js +0 -1
- package/dist/cjs/voucher/handler.js.map +1 -1
- package/dist/esm/core-sdk.d.ts.map +1 -1
- package/dist/esm/core-sdk.js +2 -1
- package/dist/esm/core-sdk.js.map +1 -1
- package/dist/esm/forwarder/handler.d.ts +7 -0
- package/dist/esm/forwarder/handler.d.ts.map +1 -0
- package/dist/esm/forwarder/handler.js +10 -0
- package/dist/esm/forwarder/handler.js.map +1 -0
- package/dist/esm/forwarder/index.d.ts +2 -0
- package/dist/esm/forwarder/index.d.ts.map +1 -0
- package/dist/esm/forwarder/index.js +2 -0
- package/dist/esm/forwarder/index.js.map +1 -0
- package/dist/esm/forwarder/interface.d.ts +6 -0
- package/dist/esm/forwarder/interface.d.ts.map +1 -0
- package/dist/esm/forwarder/interface.js +10 -0
- package/dist/esm/forwarder/interface.js.map +1 -0
- package/dist/esm/meta-tx/handler.d.ts +24 -2
- package/dist/esm/meta-tx/handler.d.ts.map +1 -1
- package/dist/esm/meta-tx/handler.js +44 -2
- package/dist/esm/meta-tx/handler.js.map +1 -1
- package/dist/esm/meta-tx/mixin.d.ts +7 -1
- package/dist/esm/meta-tx/mixin.d.ts.map +1 -1
- package/dist/esm/meta-tx/mixin.js +11 -1
- package/dist/esm/meta-tx/mixin.js.map +1 -1
- package/dist/esm/mixins/base-core-sdk.d.ts +3 -1
- package/dist/esm/mixins/base-core-sdk.d.ts.map +1 -1
- package/dist/esm/mixins/base-core-sdk.js +2 -0
- package/dist/esm/mixins/base-core-sdk.js.map +1 -1
- package/dist/esm/utils/signature.d.ts.map +1 -1
- package/dist/esm/utils/signature.js +5 -0
- package/dist/esm/utils/signature.js.map +1 -1
- package/dist/esm/voucher/handler.d.ts.map +1 -1
- package/dist/esm/voucher/handler.js +0 -1
- package/dist/esm/voucher/handler.js.map +1 -1
- package/package.json +3 -3
- package/src/core-sdk.ts +2 -1
- package/src/forwarder/handler.ts +15 -0
- package/src/forwarder/index.ts +1 -0
- package/src/forwarder/interface.ts +13 -0
- package/src/meta-tx/handler.ts +69 -3
- package/src/meta-tx/mixin.ts +18 -3
- package/src/mixins/base-core-sdk.ts +5 -1
- package/src/utils/signature.ts +5 -0
- package/src/voucher/handler.ts +0 -1
package/src/meta-tx/handler.ts
CHANGED
|
@@ -44,6 +44,14 @@ export type BaseMetaTxArgs = {
|
|
|
44
44
|
chainId: number;
|
|
45
45
|
};
|
|
46
46
|
|
|
47
|
+
export type BaseVoucherMetaTxArgs = {
|
|
48
|
+
web3Lib: Web3LibAdapter;
|
|
49
|
+
nonce: BigNumberish;
|
|
50
|
+
bosonVoucherAddress: string;
|
|
51
|
+
forwarderAddress: string;
|
|
52
|
+
chainId: number;
|
|
53
|
+
};
|
|
54
|
+
|
|
47
55
|
export type SignedMetaTx = {
|
|
48
56
|
functionName: string;
|
|
49
57
|
functionSignature: string;
|
|
@@ -95,6 +103,65 @@ export async function signMetaTx(
|
|
|
95
103
|
};
|
|
96
104
|
}
|
|
97
105
|
|
|
106
|
+
export async function signVoucherMetaTx(
|
|
107
|
+
args: BaseVoucherMetaTxArgs & {
|
|
108
|
+
functionSignature: string;
|
|
109
|
+
}
|
|
110
|
+
): Promise<{
|
|
111
|
+
to: string;
|
|
112
|
+
functionSignature: string;
|
|
113
|
+
r: string;
|
|
114
|
+
s: string;
|
|
115
|
+
v: number;
|
|
116
|
+
}> {
|
|
117
|
+
const forwardType = [
|
|
118
|
+
{ name: "from", type: "address" },
|
|
119
|
+
{ name: "to", type: "address" },
|
|
120
|
+
{ name: "nonce", type: "uint256" },
|
|
121
|
+
{ name: "data", type: "bytes" }
|
|
122
|
+
];
|
|
123
|
+
|
|
124
|
+
const customSignatureType = {
|
|
125
|
+
EIP712Domain: [
|
|
126
|
+
{ name: "name", type: "string" },
|
|
127
|
+
{ name: "version", type: "string" },
|
|
128
|
+
{ name: "chainId", type: "uint256" },
|
|
129
|
+
{ name: "verifyingContract", type: "address" }
|
|
130
|
+
],
|
|
131
|
+
ForwardRequest: forwardType
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
const signerAddress = await args.web3Lib.getSignerAddress();
|
|
135
|
+
const chainId = await args.web3Lib.getChainId();
|
|
136
|
+
|
|
137
|
+
const message = {
|
|
138
|
+
from: signerAddress,
|
|
139
|
+
to: args.bosonVoucherAddress,
|
|
140
|
+
nonce: args.nonce,
|
|
141
|
+
data: args.functionSignature
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
const signature = await prepareDataSignatureParameters({
|
|
145
|
+
...args,
|
|
146
|
+
verifyingContractAddress: args.forwarderAddress,
|
|
147
|
+
customSignatureType,
|
|
148
|
+
primaryType: "ForwardRequest",
|
|
149
|
+
message,
|
|
150
|
+
customDomainData: {
|
|
151
|
+
name: "MockForwarder",
|
|
152
|
+
version: "0.0.1",
|
|
153
|
+
chainId,
|
|
154
|
+
salt: undefined
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
return {
|
|
159
|
+
to: message.to,
|
|
160
|
+
functionSignature: args.functionSignature,
|
|
161
|
+
...signature
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
|
|
98
165
|
export async function signMetaTxCreateSeller(
|
|
99
166
|
args: BaseMetaTxArgs & {
|
|
100
167
|
createSellerArgs: CreateSellerArgs;
|
|
@@ -290,14 +357,13 @@ export async function signMetaTxReserveRange(
|
|
|
290
357
|
}
|
|
291
358
|
|
|
292
359
|
export async function signMetaTxPreMint(
|
|
293
|
-
args:
|
|
360
|
+
args: BaseVoucherMetaTxArgs & {
|
|
294
361
|
offerId: BigNumberish;
|
|
295
362
|
amount: BigNumberish;
|
|
296
363
|
}
|
|
297
364
|
) {
|
|
298
|
-
return
|
|
365
|
+
return signVoucherMetaTx({
|
|
299
366
|
...args,
|
|
300
|
-
functionName: "preMint(uint256,uint256)",
|
|
301
367
|
functionSignature: encodePreMint(args.offerId, args.amount)
|
|
302
368
|
});
|
|
303
369
|
}
|
package/src/meta-tx/mixin.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { MetaTxConfig, TransactionResponse } from "@bosonprotocol/common";
|
|
1
|
+
import { abis, MetaTxConfig, TransactionResponse } from "@bosonprotocol/common";
|
|
2
2
|
import { BigNumberish } from "@ethersproject/bignumber";
|
|
3
3
|
import { BytesLike } from "@ethersproject/bytes";
|
|
4
4
|
import { handler } from ".";
|
|
5
5
|
import { getOfferById } from "../offers/subgraph";
|
|
6
6
|
import { BaseCoreSDK } from "./../mixins/base-core-sdk";
|
|
7
7
|
import { GetRetriedHashesData } from "./biconomy";
|
|
8
|
+
import { Contract } from "ethers";
|
|
9
|
+
import { getNonce } from "../forwarder/handler";
|
|
8
10
|
export class MetaTxMixin extends BaseCoreSDK {
|
|
9
11
|
/* -------------------------------------------------------------------------- */
|
|
10
12
|
/* Meta Tx related methods */
|
|
@@ -154,17 +156,30 @@ export class MetaTxMixin extends BaseCoreSDK {
|
|
|
154
156
|
public async signMetaTxPreMint(
|
|
155
157
|
args: Omit<
|
|
156
158
|
Parameters<typeof handler.signMetaTxPreMint>[0],
|
|
157
|
-
|
|
159
|
+
| "web3Lib"
|
|
160
|
+
| "bosonVoucherAddress"
|
|
161
|
+
| "chainId"
|
|
162
|
+
| "nonce"
|
|
163
|
+
| "forwarderAddress"
|
|
158
164
|
>
|
|
159
165
|
) {
|
|
166
|
+
const signerAddress = await this._web3Lib.getSignerAddress();
|
|
167
|
+
const forwarderAddress = this._contracts.forwarder;
|
|
168
|
+
const nonce = await getNonce({
|
|
169
|
+
contractAddress: forwarderAddress,
|
|
170
|
+
user: signerAddress,
|
|
171
|
+
web3Lib: this._web3Lib
|
|
172
|
+
});
|
|
160
173
|
const offerFromSubgraph = await getOfferById(
|
|
161
174
|
this._subgraphUrl,
|
|
162
175
|
args.offerId
|
|
163
176
|
);
|
|
164
177
|
return handler.signMetaTxPreMint({
|
|
165
178
|
web3Lib: this._web3Lib,
|
|
166
|
-
|
|
179
|
+
bosonVoucherAddress: offerFromSubgraph.seller.voucherCloneAddress,
|
|
167
180
|
chainId: this._chainId,
|
|
181
|
+
nonce,
|
|
182
|
+
forwarderAddress,
|
|
168
183
|
...args
|
|
169
184
|
});
|
|
170
185
|
}
|
|
@@ -2,7 +2,8 @@ import {
|
|
|
2
2
|
Web3LibAdapter,
|
|
3
3
|
MetadataStorage,
|
|
4
4
|
MetaTxConfig,
|
|
5
|
-
LensContracts
|
|
5
|
+
LensContracts,
|
|
6
|
+
ContractAddresses
|
|
6
7
|
} from "@bosonprotocol/common";
|
|
7
8
|
import { TokenInfoManager } from "../utils/tokenInfoManager";
|
|
8
9
|
|
|
@@ -18,6 +19,7 @@ export class BaseCoreSDK {
|
|
|
18
19
|
|
|
19
20
|
protected _metaTxConfig?: Partial<MetaTxConfig>;
|
|
20
21
|
protected _lensContracts?: LensContracts;
|
|
22
|
+
protected _contracts?: ContractAddresses;
|
|
21
23
|
|
|
22
24
|
/**
|
|
23
25
|
* Creates an instance of `BaseCoreSDK`
|
|
@@ -32,6 +34,7 @@ export class BaseCoreSDK {
|
|
|
32
34
|
chainId: number;
|
|
33
35
|
metaTx?: Partial<MetaTxConfig>;
|
|
34
36
|
lensContracts?: LensContracts;
|
|
37
|
+
contracts?: ContractAddresses;
|
|
35
38
|
}) {
|
|
36
39
|
this._web3Lib = opts.web3Lib;
|
|
37
40
|
this._subgraphUrl = opts.subgraphUrl;
|
|
@@ -41,6 +44,7 @@ export class BaseCoreSDK {
|
|
|
41
44
|
this._chainId = opts.chainId;
|
|
42
45
|
this._metaTxConfig = opts.metaTx;
|
|
43
46
|
this._lensContracts = opts.lensContracts;
|
|
47
|
+
this._contracts = opts.contracts;
|
|
44
48
|
}
|
|
45
49
|
|
|
46
50
|
protected assertAndGetMetaTxConfig(
|
package/src/utils/signature.ts
CHANGED
|
@@ -27,6 +27,11 @@ export async function prepareDataSignatureParameters(args: SignatureArgs) {
|
|
|
27
27
|
salt: hexZeroPad(BigNumber.from(args.chainId).toHexString(), 32),
|
|
28
28
|
...args.customDomainData
|
|
29
29
|
};
|
|
30
|
+
Object.keys(domainData).forEach((key) => {
|
|
31
|
+
if (domainData[key] === undefined) {
|
|
32
|
+
delete domainData[key];
|
|
33
|
+
}
|
|
34
|
+
});
|
|
30
35
|
|
|
31
36
|
const signatureTypes = {
|
|
32
37
|
EIP712Domain: domainType,
|