@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.
- package/dist/cjs/core-sdk.d.ts +3 -1
- package/dist/cjs/core-sdk.d.ts.map +1 -1
- package/dist/cjs/core-sdk.js +5 -1
- package/dist/cjs/core-sdk.js.map +1 -1
- package/dist/cjs/errors/mixin.d.ts +9 -0
- package/dist/cjs/errors/mixin.d.ts.map +1 -0
- package/dist/cjs/errors/mixin.js +41 -0
- package/dist/cjs/errors/mixin.js.map +1 -0
- package/dist/cjs/exchanges/mixin.d.ts +6 -1
- package/dist/cjs/exchanges/mixin.d.ts.map +1 -1
- package/dist/cjs/exchanges/mixin.js +10 -0
- package/dist/cjs/exchanges/mixin.js.map +1 -1
- package/dist/cjs/metadata/storeMetadataItems.js +1 -1
- package/dist/cjs/metadata/storeMetadataItems.js.map +1 -1
- package/dist/cjs/mixins/base-core-sdk.d.ts +2 -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/subgraph/mixin.d.ts +8 -0
- package/dist/cjs/subgraph/mixin.d.ts.map +1 -0
- package/dist/cjs/subgraph/mixin.js +122 -0
- package/dist/cjs/subgraph/mixin.js.map +1 -0
- package/dist/cjs/subgraph.d.ts +345 -368
- package/dist/cjs/subgraph.d.ts.map +1 -1
- package/dist/cjs/subgraph.js +24 -20
- package/dist/cjs/subgraph.js.map +1 -1
- package/dist/cjs/voucher/mixin.d.ts +1 -3
- package/dist/cjs/voucher/mixin.d.ts.map +1 -1
- package/dist/cjs/voucher/mixin.js +10 -2
- package/dist/cjs/voucher/mixin.js.map +1 -1
- package/dist/esm/core-sdk.d.ts +3 -1
- package/dist/esm/core-sdk.d.ts.map +1 -1
- package/dist/esm/core-sdk.js +5 -1
- package/dist/esm/core-sdk.js.map +1 -1
- package/dist/esm/errors/mixin.d.ts +9 -0
- package/dist/esm/errors/mixin.d.ts.map +1 -0
- package/dist/esm/errors/mixin.js +37 -0
- package/dist/esm/errors/mixin.js.map +1 -0
- package/dist/esm/exchanges/mixin.d.ts +6 -1
- package/dist/esm/exchanges/mixin.d.ts.map +1 -1
- package/dist/esm/exchanges/mixin.js +10 -0
- package/dist/esm/exchanges/mixin.js.map +1 -1
- package/dist/esm/metadata/storeMetadataItems.js +1 -1
- package/dist/esm/metadata/storeMetadataItems.js.map +1 -1
- package/dist/esm/mixins/base-core-sdk.d.ts +2 -1
- package/dist/esm/mixins/base-core-sdk.d.ts.map +1 -1
- package/dist/esm/mixins/base-core-sdk.js +1 -0
- package/dist/esm/mixins/base-core-sdk.js.map +1 -1
- package/dist/esm/subgraph/mixin.d.ts +8 -0
- package/dist/esm/subgraph/mixin.d.ts.map +1 -0
- package/dist/esm/subgraph/mixin.js +102 -0
- package/dist/esm/subgraph/mixin.js.map +1 -0
- package/dist/esm/subgraph.d.ts +345 -368
- package/dist/esm/subgraph.d.ts.map +1 -1
- package/dist/esm/subgraph.js +20 -16
- package/dist/esm/subgraph.js.map +1 -1
- package/dist/esm/voucher/mixin.d.ts +1 -3
- package/dist/esm/voucher/mixin.d.ts.map +1 -1
- package/dist/esm/voucher/mixin.js +10 -2
- package/dist/esm/voucher/mixin.js.map +1 -1
- package/package.json +3 -3
- package/src/accounts/queries.graphql +4 -2
- package/src/core-sdk.ts +8 -2
- package/src/errors/mixin.ts +44 -0
- package/src/exchanges/mixin.ts +18 -1
- package/src/metadata/storeMetadataItems.ts +1 -1
- package/src/mixins/base-core-sdk.ts +4 -1
- package/src/subgraph/mixin.ts +119 -0
- package/src/subgraph.ts +364 -370
- 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
|
+
}
|