@xyo-network/witness-blockchain-abstract 2.80.0 → 2.81.0-rc.1
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/browser/Witness.d.cts +6 -6
- package/dist/browser/Witness.d.cts.map +1 -1
- package/dist/browser/Witness.d.mts +6 -6
- package/dist/browser/Witness.d.mts.map +1 -1
- package/dist/browser/Witness.d.ts +6 -6
- package/dist/browser/Witness.d.ts.map +1 -1
- package/dist/browser/index.cjs +14 -33
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +12 -31
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/lib/getProviderFromEnv.d.cts +4 -6
- package/dist/browser/lib/getProviderFromEnv.d.cts.map +1 -1
- package/dist/browser/lib/getProviderFromEnv.d.mts +4 -6
- package/dist/browser/lib/getProviderFromEnv.d.mts.map +1 -1
- package/dist/browser/lib/getProviderFromEnv.d.ts +4 -6
- package/dist/browser/lib/getProviderFromEnv.d.ts.map +1 -1
- package/dist/node/Witness.d.cts +6 -6
- package/dist/node/Witness.d.cts.map +1 -1
- package/dist/node/Witness.d.mts +6 -6
- package/dist/node/Witness.d.mts.map +1 -1
- package/dist/node/Witness.d.ts +6 -6
- package/dist/node/Witness.d.ts.map +1 -1
- package/dist/node/index.cjs +14 -33
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +12 -31
- package/dist/node/index.js.map +1 -1
- package/dist/node/lib/getProviderFromEnv.d.cts +4 -6
- package/dist/node/lib/getProviderFromEnv.d.cts.map +1 -1
- package/dist/node/lib/getProviderFromEnv.d.mts +4 -6
- package/dist/node/lib/getProviderFromEnv.d.mts.map +1 -1
- package/dist/node/lib/getProviderFromEnv.d.ts +4 -6
- package/dist/node/lib/getProviderFromEnv.d.ts.map +1 -1
- package/package.json +9 -9
- package/src/Witness.ts +8 -8
- package/src/lib/getProviderFromEnv.ts +19 -45
|
@@ -1,78 +1,52 @@
|
|
|
1
|
-
import { BaseProvider, InfuraProvider, InfuraWebSocketProvider, JsonRpcProvider, WebSocketProvider } from '@ethersproject/providers'
|
|
2
|
-
import { ConnectionInfo } from '@ethersproject/web'
|
|
3
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
|
+
import { InfuraProvider, InfuraWebSocketProvider, JsonRpcProvider, Provider, WebSocketProvider } from 'ethers'
|
|
4
3
|
|
|
5
4
|
export type ProviderSource = 'infura' | 'quicknode'
|
|
6
5
|
export type ProviderType = 'rpc' | 'wss'
|
|
7
6
|
|
|
8
7
|
export interface GetProvidersFromEnvOptions {
|
|
9
|
-
overrides?: Partial<ConnectionInfo>
|
|
10
8
|
providerSource?: ProviderSource
|
|
11
9
|
providerType?: ProviderType
|
|
12
10
|
}
|
|
13
11
|
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
const configureConnection = (connection?: ConnectionInfo, { timeout = 1000 }: Partial<ConnectionInfo> = {}) => {
|
|
17
|
-
if (connection && enableConfigOverride) {
|
|
18
|
-
connection.timeout = timeout
|
|
19
|
-
connection.throttleCallback = async (attempt, url) => {
|
|
20
|
-
console.log(`throttleCallback[${attempt}]: ${url}`)
|
|
21
|
-
return await Promise.resolve(true)
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
const createInfuraRpc = (chainId: number, overrides?: Partial<ConnectionInfo>) => {
|
|
12
|
+
const createInfuraRpc = (chainId: number) => {
|
|
27
13
|
const provider =
|
|
28
|
-
process.env.INFURA_PROJECT_ID && process.env.INFURA_PROJECT_SECRET
|
|
29
|
-
? new InfuraProvider(chainId, {
|
|
30
|
-
projectId: process.env.INFURA_PROJECT_ID,
|
|
31
|
-
projectSecret: process.env.INFURA_PROJECT_SECRET,
|
|
32
|
-
})
|
|
33
|
-
: undefined
|
|
34
|
-
configureConnection(provider?.connection, overrides)
|
|
14
|
+
process.env.INFURA_PROJECT_ID && process.env.INFURA_PROJECT_SECRET ? new InfuraProvider(chainId, process.env.INFURA_PROJECT_ID) : undefined
|
|
35
15
|
return provider
|
|
36
16
|
}
|
|
37
17
|
|
|
38
|
-
const createInfuraWss = (chainId: number
|
|
39
|
-
const provider = process.env.INFURA_PROJECT_ID
|
|
40
|
-
? new InfuraWebSocketProvider(chainId, {
|
|
41
|
-
projectId: process.env.INFURA_PROJECT_ID,
|
|
42
|
-
})
|
|
43
|
-
: undefined
|
|
44
|
-
configureConnection(provider?.connection, overrides)
|
|
18
|
+
const createInfuraWss = (chainId: number) => {
|
|
19
|
+
const provider = process.env.INFURA_PROJECT_ID ? new InfuraWebSocketProvider(chainId, process.env.INFURA_PROJECT_ID) : undefined
|
|
45
20
|
return provider
|
|
46
21
|
}
|
|
47
22
|
|
|
48
|
-
const createQuicknodeWss = (chainId: number
|
|
23
|
+
const createQuicknodeWss = (chainId: number) => {
|
|
49
24
|
const quickNodeWSSUri = process.env.QUICKNODE_WSS_URI
|
|
50
25
|
const provider = quickNodeWSSUri ? new WebSocketProvider(quickNodeWSSUri, chainId) : undefined
|
|
51
|
-
|
|
26
|
+
|
|
52
27
|
return provider
|
|
53
28
|
}
|
|
54
29
|
|
|
55
|
-
const createQuicknodeRpc = (chainId: number
|
|
30
|
+
const createQuicknodeRpc = (chainId: number) => {
|
|
56
31
|
const quickNodeHttpsUri = process.env.QUICKNODE_HTTPS_URI
|
|
57
32
|
const provider = quickNodeHttpsUri ? new JsonRpcProvider(quickNodeHttpsUri, chainId) : undefined
|
|
58
|
-
configureConnection(provider?.connection, overrides)
|
|
59
33
|
return provider
|
|
60
34
|
}
|
|
61
35
|
|
|
62
36
|
export const getProviderFromEnv = (
|
|
63
37
|
chainId: number = 0x01,
|
|
64
|
-
{ providerSource = 'infura', providerType = 'rpc'
|
|
65
|
-
):
|
|
66
|
-
let provider:
|
|
38
|
+
{ providerSource = 'infura', providerType = 'rpc' }: GetProvidersFromEnvOptions = {},
|
|
39
|
+
): Provider => {
|
|
40
|
+
let provider: Provider | undefined = undefined
|
|
67
41
|
switch (providerSource) {
|
|
68
42
|
case 'quicknode': {
|
|
69
43
|
switch (providerType) {
|
|
70
44
|
case 'rpc': {
|
|
71
|
-
provider = createQuicknodeRpc(chainId
|
|
45
|
+
provider = createQuicknodeRpc(chainId)
|
|
72
46
|
break
|
|
73
47
|
}
|
|
74
48
|
case 'wss': {
|
|
75
|
-
provider = createQuicknodeWss(chainId
|
|
49
|
+
provider = createQuicknodeWss(chainId)
|
|
76
50
|
break
|
|
77
51
|
}
|
|
78
52
|
}
|
|
@@ -82,11 +56,11 @@ export const getProviderFromEnv = (
|
|
|
82
56
|
case 'infura': {
|
|
83
57
|
switch (providerType) {
|
|
84
58
|
case 'wss': {
|
|
85
|
-
provider = createInfuraWss(chainId
|
|
59
|
+
provider = createInfuraWss(chainId)
|
|
86
60
|
break
|
|
87
61
|
}
|
|
88
62
|
case 'rpc': {
|
|
89
|
-
provider = createInfuraRpc(chainId
|
|
63
|
+
provider = createInfuraRpc(chainId)
|
|
90
64
|
break
|
|
91
65
|
}
|
|
92
66
|
}
|
|
@@ -99,19 +73,19 @@ export const getProviderFromEnv = (
|
|
|
99
73
|
return assertEx(provider, `Unable to create provider [${chainId}]: ${providerSource}|${providerType}`)
|
|
100
74
|
}
|
|
101
75
|
|
|
102
|
-
const providers: Record<string,
|
|
76
|
+
const providers: Record<string, Provider> = {}
|
|
103
77
|
|
|
104
78
|
export const getSharedProviderFromEnv = (
|
|
105
79
|
chainId: number = 0x01,
|
|
106
80
|
options?: { providerSource?: ProviderSource; providerType?: ProviderType },
|
|
107
|
-
):
|
|
81
|
+
): Provider => {
|
|
108
82
|
const key = `${chainId}:${options ? JSON.stringify(options) : 'default'}`
|
|
109
83
|
providers[key] = providers[key] ?? getProviderFromEnv(chainId, options)
|
|
110
84
|
return providers[key]
|
|
111
85
|
}
|
|
112
86
|
|
|
113
|
-
export const getProvidersFromEnv = (count: number = 1, chainId: number = 0x01, options: GetProvidersFromEnvOptions = {}):
|
|
114
|
-
const result:
|
|
87
|
+
export const getProvidersFromEnv = (count: number = 1, chainId: number = 0x01, options: GetProvidersFromEnvOptions = {}): Provider[] => {
|
|
88
|
+
const result: Provider[] = []
|
|
115
89
|
for (let i = 0; i < count; i++) {
|
|
116
90
|
result.push(getProviderFromEnv(chainId, options))
|
|
117
91
|
}
|