@shapeshiftoss/contracts 1.0.3-alpha.1 → 1.0.3

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.
Files changed (124) hide show
  1. package/package.json +8 -5
  2. package/dist/cjs/.tsbuildinfo +0 -1
  3. package/dist/cjs/abis/arbOutbox.d.ts +0 -413
  4. package/dist/cjs/abis/arbOutbox.js +0 -229
  5. package/dist/cjs/abis/arbProxy.d.ts +0 -102
  6. package/dist/cjs/abis/arbProxy.js +0 -69
  7. package/dist/cjs/abis/arbRetryableTx.d.ts +0 -230
  8. package/dist/cjs/abis/arbRetryableTx.js +0 -116
  9. package/dist/cjs/abis/arbSys.d.ts +0 -278
  10. package/dist/cjs/abis/arbSys.js +0 -142
  11. package/dist/cjs/abis/evergreenFarming.d.ts +0 -517
  12. package/dist/cjs/abis/evergreenFarming.js +0 -655
  13. package/dist/cjs/abis/farming.d.ts +0 -361
  14. package/dist/cjs/abis/farming.js +0 -459
  15. package/dist/cjs/abis/foxy.d.ts +0 -519
  16. package/dist/cjs/abis/foxy.js +0 -678
  17. package/dist/cjs/abis/foxyStaking.d.ts +0 -556
  18. package/dist/cjs/abis/foxyStaking.js +0 -720
  19. package/dist/cjs/abis/iUniswapV2Pair.d.ts +0 -560
  20. package/dist/cjs/abis/iUniswapV2Pair.js +0 -710
  21. package/dist/cjs/abis/iUniswapV3Pool.d.ts +0 -770
  22. package/dist/cjs/abis/iUniswapV3Pool.js +0 -986
  23. package/dist/cjs/abis/index.d.ts +0 -23
  24. package/dist/cjs/abis/index.js +0 -39
  25. package/dist/cjs/abis/l1ArbitrumGateway.d.ts +0 -494
  26. package/dist/cjs/abis/l1ArbitrumGateway.js +0 -259
  27. package/dist/cjs/abis/l1OrbitCustomGateway.d.ts +0 -769
  28. package/dist/cjs/abis/l1OrbitCustomGateway.js +0 -378
  29. package/dist/cjs/abis/l2ArbitrumGateway.d.ts +0 -308
  30. package/dist/cjs/abis/l2ArbitrumGateway.js +0 -172
  31. package/dist/cjs/abis/liquidityReserve.d.ts +0 -421
  32. package/dist/cjs/abis/liquidityReserve.js +0 -550
  33. package/dist/cjs/abis/rfox.d.ts +0 -680
  34. package/dist/cjs/abis/rfox.js +0 -558
  35. package/dist/cjs/abis/thorchainRouter.d.ts +0 -349
  36. package/dist/cjs/abis/thorchainRouter.js +0 -445
  37. package/dist/cjs/abis/tokeManager.d.ts +0 -774
  38. package/dist/cjs/abis/tokeManager.js +0 -511
  39. package/dist/cjs/abis/tokePool.d.ts +0 -502
  40. package/dist/cjs/abis/tokePool.js +0 -311
  41. package/dist/cjs/abis/tokeRewardHash.d.ts +0 -112
  42. package/dist/cjs/abis/tokeRewardHash.js +0 -74
  43. package/dist/cjs/abis/uniV2StakingRewards.d.ts +0 -316
  44. package/dist/cjs/abis/uniV2StakingRewards.js +0 -414
  45. package/dist/cjs/abis/uniswapV2Router02.d.ts +0 -737
  46. package/dist/cjs/abis/uniswapV2Router02.js +0 -956
  47. package/dist/cjs/abis/uniswapV3Quoter.d.ts +0 -147
  48. package/dist/cjs/abis/uniswapV3Quoter.js +0 -196
  49. package/dist/cjs/abis/weth.d.ts +0 -213
  50. package/dist/cjs/abis/weth.js +0 -282
  51. package/dist/cjs/constants.d.ts +0 -6640
  52. package/dist/cjs/constants.js +0 -108
  53. package/dist/cjs/contractManager.d.ts +0 -11
  54. package/dist/cjs/contractManager.js +0 -77
  55. package/dist/cjs/ethersProviderSingleton.d.ts +0 -6
  56. package/dist/cjs/ethersProviderSingleton.js +0 -75
  57. package/dist/cjs/index.d.ts +0 -6
  58. package/dist/cjs/index.js +0 -22
  59. package/dist/cjs/package.json +0 -1
  60. package/dist/cjs/types.d.ts +0 -21
  61. package/dist/cjs/types.js +0 -9
  62. package/dist/cjs/viemClient.d.ts +0 -28338
  63. package/dist/cjs/viemClient.js +0 -95
  64. package/dist/esm/.tsbuildinfo +0 -1
  65. package/dist/esm/abis/arbOutbox.d.ts +0 -413
  66. package/dist/esm/abis/arbOutbox.js +0 -226
  67. package/dist/esm/abis/arbProxy.d.ts +0 -102
  68. package/dist/esm/abis/arbProxy.js +0 -66
  69. package/dist/esm/abis/arbRetryableTx.d.ts +0 -230
  70. package/dist/esm/abis/arbRetryableTx.js +0 -113
  71. package/dist/esm/abis/arbSys.d.ts +0 -278
  72. package/dist/esm/abis/arbSys.js +0 -139
  73. package/dist/esm/abis/evergreenFarming.d.ts +0 -517
  74. package/dist/esm/abis/evergreenFarming.js +0 -652
  75. package/dist/esm/abis/farming.d.ts +0 -361
  76. package/dist/esm/abis/farming.js +0 -456
  77. package/dist/esm/abis/foxy.d.ts +0 -519
  78. package/dist/esm/abis/foxy.js +0 -675
  79. package/dist/esm/abis/foxyStaking.d.ts +0 -556
  80. package/dist/esm/abis/foxyStaking.js +0 -717
  81. package/dist/esm/abis/iUniswapV2Pair.d.ts +0 -560
  82. package/dist/esm/abis/iUniswapV2Pair.js +0 -707
  83. package/dist/esm/abis/iUniswapV3Pool.d.ts +0 -770
  84. package/dist/esm/abis/iUniswapV3Pool.js +0 -983
  85. package/dist/esm/abis/index.d.ts +0 -23
  86. package/dist/esm/abis/index.js +0 -23
  87. package/dist/esm/abis/l1ArbitrumGateway.d.ts +0 -494
  88. package/dist/esm/abis/l1ArbitrumGateway.js +0 -256
  89. package/dist/esm/abis/l1OrbitCustomGateway.d.ts +0 -769
  90. package/dist/esm/abis/l1OrbitCustomGateway.js +0 -375
  91. package/dist/esm/abis/l2ArbitrumGateway.d.ts +0 -308
  92. package/dist/esm/abis/l2ArbitrumGateway.js +0 -169
  93. package/dist/esm/abis/liquidityReserve.d.ts +0 -421
  94. package/dist/esm/abis/liquidityReserve.js +0 -547
  95. package/dist/esm/abis/rfox.d.ts +0 -680
  96. package/dist/esm/abis/rfox.js +0 -555
  97. package/dist/esm/abis/thorchainRouter.d.ts +0 -349
  98. package/dist/esm/abis/thorchainRouter.js +0 -442
  99. package/dist/esm/abis/tokeManager.d.ts +0 -774
  100. package/dist/esm/abis/tokeManager.js +0 -508
  101. package/dist/esm/abis/tokePool.d.ts +0 -502
  102. package/dist/esm/abis/tokePool.js +0 -308
  103. package/dist/esm/abis/tokeRewardHash.d.ts +0 -112
  104. package/dist/esm/abis/tokeRewardHash.js +0 -71
  105. package/dist/esm/abis/uniV2StakingRewards.d.ts +0 -316
  106. package/dist/esm/abis/uniV2StakingRewards.js +0 -411
  107. package/dist/esm/abis/uniswapV2Router02.d.ts +0 -737
  108. package/dist/esm/abis/uniswapV2Router02.js +0 -953
  109. package/dist/esm/abis/uniswapV3Quoter.d.ts +0 -147
  110. package/dist/esm/abis/uniswapV3Quoter.js +0 -193
  111. package/dist/esm/abis/weth.d.ts +0 -213
  112. package/dist/esm/abis/weth.js +0 -279
  113. package/dist/esm/constants.d.ts +0 -6640
  114. package/dist/esm/constants.js +0 -105
  115. package/dist/esm/contractManager.d.ts +0 -11
  116. package/dist/esm/contractManager.js +0 -69
  117. package/dist/esm/ethersProviderSingleton.d.ts +0 -6
  118. package/dist/esm/ethersProviderSingleton.js +0 -69
  119. package/dist/esm/index.d.ts +0 -6
  120. package/dist/esm/index.js +0 -6
  121. package/dist/esm/types.d.ts +0 -21
  122. package/dist/esm/types.js +0 -6
  123. package/dist/esm/viemClient.d.ts +0 -28338
  124. package/dist/esm/viemClient.js +0 -88
@@ -1,105 +0,0 @@
1
- import { erc20Abi } from 'viem';
2
- import { EVERGREEN_FARMING_ABI } from './abis/evergreenFarming.js';
3
- import { FARMING_ABI } from './abis/farming.js';
4
- import { I_UNISWAP_V2_PAIR_ABI } from './abis/iUniswapV2Pair.js';
5
- import { THORCHAIN_ROUTER_ABI } from './abis/thorchainRouter.js';
6
- import { UNISWAP_V2_ROUTER_02_ABI } from './abis/uniswapV2Router02.js';
7
- import { ContractType } from './types.js';
8
- export const WETH_TOKEN_CONTRACT = '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2';
9
- export const FOX_TOKEN_CONTRACT = '0xc770EEfAd204B5180dF6a14Ee197D99d808ee52d';
10
- // Staking contract addresses as string literals
11
- export const ETH_FOX_STAKING_V1_CONTRACT = '0xdd80e21669a664bce83e3ad9a0d74f8dad5d9e72';
12
- export const ETH_FOX_STAKING_V2_CONTRACT = '0xc54b9f82c1c54e9d4d274d633c7523f2299c42a0';
13
- export const ETH_FOX_STAKING_V3_CONTRACT = '0x212ebf9fd3c10f371557b08e993eaab385c3932b';
14
- export const ETH_FOX_STAKING_V4_CONTRACT = '0x24fd7fb95dc742e23dc3829d3e656feeb5f67fa0';
15
- export const ETH_FOX_STAKING_V5_CONTRACT = '0xc14eaa8284feff79edc118e06cadbf3813a7e555';
16
- export const ETH_FOX_STAKING_V6_CONTRACT = '0xebb1761ad43034fd7faa64d84e5bbd8cb5c40b68';
17
- export const ETH_FOX_STAKING_V7_CONTRACT = '0x5939783dbf3e9f453a69bc9ddc1e492efac1fbcb';
18
- export const ETH_FOX_STAKING_V8_CONTRACT = '0x662da6c777a258382f08b979d9489c3fbbbd8ac3';
19
- export const ETH_FOX_STAKING_V9_CONTRACT = '0x721720784b76265aa3e34c1c7ba02a6027bcd3e5';
20
- export const ETH_FOX_STAKING_EVERGREEN_CONTRACT = '0xe7e16e2b05440c2e484c5c41ac3e5a4d15da2744';
21
- export const foxEthStakingContractAddresses = [
22
- ETH_FOX_STAKING_V9_CONTRACT,
23
- ETH_FOX_STAKING_V8_CONTRACT,
24
- ETH_FOX_STAKING_V7_CONTRACT,
25
- ETH_FOX_STAKING_V6_CONTRACT,
26
- ETH_FOX_STAKING_V5_CONTRACT,
27
- ETH_FOX_STAKING_V4_CONTRACT,
28
- ETH_FOX_STAKING_V3_CONTRACT,
29
- ETH_FOX_STAKING_V2_CONTRACT,
30
- ETH_FOX_STAKING_V1_CONTRACT,
31
- ETH_FOX_STAKING_EVERGREEN_CONTRACT,
32
- ];
33
- // Exported as a string literal for contract address discrimination purposes
34
- export const ETH_FOX_POOL_CONTRACT = '0x470e8de2eBaef52014A47Cb5E6aF86884947F08c';
35
- // Uniswap V2
36
- export const UNISWAP_V2_ROUTER_02_CONTRACT_MAINNET = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D';
37
- export const UNISWAP_V2_FACTORY_CONTRACT_MAINNET = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f';
38
- // Uniswap V3
39
- export const UNISWAP_V3_QUOTER_CONTRACT_MAINNET = '0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6';
40
- export const UNISWAP_V3_POOL_FACTORY_CONTRACT_MAINNET = '0x1F98431c8aD98523631AE4a59f267346ea31F984';
41
- // THORChain Contracts
42
- export const THOR_ROUTER_CONTRACT_MAINNET = '0xd37bbe5744d730a1d98d8dc97c42f0ca46ad7146';
43
- export const TS_AGGREGATOR_TOKEN_TRANSFER_PROXY_CONTRACT_MAINNET = '0xF892Fef9dA200d9E84c9b0647ecFF0F34633aBe8';
44
- // RFOX on Arbitrum ERC1967Proxy contract address
45
- // Uncomment me if you want to test RFOX with a shorter cooldown period
46
- // export const RFOX_PROXY_CONTRACT: Address = '0x1094c4a99fce60e69ffe75849309408f1262d304'
47
- // export const RFOX_UNI_V2_ETH_FOX_PROXY_CONTRACT: Address = '0x4843373F380aDf80C779cD4dEDC6452E414f7634'
48
- export const RFOX_PROXY_CONTRACT = '0xaC2a4fD70BCD8Bab0662960455c363735f0e2b56';
49
- export const RFOX_UNI_V2_ETH_FOX_PROXY_CONTRACT = '0x83B51B7605d2E277E03A7D6451B1efc0e5253A2F';
50
- export const RFOX_REWARD_RATE = 1n * 10n ** 27n;
51
- export const RFOX_WAD = 1n * 10n ** 18n;
52
- export const CONTRACT_ADDRESS_TO_ABI = {
53
- [ETH_FOX_POOL_CONTRACT]: I_UNISWAP_V2_PAIR_ABI,
54
- [ETH_FOX_STAKING_V1_CONTRACT]: FARMING_ABI,
55
- [ETH_FOX_STAKING_V2_CONTRACT]: FARMING_ABI,
56
- [ETH_FOX_STAKING_V3_CONTRACT]: FARMING_ABI,
57
- [ETH_FOX_STAKING_V4_CONTRACT]: FARMING_ABI,
58
- [ETH_FOX_STAKING_V5_CONTRACT]: FARMING_ABI,
59
- [ETH_FOX_STAKING_V6_CONTRACT]: FARMING_ABI,
60
- [ETH_FOX_STAKING_V7_CONTRACT]: FARMING_ABI,
61
- [ETH_FOX_STAKING_V8_CONTRACT]: FARMING_ABI,
62
- [ETH_FOX_STAKING_V9_CONTRACT]: FARMING_ABI,
63
- [ETH_FOX_STAKING_EVERGREEN_CONTRACT]: EVERGREEN_FARMING_ABI,
64
- [FOX_TOKEN_CONTRACT]: erc20Abi,
65
- [UNISWAP_V2_ROUTER_02_CONTRACT_MAINNET]: UNISWAP_V2_ROUTER_02_ABI,
66
- // THOR Router Mainnet
67
- [THOR_ROUTER_CONTRACT_MAINNET]: THORCHAIN_ROUTER_ABI,
68
- };
69
- export const CONTRACT_TYPE_TO_ABI = {
70
- [ContractType.UniV2Pair]: I_UNISWAP_V2_PAIR_ABI,
71
- [ContractType.ERC20]: erc20Abi,
72
- [ContractType.ThorRouter]: THORCHAIN_ROUTER_ABI,
73
- };
74
- // 0x proxy contracts - all EVM chains except Optimism have the same address
75
- export const ZRX_ETHEREUM_PROXY_CONTRACT = '0xDef1C0ded9bec7F1a1670819833240f027b25EfF';
76
- export const ZRX_OPTIMISM_PROXY_CONTRACT = '0xDEF1ABE32c034e558Cdd535791643C58a13aCC10';
77
- // Cowswap
78
- export const COWSWAP_SETTLEMENT_CONTRACT_MAINNET = '0x9008D19f58AAbD9eD0D60971565AA8510560ab41';
79
- // Arbitrum Bridge contracts
80
- export const ARB_OUTBOX_CONTRACT = '0x0B9857ae2D4A3DBe74ffE1d7DF045bb7F96E4840';
81
- export const ARB_SYS_CONTRACT = '0x0000000000000000000000000000000000000064';
82
- export const ARBITRUM_L2_ERC20_GATEWAY_PROXY_CONTRACT = '0x09e9222E96E7B4AE2a407B98d48e330053351EEe';
83
- export const ARB_RETRYABLE_TX_CONTRACT = '0x000000000000000000000000000000000000006e';
84
- export const L2_ARBITRUM_CUSTOM_GATEWAY_CONTRACT = '0x096760F208390250649E3e8763348E783AEF5562';
85
- export const L2_ARBITRUM_GATEWAY_CONTRACT = '0x5288c571Fd7aD117beA99bF60FE0846C4E84F933';
86
- export const L1_ARBITRUM_GATEWAY_CONTRACT = '0x72ce9c846789fdb6fc1f34ac4ad25dd9ef7031ef';
87
- export const L1_ORBIT_CUSTOM_GATEWAY_CONTRACT = '0x4Dbd4fc535Ac27206064B68FfCf827b0A60BAB3f';
88
- export const SHAPE_SHIFT_ROUTER_CONTRACT = '0x6a1e73f12018D8e5f966ce794aa2921941feB17E';
89
- export const FOXY_STAKING_CONTRACT = '0xee77aa3Fd23BbeBaf94386dD44b548e9a785ea4b';
90
- // Fox Staking Contracts
91
- export const UNI_V2_FOX_STAKING_REWARDS_V1_CONTRACT = '0xDd80E21669A664Bce83E3AD9a0d74f8Dad5D9E72';
92
- export const UNI_V2_FOX_STAKING_REWARDS_V2_CONTRACT = '0xc54B9F82C1c54E9D4d274d633c7523f2299c42A0';
93
- export const UNI_V2_FOX_STAKING_REWARDS_V3_CONTRACT = '0x212ebf9FD3c10F371557b08E993eAaB385c3932b';
94
- export const UNI_V2_FOX_STAKING_REWARDS_V4_CONTRACT = '0x24FD7FB95dc742e23Dc3829d3e656FEeb5f67fa0';
95
- export const UNI_V2_FOX_STAKING_REWARDS_V5_CONTRACT = '0xC14eaA8284feFF79EDc118E06caDBf3813a7e555';
96
- export const UNI_V2_FOX_STAKING_REWARDS_CONTRACTS = [
97
- UNI_V2_FOX_STAKING_REWARDS_V1_CONTRACT,
98
- UNI_V2_FOX_STAKING_REWARDS_V2_CONTRACT,
99
- UNI_V2_FOX_STAKING_REWARDS_V3_CONTRACT,
100
- UNI_V2_FOX_STAKING_REWARDS_V4_CONTRACT,
101
- UNI_V2_FOX_STAKING_REWARDS_V5_CONTRACT,
102
- ];
103
- // Permit2 is deployed here across all chains.
104
- // https://0x.org/docs/introduction/0x-cheat-sheet#permit2-contract
105
- export const PERMIT2_CONTRACT = '0x000000000022D473030F116dDEE9F6B43aC78BA3';
@@ -1,11 +0,0 @@
1
- import type { AssetId, ChainId } from '@shapeshiftoss/caip';
2
- import type { Address } from 'viem';
3
- import type { KnownContractAddress, KnownContractByAddress, KnownContractByType } from './types.js';
4
- import { ContractType } from './types.js';
5
- export declare const getOrCreateContractByAddress: <A extends KnownContractAddress>(address: A) => KnownContractByAddress<A>;
6
- export declare const getOrCreateContractByType: <A extends KnownContractAddress, T extends ContractType>({ address, type, chainId, }: {
7
- address: string | Address;
8
- type: T;
9
- chainId: ChainId;
10
- }) => KnownContractByType<A, T>;
11
- export declare const fetchUniV2PairData: ((pairAssetId: AssetId) => Promise<import("@uniswap/sdk").Pair>) & import("lodash").MemoizedFunction;
@@ -1,69 +0,0 @@
1
- import { fromAssetId, toAssetId } from '@shapeshiftoss/caip';
2
- import { KnownChainIds } from '@shapeshiftoss/types';
3
- import { Fetcher } from '@uniswap/sdk';
4
- import assert from 'assert';
5
- import memoize from 'lodash/memoize';
6
- import { getAddress, getContract } from 'viem';
7
- import { CONTRACT_ADDRESS_TO_ABI, CONTRACT_TYPE_TO_ABI } from './constants.js';
8
- import { getEthersV5Provider } from './ethersProviderSingleton.js';
9
- import { ContractType } from './types.js';
10
- import { viemClientByChainId, viemEthMainnetClient } from './viemClient.js';
11
- const definedContracts = {};
12
- export const getOrCreateContractByAddress = (address) => {
13
- const checksumAddress = getAddress(address);
14
- const definedContract = definedContracts[checksumAddress];
15
- if (definedContract !== undefined) {
16
- return definedContract;
17
- }
18
- const contractAbi = CONTRACT_ADDRESS_TO_ABI[address];
19
- const contract = getContract({
20
- abi: contractAbi,
21
- address: checksumAddress,
22
- client: viemEthMainnetClient,
23
- });
24
- definedContracts[checksumAddress] = contract;
25
- return contract;
26
- };
27
- export const getOrCreateContractByType = ({ address, type, chainId, }) => {
28
- const checksumAddress = getAddress(address);
29
- const definedContract = definedContracts[checksumAddress];
30
- if (definedContract !== undefined) {
31
- return definedContract;
32
- }
33
- const publicClient = viemClientByChainId[chainId];
34
- assert(publicClient !== undefined, `no public client found for chainId '${chainId}'`);
35
- const contract = getContract({
36
- abi: CONTRACT_TYPE_TO_ABI[type],
37
- address: checksumAddress,
38
- client: publicClient,
39
- });
40
- definedContracts[checksumAddress] = contract;
41
- return contract;
42
- };
43
- export const fetchUniV2PairData = memoize(async (pairAssetId) => {
44
- const { assetReference, chainId } = fromAssetId(pairAssetId);
45
- const checksumAddress = getAddress(assetReference);
46
- const pair = getOrCreateContractByType({
47
- address: checksumAddress,
48
- type: ContractType.UniV2Pair,
49
- chainId: KnownChainIds.EthereumMainnet,
50
- });
51
- const ethersV5Provider = getEthersV5Provider();
52
- const token0Address = await pair.read.token0();
53
- const token1Address = await pair.read.token1();
54
- const token0AssetId = toAssetId({
55
- chainId,
56
- assetNamespace: 'erc20',
57
- assetReference: token0Address,
58
- });
59
- const token1AssetId = toAssetId({
60
- chainId,
61
- assetNamespace: 'erc20',
62
- assetReference: token1Address,
63
- });
64
- const { chainReference: asset0EvmChainId, assetReference: asset0Address } = fromAssetId(token0AssetId);
65
- const { chainReference: asset1EvmChainId, assetReference: asset1Address } = fromAssetId(token1AssetId);
66
- const token0 = await Fetcher.fetchTokenData(Number(asset0EvmChainId), asset0Address, ethersV5Provider);
67
- const token1 = await Fetcher.fetchTokenData(Number(asset1EvmChainId), asset1Address, ethersV5Provider);
68
- return Fetcher.fetchPairData(token0, token1, ethersV5Provider);
69
- });
@@ -1,6 +0,0 @@
1
- import type { EvmChainId } from '@shapeshiftoss/types';
2
- import { JsonRpcProvider } from 'ethers';
3
- import { ethers as ethersV5 } from 'ethers5';
4
- export declare const rpcUrlByChainId: (chainId: EvmChainId) => string;
5
- export declare const getEthersProvider: (chainId: EvmChainId) => JsonRpcProvider;
6
- export declare const getEthersV5Provider: (chainId?: EvmChainId) => ethersV5.providers.JsonRpcProvider;
@@ -1,69 +0,0 @@
1
- import { KnownChainIds } from '@shapeshiftoss/types';
2
- import { assertUnreachable } from '@shapeshiftoss/utils';
3
- import { JsonRpcProvider } from 'ethers';
4
- import { ethers as ethersV5 } from 'ethers5';
5
- export const rpcUrlByChainId = (chainId) => {
6
- const url = (() => {
7
- switch (chainId) {
8
- case KnownChainIds.AvalancheMainnet:
9
- return process.env.VITE_AVALANCHE_NODE_URL;
10
- case KnownChainIds.OptimismMainnet:
11
- return process.env.VITE_OPTIMISM_NODE_URL;
12
- case KnownChainIds.BnbSmartChainMainnet:
13
- return process.env.VITE_BNBSMARTCHAIN_NODE_URL;
14
- case KnownChainIds.PolygonMainnet:
15
- return process.env.VITE_POLYGON_NODE_URL;
16
- case KnownChainIds.GnosisMainnet:
17
- return process.env.VITE_GNOSIS_NODE_URL;
18
- case KnownChainIds.EthereumMainnet:
19
- return process.env.VITE_ETHEREUM_NODE_URL;
20
- case KnownChainIds.ArbitrumMainnet:
21
- return process.env.VITE_ARBITRUM_NODE_URL;
22
- case KnownChainIds.ArbitrumNovaMainnet:
23
- return process.env.VITE_ARBITRUM_NOVA_NODE_URL;
24
- case KnownChainIds.BaseMainnet:
25
- return process.env.VITE_BASE_NODE_URL;
26
- default:
27
- return assertUnreachable(chainId);
28
- }
29
- })();
30
- if (!url) {
31
- throw new Error(`No RPC URL found for chainId ${chainId}`);
32
- }
33
- return url;
34
- };
35
- const ethersProviders = new Map();
36
- const ethersV5Providers = new Map();
37
- export const getEthersProvider = (chainId) => {
38
- if (!ethersProviders.has(chainId)) {
39
- const provider = new JsonRpcProvider(rpcUrlByChainId(chainId), undefined, {
40
- staticNetwork: true,
41
- });
42
- ethersProviders.set(chainId, provider);
43
- return provider;
44
- }
45
- else {
46
- // This really should be defined but I guess enough safety never hurts mang...
47
- const provider = ethersProviders.get(chainId);
48
- if (!provider) {
49
- throw new Error(`No provider found for chainId ${chainId}`);
50
- }
51
- return provider;
52
- }
53
- };
54
- // For backwards-compatibility for libraries still stuck in v5
55
- export const getEthersV5Provider = (chainId = KnownChainIds.EthereumMainnet) => {
56
- if (!ethersV5Providers.has(chainId)) {
57
- const provider = new ethersV5.providers.StaticJsonRpcProvider(rpcUrlByChainId(chainId));
58
- ethersV5Providers.set(chainId, provider);
59
- return provider;
60
- }
61
- else {
62
- // This really should be defined but I guess enough safety never hurts mang...
63
- const provider = ethersV5Providers.get(chainId);
64
- if (!provider) {
65
- throw new Error(`No provider found for chainId ${chainId}`);
66
- }
67
- return provider;
68
- }
69
- };
@@ -1,6 +0,0 @@
1
- export * from './constants.js';
2
- export * from './types.js';
3
- export * from './contractManager.js';
4
- export * from './ethersProviderSingleton.js';
5
- export * from './abis/index.js';
6
- export * from './viemClient.js';
package/dist/esm/index.js DELETED
@@ -1,6 +0,0 @@
1
- export * from './constants.js';
2
- export * from './types.js';
3
- export * from './contractManager.js';
4
- export * from './ethersProviderSingleton.js';
5
- export * from './abis/index.js';
6
- export * from './viemClient.js';
@@ -1,21 +0,0 @@
1
- import type { Address, GetContractReturnType, PublicClient } from 'viem';
2
- import type { EVERGREEN_FARMING_ABI, FARMING_ABI } from './abis/index.js';
3
- import type { CONTRACT_ADDRESS_TO_ABI, CONTRACT_TYPE_TO_ABI, ETH_FOX_POOL_CONTRACT, FOX_TOKEN_CONTRACT, foxEthStakingContractAddresses, THOR_ROUTER_CONTRACT_MAINNET, UNISWAP_V2_ROUTER_02_CONTRACT_MAINNET } from './constants.js';
4
- export declare enum ContractType {
5
- UniV2Pair = "UniV2Pair",
6
- ERC20 = "ERC20",
7
- ThorRouter = "ThorRouter"
8
- }
9
- export type KnownContractAbiByAddress<T extends KnownContractAddress> = (typeof CONTRACT_ADDRESS_TO_ABI)[T];
10
- export type KnownContractAbiByType<T extends ContractType> = (typeof CONTRACT_TYPE_TO_ABI)[T];
11
- export type KnownContractByAddress<T extends KnownContractAddress> = GetContractReturnType<KnownContractAbiByAddress<T>, PublicClient, T>;
12
- export type KnownContract = KnownContractByAddress<KnownContractAddress>;
13
- export type KnownContractByType<A extends KnownContractAddress, T extends ContractType> = GetContractReturnType<KnownContractAbiByType<T>, PublicClient, A>;
14
- export type KnownContractAddress = typeof ETH_FOX_POOL_CONTRACT | FoxEthStakingContractAddress | typeof FOX_TOKEN_CONTRACT | typeof UNISWAP_V2_ROUTER_02_CONTRACT_MAINNET | typeof THOR_ROUTER_CONTRACT_MAINNET;
15
- export type DefinedContract = {
16
- contract: KnownContractByAddress<KnownContractAddress>;
17
- address: KnownContractAddress;
18
- };
19
- export type FoxEthStakingContractAddress = (typeof foxEthStakingContractAddresses)[number];
20
- export type FoxEthStakingContractAbi = typeof FARMING_ABI | typeof EVERGREEN_FARMING_ABI;
21
- export type FoxEthStakingContract<T extends FoxEthStakingContractAbi> = T extends typeof FARMING_ABI ? GetContractReturnType<typeof FARMING_ABI, PublicClient, Address> : GetContractReturnType<typeof EVERGREEN_FARMING_ABI, PublicClient, Address>;
package/dist/esm/types.js DELETED
@@ -1,6 +0,0 @@
1
- export var ContractType;
2
- (function (ContractType) {
3
- ContractType["UniV2Pair"] = "UniV2Pair";
4
- ContractType["ERC20"] = "ERC20";
5
- ContractType["ThorRouter"] = "ThorRouter";
6
- })(ContractType || (ContractType = {}));