@bosonprotocol/core-sdk 1.40.0-alpha.15 → 1.40.0-alpha.17

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 (70) hide show
  1. package/dist/cjs/core-sdk.d.ts +3 -1
  2. package/dist/cjs/core-sdk.d.ts.map +1 -1
  3. package/dist/cjs/core-sdk.js +5 -1
  4. package/dist/cjs/core-sdk.js.map +1 -1
  5. package/dist/cjs/errors/mixin.d.ts +9 -0
  6. package/dist/cjs/errors/mixin.d.ts.map +1 -0
  7. package/dist/cjs/errors/mixin.js +41 -0
  8. package/dist/cjs/errors/mixin.js.map +1 -0
  9. package/dist/cjs/exchanges/mixin.d.ts +6 -1
  10. package/dist/cjs/exchanges/mixin.d.ts.map +1 -1
  11. package/dist/cjs/exchanges/mixin.js +10 -0
  12. package/dist/cjs/exchanges/mixin.js.map +1 -1
  13. package/dist/cjs/metadata/storeMetadataItems.js +1 -1
  14. package/dist/cjs/metadata/storeMetadataItems.js.map +1 -1
  15. package/dist/cjs/mixins/base-core-sdk.d.ts +2 -1
  16. package/dist/cjs/mixins/base-core-sdk.d.ts.map +1 -1
  17. package/dist/cjs/mixins/base-core-sdk.js +1 -0
  18. package/dist/cjs/mixins/base-core-sdk.js.map +1 -1
  19. package/dist/cjs/subgraph/mixin.d.ts +8 -0
  20. package/dist/cjs/subgraph/mixin.d.ts.map +1 -0
  21. package/dist/cjs/subgraph/mixin.js +122 -0
  22. package/dist/cjs/subgraph/mixin.js.map +1 -0
  23. package/dist/cjs/subgraph.d.ts +345 -368
  24. package/dist/cjs/subgraph.d.ts.map +1 -1
  25. package/dist/cjs/subgraph.js +24 -20
  26. package/dist/cjs/subgraph.js.map +1 -1
  27. package/dist/cjs/voucher/mixin.d.ts +1 -3
  28. package/dist/cjs/voucher/mixin.d.ts.map +1 -1
  29. package/dist/cjs/voucher/mixin.js +10 -2
  30. package/dist/cjs/voucher/mixin.js.map +1 -1
  31. package/dist/esm/core-sdk.d.ts +3 -1
  32. package/dist/esm/core-sdk.d.ts.map +1 -1
  33. package/dist/esm/core-sdk.js +5 -1
  34. package/dist/esm/core-sdk.js.map +1 -1
  35. package/dist/esm/errors/mixin.d.ts +9 -0
  36. package/dist/esm/errors/mixin.d.ts.map +1 -0
  37. package/dist/esm/errors/mixin.js +37 -0
  38. package/dist/esm/errors/mixin.js.map +1 -0
  39. package/dist/esm/exchanges/mixin.d.ts +6 -1
  40. package/dist/esm/exchanges/mixin.d.ts.map +1 -1
  41. package/dist/esm/exchanges/mixin.js +10 -0
  42. package/dist/esm/exchanges/mixin.js.map +1 -1
  43. package/dist/esm/metadata/storeMetadataItems.js +1 -1
  44. package/dist/esm/metadata/storeMetadataItems.js.map +1 -1
  45. package/dist/esm/mixins/base-core-sdk.d.ts +2 -1
  46. package/dist/esm/mixins/base-core-sdk.d.ts.map +1 -1
  47. package/dist/esm/mixins/base-core-sdk.js +1 -0
  48. package/dist/esm/mixins/base-core-sdk.js.map +1 -1
  49. package/dist/esm/subgraph/mixin.d.ts +8 -0
  50. package/dist/esm/subgraph/mixin.d.ts.map +1 -0
  51. package/dist/esm/subgraph/mixin.js +102 -0
  52. package/dist/esm/subgraph/mixin.js.map +1 -0
  53. package/dist/esm/subgraph.d.ts +345 -368
  54. package/dist/esm/subgraph.d.ts.map +1 -1
  55. package/dist/esm/subgraph.js +20 -16
  56. package/dist/esm/subgraph.js.map +1 -1
  57. package/dist/esm/voucher/mixin.d.ts +1 -3
  58. package/dist/esm/voucher/mixin.d.ts.map +1 -1
  59. package/dist/esm/voucher/mixin.js +10 -2
  60. package/dist/esm/voucher/mixin.js.map +1 -1
  61. package/package.json +3 -3
  62. package/src/accounts/queries.graphql +4 -2
  63. package/src/core-sdk.ts +8 -2
  64. package/src/errors/mixin.ts +44 -0
  65. package/src/exchanges/mixin.ts +18 -1
  66. package/src/metadata/storeMetadataItems.ts +1 -1
  67. package/src/mixins/base-core-sdk.ts +4 -1
  68. package/src/subgraph/mixin.ts +119 -0
  69. package/src/subgraph.ts +364 -370
  70. package/src/voucher/mixin.ts +14 -5
@@ -3,7 +3,8 @@ import {
3
3
  MetadataStorage,
4
4
  MetaTxConfig,
5
5
  ContractAddresses,
6
- Lens
6
+ Lens,
7
+ ErrorFragment
7
8
  } from "@bosonprotocol/common";
8
9
  import { TokenInfoManager } from "../utils/tokenInfoManager";
9
10
 
@@ -17,6 +18,8 @@ export class BaseCoreSDK {
17
18
  protected _chainId: number;
18
19
  protected _tokenInfoManager: TokenInfoManager;
19
20
 
21
+ protected _errorsMap = new Map<string, ErrorFragment>();
22
+
20
23
  protected _metaTxConfig?: Partial<MetaTxConfig>;
21
24
  protected _lens?: Lens;
22
25
  protected _contracts?: ContractAddresses;
@@ -0,0 +1,119 @@
1
+ import { GraphQLClient, gql } from "graphql-request";
2
+ import { TransactionReceipt, TransactionResponse } from "@bosonprotocol/common";
3
+ import { BaseCoreSDK } from "./../mixins/base-core-sdk";
4
+
5
+ const DELAYS_PER_CHAINID: {
6
+ [key: number]: {
7
+ BLOCK_DELAY: number;
8
+ MAX_SAME_BLOCK: number;
9
+ MAX_SAME_BLOCK_DELAY: number;
10
+ DEFAULT_TIMEOUT: number;
11
+ };
12
+ } = {
13
+ 1: {
14
+ BLOCK_DELAY: 12000,
15
+ MAX_SAME_BLOCK: 20,
16
+ MAX_SAME_BLOCK_DELAY: 30000,
17
+ DEFAULT_TIMEOUT: 60000
18
+ },
19
+ 5: {
20
+ BLOCK_DELAY: 12000,
21
+ MAX_SAME_BLOCK: 20,
22
+ MAX_SAME_BLOCK_DELAY: 30000,
23
+ DEFAULT_TIMEOUT: 60000
24
+ },
25
+ 137: {
26
+ BLOCK_DELAY: 1000,
27
+ MAX_SAME_BLOCK: 20,
28
+ MAX_SAME_BLOCK_DELAY: 5000,
29
+ DEFAULT_TIMEOUT: 30000
30
+ },
31
+ 80001: {
32
+ BLOCK_DELAY: 1000,
33
+ MAX_SAME_BLOCK: 20,
34
+ MAX_SAME_BLOCK_DELAY: 5000,
35
+ DEFAULT_TIMEOUT: 30000
36
+ },
37
+ 80002: {
38
+ BLOCK_DELAY: 1000,
39
+ MAX_SAME_BLOCK: 20,
40
+ MAX_SAME_BLOCK_DELAY: 5000,
41
+ DEFAULT_TIMEOUT: 30000
42
+ },
43
+ 11155111: {
44
+ BLOCK_DELAY: 12000,
45
+ MAX_SAME_BLOCK: 20,
46
+ MAX_SAME_BLOCK_DELAY: 30000,
47
+ DEFAULT_TIMEOUT: 60000
48
+ },
49
+ 31337: {
50
+ BLOCK_DELAY: 200,
51
+ MAX_SAME_BLOCK: 20,
52
+ MAX_SAME_BLOCK_DELAY: 1000,
53
+ DEFAULT_TIMEOUT: 3000
54
+ }
55
+ };
56
+
57
+ export class SubgraphMixin extends BaseCoreSDK {
58
+ public async waitForGraphNodeIndexing(
59
+ blockNumberOrTransaction?: number | TransactionResponse | TransactionReceipt
60
+ ) {
61
+ const delays = DELAYS_PER_CHAINID[this._chainId];
62
+ let blockToWaitFor = 0;
63
+ if (typeof blockNumberOrTransaction === "number") {
64
+ blockToWaitFor = blockNumberOrTransaction;
65
+ } else if (blockNumberOrTransaction?.["blockNumber"]) {
66
+ blockToWaitFor = (blockNumberOrTransaction as TransactionReceipt)
67
+ .blockNumber;
68
+ } else if (blockNumberOrTransaction?.["wait"]) {
69
+ const txReceipt = await (
70
+ blockNumberOrTransaction as TransactionResponse
71
+ ).wait();
72
+ blockToWaitFor = txReceipt.blockNumber;
73
+ }
74
+ if (blockToWaitFor > 0) {
75
+ let currentBlock = await this.getSubgraphBlockNumber();
76
+ let oldCurrentBlock = currentBlock;
77
+ let sameBlockNumber = 0;
78
+ while (currentBlock < blockToWaitFor) {
79
+ await this.wait(delays.BLOCK_DELAY);
80
+ currentBlock = await this.getSubgraphBlockNumber();
81
+ if (currentBlock === oldCurrentBlock) {
82
+ if (sameBlockNumber++ >= delays.MAX_SAME_BLOCK) {
83
+ // Seems that the subgraph does not update its current block
84
+ console.error(
85
+ `Seems that the subgraph does not update its current block after ${currentBlock}`
86
+ );
87
+ await this.wait(delays.MAX_SAME_BLOCK_DELAY);
88
+ return;
89
+ }
90
+ }
91
+ oldCurrentBlock = currentBlock;
92
+ }
93
+ return;
94
+ }
95
+ await this.wait(delays.DEFAULT_TIMEOUT);
96
+ }
97
+
98
+ public async getSubgraphBlockNumber(): Promise<number> {
99
+ const client = new GraphQLClient(this._subgraphUrl);
100
+ const response = await client.request<{
101
+ _meta?: { block?: { number?: number } };
102
+ }>(gql`
103
+ query MyQuery {
104
+ _meta {
105
+ block {
106
+ number
107
+ }
108
+ }
109
+ }
110
+ `);
111
+ return response?._meta?.block?.number || 0;
112
+ }
113
+
114
+ protected async wait(ms: number) {
115
+ return new Promise((resolve) => {
116
+ setTimeout(resolve, ms);
117
+ });
118
+ }
119
+ }