@railgun-community/shared-models 5.2.3 → 5.2.5

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.
@@ -34,6 +34,7 @@ export type Network = {
34
34
  baseToken: BaseToken;
35
35
  proxyContract: RailgunProxyContract;
36
36
  relayAdaptContract: RelayAdaptContract;
37
+ relayAdaptHistory: string[];
37
38
  deploymentBlock: RailgunProxyDeploymentBlock;
38
39
  isDevOnlyNetwork?: boolean;
39
40
  isTestnet?: boolean;
@@ -86,6 +86,7 @@ exports.NETWORK_CONFIG = {
86
86
  baseToken: {},
87
87
  proxyContract: RailgunProxyContract.Ethereum,
88
88
  relayAdaptContract: RelayAdaptContract.Ethereum,
89
+ relayAdaptHistory: [],
89
90
  deploymentBlock: RailgunProxyDeploymentBlock.Ethereum,
90
91
  defaultEVMGasType: response_types_1.EVMGasType.Type2,
91
92
  shouldQuickSync: false,
@@ -107,6 +108,11 @@ exports.NETWORK_CONFIG = {
107
108
  },
108
109
  proxyContract: RailgunProxyContract.Ethereum,
109
110
  relayAdaptContract: RelayAdaptContract.Ethereum,
111
+ relayAdaptHistory: [
112
+ '0x22af4EDBeA3De885dDa8f0a0653E6209e44e5B84',
113
+ '0xc3f2C8F9d5F0705De706b1302B7a039e1e11aC88',
114
+ '0x4025ee6512DBbda97049Bcf5AA5D38C54aF6bE8a', // V3.1 Update - Jan 2023
115
+ ],
110
116
  deploymentBlock: RailgunProxyDeploymentBlock.Ethereum,
111
117
  defaultEVMGasType: response_types_1.EVMGasType.Type2,
112
118
  shouldQuickSync: true,
@@ -128,6 +134,11 @@ exports.NETWORK_CONFIG = {
128
134
  },
129
135
  proxyContract: RailgunProxyContract.BNBChain,
130
136
  relayAdaptContract: RelayAdaptContract.BNBChain,
137
+ relayAdaptHistory: [
138
+ '0x20d868C7F1Eb706C46641ADD2f849c5DBf4dB158',
139
+ '0x25f795A8eC8aF7904aa403fF2Cc7205ce683BF52',
140
+ '0x741936fb83DDf324636D3048b3E6bC800B8D9e12', // V3.1 Update - Jan 2023
141
+ ],
131
142
  deploymentBlock: RailgunProxyDeploymentBlock.BNBChain,
132
143
  defaultEVMGasType: response_types_1.EVMGasType.Type0,
133
144
  shouldQuickSync: true,
@@ -149,6 +160,11 @@ exports.NETWORK_CONFIG = {
149
160
  },
150
161
  proxyContract: RailgunProxyContract.PolygonPOS,
151
162
  relayAdaptContract: RelayAdaptContract.PolygonPOS,
163
+ relayAdaptHistory: [
164
+ '0x30D8AD0339e2CF160620589f2DBa1765126A5fDC',
165
+ '0x969eE9AC1E0B5F5Dd781f63A168C52b73062ff86',
166
+ '0xc7FfA542736321A3dd69246d73987566a5486968', // V3.1 Update - Jan 2023
167
+ ],
152
168
  deploymentBlock: RailgunProxyDeploymentBlock.PolygonPOS,
153
169
  defaultEVMGasType: response_types_1.EVMGasType.Type2,
154
170
  shouldQuickSync: true,
@@ -170,6 +186,9 @@ exports.NETWORK_CONFIG = {
170
186
  },
171
187
  proxyContract: RailgunProxyContract.Arbitrum,
172
188
  relayAdaptContract: RelayAdaptContract.Arbitrum,
189
+ relayAdaptHistory: [
190
+ '0x5aD95C537b002770a39dea342c4bb2b68B1497aA', // Initial deployment - Feb 2023 post v3.1
191
+ ],
173
192
  deploymentBlock: RailgunProxyDeploymentBlock.Arbitrum,
174
193
  defaultEVMGasType: response_types_1.EVMGasType.Type2,
175
194
  shouldQuickSync: true,
@@ -193,6 +212,7 @@ exports.NETWORK_CONFIG = {
193
212
  },
194
213
  proxyContract: RailgunProxyContract.EthereumRopsten,
195
214
  relayAdaptContract: RelayAdaptContract.EthereumRopsten,
215
+ relayAdaptHistory: [''],
196
216
  deploymentBlock: RailgunProxyDeploymentBlock.EthereumRopsten,
197
217
  isDevOnlyNetwork: true,
198
218
  isTestnet: true,
@@ -216,6 +236,12 @@ exports.NETWORK_CONFIG = {
216
236
  },
217
237
  proxyContract: RailgunProxyContract.EthereumGoerli,
218
238
  relayAdaptContract: RelayAdaptContract.EthereumGoerli,
239
+ relayAdaptHistory: [
240
+ '0xD147B7Dfa636a1c50A52bF6A6FE910680274eE24',
241
+ '0x57F5925FeB79B1fd7Cc491F858D7fBc65502D3FE',
242
+ '0x6E9C59F042acB1577A297eDE607c21Ff284846F3',
243
+ '0x14a57CA7C5c1AD54fB6c642f428d973fcD696ED4', // V3.1 Update - Jan 2023
244
+ ],
219
245
  deploymentBlock: RailgunProxyDeploymentBlock.EthereumGoerli,
220
246
  isDevOnlyNetwork: true,
221
247
  isTestnet: true,
@@ -239,6 +265,11 @@ exports.NETWORK_CONFIG = {
239
265
  },
240
266
  proxyContract: RailgunProxyContract.PolygonMumbai,
241
267
  relayAdaptContract: RelayAdaptContract.PolygonMumbai,
268
+ relayAdaptHistory: [
269
+ '0x8B936B018CeA1c1cc14961CAdabD36E7fe9192cD',
270
+ '0x80efF1a8939C9B6E8C61Ed5Be683Eda21088B7E6',
271
+ '0x17D36875D723Cf0dA250d404Ef4cA0aABE105837', // V3.1 Update - Jan 2023
272
+ ],
242
273
  deploymentBlock: RailgunProxyDeploymentBlock.PolygonMumbai,
243
274
  isDevOnlyNetwork: true,
244
275
  isTestnet: true,
@@ -262,6 +293,10 @@ exports.NETWORK_CONFIG = {
262
293
  },
263
294
  proxyContract: RailgunProxyContract.ArbitrumGoerli,
264
295
  relayAdaptContract: RelayAdaptContract.ArbitrumGoerli,
296
+ relayAdaptHistory: [
297
+ '0x7E77d890179Aa683ac2B9A608bd8121255CAa917',
298
+ '0x3eAf99B5EDc79D833AA8B6d18F0a8dd041e13eF6', // V3.1 Update - Jan 2023
299
+ ],
265
300
  deploymentBlock: RailgunProxyDeploymentBlock.ArbitrumGoerli,
266
301
  isDevOnlyNetwork: true,
267
302
  isTestnet: true,
@@ -285,6 +320,7 @@ exports.NETWORK_CONFIG = {
285
320
  },
286
321
  proxyContract: RailgunProxyContract.Hardhat,
287
322
  relayAdaptContract: RelayAdaptContract.Hardhat,
323
+ relayAdaptHistory: [''],
288
324
  deploymentBlock: RailgunProxyDeploymentBlock.Hardhat,
289
325
  isDevOnlyNetwork: true,
290
326
  isTestnet: true,
@@ -1 +1 @@
1
- {"version":3,"file":"network-config.js","sourceRoot":"","sources":["../../src/models/network-config.ts"],"names":[],"mappings":"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","sourcesContent":["import { Chain, ChainType, EVMGasType } from './response-types';\n\n/**\n * DO NOT CHANGE THESE ENUM STRINGS.\n */\nexport enum NetworkName {\n // Mainnets\n Railgun = 'Railgun',\n Ethereum = 'Ethereum',\n BNBChain = 'BNB_Chain',\n Polygon = 'Polygon',\n Arbitrum = 'Arbitrum',\n\n // Testnets\n EthereumRopsten_DEPRECATED = 'Ethereum_Ropsten',\n EthereumGoerli = 'Ethereum_Goerli',\n PolygonMumbai = 'Polygon_Mumbai',\n ArbitrumGoerli = 'Arbitrum_Goerli',\n\n // Dev only\n Hardhat = 'Hardhat',\n}\n\nexport type FeesSerialized = {\n shield: string;\n unshield: string;\n nft: string;\n};\n\ntype BaseToken = {\n symbol: string;\n wrappedSymbol: string;\n wrappedAddress: BaseTokenWrappedAddress;\n decimals: number;\n};\n\nexport type Network = {\n chain: Chain;\n name: NetworkName;\n publicName: string;\n shortPublicName: string;\n coingeckoId: string;\n baseToken: BaseToken;\n proxyContract: RailgunProxyContract;\n relayAdaptContract: RelayAdaptContract;\n deploymentBlock: RailgunProxyDeploymentBlock;\n isDevOnlyNetwork?: boolean;\n isTestnet?: boolean;\n defaultEVMGasType: EVMGasType;\n shouldQuickSync: boolean;\n deprecated?: boolean;\n};\n\nexport enum RailgunProxyContract {\n Ethereum = '0xfa7093cdd9ee6932b4eb2c9e1cde7ce00b1fa4b9',\n BNBChain = '0x590162bf4b50f6576a459b75309ee21d92178a10',\n PolygonPOS = '0x19b620929f97b7b990801496c3b361ca5def8c71',\n Arbitrum = '0xFA7093CDD9EE6932B4eb2c9e1cde7CE00B1FA4b9',\n\n // Test nets\n EthereumRopsten = '',\n EthereumGoerli = '0xe8bEa99BB438C2f3D533604D33258d74d5eE4824',\n PolygonMumbai = '0x3ee8306321d992483BDC9c69B8F622Ba3FFF05B6',\n ArbitrumGoerli = '0xA0603e598F9Ac2fc7475a3fA08D0794066615D9a',\n Hardhat = '0x610178dA211FEF7D417bC0e6FeD39F05609AD788',\n}\n\nexport enum RelayAdaptContract {\n Ethereum = '0x4025ee6512DBbda97049Bcf5AA5D38C54aF6bE8a',\n BNBChain = '0x741936fb83DDf324636D3048b3E6bC800B8D9e12',\n PolygonPOS = '0xc7FfA542736321A3dd69246d73987566a5486968',\n Arbitrum = '0x5aD95C537b002770a39dea342c4bb2b68B1497aA',\n\n // Test nets\n EthereumRopsten = '',\n EthereumGoerli = '0x14a57CA7C5c1AD54fB6c642f428d973fcD696ED4',\n PolygonMumbai = '0x17D36875D723Cf0dA250d404Ef4cA0aABE105837',\n ArbitrumGoerli = '0x3eAf99B5EDc79D833AA8B6d18F0a8dd041e13eF6',\n Hardhat = '0x0355B7B8cb128fA5692729Ab3AAa199C1753f726',\n}\n\nexport enum RailgunProxyDeploymentBlock {\n Ethereum = 14737691,\n BNBChain = 17633701,\n PolygonPOS = 28083766,\n Arbitrum = 56109834,\n\n // Test nets\n EthereumRopsten = 12226000,\n EthereumGoerli = 7795991,\n PolygonMumbai = 28697343,\n ArbitrumGoerli = 2611949,\n Hardhat = 0,\n}\n\nexport enum BaseTokenWrappedAddress {\n EthereumWETH = '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // WETH\n BinanceWBNB = '0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c', // WBNB\n PolygonWMATIC = '0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270', // WMATIC\n ArbitrumWETH = '0x82af49447d8a07e3bd95bd0d56f35241523fbab1', // (Arbitrum) WETH\n\n // Test nets\n EthereumRopstenWETH = '0xc778417e063141139fce010982780140aa0cd5ab', // (Ropsten) WETH\n EthereumGoerliWETH = '0xb4fbf271143f4fbf7b91a5ded31805e42b2208d6', // (Goerli) WETH\n PolygonMumbaiWMATIC = '0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889', // (Mumbai) WMATIC\n ArbitrumGoerliWETH = '0xe39Ab88f8A4777030A534146A9Ca3B52bd5D43A3', // (Arbitrum Goerli) WETH\n HardhatWETH = '0x09635F643e140090A9A8Dcd712eD6285858ceBef', // (Hardhat) WETH\n}\n\nexport const NETWORK_CONFIG: { [name in NetworkName]: Network } = {\n [NetworkName.Railgun]: {\n chain: {\n type: ChainType.EVM,\n id: -1,\n },\n name: NetworkName.Railgun,\n publicName: 'RAILGUN',\n shortPublicName: '',\n coingeckoId: '',\n baseToken: {} as BaseToken,\n proxyContract: RailgunProxyContract.Ethereum,\n relayAdaptContract: RelayAdaptContract.Ethereum,\n deploymentBlock: RailgunProxyDeploymentBlock.Ethereum,\n defaultEVMGasType: EVMGasType.Type2,\n shouldQuickSync: false,\n },\n [NetworkName.Ethereum]: {\n chain: {\n type: ChainType.EVM,\n id: 1,\n },\n name: NetworkName.Ethereum,\n publicName: 'Ethereum',\n shortPublicName: 'Ethereum',\n coingeckoId: 'ethereum',\n baseToken: {\n symbol: 'ETH',\n wrappedSymbol: 'WETH',\n wrappedAddress: BaseTokenWrappedAddress.EthereumWETH,\n decimals: 18,\n },\n proxyContract: RailgunProxyContract.Ethereum,\n relayAdaptContract: RelayAdaptContract.Ethereum,\n deploymentBlock: RailgunProxyDeploymentBlock.Ethereum,\n defaultEVMGasType: EVMGasType.Type2,\n shouldQuickSync: true,\n },\n [NetworkName.BNBChain]: {\n chain: {\n type: ChainType.EVM,\n id: 56,\n },\n name: NetworkName.BNBChain,\n publicName: 'BNB Smart Chain',\n shortPublicName: 'BSC',\n coingeckoId: 'binance-smart-chain',\n baseToken: {\n symbol: 'BNB',\n wrappedSymbol: 'WBNB',\n wrappedAddress: BaseTokenWrappedAddress.BinanceWBNB,\n decimals: 18,\n },\n proxyContract: RailgunProxyContract.BNBChain,\n relayAdaptContract: RelayAdaptContract.BNBChain,\n deploymentBlock: RailgunProxyDeploymentBlock.BNBChain,\n defaultEVMGasType: EVMGasType.Type0,\n shouldQuickSync: true,\n },\n [NetworkName.Polygon]: {\n chain: {\n type: ChainType.EVM,\n id: 137,\n },\n name: NetworkName.Polygon,\n publicName: 'Polygon',\n shortPublicName: 'Polygon',\n coingeckoId: 'polygon-pos',\n baseToken: {\n symbol: 'MATIC',\n wrappedSymbol: 'WMATIC',\n wrappedAddress: BaseTokenWrappedAddress.PolygonWMATIC,\n decimals: 18,\n },\n proxyContract: RailgunProxyContract.PolygonPOS,\n relayAdaptContract: RelayAdaptContract.PolygonPOS,\n deploymentBlock: RailgunProxyDeploymentBlock.PolygonPOS,\n defaultEVMGasType: EVMGasType.Type2,\n shouldQuickSync: true,\n },\n [NetworkName.Arbitrum]: {\n chain: {\n type: ChainType.EVM,\n id: 42161,\n },\n name: NetworkName.Arbitrum,\n publicName: 'Arbitrum',\n shortPublicName: 'Arbitrum',\n coingeckoId: 'arbitrum-one',\n baseToken: {\n symbol: 'ETH',\n wrappedSymbol: 'WETH',\n wrappedAddress: BaseTokenWrappedAddress.ArbitrumWETH,\n decimals: 18,\n },\n proxyContract: RailgunProxyContract.Arbitrum,\n relayAdaptContract: RelayAdaptContract.Arbitrum,\n deploymentBlock: RailgunProxyDeploymentBlock.Arbitrum,\n defaultEVMGasType: EVMGasType.Type2,\n shouldQuickSync: true,\n },\n\n // TEST NETS\n [NetworkName.EthereumRopsten_DEPRECATED]: {\n deprecated: true,\n chain: {\n type: ChainType.EVM,\n id: 3,\n },\n name: NetworkName.EthereumRopsten_DEPRECATED,\n publicName: 'Ropsten Testnet',\n shortPublicName: 'Ropsten',\n coingeckoId: 'ethereum',\n baseToken: {\n symbol: 'ETH',\n wrappedSymbol: 'WETH',\n wrappedAddress: BaseTokenWrappedAddress.EthereumRopstenWETH,\n decimals: 18,\n },\n proxyContract: RailgunProxyContract.EthereumRopsten,\n relayAdaptContract: RelayAdaptContract.EthereumRopsten,\n deploymentBlock: RailgunProxyDeploymentBlock.EthereumRopsten,\n isDevOnlyNetwork: true,\n isTestnet: true,\n defaultEVMGasType: EVMGasType.Type2,\n shouldQuickSync: false,\n },\n [NetworkName.EthereumGoerli]: {\n chain: {\n type: ChainType.EVM,\n id: 5,\n },\n name: NetworkName.EthereumGoerli,\n publicName: 'Görli Testnet',\n shortPublicName: 'Görli',\n coingeckoId: 'ethereum',\n baseToken: {\n symbol: 'ETH',\n wrappedSymbol: 'WETH',\n wrappedAddress: BaseTokenWrappedAddress.EthereumGoerliWETH,\n decimals: 18,\n },\n proxyContract: RailgunProxyContract.EthereumGoerli,\n relayAdaptContract: RelayAdaptContract.EthereumGoerli,\n deploymentBlock: RailgunProxyDeploymentBlock.EthereumGoerli,\n isDevOnlyNetwork: true,\n isTestnet: true,\n defaultEVMGasType: EVMGasType.Type2,\n shouldQuickSync: true,\n },\n [NetworkName.PolygonMumbai]: {\n chain: {\n type: ChainType.EVM,\n id: 80001,\n },\n name: NetworkName.PolygonMumbai,\n publicName: 'Mumbai Testnet',\n shortPublicName: 'Mumbai',\n coingeckoId: 'polygon-pos',\n baseToken: {\n symbol: 'MATIC',\n wrappedSymbol: 'WMATIC',\n wrappedAddress: BaseTokenWrappedAddress.PolygonMumbaiWMATIC,\n decimals: 18,\n },\n proxyContract: RailgunProxyContract.PolygonMumbai,\n relayAdaptContract: RelayAdaptContract.PolygonMumbai,\n deploymentBlock: RailgunProxyDeploymentBlock.PolygonMumbai,\n isDevOnlyNetwork: true,\n isTestnet: true,\n defaultEVMGasType: EVMGasType.Type2,\n shouldQuickSync: true,\n },\n [NetworkName.ArbitrumGoerli]: {\n chain: {\n type: ChainType.EVM,\n id: 421613,\n },\n name: NetworkName.ArbitrumGoerli,\n publicName: 'Arbitrum Görli Testnet',\n shortPublicName: 'Arbitrum Görli',\n coingeckoId: 'arbitrum-one',\n baseToken: {\n symbol: 'ETH',\n wrappedSymbol: 'WETH',\n wrappedAddress: BaseTokenWrappedAddress.ArbitrumGoerliWETH,\n decimals: 18,\n },\n proxyContract: RailgunProxyContract.ArbitrumGoerli,\n relayAdaptContract: RelayAdaptContract.ArbitrumGoerli,\n deploymentBlock: RailgunProxyDeploymentBlock.ArbitrumGoerli,\n isDevOnlyNetwork: true,\n isTestnet: true,\n defaultEVMGasType: EVMGasType.Type2,\n shouldQuickSync: true,\n },\n [NetworkName.Hardhat]: {\n chain: {\n type: ChainType.EVM,\n id: 31337,\n },\n name: NetworkName.Hardhat,\n publicName: 'Hardhat Testnet',\n shortPublicName: 'Hardhat',\n coingeckoId: '',\n baseToken: {\n symbol: 'ETH',\n wrappedSymbol: 'WETH',\n wrappedAddress: BaseTokenWrappedAddress.HardhatWETH,\n decimals: 18,\n },\n proxyContract: RailgunProxyContract.Hardhat,\n relayAdaptContract: RelayAdaptContract.Hardhat,\n deploymentBlock: RailgunProxyDeploymentBlock.Hardhat,\n isDevOnlyNetwork: true,\n isTestnet: true,\n defaultEVMGasType: EVMGasType.Type2,\n shouldQuickSync: false,\n },\n};\n"]}
1
+ {"version":3,"file":"network-config.js","sourceRoot":"","sources":["../../src/models/network-config.ts"],"names":[],"mappings":"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","sourcesContent":["import { Chain, ChainType, EVMGasType } from './response-types';\n\n/**\n * DO NOT CHANGE THESE ENUM STRINGS.\n */\nexport enum NetworkName {\n // Mainnets\n Railgun = 'Railgun',\n Ethereum = 'Ethereum',\n BNBChain = 'BNB_Chain',\n Polygon = 'Polygon',\n Arbitrum = 'Arbitrum',\n\n // Testnets\n EthereumRopsten_DEPRECATED = 'Ethereum_Ropsten',\n EthereumGoerli = 'Ethereum_Goerli',\n PolygonMumbai = 'Polygon_Mumbai',\n ArbitrumGoerli = 'Arbitrum_Goerli',\n\n // Dev only\n Hardhat = 'Hardhat',\n}\n\nexport type FeesSerialized = {\n shield: string;\n unshield: string;\n nft: string;\n};\n\ntype BaseToken = {\n symbol: string;\n wrappedSymbol: string;\n wrappedAddress: BaseTokenWrappedAddress;\n decimals: number;\n};\n\nexport type Network = {\n chain: Chain;\n name: NetworkName;\n publicName: string;\n shortPublicName: string;\n coingeckoId: string;\n baseToken: BaseToken;\n proxyContract: RailgunProxyContract;\n relayAdaptContract: RelayAdaptContract;\n relayAdaptHistory: string[];\n deploymentBlock: RailgunProxyDeploymentBlock;\n isDevOnlyNetwork?: boolean;\n isTestnet?: boolean;\n defaultEVMGasType: EVMGasType;\n shouldQuickSync: boolean;\n deprecated?: boolean;\n};\n\nexport enum RailgunProxyContract {\n Ethereum = '0xfa7093cdd9ee6932b4eb2c9e1cde7ce00b1fa4b9',\n BNBChain = '0x590162bf4b50f6576a459b75309ee21d92178a10',\n PolygonPOS = '0x19b620929f97b7b990801496c3b361ca5def8c71',\n Arbitrum = '0xFA7093CDD9EE6932B4eb2c9e1cde7CE00B1FA4b9',\n\n // Test nets\n EthereumRopsten = '',\n EthereumGoerli = '0xe8bEa99BB438C2f3D533604D33258d74d5eE4824',\n PolygonMumbai = '0x3ee8306321d992483BDC9c69B8F622Ba3FFF05B6',\n ArbitrumGoerli = '0xA0603e598F9Ac2fc7475a3fA08D0794066615D9a',\n Hardhat = '0x610178dA211FEF7D417bC0e6FeD39F05609AD788',\n}\n\nexport enum RelayAdaptContract {\n Ethereum = '0x4025ee6512DBbda97049Bcf5AA5D38C54aF6bE8a',\n BNBChain = '0x741936fb83DDf324636D3048b3E6bC800B8D9e12',\n PolygonPOS = '0xc7FfA542736321A3dd69246d73987566a5486968',\n Arbitrum = '0x5aD95C537b002770a39dea342c4bb2b68B1497aA',\n\n // Test nets\n EthereumRopsten = '',\n EthereumGoerli = '0x14a57CA7C5c1AD54fB6c642f428d973fcD696ED4',\n PolygonMumbai = '0x17D36875D723Cf0dA250d404Ef4cA0aABE105837',\n ArbitrumGoerli = '0x3eAf99B5EDc79D833AA8B6d18F0a8dd041e13eF6',\n Hardhat = '0x0355B7B8cb128fA5692729Ab3AAa199C1753f726',\n}\n\nexport enum RailgunProxyDeploymentBlock {\n Ethereum = 14737691,\n BNBChain = 17633701,\n PolygonPOS = 28083766,\n Arbitrum = 56109834,\n\n // Test nets\n EthereumRopsten = 12226000,\n EthereumGoerli = 7795991,\n PolygonMumbai = 28697343,\n ArbitrumGoerli = 2611949,\n Hardhat = 0,\n}\n\nexport enum BaseTokenWrappedAddress {\n EthereumWETH = '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // WETH\n BinanceWBNB = '0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c', // WBNB\n PolygonWMATIC = '0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270', // WMATIC\n ArbitrumWETH = '0x82af49447d8a07e3bd95bd0d56f35241523fbab1', // (Arbitrum) WETH\n\n // Test nets\n EthereumRopstenWETH = '0xc778417e063141139fce010982780140aa0cd5ab', // (Ropsten) WETH\n EthereumGoerliWETH = '0xb4fbf271143f4fbf7b91a5ded31805e42b2208d6', // (Goerli) WETH\n PolygonMumbaiWMATIC = '0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889', // (Mumbai) WMATIC\n ArbitrumGoerliWETH = '0xe39Ab88f8A4777030A534146A9Ca3B52bd5D43A3', // (Arbitrum Goerli) WETH\n HardhatWETH = '0x09635F643e140090A9A8Dcd712eD6285858ceBef', // (Hardhat) WETH\n}\n\nexport const NETWORK_CONFIG: { [name in NetworkName]: Network } = {\n [NetworkName.Railgun]: {\n chain: {\n type: ChainType.EVM,\n id: -1,\n },\n name: NetworkName.Railgun,\n publicName: 'RAILGUN',\n shortPublicName: '',\n coingeckoId: '',\n baseToken: {} as BaseToken,\n proxyContract: RailgunProxyContract.Ethereum,\n relayAdaptContract: RelayAdaptContract.Ethereum,\n relayAdaptHistory: [],\n deploymentBlock: RailgunProxyDeploymentBlock.Ethereum,\n defaultEVMGasType: EVMGasType.Type2,\n shouldQuickSync: false,\n },\n [NetworkName.Ethereum]: {\n chain: {\n type: ChainType.EVM,\n id: 1,\n },\n name: NetworkName.Ethereum,\n publicName: 'Ethereum',\n shortPublicName: 'Ethereum',\n coingeckoId: 'ethereum',\n baseToken: {\n symbol: 'ETH',\n wrappedSymbol: 'WETH',\n wrappedAddress: BaseTokenWrappedAddress.EthereumWETH,\n decimals: 18,\n },\n proxyContract: RailgunProxyContract.Ethereum,\n relayAdaptContract: RelayAdaptContract.Ethereum,\n relayAdaptHistory: [\n '0x22af4EDBeA3De885dDa8f0a0653E6209e44e5B84', // Initial deployment\n '0xc3f2C8F9d5F0705De706b1302B7a039e1e11aC88', // V3.0 Update - Nov 2022\n '0x4025ee6512DBbda97049Bcf5AA5D38C54aF6bE8a', // V3.1 Update - Jan 2023\n ],\n deploymentBlock: RailgunProxyDeploymentBlock.Ethereum,\n defaultEVMGasType: EVMGasType.Type2,\n shouldQuickSync: true,\n },\n [NetworkName.BNBChain]: {\n chain: {\n type: ChainType.EVM,\n id: 56,\n },\n name: NetworkName.BNBChain,\n publicName: 'BNB Smart Chain',\n shortPublicName: 'BSC',\n coingeckoId: 'binance-smart-chain',\n baseToken: {\n symbol: 'BNB',\n wrappedSymbol: 'WBNB',\n wrappedAddress: BaseTokenWrappedAddress.BinanceWBNB,\n decimals: 18,\n },\n proxyContract: RailgunProxyContract.BNBChain,\n relayAdaptContract: RelayAdaptContract.BNBChain,\n relayAdaptHistory: [\n '0x20d868C7F1Eb706C46641ADD2f849c5DBf4dB158', // Initial deployment\n '0x25f795A8eC8aF7904aa403fF2Cc7205ce683BF52', // V3.0 Update - Nov 2022\n '0x741936fb83DDf324636D3048b3E6bC800B8D9e12', // V3.1 Update - Jan 2023\n ],\n deploymentBlock: RailgunProxyDeploymentBlock.BNBChain,\n defaultEVMGasType: EVMGasType.Type0,\n shouldQuickSync: true,\n },\n [NetworkName.Polygon]: {\n chain: {\n type: ChainType.EVM,\n id: 137,\n },\n name: NetworkName.Polygon,\n publicName: 'Polygon',\n shortPublicName: 'Polygon',\n coingeckoId: 'polygon-pos',\n baseToken: {\n symbol: 'MATIC',\n wrappedSymbol: 'WMATIC',\n wrappedAddress: BaseTokenWrappedAddress.PolygonWMATIC,\n decimals: 18,\n },\n proxyContract: RailgunProxyContract.PolygonPOS,\n relayAdaptContract: RelayAdaptContract.PolygonPOS,\n relayAdaptHistory: [\n '0x30D8AD0339e2CF160620589f2DBa1765126A5fDC', // Initial deployment\n '0x969eE9AC1E0B5F5Dd781f63A168C52b73062ff86', // V3.0 Update - Nov 2022\n '0xc7FfA542736321A3dd69246d73987566a5486968', // V3.1 Update - Jan 2023\n ],\n deploymentBlock: RailgunProxyDeploymentBlock.PolygonPOS,\n defaultEVMGasType: EVMGasType.Type2,\n shouldQuickSync: true,\n },\n [NetworkName.Arbitrum]: {\n chain: {\n type: ChainType.EVM,\n id: 42161,\n },\n name: NetworkName.Arbitrum,\n publicName: 'Arbitrum',\n shortPublicName: 'Arbitrum',\n coingeckoId: 'arbitrum-one',\n baseToken: {\n symbol: 'ETH',\n wrappedSymbol: 'WETH',\n wrappedAddress: BaseTokenWrappedAddress.ArbitrumWETH,\n decimals: 18,\n },\n proxyContract: RailgunProxyContract.Arbitrum,\n relayAdaptContract: RelayAdaptContract.Arbitrum,\n relayAdaptHistory: [\n '0x5aD95C537b002770a39dea342c4bb2b68B1497aA', // Initial deployment - Feb 2023 post v3.1\n ],\n deploymentBlock: RailgunProxyDeploymentBlock.Arbitrum,\n defaultEVMGasType: EVMGasType.Type2,\n shouldQuickSync: true,\n },\n\n // TEST NETS\n [NetworkName.EthereumRopsten_DEPRECATED]: {\n deprecated: true,\n chain: {\n type: ChainType.EVM,\n id: 3,\n },\n name: NetworkName.EthereumRopsten_DEPRECATED,\n publicName: 'Ropsten Testnet',\n shortPublicName: 'Ropsten',\n coingeckoId: 'ethereum',\n baseToken: {\n symbol: 'ETH',\n wrappedSymbol: 'WETH',\n wrappedAddress: BaseTokenWrappedAddress.EthereumRopstenWETH,\n decimals: 18,\n },\n proxyContract: RailgunProxyContract.EthereumRopsten,\n relayAdaptContract: RelayAdaptContract.EthereumRopsten,\n relayAdaptHistory: [''],\n deploymentBlock: RailgunProxyDeploymentBlock.EthereumRopsten,\n isDevOnlyNetwork: true,\n isTestnet: true,\n defaultEVMGasType: EVMGasType.Type2,\n shouldQuickSync: false,\n },\n [NetworkName.EthereumGoerli]: {\n chain: {\n type: ChainType.EVM,\n id: 5,\n },\n name: NetworkName.EthereumGoerli,\n publicName: 'Görli Testnet',\n shortPublicName: 'Görli',\n coingeckoId: 'ethereum',\n baseToken: {\n symbol: 'ETH',\n wrappedSymbol: 'WETH',\n wrappedAddress: BaseTokenWrappedAddress.EthereumGoerliWETH,\n decimals: 18,\n },\n proxyContract: RailgunProxyContract.EthereumGoerli,\n relayAdaptContract: RelayAdaptContract.EthereumGoerli,\n relayAdaptHistory: [\n '0xD147B7Dfa636a1c50A52bF6A6FE910680274eE24', // Initial deployment\n '0x57F5925FeB79B1fd7Cc491F858D7fBc65502D3FE', // V3.0 Update - Nov 2022\n '0x6E9C59F042acB1577A297eDE607c21Ff284846F3', // V3.1 partial update - Jan 2023\n '0x14a57CA7C5c1AD54fB6c642f428d973fcD696ED4', // V3.1 Update - Jan 2023\n ],\n deploymentBlock: RailgunProxyDeploymentBlock.EthereumGoerli,\n isDevOnlyNetwork: true,\n isTestnet: true,\n defaultEVMGasType: EVMGasType.Type2,\n shouldQuickSync: true,\n },\n [NetworkName.PolygonMumbai]: {\n chain: {\n type: ChainType.EVM,\n id: 80001,\n },\n name: NetworkName.PolygonMumbai,\n publicName: 'Mumbai Testnet',\n shortPublicName: 'Mumbai',\n coingeckoId: 'polygon-pos',\n baseToken: {\n symbol: 'MATIC',\n wrappedSymbol: 'WMATIC',\n wrappedAddress: BaseTokenWrappedAddress.PolygonMumbaiWMATIC,\n decimals: 18,\n },\n proxyContract: RailgunProxyContract.PolygonMumbai,\n relayAdaptContract: RelayAdaptContract.PolygonMumbai,\n relayAdaptHistory: [\n '0x8B936B018CeA1c1cc14961CAdabD36E7fe9192cD', // Initial deployment\n '0x80efF1a8939C9B6E8C61Ed5Be683Eda21088B7E6', // V3.0 Update - Nov 2022\n '0x17D36875D723Cf0dA250d404Ef4cA0aABE105837', // V3.1 Update - Jan 2023\n ],\n deploymentBlock: RailgunProxyDeploymentBlock.PolygonMumbai,\n isDevOnlyNetwork: true,\n isTestnet: true,\n defaultEVMGasType: EVMGasType.Type2,\n shouldQuickSync: true,\n },\n [NetworkName.ArbitrumGoerli]: {\n chain: {\n type: ChainType.EVM,\n id: 421613,\n },\n name: NetworkName.ArbitrumGoerli,\n publicName: 'Arbitrum Görli Testnet',\n shortPublicName: 'Arbitrum Görli',\n coingeckoId: 'arbitrum-one',\n baseToken: {\n symbol: 'ETH',\n wrappedSymbol: 'WETH',\n wrappedAddress: BaseTokenWrappedAddress.ArbitrumGoerliWETH,\n decimals: 18,\n },\n proxyContract: RailgunProxyContract.ArbitrumGoerli,\n relayAdaptContract: RelayAdaptContract.ArbitrumGoerli,\n relayAdaptHistory: [\n '0x7E77d890179Aa683ac2B9A608bd8121255CAa917', // Initial deployment (post v3.0)\n '0x3eAf99B5EDc79D833AA8B6d18F0a8dd041e13eF6', // V3.1 Update - Jan 2023\n ],\n deploymentBlock: RailgunProxyDeploymentBlock.ArbitrumGoerli,\n isDevOnlyNetwork: true,\n isTestnet: true,\n defaultEVMGasType: EVMGasType.Type2,\n shouldQuickSync: true,\n },\n [NetworkName.Hardhat]: {\n chain: {\n type: ChainType.EVM,\n id: 31337,\n },\n name: NetworkName.Hardhat,\n publicName: 'Hardhat Testnet',\n shortPublicName: 'Hardhat',\n coingeckoId: '',\n baseToken: {\n symbol: 'ETH',\n wrappedSymbol: 'WETH',\n wrappedAddress: BaseTokenWrappedAddress.HardhatWETH,\n decimals: 18,\n },\n proxyContract: RailgunProxyContract.Hardhat,\n relayAdaptContract: RelayAdaptContract.Hardhat,\n relayAdaptHistory: [''],\n deploymentBlock: RailgunProxyDeploymentBlock.Hardhat,\n isDevOnlyNetwork: true,\n isTestnet: true,\n defaultEVMGasType: EVMGasType.Type2,\n shouldQuickSync: false,\n },\n};\n"]}
@@ -35,9 +35,9 @@ const getAvailableProviderJSONs = async (chainId, providerJsons, logError) => {
35
35
  };
36
36
  exports.getAvailableProviderJSONs = getAvailableProviderJSONs;
37
37
  const getBlockNumber = async (chainId, provider, logError) => {
38
+ const network = ethers_1.Network.from(chainId);
39
+ const rpcProvider = new ethers_1.JsonRpcProvider(provider, network);
38
40
  try {
39
- const network = ethers_1.Network.from(chainId);
40
- const rpcProvider = new ethers_1.JsonRpcProvider(provider, network);
41
41
  const block = await (0, promises_1.promiseTimeout)(rpcProvider.getBlock('latest'), BLOCK_NUMBER_TIMEOUT_MS);
42
42
  if (block == null) {
43
43
  throw new Error('Block is null');
@@ -48,6 +48,7 @@ const getBlockNumber = async (chainId, provider, logError) => {
48
48
  if (!(err instanceof Error)) {
49
49
  throw err;
50
50
  }
51
+ rpcProvider.destroy();
51
52
  logError(err.message);
52
53
  return undefined;
53
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"available-rpc.js","sourceRoot":"","sources":["../../src/utils/available-rpc.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AACzC,mCAAkD;AAElD,qCAA+C;AAC/C,yCAA4C;AAI5C,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC;;;GAGG;AACI,MAAM,yBAAyB,GAAG,KAAK,EAC5C,OAAe,EACf,aAA6B,EAC7B,QAAkB,EACO,EAAE;IAC3B,MAAM,YAAY,GAAuB,MAAM,OAAO,CAAC,GAAG,CACxD,aAAa,CAAC,GAAG,CACf,KAAK,EAAC,YAAY,EAAC,EAAE,CACnB,MAAM,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CACjE,CACF,CAAC;IAEF,MAAM,mBAAmB,GAAG,YAAY,CAAC,MAAM,CAC7C,WAAW,CAAC,EAAE,CAAC,WAAW,IAAI,IAAI,IAAI,WAAW,GAAG,CAAC,CAC1C,CAAC;IACd,MAAM,iBAAiB,GAAG,IAAA,4BAAmB,EAAC,mBAAmB,CAAC,CAAC;IACnE,MAAM,eAAe,GAAG,iBAAiB,GAAG,GAAG,CAAC;IAChD,MAAM,eAAe,GAAG,iBAAiB,GAAG,GAAG,CAAC;IAEhD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE;QAClD,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,WAAW,IAAI,IAAI,EAAE;YACvB,QAAQ,CACN,+BAA+B,YAAY,CAAC,QAAQ,mBAAmB,CACxE,CAAC;YACF,OAAO,KAAK,CAAC;SACd;QACD,IAAI,WAAW,GAAG,eAAe,EAAE;YACjC,QAAQ,CACN,+BAA+B,YAAY,CAAC,QAAQ,mBAClD,iBAAiB,GAAG,WACtB,cAAc,CACf,CAAC;YACF,OAAO,KAAK,CAAC;SACd;QACD,IAAI,WAAW,GAAG,eAAe,EAAE;YACjC,QAAQ,CACN,+BAA+B,YAAY,CAAC,QAAQ,mBAClD,WAAW,GAAG,iBAChB,cAAc,CACf,CAAC;YACF,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AA7CW,QAAA,yBAAyB,6BA6CpC;AAEF,MAAM,cAAc,GAAG,KAAK,EAC1B,OAAe,EACf,QAAgB,EAChB,QAAkB,EACS,EAAE;IAC7B,IAAI;QACF,MAAM,OAAO,GAAG,gBAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,WAAW,GAAG,IAAI,wBAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,MAAM,IAAA,yBAAc,EAChC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC9B,uBAAuB,CACxB,CAAC;QACF,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;SAClC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC;KACrB;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,EAAE;YAC3B,MAAM,GAAG,CAAC;SACX;QACD,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,SAAS,CAAC;KAClB;AACH,CAAC,CAAC","sourcesContent":["/// <reference types=\"../types/global\" />\nimport { JsonRpcProvider, Network } from 'ethers';\nimport { ProviderJson } from './fallback-provider';\nimport { getUpperBoundMedian } from './median';\nimport { promiseTimeout } from './promises';\n\ntype LogError = (err: string) => void;\n\nconst BLOCK_NUMBER_TIMEOUT_MS = 5000;\n\n/**\n * Health checks ProviderJson inputs, and returns an array of available RPC providers.\n * Available means that they respond to getBlockNumber(), and they are +/- 100 blocks from the median.\n */\nexport const getAvailableProviderJSONs = async (\n chainId: number,\n providerJsons: ProviderJson[],\n logError: LogError,\n): Promise<ProviderJson[]> => {\n const blockNumbers: Optional<number>[] = await Promise.all(\n providerJsons.map(\n async providerJson =>\n await getBlockNumber(chainId, providerJson.provider, logError),\n ),\n );\n\n const nonZeroBlockNumbers = blockNumbers.filter(\n blockNumber => blockNumber != null && blockNumber > 0,\n ) as number[];\n const medianBlockNumber = getUpperBoundMedian(nonZeroBlockNumbers);\n const lowerBoundRange = medianBlockNumber - 100;\n const upperBoundRange = medianBlockNumber + 100;\n\n return providerJsons.filter((providerJson, index) => {\n const blockNumber = blockNumbers[index];\n if (blockNumber == null) {\n logError(\n `RPC Health Check failed for ${providerJson.provider}: No Block Number`,\n );\n return false;\n }\n if (blockNumber < lowerBoundRange) {\n logError(\n `RPC Health Check failed for ${providerJson.provider}: Block Number -${\n medianBlockNumber - blockNumber\n } from median`,\n );\n return false;\n }\n if (blockNumber > upperBoundRange) {\n logError(\n `RPC Health Check failed for ${providerJson.provider}: Block Number +${\n blockNumber - medianBlockNumber\n } from median`,\n );\n return false;\n }\n return true;\n });\n};\n\nconst getBlockNumber = async (\n chainId: number,\n provider: string,\n logError: LogError,\n): Promise<Optional<number>> => {\n try {\n const network = Network.from(chainId);\n const rpcProvider = new JsonRpcProvider(provider, network);\n const block = await promiseTimeout(\n rpcProvider.getBlock('latest'),\n BLOCK_NUMBER_TIMEOUT_MS,\n );\n if (block == null) {\n throw new Error('Block is null');\n }\n return block.number;\n } catch (err) {\n if (!(err instanceof Error)) {\n throw err;\n }\n logError(err.message);\n return undefined;\n }\n};\n"]}
1
+ {"version":3,"file":"available-rpc.js","sourceRoot":"","sources":["../../src/utils/available-rpc.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AACzC,mCAAkD;AAElD,qCAA+C;AAC/C,yCAA4C;AAI5C,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC;;;GAGG;AACI,MAAM,yBAAyB,GAAG,KAAK,EAC5C,OAAe,EACf,aAA6B,EAC7B,QAAkB,EACO,EAAE;IAC3B,MAAM,YAAY,GAAuB,MAAM,OAAO,CAAC,GAAG,CACxD,aAAa,CAAC,GAAG,CACf,KAAK,EAAC,YAAY,EAAC,EAAE,CACnB,MAAM,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CACjE,CACF,CAAC;IAEF,MAAM,mBAAmB,GAAG,YAAY,CAAC,MAAM,CAC7C,WAAW,CAAC,EAAE,CAAC,WAAW,IAAI,IAAI,IAAI,WAAW,GAAG,CAAC,CAC1C,CAAC;IACd,MAAM,iBAAiB,GAAG,IAAA,4BAAmB,EAAC,mBAAmB,CAAC,CAAC;IACnE,MAAM,eAAe,GAAG,iBAAiB,GAAG,GAAG,CAAC;IAChD,MAAM,eAAe,GAAG,iBAAiB,GAAG,GAAG,CAAC;IAEhD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE;QAClD,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,WAAW,IAAI,IAAI,EAAE;YACvB,QAAQ,CACN,+BAA+B,YAAY,CAAC,QAAQ,mBAAmB,CACxE,CAAC;YACF,OAAO,KAAK,CAAC;SACd;QACD,IAAI,WAAW,GAAG,eAAe,EAAE;YACjC,QAAQ,CACN,+BAA+B,YAAY,CAAC,QAAQ,mBAClD,iBAAiB,GAAG,WACtB,cAAc,CACf,CAAC;YACF,OAAO,KAAK,CAAC;SACd;QACD,IAAI,WAAW,GAAG,eAAe,EAAE;YACjC,QAAQ,CACN,+BAA+B,YAAY,CAAC,QAAQ,mBAClD,WAAW,GAAG,iBAChB,cAAc,CACf,CAAC;YACF,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AA7CW,QAAA,yBAAyB,6BA6CpC;AAEF,MAAM,cAAc,GAAG,KAAK,EAC1B,OAAe,EACf,QAAgB,EAChB,QAAkB,EACS,EAAE;IAC7B,MAAM,OAAO,GAAG,gBAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,IAAI,wBAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3D,IAAI;QACF,MAAM,KAAK,GAAG,MAAM,IAAA,yBAAc,EAChC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC9B,uBAAuB,CACxB,CAAC;QACF,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;SAClC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC;KACrB;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,EAAE;YAC3B,MAAM,GAAG,CAAC;SACX;QACD,WAAW,CAAC,OAAO,EAAE,CAAC;QACtB,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,SAAS,CAAC;KAClB;AACH,CAAC,CAAC","sourcesContent":["/// <reference types=\"../types/global\" />\nimport { JsonRpcProvider, Network } from 'ethers';\nimport { ProviderJson } from './fallback-provider';\nimport { getUpperBoundMedian } from './median';\nimport { promiseTimeout } from './promises';\n\ntype LogError = (err: string) => void;\n\nconst BLOCK_NUMBER_TIMEOUT_MS = 5000;\n\n/**\n * Health checks ProviderJson inputs, and returns an array of available RPC providers.\n * Available means that they respond to getBlockNumber(), and they are +/- 100 blocks from the median.\n */\nexport const getAvailableProviderJSONs = async (\n chainId: number,\n providerJsons: ProviderJson[],\n logError: LogError,\n): Promise<ProviderJson[]> => {\n const blockNumbers: Optional<number>[] = await Promise.all(\n providerJsons.map(\n async providerJson =>\n await getBlockNumber(chainId, providerJson.provider, logError),\n ),\n );\n\n const nonZeroBlockNumbers = blockNumbers.filter(\n blockNumber => blockNumber != null && blockNumber > 0,\n ) as number[];\n const medianBlockNumber = getUpperBoundMedian(nonZeroBlockNumbers);\n const lowerBoundRange = medianBlockNumber - 100;\n const upperBoundRange = medianBlockNumber + 100;\n\n return providerJsons.filter((providerJson, index) => {\n const blockNumber = blockNumbers[index];\n if (blockNumber == null) {\n logError(\n `RPC Health Check failed for ${providerJson.provider}: No Block Number`,\n );\n return false;\n }\n if (blockNumber < lowerBoundRange) {\n logError(\n `RPC Health Check failed for ${providerJson.provider}: Block Number -${\n medianBlockNumber - blockNumber\n } from median`,\n );\n return false;\n }\n if (blockNumber > upperBoundRange) {\n logError(\n `RPC Health Check failed for ${providerJson.provider}: Block Number +${\n blockNumber - medianBlockNumber\n } from median`,\n );\n return false;\n }\n return true;\n });\n};\n\nconst getBlockNumber = async (\n chainId: number,\n provider: string,\n logError: LogError,\n): Promise<Optional<number>> => {\n const network = Network.from(chainId);\n const rpcProvider = new JsonRpcProvider(provider, network);\n try {\n const block = await promiseTimeout(\n rpcProvider.getBlock('latest'),\n BLOCK_NUMBER_TIMEOUT_MS,\n );\n if (block == null) {\n throw new Error('Block is null');\n }\n return block.number;\n } catch (err) {\n if (!(err instanceof Error)) {\n throw err;\n }\n rpcProvider.destroy();\n logError(err.message);\n return undefined;\n }\n};\n"]}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="../types/global" />
2
- import { Network } from '../models/network-config';
2
+ import { Network, NetworkName } from '../models/network-config';
3
3
  import { Chain } from '../models/response-types';
4
4
  export declare const networkForChain: (chain: Chain) => Optional<Network>;
5
+ export declare const isHistoricalRelayAdaptContractAddress: (networkName: NetworkName, address: string) => boolean;
@@ -1,9 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.networkForChain = void 0;
3
+ exports.isHistoricalRelayAdaptContractAddress = exports.networkForChain = void 0;
4
4
  const network_config_1 = require("../models/network-config");
5
5
  const networkForChain = (chain) => {
6
6
  return Object.values(network_config_1.NETWORK_CONFIG).find(network => network.chain.type === chain.type && network.chain.id === chain.id);
7
7
  };
8
8
  exports.networkForChain = networkForChain;
9
+ const isHistoricalRelayAdaptContractAddress = (networkName, address) => {
10
+ const network = network_config_1.NETWORK_CONFIG[networkName];
11
+ return (network.relayAdaptHistory.find(historicalAddress => {
12
+ return historicalAddress.toLowerCase() === address.toLowerCase();
13
+ }) != null);
14
+ };
15
+ exports.isHistoricalRelayAdaptContractAddress = isHistoricalRelayAdaptContractAddress;
9
16
  //# sourceMappingURL=network.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/utils/network.ts"],"names":[],"mappings":";;;AAAA,6DAAmE;AAG5D,MAAM,eAAe,GAAG,CAAC,KAAY,EAAqB,EAAE;IACjE,OAAO,MAAM,CAAC,MAAM,CAAC,+BAAc,CAAC,CAAC,IAAI,CACvC,OAAO,CAAC,EAAE,CACR,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CACrE,CAAC;AACJ,CAAC,CAAC;AALW,QAAA,eAAe,mBAK1B","sourcesContent":["import { Network, NETWORK_CONFIG } from '../models/network-config';\nimport { Chain } from '../models/response-types';\n\nexport const networkForChain = (chain: Chain): Optional<Network> => {\n return Object.values(NETWORK_CONFIG).find(\n network =>\n network.chain.type === chain.type && network.chain.id === chain.id,\n );\n};\n"]}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/utils/network.ts"],"names":[],"mappings":";;;AAAA,6DAAgF;AAGzE,MAAM,eAAe,GAAG,CAAC,KAAY,EAAqB,EAAE;IACjE,OAAO,MAAM,CAAC,MAAM,CAAC,+BAAc,CAAC,CAAC,IAAI,CACvC,OAAO,CAAC,EAAE,CACR,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CACrE,CAAC;AACJ,CAAC,CAAC;AALW,QAAA,eAAe,mBAK1B;AAEK,MAAM,qCAAqC,GAAG,CACnD,WAAwB,EACxB,OAAe,EACf,EAAE;IACF,MAAM,OAAO,GAAG,+BAAc,CAAC,WAAW,CAAC,CAAC;IAC5C,OAAO,CACL,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;QACjD,OAAO,iBAAiB,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;IACnE,CAAC,CAAC,IAAI,IAAI,CACX,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,qCAAqC,yCAUhD","sourcesContent":["import { Network, NETWORK_CONFIG, NetworkName } from '../models/network-config';\nimport { Chain } from '../models/response-types';\n\nexport const networkForChain = (chain: Chain): Optional<Network> => {\n return Object.values(NETWORK_CONFIG).find(\n network =>\n network.chain.type === chain.type && network.chain.id === chain.id,\n );\n};\n\nexport const isHistoricalRelayAdaptContractAddress = (\n networkName: NetworkName,\n address: string,\n) => {\n const network = NETWORK_CONFIG[networkName];\n return (\n network.relayAdaptHistory.find(historicalAddress => {\n return historicalAddress.toLowerCase() === address.toLowerCase();\n }) != null\n );\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@railgun-community/shared-models",
3
- "version": "5.2.3",
3
+ "version": "5.2.5",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "files": [