@bosonprotocol/core-sdk 1.25.0-alpha.9 → 1.25.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/accounts/handler.d.ts +5 -1
- package/dist/cjs/accounts/handler.d.ts.map +1 -1
- package/dist/cjs/accounts/handler.js +11 -0
- package/dist/cjs/accounts/handler.js.map +1 -1
- package/dist/cjs/accounts/interface.js.map +1 -1
- 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 +12 -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/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 +2 -1
- 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 +42 -4
- package/dist/cjs/meta-tx/handler.d.ts.map +1 -1
- package/dist/cjs/meta-tx/handler.js +97 -21
- package/dist/cjs/meta-tx/handler.js.map +1 -1
- package/dist/cjs/meta-tx/mixin.d.ts +27 -3
- package/dist/cjs/meta-tx/mixin.d.ts.map +1 -1
- package/dist/cjs/meta-tx/mixin.js +124 -22
- package/dist/cjs/meta-tx/mixin.js.map +1 -1
- package/dist/cjs/metadata/mixin.d.ts +3 -3
- package/dist/cjs/metadata/mixin.d.ts.map +1 -1
- package/dist/cjs/metadata/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/orchestration/handler.d.ts.map +1 -1
- package/dist/cjs/orchestration/handler.js +12 -12
- package/dist/cjs/orchestration/handler.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 +6523 -511
- package/dist/cjs/subgraph.d.ts.map +1 -1
- package/dist/cjs/subgraph.js +138 -20
- 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/handler.d.ts +5 -1
- package/dist/esm/accounts/handler.d.ts.map +1 -1
- package/dist/esm/accounts/handler.js +11 -0
- package/dist/esm/accounts/handler.js.map +1 -1
- package/dist/esm/accounts/interface.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 +12 -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/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 +2 -1
- 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 +42 -4
- package/dist/esm/meta-tx/handler.d.ts.map +1 -1
- package/dist/esm/meta-tx/handler.js +123 -19
- package/dist/esm/meta-tx/handler.js.map +1 -1
- package/dist/esm/meta-tx/mixin.d.ts +27 -3
- package/dist/esm/meta-tx/mixin.d.ts.map +1 -1
- package/dist/esm/meta-tx/mixin.js +137 -17
- package/dist/esm/meta-tx/mixin.js.map +1 -1
- package/dist/esm/metadata/mixin.d.ts +3 -3
- package/dist/esm/metadata/mixin.d.ts.map +1 -1
- package/dist/esm/metadata/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/orchestration/handler.d.ts.map +1 -1
- package/dist/esm/orchestration/handler.js +12 -12
- package/dist/esm/orchestration/handler.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 +6523 -511
- package/dist/esm/subgraph.d.ts.map +1 -1
- package/dist/esm/subgraph.js +135 -17
- 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/handler.ts +17 -1
- package/src/accounts/interface.ts +2 -1
- package/src/accounts/mixin.ts +19 -14
- package/src/accounts/queries.graphql +46 -4
- package/src/accounts/subgraph.ts +6 -6
- package/src/accounts/types.ts +1 -1
- package/src/core-sdk.ts +4 -0
- 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 +2 -0
- package/src/meta-tx/biconomy.ts +35 -2
- package/src/meta-tx/handler.ts +209 -24
- package/src/meta-tx/mixin.ts +226 -23
- package/src/metadata/base.graphql +3 -0
- package/src/metadata/mixin.ts +5 -3
- package/src/metadata/product-v1.graphql +2 -2
- 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/orchestration/handler.ts +40 -20
- 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 +6622 -509
- package/src/voucher/handler.ts +78 -1
- package/src/voucher/interface.ts +88 -0
- package/src/voucher/mixin.ts +76 -0
package/src/index.ts
CHANGED
|
@@ -13,6 +13,7 @@ export * as subgraph from "./subgraph";
|
|
|
13
13
|
export * as groups from "./groups";
|
|
14
14
|
export * as forwarder from "./forwarder";
|
|
15
15
|
export * as voucher from "./voucher";
|
|
16
|
+
export * as seaport from "./seaport";
|
|
16
17
|
|
|
17
18
|
export {
|
|
18
19
|
defaultConfigs,
|
|
@@ -26,6 +27,7 @@ export {
|
|
|
26
27
|
export {
|
|
27
28
|
MetadataType,
|
|
28
29
|
AnyMetadata,
|
|
30
|
+
OfferOrSellerMetadata,
|
|
29
31
|
validateMetadata,
|
|
30
32
|
base,
|
|
31
33
|
productV1
|
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> = {}
|
package/src/meta-tx/handler.ts
CHANGED
|
@@ -30,21 +30,31 @@ import {
|
|
|
30
30
|
encodeReserveRange
|
|
31
31
|
} from "../offers/interface";
|
|
32
32
|
import { prepareDataSignatureParameters } from "../utils/signature";
|
|
33
|
-
import {
|
|
33
|
+
import {
|
|
34
|
+
Biconomy,
|
|
35
|
+
ForwarderDomainData,
|
|
36
|
+
GetRetriedHashesData
|
|
37
|
+
} from "./biconomy";
|
|
34
38
|
import { isAddress } from "@ethersproject/address";
|
|
35
39
|
import { AddressZero } from "@ethersproject/constants";
|
|
36
40
|
import { encodeDepositFunds, encodeWithdrawFunds } from "../funds/interface";
|
|
37
41
|
import { bosonDisputeHandlerIface } from "../disputes/interface";
|
|
38
42
|
import { encodeCreateGroup } from "../groups/interface";
|
|
39
43
|
import { encodeCreateOfferWithCondition } from "../orchestration/interface";
|
|
40
|
-
import {
|
|
44
|
+
import {
|
|
45
|
+
encodeCallExternalContract,
|
|
46
|
+
encodePreMint,
|
|
47
|
+
encodeSetApprovalForAll,
|
|
48
|
+
encodeSetApprovalForAllToContract
|
|
49
|
+
} from "../voucher/interface";
|
|
41
50
|
import { hexZeroPad } from "@ethersproject/bytes";
|
|
42
51
|
import { keccak256 } from "@ethersproject/keccak256";
|
|
43
52
|
import { id } from "@ethersproject/hash";
|
|
44
53
|
import { defaultAbiCoder } from "@ethersproject/abi";
|
|
45
54
|
import { ERC20ForwardRequest } from "../forwarder/biconomy-interface";
|
|
46
|
-
import { verifyEIP712 } from "../forwarder/handler";
|
|
55
|
+
import { getNonce, verifyEIP712 } from "../forwarder/handler";
|
|
47
56
|
import { MockForwardRequest } from "../forwarder/mock-interface";
|
|
57
|
+
import { isTrustedForwarder, owner } from "../voucher/handler";
|
|
48
58
|
|
|
49
59
|
export type BaseMetaTxArgs = {
|
|
50
60
|
web3Lib: Web3LibAdapter;
|
|
@@ -55,9 +65,7 @@ export type BaseMetaTxArgs = {
|
|
|
55
65
|
|
|
56
66
|
export type BaseVoucherMetaTxArgs = {
|
|
57
67
|
web3Lib: Web3LibAdapter;
|
|
58
|
-
nonce: BigNumberish;
|
|
59
68
|
bosonVoucherAddress: string;
|
|
60
|
-
forwarderAddress: string;
|
|
61
69
|
chainId: number;
|
|
62
70
|
};
|
|
63
71
|
|
|
@@ -121,7 +129,9 @@ export async function signMetaTx(
|
|
|
121
129
|
|
|
122
130
|
export async function signVoucherMetaTx(
|
|
123
131
|
args: BaseVoucherMetaTxArgs & {
|
|
132
|
+
forwarderAbi: typeof abis.MockForwarderABI;
|
|
124
133
|
functionSignature: string;
|
|
134
|
+
forwarderAddress: string;
|
|
125
135
|
}
|
|
126
136
|
): Promise<SignedVoucherMetaTx> {
|
|
127
137
|
const forwardType = [
|
|
@@ -143,11 +153,17 @@ export async function signVoucherMetaTx(
|
|
|
143
153
|
|
|
144
154
|
const signerAddress = await args.web3Lib.getSignerAddress();
|
|
145
155
|
const chainId = await args.web3Lib.getChainId();
|
|
156
|
+
const nonce = await getNonce({
|
|
157
|
+
contractAddress: args.forwarderAddress,
|
|
158
|
+
user: signerAddress,
|
|
159
|
+
web3Lib: args.web3Lib,
|
|
160
|
+
forwarderAbi: args.forwarderAbi
|
|
161
|
+
});
|
|
146
162
|
|
|
147
163
|
const message = {
|
|
148
164
|
from: signerAddress,
|
|
149
165
|
to: args.bosonVoucherAddress,
|
|
150
|
-
nonce
|
|
166
|
+
nonce,
|
|
151
167
|
data: args.functionSignature
|
|
152
168
|
};
|
|
153
169
|
|
|
@@ -181,6 +197,7 @@ export async function signBiconomyVoucherMetaTx(
|
|
|
181
197
|
| typeof abis.MockForwarderABI
|
|
182
198
|
| typeof abis.BiconomyForwarderABI;
|
|
183
199
|
txGas: BigNumberish;
|
|
200
|
+
relayerUrl: string;
|
|
184
201
|
}
|
|
185
202
|
): Promise<SignedVoucherMetaTx> {
|
|
186
203
|
const customSignatureType = {
|
|
@@ -208,6 +225,43 @@ export async function signBiconomyVoucherMetaTx(
|
|
|
208
225
|
const signerAddress = await args.web3Lib.getSignerAddress();
|
|
209
226
|
const chainId = await args.web3Lib.getChainId();
|
|
210
227
|
|
|
228
|
+
// Check which forwarder needs to be used for the contract
|
|
229
|
+
const biconomyForwarderDomainDetails = await new Biconomy(
|
|
230
|
+
args.relayerUrl
|
|
231
|
+
).getForwarderDomainDetails({ chainId });
|
|
232
|
+
|
|
233
|
+
const biconomyForwarderDomainData = await new Promise<
|
|
234
|
+
ForwarderDomainData | undefined
|
|
235
|
+
// eslint-disable-next-line no-async-promise-executor
|
|
236
|
+
>(async (resolve, reject) => {
|
|
237
|
+
try {
|
|
238
|
+
for (const bFDD of Object.values(biconomyForwarderDomainDetails)) {
|
|
239
|
+
const ret = await isTrustedForwarder({
|
|
240
|
+
forwarder: bFDD.verifyingContract,
|
|
241
|
+
contractAddress: args.bosonVoucherAddress,
|
|
242
|
+
web3Lib: args.web3Lib
|
|
243
|
+
});
|
|
244
|
+
if (ret) {
|
|
245
|
+
resolve(bFDD);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
resolve(undefined);
|
|
249
|
+
} catch (e) {
|
|
250
|
+
reject(e);
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
if (!biconomyForwarderDomainData) {
|
|
254
|
+
throw `Unable to find the trusted forwarder for BosonVoucher contract ${args.bosonVoucherAddress}`;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
const nonce = await getNonce({
|
|
258
|
+
contractAddress: biconomyForwarderDomainData.verifyingContract,
|
|
259
|
+
user: signerAddress,
|
|
260
|
+
web3Lib: args.web3Lib,
|
|
261
|
+
batchId: args.batchId,
|
|
262
|
+
forwarderAbi: args.forwarderAbi
|
|
263
|
+
});
|
|
264
|
+
|
|
211
265
|
const message = {
|
|
212
266
|
from: signerAddress,
|
|
213
267
|
to: args.bosonVoucherAddress,
|
|
@@ -215,22 +269,15 @@ export async function signBiconomyVoucherMetaTx(
|
|
|
215
269
|
txGas: args.txGas,
|
|
216
270
|
tokenGasPrice: "0",
|
|
217
271
|
batchId: args.batchId,
|
|
218
|
-
batchNonce:
|
|
272
|
+
batchNonce: nonce,
|
|
219
273
|
deadline: Math.floor(Date.now() / 1000 + 3600),
|
|
220
274
|
data: args.functionSignature
|
|
221
275
|
};
|
|
222
276
|
|
|
223
|
-
const biconomyForwarderDomainData = {
|
|
224
|
-
name: "Biconomy Forwarder",
|
|
225
|
-
version: "1",
|
|
226
|
-
verifyingContract: args.forwarderAddress,
|
|
227
|
-
salt: hexZeroPad(BigNumber.from(chainId).toHexString(), 32)
|
|
228
|
-
};
|
|
229
|
-
|
|
230
277
|
const signatureParams = await prepareDataSignatureParameters({
|
|
231
278
|
...args,
|
|
232
279
|
chainId,
|
|
233
|
-
verifyingContractAddress:
|
|
280
|
+
verifyingContractAddress: biconomyForwarderDomainData.verifyingContract,
|
|
234
281
|
customSignatureType,
|
|
235
282
|
primaryType: "ERC20ForwardRequest",
|
|
236
283
|
message,
|
|
@@ -263,7 +310,7 @@ export async function signBiconomyVoucherMetaTx(
|
|
|
263
310
|
// verify signature
|
|
264
311
|
const signatureVerified = await verifyEIP712({
|
|
265
312
|
request: message,
|
|
266
|
-
contractAddress:
|
|
313
|
+
contractAddress: biconomyForwarderDomainData.verifyingContract,
|
|
267
314
|
web3Lib: args.web3Lib,
|
|
268
315
|
domainSeparator,
|
|
269
316
|
forwarderAbi: args.forwarderAbi,
|
|
@@ -340,12 +387,19 @@ export async function relayBiconomyMetaTransaction(args: {
|
|
|
340
387
|
export async function signMetaTxCreateSeller(
|
|
341
388
|
args: BaseMetaTxArgs & {
|
|
342
389
|
createSellerArgs: CreateSellerArgs;
|
|
390
|
+
metadataStorage?: MetadataStorage;
|
|
391
|
+
theGraphStorage?: MetadataStorage;
|
|
343
392
|
}
|
|
344
393
|
) {
|
|
394
|
+
await storeMetadataOnTheGraph({
|
|
395
|
+
metadataUriOrHash: args.createSellerArgs.metadataUri,
|
|
396
|
+
metadataStorage: args.metadataStorage,
|
|
397
|
+
theGraphStorage: args.theGraphStorage
|
|
398
|
+
});
|
|
345
399
|
return signMetaTx({
|
|
346
400
|
...args,
|
|
347
401
|
functionName:
|
|
348
|
-
"createSeller((uint256,address,address,address,address,bool),(uint256,uint8),(string,uint256))",
|
|
402
|
+
"createSeller((uint256,address,address,address,address,bool,string),(uint256,uint8),(string,uint256))",
|
|
349
403
|
functionSignature: encodeCreateSeller(args.createSellerArgs)
|
|
350
404
|
});
|
|
351
405
|
}
|
|
@@ -353,12 +407,19 @@ export async function signMetaTxCreateSeller(
|
|
|
353
407
|
export async function signMetaTxUpdateSeller(
|
|
354
408
|
args: BaseMetaTxArgs & {
|
|
355
409
|
updateSellerArgs: UpdateSellerArgs;
|
|
410
|
+
metadataStorage?: MetadataStorage;
|
|
411
|
+
theGraphStorage?: MetadataStorage;
|
|
356
412
|
}
|
|
357
413
|
) {
|
|
414
|
+
await storeMetadataOnTheGraph({
|
|
415
|
+
metadataUriOrHash: args.updateSellerArgs.metadataUri,
|
|
416
|
+
metadataStorage: args.metadataStorage,
|
|
417
|
+
theGraphStorage: args.theGraphStorage
|
|
418
|
+
});
|
|
358
419
|
return signMetaTx({
|
|
359
420
|
...args,
|
|
360
421
|
functionName:
|
|
361
|
-
"updateSeller((uint256,address,address,address,address,bool),(uint256,uint8))",
|
|
422
|
+
"updateSeller((uint256,address,address,address,address,bool,string),(uint256,uint8))",
|
|
362
423
|
functionSignature: encodeUpdateSeller(args.updateSellerArgs)
|
|
363
424
|
});
|
|
364
425
|
}
|
|
@@ -460,6 +521,38 @@ export async function signMetaTxVoidOfferBatch(
|
|
|
460
521
|
});
|
|
461
522
|
}
|
|
462
523
|
|
|
524
|
+
export async function signMetaTxExtendOffer(
|
|
525
|
+
args: BaseMetaTxArgs & {
|
|
526
|
+
offerId: BigNumberish;
|
|
527
|
+
validUntil: BigNumberish;
|
|
528
|
+
}
|
|
529
|
+
) {
|
|
530
|
+
return signMetaTx({
|
|
531
|
+
...args,
|
|
532
|
+
functionName: "extendOffer(uint256,uint256)",
|
|
533
|
+
functionSignature: bosonOfferHandlerIface.encodeFunctionData(
|
|
534
|
+
"extendOffer",
|
|
535
|
+
[args.offerId, args.validUntil]
|
|
536
|
+
)
|
|
537
|
+
});
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
export async function signMetaTxExtendOfferBatch(
|
|
541
|
+
args: BaseMetaTxArgs & {
|
|
542
|
+
offerIds: BigNumberish[];
|
|
543
|
+
validUntil: BigNumberish;
|
|
544
|
+
}
|
|
545
|
+
) {
|
|
546
|
+
return signMetaTx({
|
|
547
|
+
...args,
|
|
548
|
+
functionName: "extendOfferBatch(uint256[],uint256)",
|
|
549
|
+
functionSignature: bosonOfferHandlerIface.encodeFunctionData(
|
|
550
|
+
"extendOfferBatch",
|
|
551
|
+
[args.offerIds, args.validUntil]
|
|
552
|
+
)
|
|
553
|
+
});
|
|
554
|
+
}
|
|
555
|
+
|
|
463
556
|
export async function signMetaTxCompleteExchangeBatch(
|
|
464
557
|
args: BaseMetaTxArgs & {
|
|
465
558
|
exchangeIds: BigNumberish[];
|
|
@@ -522,12 +615,13 @@ export async function signMetaTxReserveRange(
|
|
|
522
615
|
args: BaseMetaTxArgs & {
|
|
523
616
|
offerId: BigNumberish;
|
|
524
617
|
length: BigNumberish;
|
|
618
|
+
to: string;
|
|
525
619
|
}
|
|
526
620
|
) {
|
|
527
621
|
return signMetaTx({
|
|
528
622
|
...args,
|
|
529
|
-
functionName: "reserveRange(uint256,uint256)",
|
|
530
|
-
functionSignature: encodeReserveRange(args.offerId, args.length)
|
|
623
|
+
functionName: "reserveRange(uint256,uint256,address)",
|
|
624
|
+
functionSignature: encodeReserveRange(args.offerId, args.length, args.to)
|
|
531
625
|
});
|
|
532
626
|
}
|
|
533
627
|
|
|
@@ -535,10 +629,12 @@ export async function signMetaTxPreMint(
|
|
|
535
629
|
args: BaseVoucherMetaTxArgs & {
|
|
536
630
|
offerId: BigNumberish;
|
|
537
631
|
amount: BigNumberish;
|
|
538
|
-
batchId
|
|
632
|
+
batchId?: BigNumberish;
|
|
633
|
+
forwarderAddress?: string;
|
|
539
634
|
forwarderAbi:
|
|
540
635
|
| typeof abis.MockForwarderABI
|
|
541
636
|
| typeof abis.BiconomyForwarderABI;
|
|
637
|
+
relayerUrl: string;
|
|
542
638
|
}
|
|
543
639
|
): Promise<SignedVoucherMetaTx> {
|
|
544
640
|
const localConfig = defaultConfigs.find(
|
|
@@ -549,13 +645,17 @@ export async function signMetaTxPreMint(
|
|
|
549
645
|
if (isLocal) {
|
|
550
646
|
return signVoucherMetaTx({
|
|
551
647
|
...args,
|
|
552
|
-
|
|
648
|
+
forwarderAddress: args.forwarderAddress,
|
|
649
|
+
functionSignature,
|
|
650
|
+
forwarderAbi: args.forwarderAbi as typeof abis.MockForwarderABI
|
|
553
651
|
});
|
|
554
652
|
}
|
|
555
653
|
const txGas = 200000 + BigNumber.from(args.amount).mul(2500).toNumber(); // ~(180000 + 2250*N) estimation on 2023/02/03
|
|
556
654
|
return signBiconomyVoucherMetaTx({
|
|
557
655
|
...args,
|
|
558
656
|
functionSignature,
|
|
657
|
+
forwarderAbi: args.forwarderAbi as typeof abis.BiconomyForwarderABI,
|
|
658
|
+
batchId: args.batchId || "0",
|
|
559
659
|
txGas
|
|
560
660
|
});
|
|
561
661
|
}
|
|
@@ -564,10 +664,12 @@ export async function signMetaTxSetApprovalForAll(
|
|
|
564
664
|
args: BaseVoucherMetaTxArgs & {
|
|
565
665
|
operator: string;
|
|
566
666
|
approved: boolean;
|
|
567
|
-
batchId
|
|
667
|
+
batchId?: BigNumberish;
|
|
668
|
+
forwarderAddress?: string;
|
|
568
669
|
forwarderAbi:
|
|
569
670
|
| typeof abis.MockForwarderABI
|
|
570
671
|
| typeof abis.BiconomyForwarderABI;
|
|
672
|
+
relayerUrl: string;
|
|
571
673
|
}
|
|
572
674
|
): Promise<SignedVoucherMetaTx> {
|
|
573
675
|
const localConfig = defaultConfigs.find(
|
|
@@ -581,13 +683,96 @@ export async function signMetaTxSetApprovalForAll(
|
|
|
581
683
|
if (isLocal) {
|
|
582
684
|
return signVoucherMetaTx({
|
|
583
685
|
...args,
|
|
584
|
-
|
|
686
|
+
forwarderAddress: args.forwarderAddress,
|
|
687
|
+
functionSignature,
|
|
688
|
+
forwarderAbi: args.forwarderAbi as typeof abis.MockForwarderABI
|
|
585
689
|
});
|
|
586
690
|
}
|
|
587
691
|
const txGas = 100000; // ~70000 estimation on 2023/02/03
|
|
588
692
|
return signBiconomyVoucherMetaTx({
|
|
589
693
|
...args,
|
|
590
694
|
functionSignature,
|
|
695
|
+
forwarderAbi: args.forwarderAbi as typeof abis.BiconomyForwarderABI,
|
|
696
|
+
batchId: args.batchId || "0",
|
|
697
|
+
txGas
|
|
698
|
+
});
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
export async function signMetaTxSetApprovalForAllToContract(
|
|
702
|
+
args: BaseVoucherMetaTxArgs & {
|
|
703
|
+
operator: string;
|
|
704
|
+
approved: boolean;
|
|
705
|
+
batchId?: BigNumberish;
|
|
706
|
+
forwarderAddress?: string;
|
|
707
|
+
forwarderAbi:
|
|
708
|
+
| typeof abis.MockForwarderABI
|
|
709
|
+
| typeof abis.BiconomyForwarderABI;
|
|
710
|
+
relayerUrl: string;
|
|
711
|
+
},
|
|
712
|
+
overrides: {
|
|
713
|
+
txGas?: number;
|
|
714
|
+
} = {}
|
|
715
|
+
): Promise<SignedVoucherMetaTx> {
|
|
716
|
+
const localConfig = defaultConfigs.find(
|
|
717
|
+
(config) => config.envName === "local"
|
|
718
|
+
);
|
|
719
|
+
const isLocal = localConfig.chainId === args.chainId;
|
|
720
|
+
const functionSignature = encodeSetApprovalForAllToContract(
|
|
721
|
+
args.operator,
|
|
722
|
+
args.approved
|
|
723
|
+
);
|
|
724
|
+
if (isLocal) {
|
|
725
|
+
return signVoucherMetaTx({
|
|
726
|
+
...args,
|
|
727
|
+
forwarderAddress: args.forwarderAddress,
|
|
728
|
+
functionSignature,
|
|
729
|
+
forwarderAbi: args.forwarderAbi as typeof abis.MockForwarderABI
|
|
730
|
+
});
|
|
731
|
+
}
|
|
732
|
+
const txGas = overrides.txGas || 100000; // TODO: estimate the gas needed
|
|
733
|
+
return signBiconomyVoucherMetaTx({
|
|
734
|
+
...args,
|
|
735
|
+
functionSignature,
|
|
736
|
+
forwarderAbi: args.forwarderAbi as typeof abis.BiconomyForwarderABI,
|
|
737
|
+
batchId: args.batchId || "0",
|
|
738
|
+
txGas
|
|
739
|
+
});
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
export async function signMetaTxCallExternalContract(
|
|
743
|
+
args: BaseVoucherMetaTxArgs & {
|
|
744
|
+
to: string;
|
|
745
|
+
data: string;
|
|
746
|
+
batchId?: BigNumberish;
|
|
747
|
+
forwarderAddress?: string;
|
|
748
|
+
forwarderAbi:
|
|
749
|
+
| typeof abis.MockForwarderABI
|
|
750
|
+
| typeof abis.BiconomyForwarderABI;
|
|
751
|
+
relayerUrl: string;
|
|
752
|
+
},
|
|
753
|
+
overrides: {
|
|
754
|
+
txGas?: number;
|
|
755
|
+
} = {}
|
|
756
|
+
): Promise<SignedVoucherMetaTx> {
|
|
757
|
+
const localConfig = defaultConfigs.find(
|
|
758
|
+
(config) => config.envName === "local"
|
|
759
|
+
);
|
|
760
|
+
const isLocal = localConfig.chainId === args.chainId;
|
|
761
|
+
const functionSignature = encodeCallExternalContract(args.to, args.data);
|
|
762
|
+
if (isLocal) {
|
|
763
|
+
return signVoucherMetaTx({
|
|
764
|
+
...args,
|
|
765
|
+
forwarderAddress: args.forwarderAddress,
|
|
766
|
+
functionSignature,
|
|
767
|
+
forwarderAbi: args.forwarderAbi as typeof abis.MockForwarderABI
|
|
768
|
+
});
|
|
769
|
+
}
|
|
770
|
+
const txGas = overrides.txGas || 500000; // TODO: estimate the gas needed
|
|
771
|
+
return signBiconomyVoucherMetaTx({
|
|
772
|
+
...args,
|
|
773
|
+
functionSignature,
|
|
774
|
+
forwarderAbi: args.forwarderAbi as typeof abis.BiconomyForwarderABI,
|
|
775
|
+
batchId: args.batchId || "0",
|
|
591
776
|
txGas
|
|
592
777
|
});
|
|
593
778
|
}
|