@shapeshiftoss/contracts 1.1.0 → 2.1.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.
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.assertGetViemClient = exports.viemClientByNetworkId = exports.viemNetworkIdByChainId = exports.viemClientByChainId = exports.viemRobinhoodClient = exports.viemSoneiumClient = exports.viemModeClient = exports.viemBobClient = exports.viemUnichainClient = exports.viemSonicClient = exports.viemLineaClient = exports.viemAbstractClient = exports.viemSeiClient = exports.viemHemiClient = exports.viemWorldChainClient = exports.viemBlastClient = exports.viemZkSyncEraClient = exports.viemStoryClient = exports.viemEtherealClient = exports.ethereal = exports.viemKatanaClient = exports.viemCeloClient = exports.viemFlowEvmClient = exports.viemCronosClient = exports.viemScrollClient = exports.viemBerachainClient = exports.viemMegaEthClient = exports.viemInkClient = exports.viemMantleClient = exports.viemPlumeClient = exports.viemPlasmaClient = exports.viemHyperEvmClient = exports.viemMonadClient = exports.viemBaseClient = exports.viemPolygonClient = exports.viemGnosisClient = exports.viemOptimismClient = exports.viemArbitrumClient = exports.viemAvalancheClient = exports.viemBscClient = exports.viemEthMainnetClient = void 0;
6
+ exports.assertGetViemClient = exports.viemClientByNetworkId = exports.viemNetworkIdByChainId = exports.viemClientByChainId = exports.viemElysiumClient = exports.elysium = exports.viemRobinhoodClient = exports.viemSoneiumClient = exports.viemModeClient = exports.viemBobClient = exports.viemUnichainClient = exports.viemSonicClient = exports.viemLineaClient = exports.viemAbstractClient = exports.viemSeiClient = exports.viemHemiClient = exports.viemWorldChainClient = exports.viemBlastClient = exports.viemZkSyncEraClient = exports.viemStoryClient = exports.viemEtherealClient = exports.ethereal = exports.viemKatanaClient = exports.viemCeloClient = exports.viemFlowEvmClient = exports.viemCronosClient = exports.viemScrollClient = exports.viemBerachainClient = exports.viemMegaEthClient = exports.viemInkClient = exports.viemMantleClient = exports.viemPlumeClient = exports.viemPlasmaClient = exports.viemHyperEvmClient = exports.viemMonadClient = exports.viemBaseClient = exports.viemPolygonClient = exports.viemGnosisClient = exports.viemOptimismClient = exports.viemArbitrumClient = exports.viemAvalancheClient = exports.viemBscClient = exports.viemEthMainnetClient = void 0;
7
7
  const types_1 = require("@shapeshiftoss/types");
8
8
  const assert_1 = __importDefault(require("assert"));
9
9
  const viem_1 = require("viem");
@@ -13,92 +13,36 @@ const publicRpcUrls_1 = require("./publicRpcUrls");
13
13
  // and is tried first; `publicUrls` are public endpoints used as backups. Pass `undefined` for
14
14
  // `privateUrl` when the chain has no private RPC (second-class chains).
15
15
  const createRpcTransport = (privateUrl, publicUrls) => (0, viem_1.fallback)([privateUrl, ...publicUrls].filter(Boolean).map(url => (0, viem_1.http)(url)));
16
- // First-class EVM chains
17
- exports.viemEthMainnetClient = (0, viem_1.createPublicClient)({
18
- chain: chains_1.mainnet,
19
- transport: createRpcTransport(process.env.VITE_ETHEREUM_NODE_URL, publicRpcUrls_1.PUBLIC_RPC_URLS.ethereum),
20
- });
21
- exports.viemBscClient = (0, viem_1.createPublicClient)({
22
- chain: chains_1.bsc,
23
- transport: createRpcTransport(process.env.VITE_BNBSMARTCHAIN_NODE_URL, publicRpcUrls_1.PUBLIC_RPC_URLS.bsc),
24
- });
25
- exports.viemAvalancheClient = (0, viem_1.createPublicClient)({
26
- chain: chains_1.avalanche,
27
- transport: createRpcTransport(process.env.VITE_AVALANCHE_NODE_URL, publicRpcUrls_1.PUBLIC_RPC_URLS.avalanche),
28
- });
29
- exports.viemArbitrumClient = (0, viem_1.createPublicClient)({
30
- chain: chains_1.arbitrum,
31
- transport: createRpcTransport(process.env.VITE_ARBITRUM_NODE_URL, publicRpcUrls_1.PUBLIC_RPC_URLS.arbitrum),
32
- });
33
- exports.viemOptimismClient = (0, viem_1.createPublicClient)({
34
- chain: chains_1.optimism,
35
- transport: createRpcTransport(process.env.VITE_OPTIMISM_NODE_URL, publicRpcUrls_1.PUBLIC_RPC_URLS.optimism),
36
- });
37
- exports.viemGnosisClient = (0, viem_1.createPublicClient)({
38
- chain: chains_1.gnosis,
39
- transport: createRpcTransport(process.env.VITE_GNOSIS_NODE_URL, publicRpcUrls_1.PUBLIC_RPC_URLS.gnosis),
40
- });
41
- exports.viemPolygonClient = (0, viem_1.createPublicClient)({
42
- chain: chains_1.polygon,
43
- transport: createRpcTransport(process.env.VITE_POLYGON_NODE_URL, publicRpcUrls_1.PUBLIC_RPC_URLS.polygon),
44
- });
45
- exports.viemBaseClient = (0, viem_1.createPublicClient)({
46
- chain: chains_1.base,
47
- transport: createRpcTransport(process.env.VITE_BASE_NODE_URL, publicRpcUrls_1.PUBLIC_RPC_URLS.base),
16
+ // Same-tick contract reads are batched into one multicall3 call
17
+ const createRpcClient = (chain, privateUrl, publicUrls) => (0, viem_1.createPublicClient)({
18
+ chain,
19
+ transport: createRpcTransport(privateUrl, publicUrls),
20
+ batch: { multicall: true },
48
21
  });
22
+ const multicall3 = { address: '0xcA11bde05977b3631167028862bE2a173976CA11' };
23
+ // First-class EVM chains
24
+ exports.viemEthMainnetClient = createRpcClient(chains_1.mainnet, process.env.VITE_ETHEREUM_NODE_URL, publicRpcUrls_1.PUBLIC_RPC_URLS.ethereum);
25
+ exports.viemBscClient = createRpcClient(chains_1.bsc, process.env.VITE_BNBSMARTCHAIN_NODE_URL, publicRpcUrls_1.PUBLIC_RPC_URLS.bsc);
26
+ exports.viemAvalancheClient = createRpcClient(chains_1.avalanche, process.env.VITE_AVALANCHE_NODE_URL, publicRpcUrls_1.PUBLIC_RPC_URLS.avalanche);
27
+ exports.viemArbitrumClient = createRpcClient(chains_1.arbitrum, process.env.VITE_ARBITRUM_NODE_URL, publicRpcUrls_1.PUBLIC_RPC_URLS.arbitrum);
28
+ exports.viemOptimismClient = createRpcClient(chains_1.optimism, process.env.VITE_OPTIMISM_NODE_URL, publicRpcUrls_1.PUBLIC_RPC_URLS.optimism);
29
+ exports.viemGnosisClient = createRpcClient(chains_1.gnosis, process.env.VITE_GNOSIS_NODE_URL, publicRpcUrls_1.PUBLIC_RPC_URLS.gnosis);
30
+ exports.viemPolygonClient = createRpcClient(chains_1.polygon, process.env.VITE_POLYGON_NODE_URL, publicRpcUrls_1.PUBLIC_RPC_URLS.polygon);
31
+ exports.viemBaseClient = createRpcClient(chains_1.base, process.env.VITE_BASE_NODE_URL, publicRpcUrls_1.PUBLIC_RPC_URLS.base);
49
32
  // Second-class EVM chains (public RPCs only)
50
- exports.viemMonadClient = (0, viem_1.createPublicClient)({
51
- chain: chains_1.monad,
52
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.monad),
53
- });
54
- exports.viemHyperEvmClient = (0, viem_1.createPublicClient)({
55
- chain: chains_1.hyperEvm,
56
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.hyperEvm),
57
- });
58
- exports.viemPlasmaClient = (0, viem_1.createPublicClient)({
59
- chain: chains_1.plasma,
60
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.plasma),
61
- });
62
- exports.viemPlumeClient = (0, viem_1.createPublicClient)({
63
- chain: chains_1.plumeMainnet,
64
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.plume),
65
- });
66
- exports.viemMantleClient = (0, viem_1.createPublicClient)({
67
- chain: chains_1.mantle,
68
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.mantle),
69
- });
70
- exports.viemInkClient = (0, viem_1.createPublicClient)({
71
- chain: chains_1.ink,
72
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.ink),
73
- });
74
- exports.viemMegaEthClient = (0, viem_1.createPublicClient)({
75
- chain: chains_1.megaeth,
76
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.megaEth),
77
- });
78
- exports.viemBerachainClient = (0, viem_1.createPublicClient)({
79
- chain: chains_1.berachain,
80
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.berachain),
81
- });
82
- exports.viemScrollClient = (0, viem_1.createPublicClient)({
83
- chain: chains_1.scroll,
84
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.scroll),
85
- });
86
- exports.viemCronosClient = (0, viem_1.createPublicClient)({
87
- chain: chains_1.cronos,
88
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.cronos),
89
- });
90
- exports.viemFlowEvmClient = (0, viem_1.createPublicClient)({
91
- chain: chains_1.flowMainnet,
92
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.flowEvm),
93
- });
94
- exports.viemCeloClient = (0, viem_1.createPublicClient)({
95
- chain: chains_1.celo,
96
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.celo),
97
- });
98
- exports.viemKatanaClient = (0, viem_1.createPublicClient)({
99
- chain: chains_1.katana,
100
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.katana),
101
- });
33
+ exports.viemMonadClient = createRpcClient(chains_1.monad, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.monad);
34
+ exports.viemHyperEvmClient = createRpcClient(chains_1.hyperEvm, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.hyperEvm);
35
+ exports.viemPlasmaClient = createRpcClient(chains_1.plasma, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.plasma);
36
+ exports.viemPlumeClient = createRpcClient(chains_1.plumeMainnet, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.plume);
37
+ exports.viemMantleClient = createRpcClient(chains_1.mantle, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.mantle);
38
+ exports.viemInkClient = createRpcClient(chains_1.ink, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.ink);
39
+ exports.viemMegaEthClient = createRpcClient(chains_1.megaeth, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.megaEth);
40
+ exports.viemBerachainClient = createRpcClient(chains_1.berachain, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.berachain);
41
+ exports.viemScrollClient = createRpcClient(chains_1.scroll, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.scroll);
42
+ exports.viemCronosClient = createRpcClient(chains_1.cronos, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.cronos);
43
+ exports.viemFlowEvmClient = createRpcClient(chains_1.flowMainnet, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.flowEvm);
44
+ exports.viemCeloClient = createRpcClient(chains_1.celo, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.celo);
45
+ exports.viemKatanaClient = createRpcClient(chains_1.katana, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.katana);
102
46
  exports.ethereal = (0, viem_1.defineChain)({
103
47
  id: 5064014,
104
48
  name: 'Ethereal',
@@ -107,67 +51,35 @@ exports.ethereal = (0, viem_1.defineChain)({
107
51
  blockExplorers: {
108
52
  default: { name: 'Ethereal Explorer', url: 'https://explorer.ethereal.global' },
109
53
  },
54
+ contracts: { multicall3 },
55
+ });
56
+ exports.viemEtherealClient = createRpcClient(exports.ethereal, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.ethereal);
57
+ exports.viemStoryClient = createRpcClient(chains_1.story, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.story);
58
+ exports.viemZkSyncEraClient = createRpcClient(chains_1.zksync, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.zkSyncEra);
59
+ exports.viemBlastClient = createRpcClient(chains_1.blast, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.blast);
60
+ exports.viemWorldChainClient = createRpcClient(chains_1.worldchain, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.worldChain);
61
+ const hemi = (0, viem_1.defineChain)({ ...chains_1.hemi, contracts: { multicall3 } });
62
+ exports.viemHemiClient = createRpcClient(hemi, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.hemi);
63
+ exports.viemSeiClient = createRpcClient(chains_1.sei, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.sei);
64
+ exports.viemAbstractClient = createRpcClient(chains_1.abstract, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.abstract);
65
+ exports.viemLineaClient = createRpcClient(chains_1.linea, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.linea);
66
+ exports.viemSonicClient = createRpcClient(chains_1.sonic, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.sonic);
67
+ exports.viemUnichainClient = createRpcClient(chains_1.unichain, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.unichain);
68
+ exports.viemBobClient = createRpcClient(chains_1.bob, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.bob);
69
+ exports.viemModeClient = createRpcClient(chains_1.mode, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.mode);
70
+ exports.viemSoneiumClient = createRpcClient(chains_1.soneium, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.soneium);
71
+ exports.viemRobinhoodClient = createRpcClient(chains_1.robinhood, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.robinhood);
72
+ exports.elysium = (0, viem_1.defineChain)({
73
+ id: 99901,
74
+ name: 'Elysium',
75
+ nativeCurrency: { name: 'HYPE', symbol: 'HYPE', decimals: 18 },
76
+ rpcUrls: { default: { http: ['https://rpc.elysium.kinetiq.xyz'] } },
77
+ blockExplorers: {
78
+ default: { name: 'Elysium Explorer', url: 'https://elysium.kinetiq.xyz' },
79
+ },
80
+ contracts: { multicall3 },
110
81
  });
111
- exports.viemEtherealClient = (0, viem_1.createPublicClient)({
112
- chain: exports.ethereal,
113
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.ethereal),
114
- });
115
- exports.viemStoryClient = (0, viem_1.createPublicClient)({
116
- chain: chains_1.story,
117
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.story),
118
- });
119
- exports.viemZkSyncEraClient = (0, viem_1.createPublicClient)({
120
- chain: chains_1.zksync,
121
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.zkSyncEra),
122
- });
123
- exports.viemBlastClient = (0, viem_1.createPublicClient)({
124
- chain: chains_1.blast,
125
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.blast),
126
- });
127
- exports.viemWorldChainClient = (0, viem_1.createPublicClient)({
128
- chain: chains_1.worldchain,
129
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.worldChain),
130
- });
131
- exports.viemHemiClient = (0, viem_1.createPublicClient)({
132
- chain: chains_1.hemi,
133
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.hemi),
134
- });
135
- exports.viemSeiClient = (0, viem_1.createPublicClient)({
136
- chain: chains_1.sei,
137
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.sei),
138
- });
139
- exports.viemAbstractClient = (0, viem_1.createPublicClient)({
140
- chain: chains_1.abstract,
141
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.abstract),
142
- });
143
- exports.viemLineaClient = (0, viem_1.createPublicClient)({
144
- chain: chains_1.linea,
145
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.linea),
146
- });
147
- exports.viemSonicClient = (0, viem_1.createPublicClient)({
148
- chain: chains_1.sonic,
149
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.sonic),
150
- });
151
- exports.viemUnichainClient = (0, viem_1.createPublicClient)({
152
- chain: chains_1.unichain,
153
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.unichain),
154
- });
155
- exports.viemBobClient = (0, viem_1.createPublicClient)({
156
- chain: chains_1.bob,
157
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.bob),
158
- });
159
- exports.viemModeClient = (0, viem_1.createPublicClient)({
160
- chain: chains_1.mode,
161
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.mode),
162
- });
163
- exports.viemSoneiumClient = (0, viem_1.createPublicClient)({
164
- chain: chains_1.soneium,
165
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.soneium),
166
- });
167
- exports.viemRobinhoodClient = (0, viem_1.createPublicClient)({
168
- chain: chains_1.robinhood,
169
- transport: createRpcTransport(undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.robinhood),
170
- });
82
+ exports.viemElysiumClient = createRpcClient(exports.elysium, undefined, publicRpcUrls_1.PUBLIC_RPC_URLS.elysium);
171
83
  exports.viemClientByChainId = {
172
84
  [types_1.KnownChainIds.EthereumMainnet]: exports.viemEthMainnetClient,
173
85
  [types_1.KnownChainIds.BnbSmartChainMainnet]: exports.viemBscClient,
@@ -205,6 +117,7 @@ exports.viemClientByChainId = {
205
117
  [types_1.KnownChainIds.SeiMainnet]: exports.viemSeiClient,
206
118
  [types_1.KnownChainIds.AbstractMainnet]: exports.viemAbstractClient,
207
119
  [types_1.KnownChainIds.RobinhoodMainnet]: exports.viemRobinhoodClient,
120
+ [types_1.KnownChainIds.ElysiumMainnet]: exports.viemElysiumClient,
208
121
  };
209
122
  exports.viemNetworkIdByChainId = {
210
123
  [types_1.KnownChainIds.EthereumMainnet]: chains_1.mainnet.id,
@@ -232,7 +145,7 @@ exports.viemNetworkIdByChainId = {
232
145
  [types_1.KnownChainIds.ZkSyncEraMainnet]: chains_1.zksync.id,
233
146
  [types_1.KnownChainIds.BlastMainnet]: chains_1.blast.id,
234
147
  [types_1.KnownChainIds.WorldChainMainnet]: chains_1.worldchain.id,
235
- [types_1.KnownChainIds.HemiMainnet]: chains_1.hemi.id,
148
+ [types_1.KnownChainIds.HemiMainnet]: hemi.id,
236
149
  [types_1.KnownChainIds.LineaMainnet]: chains_1.linea.id,
237
150
  [types_1.KnownChainIds.ScrollMainnet]: chains_1.scroll.id,
238
151
  [types_1.KnownChainIds.SonicMainnet]: chains_1.sonic.id,
@@ -243,6 +156,7 @@ exports.viemNetworkIdByChainId = {
243
156
  [types_1.KnownChainIds.SeiMainnet]: chains_1.sei.id,
244
157
  [types_1.KnownChainIds.AbstractMainnet]: chains_1.abstract.id,
245
158
  [types_1.KnownChainIds.RobinhoodMainnet]: chains_1.robinhood.id,
159
+ [types_1.KnownChainIds.ElysiumMainnet]: exports.elysium.id,
246
160
  };
247
161
  exports.viemClientByNetworkId = {
248
162
  [chains_1.mainnet.id]: exports.viemEthMainnetClient,
@@ -270,7 +184,7 @@ exports.viemClientByNetworkId = {
270
184
  [chains_1.zksync.id]: exports.viemZkSyncEraClient,
271
185
  [chains_1.blast.id]: exports.viemBlastClient,
272
186
  [chains_1.worldchain.id]: exports.viemWorldChainClient,
273
- [chains_1.hemi.id]: exports.viemHemiClient,
187
+ [hemi.id]: exports.viemHemiClient,
274
188
  [chains_1.linea.id]: exports.viemLineaClient,
275
189
  [chains_1.scroll.id]: exports.viemScrollClient,
276
190
  [chains_1.sonic.id]: exports.viemSonicClient,
@@ -281,6 +195,7 @@ exports.viemClientByNetworkId = {
281
195
  [chains_1.sei.id]: exports.viemSeiClient,
282
196
  [chains_1.abstract.id]: exports.viemAbstractClient,
283
197
  [chains_1.robinhood.id]: exports.viemRobinhoodClient,
198
+ [exports.elysium.id]: exports.viemElysiumClient,
284
199
  };
285
200
  const assertGetViemClient = (chainId) => {
286
201
  const publicClient = exports.viemClientByChainId[chainId];