@bosonprotocol/core-sdk 1.16.0-alpha.13 → 1.16.0-alpha.15

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.
Files changed (45) hide show
  1. package/README.md +3 -104
  2. package/dist/cjs/core-sdk.d.ts +25 -1
  3. package/dist/cjs/core-sdk.d.ts.map +1 -1
  4. package/dist/cjs/core-sdk.js +50 -1
  5. package/dist/cjs/core-sdk.js.map +1 -1
  6. package/dist/cjs/index.d.ts +1 -1
  7. package/dist/cjs/index.d.ts.map +1 -1
  8. package/dist/cjs/index.js.map +1 -1
  9. package/dist/cjs/meta-tx/biconomy.d.ts +45 -0
  10. package/dist/cjs/meta-tx/biconomy.d.ts.map +1 -0
  11. package/dist/cjs/meta-tx/biconomy.js +76 -0
  12. package/dist/cjs/meta-tx/biconomy.js.map +1 -0
  13. package/dist/cjs/meta-tx/handler.d.ts +20 -1
  14. package/dist/cjs/meta-tx/handler.d.ts.map +1 -1
  15. package/dist/cjs/meta-tx/handler.js +61 -1
  16. package/dist/cjs/meta-tx/handler.js.map +1 -1
  17. package/dist/cjs/utils/errors.d.ts +5 -0
  18. package/dist/cjs/utils/errors.d.ts.map +1 -0
  19. package/dist/cjs/utils/errors.js +11 -0
  20. package/dist/cjs/utils/errors.js.map +1 -0
  21. package/dist/esm/core-sdk.d.ts +25 -1
  22. package/dist/esm/core-sdk.d.ts.map +1 -1
  23. package/dist/esm/core-sdk.js +51 -1
  24. package/dist/esm/core-sdk.js.map +1 -1
  25. package/dist/esm/index.d.ts +1 -1
  26. package/dist/esm/index.d.ts.map +1 -1
  27. package/dist/esm/index.js.map +1 -1
  28. package/dist/esm/meta-tx/biconomy.d.ts +45 -0
  29. package/dist/esm/meta-tx/biconomy.d.ts.map +1 -0
  30. package/dist/esm/meta-tx/biconomy.js +60 -0
  31. package/dist/esm/meta-tx/biconomy.js.map +1 -0
  32. package/dist/esm/meta-tx/handler.d.ts +20 -1
  33. package/dist/esm/meta-tx/handler.d.ts.map +1 -1
  34. package/dist/esm/meta-tx/handler.js +56 -0
  35. package/dist/esm/meta-tx/handler.js.map +1 -1
  36. package/dist/esm/utils/errors.d.ts +5 -0
  37. package/dist/esm/utils/errors.d.ts.map +1 -0
  38. package/dist/esm/utils/errors.js +8 -0
  39. package/dist/esm/utils/errors.js.map +1 -0
  40. package/package.json +3 -3
  41. package/src/core-sdk.ts +84 -2
  42. package/src/index.ts +2 -1
  43. package/src/meta-tx/biconomy.ts +129 -0
  44. package/src/meta-tx/handler.ts +84 -2
  45. package/src/utils/errors.ts +5 -0
@@ -1,5 +1,7 @@
1
+ import { BigNumber } from "@ethersproject/bignumber";
1
2
  import { bosonExchangeHandlerIface } from "../exchanges/interface";
2
3
  import { prepareDataSignatureParameters } from "../utils/signature";
4
+ import { Biconomy } from "./biconomy";
3
5
  export async function signExecuteMetaTx(args) {
4
6
  const metaTransactionType = [
5
7
  { name: "nonce", type: "uint256" },
@@ -237,4 +239,58 @@ function makeExchangeMetaTxSigner(functionName) {
237
239
  };
238
240
  };
239
241
  }
242
+ export async function relayMetaTransaction(args) {
243
+ const { chainId, contractAddress, metaTx } = args;
244
+ const biconomy = new Biconomy(metaTx.config.relayerUrl, metaTx.config.apiKey, metaTx.config.apiId);
245
+ const relayTxResponse = await biconomy.relayTransaction({
246
+ to: contractAddress,
247
+ params: [
248
+ metaTx.params.userAddress,
249
+ metaTx.params.functionName,
250
+ metaTx.params.functionSignature,
251
+ metaTx.params.nonce,
252
+ metaTx.params.sigR,
253
+ metaTx.params.sigS,
254
+ metaTx.params.sigV
255
+ ],
256
+ from: metaTx.params.userAddress
257
+ });
258
+ return {
259
+ wait: async () => {
260
+ const waitResponse = await biconomy.wait({
261
+ networkId: chainId,
262
+ transactionHash: relayTxResponse.txHash
263
+ });
264
+ // TODO: add `getTransaction(hash)` to `Web3LibAdapter` and respective implementations
265
+ // in ethers and eth-connect flavors. This way we can populate the correct transaction
266
+ // data below.
267
+ return {
268
+ to: contractAddress,
269
+ from: metaTx.params.userAddress,
270
+ contractAddress: contractAddress,
271
+ transactionIndex: 0,
272
+ gasUsed: BigNumber.from(0),
273
+ logsBloom: "",
274
+ blockHash: "string",
275
+ transactionHash: waitResponse.data.newHash,
276
+ logs: [],
277
+ blockNumber: 0,
278
+ confirmations: 0,
279
+ cumulativeGasUsed: BigNumber.from(0),
280
+ effectiveGasPrice: BigNumber.from(waitResponse.data.newGasPrice),
281
+ byzantium: true,
282
+ type: 0,
283
+ events: waitResponse.events?.map((event) => JSON.parse(event))
284
+ };
285
+ },
286
+ hash: relayTxResponse.txHash,
287
+ confirmations: 0,
288
+ from: metaTx.params.userAddress,
289
+ nonce: 0,
290
+ gasLimit: BigNumber.from(0),
291
+ data: "",
292
+ value: BigNumber.from(0),
293
+ chainId: chainId
294
+ };
295
+ }
240
296
  //# sourceMappingURL=handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/meta-tx/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/meta-tx/handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare class ApiError extends Error {
2
+ status: number;
3
+ constructor(status: number, message: string);
4
+ }
5
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAS,SAAQ,KAAK;IACd,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAGnD"}
@@ -0,0 +1,8 @@
1
+ export class ApiError extends Error {
2
+ status;
3
+ constructor(status, message) {
4
+ super(message);
5
+ this.status = status;
6
+ }
7
+ }
8
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,QAAS,SAAQ,KAAK;IACd;IAAnB,YAAmB,MAAc,EAAE,OAAe;QAChD,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,WAAM,GAAN,MAAM,CAAQ;IAEjC,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bosonprotocol/core-sdk",
3
- "version": "1.16.0-alpha.13",
3
+ "version": "1.16.0-alpha.15",
4
4
  "description": "> TODO: description",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -33,7 +33,7 @@
33
33
  "access": "restricted"
34
34
  },
35
35
  "dependencies": {
36
- "@bosonprotocol/common": "^1.12.0-alpha.15",
36
+ "@bosonprotocol/common": "^1.12.0-alpha.17",
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": "539ce4c82609b41461d4eb69055e4c5da2ce15b0"
57
+ "gitHead": "0d546da714a7bbf9641cb8444967669e6dff4d8b"
58
58
  }
package/src/core-sdk.ts CHANGED
@@ -5,12 +5,14 @@ import {
5
5
  getDefaultConfig,
6
6
  MetadataStorage,
7
7
  AnyMetadata,
8
- Log
8
+ Log,
9
+ MetaTxConfig
9
10
  } from "@bosonprotocol/common";
10
11
  import { BigNumberish } from "@ethersproject/bignumber";
11
12
  import { AddressZero } from "@ethersproject/constants";
12
13
  import { BytesLike } from "@ethersproject/bytes";
13
14
  import { EnvironmentType } from "@bosonprotocol/common/src/types";
15
+ import { ContractTransaction } from "ethers";
14
16
 
15
17
  import * as accounts from "./accounts";
16
18
  import * as disputes from "./disputes";
@@ -35,6 +37,8 @@ export class CoreSDK {
35
37
  private _chainId: number;
36
38
  private _tokenInfoManager: TokenInfoManager;
37
39
 
40
+ private _metaTxConfig?: Partial<MetaTxConfig>;
41
+
38
42
  /**
39
43
  * Creates an instance of `CoreSDK`
40
44
  * @param args - Constructor args
@@ -46,6 +50,7 @@ export class CoreSDK {
46
50
  metadataStorage?: MetadataStorage;
47
51
  theGraphStorage?: MetadataStorage;
48
52
  chainId: number;
53
+ metaTx?: Partial<MetaTxConfig>;
49
54
  }) {
50
55
  this._web3Lib = opts.web3Lib;
51
56
  this._subgraphUrl = opts.subgraphUrl;
@@ -53,6 +58,7 @@ export class CoreSDK {
53
58
  this._metadataStorage = opts.metadataStorage;
54
59
  this._theGraphStorage = opts.theGraphStorage;
55
60
  this._chainId = opts.chainId;
61
+ this._metaTxConfig = opts.metaTx;
56
62
  }
57
63
 
58
64
  /**
@@ -76,6 +82,7 @@ export class CoreSDK {
76
82
  envName: EnvironmentType;
77
83
  metadataStorage?: MetadataStorage;
78
84
  theGraphStorage?: MetadataStorage;
85
+ metaTx?: Partial<MetaTxConfig>;
79
86
  }) {
80
87
  const defaultConfig = getDefaultConfig(args.envName);
81
88
 
@@ -85,10 +92,27 @@ export class CoreSDK {
85
92
  theGraphStorage: args.theGraphStorage,
86
93
  subgraphUrl: defaultConfig.subgraphUrl,
87
94
  protocolDiamond: defaultConfig.contracts.protocolDiamond,
88
- chainId: defaultConfig.chainId
95
+ chainId: defaultConfig.chainId,
96
+ metaTx: {
97
+ ...defaultConfig.metaTx,
98
+ ...args.metaTx
99
+ }
89
100
  });
90
101
  }
91
102
 
103
+ public get metaTxConfig() {
104
+ return this._metaTxConfig;
105
+ }
106
+
107
+ public get isMetaTxConfigSet() {
108
+ return (
109
+ !!this._metaTxConfig &&
110
+ !!this._metaTxConfig.apiId &&
111
+ !!this._metaTxConfig.apiKey &&
112
+ !!this._metaTxConfig.relayerUrl
113
+ );
114
+ }
115
+
92
116
  /* -------------------------------------------------------------------------- */
93
117
  /* Metadata related methods */
94
118
  /* -------------------------------------------------------------------------- */
@@ -1405,4 +1429,62 @@ export class CoreSDK {
1405
1429
  ...args
1406
1430
  });
1407
1431
  }
1432
+
1433
+ /**
1434
+ * Relay a meta transaction,
1435
+ * @param metaTxParams - Required params for meta transaction.
1436
+ * @param overrides - Optional overrides.
1437
+ * @returns Transaction response.
1438
+ */
1439
+ public async relayMetaTransaction(
1440
+ metaTxParams: {
1441
+ functionName: string;
1442
+ functionSignature: BytesLike;
1443
+ nonce: BigNumberish;
1444
+ sigR: BytesLike;
1445
+ sigS: BytesLike;
1446
+ sigV: BigNumberish;
1447
+ },
1448
+ overrides: Partial<{
1449
+ userAddress: string;
1450
+ contractAddress: string;
1451
+ metaTxConfig: Partial<MetaTxConfig>;
1452
+ }> = {}
1453
+ ): Promise<ContractTransaction> {
1454
+ const metaTxRelayerUrl =
1455
+ this._metaTxConfig?.relayerUrl || overrides.metaTxConfig?.relayerUrl;
1456
+ const metaTxApiKey =
1457
+ this._metaTxConfig?.apiKey || overrides.metaTxConfig?.apiKey;
1458
+ const metaTxApiId =
1459
+ this._metaTxConfig?.apiId || overrides.metaTxConfig?.apiId;
1460
+
1461
+ if (!this.isMetaTxConfigSet) {
1462
+ throw new Error(
1463
+ "CoreSDK not configured to relay meta transactions. Either pass in 'relayerUrl', 'apiKey' and 'apiId' during initialization OR as overrides arguments."
1464
+ );
1465
+ }
1466
+
1467
+ return metaTx.handler.relayMetaTransaction({
1468
+ web3LibAdapter: this._web3Lib,
1469
+ contractAddress: overrides.contractAddress || this._protocolDiamond,
1470
+ chainId: this._chainId,
1471
+ metaTx: {
1472
+ config: {
1473
+ relayerUrl: metaTxRelayerUrl,
1474
+ apiId: metaTxApiId,
1475
+ apiKey: metaTxApiKey
1476
+ },
1477
+ params: {
1478
+ userAddress:
1479
+ overrides.userAddress || (await this._web3Lib.getSignerAddress()),
1480
+ functionName: metaTxParams.functionName,
1481
+ functionSignature: metaTxParams.functionSignature,
1482
+ nonce: metaTxParams.nonce,
1483
+ sigR: metaTxParams.sigR,
1484
+ sigS: metaTxParams.sigS,
1485
+ sigV: metaTxParams.sigV
1486
+ }
1487
+ }
1488
+ });
1489
+ }
1408
1490
  }
package/src/index.ts CHANGED
@@ -12,7 +12,8 @@ export * as subgraph from "./subgraph";
12
12
  export {
13
13
  defaultConfigs,
14
14
  getDefaultConfig,
15
- EnvironmentType
15
+ EnvironmentType,
16
+ MetaTxConfig
16
17
  } from "@bosonprotocol/common";
17
18
 
18
19
  export { MetadataType, AnyMetadata } from "@bosonprotocol/metadata";
@@ -0,0 +1,129 @@
1
+ import fetch from "cross-fetch";
2
+
3
+ import { ApiError } from "../utils/errors";
4
+
5
+ export type RelayTransactionResponse = {
6
+ txHash: string;
7
+ log: string;
8
+ retryDuration: number;
9
+ flag: number;
10
+ };
11
+
12
+ export type RelayTransactionArgs = {
13
+ to: string;
14
+ params: unknown[];
15
+ from: string;
16
+ };
17
+
18
+ export type RelayOverrides = {
19
+ relayerUrl: string;
20
+ apiKey: string;
21
+ apiId: string;
22
+ };
23
+
24
+ export type GetRetriedHashesResponse = {
25
+ code: number;
26
+ message: string;
27
+ data: {
28
+ oldHash: string;
29
+ newHash: string;
30
+ oldGasPrice: string;
31
+ newGasPrice: string;
32
+ timestamp: number;
33
+ retryCount: number;
34
+ relayerAddress: string;
35
+ newStatus: string;
36
+ };
37
+ events?: unknown[];
38
+ };
39
+
40
+ export type GetRetriedHashesArgs = {
41
+ networkId: number;
42
+ transactionHash: string;
43
+ };
44
+
45
+ export class Biconomy {
46
+ public constructor(
47
+ private _relayerUrl: string,
48
+ private _apiKey: string,
49
+ private _apiId: string
50
+ ) {}
51
+
52
+ public async relayTransaction(
53
+ args: RelayTransactionArgs,
54
+ overrides: Partial<RelayOverrides> = {}
55
+ ): Promise<RelayTransactionResponse> {
56
+ const url = `${
57
+ overrides.relayerUrl || this._relayerUrl
58
+ }/api/v2/meta-tx/native`;
59
+ const response = await fetch(url, {
60
+ method: "POST",
61
+ headers: {
62
+ "x-api-key": overrides.apiKey || this._apiKey,
63
+ "content-type": "application/json;charset=UTF-8",
64
+ "Access-Control-Allow-Origin": "*"
65
+ },
66
+ body: JSON.stringify({
67
+ ...args,
68
+ apiId: overrides.apiId || this._apiId
69
+ })
70
+ });
71
+
72
+ if (!response.ok) {
73
+ throw new ApiError(
74
+ response.status,
75
+ `Failed to relay tx: ${response.statusText}`
76
+ );
77
+ }
78
+
79
+ return response.json() as Promise<RelayTransactionResponse>;
80
+ }
81
+
82
+ public async getResubmitted(
83
+ args: GetRetriedHashesArgs,
84
+ overrides: Partial<RelayOverrides> = {}
85
+ ): Promise<GetRetriedHashesResponse> {
86
+ const url = `${
87
+ overrides.relayerUrl || this._relayerUrl
88
+ }/api/v1/meta-tx/resubmitted?networkId=${args.networkId}&transactionHash=${
89
+ args.transactionHash
90
+ }`;
91
+ const response = await fetch(url, {
92
+ method: "GET",
93
+ headers: {
94
+ "content-type": "application/json;charset=UTF-8",
95
+ "Access-Control-Allow-Origin": "*"
96
+ }
97
+ });
98
+
99
+ if (!response.ok) {
100
+ throw new ApiError(
101
+ response.status,
102
+ `Failed to get resubmitted tx: ${response.statusText}`
103
+ );
104
+ }
105
+
106
+ return response.json() as Promise<GetRetriedHashesResponse>;
107
+ }
108
+
109
+ public async wait(
110
+ args: GetRetriedHashesArgs,
111
+ overrides: Partial<RelayOverrides> = {}
112
+ ): Promise<GetRetriedHashesResponse> {
113
+ let pending = true;
114
+ let resubmittedResponse: GetRetriedHashesResponse;
115
+
116
+ while (pending) {
117
+ resubmittedResponse = await this.getResubmitted(args, overrides);
118
+
119
+ pending = resubmittedResponse.data.newStatus === "PENDING";
120
+ if (pending) {
121
+ await new Promise((resolve) => {
122
+ setTimeout(resolve, 1000);
123
+ });
124
+ }
125
+ }
126
+
127
+ return resubmittedResponse;
128
+ }
129
+ }
@@ -1,8 +1,11 @@
1
- import { Web3LibAdapter } from "@bosonprotocol/common";
2
- import { BigNumberish } from "@ethersproject/bignumber";
1
+ import { MetaTxConfig, Web3LibAdapter } from "@bosonprotocol/common";
2
+ import { BigNumber, BigNumberish } from "@ethersproject/bignumber";
3
+ import { BytesLike } from "@ethersproject/bytes";
4
+ import { ContractTransaction } from "@ethersproject/contracts";
3
5
 
4
6
  import { bosonExchangeHandlerIface } from "../exchanges/interface";
5
7
  import { prepareDataSignatureParameters } from "../utils/signature";
8
+ import { Biconomy } from "./biconomy";
6
9
 
7
10
  type BaseMetaTxArgs = {
8
11
  web3Lib: Web3LibAdapter;
@@ -357,3 +360,82 @@ function makeExchangeMetaTxSigner(
357
360
  };
358
361
  };
359
362
  }
363
+
364
+ export async function relayMetaTransaction(args: {
365
+ web3LibAdapter: Web3LibAdapter;
366
+ chainId: number;
367
+ contractAddress: string;
368
+ metaTx: {
369
+ config: MetaTxConfig;
370
+ params: {
371
+ userAddress: string;
372
+ functionName: string;
373
+ functionSignature: BytesLike;
374
+ nonce: BigNumberish;
375
+ sigR: BytesLike;
376
+ sigS: BytesLike;
377
+ sigV: BigNumberish;
378
+ };
379
+ };
380
+ }): Promise<ContractTransaction> {
381
+ const { chainId, contractAddress, metaTx } = args;
382
+
383
+ const biconomy = new Biconomy(
384
+ metaTx.config.relayerUrl,
385
+ metaTx.config.apiKey,
386
+ metaTx.config.apiId
387
+ );
388
+
389
+ const relayTxResponse = await biconomy.relayTransaction({
390
+ to: contractAddress,
391
+ params: [
392
+ metaTx.params.userAddress,
393
+ metaTx.params.functionName,
394
+ metaTx.params.functionSignature,
395
+ metaTx.params.nonce,
396
+ metaTx.params.sigR,
397
+ metaTx.params.sigS,
398
+ metaTx.params.sigV
399
+ ],
400
+ from: metaTx.params.userAddress
401
+ });
402
+
403
+ return {
404
+ wait: async () => {
405
+ const waitResponse = await biconomy.wait({
406
+ networkId: chainId,
407
+ transactionHash: relayTxResponse.txHash
408
+ });
409
+
410
+ // TODO: add `getTransaction(hash)` to `Web3LibAdapter` and respective implementations
411
+ // in ethers and eth-connect flavors. This way we can populate the correct transaction
412
+ // data below.
413
+ return {
414
+ to: contractAddress,
415
+ from: metaTx.params.userAddress,
416
+ contractAddress: contractAddress,
417
+ transactionIndex: 0,
418
+ gasUsed: BigNumber.from(0),
419
+ logsBloom: "",
420
+ blockHash: "string",
421
+ transactionHash: waitResponse.data.newHash,
422
+ logs: [],
423
+ blockNumber: 0,
424
+ confirmations: 0,
425
+ cumulativeGasUsed: BigNumber.from(0),
426
+ effectiveGasPrice: BigNumber.from(waitResponse.data.newGasPrice),
427
+ byzantium: true,
428
+ type: 0,
429
+ events: waitResponse.events?.map((event) => JSON.parse(event as string))
430
+ };
431
+ },
432
+ hash: relayTxResponse.txHash,
433
+ confirmations: 0,
434
+ from: metaTx.params.userAddress,
435
+ nonce: 0,
436
+ gasLimit: BigNumber.from(0),
437
+ data: "",
438
+ value: BigNumber.from(0),
439
+ chainId: chainId
440
+ };
441
+ }
@@ -0,0 +1,5 @@
1
+ export class ApiError extends Error {
2
+ constructor(public status: number, message: string) {
3
+ super(message);
4
+ }
5
+ }