@bosonprotocol/core-sdk 1.16.0-alpha.9 → 1.16.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.
Files changed (83) hide show
  1. package/README.md +3 -104
  2. package/dist/cjs/core-sdk.d.ts +31 -1
  3. package/dist/cjs/core-sdk.d.ts.map +1 -1
  4. package/dist/cjs/core-sdk.js +64 -1
  5. package/dist/cjs/core-sdk.js.map +1 -1
  6. package/dist/cjs/event-logs/index.d.ts +2 -0
  7. package/dist/cjs/event-logs/index.d.ts.map +1 -0
  8. package/dist/cjs/event-logs/index.js +28 -0
  9. package/dist/cjs/event-logs/index.js.map +1 -0
  10. package/dist/cjs/event-logs/subgraph.d.ts +3 -0
  11. package/dist/cjs/event-logs/subgraph.d.ts.map +1 -0
  12. package/dist/cjs/event-logs/subgraph.js +22 -0
  13. package/dist/cjs/event-logs/subgraph.js.map +1 -0
  14. package/dist/cjs/index.d.ts +1 -1
  15. package/dist/cjs/index.d.ts.map +1 -1
  16. package/dist/cjs/index.js.map +1 -1
  17. package/dist/cjs/meta-tx/biconomy.d.ts +45 -0
  18. package/dist/cjs/meta-tx/biconomy.d.ts.map +1 -0
  19. package/dist/cjs/meta-tx/biconomy.js +76 -0
  20. package/dist/cjs/meta-tx/biconomy.js.map +1 -0
  21. package/dist/cjs/meta-tx/handler.d.ts +20 -1
  22. package/dist/cjs/meta-tx/handler.d.ts.map +1 -1
  23. package/dist/cjs/meta-tx/handler.js +61 -1
  24. package/dist/cjs/meta-tx/handler.js.map +1 -1
  25. package/dist/cjs/subgraph.d.ts +2848 -280
  26. package/dist/cjs/subgraph.d.ts.map +1 -1
  27. package/dist/cjs/subgraph.js +287 -41
  28. package/dist/cjs/subgraph.js.map +1 -1
  29. package/dist/cjs/utils/errors.d.ts +5 -0
  30. package/dist/cjs/utils/errors.d.ts.map +1 -0
  31. package/dist/cjs/utils/errors.js +11 -0
  32. package/dist/cjs/utils/errors.js.map +1 -0
  33. package/dist/cjs/utils/graphql.d.ts +43 -0
  34. package/dist/cjs/utils/graphql.d.ts.map +1 -1
  35. package/dist/esm/core-sdk.d.ts +31 -1
  36. package/dist/esm/core-sdk.d.ts.map +1 -1
  37. package/dist/esm/core-sdk.js +63 -1
  38. package/dist/esm/core-sdk.js.map +1 -1
  39. package/dist/esm/event-logs/index.d.ts +2 -0
  40. package/dist/esm/event-logs/index.d.ts.map +1 -0
  41. package/dist/esm/event-logs/index.js +2 -0
  42. package/dist/esm/event-logs/index.js.map +1 -0
  43. package/dist/esm/event-logs/subgraph.d.ts +3 -0
  44. package/dist/esm/event-logs/subgraph.d.ts.map +1 -0
  45. package/dist/esm/event-logs/subgraph.js +7 -0
  46. package/dist/esm/event-logs/subgraph.js.map +1 -0
  47. package/dist/esm/index.d.ts +1 -1
  48. package/dist/esm/index.d.ts.map +1 -1
  49. package/dist/esm/index.js.map +1 -1
  50. package/dist/esm/meta-tx/biconomy.d.ts +45 -0
  51. package/dist/esm/meta-tx/biconomy.d.ts.map +1 -0
  52. package/dist/esm/meta-tx/biconomy.js +60 -0
  53. package/dist/esm/meta-tx/biconomy.js.map +1 -0
  54. package/dist/esm/meta-tx/handler.d.ts +20 -1
  55. package/dist/esm/meta-tx/handler.d.ts.map +1 -1
  56. package/dist/esm/meta-tx/handler.js +56 -0
  57. package/dist/esm/meta-tx/handler.js.map +1 -1
  58. package/dist/esm/subgraph.d.ts +2848 -280
  59. package/dist/esm/subgraph.d.ts.map +1 -1
  60. package/dist/esm/subgraph.js +284 -39
  61. package/dist/esm/subgraph.js.map +1 -1
  62. package/dist/esm/utils/errors.d.ts +5 -0
  63. package/dist/esm/utils/errors.d.ts.map +1 -0
  64. package/dist/esm/utils/errors.js +8 -0
  65. package/dist/esm/utils/errors.js.map +1 -0
  66. package/dist/esm/utils/graphql.d.ts +43 -0
  67. package/dist/esm/utils/graphql.d.ts.map +1 -1
  68. package/package.json +3 -3
  69. package/src/accounts/queries.graphql +63 -0
  70. package/src/core-sdk.ts +100 -2
  71. package/src/disputes/queries.graphql +9 -9
  72. package/src/event-logs/index.ts +1 -0
  73. package/src/event-logs/queries.graphql +53 -0
  74. package/src/event-logs/subgraph.ts +14 -0
  75. package/src/exchanges/queries.graphql +9 -9
  76. package/src/index.ts +2 -1
  77. package/src/meta-tx/biconomy.ts +129 -0
  78. package/src/meta-tx/handler.ts +84 -2
  79. package/src/metadata/base.graphql +2 -0
  80. package/src/metadata/product-v1.graphql +2 -1
  81. package/src/offers/queries.graphql +3 -0
  82. package/src/subgraph.ts +2603 -240
  83. package/src/utils/errors.ts +5 -0
@@ -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"}
@@ -16,9 +16,15 @@ export declare function getSubgraphSdk(subgraphUrl: string): {
16
16
  exchangesOrderBy?: import("../subgraph").Exchange_OrderBy;
17
17
  exchangesOrderDirection?: import("../subgraph").OrderDirection;
18
18
  exchangesFilter?: import("../subgraph").Exchange_Filter;
19
+ logsSkip?: number;
20
+ logsFirst?: number;
21
+ logsOrderBy?: import("../subgraph").EventLog_OrderBy;
22
+ logsOrderDirection?: import("../subgraph").OrderDirection;
23
+ logsFilter?: import("../subgraph").EventLog_Filter;
19
24
  includeExchanges?: boolean;
20
25
  includeOffers?: boolean;
21
26
  includeFunds?: boolean;
27
+ includeLogs?: boolean;
22
28
  }>, requestHeaders?: Record<string, string> | import("graphql-request/dist/types.dom").Headers | string[][]): Promise<import("../subgraph").GetSellerByIdQueryQuery>;
23
29
  getSellersQuery(variables?: import("../subgraph").Exact<{
24
30
  sellersSkip?: number;
@@ -41,9 +47,15 @@ export declare function getSubgraphSdk(subgraphUrl: string): {
41
47
  exchangesOrderBy?: import("../subgraph").Exchange_OrderBy;
42
48
  exchangesOrderDirection?: import("../subgraph").OrderDirection;
43
49
  exchangesFilter?: import("../subgraph").Exchange_Filter;
50
+ logsSkip?: number;
51
+ logsFirst?: number;
52
+ logsOrderBy?: import("../subgraph").EventLog_OrderBy;
53
+ logsOrderDirection?: import("../subgraph").OrderDirection;
54
+ logsFilter?: import("../subgraph").EventLog_Filter;
44
55
  includeExchanges?: boolean;
45
56
  includeOffers?: boolean;
46
57
  includeFunds?: boolean;
58
+ includeLogs?: boolean;
47
59
  }>, requestHeaders?: Record<string, string> | import("graphql-request/dist/types.dom").Headers | string[][]): Promise<import("../subgraph").GetSellersQueryQuery>;
48
60
  getBuyerByIdQuery(variables: import("../subgraph").Exact<{
49
61
  buyerId: string;
@@ -57,8 +69,14 @@ export declare function getSubgraphSdk(subgraphUrl: string): {
57
69
  exchangesOrderBy?: import("../subgraph").Exchange_OrderBy;
58
70
  exchangesOrderDirection?: import("../subgraph").OrderDirection;
59
71
  exchangesFilter?: import("../subgraph").Exchange_Filter;
72
+ logsSkip?: number;
73
+ logsFirst?: number;
74
+ logsOrderBy?: import("../subgraph").EventLog_OrderBy;
75
+ logsOrderDirection?: import("../subgraph").OrderDirection;
76
+ logsFilter?: import("../subgraph").EventLog_Filter;
60
77
  includeExchanges?: boolean;
61
78
  includeFunds?: boolean;
79
+ includeLogs?: boolean;
62
80
  }>, requestHeaders?: Record<string, string> | import("graphql-request/dist/types.dom").Headers | string[][]): Promise<import("../subgraph").GetBuyerByIdQueryQuery>;
63
81
  getBuyersQuery(variables?: import("../subgraph").Exact<{
64
82
  buyersSkip?: number;
@@ -81,9 +99,15 @@ export declare function getSubgraphSdk(subgraphUrl: string): {
81
99
  exchangesOrderBy?: import("../subgraph").Exchange_OrderBy;
82
100
  exchangesOrderDirection?: import("../subgraph").OrderDirection;
83
101
  exchangesFilter?: import("../subgraph").Exchange_Filter;
102
+ logsSkip?: number;
103
+ logsFirst?: number;
104
+ logsOrderBy?: import("../subgraph").EventLog_OrderBy;
105
+ logsOrderDirection?: import("../subgraph").OrderDirection;
106
+ logsFilter?: import("../subgraph").EventLog_Filter;
84
107
  includeExchanges?: boolean;
85
108
  includeOffers?: boolean;
86
109
  includeFunds?: boolean;
110
+ includeLogs?: boolean;
87
111
  }>, requestHeaders?: Record<string, string> | import("graphql-request/dist/types.dom").Headers | string[][]): Promise<import("../subgraph").GetBuyersQueryQuery>;
88
112
  getDisputeResolverByIdQuery(variables: import("../subgraph").Exact<{
89
113
  disputeResolverId: string;
@@ -92,7 +116,13 @@ export declare function getSubgraphSdk(subgraphUrl: string): {
92
116
  offersOrderBy?: import("../subgraph").Offer_OrderBy;
93
117
  offersOrderDirection?: import("../subgraph").OrderDirection;
94
118
  offersFilter?: import("../subgraph").Offer_Filter;
119
+ logsSkip?: number;
120
+ logsFirst?: number;
121
+ logsOrderBy?: import("../subgraph").EventLog_OrderBy;
122
+ logsOrderDirection?: import("../subgraph").OrderDirection;
123
+ logsFilter?: import("../subgraph").EventLog_Filter;
95
124
  includeOffers?: boolean;
125
+ includeLogs?: boolean;
96
126
  }>, requestHeaders?: Record<string, string> | import("graphql-request/dist/types.dom").Headers | string[][]): Promise<import("../subgraph").GetDisputeResolverByIdQueryQuery>;
97
127
  getDisputeResolversQuery(variables?: import("../subgraph").Exact<{
98
128
  disputeResolversSkip?: number;
@@ -105,7 +135,13 @@ export declare function getSubgraphSdk(subgraphUrl: string): {
105
135
  offersOrderBy?: import("../subgraph").Offer_OrderBy;
106
136
  offersOrderDirection?: import("../subgraph").OrderDirection;
107
137
  offersFilter?: import("../subgraph").Offer_Filter;
138
+ logsSkip?: number;
139
+ logsFirst?: number;
140
+ logsOrderBy?: import("../subgraph").EventLog_OrderBy;
141
+ logsOrderDirection?: import("../subgraph").OrderDirection;
142
+ logsFilter?: import("../subgraph").EventLog_Filter;
108
143
  includeOffers?: boolean;
144
+ includeLogs?: boolean;
109
145
  }>, requestHeaders?: Record<string, string> | import("graphql-request/dist/types.dom").Headers | string[][]): Promise<import("../subgraph").GetDisputeResolversQueryQuery>;
110
146
  getDisputeByIdQuery(variables: import("../subgraph").Exact<{
111
147
  disputeId: string;
@@ -162,6 +198,13 @@ export declare function getSubgraphSdk(subgraphUrl: string): {
162
198
  fundsFilter?: import("../subgraph").FundsEntity_Filter;
163
199
  includeFunds?: boolean;
164
200
  }>, requestHeaders?: Record<string, string> | import("graphql-request/dist/types.dom").Headers | string[][]): Promise<import("../subgraph").GetExchangeTokensQueryQuery>;
201
+ getEventLogsQuery(variables?: import("../subgraph").Exact<{
202
+ logsSkip?: number;
203
+ logsFirst?: number;
204
+ logsOrderBy?: import("../subgraph").EventLog_OrderBy;
205
+ logsOrderDirection?: import("../subgraph").OrderDirection;
206
+ logsFilter?: import("../subgraph").EventLog_Filter;
207
+ }>, requestHeaders?: Record<string, string> | import("graphql-request/dist/types.dom").Headers | string[][]): Promise<import("../subgraph").GetEventLogsQueryQuery>;
165
208
  getExchangeByIdQuery(variables: import("../subgraph").Exact<{
166
209
  exchangeId: string;
167
210
  }>, requestHeaders?: Record<string, string> | import("graphql-request/dist/types.dom").Headers | string[][]): Promise<import("../subgraph").GetExchangeByIdQueryQuery>;
@@ -1 +1 @@
1
- {"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../../src/utils/graphql.ts"],"names":[],"mappings":"AAGA,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGjD"}
1
+ {"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../../src/utils/graphql.ts"],"names":[],"mappings":"AAGA,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGjD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bosonprotocol/core-sdk",
3
- "version": "1.16.0-alpha.9",
3
+ "version": "1.16.0",
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.11",
36
+ "@bosonprotocol/common": "^1.12.0",
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": "1f250720591e11c1549da2750113060bfd594a74"
57
+ "gitHead": "8678a1542dcdeec7991c9fcb99525ba7102d74a3"
58
58
  }
@@ -15,9 +15,15 @@ query getSellerByIdQuery(
15
15
  $exchangesOrderBy: Exchange_orderBy
16
16
  $exchangesOrderDirection: OrderDirection
17
17
  $exchangesFilter: Exchange_filter
18
+ $logsSkip: Int
19
+ $logsFirst: Int
20
+ $logsOrderBy: EventLog_orderBy
21
+ $logsOrderDirection: OrderDirection
22
+ $logsFilter: EventLog_filter
18
23
  $includeExchanges: Boolean = false
19
24
  $includeOffers: Boolean = false
20
25
  $includeFunds: Boolean = false
26
+ $includeLogs: Boolean = false
21
27
  ) {
22
28
  seller(id: $sellerId) {
23
29
  ...SellerFields
@@ -45,9 +51,15 @@ query getSellersQuery(
45
51
  $exchangesOrderBy: Exchange_orderBy
46
52
  $exchangesOrderDirection: OrderDirection
47
53
  $exchangesFilter: Exchange_filter
54
+ $logsSkip: Int
55
+ $logsFirst: Int
56
+ $logsOrderBy: EventLog_orderBy
57
+ $logsOrderDirection: OrderDirection
58
+ $logsFilter: EventLog_filter
48
59
  $includeExchanges: Boolean = false
49
60
  $includeOffers: Boolean = false
50
61
  $includeFunds: Boolean = false
62
+ $includeLogs: Boolean = false
51
63
  ) {
52
64
  sellers(
53
65
  skip: $sellersSkip
@@ -72,8 +84,14 @@ query getBuyerByIdQuery(
72
84
  $exchangesOrderBy: Exchange_orderBy
73
85
  $exchangesOrderDirection: OrderDirection
74
86
  $exchangesFilter: Exchange_filter
87
+ $logsSkip: Int
88
+ $logsFirst: Int
89
+ $logsOrderBy: EventLog_orderBy
90
+ $logsOrderDirection: OrderDirection
91
+ $logsFilter: EventLog_filter
75
92
  $includeExchanges: Boolean = false
76
93
  $includeFunds: Boolean = false
94
+ $includeLogs: Boolean = false
77
95
  ) {
78
96
  buyer(id: $buyerId) {
79
97
  ...BuyerFields
@@ -101,9 +119,15 @@ query getBuyersQuery(
101
119
  $exchangesOrderBy: Exchange_orderBy
102
120
  $exchangesOrderDirection: OrderDirection
103
121
  $exchangesFilter: Exchange_filter
122
+ $logsSkip: Int
123
+ $logsFirst: Int
124
+ $logsOrderBy: EventLog_orderBy
125
+ $logsOrderDirection: OrderDirection
126
+ $logsFilter: EventLog_filter
104
127
  $includeExchanges: Boolean = false
105
128
  $includeOffers: Boolean = false
106
129
  $includeFunds: Boolean = false
130
+ $includeLogs: Boolean = false
107
131
  ) {
108
132
  buyers(
109
133
  skip: $buyersSkip
@@ -123,7 +147,13 @@ query getDisputeResolverByIdQuery(
123
147
  $offersOrderBy: Offer_orderBy
124
148
  $offersOrderDirection: OrderDirection
125
149
  $offersFilter: Offer_filter
150
+ $logsSkip: Int
151
+ $logsFirst: Int
152
+ $logsOrderBy: EventLog_orderBy
153
+ $logsOrderDirection: OrderDirection
154
+ $logsFilter: EventLog_filter
126
155
  $includeOffers: Boolean = false
156
+ $includeLogs: Boolean = false
127
157
  ) {
128
158
  disputeResolver(id: $disputeResolverId) {
129
159
  ...DisputeResolverFields
@@ -141,7 +171,13 @@ query getDisputeResolversQuery(
141
171
  $offersOrderBy: Offer_orderBy
142
172
  $offersOrderDirection: OrderDirection
143
173
  $offersFilter: Offer_filter
174
+ $logsSkip: Int
175
+ $logsFirst: Int
176
+ $logsOrderBy: EventLog_orderBy
177
+ $logsOrderDirection: OrderDirection
178
+ $logsFilter: EventLog_filter
144
179
  $includeOffers: Boolean = false
180
+ $includeLogs: Boolean = false
145
181
  ) {
146
182
  disputeResolvers(
147
183
  skip: $disputeResolversSkip
@@ -183,6 +219,15 @@ fragment SellerFields on Seller {
183
219
  ) @include(if: $includeExchanges) {
184
220
  ...BaseExchangeFields
185
221
  }
222
+ logs(
223
+ skip: $logsSkip
224
+ first: $logsFirst
225
+ orderBy: $logsOrderBy
226
+ orderDirection: $logsOrderDirection
227
+ where: $logsFilter
228
+ ) @include(if: $includeLogs) {
229
+ ...BaseEventLogFields
230
+ }
186
231
  }
187
232
 
188
233
  fragment BaseSellerFields on Seller {
@@ -217,6 +262,15 @@ fragment BuyerFields on Buyer {
217
262
  ) @include(if: $includeExchanges) {
218
263
  ...BaseExchangeFields
219
264
  }
265
+ logs(
266
+ skip: $logsSkip
267
+ first: $logsFirst
268
+ orderBy: $logsOrderBy
269
+ orderDirection: $logsOrderDirection
270
+ where: $logsFilter
271
+ ) @include(if: $includeLogs) {
272
+ ...BaseEventLogFields
273
+ }
220
274
  }
221
275
 
222
276
  fragment BaseBuyerFields on Buyer {
@@ -236,6 +290,15 @@ fragment DisputeResolverFields on DisputeResolver {
236
290
  ) @include(if: $includeOffers) {
237
291
  ...BaseOfferFields
238
292
  }
293
+ logs(
294
+ skip: $logsSkip
295
+ first: $logsFirst
296
+ orderBy: $logsOrderBy
297
+ orderDirection: $logsOrderDirection
298
+ where: $logsFilter
299
+ ) @include(if: $includeLogs) {
300
+ ...BaseEventLogFields
301
+ }
239
302
  }
240
303
 
241
304
  fragment BaseDisputeResolverFields on DisputeResolver {
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";
@@ -22,6 +24,7 @@ import * as funds from "./funds";
22
24
  import * as metaTx from "./meta-tx";
23
25
  import * as metadata from "./metadata";
24
26
  import * as subgraph from "./subgraph";
27
+ import * as eventLogs from "./event-logs";
25
28
 
26
29
  import { getValueFromLogs } from "./utils/logs";
27
30
 
@@ -35,6 +38,8 @@ export class CoreSDK {
35
38
  private _chainId: number;
36
39
  private _tokenInfoManager: TokenInfoManager;
37
40
 
41
+ private _metaTxConfig?: Partial<MetaTxConfig>;
42
+
38
43
  /**
39
44
  * Creates an instance of `CoreSDK`
40
45
  * @param args - Constructor args
@@ -46,6 +51,7 @@ export class CoreSDK {
46
51
  metadataStorage?: MetadataStorage;
47
52
  theGraphStorage?: MetadataStorage;
48
53
  chainId: number;
54
+ metaTx?: Partial<MetaTxConfig>;
49
55
  }) {
50
56
  this._web3Lib = opts.web3Lib;
51
57
  this._subgraphUrl = opts.subgraphUrl;
@@ -53,6 +59,7 @@ export class CoreSDK {
53
59
  this._metadataStorage = opts.metadataStorage;
54
60
  this._theGraphStorage = opts.theGraphStorage;
55
61
  this._chainId = opts.chainId;
62
+ this._metaTxConfig = opts.metaTx;
56
63
  }
57
64
 
58
65
  /**
@@ -76,6 +83,7 @@ export class CoreSDK {
76
83
  envName: EnvironmentType;
77
84
  metadataStorage?: MetadataStorage;
78
85
  theGraphStorage?: MetadataStorage;
86
+ metaTx?: Partial<MetaTxConfig>;
79
87
  }) {
80
88
  const defaultConfig = getDefaultConfig(args.envName);
81
89
 
@@ -85,10 +93,27 @@ export class CoreSDK {
85
93
  theGraphStorage: args.theGraphStorage,
86
94
  subgraphUrl: defaultConfig.subgraphUrl,
87
95
  protocolDiamond: defaultConfig.contracts.protocolDiamond,
88
- chainId: defaultConfig.chainId
96
+ chainId: defaultConfig.chainId,
97
+ metaTx: {
98
+ ...defaultConfig.metaTx,
99
+ ...args.metaTx
100
+ }
89
101
  });
90
102
  }
91
103
 
104
+ public get metaTxConfig() {
105
+ return this._metaTxConfig;
106
+ }
107
+
108
+ public get isMetaTxConfigSet() {
109
+ return (
110
+ !!this._metaTxConfig &&
111
+ !!this._metaTxConfig.apiId &&
112
+ !!this._metaTxConfig.apiKey &&
113
+ !!this._metaTxConfig.relayerUrl
114
+ );
115
+ }
116
+
92
117
  /* -------------------------------------------------------------------------- */
93
118
  /* Metadata related methods */
94
119
  /* -------------------------------------------------------------------------- */
@@ -1405,4 +1430,77 @@ export class CoreSDK {
1405
1430
  ...args
1406
1431
  });
1407
1432
  }
1433
+
1434
+ /**
1435
+ * Relay a meta transaction,
1436
+ * @param metaTxParams - Required params for meta transaction.
1437
+ * @param overrides - Optional overrides.
1438
+ * @returns Transaction response.
1439
+ */
1440
+ public async relayMetaTransaction(
1441
+ metaTxParams: {
1442
+ functionName: string;
1443
+ functionSignature: BytesLike;
1444
+ nonce: BigNumberish;
1445
+ sigR: BytesLike;
1446
+ sigS: BytesLike;
1447
+ sigV: BigNumberish;
1448
+ },
1449
+ overrides: Partial<{
1450
+ userAddress: string;
1451
+ contractAddress: string;
1452
+ metaTxConfig: Partial<MetaTxConfig>;
1453
+ }> = {}
1454
+ ): Promise<ContractTransaction> {
1455
+ const metaTxRelayerUrl =
1456
+ this._metaTxConfig?.relayerUrl || overrides.metaTxConfig?.relayerUrl;
1457
+ const metaTxApiKey =
1458
+ this._metaTxConfig?.apiKey || overrides.metaTxConfig?.apiKey;
1459
+ const metaTxApiId =
1460
+ this._metaTxConfig?.apiId || overrides.metaTxConfig?.apiId;
1461
+
1462
+ if (!this.isMetaTxConfigSet) {
1463
+ throw new Error(
1464
+ "CoreSDK not configured to relay meta transactions. Either pass in 'relayerUrl', 'apiKey' and 'apiId' during initialization OR as overrides arguments."
1465
+ );
1466
+ }
1467
+
1468
+ return metaTx.handler.relayMetaTransaction({
1469
+ web3LibAdapter: this._web3Lib,
1470
+ contractAddress: overrides.contractAddress || this._protocolDiamond,
1471
+ chainId: this._chainId,
1472
+ metaTx: {
1473
+ config: {
1474
+ relayerUrl: metaTxRelayerUrl,
1475
+ apiId: metaTxApiId,
1476
+ apiKey: metaTxApiKey
1477
+ },
1478
+ params: {
1479
+ userAddress:
1480
+ overrides.userAddress || (await this._web3Lib.getSignerAddress()),
1481
+ functionName: metaTxParams.functionName,
1482
+ functionSignature: metaTxParams.functionSignature,
1483
+ nonce: metaTxParams.nonce,
1484
+ sigR: metaTxParams.sigR,
1485
+ sigS: metaTxParams.sigS,
1486
+ sigV: metaTxParams.sigV
1487
+ }
1488
+ }
1489
+ });
1490
+ }
1491
+
1492
+ /* -------------------------------------------------------------------------- */
1493
+ /* Event logs */
1494
+ /* -------------------------------------------------------------------------- */
1495
+
1496
+ /**
1497
+ * Returns event logs from subgraph.
1498
+ * @param queryVars - Optional query variables to skip, order or filter.
1499
+ * @returns Event log entities from subgraph.
1500
+ */
1501
+ public async getEventLogs(
1502
+ queryVars?: subgraph.GetEventLogsQueryQueryVariables
1503
+ ) {
1504
+ return eventLogs.subgraph.getEventLogs(this._subgraphUrl, queryVars);
1505
+ }
1408
1506
  }
@@ -32,6 +32,15 @@ query getDisputesQuery(
32
32
 
33
33
  fragment DisputeFields on Dispute {
34
34
  ...BaseDisputeFields
35
+ exchange {
36
+ ...BaseExchangeFields
37
+ }
38
+ seller {
39
+ ...BaseSellerFields
40
+ }
41
+ buyer {
42
+ ...BaseBuyerFields
43
+ }
35
44
  }
36
45
 
37
46
  fragment BaseDisputeFields on Dispute {
@@ -47,13 +56,4 @@ fragment BaseDisputeFields on Dispute {
47
56
  decidedDate
48
57
  refusedDate
49
58
  timeout
50
- exchange {
51
- ...BaseExchangeFields
52
- }
53
- seller {
54
- ...BaseSellerFields
55
- }
56
- buyer {
57
- ...BaseBuyerFields
58
- }
59
59
  }
@@ -0,0 +1 @@
1
+ export * as subgraph from "./subgraph";
@@ -0,0 +1,53 @@
1
+ query getEventLogsQuery(
2
+ $logsSkip: Int
3
+ $logsFirst: Int
4
+ $logsOrderBy: EventLog_orderBy
5
+ $logsOrderDirection: OrderDirection
6
+ $logsFilter: EventLog_filter
7
+ ) {
8
+ eventLogs(
9
+ skip: $logsSkip
10
+ first: $logsFirst
11
+ orderBy: $logsOrderBy
12
+ orderDirection: $logsOrderDirection
13
+ where: $logsFilter
14
+ ) {
15
+ ...BaseEventLogFields
16
+ }
17
+ }
18
+
19
+ fragment BaseEventLogFields on EventLog {
20
+ id
21
+ hash
22
+ type
23
+ timestamp
24
+ executedBy
25
+
26
+ account {
27
+ id
28
+ }
29
+
30
+ ... on OfferEventLog {
31
+ offer {
32
+ id
33
+ }
34
+ }
35
+
36
+ ... on ExchangeEventLog {
37
+ exchange {
38
+ id
39
+ }
40
+ }
41
+
42
+ ... on FundsEventLog {
43
+ funds {
44
+ id
45
+ }
46
+ }
47
+
48
+ ... on DisputeEventLog {
49
+ dispute {
50
+ id
51
+ }
52
+ }
53
+ }
@@ -0,0 +1,14 @@
1
+ import { getSubgraphSdk } from "../utils/graphql";
2
+ import {
3
+ GetEventLogsQueryQueryVariables,
4
+ BaseEventLogFieldsFragment
5
+ } from "../subgraph";
6
+
7
+ export async function getEventLogs(
8
+ subgraphUrl: string,
9
+ queryVars: GetEventLogsQueryQueryVariables = {}
10
+ ): Promise<BaseEventLogFieldsFragment[]> {
11
+ const subgraphSdk = getSubgraphSdk(subgraphUrl);
12
+ const { eventLogs = [] } = await subgraphSdk.getEventLogsQuery(queryVars);
13
+ return eventLogs;
14
+ }
@@ -24,18 +24,9 @@ query getExchangesQuery(
24
24
 
25
25
  fragment ExchangeFields on Exchange {
26
26
  ...BaseExchangeFields
27
- buyer {
28
- ...BaseBuyerFields
29
- }
30
- seller {
31
- ...BaseSellerFields
32
- }
33
27
  offer {
34
28
  ...BaseOfferFields
35
29
  }
36
- dispute {
37
- ...BaseDisputeFields
38
- }
39
30
  }
40
31
 
41
32
  fragment BaseExchangeFields on Exchange {
@@ -51,4 +42,13 @@ fragment BaseExchangeFields on Exchange {
51
42
  completedDate
52
43
  disputedDate
53
44
  expired
45
+ dispute {
46
+ ...BaseDisputeFields
47
+ }
48
+ buyer {
49
+ ...BaseBuyerFields
50
+ }
51
+ seller {
52
+ ...BaseSellerFields
53
+ }
54
54
  }
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";