@gearbox-protocol/sdk 12.1.1 → 12.2.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.
package/dist/cjs/dev/index.js
CHANGED
|
@@ -26,6 +26,7 @@ __reExport(dev_exports, require("./EthCallSpy.js"), module.exports);
|
|
|
26
26
|
__reExport(dev_exports, require("./ltUtils.js"), module.exports);
|
|
27
27
|
__reExport(dev_exports, require("./migrateFaucet.js"), module.exports);
|
|
28
28
|
__reExport(dev_exports, require("./mint/index.js"), module.exports);
|
|
29
|
+
__reExport(dev_exports, require("./providers.js"), module.exports);
|
|
29
30
|
__reExport(dev_exports, require("./RevolverTransport.js"), module.exports);
|
|
30
31
|
__reExport(dev_exports, require("./replaceStorage.js"), module.exports);
|
|
31
32
|
__reExport(dev_exports, require("./types.js"), module.exports);
|
|
@@ -42,6 +43,7 @@ __reExport(dev_exports, require("./types.js"), module.exports);
|
|
|
42
43
|
...require("./ltUtils.js"),
|
|
43
44
|
...require("./migrateFaucet.js"),
|
|
44
45
|
...require("./mint/index.js"),
|
|
46
|
+
...require("./providers.js"),
|
|
45
47
|
...require("./RevolverTransport.js"),
|
|
46
48
|
...require("./replaceStorage.js"),
|
|
47
49
|
...require("./types.js")
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var providers_exports = {};
|
|
20
|
+
__export(providers_exports, {
|
|
21
|
+
SUPPORTED_RPC_PROVIDERS: () => SUPPORTED_RPC_PROVIDERS,
|
|
22
|
+
getAlchemyUrl: () => getAlchemyUrl,
|
|
23
|
+
getAnkrUrl: () => getAnkrUrl,
|
|
24
|
+
getDrpcUrl: () => getDrpcUrl,
|
|
25
|
+
getErpcKey: () => getErpcKey,
|
|
26
|
+
getRpcProviderUrl: () => getRpcProviderUrl,
|
|
27
|
+
getThirdWebUrl: () => getThirdWebUrl
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(providers_exports);
|
|
30
|
+
var import_sdk = require("../sdk/index.js");
|
|
31
|
+
const SUPPORTED_RPC_PROVIDERS = [
|
|
32
|
+
"alchemy",
|
|
33
|
+
"drpc",
|
|
34
|
+
"thirdweb",
|
|
35
|
+
"ankr"
|
|
36
|
+
];
|
|
37
|
+
function getRpcProviderUrl(provider, network, apiKey, protocol = "http") {
|
|
38
|
+
switch (provider) {
|
|
39
|
+
case "alchemy":
|
|
40
|
+
return getAlchemyUrl(network, apiKey, protocol);
|
|
41
|
+
case "drpc":
|
|
42
|
+
return getDrpcUrl(network, apiKey, protocol);
|
|
43
|
+
case "thirdweb":
|
|
44
|
+
return getThirdWebUrl(network, apiKey, protocol);
|
|
45
|
+
case "ankr":
|
|
46
|
+
return getAnkrUrl(network, apiKey, protocol);
|
|
47
|
+
default:
|
|
48
|
+
return void 0;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function getAlchemyUrl(network, apiKey, protocol = "http") {
|
|
52
|
+
const alchemyDomain = ALCHEMY_DOMAINS[network];
|
|
53
|
+
if (!alchemyDomain) {
|
|
54
|
+
return void 0;
|
|
55
|
+
}
|
|
56
|
+
return `${protocol}s://${alchemyDomain}.g.alchemy.com/v2/${apiKey}`;
|
|
57
|
+
}
|
|
58
|
+
const DRPC_NETS = {
|
|
59
|
+
Arbitrum: "arbitrum",
|
|
60
|
+
Base: "base",
|
|
61
|
+
BNB: "bsc",
|
|
62
|
+
Mainnet: "ethereum",
|
|
63
|
+
Optimism: "optimism",
|
|
64
|
+
Sonic: "sonic",
|
|
65
|
+
WorldChain: "worldchain",
|
|
66
|
+
Berachain: "berachain",
|
|
67
|
+
Avalanche: "avalanche",
|
|
68
|
+
Monad: "monad-mainnet",
|
|
69
|
+
Hemi: "hemi",
|
|
70
|
+
Lisk: "lisk",
|
|
71
|
+
MegaETH: null,
|
|
72
|
+
Etherlink: null,
|
|
73
|
+
Plasma: "plasma",
|
|
74
|
+
Somnia: "somnia"
|
|
75
|
+
};
|
|
76
|
+
const ALCHEMY_DOMAINS = {
|
|
77
|
+
Mainnet: "eth-mainnet",
|
|
78
|
+
Arbitrum: "arb-mainnet",
|
|
79
|
+
Optimism: "opt-mainnet",
|
|
80
|
+
Base: "base-mainnet",
|
|
81
|
+
Sonic: "sonic-mainnet",
|
|
82
|
+
Monad: "monad-mainnet",
|
|
83
|
+
Berachain: "berachain-mainnet",
|
|
84
|
+
Avalanche: "avax-mainnet",
|
|
85
|
+
BNB: "bnb-mainnet",
|
|
86
|
+
WorldChain: "worldchain-mainnet",
|
|
87
|
+
MegaETH: null,
|
|
88
|
+
Etherlink: null,
|
|
89
|
+
Hemi: null,
|
|
90
|
+
Lisk: null,
|
|
91
|
+
Plasma: "plasma-mainnet",
|
|
92
|
+
Somnia: null
|
|
93
|
+
};
|
|
94
|
+
function getDrpcUrl(network, apiKey, protocol = "http") {
|
|
95
|
+
const net = DRPC_NETS[network];
|
|
96
|
+
return net ? `${protocol}s://lb.drpc.live/${net}/${apiKey}` : void 0;
|
|
97
|
+
}
|
|
98
|
+
const ANKR_DOMAINS = {
|
|
99
|
+
Arbitrum: "arbitrum",
|
|
100
|
+
Avalanche: "avalanche",
|
|
101
|
+
Base: "base",
|
|
102
|
+
Berachain: null,
|
|
103
|
+
BNB: "bsc",
|
|
104
|
+
Etherlink: "etherlink_mainnet",
|
|
105
|
+
Hemi: null,
|
|
106
|
+
Lisk: null,
|
|
107
|
+
Mainnet: "eth",
|
|
108
|
+
MegaETH: null,
|
|
109
|
+
Monad: "monad_mainnet",
|
|
110
|
+
Optimism: "optimism",
|
|
111
|
+
Plasma: null,
|
|
112
|
+
Sonic: "sonic_mainnet",
|
|
113
|
+
WorldChain: null,
|
|
114
|
+
Somnia: "somnia_mainnet"
|
|
115
|
+
};
|
|
116
|
+
function getAnkrUrl(network, apiKey, protocol = "http") {
|
|
117
|
+
const net = ANKR_DOMAINS[network];
|
|
118
|
+
const sep = protocol === "ws" ? "/ws/" : "/";
|
|
119
|
+
return net ? `${protocol}s://rpc.ankr.com/${net}${sep}${apiKey}` : void 0;
|
|
120
|
+
}
|
|
121
|
+
const THIRDWEB_DOMAINS = {
|
|
122
|
+
Arbitrum: import_sdk.chains.Arbitrum.id.toString(),
|
|
123
|
+
Avalanche: import_sdk.chains.Avalanche.id.toString(),
|
|
124
|
+
Base: import_sdk.chains.Base.id.toString(),
|
|
125
|
+
Berachain: import_sdk.chains.Berachain.id.toString(),
|
|
126
|
+
BNB: import_sdk.chains.BNB.id.toString(),
|
|
127
|
+
Etherlink: import_sdk.chains.Etherlink.id.toString(),
|
|
128
|
+
Hemi: import_sdk.chains.Hemi.id.toString(),
|
|
129
|
+
Lisk: import_sdk.chains.Lisk.id.toString(),
|
|
130
|
+
Mainnet: import_sdk.chains.Mainnet.id.toString(),
|
|
131
|
+
MegaETH: import_sdk.chains.MegaETH.id.toString(),
|
|
132
|
+
Monad: import_sdk.chains.Monad.id.toString(),
|
|
133
|
+
Optimism: import_sdk.chains.Optimism.id.toString(),
|
|
134
|
+
Plasma: import_sdk.chains.Plasma.id.toString(),
|
|
135
|
+
Sonic: import_sdk.chains.Sonic.id.toString(),
|
|
136
|
+
WorldChain: import_sdk.chains.WorldChain.id.toString(),
|
|
137
|
+
Somnia: import_sdk.chains.Somnia.id.toString()
|
|
138
|
+
};
|
|
139
|
+
function getThirdWebUrl(network, apiKey, protocol = "http") {
|
|
140
|
+
if (protocol === "ws") {
|
|
141
|
+
return void 0;
|
|
142
|
+
}
|
|
143
|
+
const net = THIRDWEB_DOMAINS[network];
|
|
144
|
+
return `https://${net}.rpc.thirdweb.com/${apiKey}`;
|
|
145
|
+
}
|
|
146
|
+
function getErpcKey(network, projectId, urlBase) {
|
|
147
|
+
if (!projectId || !urlBase) {
|
|
148
|
+
return void 0;
|
|
149
|
+
}
|
|
150
|
+
const chain = (0, import_sdk.getChain)(network);
|
|
151
|
+
return `${urlBase}/${projectId}/evm/${chain.id}`;
|
|
152
|
+
}
|
|
153
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
154
|
+
0 && (module.exports = {
|
|
155
|
+
SUPPORTED_RPC_PROVIDERS,
|
|
156
|
+
getAlchemyUrl,
|
|
157
|
+
getAnkrUrl,
|
|
158
|
+
getDrpcUrl,
|
|
159
|
+
getErpcKey,
|
|
160
|
+
getRpcProviderUrl,
|
|
161
|
+
getThirdWebUrl
|
|
162
|
+
});
|
package/dist/esm/dev/index.js
CHANGED
|
@@ -9,6 +9,7 @@ export * from "./EthCallSpy.js";
|
|
|
9
9
|
export * from "./ltUtils.js";
|
|
10
10
|
export * from "./migrateFaucet.js";
|
|
11
11
|
export * from "./mint/index.js";
|
|
12
|
+
export * from "./providers.js";
|
|
12
13
|
export * from "./RevolverTransport.js";
|
|
13
14
|
export * from "./replaceStorage.js";
|
|
14
15
|
export * from "./types.js";
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { chains, getChain } from "../sdk/index.js";
|
|
2
|
+
const SUPPORTED_RPC_PROVIDERS = [
|
|
3
|
+
"alchemy",
|
|
4
|
+
"drpc",
|
|
5
|
+
"thirdweb",
|
|
6
|
+
"ankr"
|
|
7
|
+
];
|
|
8
|
+
function getRpcProviderUrl(provider, network, apiKey, protocol = "http") {
|
|
9
|
+
switch (provider) {
|
|
10
|
+
case "alchemy":
|
|
11
|
+
return getAlchemyUrl(network, apiKey, protocol);
|
|
12
|
+
case "drpc":
|
|
13
|
+
return getDrpcUrl(network, apiKey, protocol);
|
|
14
|
+
case "thirdweb":
|
|
15
|
+
return getThirdWebUrl(network, apiKey, protocol);
|
|
16
|
+
case "ankr":
|
|
17
|
+
return getAnkrUrl(network, apiKey, protocol);
|
|
18
|
+
default:
|
|
19
|
+
return void 0;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function getAlchemyUrl(network, apiKey, protocol = "http") {
|
|
23
|
+
const alchemyDomain = ALCHEMY_DOMAINS[network];
|
|
24
|
+
if (!alchemyDomain) {
|
|
25
|
+
return void 0;
|
|
26
|
+
}
|
|
27
|
+
return `${protocol}s://${alchemyDomain}.g.alchemy.com/v2/${apiKey}`;
|
|
28
|
+
}
|
|
29
|
+
const DRPC_NETS = {
|
|
30
|
+
Arbitrum: "arbitrum",
|
|
31
|
+
Base: "base",
|
|
32
|
+
BNB: "bsc",
|
|
33
|
+
Mainnet: "ethereum",
|
|
34
|
+
Optimism: "optimism",
|
|
35
|
+
Sonic: "sonic",
|
|
36
|
+
WorldChain: "worldchain",
|
|
37
|
+
Berachain: "berachain",
|
|
38
|
+
Avalanche: "avalanche",
|
|
39
|
+
Monad: "monad-mainnet",
|
|
40
|
+
Hemi: "hemi",
|
|
41
|
+
Lisk: "lisk",
|
|
42
|
+
MegaETH: null,
|
|
43
|
+
Etherlink: null,
|
|
44
|
+
Plasma: "plasma",
|
|
45
|
+
Somnia: "somnia"
|
|
46
|
+
};
|
|
47
|
+
const ALCHEMY_DOMAINS = {
|
|
48
|
+
Mainnet: "eth-mainnet",
|
|
49
|
+
Arbitrum: "arb-mainnet",
|
|
50
|
+
Optimism: "opt-mainnet",
|
|
51
|
+
Base: "base-mainnet",
|
|
52
|
+
Sonic: "sonic-mainnet",
|
|
53
|
+
Monad: "monad-mainnet",
|
|
54
|
+
Berachain: "berachain-mainnet",
|
|
55
|
+
Avalanche: "avax-mainnet",
|
|
56
|
+
BNB: "bnb-mainnet",
|
|
57
|
+
WorldChain: "worldchain-mainnet",
|
|
58
|
+
MegaETH: null,
|
|
59
|
+
Etherlink: null,
|
|
60
|
+
Hemi: null,
|
|
61
|
+
Lisk: null,
|
|
62
|
+
Plasma: "plasma-mainnet",
|
|
63
|
+
Somnia: null
|
|
64
|
+
};
|
|
65
|
+
function getDrpcUrl(network, apiKey, protocol = "http") {
|
|
66
|
+
const net = DRPC_NETS[network];
|
|
67
|
+
return net ? `${protocol}s://lb.drpc.live/${net}/${apiKey}` : void 0;
|
|
68
|
+
}
|
|
69
|
+
const ANKR_DOMAINS = {
|
|
70
|
+
Arbitrum: "arbitrum",
|
|
71
|
+
Avalanche: "avalanche",
|
|
72
|
+
Base: "base",
|
|
73
|
+
Berachain: null,
|
|
74
|
+
BNB: "bsc",
|
|
75
|
+
Etherlink: "etherlink_mainnet",
|
|
76
|
+
Hemi: null,
|
|
77
|
+
Lisk: null,
|
|
78
|
+
Mainnet: "eth",
|
|
79
|
+
MegaETH: null,
|
|
80
|
+
Monad: "monad_mainnet",
|
|
81
|
+
Optimism: "optimism",
|
|
82
|
+
Plasma: null,
|
|
83
|
+
Sonic: "sonic_mainnet",
|
|
84
|
+
WorldChain: null,
|
|
85
|
+
Somnia: "somnia_mainnet"
|
|
86
|
+
};
|
|
87
|
+
function getAnkrUrl(network, apiKey, protocol = "http") {
|
|
88
|
+
const net = ANKR_DOMAINS[network];
|
|
89
|
+
const sep = protocol === "ws" ? "/ws/" : "/";
|
|
90
|
+
return net ? `${protocol}s://rpc.ankr.com/${net}${sep}${apiKey}` : void 0;
|
|
91
|
+
}
|
|
92
|
+
const THIRDWEB_DOMAINS = {
|
|
93
|
+
Arbitrum: chains.Arbitrum.id.toString(),
|
|
94
|
+
Avalanche: chains.Avalanche.id.toString(),
|
|
95
|
+
Base: chains.Base.id.toString(),
|
|
96
|
+
Berachain: chains.Berachain.id.toString(),
|
|
97
|
+
BNB: chains.BNB.id.toString(),
|
|
98
|
+
Etherlink: chains.Etherlink.id.toString(),
|
|
99
|
+
Hemi: chains.Hemi.id.toString(),
|
|
100
|
+
Lisk: chains.Lisk.id.toString(),
|
|
101
|
+
Mainnet: chains.Mainnet.id.toString(),
|
|
102
|
+
MegaETH: chains.MegaETH.id.toString(),
|
|
103
|
+
Monad: chains.Monad.id.toString(),
|
|
104
|
+
Optimism: chains.Optimism.id.toString(),
|
|
105
|
+
Plasma: chains.Plasma.id.toString(),
|
|
106
|
+
Sonic: chains.Sonic.id.toString(),
|
|
107
|
+
WorldChain: chains.WorldChain.id.toString(),
|
|
108
|
+
Somnia: chains.Somnia.id.toString()
|
|
109
|
+
};
|
|
110
|
+
function getThirdWebUrl(network, apiKey, protocol = "http") {
|
|
111
|
+
if (protocol === "ws") {
|
|
112
|
+
return void 0;
|
|
113
|
+
}
|
|
114
|
+
const net = THIRDWEB_DOMAINS[network];
|
|
115
|
+
return `https://${net}.rpc.thirdweb.com/${apiKey}`;
|
|
116
|
+
}
|
|
117
|
+
function getErpcKey(network, projectId, urlBase) {
|
|
118
|
+
if (!projectId || !urlBase) {
|
|
119
|
+
return void 0;
|
|
120
|
+
}
|
|
121
|
+
const chain = getChain(network);
|
|
122
|
+
return `${urlBase}/${projectId}/evm/${chain.id}`;
|
|
123
|
+
}
|
|
124
|
+
export {
|
|
125
|
+
SUPPORTED_RPC_PROVIDERS,
|
|
126
|
+
getAlchemyUrl,
|
|
127
|
+
getAnkrUrl,
|
|
128
|
+
getDrpcUrl,
|
|
129
|
+
getErpcKey,
|
|
130
|
+
getRpcProviderUrl,
|
|
131
|
+
getThirdWebUrl
|
|
132
|
+
};
|
|
@@ -9,6 +9,7 @@ export * from "./EthCallSpy.js";
|
|
|
9
9
|
export * from "./ltUtils.js";
|
|
10
10
|
export * from "./migrateFaucet.js";
|
|
11
11
|
export * from "./mint/index.js";
|
|
12
|
+
export * from "./providers.js";
|
|
12
13
|
export * from "./RevolverTransport.js";
|
|
13
14
|
export * from "./replaceStorage.js";
|
|
14
15
|
export * from "./types.js";
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { type NetworkType } from "../sdk/index.js";
|
|
2
|
+
export declare const SUPPORTED_RPC_PROVIDERS: readonly ["alchemy", "drpc", "thirdweb", "ankr"];
|
|
3
|
+
export type RpcProvider = (typeof SUPPORTED_RPC_PROVIDERS)[number];
|
|
4
|
+
export declare function getRpcProviderUrl(provider: RpcProvider, network: NetworkType, apiKey: string, protocol?: "http" | "ws"): string | undefined;
|
|
5
|
+
export declare function getAlchemyUrl(network: NetworkType, apiKey: string, protocol?: "http" | "ws"): string | undefined;
|
|
6
|
+
export declare function getDrpcUrl(network: NetworkType, apiKey: string, protocol?: "http" | "ws"): string | undefined;
|
|
7
|
+
export declare function getAnkrUrl(network: NetworkType, apiKey: string, protocol?: "http" | "ws"): string | undefined;
|
|
8
|
+
export declare function getThirdWebUrl(network: NetworkType, apiKey: string, protocol?: "http" | "ws"): string | undefined;
|
|
9
|
+
export declare function getErpcKey(network: NetworkType, projectId?: string, urlBase?: string): string | undefined;
|
|
10
|
+
/**
|
|
11
|
+
Non-existent event:
|
|
12
|
+
┌────────────┬─────────┬──────┬──────────┬──────┐
|
|
13
|
+
│ Network │ alchemy │ drpc │ thirdweb │ ankr │
|
|
14
|
+
├────────────┼─────────┼──────┼──────────┼──────┤
|
|
15
|
+
│ Mainnet │ ∞ │ 10M │ 1K │ 10K │
|
|
16
|
+
│ Arbitrum │ ∞ │ ∞ │ 1K │ 10K │
|
|
17
|
+
│ Optimism │ ∞ │ 1M │ 1K │ 10K │
|
|
18
|
+
│ Base │ ∞ │ ∞ │ 1K │ 10K │
|
|
19
|
+
│ Sonic │ 10K │ ∞ │ 1K │ 10K │
|
|
20
|
+
│ MegaETH │ ✗ │ ✗ │ ✗ │ ✗ │
|
|
21
|
+
│ Monad │ 1K │ ✗ │ 1K │ 1K │
|
|
22
|
+
│ Berachain │ 10K │ 300K │ 1K │ ✗ │
|
|
23
|
+
│ Avalanche │ 10K │ 5M │ 1K │ 10K │
|
|
24
|
+
│ BNB │ 10K │ 1M │ 1K │ 10K │
|
|
25
|
+
│ WorldChain │ ∞ │ 10M │ 1K │ ✗ │
|
|
26
|
+
│ Etherlink │ ✗ │ ✗ │ ✗ │ ✗ │
|
|
27
|
+
│ Hemi │ ✗ │ ∞ │ 1K │ ✗ │
|
|
28
|
+
│ Lisk │ ✗ │ 5M │ 1K │ ✗ │
|
|
29
|
+
│ Plasma │ 10K │ 100K │ 1K │ ✗ │
|
|
30
|
+
│ Somnia │ ✗ │ ✗ │ 1K │ 10K │
|
|
31
|
+
└────────────┴─────────┴──────┴──────────┴──────┘
|
|
32
|
+
|
|
33
|
+
Rare event (InstanceManager.OwnershipTransferred):
|
|
34
|
+
|
|
35
|
+
┌────────────┬─────────┬──────┬──────────┬──────┐
|
|
36
|
+
│ Network │ alchemy │ drpc │ thirdweb │ ankr │
|
|
37
|
+
├────────────┼─────────┼──────┼──────────┼──────┤
|
|
38
|
+
│ Mainnet │ ∞ │ 10M │ 1K │ 10K │
|
|
39
|
+
│ Arbitrum │ ∞ │ ∞ │ 1K │ 10K │
|
|
40
|
+
│ Optimism │ ∞ │ ∞ │ 1K │ 10K │
|
|
41
|
+
│ Base │ ∞ │ ∞ │ 1K │ 10K │
|
|
42
|
+
│ Sonic │ 10K │ ∞ │ 1K │ 10K │
|
|
43
|
+
│ MegaETH │ ✗ │ ✗ │ ✗ │ ✗ │
|
|
44
|
+
│ Monad │ 1K │ ✗ │ 1K │ 1K │
|
|
45
|
+
│ Berachain │ 10K │ ∞ │ 1K │ ✗ │
|
|
46
|
+
│ Avalanche │ 10K │ 5M │ 1K │ 10K │
|
|
47
|
+
│ BNB │ 10K │ ∞ │ 1K │ 10K │
|
|
48
|
+
│ WorldChain │ ∞ │ 1M │ 1K │ ✗ │
|
|
49
|
+
│ Etherlink │ ✗ │ ✗ │ ✗ │ ✗ │
|
|
50
|
+
│ Hemi │ ✗ │ ∞ │ 1K │ ✗ │
|
|
51
|
+
│ Lisk │ ✗ │ 10M │ 1K │ ✗ │
|
|
52
|
+
│ Plasma │ 10K │ 100K │ 1K │ ✗ │
|
|
53
|
+
│ Somnia │ ✗ │ ✗ │ 1K │ 10K │
|
|
54
|
+
└────────────┴─────────┴──────┴──────────┴──────┘
|
|
55
|
+
*/
|