@shapeshiftoss/contracts 1.1.0 → 2.0.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.
@@ -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,24 @@ exports.ethereal = (0, viem_1.defineChain)({
107
51
  blockExplorers: {
108
52
  default: { name: 'Ethereal Explorer', url: 'https://explorer.ethereal.global' },
109
53
  },
110
- });
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
- });
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);
171
72
  exports.viemClientByChainId = {
172
73
  [types_1.KnownChainIds.EthereumMainnet]: exports.viemEthMainnetClient,
173
74
  [types_1.KnownChainIds.BnbSmartChainMainnet]: exports.viemBscClient,
@@ -232,7 +133,7 @@ exports.viemNetworkIdByChainId = {
232
133
  [types_1.KnownChainIds.ZkSyncEraMainnet]: chains_1.zksync.id,
233
134
  [types_1.KnownChainIds.BlastMainnet]: chains_1.blast.id,
234
135
  [types_1.KnownChainIds.WorldChainMainnet]: chains_1.worldchain.id,
235
- [types_1.KnownChainIds.HemiMainnet]: chains_1.hemi.id,
136
+ [types_1.KnownChainIds.HemiMainnet]: hemi.id,
236
137
  [types_1.KnownChainIds.LineaMainnet]: chains_1.linea.id,
237
138
  [types_1.KnownChainIds.ScrollMainnet]: chains_1.scroll.id,
238
139
  [types_1.KnownChainIds.SonicMainnet]: chains_1.sonic.id,
@@ -270,7 +171,7 @@ exports.viemClientByNetworkId = {
270
171
  [chains_1.zksync.id]: exports.viemZkSyncEraClient,
271
172
  [chains_1.blast.id]: exports.viemBlastClient,
272
173
  [chains_1.worldchain.id]: exports.viemWorldChainClient,
273
- [chains_1.hemi.id]: exports.viemHemiClient,
174
+ [hemi.id]: exports.viemHemiClient,
274
175
  [chains_1.linea.id]: exports.viemLineaClient,
275
176
  [chains_1.scroll.id]: exports.viemScrollClient,
276
177
  [chains_1.sonic.id]: exports.viemSonicClient,