Deprecating the Rinkeby, Ropsten, and Kovan test networks (#15989)

* Deprecating Rinkeby, setting default debug network to Goerli

* Deprecating Ropsten and Kovan

* Conflict fix

* Remove unused localization, test fixes

* Add migration for moving used deprecated testnets to custom networks

* Fix migrator test

* Add more unit tests

* Migration updates provider type to rpc if deprecated network is selected

* Migration fully and correctly updates the provider if selected network is a deprecated testnet

* Continue to show deprecation warning on each of rinkeby, ropsten and kovan

* Add rpcUrl deprecation message to loading screen

* Removing mayBeFauceting prop

Co-authored-by: Dan Miller <danjm.com@gmail.com>
feature/default_network_editable
ryanml 2 years ago committed by Dan J Miller
parent b11f6c1bf9
commit 67aeb64581
  1. 66
      .storybook/initial-states/transactions.js
  2. 68
      .storybook/test-data.js
  3. 18
      app/_locales/am/messages.json
  4. 18
      app/_locales/ar/messages.json
  5. 18
      app/_locales/bg/messages.json
  6. 18
      app/_locales/bn/messages.json
  7. 18
      app/_locales/ca/messages.json
  8. 9
      app/_locales/cs/messages.json
  9. 18
      app/_locales/da/messages.json
  10. 26
      app/_locales/de/messages.json
  11. 20
      app/_locales/el/messages.json
  12. 21
      app/_locales/en/messages.json
  13. 20
      app/_locales/es/messages.json
  14. 18
      app/_locales/es_419/messages.json
  15. 18
      app/_locales/et/messages.json
  16. 18
      app/_locales/fa/messages.json
  17. 18
      app/_locales/fi/messages.json
  18. 9
      app/_locales/fil/messages.json
  19. 20
      app/_locales/fr/messages.json
  20. 15
      app/_locales/he/messages.json
  21. 20
      app/_locales/hi/messages.json
  22. 9
      app/_locales/hn/messages.json
  23. 18
      app/_locales/hr/messages.json
  24. 18
      app/_locales/ht/messages.json
  25. 18
      app/_locales/hu/messages.json
  26. 20
      app/_locales/id/messages.json
  27. 18
      app/_locales/it/messages.json
  28. 20
      app/_locales/ja/messages.json
  29. 18
      app/_locales/kn/messages.json
  30. 20
      app/_locales/ko/messages.json
  31. 18
      app/_locales/lt/messages.json
  32. 18
      app/_locales/lv/messages.json
  33. 18
      app/_locales/ms/messages.json
  34. 9
      app/_locales/nl/messages.json
  35. 15
      app/_locales/no/messages.json
  36. 18
      app/_locales/ph/messages.json
  37. 18
      app/_locales/pl/messages.json
  38. 20
      app/_locales/pt/messages.json
  39. 18
      app/_locales/pt_BR/messages.json
  40. 18
      app/_locales/ro/messages.json
  41. 20
      app/_locales/ru/messages.json
  42. 9
      app/_locales/sk/messages.json
  43. 18
      app/_locales/sl/messages.json
  44. 18
      app/_locales/sr/messages.json
  45. 18
      app/_locales/sv/messages.json
  46. 18
      app/_locales/sw/messages.json
  47. 18
      app/_locales/ta/messages.json
  48. 12
      app/_locales/th/messages.json
  49. 20
      app/_locales/tl/messages.json
  50. 20
      app/_locales/tr/messages.json
  51. 18
      app/_locales/uk/messages.json
  52. 20
      app/_locales/vi/messages.json
  53. 18
      app/_locales/zh/messages.json
  54. 19
      app/_locales/zh_CN/messages.json
  55. 18
      app/_locales/zh_TW/messages.json
  56. 6
      app/scripts/constants/contracts.js
  57. 3
      app/scripts/controllers/app-state.js
  58. 18
      app/scripts/controllers/cached-balances.test.js
  59. 10
      app/scripts/controllers/detect-tokens.test.js
  60. 2
      app/scripts/controllers/ens/index.test.js
  61. 9
      app/scripts/controllers/incoming-transactions.js
  62. 148
      app/scripts/controllers/incoming-transactions.test.js
  63. 24
      app/scripts/controllers/metametrics.test.js
  64. 36
      app/scripts/controllers/network/network-controller.test.js
  65. 10
      app/scripts/controllers/network/network.js
  66. 2
      app/scripts/controllers/network/pending-middleware.test.js
  67. 8
      app/scripts/controllers/network/util.test.js
  68. 6
      app/scripts/controllers/swaps.test.js
  69. 36
      app/scripts/controllers/transactions/index.test.js
  70. 6
      app/scripts/controllers/transactions/tx-gas-utils.test.js
  71. 11
      app/scripts/controllers/transactions/tx-state-manager.test.js
  72. 27
      app/scripts/lib/account-tracker.js
  73. 13
      app/scripts/lib/buy-url.js
  74. 27
      app/scripts/lib/buy-url.test.js
  75. 2
      app/scripts/lib/ens-ipfs/resolver.js
  76. 1
      app/scripts/metamask-controller.js
  77. 2
      app/scripts/metamask-controller.test.js
  78. 39
      app/scripts/migrations/052.js
  79. 60
      app/scripts/migrations/052.test.js
  80. 21
      app/scripts/migrations/054.test.js
  81. 18
      app/scripts/migrations/055.js
  82. 18
      app/scripts/migrations/055.test.js
  83. 16
      app/scripts/migrations/059.test.js
  84. 132
      app/scripts/migrations/074.js
  85. 561
      app/scripts/migrations/074.test.js
  86. 2
      app/scripts/migrations/index.js
  87. 5
      app/scripts/migrations/migrations.test.js
  88. 7
      development/states/navigate-txs.json
  89. 930
      shared/constants/network.ts
  90. 24
      test/data/mock-pending-transaction-data.json
  91. 9
      test/data/mock-state.json
  92. 342
      test/data/mock-tx-history.json
  93. 18
      test/data/transaction-data.json
  94. 8
      test/e2e/fixtures/address-entry/state.json
  95. 6
      test/e2e/fixtures/connected-state/state.json
  96. 8
      test/e2e/fixtures/custom-rpc/state.json
  97. 11
      test/e2e/fixtures/custom-token/state.json
  98. 8
      test/e2e/fixtures/eip-1559-v2-dapp/state.json
  99. 8
      test/e2e/fixtures/eip-1559-v2/state.json
  100. 8
      test/e2e/fixtures/imported-account/state.json
  101. Some files were not shown because too many files have changed in this diff Show More

@ -24,10 +24,10 @@ export const MOCK_TRANSACTION_BY_TYPE = {
id: 643368596521636,
time: 1653527035634,
status: 'submitted',
metamaskNetworkId: '4',
metamaskNetworkId: '5',
originalGasEstimate: '5208',
userEditedGasLimit: false,
chainId: '0x4',
chainId: '0x5',
loadingDefaults: false,
dappSuggestedGasFees: null,
sendFlowHistory: [],
@ -50,10 +50,10 @@ export const MOCK_TRANSACTION_BY_TYPE = {
id: 643368596521636,
time: 1653527035634,
status: 'approved',
metamaskNetworkId: '4',
metamaskNetworkId: '5',
originalGasEstimate: '5208',
userEditedGasLimit: false,
chainId: '0x4',
chainId: '0x5',
loadingDefaults: false,
dappSuggestedGasFees: null,
sendFlowHistory: [],
@ -204,7 +204,7 @@ export const MOCK_TRANSACTION_BY_TYPE = {
submittedTime: 1653527035924,
},
[MOCK_TX_TYPE.CONTRACT_INTERACTION]: {
chainId: '0x4',
chainId: '0x5',
dappSuggestedGasFees: {
gas: '0x118f4',
maxFeePerGas: '0x9502f91a',
@ -212,7 +212,7 @@ export const MOCK_TRANSACTION_BY_TYPE = {
},
id: 7694052085150913,
loadingDefaults: true,
metamaskNetworkId: '4',
metamaskNetworkId: '5',
origin: 'https://remix.ethereum.org',
originalGasEstimate: '0x118f4',
sendFlowHistory: [],
@ -235,7 +235,7 @@ export const MOCK_TRANSACTION_BY_TYPE = {
[MOCK_TX_TYPE.DEPLOY_CONTRACT]: {
blockNumber: '6195527',
id: 4243712234858468,
metamaskNetworkId: '4',
metamaskNetworkId: '5',
status: 'confirmed',
time: 1585088013000,
txParams: {
@ -292,7 +292,7 @@ export const MOCK_TRANSACTION_BY_TYPE = {
[MOCK_TX_TYPE.INCOMING]: {
blockNumber: '6477257',
id: 4243712234858505,
metamaskNetworkId: '4',
metamaskNetworkId: '5',
status: 'confirmed',
time: 1589314295000,
txParams: {
@ -346,10 +346,10 @@ export const MOCK_TRANSACTION_BY_TYPE = {
id: 3938342322880462,
time: 1653459456297,
status: 'failed',
metamaskNetworkId: '4',
metamaskNetworkId: '5',
originalGasEstimate: '14609',
userEditedGasLimit: false,
chainId: '0x4',
chainId: '0x5',
loadingDefaults: false,
dappSuggestedGasFees: null,
sendFlowHistory: [],
@ -376,10 +376,10 @@ export const MOCK_TRANSACTION_BY_TYPE = {
id: 3938342322880462,
time: 1653459456297,
status: 'approved',
metamaskNetworkId: '4',
metamaskNetworkId: '5',
originalGasEstimate: '14609',
userEditedGasLimit: false,
chainId: '0x4',
chainId: '0x5',
loadingDefaults: false,
dappSuggestedGasFees: null,
sendFlowHistory: [],
@ -589,7 +589,7 @@ export const MOCK_TRANSACTION_BY_TYPE = {
id: 4243712234858512,
time: 1589314601567,
status: 'confirmed',
metamaskNetworkId: '4',
metamaskNetworkId: '5',
loadingDefaults: false,
txParams: {
from: '0xabca64466f257793eaa52fcfff5066894b76a149',
@ -605,7 +605,7 @@ export const MOCK_TRANSACTION_BY_TYPE = {
[MOCK_TX_TYPE.SMART]: {
blockNumber: '6195527',
id: 4243712234858468,
metamaskNetworkId: '4',
metamaskNetworkId: '5',
status: 'confirmed',
time: 1585088013000,
txParams: {
@ -625,7 +625,7 @@ export const MOCK_TRANSACTION_BY_TYPE = {
[MOCK_TX_TYPE.SWAP]: {
blockNumber: '6195527',
id: 4243712234858467,
metamaskNetworkId: '4',
metamaskNetworkId: '5',
status: 'confirmed',
time: 1585088013000,
txParams: {
@ -644,7 +644,7 @@ export const MOCK_TRANSACTION_BY_TYPE = {
[MOCK_TX_TYPE.SWAP_APPROVAL]: {
blockNumber: '6195527',
id: 4243712234858467,
metamaskNetworkId: '4',
metamaskNetworkId: '5',
status: 'confirmed',
time: 1585088013000,
txParams: {
@ -664,10 +664,10 @@ export const MOCK_TRANSACTION_BY_TYPE = {
id: 5177046356058729,
time: 1653457101080,
status: 'submitted',
metamaskNetworkId: '4',
metamaskNetworkId: '5',
originalGasEstimate: '0xb427',
userEditedGasLimit: false,
chainId: '0x4',
chainId: '0x5',
loadingDefaults: false,
dappSuggestedGasFees: {
gasPrice: '0x4a817c800',
@ -692,10 +692,10 @@ export const MOCK_TRANSACTION_BY_TYPE = {
id: 5177046356058729,
time: 1653457101080,
status: 'unapproved',
metamaskNetworkId: '4',
metamaskNetworkId: '5',
originalGasEstimate: '0xb427',
userEditedGasLimit: false,
chainId: '0x4',
chainId: '0x5',
loadingDefaults: true,
dappSuggestedGasFees: {
gasPrice: '0x4a817c800',
@ -918,10 +918,10 @@ export const MOCK_TRANSACTION_BY_TYPE = {
id: 1441203963845330,
time: 1652206763566,
status: 'confirmed',
metamaskNetworkId: '4',
metamaskNetworkId: '5',
originalGasEstimate: '0x118e0',
userEditedGasLimit: false,
chainId: '0x4',
chainId: '0x5',
loadingDefaults: false,
dappSuggestedGasFees: {
maxPriorityFeePerGas: '0x3B9ACA00',
@ -939,7 +939,7 @@ export const MOCK_TRANSACTION_BY_TYPE = {
maxFeePerGas: '0x7be830aec',
maxPriorityFeePerGas: '0x3B9ACA00',
},
origin: 'https://rinkeby.etherscan.io',
origin: 'https://goerli.etherscan.io',
type: 'safetransferfrom',
userFeeLevel: 'dappSuggested',
defaultGasEstimates: {
@ -1042,10 +1042,10 @@ export const MOCK_TRANSACTION_BY_TYPE = {
id: 5177046356058725,
time: 1653457077370,
status: 'confirmed',
metamaskNetworkId: '4',
metamaskNetworkId: '5',
originalGasEstimate: '0xea60',
userEditedGasLimit: false,
chainId: '0x4',
chainId: '0x5',
loadingDefaults: false,
dappSuggestedGasFees: {
gasPrice: '0x4a817c800',
@ -1055,7 +1055,7 @@ export const MOCK_TRANSACTION_BY_TYPE = {
txParams: {
from: '0xabc539a7d5c43940af498008a7c8f3abb35c3725',
to: '0xefg60bbf4ba1de43f3b4983a539feebfbd5fd976',
nonce: '0x4',
nonce: '0x5',
value: '0x0',
data:
'0xa9059cbb0000000000000000000000002f318c334780961fb129d2a6c30d0763d9a5c9700000000000000000000000000000000000000000000000000000000000003a98',
@ -1070,10 +1070,10 @@ export const MOCK_TRANSACTION_BY_TYPE = {
id: 5177046356058725,
time: 1653457077370,
status: 'unapproved',
metamaskNetworkId: '4',
metamaskNetworkId: '5',
originalGasEstimate: '0xea60',
userEditedGasLimit: false,
chainId: '0x4',
chainId: '0x5',
loadingDefaults: true,
dappSuggestedGasFees: {
gasPrice: '0x4a817c800',
@ -1152,7 +1152,7 @@ export const MOCK_TRANSACTION_BY_TYPE = {
{
op: 'add',
path: '/txParams/nonce',
value: '0x4',
value: '0x5',
note: 'transactions#approveTransaction',
timestamp: 1653457091939,
},
@ -1446,10 +1446,10 @@ export const MOCK_TRANSACTION_BY_TYPE = {
id: 5177046356058754,
time: 1653457323504,
status: 'confirmed',
metamaskNetworkId: '4',
metamaskNetworkId: '5',
originalGasEstimate: '0x10896',
userEditedGasLimit: false,
chainId: '0x4',
chainId: '0x5',
loadingDefaults: false,
dappSuggestedGasFees: null,
sendFlowHistory: [
@ -1496,10 +1496,10 @@ export const MOCK_TRANSACTION_BY_TYPE = {
id: 5177046356058754,
time: 1653457323504,
status: 'unapproved',
metamaskNetworkId: '4',
metamaskNetworkId: '5',
originalGasEstimate: '0x10896',
userEditedGasLimit: false,
chainId: '0x4',
chainId: '0x5',
loadingDefaults: true,
dappSuggestedGasFees: null,
sendFlowHistory: [

@ -26,28 +26,6 @@ const state = {
ticker: 'ETH',
viewOnly: true,
},
{
blockExplorerUrl: 'https://ropsten.etherscan.io',
chainId: '0x3',
iconColor: 'var(--ropsten)',
isATestNetwork: true,
labelKey: 'ropsten',
providerType: 'ropsten',
rpcUrl: 'https://ropsten.infura.io/v3/',
ticker: 'ETH',
viewOnly: true,
},
{
blockExplorerUrl: 'https://rinkeby.etherscan.io',
chainId: '0x4',
iconColor: 'var(--rinkeby)',
isATestNetwork: true,
labelKey: 'rinkeby',
providerType: 'rinkeby',
rpcUrl: 'https://rinkeby.infura.io/v3/',
ticker: 'ETH',
viewOnly: true,
},
{
blockExplorerUrl: 'https://goerli.etherscan.io',
chainId: '0x5',
@ -59,17 +37,6 @@ const state = {
ticker: 'ETH',
viewOnly: true,
},
{
blockExplorerUrl: 'https://kovan.etherscan.io',
chainId: '0x2a',
iconColor: 'var(--kovan)',
isATestNetwork: true,
labelKey: 'kovan',
providerType: 'kovan',
rpcUrl: 'https://kovan.infura.io/v3/',
ticker: 'ETH',
viewOnly: true,
},
{
blockExplorerUrl: 'https://sepolia.etherscan.io',
chainId: '0xaa36a7',
@ -406,9 +373,9 @@ const state = {
id: 3111025347726181,
time: 1620710815484,
status: 'unapproved',
metamaskNetworkId: '3',
metamaskNetworkId: '5',
msgParams: '0x64a845a5b02460acf8a3d84503b0d68d028b4bb4',
chainId: '0x3',
chainId: '0x5',
loadingDefaults: false,
txParams: {
from: '0x64a845a5b02460acf8a3d84503b0d68d028b4bb4',
@ -427,8 +394,8 @@ const state = {
id: 7786962153682822,
time: 1620710815484,
status: 'unapproved',
metamaskNetworkId: '3',
chainId: '0x3',
metamaskNetworkId: '5',
chainId: '0x5',
loadingDefaults: true,
txParams: {
from: '0x64a845a5b02460acf8a3d84503b0d68d028b4bb4',
@ -581,20 +548,20 @@ const state = {
swapsWelcomeMessageHasBeenShown: true,
defaultHomeActiveTabName: 'Assets',
provider: {
type: 'rinkeby',
type: 'goerli',
ticker: 'ETH',
nickname: '',
rpcUrl: '',
chainId: '0x4',
chainId: '0x5',
},
previousProviderStore: {
type: 'rinkeby',
type: 'goerli',
ticker: 'ETH',
nickname: '',
rpcUrl: '',
chainId: '0x4',
chainId: '0x5',
},
network: '3',
network: '5',
accounts: {
'0x64a845a5b02460acf8a3d84503b0d68d028b4bb4': {
address: '0x64a845a5b02460acf8a3d84503b0d68d028b4bb4',
@ -1132,7 +1099,7 @@ const state = {
'0xb19ac54efa18cc3a14a5b821bfec73d284bf0c5e': '0x2d3142f5000',
'0x9d0ba4ddac06032527b140912ec808ab9451b788': '0x15f6f0b9d4f8d000',
},
'0x3': {
5: {
'0x64a845a5b02460acf8a3d84503b0d68d028b4bb4': '0x176e5b6f173ebe66',
'0xb19ac54efa18cc3a14a5b821bfec73d284bf0c5e': '0x2d3142f5000',
'0x9d0ba4ddac06032527b140912ec808ab9451b788': '0x15f6f0b9d4f8d000',
@ -1196,7 +1163,7 @@ const state = {
decimals: 18,
},
],
'0x3': [
'0x5': [
{
address: '0xaD6D458402F60fD3Bd25163575031ACDce07538D',
symbol: 'DAI',
@ -1209,7 +1176,7 @@ const state = {
},
accountHiddenTokens: {
'0x64a845a5b02460acf8a3d84503b0d68d028b4bb4': {
'0x3': [],
'0x5': [],
},
},
assetImages: {
@ -1317,9 +1284,6 @@ const state = {
},
},
incomingTxLastFetchedBlocksByNetwork: {
ropsten: 8872820,
rinkeby: null,
kovan: null,
goerli: null,
sepolia: null,
mainnet: 10902989,
@ -1549,8 +1513,8 @@ const state = {
id: 3111025347726181,
time: 1620723786838,
status: 'unapproved',
metamaskNetworkId: '3',
chainId: '0x3',
metamaskNetworkId: '5',
chainId: '0x5',
loadingDefaults: false,
txParams: {
from: '0x64a845a5b02460acf8a3d84503b0d68d028b4bb4',
@ -1569,8 +1533,8 @@ const state = {
id: 3111025347726181,
time: 1620723786838,
status: 'unapproved',
metamaskNetworkId: '3',
chainId: '0x3',
metamaskNetworkId: '5',
chainId: '0x5',
loadingDefaults: true,
txParams: {
from: '0x983211ce699ea5ab57cc528086154b6db1ad8e55',

@ -187,18 +187,9 @@
"connectingToGoerli": {
"message": "ከ Goerli የሙከራ አውታረ መረብ ጋር መገናኘት"
},
"connectingToKovan": {
"message": "ከ Kovan የሙከራ አውታረ መረብ መገናኘት"
},
"connectingToMainnet": {
"message": "ከዋናው የ Ethereum አውታረ መረብ ጋር መገናኘት"
},
"connectingToRinkeby": {
"message": "ከ Rinkeby የሙከራ አውታረ መረብ ጋር በመገናኘት ላይ"
},
"connectingToRopsten": {
"message": "ከ Ropsten የሙከራ አውታረ መረብ ጋር በመገናኘት ላይ"
},
"continueToWyre": {
"message": "ወደ Wyre ይቀጥሉ"
},
@ -494,9 +485,6 @@
"knownAddressRecipient": {
"message": "የሚታወቅ የግንኙነት አድራሻ።"
},
"kovan": {
"message": "Kovan የሙከራ አውታረ መረብ"
},
"learnMore": {
"message": "የበለጠ ይወቁ"
},
@ -753,12 +741,6 @@
"revealSeedWordsWarningTitle": {
"message": "ይህን ሐረግ ለየትኛውም ሰው አያጋሩ!"
},
"rinkeby": {
"message": "Rinkeby የሙከራ አውታረ መረብ"
},
"ropsten": {
"message": "Ropsten የሙከራ አውታረ መረብ "
},
"rpcUrl": {
"message": "አዲስ የ RPC URL"
},

@ -201,18 +201,9 @@
"connectingToGoerli": {
"message": "الاتصال بشبكة اختبار Goerli"
},
"connectingToKovan": {
"message": "الاتصال بشبكة اختبار Kovan"
},
"connectingToMainnet": {
"message": "جارِ الاتصال بشبكة إيثيريوم الرئيسية"
},
"connectingToRinkeby": {
"message": "جارِ الاتصال بشبكة اختبار Rinkeby "
},
"connectingToRopsten": {
"message": "جارِ الاتصال بشبكة اختبار Ropsten "
},
"continueToWyre": {
"message": "الاستمرار إلى Wyre"
},
@ -507,9 +498,6 @@
"knownAddressRecipient": {
"message": "عنوان العقد المعروف."
},
"kovan": {
"message": "شبكة اختبار Kovan "
},
"learnMore": {
"message": "اكتشف المزيد"
},
@ -769,12 +757,6 @@
"revealSeedWordsWarningTitle": {
"message": "لا تشارك هذه الجملة مع أي شخص آخر!"
},
"rinkeby": {
"message": "شبكة اختبارات Rinkeby"
},
"ropsten": {
"message": "شبكة اختبار Ropsten"
},
"rpcUrl": {
"message": "عنوان جديد لاستدعاء الإجراء عن بعد"
},

@ -193,18 +193,9 @@
"connectingToGoerli": {
"message": "Свързване с тестова мрежа на Goerli"
},
"connectingToKovan": {
"message": "Свързване с тестовата мрежа на Kovan"
},
"connectingToMainnet": {
"message": "Свързване с главната мрежа Ethereum"
},
"connectingToRinkeby": {
"message": "Свързване с тестова мрежа на Rinkeby"
},
"connectingToRopsten": {
"message": "Свързване с тестова мрежа Ropsten"
},
"continueToWyre": {
"message": "Продължете към Wyre"
},
@ -499,9 +490,6 @@
"knownAddressRecipient": {
"message": "Известен адрес на договора."
},
"kovan": {
"message": "Тестова мрежа на Кован"
},
"learnMore": {
"message": "Научете повече"
},
@ -764,12 +752,6 @@
"revealSeedWordsWarningTitle": {
"message": "НЕ споделяйте тази фраза с никого!"
},
"rinkeby": {
"message": "Тестова мрежа на Rinkeby"
},
"ropsten": {
"message": "Тестова мрежа Ropsten"
},
"rpcUrl": {
"message": "Нов URL адрес за RPC"
},

@ -193,18 +193,9 @@
"connectingToGoerli": {
"message": "গরলিট নটওয়র সগ কর হচ"
},
"connectingToKovan": {
"message": "কন টট নটওয়র সগ করছ"
},
"connectingToMainnet": {
"message": "ময Ethereum নটওয়র সগ করছ"
},
"connectingToRinkeby": {
"message": "রিিট নটওয়র সগ করছ"
},
"connectingToRopsten": {
"message": "রপসন টট নটওয়র সগ করছ"
},
"continueToWyre": {
"message": "Wyre এ অবিরত রন"
},
@ -503,9 +494,6 @@
"knownAddressRecipient": {
"message": "জ পরিিির ঠি৷"
},
"kovan": {
"message": "কন টট নটওয়ক"
},
"learnMore": {
"message": "আরও জন"
},
@ -768,12 +756,6 @@
"revealSeedWordsWarningTitle": {
"message": "এই ফজটির সর করবন ন!"
},
"rinkeby": {
"message": "রিিট নটওয়ক"
},
"ropsten": {
"message": "রপসন টট নটওয়ক"
},
"rpcUrl": {
"message": "নতন RPC URL"
},

@ -190,18 +190,9 @@
"connectingToGoerli": {
"message": "Connectant a Xarxa de Prova Goerli"
},
"connectingToKovan": {
"message": "Conectant a la xarxa de Kovan Test"
},
"connectingToMainnet": {
"message": "Connectant a Xarxa Principal Ethereum"
},
"connectingToRinkeby": {
"message": "Connectant a la Xarxa de Prova Rinkeby"
},
"connectingToRopsten": {
"message": "Connectant a la xarxa de test Ropsten"
},
"continueToWyre": {
"message": "Continua a Wyre"
},
@ -490,9 +481,6 @@
"knownAddressRecipient": {
"message": "Adreça de contracte coneguda"
},
"kovan": {
"message": "Xarxa de Prova Kovan"
},
"learnMore": {
"message": "Saber més"
},
@ -746,12 +734,6 @@
"revealSeedWordsWarningTitle": {
"message": "NO comparteixis aquesta frase amb ningú!"
},
"rinkeby": {
"message": "Xarxa del test Rinkeby"
},
"ropsten": {
"message": "Xarxa de Prova Ropsten"
},
"rpcUrl": {
"message": "Nova URL de RPC"
},

@ -63,18 +63,9 @@
"confirmed": {
"message": "Potvrzeno"
},
"connectingToKovan": {
"message": "Připojuji se k Kovan Test Network"
},
"connectingToMainnet": {
"message": "Připojuji se k Ethereum Mainnet"
},
"connectingToRinkeby": {
"message": "Připojuji se k Rinkeby Test Network"
},
"connectingToRopsten": {
"message": "Připojuji se k Ropsten Test Network"
},
"contractDeployment": {
"message": "Nasazení kontraktu"
},

@ -193,18 +193,9 @@
"connectingToGoerli": {
"message": "Opretter forbindelse til Goerli Testnetværk"
},
"connectingToKovan": {
"message": "Forbinder til Kovan Testnetværk"
},
"connectingToMainnet": {
"message": "Forbinder til dit Primære Ethereum Netværk"
},
"connectingToRinkeby": {
"message": "Forbinder til Rinkeby-testnetværk"
},
"connectingToRopsten": {
"message": "Forbinder til Ropsten-testnetværk"
},
"continueToWyre": {
"message": "Fortsæt til Wyre"
},
@ -496,9 +487,6 @@
"knownAddressRecipient": {
"message": "Kendte kontaktadresser."
},
"kovan": {
"message": "Kovan Test-Netværk"
},
"learnMore": {
"message": "Lær mere"
},
@ -749,12 +737,6 @@
"revealSeedWordsWarningTitle": {
"message": "DEL IKKE denne sætning med nogen!"
},
"rinkeby": {
"message": "Rinkeby-testnetværk"
},
"ropsten": {
"message": "Ropsten Test-netværk"
},
"rpcUrl": {
"message": "Ny RPC-URL"
},

@ -608,17 +608,11 @@
"connectingToGoerli": {
"message": "Verbindung mit Goerli Test Network wird hergestellt"
},
"connectingToKovan": {
"message": " Verbinde zum Kovan Testnetzwerk"
},
"connectingToMainnet": {
"message": "Verbinde zum Ethereum Mainnet"
},
"connectingToRinkeby": {
"message": " Verbinde zum Rinkeby Testnetzwerk"
},
"connectingToRopsten": {
"message": " Verbinde zum Ropsten Testnetzwerk"
"connectingToSepolia": {
"message": "Verbindungsaufbau zum Sepolia-Testnetzwerk"
},
"contactUs": {
"message": "Kontaktaufnahme"
@ -1652,9 +1646,6 @@
"knownTokenWarning": {
"message": "Mit dieser Aktion werden Token bearbeitet, die bereits in Ihrer Wallet aufgelistet sind und die dazu verwendet werden können, Sie zu betrügen. Genehmigen Sie diese Aktion nur, wenn Sie sicher sind, dass Sie den Wert dieser Token ändern wollen. Erfahren Sie mehr über $1"
},
"kovan": {
"message": "Kovan Testnetzwerk"
},
"lastConnected": {
"message": "Zuletzt verbunden"
},
@ -2679,11 +2670,16 @@
"revealTheSeedPhrase": {
"message": "Seed-Phrase anzeigen"
},
"rinkeby": {
"message": "Rinkeby Testnetzwerk"
"revokeAllTokensTitle": {
"message": "Erlaubnis zum Zugriff auf alle Ihre $1 entziehen?",
"description": "$1 is the symbol of the token for which the user is revoking approval"
},
"revokeApproveForAllDescription": {
"message": "Wenn Sie diese Erlaubnis entziehen, wird folgende/s/r $1 nicht mehr dazu in der Lage sein, auf Ihr/e/n $2 zuzugreifen.",
"description": "$1 is either key 'account' or 'contract', and $2 is either a string or link of a given token symbol or name"
},
"ropsten": {
"message": "Ropsten Testnetzwerk"
"revokeSpendingCapTooltipText": {
"message": "Mit diesem Contract können Sie keine weiteren Ihrer aktuellen oder zukünftigen Token ausgeben."
},
"rpcUrl": {
"message": "Neue RPC-URL"

@ -616,17 +616,11 @@
"connectingToGoerli": {
"message": "Σύνδεση στο Δίκτυο Δοκιμής Goerli"
},
"connectingToKovan": {
"message": "Σύνδεση στο Δοκιμαστικό Δίκτυο Kovan"
},
"connectingToMainnet": {
"message": "Σύνδεση στο Κύριο Δίκτυο Ethereum"
},
"connectingToRinkeby": {
"message": "Σύνδεση στο Δίκτυο Δοκιμών Rinkeby"
},
"connectingToRopsten": {
"message": "Σύνδεση με το Δίκτυο Δοκιμών Ropsten"
"connectingToSepolia": {
"message": "Σύνδεση στο δίκτυο δοκιμών Sepolia"
},
"contactUs": {
"message": "Επικοινωνήστε μαζί μας"
@ -1666,9 +1660,6 @@
"knownTokenWarning": {
"message": "Αυτή η ενέργεια θα επεξεργαστεί tokens που είναι ήδη εισηγμένα στο πορτοφόλι σας, τα οποίαο μπορεί να χρησιμοποιηθούν για να σας κλέψουν στοιχεία. Αποδεχθείτε μόνο αν είστε σίγουροι ότι θέλετε να αλλάξετε αυτό που αντιπροσωπεύουν αυτά τα νομίσματα. Μάθετε περισσότερά γι'αυτό $1"
},
"kovan": {
"message": "Δίκτυο Δοκιμής Kovan"
},
"lastConnected": {
"message": "Τελευταία Σύνδεση"
},
@ -2724,11 +2715,8 @@
"message": "Με την ανάκληση της άδειας, το ακόλουθο $1 δεν θα έχει πλέον πρόσβαση στο $2 σας",
"description": "$1 is either key 'account' or 'contract', and $2 is either a string or link of a given token symbol or name"
},
"rinkeby": {
"message": "Δοκιμαστικό Δίκτυο Rinkeby"
},
"ropsten": {
"message": "Δίκτυο Δοκιμών Ropsten"
"revokeSpendingCapTooltipText": {
"message": "Αυτός ο συμβαλλόμενος δεν θα μπορεί να ξοδέψει άλλα από τα τρέχοντα ή μελλοντικά σας tokens."
},
"rpcUrl": {
"message": "Νέο RPC URL"

@ -704,18 +704,9 @@
"connectingToGoerli": {
"message": "Connecting to Goerli test network"
},
"connectingToKovan": {
"message": "Connecting to Kovan test network"
},
"connectingToMainnet": {
"message": "Connecting to Ethereum Mainnet"
},
"connectingToRinkeby": {
"message": "Connecting to Rinkeby test network"
},
"connectingToRopsten": {
"message": "Connecting to Ropsten test network"
},
"connectingToSepolia": {
"message": "Connecting to Sepolia test network"
},
@ -824,6 +815,9 @@
"currentLanguage": {
"message": "Current language"
},
"currentRpcUrlDeprecated": {
"message": "The current rpc url for this network has been deprecated."
},
"currentTitle": {
"message": "Current:"
},
@ -1808,9 +1802,6 @@
"knownTokenWarning": {
"message": "This action will edit tokens that are already listed in your wallet, which can be used to phish you. Only approve if you are certain that you mean to change what these tokens represent. Learn more about $1"
},
"kovan": {
"message": "Kovan test network"
},
"lastConnected": {
"message": "Last connected"
},
@ -2928,12 +2919,6 @@
"revokeSpendingCapTooltipText": {
"message": "This contract will be unable to spend any more of your current or future tokens."
},
"rinkeby": {
"message": "Rinkeby test network"
},
"ropsten": {
"message": "Ropsten test network"
},
"rpcUrl": {
"message": "New RPC URL"
},

@ -616,17 +616,11 @@
"connectingToGoerli": {
"message": "Estableciendo conexión a la red de prueba Goerli"
},
"connectingToKovan": {
"message": "Estableciendo conexión a la red de prueba Kovan"
},
"connectingToMainnet": {
"message": "Estableciendo conexión a la red principal de Ethereum"
},
"connectingToRinkeby": {
"message": "Estableciendo conexión a la red de prueba Rinkeby"
},
"connectingToRopsten": {
"message": "Estableciendo conexión a la red de prueba Ropsten"
"connectingToSepolia": {
"message": "Conectando a la red de prueba Sepolia"
},
"contactUs": {
"message": "Contáctenos"
@ -1666,9 +1660,6 @@
"knownTokenWarning": {
"message": "Esta acción editará tokens que ya estén enumerados en la cartera y que se pueden usar para engañarlo. Apruebe solo si está seguro de que quiere cambiar lo que representan estos tokens."
},
"kovan": {
"message": "Red de prueba Kovan"
},
"lastConnected": {
"message": "Última conexión"
},
@ -2724,11 +2715,8 @@
"message": "Al revocar permisos, el/la siguiente $1 no tendrá más acceso a su $2",
"description": "$1 is either key 'account' or 'contract', and $2 is either a string or link of a given token symbol or name"
},
"rinkeby": {
"message": "Red de prueba Rinkeby"
},
"ropsten": {
"message": "Red de prueba Ropsten"
"revokeSpendingCapTooltipText": {
"message": "Este contrato no podrá gastar más de sus tokens actuales o futuros."
},
"rpcUrl": {
"message": "Nueva dirección URL de RPC"

@ -514,18 +514,9 @@
"connectingToGoerli": {
"message": "Estableciendo conexión a la red de prueba Goerli"
},
"connectingToKovan": {
"message": "Estableciendo conexión a la red de prueba Kovan"
},
"connectingToMainnet": {
"message": "Estableciendo conexión a la red principal de Ethereum"
},
"connectingToRinkeby": {
"message": "Estableciendo conexión a la red de prueba Rinkeby"
},
"connectingToRopsten": {
"message": "Estableciendo conexión a la red de prueba Ropsten"
},
"contactUs": {
"message": "Contáctenos"
},
@ -1425,9 +1416,6 @@
"knownTokenWarning": {
"message": "Esta acción editará tokens que ya estén enumerados en la cartera y que se pueden usar para engañarlo. Apruebe solo si está seguro de que quiere cambiar lo que representan estos tokens."
},
"kovan": {
"message": "Red de prueba Kovan"
},
"lastConnected": {
"message": "Última conexión"
},
@ -2248,12 +2236,6 @@
"revealSeedWordsWarningTitle": {
"message": "¡NO comparta esta frase con nadie!"
},
"rinkeby": {
"message": "Red de prueba Rinkeby"
},
"ropsten": {
"message": "Red de prueba Ropsten"
},
"rpcUrl": {
"message": "Nueva dirección URL de RPC"
},

@ -193,18 +193,9 @@
"connectingToGoerli": {
"message": "Ühendamine Goerli testvõrguga"
},
"connectingToKovan": {
"message": "Ühendamine Kovani testvõrguga"
},
"connectingToMainnet": {
"message": "Ühenduse loomine peamise Etherumi võrguga"
},
"connectingToRinkeby": {
"message": "Ühendamine Rinkeby testvõrguga"
},
"connectingToRopsten": {
"message": "Ühendamine Ropsteni testvõrguga"
},
"continueToWyre": {
"message": "Ava Wyre"
},
@ -499,9 +490,6 @@
"knownAddressRecipient": {
"message": "Teadaolev lepinguaadress."
},
"kovan": {
"message": "Kovani testvõrk"
},
"learnMore": {
"message": "Lisateave"
},
@ -758,12 +746,6 @@
"revealSeedWordsWarningTitle": {
"message": "ÄRGE jagage seda fraasi mitte kellegagi!"
},
"rinkeby": {
"message": "Rinkeby katsevõrk"
},
"ropsten": {
"message": "Ropsteni testvõrk"
},
"rpcUrl": {
"message": "Uus RPC URL"
},

@ -193,18 +193,9 @@
"connectingToGoerli": {
"message": "در حال اتصال به شبکه آزمایشی Goerli "
},
"connectingToKovan": {
"message": "در حال اتصال به شبکه آزمایشی Kovan"
},
"connectingToMainnet": {
"message": "در حال اتصال به شبکه اصلی ایتریم"
},
"connectingToRinkeby": {
"message": "در حال اتصال به شبکه آزمایشی Rinkeby"
},
"connectingToRopsten": {
"message": "در حال اتصال به شبکه آزمایشی Ropsten"
},
"continueToWyre": {
"message": "ادامه به Wyre"
},
@ -503,9 +494,6 @@
"knownAddressRecipient": {
"message": "آدرس شناخته شده قرارداد"
},
"kovan": {
"message": "شبکه آزمایشی Kovan"
},
"learnMore": {
"message": "بیشتر بدانید"
},
@ -768,12 +756,6 @@
"revealSeedWordsWarningTitle": {
"message": "این عبارت را با هیچکس شریک نسازید!"
},
"rinkeby": {
"message": "شبکه آزمایشی Rinkeby"
},
"ropsten": {
"message": "شبکه آزمایشی Ropsten"
},
"rpcUrl": {
"message": "RPC URL جدید"
},

@ -193,18 +193,9 @@
"connectingToGoerli": {
"message": "Yhdistetään Goerlin testiverkostoon"
},
"connectingToKovan": {
"message": "Yhdistetään Kovanin koeverkkoon"
},
"connectingToMainnet": {
"message": "Yhdistetään Ethereumin pääverkkoon"
},
"connectingToRinkeby": {
"message": "Yhdistetään Rinkebyn koeverkkoon"
},
"connectingToRopsten": {
"message": "Yhdistetään Ropstenin koeverkkoon"
},
"continueToWyre": {
"message": "Jatka Wyreen"
},
@ -503,9 +494,6 @@
"knownAddressRecipient": {
"message": "Tunnettu sopimusosoite."
},
"kovan": {
"message": "Kovanin koeverkko"
},
"learnMore": {
"message": "Lisätietoa"
},
@ -765,12 +753,6 @@
"revealSeedWordsWarningTitle": {
"message": "ÄLÄ jaa tätä tekstiä kenellekään!"
},
"rinkeby": {
"message": "Rinkebyn koeverkko"
},
"ropsten": {
"message": "Ropstenin koeverkko"
},
"rpcUrl": {
"message": "Uusi RPC:n URL"
},

@ -172,18 +172,9 @@
"connectingToGoerli": {
"message": "Kumokonekta sa Goerli Test Network"
},
"connectingToKovan": {
"message": "Kumokonekta sa Kovan Test Network"
},
"connectingToMainnet": {
"message": "Kumokonekta sa Ethereum Mainnet"
},
"connectingToRinkeby": {
"message": "Kumokonekta sa Rinkeby Test Network"
},
"connectingToRopsten": {
"message": "Kumokonekta sa Ropsten Test Network"
},
"continueToWyre": {
"message": "Magpatuloy sa Wyre"
},

@ -616,17 +616,11 @@
"connectingToGoerli": {
"message": "Connexion au réseau de test Goerli"
},
"connectingToKovan": {
"message": "Connexion au réseau de test Kovan"
},
"connectingToMainnet": {
"message": "Connexion au réseau principal Ethereum"
},
"connectingToRinkeby": {
"message": "Connexion au réseau de test Rinkeby"
},
"connectingToRopsten": {
"message": "Connexion au réseau de test Ropsten"
"connectingToSepolia": {
"message": "Connexion au réseau de test Sepolia"
},
"contactUs": {
"message": "Nous contacter"
@ -1666,9 +1660,6 @@
"knownTokenWarning": {
"message": "Cette action modifiera les jetons déjà présents dans votre portefeuille, et risque de favoriser les tentatives d’hameçonnage. N’approuvez que si vous êtes certain·e de vouloir modifier ce que ces jetons représentent. En savoir plus sur $1"
},
"kovan": {
"message": "Réseau de test Kovan"
},
"lastConnected": {
"message": "Dernière connexion"
},
@ -2724,11 +2715,8 @@
"message": "En révoquant cette autorisation, les $1 suivants ne pourront plus accéder à vos $2. ",
"description": "$1 is either key 'account' or 'contract', and $2 is either a string or link of a given token symbol or name"
},
"rinkeby": {
"message": "Réseau de test Rinkeby"
},
"ropsten": {
"message": "Réseau de test Ropsten"
"revokeSpendingCapTooltipText": {
"message": "L’autre partie à ce contrat ne pourra plus dépenser vos jetons actuels ou futurs."
},
"rpcUrl": {
"message": "Nouvelle URL de RPC"

@ -193,18 +193,9 @@
"connectingToGoerli": {
"message": "מתחבר ל-Goerli Test Network"
},
"connectingToKovan": {
"message": "מתחבר ל-Kovan Test Network"
},
"connectingToMainnet": {
"message": "מתחבר לרשת אתריום הראשית"
},
"connectingToRinkeby": {
"message": "מתחבר ל- Rinkeby Test Network "
},
"connectingToRopsten": {
"message": "מתחבר אל רשת בדיקה Ropsten "
},
"continueToWyre": {
"message": "המשך ל-Wyre"
},
@ -503,9 +494,6 @@
"knownAddressRecipient": {
"message": "כתובת חוזה ידועה."
},
"kovan": {
"message": "רשת בדיקה Kovan "
},
"learnMore": {
"message": "למדו עוד"
},
@ -765,9 +753,6 @@
"revealSeedWordsWarningTitle": {
"message": "אין לשתף צירוף מילים זה עם אף אחד!"
},
"rinkeby": {
"message": "רשת בדיקה Rinkeby "
},
"rpcUrl": {
"message": "כתובת URL חדשה של RPC"
},

@ -616,17 +616,11 @@
"connectingToGoerli": {
"message": "Goerli टट नटवरक स कनट ह रह"
},
"connectingToKovan": {
"message": "Kovan टट नटवरक स कनट ह रह"
},
"connectingToMainnet": {
"message": "Ethereum Mainnet स कनट ह रह"
},
"connectingToRinkeby": {
"message": "Rinkeby टट नटवरक स कनट ह रह"
},
"connectingToRopsten": {
"message": "Ropsten टट नटवरक स कनट ह रह"
"connectingToSepolia": {
"message": "सिट नटवरक स कनट कर रह"
},
"contactUs": {
"message": "हमसपरक कर"
@ -1666,9 +1660,6 @@
"knownTokenWarning": {
"message": "यह करवई उन टकन कित कर, ज पहल आपकट मबदध ह, जिसक उपयग आपकिश करनिए कि सकत। कवल तभ अनित कर, जब आप इस बत ककर सिित हि आप इन टकन करतिििव बदलनहत। $1 क और अधिक ज"
},
"kovan": {
"message": "Kovan टट नटवरक"
},
"lastConnected": {
"message": "अिम बर कनट कि गय"
},
@ -2724,11 +2715,8 @@
"message": "अनमतििरसत करन, निनलिित $1 अब आपक $2 क एकस नह कर सक",
"description": "$1 is either key 'account' or 'contract', and $2 is either a string or link of a given token symbol or name"
},
"rinkeby": {
"message": "Rinkeby टट नटवरक"
},
"ropsten": {
"message": "Ropsten टट नटवरक"
"revokeSpendingCapTooltipText": {
"message": "यह अनध आपक वरतमन य भविय क और टकन पर खरच करन असमरथ ह।"
},
"rpcUrl": {
"message": "नय RPC URL"

@ -178,9 +178,6 @@
"message": "JSON फइल",
"description": "format for importing an account"
},
"kovan": {
"message": "कन टट नटवरक"
},
"likeToImportTokens": {
"message": "क आप इन टकनहत?"
},
@ -284,12 +281,6 @@
"revealSeedWordsWarning": {
"message": "किवजनिक सन पर अपनज क शबद ठक नह कर! य शबद आपक सभ करनिए उपयग किए ज सकत।"
},
"rinkeby": {
"message": "रिव टट नटवरक"
},
"ropsten": {
"message": "रन टट नटवरक"
},
"save": {
"message": "सह"
},

@ -193,18 +193,9 @@
"connectingToGoerli": {
"message": "Povezivanje na testnu mrežu Goerli"
},
"connectingToKovan": {
"message": "Povezivanje na testnu mrežu Kovan"
},
"connectingToMainnet": {
"message": "Povezivanje na glavnu mrežu Ethereum"
},
"connectingToRinkeby": {
"message": "Povezivanje na testnu mrežu Rinkeby"
},
"connectingToRopsten": {
"message": "Povezivanje na testnu mrežu Ropsten"
},
"continueToWyre": {
"message": "Nastavi na uslugu Wyre"
},
@ -499,9 +490,6 @@
"knownAddressRecipient": {
"message": "Poznata ugovorna adresa."
},
"kovan": {
"message": "Testna mreža Kovan"
},
"learnMore": {
"message": "Saznajte više"
},
@ -761,12 +749,6 @@
"revealSeedWordsWarningTitle": {
"message": "NE DIJELITE ovu rečenicu ni s kim!"
},
"rinkeby": {
"message": "Testna mreža Rinkeby"
},
"ropsten": {
"message": "Testna mreža Ropsten"
},
"rpcUrl": {
"message": "Novi URL RPC-a"
},

@ -108,18 +108,9 @@
"connectHardwareWallet": {
"message": "Konekte Materyèl Wallet"
},
"connectingToKovan": {
"message": "Konekte nan Kovan Tès Rezo a"
},
"connectingToMainnet": {
"message": "Konekte ak Prensipal Ethereum Rezo a"
},
"connectingToRinkeby": {
"message": "Konekte nan Rinkeby Tès Rezo a"
},
"connectingToRopsten": {
"message": "Konekte ak Ropsten Tès Rezo a"
},
"contractDeployment": {
"message": "Kontra Deplwaman"
},
@ -295,9 +286,6 @@
"message": "JSON Dosye",
"description": "format for importing an account"
},
"kovan": {
"message": "Kovan Tès Rezo"
},
"learnMore": {
"message": "Aprann plis"
},
@ -491,12 +479,6 @@
"revealSeedWordsWarningTitle": {
"message": "PA pataje fraz sa a avèk nenpòt moun!"
},
"rinkeby": {
"message": "Rinkeby Tès Rezo"
},
"ropsten": {
"message": "Ropsten Tès Rezo"
},
"save": {
"message": "Sove"
},

@ -193,18 +193,9 @@
"connectingToGoerli": {
"message": "Csatlakozás a Goerli teszthálózathoz"
},
"connectingToKovan": {
"message": "Csatlakozás a Kovan teszthálózathoz"
},
"connectingToMainnet": {
"message": "Csatlakozás a fő Ethereum hálózathoz"
},
"connectingToRinkeby": {
"message": "Kapcsolódás a Rinkeby Teszthálózathoz"
},
"connectingToRopsten": {
"message": "Csatlakozás a Ropsten teszthálózathoz"
},
"continueToWyre": {
"message": "Tovább a Wyre-re"
},
@ -499,9 +490,6 @@
"knownAddressRecipient": {
"message": "Ismert szerződéses cím."
},
"kovan": {
"message": "Kovan teszthálózat"
},
"learnMore": {
"message": "Tudjon meg többet"
},
@ -761,12 +749,6 @@
"revealSeedWordsWarningTitle": {
"message": "NE ossza meg ezt a mondatot senkivel!"
},
"rinkeby": {
"message": "Rinkeby teszthálózat"
},
"ropsten": {
"message": "Ropsten teszthálózat"
},
"rpcUrl": {
"message": "Új RPC URL"
},

@ -616,17 +616,11 @@
"connectingToGoerli": {
"message": "Menghubungkan ke Jaringan Uji Goerli"
},
"connectingToKovan": {
"message": "Menghubungkan ke Jaringan Uji Kovan"
},
"connectingToMainnet": {
"message": "Menghubungkan ke Ethereum Mainnet"
},
"connectingToRinkeby": {
"message": "Menghubungkan ke Jaringan Uji Rinkeby"
},
"connectingToRopsten": {
"message": "Menghubungkan ke Jaringan Uji Ropsten"
"connectingToSepolia": {
"message": "Menghubungkan ke jaringan uji Sepolia"
},
"contactUs": {
"message": "Hubungi kami"
@ -1666,9 +1660,6 @@
"knownTokenWarning": {
"message": "Tindakan ini akan mengedit token yang telah terdaftar dalam dompet Anda, yang dapat digunakan untuk menipu Anda. Setujui hanya jika Anda yakin bahwa Anda ingin mengubah apa yang diwakili token ini. Pelajari selengkapnya seputar $1"
},
"kovan": {
"message": "Jaringan Uji Kovan"
},
"lastConnected": {
"message": "Terakhir Terhubung"
},
@ -2724,11 +2715,8 @@
"message": "Dengan mencabut izin, $1 berikut tidak lagi dapat mengakses $2 Anda",
"description": "$1 is either key 'account' or 'contract', and $2 is either a string or link of a given token symbol or name"
},
"rinkeby": {
"message": "Jaringan Uji Rinkeby"
},
"ropsten": {
"message": "Jaringan Uji Ropsten"
"revokeSpendingCapTooltipText": {
"message": "Kontrak ini tidak akan dapat mempergunakan token Anda saat ini atau di masa mendatang."
},
"rpcUrl": {
"message": "URL RPC Baru"

@ -295,18 +295,9 @@
"connectingToGoerli": {
"message": "Connessione alla Rete di Test Goerli"
},
"connectingToKovan": {
"message": "Connessione alla Rete di test Kovan"
},
"connectingToMainnet": {
"message": "Connessione alla Rete Ethereum Principale"
},
"connectingToRinkeby": {
"message": "Connessione alla Rete di test Rinkeby"
},
"connectingToRopsten": {
"message": "Connessione alla Rete di test Ropsten"
},
"contactUs": {
"message": "Contattaci!"
},
@ -789,9 +780,6 @@
"knownTokenWarning": {
"message": "Questa azione modificherà i token che sono già nel tuo portafoglio, che possono essere utilizzati per truffarti. Approva solo se sei sicuro di voler cambiare ciò che rappresentano questi token."
},
"kovan": {
"message": "Rete di test Kovan"
},
"lastConnected": {
"message": "Ultima Connessione"
},
@ -1152,12 +1140,6 @@
"revealSeedWordsWarningTitle": {
"message": "NON CONDIVIDERE questa frase con nessuno!"
},
"rinkeby": {
"message": "Rete di test Rinkeby"
},
"ropsten": {
"message": "Rete di test Ropsten"
},
"rpcUrl": {
"message": "Nuovo URL RPC"
},

@ -616,17 +616,11 @@
"connectingToGoerli": {
"message": "Goerliテストネットワークに接続中"
},
"connectingToKovan": {
"message": "Kovanテストネットワークに接続中"
},
"connectingToMainnet": {
"message": "イーサリアムメインネットに接続中"
},
"connectingToRinkeby": {
"message": "Rinkebyテストネットワークに接続中"
},
"connectingToRopsten": {
"message": "Ropstenテストネットワークに接続中"
"connectingToSepolia": {
"message": "Sepolia テストネットワークに接続中"
},
"contactUs": {
"message": "お問い合わせ"
@ -1666,9 +1660,6 @@
"knownTokenWarning": {
"message": "このアクションは、ウォレットに既に一覧表示されているトークンを編集します。これは、フィッシングに使用される可能性があります。これらのトークンの表す内容を変更する意図が確実な場合にのみ承認します。$1に関する詳細をご覧ください"
},
"kovan": {
"message": "Kovanテストネットワーク"
},
"lastConnected": {
"message": "前回の接続"
},
@ -2724,11 +2715,8 @@
"message": "アクセス許可を取り消すと、次の $1 が今後 $2 にアクセスできなくなります",
"description": "$1 is either key 'account' or 'contract', and $2 is either a string or link of a given token symbol or name"
},
"rinkeby": {
"message": "Rinkebyテストネットワーク"
},
"ropsten": {
"message": "Ropstenテストネットワーク"
"revokeSpendingCapTooltipText": {
"message": "このコントラクトは、現在または今後のトークンをこれ以上使用できなくなります。"
},
"rpcUrl": {
"message": "新しいRPC URL"

@ -193,18 +193,9 @@
"connectingToGoerli": {
"message": "Goerli ಪರವರಪರಿಸಲಿ"
},
"connectingToKovan": {
"message": "Kovan ಪರವರಪರಿಸಲಿ "
},
"connectingToMainnet": {
"message": "ಮಯ ಎಥಿಯಮವರಪರಿಸಲಿ"
},
"connectingToRinkeby": {
"message": "Rinkeby ಪರವರಪರಿಸಲಿ"
},
"connectingToRopsten": {
"message": "Ropsten ಪರವರಪರಿಸಲಿ"
},
"continueToWyre": {
"message": "Wyre ಗವರಿಿ"
},
@ -503,9 +494,6 @@
"knownAddressRecipient": {
"message": "ತಿಿಿವ ಒಪದದ ವಿಸ."
},
"kovan": {
"message": "Kovan ಪರವರ"
},
"learnMore": {
"message": "ಇನನಷಿಿಿಿ"
},
@ -768,12 +756,6 @@
"revealSeedWordsWarningTitle": {
"message": "ಈ ಫ ಅನಿಿಳಬಿ!"
},
"rinkeby": {
"message": "Rinkeby ಪರವರ"
},
"ropsten": {
"message": "Ropsten ಪರವರ"
},
"rpcUrl": {
"message": "ಹಸ RPC URL"
},

@ -616,17 +616,11 @@
"connectingToGoerli": {
"message": "Goerli 테스트 네트워크에 연결 중"
},
"connectingToKovan": {
"message": "Kovan 테스트 네트워크에 연결 중"
},
"connectingToMainnet": {
"message": "이더리움 메인넷에 연결 중"
},
"connectingToRinkeby": {
"message": "Rinkeby 테스트 네트워크에 연결 중"
},
"connectingToRopsten": {
"message": "Ropsten 테스트 네트워크에 연결 중"
"connectingToSepolia": {
"message": "Sepolia 테스트 네트워크에 연결 중"
},
"contactUs": {
"message": "문의하기"
@ -1666,9 +1660,6 @@
"knownTokenWarning": {
"message": "이 작업은 지갑에 이미 나열되어 있고 피싱에 사용될 수 있는 토큰을 편집합니다. 해당 토큰이 나타내는 내용을 변경하려는 경우에만 작업을 승인하세요. $1에 대해 자세히 알아보기"
},
"kovan": {
"message": "Kovan 테스트 네트워크"
},
"lastConnected": {
"message": "마지막 연결"
},
@ -2724,11 +2715,8 @@
"message": "권한을 취소하면 다음 $1의 $2 권한은 더 이상 유효하지 않습니다",
"description": "$1 is either key 'account' or 'contract', and $2 is either a string or link of a given token symbol or name"
},
"rinkeby": {
"message": "Rinkeby 테스트 네트워크"
},
"ropsten": {
"message": "Ropsten 테스트 네트워크"
"revokeSpendingCapTooltipText": {
"message": "이 계약은 현재나 미래의 토큰을 더 이상 사용할 수 없습니다."
},
"rpcUrl": {
"message": "새 RPC URL"

@ -193,18 +193,9 @@
"connectingToGoerli": {
"message": "Jungiamasi prie „Goerli“ bandomojo tinklo"
},
"connectingToKovan": {
"message": "Jungiamasi prie „Kovan“ bandomojo tinklo"
},
"connectingToMainnet": {
"message": "Jungiamasi prie pagrindinio „Ethereum“ tinklo"
},
"connectingToRinkeby": {
"message": "Jungiamasi prie „Rinkeby“ bandomojo tinklo"
},
"connectingToRopsten": {
"message": "Jungiamasi prie „Ropsten“ bandomojo tinklo"
},
"continueToWyre": {
"message": "Tęsti su „Wyre“"
},
@ -503,9 +494,6 @@
"knownAddressRecipient": {
"message": "Žinomas sutarties adresas."
},
"kovan": {
"message": "„Kovan“ bandomasis tinklas"
},
"learnMore": {
"message": "Sužinokite daugiau"
},
@ -768,12 +756,6 @@
"revealSeedWordsWarningTitle": {
"message": "Šia fraze su niekuo NESIDALINKITE!"
},
"rinkeby": {
"message": "„Rinkeby“ bandomasis tinklas"
},
"ropsten": {
"message": "„Ropsten“ bandomasis tinklas"
},
"rpcUrl": {
"message": "Naujas RPC URL"
},

@ -193,18 +193,9 @@
"connectingToGoerli": {
"message": "Pieslēdzas Goerli testa tīklam"
},
"connectingToKovan": {
"message": "Savienojas ar Kovan testa tīklu"
},
"connectingToMainnet": {
"message": "Savienojas ar galveno Ethereum tīklu"
},
"connectingToRinkeby": {
"message": "Pieslēdzas Rinkeby testa tīklam"
},
"connectingToRopsten": {
"message": "Pieslēdzas Ropsten testa tīklam"
},
"continueToWyre": {
"message": "Pāriet uz Wyre"
},
@ -499,9 +490,6 @@
"knownAddressRecipient": {
"message": "Zināmā līguma adrese."
},
"kovan": {
"message": "Kovan testa tīkls"
},
"learnMore": {
"message": "Uzzināt vairāk"
},
@ -764,12 +752,6 @@
"revealSeedWordsWarningTitle": {
"message": "NEDALIETIES ar šo frāzi!"
},
"rinkeby": {
"message": "Rinkeby testa tīkls"
},
"ropsten": {
"message": "Ropsten testa tīkls"
},
"rpcUrl": {
"message": "Jauns RPC URL"
},

@ -193,18 +193,9 @@
"connectingToGoerli": {
"message": "Menyambung kepada Rangkaian Ujian Goerli"
},
"connectingToKovan": {
"message": "Menyambungkan kepada Rangkaian Ujian Kovan"
},
"connectingToMainnet": {
"message": "Menyambung kepada Rangkaian Ethereum Utama"
},
"connectingToRinkeby": {
"message": "Menyambung kepada Rangkaian Ujian Rinkeby"
},
"connectingToRopsten": {
"message": "Menyambungkan kepada Rangkaian Ujian Ropsten"
},
"continueToWyre": {
"message": "Teruskan ke Wyre"
},
@ -492,9 +483,6 @@
"knownAddressRecipient": {
"message": "Alamat kontrak diketahui."
},
"kovan": {
"message": "Rangkaian Ujian Kovan"
},
"learnMore": {
"message": "Maklumat lanjut"
},
@ -748,12 +736,6 @@
"revealSeedWordsWarningTitle": {
"message": "JANGAN berkongsi ungkapan ini dengan orang lain!"
},
"rinkeby": {
"message": "Rangkaian Ujian Rinkeby"
},
"ropsten": {
"message": "Rangkaian Ujian Ropsten"
},
"rpcUrl": {
"message": "URL RPC baru"
},

@ -175,9 +175,6 @@
"message": "JSON-bestand",
"description": "format for importing an account"
},
"kovan": {
"message": "Kovan-testnetwerk"
},
"likeToImportTokens": {
"message": "Wil je deze tokens toevoegen?"
},
@ -274,12 +271,6 @@
"revealSeedWordsWarning": {
"message": "Zorg dat je back-up woorden niet op een openbare plaats bekijkt! Deze woorden kunnen worden gebruikt om al uw accounts opnieuw te genereren (en dus uw account te stelen)."
},
"rinkeby": {
"message": "Rinkeby testnetwerk"
},
"ropsten": {
"message": "Ropsten testnetwerk"
},
"save": {
"message": "Opslaan"
},

@ -190,18 +190,9 @@
"connectingToGoerli": {
"message": "Oppretter forbindelse med Goerli Test Network"
},
"connectingToKovan": {
"message": "Kobler til Kovan testnettverk"
},
"connectingToMainnet": {
"message": "Forbinder med hoved-Ethereumnettverk "
},
"connectingToRinkeby": {
"message": "Kobler til Rinkeby Test Network "
},
"connectingToRopsten": {
"message": "Kobler til Ropsten testnettverk"
},
"continueToWyre": {
"message": "Fortsett til Wyre "
},
@ -490,9 +481,6 @@
"knownAddressRecipient": {
"message": "Kjent kontaktadresse"
},
"kovan": {
"message": "Kovan testnettverk"
},
"learnMore": {
"message": "Lær mer"
},
@ -755,9 +743,6 @@
"revealSeedWordsWarningTitle": {
"message": "IKKE del denne frasen med noen! "
},
"rinkeby": {
"message": "Rinkeby testnettverk"
},
"rpcUrl": {
"message": "NY RPC-URL "
},

@ -355,18 +355,9 @@
"connectingToGoerli": {
"message": "Kumokonekta sa Goerli Test Network"
},
"connectingToKovan": {
"message": "Kumokonekta sa Kovan Test Network"
},
"connectingToMainnet": {
"message": "Kumokonekta sa Ethereum Mainnet"
},
"connectingToRinkeby": {
"message": "Kumokonekta sa Rinkeby Test Network"
},
"connectingToRopsten": {
"message": "Kumokonekta sa Ropsten Test Network"
},
"contactUs": {
"message": "Makipag-ugnayan sa amin"
},
@ -924,9 +915,6 @@
"knownTokenWarning": {
"message": "Mae-edit ng aksyong ito ang mga token na nakalista na sa iyong wallet, na puwedeng gamitin para i-phish ka. Aprubahan lang kung sigurado kang gusto mong baguhin kung ano ang kinakatawan ng mga token na ito."
},
"kovan": {
"message": "Kovan Test Network"
},
"lastConnected": {
"message": "Huling Kumonekta"
},
@ -1435,12 +1423,6 @@
"revealSeedWordsWarningTitle": {
"message": "Huwag ibahagi ang phrase na ito sa kahit sino!"
},
"rinkeby": {
"message": "Rinkeby Test Network"
},
"ropsten": {
"message": "Ropsten Test Network"
},
"rpcUrl": {
"message": "Bagong RPC URL"
},

@ -193,18 +193,9 @@
"connectingToGoerli": {
"message": "Łączenie z siecią testową Goerli"
},
"connectingToKovan": {
"message": "Łączenie z siecią testową Kovan"
},
"connectingToMainnet": {
"message": "Łączenie z główną siecią Ethereum"
},
"connectingToRinkeby": {
"message": "Łączenie z siecią testową Rinkeby"
},
"connectingToRopsten": {
"message": "Łączenie z siecią testową Ropsten"
},
"continueToWyre": {
"message": "Przejdź do Wyre"
},
@ -503,9 +494,6 @@
"knownAddressRecipient": {
"message": "Znany adres kontraktu."
},
"kovan": {
"message": "Sieć testowa Kovan"
},
"learnMore": {
"message": "Dowiedz się więcej"
},
@ -762,12 +750,6 @@
"revealSeedWordsWarningTitle": {
"message": "NIE pokazuj tej frazy nikomu!"
},
"rinkeby": {
"message": "Sieć testowa Rinkeby"
},
"ropsten": {
"message": "Sieć testowa Ropsten"
},
"rpcUrl": {
"message": "Nowy adres URL RPC"
},

@ -616,17 +616,11 @@
"connectingToGoerli": {
"message": "Conectando à rede de testes Goerli"
},
"connectingToKovan": {
"message": "Conectando à rede de testes Kovan"
},
"connectingToMainnet": {
"message": "Conectando à mainnet do Ethereum"
},
"connectingToRinkeby": {
"message": "Conectando à rede de testes Rinkeby"
},
"connectingToRopsten": {
"message": "Conectando à rede de testes Ropsten"
"connectingToSepolia": {
"message": "Conectando à rede de teste Sepolia"
},
"contactUs": {
"message": "Fale conosco"
@ -1666,9 +1660,6 @@
"knownTokenWarning": {
"message": "Essa ação editará os tokens já listados na sua carteira, que podem ser usado para praticar phishing contra você. Só aprove se você tiver certeza de que quer alterar o que esses tokens representam."
},
"kovan": {
"message": "Rede de Teste Kovan"
},
"lastConnected": {
"message": "Conectado pela última vez em"
},
@ -2724,11 +2715,8 @@
"message": "Ao revogar a permissão, o $1 a seguir não terá mais acesso ao seu $2",
"description": "$1 is either key 'account' or 'contract', and $2 is either a string or link of a given token symbol or name"
},
"rinkeby": {
"message": "Rede de Teste Rinkeby"
},
"ropsten": {
"message": "Rede de Teste Ropsten"
"revokeSpendingCapTooltipText": {
"message": "Este contrato não poderá gastar mais nenhum de seus tokens atuais ou futuros."
},
"rpcUrl": {
"message": "Novo URL da RPC"

@ -514,18 +514,9 @@
"connectingToGoerli": {
"message": "Conectando à rede de testes Goerli"
},
"connectingToKovan": {
"message": "Conectando à rede de testes Kovan"
},
"connectingToMainnet": {
"message": "Conectando à mainnet do Ethereum"
},
"connectingToRinkeby": {
"message": "Conectando à rede de testes Rinkeby"
},
"connectingToRopsten": {
"message": "Conectando à rede de testes Ropsten"
},
"contactUs": {
"message": "Fale conosco"
},
@ -1409,9 +1400,6 @@
"knownTokenWarning": {
"message": "Essa ação editará os tokens já listados na sua carteira, que podem ser usado para praticar phishing contra você. Só aprove se você tiver certeza de que quer alterar o que esses tokens representam."
},
"kovan": {
"message": "Rede de testes Kovan"
},
"lastConnected": {
"message": "Conectado pela última vez em"
},
@ -2232,12 +2220,6 @@
"revealSeedWordsWarningTitle": {
"message": "NÃO compartilhe essa frase com ninguém!"
},
"rinkeby": {
"message": "Rede de testes Rinkeby"
},
"ropsten": {
"message": "Rede de testes Ropsten"
},
"rpcUrl": {
"message": "Novo URL da RPC"
},

@ -193,18 +193,9 @@
"connectingToGoerli": {
"message": "Se conectează la rețeaua de test Goerli"
},
"connectingToKovan": {
"message": "Se conectează la rețeaua de test Kovan"
},
"connectingToMainnet": {
"message": "Se conectează la rețeaua Ethereum principală"
},
"connectingToRinkeby": {
"message": "Se conectează la Rețeaua de test Rinkeby"
},
"connectingToRopsten": {
"message": "Se conectează la rețeaua de test Ropsten"
},
"continueToWyre": {
"message": "Continuați la Wyre"
},
@ -493,9 +484,6 @@
"knownAddressRecipient": {
"message": "Adresa cunoscută din contract."
},
"kovan": {
"message": "Rețea de test Kovan"
},
"learnMore": {
"message": "Aflați mai multe"
},
@ -755,12 +743,6 @@
"revealSeedWordsWarningTitle": {
"message": "NU împărtășiți această expresie nimănui!"
},
"rinkeby": {
"message": "Rețea test Rinkeby"
},
"ropsten": {
"message": "Rețea de testare Ropsten"
},
"rpcUrl": {
"message": "URL RPC nou"
},

@ -616,17 +616,11 @@
"connectingToGoerli": {
"message": "Подключение к тестовой сети Goerli..."
},
"connectingToKovan": {
"message": "Подключение к тестовой сети Kovan..."
},
"connectingToMainnet": {
"message": "Подключение к сети Ethereum Mainnet..."
},
"connectingToRinkeby": {
"message": "Подключение к тестовой сети Rinkeby..."
},
"connectingToRopsten": {
"message": "Подключение к тестовой сети Ropsten..."
"connectingToSepolia": {
"message": "Подключение к тестовой сети Sepolia..."
},
"contactUs": {
"message": "Свяжитесь с нами"
@ -1666,9 +1660,6 @@
"knownTokenWarning": {
"message": "Это действие изменит токены, уже указанные в вашем кошельке, которые можно использовать для фишинга. Утверждайте, только если вы уверены, что хотите изменить то, что представляют эти токены. Узнайте подробнее о $1"
},
"kovan": {
"message": "Тестовая сеть Kovan"
},
"lastConnected": {
"message": "Последнее подключение"
},
@ -2724,11 +2715,8 @@
"message": "При отмене разрешения следующий $1 больше не сможет получить доступ к вашему $2",
"description": "$1 is either key 'account' or 'contract', and $2 is either a string or link of a given token symbol or name"
},
"rinkeby": {
"message": "Тестовая сеть Rinkeby"
},
"ropsten": {
"message": "Тестовая сеть Ropsten"
"revokeSpendingCapTooltipText": {
"message": "Этот контракт не позволит вам больше тратить ваши текущие или будущие токены."
},
"rpcUrl": {
"message": "Новый URL-адрес RPC"

@ -187,18 +187,9 @@
"connectingToGoerli": {
"message": "Pripája sa k testovacej sieti Goerli"
},
"connectingToKovan": {
"message": "Připojuji se k Kovan Test Network"
},
"connectingToMainnet": {
"message": "Připojuji se k Ethereum Mainnet"
},
"connectingToRinkeby": {
"message": "Připojuji se k Rinkeby Test Network"
},
"connectingToRopsten": {
"message": "Připojuji se k Ropsten Test Network"
},
"continueToWyre": {
"message": "Pokračovať na Wyre"
},

@ -193,18 +193,9 @@
"connectingToGoerli": {
"message": "Povezovanje na testno omrežje Goerli"
},
"connectingToKovan": {
"message": "Povezovanje na testno omrežje Kovan"
},
"connectingToMainnet": {
"message": "Povezovanje na glavno omrežje"
},
"connectingToRinkeby": {
"message": "Povezovanje na testno omrežje Rinkeby"
},
"connectingToRopsten": {
"message": "Povezovanje na testno omrežje Ropsten"
},
"continueToWyre": {
"message": "Nadaljuj na Wyre"
},
@ -497,9 +488,6 @@
"knownAddressRecipient": {
"message": "Znan naslov pogodbe."
},
"kovan": {
"message": "Testno omrežje Kovan"
},
"learnMore": {
"message": "Preberite več"
},
@ -756,12 +744,6 @@
"revealSeedWordsWarningTitle": {
"message": "Tega ne delite z nikomer!"
},
"rinkeby": {
"message": "Testno omrežje Rinkeby"
},
"ropsten": {
"message": "Testno omrežje Ropsten"
},
"rpcUrl": {
"message": "Nov URL RPC"
},

@ -190,18 +190,9 @@
"connectingToGoerli": {
"message": "Povezuje se sa test mrežom Goerli "
},
"connectingToKovan": {
"message": "Povezuje se na test mrežu Kovan"
},
"connectingToMainnet": {
"message": "Povezuje se na glavnu Ethereum mrežu"
},
"connectingToRinkeby": {
"message": "Poezivanje na Rinkeby Test mrežu"
},
"connectingToRopsten": {
"message": "Povezuje se na Ropsten Test mrežu"
},
"continueToWyre": {
"message": "Nastavite ka Wyre"
},
@ -500,9 +491,6 @@
"knownAddressRecipient": {
"message": "Poznata adresa ugovora."
},
"kovan": {
"message": "Kovan test mreža"
},
"learnMore": {
"message": "Nauči više"
},
@ -759,12 +747,6 @@
"revealSeedWordsWarningTitle": {
"message": "NE delite ovu frazu ni sa kim!"
},
"rinkeby": {
"message": "Rinkeby test mreža"
},
"ropsten": {
"message": "Test mreža Ropsten"
},
"rpcUrl": {
"message": "Novi RPC URL"
},

@ -187,18 +187,9 @@
"connectingToGoerli": {
"message": "Ansluter till Goerli Test Network"
},
"connectingToKovan": {
"message": "Ansluter till Kovans testnätverk"
},
"connectingToMainnet": {
"message": "Koppla till Ethereums huvudnätverk"
},
"connectingToRinkeby": {
"message": "Ansluter till Rinkeby Test Network"
},
"connectingToRopsten": {
"message": "Ansluter till Ropsten Test Network"
},
"continueToWyre": {
"message": "Fortsätt till Wyre"
},
@ -493,9 +484,6 @@
"knownAddressRecipient": {
"message": "Känd kontraktadress."
},
"kovan": {
"message": "Kovan testnätverk"
},
"learnMore": {
"message": "Läs mer"
},
@ -752,12 +740,6 @@
"revealSeedWordsWarningTitle": {
"message": "DELA INTE frasen med någon!"
},
"rinkeby": {
"message": "Rinkeby testnätverk"
},
"ropsten": {
"message": "Ropsten testnätverk"
},
"rpcUrl": {
"message": "Ny RPC-URL"
},

@ -187,18 +187,9 @@
"connectingToGoerli": {
"message": "Inaunganisha kwenye Mtandao wa Majaribio wa Goerli"
},
"connectingToKovan": {
"message": "Inaunganisha kwenye Mtandao wa Majaribio wa Kovan"
},
"connectingToMainnet": {
"message": "Inaunganisha kwenye Mtandao Mkuu wa Ethereum"
},
"connectingToRinkeby": {
"message": "Inaunganisha kwenye Mtandao wa Majaribio wa Rinkeby"
},
"connectingToRopsten": {
"message": "Inaunganisha kwenye Mtandao wa Majaribio wa Ropsten"
},
"continueToWyre": {
"message": "Endelea kwenye Wyre"
},
@ -490,9 +481,6 @@
"knownAddressRecipient": {
"message": "Anwani za mkataba zinazofahamika."
},
"kovan": {
"message": "Mtandao wa Majaribio wa Kovan"
},
"learnMore": {
"message": "Jifunze zaidi"
},
@ -746,12 +734,6 @@
"revealSeedWordsWarningTitle": {
"message": "USISHIRIKI kirai hiki na mtu yeyote!"
},
"rinkeby": {
"message": "Mtandao wa Majaribio wa Rinkeby"
},
"ropsten": {
"message": "Mtandao wa Majaribio wa Ropsten"
},
"rpcUrl": {
"message": "RPC URL mpya"
},

@ -78,18 +78,9 @@
"connect": {
"message": "இண"
},
"connectingToKovan": {
"message": "கவனடன இணதல"
},
"connectingToMainnet": {
"message": "மிய எதி இண"
},
"connectingToRinkeby": {
"message": "ரிய டடன இணிறத"
},
"connectingToRopsten": {
"message": "ரடன இணிறத"
},
"contractDeployment": {
"message": "ஒபபநத வரிபடதல"
},
@ -238,9 +229,6 @@
"message": "JSON க",
"description": "format for importing an account"
},
"kovan": {
"message": "கவன"
},
"learnMore": {
"message": "ம அறிக"
},
@ -392,12 +380,6 @@
"revealSeedWordsWarning": {
"message": "உஙகளிகள ஒர இடதிக வ! உஙகள எல கணககளிட இநத வகள பயனபடதபபடல."
},
"rinkeby": {
"message": "ரிய ட"
},
"ropsten": {
"message": "ர"
},
"save": {
"message": "சி"
},

@ -81,9 +81,6 @@
"connectingToMainnet": {
"message": "เชอมตอกบเครอขาย Ethereum หลก"
},
"connectingToRopsten": {
"message": "เชอมตอกบเครอขายทดสอบ Ropsten"
},
"continueToWyre": {
"message": "ไปท Wyre"
},
@ -253,9 +250,6 @@
"message": "ไฟล JSON",
"description": "format for importing an account"
},
"kovan": {
"message": "เครอขายทดสอบ Kovan"
},
"learnMore": {
"message": "เรยนรเพมเตม"
},
@ -380,12 +374,6 @@
"revealSeedWordsWarning": {
"message": "อยาเปดเผยคำกลมคำชดของคณในทสาธารณะ! คำเหลานสามารถใชเพอขโมยบญชงหมดของคณ"
},
"rinkeby": {
"message": "เครอขายทดสอบ Rinkeby"
},
"ropsten": {
"message": "เครอขายทดสอบ Ropsten"
},
"save": {
"message": "บนทก"
},

@ -616,17 +616,11 @@
"connectingToGoerli": {
"message": "Kumokonekta sa Goerli Test Network"
},
"connectingToKovan": {
"message": "Kumokonekta sa Kovan Test Network"
},
"connectingToMainnet": {
"message": "Kumokonekta sa Ethereum Mainnet"
},
"connectingToRinkeby": {
"message": "Kumokonekta sa Rinkeby Test Network"
},
"connectingToRopsten": {
"message": "Kumokonekta sa Ropsten Test Network"
"connectingToSepolia": {
"message": "Kumokonekta sa Sepolia test network"
},
"contactUs": {
"message": "Makipag-ugnayan sa amin"
@ -1666,9 +1660,6 @@
"knownTokenWarning": {
"message": "Mae-edit ng aksyong ito ang mga token na nakalista na sa iyong wallet, na puwedeng gamitin para i-phish ka. Aprubahan lang kung sigurado kang gusto mong baguhin kung ano ang kinakatawan ng mga token na ito. Alamin pa ang tungkol sa $1"
},
"kovan": {
"message": "Kovan Test Network"
},
"lastConnected": {
"message": "Huling Kumonekta"
},
@ -2724,11 +2715,8 @@
"message": "Sa pamamagitan ng pagbawi ng pahintulot, hindi na maa-access ng sumusunod na $1 ang iyong $2",
"description": "$1 is either key 'account' or 'contract', and $2 is either a string or link of a given token symbol or name"
},
"rinkeby": {
"message": "Rinkeby Test Network"
},
"ropsten": {
"message": "Ropsten Test Network"
"revokeSpendingCapTooltipText": {
"message": "Hindi na magagawang gastusin pa ng kontratang ito ang iyong mga pangkasalukuyan o panghinaharap na mga token."
},
"rpcUrl": {
"message": "Bagong RPC URL"

@ -616,17 +616,11 @@
"connectingToGoerli": {
"message": "Goerli Test Ağına Bağlanıyor"
},
"connectingToKovan": {
"message": "Kovan Test Ağına bağlanıyor"
},
"connectingToMainnet": {
"message": "Ethereum Mainnet ağına bağlanıyor"
},
"connectingToRinkeby": {
"message": "Rinkeby Test Ağına bağlanıyor"
},
"connectingToRopsten": {
"message": "Ropsten Test Ağına bağlanıyor"
"connectingToSepolia": {
"message": "Sepolia test ağına bağlanılıyor"
},
"contactUs": {
"message": "Bize ulaşın"
@ -1666,9 +1660,6 @@
"knownTokenWarning": {
"message": "Bu eylem kimlik avı için kullanılabilecek şekilde cüzdanınızda zaten listelenmiş olan tokenleri düzenleyecektir. Sadece bu tokenlerin neyi temsil ettiğini değiştirmek istediğinizden eminseniz onaylayın. $1 hakkında daha fazla bilgi edinin"
},
"kovan": {
"message": "Kovan Test Ağı"
},
"lastConnected": {
"message": "Son Bağlanma"
},
@ -2724,11 +2715,8 @@
"message": "İzni geri çektiğinizde aşağıdaki $1 artık $2 alanınıza erişim sağlayamayacak",
"description": "$1 is either key 'account' or 'contract', and $2 is either a string or link of a given token symbol or name"
},
"rinkeby": {
"message": "Rinkeby Test Ağı"
},
"ropsten": {
"message": "Ropsten Test Ağı"
"revokeSpendingCapTooltipText": {
"message": "Bu sözleşme şimdiki ya da gelecekteki tokenlerinizin hiçbirini kullanamayacak."
},
"rpcUrl": {
"message": "Yeni RPC URL adresi"

@ -193,18 +193,9 @@
"connectingToGoerli": {
"message": "Підключення до тестової мережі Goerli"
},
"connectingToKovan": {
"message": "Підключення до тестової мережі Kovan"
},
"connectingToMainnet": {
"message": "З'єднуємось з Головною мережею Ethereum"
},
"connectingToRinkeby": {
"message": "Під'єднуємось до тестової мережі Rinkeby"
},
"connectingToRopsten": {
"message": "Під'єднуємось до Тестової мережі Ropsten"
},
"continueToWyre": {
"message": "Продовжити у Wyre"
},
@ -503,9 +494,6 @@
"knownAddressRecipient": {
"message": "Відома контрактна адреса."
},
"kovan": {
"message": "Тестова мережа Kovan"
},
"learnMore": {
"message": "Дізнатись більше"
},
@ -768,12 +756,6 @@
"revealSeedWordsWarningTitle": {
"message": "НЕ передавайте цю фразу нікому!"
},
"rinkeby": {
"message": "Тестова мережа Rinkeby"
},
"ropsten": {
"message": "Тестова мережа Ropsten"
},
"rpcUrl": {
"message": "Новий RPC URL"
},

@ -616,17 +616,11 @@
"connectingToGoerli": {
"message": "Đang kết nối với mạng thử nghiệm Goerli"
},
"connectingToKovan": {
"message": "Đang kết nối với mạng thử nghiệm Kovan"
},
"connectingToMainnet": {
"message": "Đang kết nối với mạng chính thức của Ethereum"
},
"connectingToRinkeby": {
"message": "Đang kết nối với mạng thử nghiệm Rinkeby"
},
"connectingToRopsten": {
"message": "Đang kết nối với mạng thử nghiệm Ropsten"
"connectingToSepolia": {
"message": "Đang kết nối với mạng thử nghiệm Sepolia"
},
"contactUs": {
"message": "Liên hệ với chúng tôi"
@ -1666,9 +1660,6 @@
"knownTokenWarning": {
"message": "Hành động này sẽ chỉnh sửa các token đã niêm yết trong ví của bạn, kẻ xấu có thể lợi dụng việc này để lừa đảo bạn. Chỉ phê duyệt nếu bạn chắc chắn rằng bạn muốn thay đổi giá trị mà những token này đại diện cho. Tìm hiểu thêm về $1"
},
"kovan": {
"message": "Mạng thử nghiệm Kovan"
},
"lastConnected": {
"message": "Đã kết nối lần cuối"
},
@ -2724,11 +2715,8 @@
"message": "Bằng cách thu hồi quyền truy cập, $1 sau đây sẽ không thể truy cập vào $2 của bạn nữa",
"description": "$1 is either key 'account' or 'contract', and $2 is either a string or link of a given token symbol or name"
},
"rinkeby": {
"message": "Mạng thử nghiệm Rinkeby"
},
"ropsten": {
"message": "Mạng thử nghiệm Ropsten"
"revokeSpendingCapTooltipText": {
"message": "Hợp đồng này sẽ không thể chi tiêu thêm bất kỳ token hiện tại hoặc tương lai nào của bạn."
},
"rpcUrl": {
"message": "URL RPC mới"

@ -619,18 +619,9 @@
"connectingToGoerli": {
"message": "正在连接 Goerli 测试网络"
},
"connectingToKovan": {
"message": "正在连接到 Kovan 测试网络"
},
"connectingToMainnet": {
"message": "正在连接到以太坊主网"
},
"connectingToRinkeby": {
"message": "正在连接到 Rinkeby 测试网络"
},
"connectingToRopsten": {
"message": "正在连接到 Ropsten 测试网络"
},
"contactUs": {
"message": "联系我们"
},
@ -1669,9 +1660,6 @@
"knownTokenWarning": {
"message": "此操作将编辑已经在您的钱包中列出的代币,有肯能被用来欺骗您。只有确定要更改这些代币的内容时,才通过此操作。了解更多关于 $1"
},
"kovan": {
"message": "Kovan 测试网络"
},
"lastConnected": {
"message": "最后连接"
},
@ -2734,12 +2722,6 @@
"message": "通过撤销权限,以下$1将无法再访问您的$2",
"description": "$1 is either key 'account' or 'contract', and $2 is either a string or link of a given token symbol or name"
},
"rinkeby": {
"message": "Rinkeby 测试网络"
},
"ropsten": {
"message": "Ropsten 测试网络"
},
"rpcUrl": {
"message": "新的 RPC URL"
},

@ -506,17 +506,11 @@
"connectingToGoerli": {
"message": "正在连接 Goerli 测试网络"
},
"connectingToKovan": {
"message": "正在连接到 Kovan 测试网络"
},
"connectingToMainnet": {
"message": "正在连接到以太坊 Ethereum 主网"
},
"connectingToRinkeby": {
"message": "正在连接到 Rinkeby 测试网络"
},
"connectingToRopsten": {
"message": "正在连接到 Ropsten 测试网络"
"connectingToSepolia": {
"message": "正在连接Sepolia测试网络"
},
"contactUs": {
"message": "联系我们"
@ -1376,9 +1370,6 @@
"knownTokenWarning": {
"message": "此操作将编辑已经在您的钱包中列出的代币,有可能被用来欺骗您。只有确定要更改这些代币的内容时,才通过此操作。了解更多关于 $1"
},
"kovan": {
"message": "Kovan 测试网络"
},
"lastConnected": {
"message": "最后连接"
},
@ -2199,12 +2190,6 @@
"revealSeedWordsWarningTitle": {
"message": "不要对任何人展示此账户助记词!"
},
"rinkeby": {
"message": "Rinkeby 测试网络"
},
"ropsten": {
"message": "Ropsten 测试网络"
},
"rpcUrl": {
"message": "新增 RPC URL"
},

@ -196,18 +196,9 @@
"connectingToGoerli": {
"message": "連接至 Goerli 測試網路"
},
"connectingToKovan": {
"message": "連線到 Kovan 測試網路"
},
"connectingToMainnet": {
"message": "連線到主 Ethereum 網路"
},
"connectingToRinkeby": {
"message": "連線到 Rinkeby 測試網路"
},
"connectingToRopsten": {
"message": "連線到 Ropsten 測試網路"
},
"continueToWyre": {
"message": "繼續至 Wyre"
},
@ -503,9 +494,6 @@
"knownAddressRecipient": {
"message": "已知合約位址"
},
"kovan": {
"message": "Kovan 測試網路"
},
"learnMore": {
"message": "了解更多"
},
@ -750,12 +738,6 @@
"revealSeedWordsWarningTitle": {
"message": "請勿將助憶詞洩漏予他人"
},
"rinkeby": {
"message": "Rinkeby 測試網路"
},
"ropsten": {
"message": "Ropsten 測試網路"
},
"rpcUrl": {
"message": "新的 RPC URL"
},

@ -1,11 +1,5 @@
export const SINGLE_CALL_BALANCES_ADDRESS =
'0xb1f8e55c7f64d203c1400b9d8555d050f94adf39';
export const SINGLE_CALL_BALANCES_ADDRESS_RINKEBY =
'0x9f510b19f1ad66f0dcf6e45559fab0d6752c1db7';
export const SINGLE_CALL_BALANCES_ADDRESS_ROPSTEN =
'0xb8e671734ce5c8d7dfbbea5574fa4cf39f7a54a4';
export const SINGLE_CALL_BALANCES_ADDRESS_KOVAN =
'0xb1d3fbb2f83aecd196f474c16ca5d9cffa0d0ffc';
export const SINGLE_CALL_BALANCES_ADDRESS_GOERLI =
'0x9788C4E93f9002a7ad8e72633b11E8d1ecd51f9b';
// TODO(SEPOLIA) There is currently no balance call address for Sepolia

@ -40,9 +40,6 @@ export default class AppStateController extends EventEmitter {
collectiblesDropdownState: {},
usedNetworks: {
'0x1': true,
'0x2a': true,
'0x3': true,
'0x4': true,
'0x5': true,
'0x539': true,
},

@ -1,13 +1,13 @@
import { strict as assert } from 'assert';
import sinon from 'sinon';
import { KOVAN_CHAIN_ID } from '../../../shared/constants/network';
import { GOERLI_CHAIN_ID } from '../../../shared/constants/network';
import CachedBalancesController from './cached-balances';
describe('CachedBalancesController', function () {
describe('updateCachedBalances', function () {
it('should update the cached balances', async function () {
const controller = new CachedBalancesController({
getCurrentChainId: () => KOVAN_CHAIN_ID,
getCurrentChainId: () => GOERLI_CHAIN_ID,
accountTracker: {
store: {
subscribe: () => undefined,
@ -27,7 +27,7 @@ describe('CachedBalancesController', function () {
assert.equal(controller._generateBalancesToCache.callCount, 1);
assert.deepEqual(controller._generateBalancesToCache.args[0], [
'mockAccounts',
KOVAN_CHAIN_ID,
GOERLI_CHAIN_ID,
]);
assert.equal(
controller.store.getState().cachedBalances,
@ -46,7 +46,7 @@ describe('CachedBalancesController', function () {
},
initState: {
cachedBalances: {
[KOVAN_CHAIN_ID]: {
[GOERLI_CHAIN_ID]: {
a: '0x1',
b: '0x2',
c: '0x3',
@ -66,11 +66,11 @@ describe('CachedBalancesController', function () {
b: { balance: null },
c: { balance: '0x5' },
},
KOVAN_CHAIN_ID,
GOERLI_CHAIN_ID,
);
assert.deepEqual(result, {
[KOVAN_CHAIN_ID]: {
[GOERLI_CHAIN_ID]: {
a: '0x4',
b: '0x2',
c: '0x5',
@ -92,7 +92,7 @@ describe('CachedBalancesController', function () {
},
initState: {
cachedBalances: {
[KOVAN_CHAIN_ID]: {
[GOERLI_CHAIN_ID]: {
a: '0x1',
b: '0x2',
c: '0x3',
@ -111,7 +111,7 @@ describe('CachedBalancesController', function () {
);
assert.deepEqual(result, {
[KOVAN_CHAIN_ID]: {
[GOERLI_CHAIN_ID]: {
a: '0x1',
b: '0x2',
c: '0x3',
@ -128,7 +128,7 @@ describe('CachedBalancesController', function () {
it('should subscribe to the account tracker with the updateCachedBalances method', async function () {
const subscribeSpy = sinon.spy();
const controller = new CachedBalancesController({
getCurrentChainId: () => KOVAN_CHAIN_ID,
getCurrentChainId: () => GOERLI_CHAIN_ID,
accountTracker: {
store: {
subscribe: subscribeSpy,

@ -9,7 +9,7 @@ import {
TokensController,
AssetsContractController,
} from '@metamask/controllers';
import { MAINNET, ROPSTEN } from '../../../shared/constants/network';
import { MAINNET, SEPOLIA } from '../../../shared/constants/network';
import { toChecksumHexAddress } from '../../../shared/modules/hexstring-utils';
import DetectTokensController from './detect-tokens';
import NetworkController from './network';
@ -195,15 +195,15 @@ describe('DetectTokensController', function () {
it('should not check and add tokens while on unsupported networks', async function () {
sandbox.useFakeTimers();
network.setProviderType(ROPSTEN);
const tokenListMessengerRopsten = new ControllerMessenger().getRestricted({
network.setProviderType(SEPOLIA);
const tokenListMessengerSepolia = new ControllerMessenger().getRestricted({
name: 'TokenListController',
});
tokenListController = new TokenListController({
chainId: '3',
chainId: '11155111',
onNetworkStateChange: sinon.spy(),
onPreferencesStateChange: sinon.spy(),
messenger: tokenListMessengerRopsten,
messenger: tokenListMessengerSepolia,
});
await tokenListController.start();
const controller = new DetectTokensController({

@ -10,7 +10,7 @@ describe('EnsController', function () {
let getCurrentChainId;
let onNetworkDidChange;
beforeEach(function () {
currentChainId = '0x3';
currentChainId = '0x5';
getCurrentChainId = () => currentChainId;
onNetworkDidChange = sinon.spy();
});

@ -13,10 +13,7 @@ import {
CHAIN_ID_TO_NETWORK_ID_MAP,
CHAIN_ID_TO_TYPE_MAP,
GOERLI_CHAIN_ID,
KOVAN_CHAIN_ID,
MAINNET_CHAIN_ID,
RINKEBY_CHAIN_ID,
ROPSTEN_CHAIN_ID,
SEPOLIA_CHAIN_ID,
} from '../../../shared/constants/network';
@ -55,10 +52,7 @@ const fetchWithTimeout = getFetchWithTimeout();
*/
const etherscanSupportedNetworks = [
GOERLI_CHAIN_ID,
KOVAN_CHAIN_ID,
MAINNET_CHAIN_ID,
RINKEBY_CHAIN_ID,
ROPSTEN_CHAIN_ID,
SEPOLIA_CHAIN_ID,
];
@ -84,10 +78,7 @@ export default class IncomingTransactionsController {
incomingTransactions: {},
incomingTxLastFetchedBlockByChainId: {
[GOERLI_CHAIN_ID]: null,
[KOVAN_CHAIN_ID]: null,
[MAINNET_CHAIN_ID]: null,
[RINKEBY_CHAIN_ID]: null,
[ROPSTEN_CHAIN_ID]: null,
[SEPOLIA_CHAIN_ID]: null,
},
...opts.initState,

@ -8,13 +8,10 @@ import waitUntilCalled from '../../../test/lib/wait-until-called';
import {
CHAIN_ID_TO_TYPE_MAP,
GOERLI_CHAIN_ID,
KOVAN_CHAIN_ID,
MAINNET_CHAIN_ID,
RINKEBY_CHAIN_ID,
ROPSTEN_CHAIN_ID,
SEPOLIA_CHAIN_ID,
ROPSTEN_NETWORK_ID,
ROPSTEN,
GOERLI_NETWORK_ID,
GOERLI,
} from '../../../shared/constants/network';
import {
TRANSACTION_TYPES,
@ -36,18 +33,12 @@ const PREPOPULATED_INCOMING_TXS_BY_HASH = {
};
const PREPOPULATED_BLOCKS_BY_NETWORK = {
[GOERLI_CHAIN_ID]: 1,
[KOVAN_CHAIN_ID]: 2,
[MAINNET_CHAIN_ID]: 3,
[RINKEBY_CHAIN_ID]: 5,
[ROPSTEN_CHAIN_ID]: 4,
[SEPOLIA_CHAIN_ID]: 6,
};
const EMPTY_BLOCKS_BY_NETWORK = {
[GOERLI_CHAIN_ID]: null,
[KOVAN_CHAIN_ID]: null,
[MAINNET_CHAIN_ID]: null,
[RINKEBY_CHAIN_ID]: null,
[ROPSTEN_CHAIN_ID]: null,
[SEPOLIA_CHAIN_ID]: null,
};
@ -152,10 +143,7 @@ const getFakeEtherscanTransaction = ({
function nockEtherscanApiForAllChains(mockResponse) {
for (const chainId of [
GOERLI_CHAIN_ID,
KOVAN_CHAIN_ID,
MAINNET_CHAIN_ID,
RINKEBY_CHAIN_ID,
ROPSTEN_CHAIN_ID,
SEPOLIA_CHAIN_ID,
'undefined',
]) {
@ -251,16 +239,16 @@ describe('IncomingTransactionsController', function () {
const incomingTransactionsController = new IncomingTransactionsController(
{
blockTracker: getMockBlockTracker(),
...getMockNetworkControllerMethods(ROPSTEN_CHAIN_ID),
...getMockNetworkControllerMethods(GOERLI_CHAIN_ID),
preferencesController: getMockPreferencesController(),
initState: getNonEmptyInitState(),
},
);
const startBlock =
getNonEmptyInitState().incomingTxLastFetchedBlockByChainId[
ROPSTEN_CHAIN_ID
GOERLI_CHAIN_ID
];
nock('https://api-ropsten.etherscan.io')
nock('https://api-goerli.etherscan.io')
.get(
`/api?module=account&action=txlist&address=${MOCK_SELECTED_ADDRESS}&tag=latest&page=1&startBlock=${startBlock}`,
)
@ -310,8 +298,8 @@ describe('IncomingTransactionsController', function () {
'0xfake': {
blockNumber: '10',
hash: '0xfake',
metamaskNetworkId: ROPSTEN_NETWORK_ID,
chainId: ROPSTEN_CHAIN_ID,
metamaskNetworkId: GOERLI_NETWORK_ID,
chainId: GOERLI_CHAIN_ID,
status: TRANSACTION_STATUSES.CONFIRMED,
time: 16000000000000000,
type: TRANSACTION_TYPES.INCOMING,
@ -327,8 +315,8 @@ describe('IncomingTransactionsController', function () {
'0xfakeeip1559': {
blockNumber: '10',
hash: '0xfakeeip1559',
metamaskNetworkId: ROPSTEN_NETWORK_ID,
chainId: ROPSTEN_CHAIN_ID,
metamaskNetworkId: GOERLI_NETWORK_ID,
chainId: GOERLI_CHAIN_ID,
status: TRANSACTION_STATUSES.CONFIRMED,
time: 16000000000000000,
type: TRANSACTION_TYPES.INCOMING,
@ -345,7 +333,7 @@ describe('IncomingTransactionsController', function () {
},
incomingTxLastFetchedBlockByChainId: {
...getNonEmptyInitState().incomingTxLastFetchedBlockByChainId,
[ROPSTEN_CHAIN_ID]: 11,
[GOERLI_CHAIN_ID]: 11,
},
},
'State should have been updated after first block was received',
@ -453,7 +441,7 @@ describe('IncomingTransactionsController', function () {
const incomingTransactionsController = new IncomingTransactionsController(
{
blockTracker: getMockBlockTracker(),
...getMockNetworkControllerMethods(ROPSTEN_CHAIN_ID),
...getMockNetworkControllerMethods(GOERLI_CHAIN_ID),
preferencesController: getMockPreferencesController(),
initState: getNonEmptyInitState(),
},
@ -498,7 +486,7 @@ describe('IncomingTransactionsController', function () {
const incomingTransactionsController = new IncomingTransactionsController(
{
blockTracker: getMockBlockTracker(),
...getMockNetworkControllerMethods(ROPSTEN_CHAIN_ID),
...getMockNetworkControllerMethods(GOERLI_CHAIN_ID),
preferencesController: getMockPreferencesController(),
initState: getNonEmptyInitState(),
},
@ -545,7 +533,7 @@ describe('IncomingTransactionsController', function () {
const incomingTransactionsController = new IncomingTransactionsController(
{
blockTracker: getMockBlockTracker(),
...getMockNetworkControllerMethods(ROPSTEN_CHAIN_ID),
...getMockNetworkControllerMethods(GOERLI_CHAIN_ID),
preferencesController: getMockPreferencesController(),
initState: getNonEmptyInitState(),
},
@ -553,9 +541,9 @@ describe('IncomingTransactionsController', function () {
const NEW_MOCK_SELECTED_ADDRESS = `${MOCK_SELECTED_ADDRESS}9`;
const startBlock =
getNonEmptyInitState().incomingTxLastFetchedBlockByChainId[
ROPSTEN_CHAIN_ID
GOERLI_CHAIN_ID
];
nock('https://api-ropsten.etherscan.io')
nock('https://api-goerli.etherscan.io')
.get(
`/api?module=account&action=txlist&address=${NEW_MOCK_SELECTED_ADDRESS}&tag=latest&page=1&startBlock=${startBlock}`,
)
@ -608,8 +596,8 @@ describe('IncomingTransactionsController', function () {
'0xfake': {
blockNumber: '10',
hash: '0xfake',
metamaskNetworkId: ROPSTEN_NETWORK_ID,
chainId: ROPSTEN_CHAIN_ID,
metamaskNetworkId: GOERLI_NETWORK_ID,
chainId: GOERLI_CHAIN_ID,
status: TRANSACTION_STATUSES.CONFIRMED,
time: 16000000000000000,
type: TRANSACTION_TYPES.INCOMING,
@ -625,7 +613,7 @@ describe('IncomingTransactionsController', function () {
},
incomingTxLastFetchedBlockByChainId: {
...getNonEmptyInitState().incomingTxLastFetchedBlockByChainId,
[ROPSTEN_CHAIN_ID]: 11,
[GOERLI_CHAIN_ID]: 11,
},
},
'State should have been updated after first block was received',
@ -692,7 +680,7 @@ describe('IncomingTransactionsController', function () {
it('should update when switching to a supported network', async function () {
const mockedNetworkMethods =
getMockNetworkControllerMethods(ROPSTEN_CHAIN_ID);
getMockNetworkControllerMethods(GOERLI_CHAIN_ID);
const incomingTransactionsController = new IncomingTransactionsController(
{
blockTracker: getMockBlockTracker(),
@ -703,9 +691,9 @@ describe('IncomingTransactionsController', function () {
);
const startBlock =
getNonEmptyInitState().incomingTxLastFetchedBlockByChainId[
ROPSTEN_CHAIN_ID
GOERLI_CHAIN_ID
];
nock('https://api-ropsten.etherscan.io')
nock('https://api-goerli.etherscan.io')
.get(
`/api?module=account&action=txlist&address=${MOCK_SELECTED_ADDRESS}&tag=latest&page=1&startBlock=${startBlock}`,
)
@ -727,7 +715,7 @@ describe('IncomingTransactionsController', function () {
const subscription =
mockedNetworkMethods.onNetworkDidChange.getCall(0).args[0];
await subscription(ROPSTEN_CHAIN_ID);
await subscription(GOERLI_CHAIN_ID);
await updateStateCalled();
const actualState = incomingTransactionsController.store.getState();
@ -748,8 +736,8 @@ describe('IncomingTransactionsController', function () {
'0xfake': {
blockNumber: '10',
hash: '0xfake',
metamaskNetworkId: ROPSTEN_NETWORK_ID,
chainId: ROPSTEN_CHAIN_ID,
metamaskNetworkId: GOERLI_NETWORK_ID,
chainId: GOERLI_CHAIN_ID,
status: TRANSACTION_STATUSES.CONFIRMED,
time: 16000000000000000,
type: TRANSACTION_TYPES.INCOMING,
@ -765,7 +753,7 @@ describe('IncomingTransactionsController', function () {
},
incomingTxLastFetchedBlockByChainId: {
...getNonEmptyInitState().incomingTxLastFetchedBlockByChainId,
[ROPSTEN_CHAIN_ID]: 11,
[GOERLI_CHAIN_ID]: 11,
},
},
'State should have been updated after first block was received',
@ -774,7 +762,7 @@ describe('IncomingTransactionsController', function () {
it('should not update when switching to an unsupported network', async function () {
const mockedNetworkMethods =
getMockNetworkControllerMethods(ROPSTEN_CHAIN_ID);
getMockNetworkControllerMethods(GOERLI_CHAIN_ID);
const incomingTransactionsController = new IncomingTransactionsController(
{
blockTracker: getMockBlockTracker(),
@ -832,10 +820,10 @@ describe('IncomingTransactionsController', function () {
const incomingTransactionsController =
new IncomingTransactionsController({
blockTracker: getMockBlockTracker(),
...getMockNetworkControllerMethods(ROPSTEN_CHAIN_ID),
...getMockNetworkControllerMethods(GOERLI_CHAIN_ID),
preferencesController: getMockPreferencesController(),
initState: getEmptyInitState(),
getCurrentChainId: () => ROPSTEN_CHAIN_ID,
getCurrentChainId: () => GOERLI_CHAIN_ID,
});
sinon.spy(incomingTransactionsController.store, 'updateState');
@ -850,14 +838,14 @@ describe('IncomingTransactionsController', function () {
assert.deepStrictEqual(
incomingTransactionsController._getNewIncomingTransactions.getCall(0)
.args,
['fakeAddress', 999, ROPSTEN_CHAIN_ID],
['fakeAddress', 999, GOERLI_CHAIN_ID],
);
assert.deepStrictEqual(
incomingTransactionsController.store.updateState.getCall(0).args[0],
{
incomingTxLastFetchedBlockByChainId: {
...EMPTY_BLOCKS_BY_NETWORK,
[ROPSTEN_CHAIN_ID]: 1000,
[GOERLI_CHAIN_ID]: 1000,
},
incomingTransactions: {},
},
@ -868,10 +856,10 @@ describe('IncomingTransactionsController', function () {
const incomingTransactionsController =
new IncomingTransactionsController({
blockTracker: getMockBlockTracker(),
...getMockNetworkControllerMethods(ROPSTEN_CHAIN_ID),
...getMockNetworkControllerMethods(GOERLI_CHAIN_ID),
preferencesController: getMockPreferencesController(),
initState: getEmptyInitState(),
getCurrentChainId: () => ROPSTEN_CHAIN_ID,
getCurrentChainId: () => GOERLI_CHAIN_ID,
});
const NEW_TRANSACTION_ONE = {
@ -897,7 +885,7 @@ describe('IncomingTransactionsController', function () {
assert.deepStrictEqual(
incomingTransactionsController._getNewIncomingTransactions.getCall(0)
.args,
['fakeAddress', 10, ROPSTEN_CHAIN_ID],
['fakeAddress', 10, GOERLI_CHAIN_ID],
);
assert.deepStrictEqual(
@ -905,7 +893,7 @@ describe('IncomingTransactionsController', function () {
{
incomingTxLastFetchedBlockByChainId: {
...EMPTY_BLOCKS_BY_NETWORK,
[ROPSTEN_CHAIN_ID]: 445,
[GOERLI_CHAIN_ID]: 445,
},
incomingTransactions: {
[NEW_TRANSACTION_ONE.hash]: NEW_TRANSACTION_ONE,
@ -921,10 +909,10 @@ describe('IncomingTransactionsController', function () {
const incomingTransactionsController =
new IncomingTransactionsController({
blockTracker: getMockBlockTracker(),
...getMockNetworkControllerMethods(ROPSTEN_CHAIN_ID),
...getMockNetworkControllerMethods(GOERLI_CHAIN_ID),
preferencesController: getMockPreferencesController(),
initState: getNonEmptyInitState(),
getCurrentChainId: () => ROPSTEN_CHAIN_ID,
getCurrentChainId: () => GOERLI_CHAIN_ID,
});
sinon.spy(incomingTransactionsController.store, 'updateState');
incomingTransactionsController._getNewIncomingTransactions = sinon
@ -940,7 +928,7 @@ describe('IncomingTransactionsController', function () {
assert.deepStrictEqual(
incomingTransactionsController._getNewIncomingTransactions.getCall(0)
.args,
['fakeAddress', 4, ROPSTEN_CHAIN_ID],
['fakeAddress', 1, GOERLI_CHAIN_ID],
);
assert.deepStrictEqual(
@ -948,8 +936,8 @@ describe('IncomingTransactionsController', function () {
{
incomingTxLastFetchedBlockByChainId: {
...PREPOPULATED_BLOCKS_BY_NETWORK,
[ROPSTEN_CHAIN_ID]:
PREPOPULATED_BLOCKS_BY_NETWORK[ROPSTEN_CHAIN_ID] + 1,
[GOERLI_CHAIN_ID]:
PREPOPULATED_BLOCKS_BY_NETWORK[GOERLI_CHAIN_ID] + 1,
},
incomingTransactions: PREPOPULATED_INCOMING_TXS_BY_HASH,
},
@ -961,10 +949,10 @@ describe('IncomingTransactionsController', function () {
const incomingTransactionsController = new IncomingTransactionsController(
{
blockTracker: getMockBlockTracker(),
...getMockNetworkControllerMethods(ROPSTEN_CHAIN_ID),
...getMockNetworkControllerMethods(GOERLI_CHAIN_ID),
preferencesController: getMockPreferencesController(),
initState: getNonEmptyInitState(),
getCurrentChainId: () => ROPSTEN_CHAIN_ID,
getCurrentChainId: () => GOERLI_CHAIN_ID,
},
);
@ -991,7 +979,7 @@ describe('IncomingTransactionsController', function () {
assert.deepStrictEqual(
incomingTransactionsController._getNewIncomingTransactions.getCall(0)
.args,
['fakeAddress', 4, ROPSTEN_CHAIN_ID],
['fakeAddress', 1, GOERLI_CHAIN_ID],
);
assert.deepStrictEqual(
@ -999,7 +987,7 @@ describe('IncomingTransactionsController', function () {
{
incomingTxLastFetchedBlockByChainId: {
...PREPOPULATED_BLOCKS_BY_NETWORK,
[ROPSTEN_CHAIN_ID]: 445,
[GOERLI_CHAIN_ID]: 445,
},
incomingTransactions: {
...PREPOPULATED_INCOMING_TXS_BY_HASH,
@ -1036,7 +1024,7 @@ describe('IncomingTransactionsController', function () {
const incomingTransactionsController = new IncomingTransactionsController(
{
blockTracker: getMockBlockTracker(),
...getMockNetworkControllerMethods(ROPSTEN_CHAIN_ID),
...getMockNetworkControllerMethods(GOERLI_CHAIN_ID),
preferencesController: getMockPreferencesController(),
initState: getNonEmptyInitState(),
},
@ -1045,13 +1033,13 @@ describe('IncomingTransactionsController', function () {
await incomingTransactionsController._getNewIncomingTransactions(
ADDRESS_TO_FETCH_FOR,
'789',
ROPSTEN_CHAIN_ID,
GOERLI_CHAIN_ID,
);
assert(mockFetch.calledOnce);
assert.strictEqual(
mockFetch.getCall(0).args[0],
`https://api-${ROPSTEN}.etherscan.io/api?module=account&action=txlist&address=0xfakeaddress&tag=latest&page=1&startBlock=789`,
`https://api-${GOERLI}.etherscan.io/api?module=account&action=txlist&address=0xfakeaddress&tag=latest&page=1&startBlock=789`,
);
});
@ -1082,7 +1070,7 @@ describe('IncomingTransactionsController', function () {
const incomingTransactionsController = new IncomingTransactionsController(
{
blockTracker: getMockBlockTracker(),
...getMockNetworkControllerMethods(ROPSTEN_CHAIN_ID),
...getMockNetworkControllerMethods(GOERLI_CHAIN_ID),
preferencesController: getMockPreferencesController(),
initState: getNonEmptyInitState(),
},
@ -1091,13 +1079,13 @@ describe('IncomingTransactionsController', function () {
await incomingTransactionsController._getNewIncomingTransactions(
ADDRESS_TO_FETCH_FOR,
null,
ROPSTEN_CHAIN_ID,
GOERLI_CHAIN_ID,
);
assert(mockFetch.calledOnce);
assert.strictEqual(
mockFetch.getCall(0).args[0],
`https://api-${ROPSTEN}.etherscan.io/api?module=account&action=txlist&address=0xfakeaddress&tag=latest&page=1`,
`https://api-${GOERLI}.etherscan.io/api?module=account&action=txlist&address=0xfakeaddress&tag=latest&page=1`,
);
});
@ -1105,7 +1093,7 @@ describe('IncomingTransactionsController', function () {
const incomingTransactionsController = new IncomingTransactionsController(
{
blockTracker: getMockBlockTracker(),
...getMockNetworkControllerMethods(ROPSTEN_CHAIN_ID),
...getMockNetworkControllerMethods(GOERLI_CHAIN_ID),
preferencesController: getMockPreferencesController(),
initState: getNonEmptyInitState(),
},
@ -1115,14 +1103,14 @@ describe('IncomingTransactionsController', function () {
await incomingTransactionsController._getNewIncomingTransactions(
ADDRESS_TO_FETCH_FOR,
'789',
ROPSTEN_CHAIN_ID,
GOERLI_CHAIN_ID,
);
assert(mockFetch.calledOnce);
assert.deepStrictEqual(result, [
incomingTransactionsController._normalizeTxFromEtherscan(
FETCHED_TX,
ROPSTEN_CHAIN_ID,
GOERLI_CHAIN_ID,
),
]);
});
@ -1138,7 +1126,7 @@ describe('IncomingTransactionsController', function () {
const incomingTransactionsController = new IncomingTransactionsController(
{
blockTracker: getMockBlockTracker(),
...getMockNetworkControllerMethods(ROPSTEN_CHAIN_ID),
...getMockNetworkControllerMethods(GOERLI_CHAIN_ID),
preferencesController: getMockPreferencesController(),
initState: getNonEmptyInitState(),
},
@ -1148,7 +1136,7 @@ describe('IncomingTransactionsController', function () {
await incomingTransactionsController._getNewIncomingTransactions(
ADDRESS_TO_FETCH_FOR,
'789',
ROPSTEN_CHAIN_ID,
GOERLI_CHAIN_ID,
);
assert.deepStrictEqual(result, []);
window.fetch = tempFetchStatusZero;
@ -1166,7 +1154,7 @@ describe('IncomingTransactionsController', function () {
const incomingTransactionsController = new IncomingTransactionsController(
{
blockTracker: getMockBlockTracker(),
...getMockNetworkControllerMethods(ROPSTEN_CHAIN_ID),
...getMockNetworkControllerMethods(GOERLI_CHAIN_ID),
preferencesController: getMockPreferencesController(),
initState: getNonEmptyInitState(),
},
@ -1176,7 +1164,7 @@ describe('IncomingTransactionsController', function () {
await incomingTransactionsController._getNewIncomingTransactions(
ADDRESS_TO_FETCH_FOR,
'789',
ROPSTEN_CHAIN_ID,
GOERLI_CHAIN_ID,
);
assert.deepStrictEqual(result, []);
window.fetch = tempFetchEmptyResult;
@ -1189,7 +1177,7 @@ describe('IncomingTransactionsController', function () {
const incomingTransactionsController = new IncomingTransactionsController(
{
blockTracker: getMockBlockTracker(),
...getMockNetworkControllerMethods(ROPSTEN_CHAIN_ID),
...getMockNetworkControllerMethods(GOERLI_CHAIN_ID),
preferencesController: getMockPreferencesController(),
initState: getNonEmptyInitState(),
},
@ -1208,14 +1196,14 @@ describe('IncomingTransactionsController', function () {
value: '15',
hash: '0xg',
},
ROPSTEN_CHAIN_ID,
GOERLI_CHAIN_ID,
);
assert.deepStrictEqual(result, {
blockNumber: 333,
id: 54321,
metamaskNetworkId: ROPSTEN_NETWORK_ID,
chainId: ROPSTEN_CHAIN_ID,
metamaskNetworkId: GOERLI_NETWORK_ID,
chainId: GOERLI_CHAIN_ID,
status: TRANSACTION_STATUSES.FAILED,
time: 4444000,
txParams: {
@ -1235,7 +1223,7 @@ describe('IncomingTransactionsController', function () {
const incomingTransactionsController = new IncomingTransactionsController(
{
blockTracker: getMockBlockTracker(),
...getMockNetworkControllerMethods(ROPSTEN_CHAIN_ID),
...getMockNetworkControllerMethods(GOERLI_CHAIN_ID),
preferencesController: getMockPreferencesController(),
initState: getNonEmptyInitState(),
},
@ -1254,14 +1242,14 @@ describe('IncomingTransactionsController', function () {
value: '15',
hash: '0xg',
},
ROPSTEN_CHAIN_ID,
GOERLI_CHAIN_ID,
);
assert.deepStrictEqual(result, {
blockNumber: 333,
id: 54321,
metamaskNetworkId: ROPSTEN_NETWORK_ID,
chainId: ROPSTEN_CHAIN_ID,
metamaskNetworkId: GOERLI_NETWORK_ID,
chainId: GOERLI_CHAIN_ID,
status: TRANSACTION_STATUSES.CONFIRMED,
time: 4444000,
txParams: {
@ -1281,7 +1269,7 @@ describe('IncomingTransactionsController', function () {
const incomingTransactionsController = new IncomingTransactionsController(
{
blockTracker: getMockBlockTracker(),
...getMockNetworkControllerMethods(ROPSTEN_CHAIN_ID),
...getMockNetworkControllerMethods(GOERLI_CHAIN_ID),
preferencesController: getMockPreferencesController(),
initState: getNonEmptyInitState(),
},
@ -1301,14 +1289,14 @@ describe('IncomingTransactionsController', function () {
value: '15',
hash: '0xg',
},
ROPSTEN_CHAIN_ID,
GOERLI_CHAIN_ID,
);
assert.deepStrictEqual(result, {
blockNumber: 333,
id: 54321,
metamaskNetworkId: ROPSTEN_NETWORK_ID,
chainId: ROPSTEN_CHAIN_ID,
metamaskNetworkId: GOERLI_NETWORK_ID,
chainId: GOERLI_CHAIN_ID,
status: TRANSACTION_STATUSES.CONFIRMED,
time: 4444000,
txParams: {

@ -11,7 +11,7 @@ import waitUntilCalled from '../../../test/lib/wait-until-called';
import {
ETH_SYMBOL,
MAINNET_CHAIN_ID,
ROPSTEN_CHAIN_ID,
GOERLI_CHAIN_ID,
TEST_ETH_SYMBOL,
} from '../../../shared/constants/network';
import MetaMetricsController from './metametrics';
@ -643,7 +643,7 @@ describe('MetaMetricsController', function () {
const traits = metaMetricsController._buildUserTraitsObject({
addressBook: {
[MAINNET_CHAIN_ID]: [{ address: '0x' }],
[ROPSTEN_CHAIN_ID]: [{ address: '0x' }, { address: '0x0' }],
[GOERLI_CHAIN_ID]: [{ address: '0x' }, { address: '0x0' }],
},
allCollectibles: {
'0xac706cE8A9BF27Afecf080fB298d0ee13cfb978A': {
@ -674,7 +674,7 @@ describe('MetaMetricsController', function () {
allTokens: MOCK_ALL_TOKENS,
frequentRpcListDetail: [
{ chainId: MAINNET_CHAIN_ID, ticker: ETH_SYMBOL },
{ chainId: ROPSTEN_CHAIN_ID, ticker: TEST_ETH_SYMBOL },
{ chainId: GOERLI_CHAIN_ID, ticker: TEST_ETH_SYMBOL },
{ chainId: '0xaf' },
],
identities: [{}, {}],
@ -690,7 +690,7 @@ describe('MetaMetricsController', function () {
[TRAITS.ADDRESS_BOOK_ENTRIES]: 3,
[TRAITS.INSTALL_DATE_EXT]: '',
[TRAITS.LEDGER_CONNECTION_TYPE]: 'web-hid',
[TRAITS.NETWORKS_ADDED]: [MAINNET_CHAIN_ID, ROPSTEN_CHAIN_ID, '0xaf'],
[TRAITS.NETWORKS_ADDED]: [MAINNET_CHAIN_ID, GOERLI_CHAIN_ID, '0xaf'],
[TRAITS.NETWORKS_WITHOUT_TICKER]: ['0xaf'],
[TRAITS.NFT_AUTODETECTION_ENABLED]: false,
[TRAITS.NUMBER_OF_ACCOUNTS]: 2,
@ -709,12 +709,12 @@ describe('MetaMetricsController', function () {
metaMetricsController._buildUserTraitsObject({
addressBook: {
[MAINNET_CHAIN_ID]: [{ address: '0x' }],
[ROPSTEN_CHAIN_ID]: [{ address: '0x' }, { address: '0x0' }],
[GOERLI_CHAIN_ID]: [{ address: '0x' }, { address: '0x0' }],
},
allTokens: {},
frequentRpcListDetail: [
{ chainId: MAINNET_CHAIN_ID },
{ chainId: ROPSTEN_CHAIN_ID },
{ chainId: GOERLI_CHAIN_ID },
],
ledgerTransportType: 'web-hid',
openSeaEnabled: true,
@ -728,14 +728,14 @@ describe('MetaMetricsController', function () {
const updatedTraits = metaMetricsController._buildUserTraitsObject({
addressBook: {
[MAINNET_CHAIN_ID]: [{ address: '0x' }, { address: '0x1' }],
[ROPSTEN_CHAIN_ID]: [{ address: '0x' }, { address: '0x0' }],
[GOERLI_CHAIN_ID]: [{ address: '0x' }, { address: '0x0' }],
},
allTokens: {
'0x1': { '0xabcde': [{ '0x12345': { address: '0xtestAddress' } }] },
},
frequentRpcListDetail: [
{ chainId: MAINNET_CHAIN_ID },
{ chainId: ROPSTEN_CHAIN_ID },
{ chainId: GOERLI_CHAIN_ID },
],
ledgerTransportType: 'web-hid',
openSeaEnabled: false,
@ -759,12 +759,12 @@ describe('MetaMetricsController', function () {
metaMetricsController._buildUserTraitsObject({
addressBook: {
[MAINNET_CHAIN_ID]: [{ address: '0x' }],
[ROPSTEN_CHAIN_ID]: [{ address: '0x' }, { address: '0x0' }],
[GOERLI_CHAIN_ID]: [{ address: '0x' }, { address: '0x0' }],
},
allTokens: {},
frequentRpcListDetail: [
{ chainId: MAINNET_CHAIN_ID },
{ chainId: ROPSTEN_CHAIN_ID },
{ chainId: GOERLI_CHAIN_ID },
],
ledgerTransportType: 'web-hid',
openSeaEnabled: true,
@ -778,12 +778,12 @@ describe('MetaMetricsController', function () {
const updatedTraits = metaMetricsController._buildUserTraitsObject({
addressBook: {
[MAINNET_CHAIN_ID]: [{ address: '0x' }],
[ROPSTEN_CHAIN_ID]: [{ address: '0x' }, { address: '0x0' }],
[GOERLI_CHAIN_ID]: [{ address: '0x' }, { address: '0x0' }],
},
allTokens: {},
frequentRpcListDetail: [
{ chainId: MAINNET_CHAIN_ID },
{ chainId: ROPSTEN_CHAIN_ID },
{ chainId: GOERLI_CHAIN_ID },
],
ledgerTransportType: 'web-hid',
openSeaEnabled: true,

@ -133,42 +133,6 @@ describe('NetworkController', () => {
describe('utils', () => {
it('getNetworkDisplayName should return the correct network name', () => {
const tests = [
{
input: '3',
expected: 'Ropsten',
},
{
input: '4',
expected: 'Rinkeby',
},
{
input: '42',
expected: 'Kovan',
},
{
input: '0x3',
expected: 'Ropsten',
},
{
input: '0x4',
expected: 'Rinkeby',
},
{
input: '0x2a',
expected: 'Kovan',
},
{
input: 'ropsten',
expected: 'Ropsten',
},
{
input: 'rinkeby',
expected: 'Rinkeby',
},
{
input: 'kovan',
expected: 'Kovan',
},
{
input: 'mainnet',
expected: 'Ethereum Mainnet',

@ -10,13 +10,13 @@ import {
} from 'swappable-obj-proxy';
import EthQuery from 'eth-query';
import {
RINKEBY,
MAINNET,
GOERLI_CHAIN_ID,
GOERLI,
INFURA_PROVIDER_TYPES,
NETWORK_TYPE_RPC,
NETWORK_TYPE_TO_ID_MAP,
MAINNET_CHAIN_ID,
RINKEBY_CHAIN_ID,
INFURA_BLOCKED_KEY,
TEST_NETWORK_TICKER_MAP,
} from '../../../../shared/constants/network';
@ -42,9 +42,9 @@ if (process.env.IN_TEST) {
};
} else if (process.env.METAMASK_DEBUG || env === 'test') {
defaultProviderConfigOpts = {
type: RINKEBY,
chainId: RINKEBY_CHAIN_ID,
ticker: TEST_NETWORK_TICKER_MAP.rinkeby,
type: GOERLI,
chainId: GOERLI_CHAIN_ID,
ticker: TEST_NETWORK_TICKER_MAP.goerli,
};
} else {
defaultProviderConfigOpts = { type: MAINNET, chainId: MAINNET_CHAIN_ID };

@ -70,7 +70,7 @@ describe('PendingNonceMiddleware', () => {
gasPrice: '0x1e8480',
hash: '0x2cc5a25744486f7383edebbf32003e5a66e18135799593d6b5cdd2bb43674f09',
input: '0x',
nonce: '0x4',
nonce: '0x5',
type: TRANSACTION_ENVELOPE_TYPES.LEGACY,
to: '0xf231d46dd78806e1dd93442cf33c7671f8538748',
transactionIndex: null,

@ -22,9 +22,9 @@ describe('network utils', () => {
},
type: TRANSACTION_TYPES.SIMPLE_SEND,
origin: 'other',
chainId: '0x3',
chainId: '0x5',
time: 1624408066355,
metamaskNetworkId: '3',
metamaskNetworkId: '5',
hash: '0x4bcb6cd6b182209585f8ad140260ddb35c81a575dd40f508d9767e652a9f60e7',
r: '0x4c3111e42ed5eec3dcecba1e234700f387e8693c373c61c3e54a762a26f1570e',
s: '0x18bfc4eeb7ebcfacc3bd59ea100a6834ea3265e65945dbec69aa2a06564fafff',
@ -67,9 +67,9 @@ describe('network utils', () => {
},
type: TRANSACTION_TYPES.SIMPLE_SEND,
origin: 'other',
chainId: '0x3',
chainId: '0x5',
time: 1624408066355,
metamaskNetworkId: '3',
metamaskNetworkId: '5',
hash: '0x4bcb6cd6b182209585f8ad140260ddb35c81a575dd40f508d9767e652a9f60e7',
r: '0x4c3111e42ed5eec3dcecba1e234700f387e8693c373c61c3e54a762a26f1570e',
s: '0x18bfc4eeb7ebcfacc3bd59ea100a6834ea3265e65945dbec69aa2a06564fafff',

@ -5,7 +5,7 @@ import { ethers } from 'ethers';
import { mapValues } from 'lodash';
import BigNumber from 'bignumber.js';
import {
ROPSTEN_NETWORK_ID,
GOERLI_NETWORK_ID,
MAINNET_NETWORK_ID,
MAINNET_CHAIN_ID,
} from '../../../shared/constants/network';
@ -104,7 +104,7 @@ function getMockNetworkController() {
store: {
getState: () => {
return {
network: ROPSTEN_NETWORK_ID,
network: GOERLI_NETWORK_ID,
};
},
},
@ -273,7 +273,7 @@ describe('SwapsController', function () {
const currentEthersInstance = swapsController.ethersProvider;
const onNetworkDidChange = networkController.on.getCall(0).args[1];
onNetworkDidChange(ROPSTEN_NETWORK_ID);
onNetworkDidChange(GOERLI_NETWORK_ID);
const newEthersInstance = swapsController.ethersProvider;
assert.strictEqual(

@ -31,10 +31,10 @@ import { ORIGIN_METAMASK } from '../../../../shared/constants/app';
import TransactionController from '.';
const noop = () => true;
const currentNetworkId = '42';
const currentChainId = '0x2a';
const currentNetworkId = '5';
const currentChainId = '0x5';
const providerConfig = {
type: 'kovan',
type: 'goerli',
};
const VALID_ADDRESS = '0x0000000000000000000000000000000000000000';
@ -940,7 +940,7 @@ describe('Transaction Controller', function () {
);
const rawTx = await txController.signTransaction('1');
const ethTx = TransactionFactory.fromSerializedData(toBuffer(rawTx));
assert.equal(ethTx.common.chainIdBN().toNumber(), 42);
assert.equal(ethTx.common.chainIdBN().toNumber(), 5);
});
});
@ -1524,11 +1524,11 @@ describe('Transaction Controller', function () {
category: EVENT.CATEGORIES.TRANSACTIONS,
persist: true,
properties: {
chain_id: '0x2a',
chain_id: '0x5',
eip_1559_version: '0',
gas_edit_attempted: 'none',
gas_edit_type: 'none',
network: '42',
network: '5',
referrer: ORIGIN_METAMASK,
source: EVENT.SOURCE.TRANSACTION.USER,
transaction_type: TRANSACTION_TYPES.SIMPLE_SEND,
@ -1606,11 +1606,11 @@ describe('Transaction Controller', function () {
category: EVENT.CATEGORIES.TRANSACTIONS,
persist: true,
properties: {
chain_id: '0x2a',
chain_id: '0x5',
eip_1559_version: '0',
gas_edit_attempted: 'none',
gas_edit_type: 'none',
network: '42',
network: '5',
referrer: ORIGIN_METAMASK,
source: EVENT.SOURCE.TRANSACTION.USER,
transaction_type: TRANSACTION_TYPES.SIMPLE_SEND,
@ -1698,11 +1698,11 @@ describe('Transaction Controller', function () {
category: EVENT.CATEGORIES.TRANSACTIONS,
persist: true,
properties: {
chain_id: '0x2a',
chain_id: '0x5',
eip_1559_version: '0',
gas_edit_attempted: 'none',
gas_edit_type: 'none',
network: '42',
network: '5',
referrer: 'other',
source: EVENT.SOURCE.TRANSACTION.DAPP,
transaction_type: TRANSACTION_TYPES.SIMPLE_SEND,
@ -1782,11 +1782,11 @@ describe('Transaction Controller', function () {
category: EVENT.CATEGORIES.TRANSACTIONS,
persist: true,
properties: {
chain_id: '0x2a',
chain_id: '0x5',
eip_1559_version: '0',
gas_edit_attempted: 'none',
gas_edit_type: 'none',
network: '42',
network: '5',
referrer: 'other',
source: EVENT.SOURCE.TRANSACTION.DAPP,
transaction_type: TRANSACTION_TYPES.SIMPLE_SEND,
@ -1866,11 +1866,11 @@ describe('Transaction Controller', function () {
category: EVENT.CATEGORIES.TRANSACTIONS,
persist: true,
properties: {
chain_id: '0x2a',
chain_id: '0x5',
eip_1559_version: '0',
gas_edit_attempted: 'none',
gas_edit_type: 'none',
network: '42',
network: '5',
referrer: 'other',
source: EVENT.SOURCE.TRANSACTION.DAPP,
transaction_type: TRANSACTION_TYPES.SIMPLE_SEND,
@ -1932,11 +1932,11 @@ describe('Transaction Controller', function () {
persist: true,
category: EVENT.CATEGORIES.TRANSACTIONS,
properties: {
network: '42',
network: '5',
referrer: 'other',
source: EVENT.SOURCE.TRANSACTION.DAPP,
transaction_type: TRANSACTION_TYPES.SIMPLE_SEND,
chain_id: '0x2a',
chain_id: '0x5',
eip_1559_version: '0',
gas_edit_attempted: 'none',
gas_edit_type: 'none',
@ -2008,11 +2008,11 @@ describe('Transaction Controller', function () {
persist: true,
category: EVENT.CATEGORIES.TRANSACTIONS,
properties: {
chain_id: '0x2a',
chain_id: '0x5',
eip_1559_version: '1',
gas_edit_attempted: 'none',
gas_edit_type: 'none',
network: '42',
network: '5',
referrer: 'other',
source: EVENT.SOURCE.TRANSACTION.DAPP,
transaction_type: TRANSACTION_TYPES.SIMPLE_SEND,

@ -30,14 +30,14 @@ describe('txUtils', function () {
gasPrice: '0x199c82cc00',
data: '0x',
nonce: '0x3',
chainId: 42,
chainId: 5,
};
const ethTx = TransactionFactory.fromTxData(txParams, {
common: new Common({ chain: 'kovan' }),
common: new Common({ chain: 'goerli' }),
});
assert.equal(
ethTx.common.chainIdBN().toNumber(),
42,
5,
'chainId is set from tx params',
);
});

@ -5,10 +5,9 @@ import {
TRANSACTION_TYPES,
} from '../../../../shared/constants/transaction';
import {
KOVAN_CHAIN_ID,
GOERLI_CHAIN_ID,
MAINNET_CHAIN_ID,
RINKEBY_CHAIN_ID,
KOVAN_NETWORK_ID,
GOERLI_NETWORK_ID,
} from '../../../../shared/constants/network';
import { GAS_LIMITS } from '../../../../shared/constants/gas';
import { ORIGIN_METAMASK } from '../../../../shared/constants/app';
@ -49,8 +48,8 @@ function generateTransactions(
}
describe('TransactionStateManager', function () {
let txStateManager;
const currentNetworkId = KOVAN_NETWORK_ID;
const currentChainId = KOVAN_CHAIN_ID;
const currentNetworkId = GOERLI_NETWORK_ID;
const currentChainId = GOERLI_CHAIN_ID;
const otherNetworkId = '2';
beforeEach(function () {
@ -683,7 +682,7 @@ describe('TransactionStateManager', function () {
if (i === 0 || i === 1) {
return MAINNET_CHAIN_ID;
} else if (i === 4 || i === 5) {
return RINKEBY_CHAIN_ID;
return GOERLI_CHAIN_ID;
}
return currentChainId;
},

@ -16,10 +16,7 @@ import Web3 from 'web3';
import SINGLE_CALL_BALANCES_ABI from 'single-call-balance-checker-abi';
import {
MAINNET_CHAIN_ID,
RINKEBY_CHAIN_ID,
ROPSTEN_CHAIN_ID,
SEPOLIA_CHAIN_ID,
KOVAN_CHAIN_ID,
GOERLI_CHAIN_ID,
BSC_CHAIN_ID,
OPTIMISM_CHAIN_ID,
@ -31,9 +28,6 @@ import {
import {
SINGLE_CALL_BALANCES_ADDRESS,
SINGLE_CALL_BALANCES_ADDRESS_RINKEBY,
SINGLE_CALL_BALANCES_ADDRESS_ROPSTEN,
SINGLE_CALL_BALANCES_ADDRESS_KOVAN,
SINGLE_CALL_BALANCES_ADDRESS_GOERLI,
SINGLE_CALL_BALANCES_ADDRESS_SEPOLIA,
SINGLE_CALL_BALANCES_ADDRESS_BSC,
@ -225,27 +219,6 @@ export default class AccountTracker {
);
break;
case RINKEBY_CHAIN_ID:
await this._updateAccountsViaBalanceChecker(
addresses,
SINGLE_CALL_BALANCES_ADDRESS_RINKEBY,
);
break;
case ROPSTEN_CHAIN_ID:
await this._updateAccountsViaBalanceChecker(
addresses,
SINGLE_CALL_BALANCES_ADDRESS_ROPSTEN,
);
break;
case KOVAN_CHAIN_ID:
await this._updateAccountsViaBalanceChecker(
addresses,
SINGLE_CALL_BALANCES_ADDRESS_KOVAN,
);
break;
case GOERLI_CHAIN_ID:
await this._updateAccountsViaBalanceChecker(
addresses,

@ -3,10 +3,7 @@ import log from 'loglevel';
import { SWAPS_API_V2_BASE_URL } from '../../../shared/constants/swaps';
import {
GOERLI_CHAIN_ID,
KOVAN_CHAIN_ID,
MAINNET_CHAIN_ID,
RINKEBY_CHAIN_ID,
ROPSTEN_CHAIN_ID,
SEPOLIA_CHAIN_ID,
BUYABLE_CHAINS_MAP,
} from '../../../shared/constants/network';
@ -165,10 +162,6 @@ export default async function getBuyUrl({ chainId, address, service }) {
return createCoinbasePayUrl(address, chainId);
case 'metamask-faucet':
return 'https://faucet.metamask.io/';
case 'rinkeby-faucet':
return 'https://www.rinkeby.io/';
case 'kovan-faucet':
return 'https://github.com/kovan-testnet/faucet';
case 'goerli-faucet':
return 'https://goerli-faucet.slock.it/';
case 'sepolia-faucet':
@ -184,12 +177,6 @@ function getDefaultServiceForChain(chainId) {
switch (chainId) {
case MAINNET_CHAIN_ID:
return 'wyre';
case ROPSTEN_CHAIN_ID:
return 'metamask-faucet';
case RINKEBY_CHAIN_ID:
return 'rinkeby-faucet';
case KOVAN_CHAIN_ID:
return 'kovan-faucet';
case GOERLI_CHAIN_ID:
return 'goerli-faucet';
case SEPOLIA_CHAIN_ID:

@ -1,9 +1,6 @@
import nock from 'nock';
import {
KOVAN_CHAIN_ID,
MAINNET_CHAIN_ID,
RINKEBY_CHAIN_ID,
ROPSTEN_CHAIN_ID,
BSC_CHAIN_ID,
POLYGON_CHAIN_ID,
ETH_SYMBOL,
@ -20,15 +17,6 @@ const MAINNET = {
amount: 5,
address: ETH_ADDRESS,
};
const ROPSTEN = {
chainId: ROPSTEN_CHAIN_ID,
};
const RINKEBY = {
chainId: RINKEBY_CHAIN_ID,
};
const KOVAN = {
chainId: KOVAN_CHAIN_ID,
};
const BSC = {
chainId: BSC_CHAIN_ID,
amount: 5,
@ -100,21 +88,6 @@ describe('buy-url', () => {
);
});
it('returns metamask ropsten faucet for network 3', async () => {
const ropstenUrl = await getBuyUrl(ROPSTEN);
expect(ropstenUrl).toStrictEqual('https://faucet.metamask.io/');
});
it('returns rinkeby dapp for network 4', async () => {
const rinkebyUrl = await getBuyUrl(RINKEBY);
expect(rinkebyUrl).toStrictEqual('https://www.rinkeby.io/');
});
it('returns kovan github test faucet for network 42', async () => {
const kovanUrl = await getBuyUrl(KOVAN);
expect(kovanUrl).toStrictEqual('https://github.com/kovan-testnet/faucet');
});
it('returns a MoonPay url with a prefilled wallet address for the Ethereum network', async () => {
const { moonPay: { defaultCurrencyCode, showOnlyCurrencies } = {} } =
BUYABLE_CHAINS_MAP[MAINNET.chainId];

@ -80,7 +80,7 @@ function getRegistryForChainId(chainId) {
case 4:
case 5:
case 6:
// Mainnet, Ropsten, Rinkeby, and Goerli, respectively, use the same address
// Mainnet and Goerli, respectively, use the same address
return '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e';
default:
return null;

@ -2403,7 +2403,6 @@ export default class MetamaskController extends EventEmitter {
* @type Identity
* @property {string} name - The account nickname.
* @property {string} address - The account's ethereum address, in lower case.
* @property {boolean} mayBeFauceting - Whether this account is currently
* receiving funds from our automatic Ropsten faucet.
*/

@ -120,7 +120,7 @@ const MetaMaskController = proxyquire('./metamask-controller', {
'./lib/createLoggerMiddleware': { default: createLoggerMiddlewareMock },
}).default;
const currentNetworkId = '42';
const currentNetworkId = '5';
const DEFAULT_LABEL = 'Account 1';
const TEST_SEED =
'debris dizzy just program just float decrease vacant alarm reduce speak stadium';

@ -2,15 +2,9 @@ import { cloneDeep } from 'lodash';
import {
GOERLI,
GOERLI_CHAIN_ID,
KOVAN,
KOVAN_CHAIN_ID,
MAINNET,
MAINNET_CHAIN_ID,
NETWORK_TYPE_RPC,
RINKEBY,
RINKEBY_CHAIN_ID,
ROPSTEN,
ROPSTEN_CHAIN_ID,
} from '../../../shared/constants/network';
const version = 52;
@ -55,21 +49,18 @@ function transformState(state = {}) {
newAccountTokens[address][MAINNET_CHAIN_ID] =
accountTokens[address][MAINNET];
break;
case ROPSTEN:
newAccountTokens[address][ROPSTEN_CHAIN_ID] =
accountTokens[address][ROPSTEN];
case 'ropsten':
newAccountTokens[address]['0x3'] = accountTokens[address].ropsten;
break;
case RINKEBY:
newAccountTokens[address][RINKEBY_CHAIN_ID] =
accountTokens[address][RINKEBY];
case 'rinkeby':
newAccountTokens[address]['0x4'] = accountTokens[address].rinkeby;
break;
case GOERLI:
newAccountTokens[address][GOERLI_CHAIN_ID] =
accountTokens[address][GOERLI];
break;
case KOVAN:
newAccountTokens[address][KOVAN_CHAIN_ID] =
accountTokens[address][KOVAN];
case 'kovan':
newAccountTokens[address]['0x2a'] = accountTokens[address].kovan;
break;
default:
break;
@ -94,21 +85,21 @@ function transformState(state = {}) {
newAccountHiddenTokens[address][MAINNET_CHAIN_ID] =
accountHiddenTokens[address][MAINNET];
break;
case ROPSTEN:
newAccountHiddenTokens[address][ROPSTEN_CHAIN_ID] =
accountHiddenTokens[address][ROPSTEN];
case 'ropsten':
newAccountHiddenTokens[address]['0x3'] =
accountHiddenTokens[address].ropsten;
break;
case RINKEBY:
newAccountHiddenTokens[address][RINKEBY_CHAIN_ID] =
accountHiddenTokens[address][RINKEBY];
case 'rinkeby':
newAccountHiddenTokens[address]['0x4'] =
accountHiddenTokens[address].rinkeby;
break;
case GOERLI:
newAccountHiddenTokens[address][GOERLI_CHAIN_ID] =
accountHiddenTokens[address][GOERLI];
break;
case KOVAN:
newAccountHiddenTokens[address][KOVAN_CHAIN_ID] =
accountHiddenTokens[address][KOVAN];
case 'kovan':
newAccountHiddenTokens[address]['0x2a'] =
accountHiddenTokens[address].kovan;
break;
default:
break;

@ -1,15 +1,9 @@
import {
GOERLI,
GOERLI_CHAIN_ID,
KOVAN,
KOVAN_CHAIN_ID,
MAINNET,
MAINNET_CHAIN_ID,
NETWORK_TYPE_RPC,
RINKEBY,
RINKEBY_CHAIN_ID,
ROPSTEN,
ROPSTEN_CHAIN_ID,
} from '../../../shared/constants/network';
import migration52 from './052';
@ -85,25 +79,25 @@ describe('migration #52', () => {
});
});
it(`should move ${RINKEBY} tokens and hidden tokens to be keyed by ${RINKEBY_CHAIN_ID} for each address`, async () => {
it(`should move rinkeby tokens and hidden tokens to be keyed by '0x4' for each address`, async () => {
const oldStorage = {
meta: {},
data: {
PreferencesController: {
accountHiddenTokens: {
'0x1111': {
[RINKEBY]: [TOKEN1],
rinkeby: [TOKEN1],
},
'0x1112': {
[RINKEBY]: [TOKEN3],
rinkeby: [TOKEN3],
},
},
accountTokens: {
'0x1111': {
[RINKEBY]: [TOKEN1, TOKEN2],
rinkeby: [TOKEN1, TOKEN2],
},
'0x1112': {
[RINKEBY]: [TOKEN1, TOKEN3],
rinkeby: [TOKEN1, TOKEN3],
},
},
bar: 'baz',
@ -117,18 +111,18 @@ describe('migration #52', () => {
PreferencesController: {
accountHiddenTokens: {
'0x1111': {
[RINKEBY_CHAIN_ID]: [TOKEN1],
'0x4': [TOKEN1],
},
'0x1112': {
[RINKEBY_CHAIN_ID]: [TOKEN3],
'0x4': [TOKEN3],
},
},
accountTokens: {
'0x1111': {
[RINKEBY_CHAIN_ID]: [TOKEN1, TOKEN2],
'0x4': [TOKEN1, TOKEN2],
},
'0x1112': {
[RINKEBY_CHAIN_ID]: [TOKEN1, TOKEN3],
'0x4': [TOKEN1, TOKEN3],
},
},
bar: 'baz',
@ -137,25 +131,25 @@ describe('migration #52', () => {
});
});
it(`should move ${KOVAN} tokens and hidden tokens to be keyed by ${KOVAN_CHAIN_ID} for each address`, async () => {
it(`should move kovan tokens and hidden tokens to be keyed by 0x2a for each address`, async () => {
const oldStorage = {
meta: {},
data: {
PreferencesController: {
accountHiddenTokens: {
'0x1111': {
[KOVAN]: [TOKEN1],
kovan: [TOKEN1],
},
'0x1112': {
[KOVAN]: [TOKEN3],
kovan: [TOKEN3],
},
},
accountTokens: {
'0x1111': {
[KOVAN]: [TOKEN1, TOKEN2],
kovan: [TOKEN1, TOKEN2],
},
'0x1112': {
[KOVAN]: [TOKEN1, TOKEN3],
kovan: [TOKEN1, TOKEN3],
},
},
bar: 'baz',
@ -169,18 +163,18 @@ describe('migration #52', () => {
PreferencesController: {
accountHiddenTokens: {
'0x1111': {
[KOVAN_CHAIN_ID]: [TOKEN1],
'0x2a': [TOKEN1],
},
'0x1112': {
[KOVAN_CHAIN_ID]: [TOKEN3],
'0x2a': [TOKEN3],
},
},
accountTokens: {
'0x1111': {
[KOVAN_CHAIN_ID]: [TOKEN1, TOKEN2],
'0x2a': [TOKEN1, TOKEN2],
},
'0x1112': {
[KOVAN_CHAIN_ID]: [TOKEN1, TOKEN3],
'0x2a': [TOKEN1, TOKEN3],
},
},
bar: 'baz',
@ -241,25 +235,25 @@ describe('migration #52', () => {
});
});
it(`should move ${ROPSTEN} tokens and hidden tokens to be keyed by ${ROPSTEN_CHAIN_ID} for each address`, async () => {
it(`should move ropsten tokens and hidden tokens to be keyed by 0x3 for each address`, async () => {
const oldStorage = {
meta: {},
data: {
PreferencesController: {
accountHiddenTokens: {
'0x1111': {
[ROPSTEN]: [TOKEN1],
ropsten: [TOKEN1],
},
'0x1112': {
[ROPSTEN]: [TOKEN3],
ropsten: [TOKEN3],
},
},
accountTokens: {
'0x1111': {
[ROPSTEN]: [TOKEN1, TOKEN2],
ropsten: [TOKEN1, TOKEN2],
},
'0x1112': {
[ROPSTEN]: [TOKEN1, TOKEN3],
ropsten: [TOKEN1, TOKEN3],
},
},
bar: 'baz',
@ -273,18 +267,18 @@ describe('migration #52', () => {
PreferencesController: {
accountHiddenTokens: {
'0x1111': {
[ROPSTEN_CHAIN_ID]: [TOKEN1],
'0x3': [TOKEN1],
},
'0x1112': {
[ROPSTEN_CHAIN_ID]: [TOKEN3],
'0x3': [TOKEN3],
},
},
accountTokens: {
'0x1111': {
[ROPSTEN_CHAIN_ID]: [TOKEN1, TOKEN2],
'0x3': [TOKEN1, TOKEN2],
},
'0x1112': {
[ROPSTEN_CHAIN_ID]: [TOKEN1, TOKEN3],
'0x3': [TOKEN1, TOKEN3],
},
},
bar: 'baz',

@ -1,7 +1,4 @@
import {
MAINNET_CHAIN_ID,
ROPSTEN_CHAIN_ID,
} from '../../../shared/constants/network';
import { MAINNET_CHAIN_ID } from '../../../shared/constants/network';
import migration54 from './054';
describe('migration #54', () => {
@ -174,7 +171,7 @@ describe('migration #54', () => {
],
},
'0x1112': {
[ROPSTEN_CHAIN_ID]: [
'0x3': [
{
address: '0x06012c8cf97bead5deae237070f9587f8e7a266d',
decimals: '0',
@ -232,7 +229,7 @@ describe('migration #54', () => {
],
},
'0x1112': {
[ROPSTEN_CHAIN_ID]: [
'0x3': [
{
address: '0x06012c8cf97bead5deae237070f9587f8e7a266d',
decimals: 0,
@ -292,7 +289,7 @@ describe('migration #54', () => {
],
},
'0x1112': {
[ROPSTEN_CHAIN_ID]: [
'0x3': [
{
address: '0x06012c8cf97bead5deae237070f9587f8e7a266d',
decimals: 0,
@ -350,7 +347,7 @@ describe('migration #54', () => {
],
},
'0x1112': {
[ROPSTEN_CHAIN_ID]: [
'0x3': [
{
address: '0x06012c8cf97bead5deae237070f9587f8e7a266d',
decimals: 0,
@ -410,7 +407,7 @@ describe('migration #54', () => {
],
},
'0x1112': {
[ROPSTEN_CHAIN_ID]: [
'0x3': [
{
address: '0x06012c8cf97bead5deae237070f9587f8e7a266d',
decimals: '0',
@ -489,7 +486,7 @@ describe('migration #54', () => {
],
},
'0x1112': {
[ROPSTEN_CHAIN_ID]: [
'0x3': [
{
address: '0x06012c8cf97bead5deae237070f9587f8e7a266d',
decimals: 0,
@ -570,7 +567,7 @@ describe('migration #54', () => {
],
},
'0x1112': {
[ROPSTEN_CHAIN_ID]: [
'0x3': [
{
address: '0x06012c8cf97bead5deae237070f9587f8e7a266d',
decimals: '0',
@ -644,7 +641,7 @@ describe('migration #54', () => {
],
},
'0x1112': {
[ROPSTEN_CHAIN_ID]: [
'0x3': [
{
address: '0x06012c8cf97bead5deae237070f9587f8e7a266d',
decimals: 0,

@ -19,6 +19,24 @@ export default {
const UNKNOWN_CHAIN_ID_KEY = 'UNKNOWN';
const BUILT_IN_NETWORKS = {};
BUILT_IN_NETWORKS.rinkeby = {
networkId: '4',
chainId: '0x4',
ticker: 'ETH',
};
BUILT_IN_NETWORKS.ropsten = {
networkId: '3',
chainId: '0x3',
ticker: 'ETH',
};
BUILT_IN_NETWORKS.kovan = {
networkId: '42',
chainId: '0x2a',
ticker: 'ETH',
};
function transformState(state) {
if (
state?.IncomingTransactionsController?.incomingTxLastFetchedBlocksByNetwork

@ -1,14 +1,8 @@
import {
GOERLI,
GOERLI_CHAIN_ID,
KOVAN,
KOVAN_CHAIN_ID,
MAINNET,
MAINNET_CHAIN_ID,
RINKEBY,
RINKEBY_CHAIN_ID,
ROPSTEN,
ROPSTEN_CHAIN_ID,
} from '../../../shared/constants/network';
import migration55 from './055';
@ -42,10 +36,10 @@ describe('migration #55', () => {
},
incomingTxLastFetchedBlocksByNetwork: {
[MAINNET]: 1,
[ROPSTEN]: 2,
[RINKEBY]: 3,
ropsten: 2,
rinkeby: 3,
[GOERLI]: 4,
[KOVAN]: 5,
kovan: 5,
},
},
foo: 'bar',
@ -59,10 +53,10 @@ describe('migration #55', () => {
oldStorage.data.IncomingTransactionsController.incomingTransactions,
incomingTxLastFetchedBlockByChainId: {
[MAINNET_CHAIN_ID]: 1,
[ROPSTEN_CHAIN_ID]: 2,
[RINKEBY_CHAIN_ID]: 3,
'0x3': 2,
'0x4': 3,
[GOERLI_CHAIN_ID]: 4,
[KOVAN_CHAIN_ID]: 5,
'0x2a': 5,
},
},
foo: 'bar',

@ -1,8 +1,6 @@
import { cloneDeep } from 'lodash';
import {
KOVAN_CHAIN_ID,
MAINNET_CHAIN_ID,
RINKEBY_CHAIN_ID,
GOERLI_CHAIN_ID,
} from '../../../shared/constants/network';
import {
@ -33,7 +31,7 @@ const ERRONEOUS_TRANSACTION_STATE = {
2: {
type: SENT_ETHER,
id: 2,
chainId: KOVAN_CHAIN_ID,
chainId: '0x2a',
txParams: {
nonce: '0x2',
},
@ -41,7 +39,7 @@ const ERRONEOUS_TRANSACTION_STATE = {
3: {
type: SENT_ETHER,
id: 3,
chainId: RINKEBY_CHAIN_ID,
chainId: '0x4',
txParams: {
nonce: '0x3',
},
@ -49,7 +47,7 @@ const ERRONEOUS_TRANSACTION_STATE = {
4: {
type: SENT_ETHER,
id: 4,
chainId: RINKEBY_CHAIN_ID,
chainId: '0x4',
txParams: {
nonce: '0x4',
},
@ -65,7 +63,7 @@ const ERRONEOUS_TRANSACTION_STATE = {
6: {
type: SENT_ETHER,
id: 6,
chainId: KOVAN_CHAIN_ID,
chainId: '0x2a',
txParams: {
nonce: '0x6',
},
@ -73,7 +71,7 @@ const ERRONEOUS_TRANSACTION_STATE = {
7: {
type: SENT_ETHER,
id: 7,
chainId: RINKEBY_CHAIN_ID,
chainId: '0x4',
txParams: {
nonce: '0x7',
},
@ -81,7 +79,7 @@ const ERRONEOUS_TRANSACTION_STATE = {
8: {
type: SENT_ETHER,
id: 8,
chainId: RINKEBY_CHAIN_ID,
chainId: '0x4',
txParams: {
nonce: '0x8',
},
@ -89,7 +87,7 @@ const ERRONEOUS_TRANSACTION_STATE = {
9: {
type: SENT_ETHER,
id: 9,
chainId: RINKEBY_CHAIN_ID,
chainId: '0x4',
status: TRANSACTION_STATUSES.UNAPPROVED,
},
};

@ -0,0 +1,132 @@
import { cloneDeep, uniq } from 'lodash';
import BigNumber from 'bignumber.js';
import { getRpcUrl } from '../../../shared/constants/network';
const version = 74;
const hexNumberIsGreaterThanZero = (hexNumber) =>
new BigNumber(hexNumber || '0x0', 16).gt(0);
const DEPRECATED_TEST_NET_CHAINIDS = ['0x3', '0x2a', '0x4'];
const DEPRECATED_TEST_NET_DETAILS = {
'0x3': {
rpcUrl: getRpcUrl({ network: 'ropsten' }),
nickname: 'Ropsten',
ticker: 'RopstenETH',
},
'0x2a': {
rpcUrl: getRpcUrl({ network: 'kovan' }),
nickname: 'Kovan',
ticker: 'KovanETH',
},
'0x4': {
rpcUrl: getRpcUrl({ network: 'rinkeby' }),
nickname: 'Rinkeby',
ticker: 'RinkebyETH',
},
};
/**
* Migrates the user default but deprecated testnet networks to custom networks, and
* if the current network is one such network, updates the network provider details so that it
* will work as a custom rpc
*/
export default {
version,
async migrate(originalVersionedData) {
const versionedData = cloneDeep(originalVersionedData);
versionedData.meta.version = version;
const state = versionedData.data;
const newState = transformState(state);
versionedData.data = newState;
return versionedData;
},
};
function transformState(state) {
const PreferencesController = state?.PreferencesController || {};
const preferences = PreferencesController.preferences || {};
const NetworkController = state?.NetworkController || {};
const provider = NetworkController?.provider || {};
const currentlyOnDeprecatedNetwork = DEPRECATED_TEST_NET_CHAINIDS.filter(
(chainId) => chainId === provider?.chainId,
);
// If the user does not want to see test networks, and if the the user is not on a deprecated test network, then
// no need to migrate the test network data to a custom network
if (
!preferences.showTestNetworks &&
currentlyOnDeprecatedNetwork.length === 0
) {
return state;
}
const transactions = state?.TransactionController?.transactions || {};
const cachedBalances = state.CachedBalancesController?.cachedBalances || {};
const deprecatedTestnetsOnWhichTheUserHasMadeATransaction = Object.values(
transactions,
)
.filter(({ chainId }) => DEPRECATED_TEST_NET_CHAINIDS.includes(chainId))
.map(({ chainId }) => chainId);
const deprecatedTestnetsOnWhichTheUserHasCachedBalance =
DEPRECATED_TEST_NET_CHAINIDS.filter((chainId) => {
const cachedBalancesForChain = Object.values(
cachedBalances[chainId] || {},
);
const userHasABalanceGreaterThanZeroOnThisChain =
cachedBalancesForChain.some(hexNumberIsGreaterThanZero);
return userHasABalanceGreaterThanZeroOnThisChain;
});
const deprecatedTestnetsThatHaveBeenUsed = uniq([
...deprecatedTestnetsOnWhichTheUserHasCachedBalance,
...deprecatedTestnetsOnWhichTheUserHasMadeATransaction,
...currentlyOnDeprecatedNetwork,
]);
const newFrequentRpcListDetail =
PreferencesController.frequentRpcListDetail ?? [];
deprecatedTestnetsThatHaveBeenUsed.forEach((chainId) => {
if (
!newFrequentRpcListDetail.find(
(rpcDetails) => rpcDetails.chainId === chainId,
)
) {
newFrequentRpcListDetail.unshift({
rpcUrl: DEPRECATED_TEST_NET_DETAILS[chainId].rpcUrl,
chainId,
ticker: DEPRECATED_TEST_NET_DETAILS[chainId].ticker,
nickname: DEPRECATED_TEST_NET_DETAILS[chainId].nickname,
rpcPrefs: {},
});
}
});
if (newFrequentRpcListDetail.length) {
PreferencesController.frequentRpcListDetail = newFrequentRpcListDetail;
}
if (currentlyOnDeprecatedNetwork.length) {
const selectedNetworkChainId = currentlyOnDeprecatedNetwork[0];
NetworkController.provider = {
...NetworkController.provider,
type: 'rpc',
rpcUrl: DEPRECATED_TEST_NET_DETAILS[selectedNetworkChainId].rpcUrl,
chainId: selectedNetworkChainId,
nickname: DEPRECATED_TEST_NET_DETAILS[selectedNetworkChainId].nickname,
ticker: DEPRECATED_TEST_NET_DETAILS[selectedNetworkChainId].ticker,
};
}
return {
...state,
PreferencesController: {
...PreferencesController,
},
NetworkController: {
...NetworkController,
},
};
}

@ -0,0 +1,561 @@
import migration74 from './074';
describe('migration #74', () => {
it('should update the version metadata', async () => {
const oldStorage = {
meta: {
version: 73,
},
data: {},
};
const newStorage = await migration74.migrate(oldStorage);
expect(newStorage.meta).toStrictEqual({
version: 74,
});
});
it('should add a deprecated testnet to custom networks if that network is currently selected and modify the provider', async () => {
const oldStorage = {
meta: {
version: 73,
},
data: {
NetworkController: {
provider: {
chainId: '0x4',
type: 'rinkeby',
},
},
},
};
const newStorage = await migration74.migrate(oldStorage);
expect(newStorage).toStrictEqual({
meta: {
version: 74,
},
data: {
NetworkController: {
provider: {
chainId: '0x4',
type: 'rpc',
rpcUrl: `https://rinkeby.infura.io/v3/${process.env.INFURA_PROJECT_ID}`,
nickname: 'Rinkeby',
ticker: 'RinkebyETH',
},
},
PreferencesController: {
frequentRpcListDetail: [
{
rpcUrl: `https://rinkeby.infura.io/v3/${process.env.INFURA_PROJECT_ID}`,
chainId: '0x4',
nickname: 'Rinkeby',
ticker: 'RinkebyETH',
rpcPrefs: {},
},
],
},
},
});
});
it('should not add a deprecated testnet to custom networks if no deprecated testnet is selected', async () => {
const oldStorage = {
meta: {
version: 73,
},
data: {
NetworkController: {
provider: {
chainId: '0xabc',
},
},
PreferencesController: {
preferences: {
showTestNetworks: true,
},
},
},
};
const newStorage = await migration74.migrate(oldStorage);
expect(newStorage).toStrictEqual({
meta: {
version: 74,
},
data: {
NetworkController: {
provider: {
chainId: '0xabc',
},
},
PreferencesController: {
preferences: {
showTestNetworks: true,
},
},
},
});
});
it('should add a deprecated testnet to custom networks if a transaction has been sent from that network', async () => {
const oldStorage = {
meta: {
version: 73,
},
data: {
NetworkController: {
provider: {
chainId: '0x1',
},
},
TransactionController: {
transactions: {
1: {
chainId: '0x3',
},
2: {
chainId: '0x4',
},
3: {
chainId: '0xabc',
},
},
},
PreferencesController: {
preferences: {
showTestNetworks: true,
},
},
},
};
const newStorage = await migration74.migrate(oldStorage);
expect(newStorage).toStrictEqual({
meta: {
version: 74,
},
data: {
NetworkController: {
provider: {
chainId: '0x1',
},
},
PreferencesController: {
frequentRpcListDetail: [
{
rpcUrl: `https://rinkeby.infura.io/v3/${process.env.INFURA_PROJECT_ID}`,
chainId: '0x4',
nickname: 'Rinkeby',
ticker: 'RinkebyETH',
rpcPrefs: {},
},
{
rpcUrl: `https://ropsten.infura.io/v3/${process.env.INFURA_PROJECT_ID}`,
chainId: '0x3',
nickname: 'Ropsten',
ticker: 'RopstenETH',
rpcPrefs: {},
},
],
preferences: {
showTestNetworks: true,
},
},
TransactionController: {
transactions: {
1: {
chainId: '0x3',
},
2: {
chainId: '0x4',
},
3: {
chainId: '0xabc',
},
},
},
},
});
});
it('should add a deprecated testnet to custom networks if there is balance on that network', async () => {
const oldStorage = {
meta: {
version: 73,
},
data: {
NetworkController: {
provider: {
chainId: '0x1',
},
},
PreferencesController: {
preferences: {
showTestNetworks: true,
},
},
CachedBalancesController: {
cachedBalances: {
'0x2a': {
'0x123456789': '0x1',
},
},
},
},
};
const newStorage = await migration74.migrate(oldStorage);
expect(newStorage).toStrictEqual({
meta: {
version: 74,
},
data: {
NetworkController: {
provider: {
chainId: '0x1',
},
},
PreferencesController: {
frequentRpcListDetail: [
{
rpcUrl: `https://kovan.infura.io/v3/${process.env.INFURA_PROJECT_ID}`,
chainId: '0x2a',
nickname: 'Kovan',
ticker: 'KovanETH',
rpcPrefs: {},
},
],
preferences: {
showTestNetworks: true,
},
},
CachedBalancesController: {
cachedBalances: {
'0x2a': {
'0x123456789': '0x1',
},
},
},
},
});
});
it('should add all three deprecated testnets to custom networks if each has a different reason for being added', async () => {
const oldStorage = {
meta: {
version: 73,
},
data: {
NetworkController: {
provider: {
chainId: '0x2a',
},
},
TransactionController: {
transactions: {
1: {
chainId: '0x3',
},
},
},
PreferencesController: {
preferences: {
showTestNetworks: true,
},
},
CachedBalancesController: {
cachedBalances: {
'0x4': {
'0x123456789': '0x1',
},
},
},
},
};
const newStorage = await migration74.migrate(oldStorage);
expect(newStorage).toStrictEqual({
meta: {
version: 74,
},
data: {
NetworkController: {
provider: {
rpcUrl: `https://kovan.infura.io/v3/${process.env.INFURA_PROJECT_ID}`,
chainId: '0x2a',
nickname: 'Kovan',
ticker: 'KovanETH',
type: 'rpc',
},
},
PreferencesController: {
frequentRpcListDetail: [
{
rpcUrl: `https://kovan.infura.io/v3/${process.env.INFURA_PROJECT_ID}`,
chainId: '0x2a',
nickname: 'Kovan',
ticker: 'KovanETH',
rpcPrefs: {},
},
{
rpcUrl: `https://ropsten.infura.io/v3/${process.env.INFURA_PROJECT_ID}`,
chainId: '0x3',
nickname: 'Ropsten',
ticker: 'RopstenETH',
rpcPrefs: {},
},
{
rpcUrl: `https://rinkeby.infura.io/v3/${process.env.INFURA_PROJECT_ID}`,
chainId: '0x4',
nickname: 'Rinkeby',
ticker: 'RinkebyETH',
rpcPrefs: {},
},
],
preferences: {
showTestNetworks: true,
},
},
CachedBalancesController: {
cachedBalances: {
'0x4': {
'0x123456789': '0x1',
},
},
},
TransactionController: {
transactions: {
1: {
chainId: '0x3',
},
},
},
},
});
});
it('should not add deprecated testnets to custom networks if none is selected and showTestNetworks is false', async () => {
const oldStorage = {
meta: {
version: 73,
},
data: {
NetworkController: {
provider: {
chainId: '0xabc',
},
},
TransactionController: {
transactions: {
1: {
chainId: '0x3',
},
},
},
PreferencesController: {
preferences: {
showTestNetworks: false,
},
},
CachedBalancesController: {
cachedBalances: {
'0x4': {
'0x123456789': '0x1',
},
},
},
},
};
const newStorage = await migration74.migrate(oldStorage);
expect(newStorage).toStrictEqual({
meta: {
version: 74,
},
data: {
NetworkController: {
provider: {
chainId: '0xabc',
},
},
PreferencesController: {
preferences: {
showTestNetworks: false,
},
},
CachedBalancesController: {
cachedBalances: {
'0x4': {
'0x123456789': '0x1',
},
},
},
TransactionController: {
transactions: {
1: {
chainId: '0x3',
},
},
},
},
});
});
it('should not alter or remove existing custom networks when no deprecated testnets are being added', async () => {
const oldStorage = {
meta: {
version: 73,
},
data: {
NetworkController: {
provider: {
chainId: '0xabc',
},
},
TransactionController: {
transactions: {
1: {
chainId: '0x3',
},
},
},
PreferencesController: {
frequentRpcListDetail: [
{
rpcUrl: `https://example.com`,
chainId: '0xdef',
ticker: 'ETH',
nickname: 'Kovan',
rpcPrefs: {},
},
],
preferences: {
showTestNetworks: false,
},
},
CachedBalancesController: {
cachedBalances: {
'0x4': {
'0x123456789': '0x1',
},
},
},
},
};
const newStorage = await migration74.migrate(oldStorage);
expect(newStorage).toStrictEqual({
meta: {
version: 74,
},
data: {
NetworkController: {
provider: {
chainId: '0xabc',
},
},
PreferencesController: {
frequentRpcListDetail: [
{
rpcUrl: `https://example.com`,
chainId: '0xdef',
ticker: 'ETH',
nickname: 'Kovan',
rpcPrefs: {},
},
],
preferences: {
showTestNetworks: false,
},
},
CachedBalancesController: {
cachedBalances: {
'0x4': {
'0x123456789': '0x1',
},
},
},
TransactionController: {
transactions: {
1: {
chainId: '0x3',
},
},
},
},
});
});
it('should not modify an existing custom network with the same chainId as a deprecated testnet', async () => {
const oldStorage = {
meta: {
version: 73,
},
data: {
NetworkController: {
provider: {
chainId: '0x1',
},
},
TransactionController: {
transactions: {
1: {
chainId: '0x3',
},
},
},
PreferencesController: {
preferences: {
showTestNetworks: true,
},
frequentRpcListDetail: [
{
rpcUrl: `https://example.com`,
chainId: '0x3',
ticker: 'ETH',
nickname: 'Ropsten',
rpcPrefs: {},
},
],
},
},
};
const newStorage = await migration74.migrate(oldStorage);
expect(newStorage).toStrictEqual({
meta: {
version: 74,
},
data: {
NetworkController: {
provider: {
chainId: '0x1',
},
},
TransactionController: {
transactions: {
1: {
chainId: '0x3',
},
},
},
PreferencesController: {
preferences: {
showTestNetworks: true,
},
frequentRpcListDetail: [
{
rpcUrl: `https://example.com`,
chainId: '0x3',
ticker: 'ETH',
nickname: 'Ropsten',
rpcPrefs: {},
},
],
},
},
});
});
});

@ -77,6 +77,7 @@ import m070 from './070';
import m071 from './071';
import m072 from './072';
import m073 from './073';
import m074 from './074';
const migrations = [
m002,
@ -151,6 +152,7 @@ const migrations = [
m071,
m072,
m073,
m074,
];
export default migrations;

@ -149,11 +149,6 @@ describe('wallet1 is migrated successfully', () => {
'testnet',
);
return migration13.migrate(twelfthResult);
})
.then((thirteenthResult) => {
expect(thirteenthResult.data.config.provider.type).toStrictEqual(
'ropsten',
);
});
});
});

@ -229,7 +229,7 @@
"useETHAsPrimaryCurrency": true
},
"provider": {
"type": "rinkeby"
"type": "goerli"
},
"network": "4",
"accounts": {
@ -276,7 +276,7 @@
"0x8cf82b5aa41ff2282427be151dd328568684007a": {},
"0xbe1a00e10ec68b154adb84e8119167146a71c9a2": {},
"0xe2f12a09ba1098312a7d1cad7581ed253ca5f4b2": {
"rinkeby": [
"goerli": [
{
"address": "0xe0b7927c4af23765cb51314a0e0521a9645f0e2a",
"decimals": 9,
@ -305,10 +305,7 @@
"conversionDate": 1538859376,
"shapeShiftTxList": [],
"infuraNetworkStatus": {
"kovan": "ok",
"mainnet": "ok",
"rinkeby": "ok",
"ropsten": "ok",
"goerli": "ok",
"sepolia": "ok"
}

@ -0,0 +1,930 @@
import { capitalize } from 'lodash';
/**
* A type representing any valid value for 'type' for setProviderType and other
* methods that add or manipulate networks in MetaMask state.
*/
export type NetworkType = typeof NETWORK_TYPES[keyof typeof NETWORK_TYPES];
/**
* A union type of all possible hard-coded chain ids. This type is not
* exhaustive and cannot be used for typing chainId in areas where the user or
* dapp may specify any chainId.
*/
export type ChainId = typeof CHAIN_IDS[keyof typeof CHAIN_IDS];
/**
* A type that is a union type of all possible hardcoded currency symbols.
* This type is non-exhaustive, and cannot be used for areas where the user
* or dapp may supply their own symbol.
*/
type CurrencySymbol = typeof CURRENCY_SYMBOLS[keyof typeof CURRENCY_SYMBOLS];
/**
* A type that is a union type for the supported symbols on different onramp providers.
*/
type SupportedCurrencySymbol =
typeof SUPPORTED_CURRENCY_SYMBOLS[keyof typeof SUPPORTED_CURRENCY_SYMBOLS];
/**
* Test networks have special symbols that combine the network name and 'ETH'
* so that they are distinct from mainnet and other networks that use 'ETH'.
*/
export type TestNetworkCurrencySymbol =
typeof TEST_NETWORK_TICKER_MAP[keyof typeof TEST_NETWORK_TICKER_MAP];
/**
* MoonPay is a fiat onramp provider, and there are some special strings that
* inform the MoonPay API which network the user is attempting to onramp into.
* This type reflects those possible values.
*/
type MoonPayNetworkAbbreviation = 'BSC' | 'CCHAIN' | 'POLYGON';
/**
* MoonPay requires some settings that are configured per network that it is
* enabled on. This type describes those settings.
*/
type MoonPayChainSettings = {
/**
* What should the default onramp currency be, for example 'eth' on 'mainnet'
* This type matches a single SupportedCurrencySymbol or a
* SupportedCurrencySymbol and a MoonPayNetworkAbbreviation joined by a '_'.
*/
defaultCurrencyCode:
| SupportedCurrencySymbol
| `${SupportedCurrencySymbol}_${MoonPayNetworkAbbreviation}`;
/**
* We must also configure all possible onramp currencies we wish to support.
* This type matches either an array of SupportedCurrencySymbol or
* an array of SupportedCurrencySymbol and a MoonPayNetworkAbbreviation joined by a '_'.
*/
showOnlyCurrencies:
| SupportedCurrencySymbol[]
| `${SupportedCurrencySymbol}_${MoonPayNetworkAbbreviation}`[];
};
/**
* An object containing preferences for an RPC definition
*/
type RPCPreferences = {
/**
* A URL for the block explorer for the RPC's network
*/
blockExplorerUrl: `https://${string}`;
/**
* A image reflecting the asset symbol for the network
*/
imageUrl: string;
};
/**
* An object that describes a network to be used inside of MetaMask
*/
type RPCDefinition = {
/**
* The hex encoded ChainId for the network
*/
chainId: ChainId;
/**
* The nickname for the network
*/
nickname: string;
/**
* The URL for the client to send network requests to
*/
rpcUrl: `https://${string}`;
/**
* The Currency Symbol for the network
*/
ticker: string;
/**
* Additional preferences for the network, such as blockExplorerUrl
*/
rpcPrefs: RPCPreferences;
};
/**
* Wyre is a fiat onramp provider. We must provide some settings for networks
* that support Wyre.
*/
type WyreChainSettings = {
/**
* The network name
*/
srn: string;
/**
* The native currency for the network
*/
currencyCode: CurrencySymbol;
/**
* The list of supported currencies for the Wyre onramp provider
*/
currencies: SupportedCurrencySymbol[];
};
/**
* For each chain that we support fiat onramps for, we provide a set of
* configuration options that help for initializing the connectiong to the
* onramp providers.
*/
type BuyableChainSettings = {
/**
* The native currency for the given chain
*/
nativeCurrency: CurrencySymbol | TestNetworkCurrencySymbol;
/**
* The network name or identifier
*/
network: string;
/**
* The list of supported currencies for the Transak onramp provider
*/
transakCurrencies?: SupportedCurrencySymbol[];
/**
* A configuration object for the MoonPay onramp provider
*/
moonPay?: MoonPayChainSettings;
/**
* A configuration object for the Wyre onramp provider
*/
wyre?: WyreChainSettings;
/**
* The list of supported currencies for the CoinbasePay onramp provider
*/
coinbasePayCurrencies?: SupportedCurrencySymbol[];
};
/**
* Throughout the extension we set the current provider by referencing its
* "type", which can be any of the values in the below object. These values
* represent the built-in networks of MetaMask, including test nets, as well
* as "rpc" which is the "type" of a custom network added by the user or via
* wallet_addEthereumChain.
*/
export const NETWORK_TYPES = {
GOERLI: 'goerli',
LOCALHOST: 'localhost',
MAINNET: 'mainnet',
RPC: 'rpc',
SEPOLIA: 'sepolia',
} as const;
/**
* An object containing shortcut names for any non-builtin network. We need
* this to be able to differentiate between networks that require custom
* sections of code for our various features, such as swaps or token lists.
*/
export const NETWORK_NAMES = {
HOMESTEAD: 'homestead',
};
/**
* The Network ID for our builtin networks. This is the decimal equivalent of
* the chain id for the network, but is expresssed as a string. Many moons ago
* the decision was made on the extension team to expressly use chainId with
* hex encoding over network id. Consider that when accessing this object. Note
* for cross product purposes: alignment with mobile on this matter has not
* been fully achieved, thus it is possible for some dependencies to still
* ask for or require network id.
*/
export const NETWORK_IDS = {
MAINNET: '1',
GOERLI: '5',
LOCALHOST: '1337',
SEPOLIA: '11155111',
} as const;
/**
* An object containing all of the chain ids for networks both built in and
* those that we have added custom code to support our feature set.
*/
export const CHAIN_IDS = {
MAINNET: '0x1',
GOERLI: '0x5',
LOCALHOST: '0x539',
BSC: '0x38',
OPTIMISM: '0xa',
OPTIMISM_TESTNET: '0x1a4',
POLYGON: '0x89',
AVALANCHE: '0xa86a',
FANTOM: '0xfa',
CELO: '0xa4ec',
ARBITRUM: '0xa4b1',
HARMONY: '0x63564c40',
PALM: '0x2a15c308d',
SEPOLIA: '0xaa36a7',
} as const;
/**
* The largest possible chain ID we can handle.
* Explanation: https://gist.github.com/rekmarks/a47bd5f2525936c4b8eee31a16345553
*/
export const MAX_SAFE_CHAIN_ID = 4503599627370476;
export const MAINNET_DISPLAY_NAME = 'Ethereum Mainnet';
export const GOERLI_DISPLAY_NAME = 'Goerli';
export const SEPOLIA_DISPLAY_NAME = 'Sepolia';
export const LOCALHOST_DISPLAY_NAME = 'Localhost 8545';
export const BSC_DISPLAY_NAME = 'Binance Smart Chain';
export const POLYGON_DISPLAY_NAME = 'Polygon';
export const AVALANCHE_DISPLAY_NAME = 'Avalanche Network C-Chain';
export const ARBITRUM_DISPLAY_NAME = 'Arbitrum One';
export const BNB_DISPLAY_NAME =
'BNB Smart Chain (previously Binance Smart Chain Mainnet)';
export const OPTIMISM_DISPLAY_NAME = 'Optimism';
export const FANTOM_DISPLAY_NAME = 'Fantom Opera';
export const HARMONY_DISPLAY_NAME = 'Harmony Mainnet Shard 0';
export const PALM_DISPLAY_NAME = 'Palm';
export const infuraProjectId = process.env.INFURA_PROJECT_ID;
export const getRpcUrl = ({
network,
excludeProjectId = false,
}: {
network: NetworkType;
excludeProjectId?: boolean;
}) =>
`https://${network}.infura.io/v3/${excludeProjectId ? '' : infuraProjectId}`;
export const MAINNET_RPC_URL = getRpcUrl({
network: NETWORK_TYPES.MAINNET,
});
export const GOERLI_RPC_URL = getRpcUrl({ network: NETWORK_TYPES.GOERLI });
export const SEPOLIA_RPC_URL = getRpcUrl({ network: NETWORK_TYPES.SEPOLIA });
export const LOCALHOST_RPC_URL = 'http://localhost:8545';
/**
* An object containing the token symbols for various tokens that are either
* native currencies or those that have been special cased by the extension
* for supporting our feature set.
*/
export const CURRENCY_SYMBOLS = {
ARBITRUM: 'ETH',
AVALANCHE: 'AVAX',
BNB: 'BNB',
BUSD: 'BUSD',
CELO: 'CELO',
DAI: 'DAI',
ETH: 'ETH',
FANTOM: 'FTM',
HARMONY: 'ONE',
PALM: 'PALM',
MATIC: 'MATIC',
TEST_ETH: 'TESTETH',
USDC: 'USDC',
USDT: 'USDT',
WETH: 'WETH',
} as const;
/**
* An object containing the token symbols for various tokens that are supported
* on different on ramp providers. This object is meant for internal consumption,
* hence why it is not exported.
*/
const SUPPORTED_CURRENCY_SYMBOLS = {
...CURRENCY_SYMBOLS,
'1INCH': '1INCH',
AAVE: 'AAVE',
ABT: 'ABT',
ACH: 'ACH',
AGEUR: 'AGEUR',
AGLD: 'AGLD',
AMP: 'AMP',
ANKR: 'ANKR',
APE: 'APE',
ARPA: 'ARPA',
ASM: 'ASM',
AUCTION: 'AUCTION',
AXS: 'AXS',
AVAX: 'AVAX',
AVAXC: 'AVAXC',
AVAXCUSDC: 'AVAXCUSDC',
BADGER: 'BADGER',
BAL: 'BAL',
BAND: 'BAND',
BAT: 'BAT',
BNT: 'BNT',
BOBA: 'BOBA',
BOND: 'BOND',
BTRST: 'BTRST',
CHAIN: 'CHAIN',
CHZ: 'CHZ',
CLV: 'CLV',
COMP: 'COMP',
COTI: 'COTI',
CRO: 'CRO',
CRV: 'CRV',
CTSI: 'CTSI',
CVC: 'CVC',
DAO: 'DAO',
DDX: 'DDX',
DNT: 'DNT',
ENJ: 'ENJ',
ENS: 'ENS',
EURT: 'EURT',
FARM: 'FARM',
FET: 'FET',
FORTH: 'FORTH',
FX: 'FX',
GNO: 'GNO',
GRT: 'GRT',
GTC: 'GTC',
GTH: 'GTH',
GUSD: 'GUSD',
GYEN: 'GYEN',
HEX: 'HEX',
IOTX: 'IOTX',
IMX: 'IMX',
JASMY: 'JASMY',
KEEP: 'KEEP',
KNC: 'KNC',
KRL: 'KRL',
LCX: 'LCX',
LINK: 'LINK',
LPT: 'LPT',
LRC: 'LRC',
MANA: 'MANA',
MASK: 'MASK',
MINDS: 'MINDS',
MIR: 'MIR',
MKR: 'MKR',
MLN: 'MLN',
MTL: 'MTL',
MUSDC: 'mUSDC',
NKN: 'NKN',
NMR: 'NMR',
NU: 'NU',
OGN: 'OGN',
OMG: 'OMG',
ORN: 'ORN',
OXT: 'OXT',
PAX: 'PAX',
PERP: 'PERP',
PLA: 'PLA',
POLS: 'POLS',
POLY: 'POLY',
QNT: 'QNT',
QUICK: 'QUICK',
RAD: 'RAD',
RAI: 'RAI',
RARI: 'RARI',
REN: 'REN',
REP: 'REP',
REQ: 'REQ',
RLC: 'RLC',
RLY: 'RLY',
SAND: 'SAND',
SHIB: 'SHIB',
SKL: 'SKL',
SNX: 'SNX',
STETH: 'STETH',
STORJ: 'STORJ',
SUKU: 'SUKU',
SUSHI: 'SUSHI',
SWAP: 'SWAP',
SWFTC: 'SWFTC',
TRAC: 'TRAC',
TRB: 'TRB',
TRIBE: 'TRIBE',
TRU: 'TRU',
TXL: 'TXL',
UMA: 'UMA',
UNI: 'UNI',
USDS: 'USDS',
VRA: 'VRA',
WBTC: 'WBTC',
WCFG: 'WCFG',
XYO: 'XYO',
YFII: 'YFII',
YFI: 'YFI',
YLD: 'YLD',
ZRX: 'ZRX',
ZUSD: 'ZUSD',
} as const;
export const ETH_TOKEN_IMAGE_URL = './images/eth_logo.svg';
export const TEST_ETH_TOKEN_IMAGE_URL = './images/black-eth-logo.svg';
export const BNB_TOKEN_IMAGE_URL = './images/bnb.png';
export const MATIC_TOKEN_IMAGE_URL = './images/matic-token.png';
export const AVAX_TOKEN_IMAGE_URL = './images/avax-token.png';
export const AETH_TOKEN_IMAGE_URL = './images/arbitrum.svg';
export const FTM_TOKEN_IMAGE_URL = './images/fantom-opera.svg';
export const HARMONY_ONE_TOKEN_IMAGE_URL = './images/harmony-one.svg';
export const OPTIMISM_TOKEN_IMAGE_URL = './images/optimism.svg';
export const PALM_TOKEN_IMAGE_URL = './images/palm.svg';
export const INFURA_PROVIDER_TYPES = [
NETWORK_TYPES.MAINNET,
NETWORK_TYPES.GOERLI,
NETWORK_TYPES.SEPOLIA,
];
export const TEST_CHAINS = [
CHAIN_IDS.GOERLI,
CHAIN_IDS.SEPOLIA,
CHAIN_IDS.LOCALHOST,
];
const typedCapitalize = <K extends string>(k: K): Capitalize<K> =>
capitalize(k) as Capitalize<typeof k>;
export const TEST_NETWORK_TICKER_MAP: {
[K in Exclude<
NetworkType,
'localhost' | 'mainnet' | 'rpc'
>]: `${Capitalize<K>}${typeof CURRENCY_SYMBOLS.ETH}`;
} = {
[NETWORK_TYPES.GOERLI]: `${typedCapitalize(NETWORK_TYPES.GOERLI)}${
CURRENCY_SYMBOLS.ETH
}`,
[NETWORK_TYPES.SEPOLIA]: `${typedCapitalize(NETWORK_TYPES.SEPOLIA)}${
CURRENCY_SYMBOLS.ETH
}`,
};
/**
* Map of all build-in Infura networks to their network, ticker and chain IDs.
*/
export const BUILT_IN_NETWORKS = {
[NETWORK_TYPES.GOERLI]: {
networkId: NETWORK_IDS.GOERLI,
chainId: CHAIN_IDS.GOERLI,
ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.GOERLI],
},
[NETWORK_TYPES.SEPOLIA]: {
networkId: NETWORK_IDS.SEPOLIA,
chainId: CHAIN_IDS.SEPOLIA,
ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.SEPOLIA],
},
[NETWORK_TYPES.MAINNET]: {
networkId: NETWORK_IDS.MAINNET,
chainId: CHAIN_IDS.MAINNET,
},
[NETWORK_TYPES.LOCALHOST]: {
networkId: NETWORK_IDS.LOCALHOST,
chainId: CHAIN_IDS.LOCALHOST,
},
} as const;
export const NETWORK_TO_NAME_MAP = {
[NETWORK_TYPES.MAINNET]: MAINNET_DISPLAY_NAME,
[NETWORK_TYPES.GOERLI]: GOERLI_DISPLAY_NAME,
[NETWORK_TYPES.SEPOLIA]: SEPOLIA_DISPLAY_NAME,
[NETWORK_TYPES.LOCALHOST]: LOCALHOST_DISPLAY_NAME,
[NETWORK_IDS.GOERLI]: GOERLI_DISPLAY_NAME,
[NETWORK_IDS.SEPOLIA]: SEPOLIA_DISPLAY_NAME,
[NETWORK_IDS.MAINNET]: MAINNET_DISPLAY_NAME,
[NETWORK_IDS.LOCALHOST]: LOCALHOST_DISPLAY_NAME,
[CHAIN_IDS.GOERLI]: GOERLI_DISPLAY_NAME,
[CHAIN_IDS.SEPOLIA]: SEPOLIA_DISPLAY_NAME,
[CHAIN_IDS.MAINNET]: MAINNET_DISPLAY_NAME,
[CHAIN_IDS.LOCALHOST]: LOCALHOST_DISPLAY_NAME,
} as const;
export const CHAIN_ID_TO_TYPE_MAP = {
[CHAIN_IDS.MAINNET]: NETWORK_TYPES.MAINNET,
[CHAIN_IDS.GOERLI]: NETWORK_TYPES.GOERLI,
[CHAIN_IDS.SEPOLIA]: NETWORK_TYPES.SEPOLIA,
[CHAIN_IDS.LOCALHOST]: NETWORK_TYPES.LOCALHOST,
} as const;
export const CHAIN_ID_TO_RPC_URL_MAP = {
[CHAIN_IDS.GOERLI]: GOERLI_RPC_URL,
[CHAIN_IDS.SEPOLIA]: SEPOLIA_RPC_URL,
[CHAIN_IDS.MAINNET]: MAINNET_RPC_URL,
[CHAIN_IDS.LOCALHOST]: LOCALHOST_RPC_URL,
} as const;
export const CHAIN_ID_TO_NETWORK_IMAGE_URL_MAP = {
[CHAIN_IDS.MAINNET]: ETH_TOKEN_IMAGE_URL,
[CHAIN_IDS.AVALANCHE]: AVAX_TOKEN_IMAGE_URL,
[CHAIN_IDS.BSC]: BNB_TOKEN_IMAGE_URL,
[CHAIN_IDS.POLYGON]: MATIC_TOKEN_IMAGE_URL,
[CHAIN_IDS.ARBITRUM]: AETH_TOKEN_IMAGE_URL,
[CHAIN_IDS.FANTOM]: FTM_TOKEN_IMAGE_URL,
[CHAIN_IDS.HARMONY]: HARMONY_ONE_TOKEN_IMAGE_URL,
[CHAIN_IDS.OPTIMISM]: OPTIMISM_TOKEN_IMAGE_URL,
[CHAIN_IDS.PALM]: PALM_TOKEN_IMAGE_URL,
} as const;
export const NETWORK_ID_TO_ETHERS_NETWORK_NAME_MAP = {
[NETWORK_IDS.GOERLI]: NETWORK_TYPES.GOERLI,
[NETWORK_IDS.SEPOLIA]: NETWORK_TYPES.SEPOLIA,
[NETWORK_IDS.MAINNET]: NETWORK_NAMES.HOMESTEAD,
} as const;
export const CHAIN_ID_TO_NETWORK_ID_MAP = {
[CHAIN_IDS.MAINNET]: NETWORK_IDS.MAINNET,
[CHAIN_IDS.GOERLI]: NETWORK_IDS.GOERLI,
[CHAIN_IDS.SEPOLIA]: NETWORK_IDS.SEPOLIA,
[CHAIN_IDS.LOCALHOST]: NETWORK_IDS.LOCALHOST,
} as const;
export const NATIVE_CURRENCY_TOKEN_IMAGE_MAP = {
[CURRENCY_SYMBOLS.ETH]: ETH_TOKEN_IMAGE_URL,
[CURRENCY_SYMBOLS.TEST_ETH]: TEST_ETH_TOKEN_IMAGE_URL,
[CURRENCY_SYMBOLS.BNB]: BNB_TOKEN_IMAGE_URL,
[CURRENCY_SYMBOLS.MATIC]: MATIC_TOKEN_IMAGE_URL,
[CURRENCY_SYMBOLS.AVALANCHE]: AVAX_TOKEN_IMAGE_URL,
} as const;
export const INFURA_BLOCKED_KEY = 'countryBlocked';
/**
* Hardforks are points in the chain where logic is changed significantly
* enough where there is a fork and the new fork becomes the active chain.
* These constants are presented in chronological order starting with BERLIN
* because when we first needed to track the hardfork we had launched support
* for EIP-2718 (where transactions can have types and different shapes) and
* EIP-2930 (optional access lists), which were included in BERLIN.
*
* BERLIN - forked at block number 12,244,000, included typed transactions and
* optional access lists
* LONDON - future, upcoming fork that introduces the baseFeePerGas, an amount
* of the ETH transaction fees that will be burned instead of given to the
* miner. This change necessitated the third type of transaction envelope to
* specify maxFeePerGas and maxPriorityFeePerGas moving the fee bidding system
* to a second price auction model.
*/
export const HARDFORKS = {
BERLIN: 'berlin',
LONDON: 'london',
} as const;
export const CHAIN_ID_TO_GAS_LIMIT_BUFFER_MAP = {
[CHAIN_IDS.OPTIMISM]: 1,
[CHAIN_IDS.OPTIMISM_TESTNET]: 1,
};
/**
* Ethereum JSON-RPC methods that are known to exist but that we intentionally
* do not support.
*/
export const UNSUPPORTED_RPC_METHODS = new Set([
// This is implemented later in our middleware stack – specifically, in
// eth-json-rpc-middleware – but our UI does not support it.
'eth_signTransaction' as const,
]);
export const IPFS_DEFAULT_GATEWAY_URL = 'dweb.link';
// The first item in transakCurrencies must be the
// default crypto currency for the network
const BUYABLE_CHAIN_ETHEREUM_NETWORK_NAME = 'ethereum';
export const BUYABLE_CHAINS_MAP: {
[K in Exclude<
ChainId,
| typeof CHAIN_IDS.LOCALHOST
| typeof CHAIN_IDS.PALM
| typeof CHAIN_IDS.HARMONY
| typeof CHAIN_IDS.OPTIMISM
| typeof CHAIN_IDS.OPTIMISM_TESTNET
| typeof CHAIN_IDS.ARBITRUM
>]: BuyableChainSettings;
} = {
[CHAIN_IDS.MAINNET]: {
nativeCurrency: CURRENCY_SYMBOLS.ETH,
network: BUYABLE_CHAIN_ETHEREUM_NETWORK_NAME,
transakCurrencies: [
SUPPORTED_CURRENCY_SYMBOLS.ETH,
SUPPORTED_CURRENCY_SYMBOLS['1INCH'],
SUPPORTED_CURRENCY_SYMBOLS.AAVE,
SUPPORTED_CURRENCY_SYMBOLS.AGEUR,
SUPPORTED_CURRENCY_SYMBOLS.BUSD,
SUPPORTED_CURRENCY_SYMBOLS.CHAIN,
SUPPORTED_CURRENCY_SYMBOLS.CLV,
SUPPORTED_CURRENCY_SYMBOLS.COMP,
SUPPORTED_CURRENCY_SYMBOLS.CTSI,
SUPPORTED_CURRENCY_SYMBOLS.DAI,
SUPPORTED_CURRENCY_SYMBOLS.DAO,
SUPPORTED_CURRENCY_SYMBOLS.ENJ,
SUPPORTED_CURRENCY_SYMBOLS.EURT,
SUPPORTED_CURRENCY_SYMBOLS.GTH,
SUPPORTED_CURRENCY_SYMBOLS.HEX,
SUPPORTED_CURRENCY_SYMBOLS.LINK,
SUPPORTED_CURRENCY_SYMBOLS.MANA,
SUPPORTED_CURRENCY_SYMBOLS.MASK,
SUPPORTED_CURRENCY_SYMBOLS.MINDS,
SUPPORTED_CURRENCY_SYMBOLS.MKR,
SUPPORTED_CURRENCY_SYMBOLS.PLA,
SUPPORTED_CURRENCY_SYMBOLS.POLS,
SUPPORTED_CURRENCY_SYMBOLS.SAND,
SUPPORTED_CURRENCY_SYMBOLS.STETH,
SUPPORTED_CURRENCY_SYMBOLS.SUSHI,
SUPPORTED_CURRENCY_SYMBOLS.SWAP,
SUPPORTED_CURRENCY_SYMBOLS.TXL,
SUPPORTED_CURRENCY_SYMBOLS.UNI,
SUPPORTED_CURRENCY_SYMBOLS.USDC,
SUPPORTED_CURRENCY_SYMBOLS.USDT,
SUPPORTED_CURRENCY_SYMBOLS.VRA,
SUPPORTED_CURRENCY_SYMBOLS.WBTC,
SUPPORTED_CURRENCY_SYMBOLS.YLD,
],
moonPay: {
defaultCurrencyCode: SUPPORTED_CURRENCY_SYMBOLS.ETH,
showOnlyCurrencies: [
SUPPORTED_CURRENCY_SYMBOLS.ETH,
SUPPORTED_CURRENCY_SYMBOLS.USDT,
SUPPORTED_CURRENCY_SYMBOLS.USDC,
SUPPORTED_CURRENCY_SYMBOLS.DAI,
SUPPORTED_CURRENCY_SYMBOLS.MATIC,
SUPPORTED_CURRENCY_SYMBOLS.ORN,
SUPPORTED_CURRENCY_SYMBOLS.WETH,
SUPPORTED_CURRENCY_SYMBOLS.IMX,
],
},
wyre: {
srn: 'ethereum',
currencyCode: CURRENCY_SYMBOLS.ETH,
currencies: [
SUPPORTED_CURRENCY_SYMBOLS.ETH,
SUPPORTED_CURRENCY_SYMBOLS.AAVE,
SUPPORTED_CURRENCY_SYMBOLS.BAT,
SUPPORTED_CURRENCY_SYMBOLS.BUSD,
SUPPORTED_CURRENCY_SYMBOLS.COMP,
SUPPORTED_CURRENCY_SYMBOLS.CRV,
SUPPORTED_CURRENCY_SYMBOLS.DAI,
SUPPORTED_CURRENCY_SYMBOLS.GUSD,
SUPPORTED_CURRENCY_SYMBOLS.GYEN,
SUPPORTED_CURRENCY_SYMBOLS.LINK,
SUPPORTED_CURRENCY_SYMBOLS.MKR,
SUPPORTED_CURRENCY_SYMBOLS.PAX,
SUPPORTED_CURRENCY_SYMBOLS.RAI,
SUPPORTED_CURRENCY_SYMBOLS.SNX,
SUPPORTED_CURRENCY_SYMBOLS.UMA,
SUPPORTED_CURRENCY_SYMBOLS.UNI,
SUPPORTED_CURRENCY_SYMBOLS.USDC,
SUPPORTED_CURRENCY_SYMBOLS.USDS,
SUPPORTED_CURRENCY_SYMBOLS.USDT,
SUPPORTED_CURRENCY_SYMBOLS.WBTC,
SUPPORTED_CURRENCY_SYMBOLS.WETH,
SUPPORTED_CURRENCY_SYMBOLS.YFI,
SUPPORTED_CURRENCY_SYMBOLS.ZUSD,
],
},
coinbasePayCurrencies: [
SUPPORTED_CURRENCY_SYMBOLS.ETH,
SUPPORTED_CURRENCY_SYMBOLS['1INCH'],
SUPPORTED_CURRENCY_SYMBOLS.AAVE,
SUPPORTED_CURRENCY_SYMBOLS.ABT,
SUPPORTED_CURRENCY_SYMBOLS.ACH,
SUPPORTED_CURRENCY_SYMBOLS.AGLD,
SUPPORTED_CURRENCY_SYMBOLS.AMP,
SUPPORTED_CURRENCY_SYMBOLS.ANKR,
SUPPORTED_CURRENCY_SYMBOLS.APE,
SUPPORTED_CURRENCY_SYMBOLS.ARPA,
SUPPORTED_CURRENCY_SYMBOLS.ASM,
SUPPORTED_CURRENCY_SYMBOLS.AUCTION,
SUPPORTED_CURRENCY_SYMBOLS.AXS,
SUPPORTED_CURRENCY_SYMBOLS.BADGER,
SUPPORTED_CURRENCY_SYMBOLS.BAL,
SUPPORTED_CURRENCY_SYMBOLS.BAND,
SUPPORTED_CURRENCY_SYMBOLS.BAT,
SUPPORTED_CURRENCY_SYMBOLS.BNT,
SUPPORTED_CURRENCY_SYMBOLS.BOBA,
SUPPORTED_CURRENCY_SYMBOLS.BOND,
SUPPORTED_CURRENCY_SYMBOLS.BTRST,
SUPPORTED_CURRENCY_SYMBOLS.CHZ,
SUPPORTED_CURRENCY_SYMBOLS.CLV,
SUPPORTED_CURRENCY_SYMBOLS.COMP,
SUPPORTED_CURRENCY_SYMBOLS.COTI,
SUPPORTED_CURRENCY_SYMBOLS.CRO,
SUPPORTED_CURRENCY_SYMBOLS.CRV,
SUPPORTED_CURRENCY_SYMBOLS.CTSI,
SUPPORTED_CURRENCY_SYMBOLS.CVC,
SUPPORTED_CURRENCY_SYMBOLS.DAI,
SUPPORTED_CURRENCY_SYMBOLS.DDX,
SUPPORTED_CURRENCY_SYMBOLS.DNT,
SUPPORTED_CURRENCY_SYMBOLS.ENJ,
SUPPORTED_CURRENCY_SYMBOLS.ENS,
SUPPORTED_CURRENCY_SYMBOLS.FARM,
SUPPORTED_CURRENCY_SYMBOLS.FET,
SUPPORTED_CURRENCY_SYMBOLS.FORTH,
SUPPORTED_CURRENCY_SYMBOLS.FX,
SUPPORTED_CURRENCY_SYMBOLS.GNO,
SUPPORTED_CURRENCY_SYMBOLS.GRT,
SUPPORTED_CURRENCY_SYMBOLS.GTC,
SUPPORTED_CURRENCY_SYMBOLS.IOTX,
SUPPORTED_CURRENCY_SYMBOLS.JASMY,
SUPPORTED_CURRENCY_SYMBOLS.KEEP,
SUPPORTED_CURRENCY_SYMBOLS.KNC,
SUPPORTED_CURRENCY_SYMBOLS.KRL,
SUPPORTED_CURRENCY_SYMBOLS.LCX,
SUPPORTED_CURRENCY_SYMBOLS.LINK,
SUPPORTED_CURRENCY_SYMBOLS.LPT,
SUPPORTED_CURRENCY_SYMBOLS.LRC,
SUPPORTED_CURRENCY_SYMBOLS.MANA,
SUPPORTED_CURRENCY_SYMBOLS.MASK,
SUPPORTED_CURRENCY_SYMBOLS.MATIC,
SUPPORTED_CURRENCY_SYMBOLS.MIR,
SUPPORTED_CURRENCY_SYMBOLS.MKR,
SUPPORTED_CURRENCY_SYMBOLS.MLN,
SUPPORTED_CURRENCY_SYMBOLS.MTL,
SUPPORTED_CURRENCY_SYMBOLS.NKN,
SUPPORTED_CURRENCY_SYMBOLS.NMR,
SUPPORTED_CURRENCY_SYMBOLS.NU,
SUPPORTED_CURRENCY_SYMBOLS.OGN,
SUPPORTED_CURRENCY_SYMBOLS.OMG,
SUPPORTED_CURRENCY_SYMBOLS.OXT,
SUPPORTED_CURRENCY_SYMBOLS.PAX,
SUPPORTED_CURRENCY_SYMBOLS.PERP,
SUPPORTED_CURRENCY_SYMBOLS.PLA,
SUPPORTED_CURRENCY_SYMBOLS.POLY,
SUPPORTED_CURRENCY_SYMBOLS.QNT,
SUPPORTED_CURRENCY_SYMBOLS.QUICK,
SUPPORTED_CURRENCY_SYMBOLS.RAD,
SUPPORTED_CURRENCY_SYMBOLS.RAI,
SUPPORTED_CURRENCY_SYMBOLS.RARI,
SUPPORTED_CURRENCY_SYMBOLS.REN,
SUPPORTED_CURRENCY_SYMBOLS.REP,
SUPPORTED_CURRENCY_SYMBOLS.REQ,
SUPPORTED_CURRENCY_SYMBOLS.RLC,
SUPPORTED_CURRENCY_SYMBOLS.RLY,
SUPPORTED_CURRENCY_SYMBOLS.SAND,
SUPPORTED_CURRENCY_SYMBOLS.SHIB,
SUPPORTED_CURRENCY_SYMBOLS.SKL,
SUPPORTED_CURRENCY_SYMBOLS.SNX,
SUPPORTED_CURRENCY_SYMBOLS.STORJ,
SUPPORTED_CURRENCY_SYMBOLS.SUKU,
SUPPORTED_CURRENCY_SYMBOLS.SUSHI,
SUPPORTED_CURRENCY_SYMBOLS.SWFTC,
SUPPORTED_CURRENCY_SYMBOLS.TRAC,
SUPPORTED_CURRENCY_SYMBOLS.TRB,
SUPPORTED_CURRENCY_SYMBOLS.TRIBE,
SUPPORTED_CURRENCY_SYMBOLS.TRU,
SUPPORTED_CURRENCY_SYMBOLS.UMA,
SUPPORTED_CURRENCY_SYMBOLS.UNI,
SUPPORTED_CURRENCY_SYMBOLS.USDC,
SUPPORTED_CURRENCY_SYMBOLS.USDT,
SUPPORTED_CURRENCY_SYMBOLS.WBTC,
SUPPORTED_CURRENCY_SYMBOLS.WCFG,
SUPPORTED_CURRENCY_SYMBOLS.XYO,
SUPPORTED_CURRENCY_SYMBOLS.YFII,
SUPPORTED_CURRENCY_SYMBOLS.ZRX,
],
},
[CHAIN_IDS.GOERLI]: {
nativeCurrency: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.GOERLI],
network: BUYABLE_CHAIN_ETHEREUM_NETWORK_NAME,
},
[CHAIN_IDS.SEPOLIA]: {
nativeCurrency: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.SEPOLIA],
network: BUYABLE_CHAIN_ETHEREUM_NETWORK_NAME,
},
[CHAIN_IDS.BSC]: {
nativeCurrency: CURRENCY_SYMBOLS.BNB,
network: 'bsc',
transakCurrencies: [
SUPPORTED_CURRENCY_SYMBOLS.BNB,
SUPPORTED_CURRENCY_SYMBOLS.BUSD,
],
moonPay: {
defaultCurrencyCode: `${SUPPORTED_CURRENCY_SYMBOLS.BNB}_BSC`,
showOnlyCurrencies: [
`${SUPPORTED_CURRENCY_SYMBOLS.BNB}_BSC`,
`${SUPPORTED_CURRENCY_SYMBOLS.BUSD}_BSC`,
],
},
},
[CHAIN_IDS.POLYGON]: {
nativeCurrency: CURRENCY_SYMBOLS.MATIC,
network: 'polygon',
transakCurrencies: [
SUPPORTED_CURRENCY_SYMBOLS.MATIC,
SUPPORTED_CURRENCY_SYMBOLS.USDT,
SUPPORTED_CURRENCY_SYMBOLS.USDC,
SUPPORTED_CURRENCY_SYMBOLS.DAI,
],
moonPay: {
defaultCurrencyCode: `${SUPPORTED_CURRENCY_SYMBOLS.BNB}_POLYGON`,
showOnlyCurrencies: [
`${SUPPORTED_CURRENCY_SYMBOLS.MATIC}_POLYGON`,
`${SUPPORTED_CURRENCY_SYMBOLS.USDC}_POLYGON`,
],
},
wyre: {
srn: 'matic',
currencyCode: CURRENCY_SYMBOLS.MATIC,
currencies: [
SUPPORTED_CURRENCY_SYMBOLS.MATIC,
SUPPORTED_CURRENCY_SYMBOLS.MUSDC,
],
},
},
[CHAIN_IDS.AVALANCHE]: {
nativeCurrency: CURRENCY_SYMBOLS.AVALANCHE,
network: 'avaxcchain',
transakCurrencies: [SUPPORTED_CURRENCY_SYMBOLS.AVALANCHE],
moonPay: {
defaultCurrencyCode: `${SUPPORTED_CURRENCY_SYMBOLS.AVAX}_CCHAIN`,
showOnlyCurrencies: [`${SUPPORTED_CURRENCY_SYMBOLS.AVAX}_CCHAIN`],
},
wyre: {
srn: 'avalanche',
currencyCode: CURRENCY_SYMBOLS.AVALANCHE,
currencies: [
SUPPORTED_CURRENCY_SYMBOLS.AVALANCHE,
SUPPORTED_CURRENCY_SYMBOLS.AVAXC,
SUPPORTED_CURRENCY_SYMBOLS.AVAXCUSDC,
],
},
coinbasePayCurrencies: [SUPPORTED_CURRENCY_SYMBOLS.AVALANCHE],
},
[CHAIN_IDS.FANTOM]: {
nativeCurrency: CURRENCY_SYMBOLS.FANTOM,
network: 'fantom',
transakCurrencies: [SUPPORTED_CURRENCY_SYMBOLS.FANTOM],
},
[CHAIN_IDS.CELO]: {
nativeCurrency: CURRENCY_SYMBOLS.CELO,
network: 'celo',
transakCurrencies: [SUPPORTED_CURRENCY_SYMBOLS.CELO],
moonPay: {
defaultCurrencyCode: SUPPORTED_CURRENCY_SYMBOLS.CELO,
showOnlyCurrencies: [SUPPORTED_CURRENCY_SYMBOLS.CELO],
},
},
};
export const FEATURED_RPCS: RPCDefinition[] = [
{
chainId: CHAIN_IDS.ARBITRUM,
nickname: ARBITRUM_DISPLAY_NAME,
rpcUrl: `https://arbitrum-mainnet.infura.io/v3/${infuraProjectId}`,
ticker: CURRENCY_SYMBOLS.ARBITRUM,
rpcPrefs: {
blockExplorerUrl: 'https://explorer.arbitrum.io',
imageUrl: AETH_TOKEN_IMAGE_URL,
},
},
{
chainId: CHAIN_IDS.AVALANCHE,
nickname: AVALANCHE_DISPLAY_NAME,
rpcUrl: `https://avalanche-mainnet.infura.io/v3/${infuraProjectId}`,
ticker: CURRENCY_SYMBOLS.AVALANCHE,
rpcPrefs: {
blockExplorerUrl: 'https://snowtrace.io/',
imageUrl: AVAX_TOKEN_IMAGE_URL,
},
},
{
chainId: CHAIN_IDS.BSC,
nickname: BNB_DISPLAY_NAME,
rpcUrl: 'https://bsc-dataseed.binance.org/',
ticker: CURRENCY_SYMBOLS.BNB,
rpcPrefs: {
blockExplorerUrl: 'https://bscscan.com/',
imageUrl: BNB_TOKEN_IMAGE_URL,
},
},
{
chainId: CHAIN_IDS.FANTOM,
nickname: FANTOM_DISPLAY_NAME,
rpcUrl: 'https://rpc.ftm.tools/',
ticker: CURRENCY_SYMBOLS.FANTOM,
rpcPrefs: {
blockExplorerUrl: 'https://ftmscan.com/',
imageUrl: FTM_TOKEN_IMAGE_URL,
},
},
{
chainId: CHAIN_IDS.HARMONY,
nickname: HARMONY_DISPLAY_NAME,
rpcUrl: 'https://api.harmony.one/',
ticker: CURRENCY_SYMBOLS.HARMONY,
rpcPrefs: {
blockExplorerUrl: 'https://explorer.harmony.one/',
imageUrl: HARMONY_ONE_TOKEN_IMAGE_URL,
},
},
{
chainId: CHAIN_IDS.OPTIMISM,
nickname: OPTIMISM_DISPLAY_NAME,
rpcUrl: `https://optimism-mainnet.infura.io/v3/${infuraProjectId}`,
ticker: CURRENCY_SYMBOLS.ETH,
rpcPrefs: {
blockExplorerUrl: 'https://optimistic.etherscan.io/',
imageUrl: OPTIMISM_TOKEN_IMAGE_URL,
},
},
{
chainId: CHAIN_IDS.PALM,
nickname: PALM_DISPLAY_NAME,
rpcUrl: `https://palm-mainnet.infura.io/v3/${infuraProjectId}`,
ticker: CURRENCY_SYMBOLS.PALM,
rpcPrefs: {
blockExplorerUrl: 'https://explorer.palm.io/',
imageUrl: PALM_TOKEN_IMAGE_URL,
},
},
{
chainId: CHAIN_IDS.POLYGON,
nickname: `${POLYGON_DISPLAY_NAME} ${capitalize(NETWORK_TYPES.MAINNET)}`,
rpcUrl: `https://polygon-mainnet.infura.io/v3/${infuraProjectId}`,
ticker: CURRENCY_SYMBOLS.MATIC,
rpcPrefs: {
blockExplorerUrl: 'https://polygonscan.com/',
imageUrl: MATIC_TOKEN_IMAGE_URL,
},
},
];

@ -5,8 +5,8 @@
"id": 6854191329910881,
"time": 1631558469046,
"status": "approved",
"metamaskNetworkId": "42",
"chainId": "0x2a",
"metamaskNetworkId": "5",
"chainId": "0x5",
"loadingDefaults": false,
"dappSuggestedGasFees": null,
"txParams": {
@ -25,8 +25,8 @@
"id": 6854191329910881,
"time": 1631558469046,
"status": "unapproved",
"metamaskNetworkId": "42",
"chainId": "0x2a",
"metamaskNetworkId": "5",
"chainId": "0x5",
"loadingDefaults": true,
"dappSuggestedGasFees": null,
"txParams": {
@ -81,8 +81,8 @@
"id": 6854191329910881,
"time": 1631558469046,
"status": "approved",
"metamaskNetworkId": "42",
"chainId": "0x2a",
"metamaskNetworkId": "5",
"chainId": "0x5",
"loadingDefaults": false,
"dappSuggestedGasFees": null,
"txParams": {
@ -101,8 +101,8 @@
"id": 6854191329910881,
"time": 1631558469046,
"status": "unapproved",
"metamaskNetworkId": "42",
"chainId": "0x2a",
"metamaskNetworkId": "5",
"chainId": "0x5",
"loadingDefaults": true,
"dappSuggestedGasFees": null,
"txParams": {
@ -158,8 +158,8 @@
"id": 6854191329910881,
"time": 1631558469046,
"status": "approved",
"metamaskNetworkId": "42",
"chainId": "0x2a",
"metamaskNetworkId": "5",
"chainId": "0x5",
"loadingDefaults": false,
"dappSuggestedGasFees": null,
"txParams": {
@ -178,8 +178,8 @@
"id": 6854191329910881,
"time": 1631558469046,
"status": "unapproved",
"metamaskNetworkId": "42",
"chainId": "0x2a",
"metamaskNetworkId": "5",
"chainId": "0x5",
"loadingDefaults": true,
"dappSuggestedGasFees": null,
"txParams": {

@ -49,9 +49,10 @@
"featureFlags": {
"showIncomingTransactions": true
},
"network": "4",
"network": "5",
"provider": {
"chainId": "0x4"
"type": "rpc",
"chainId": "0x5"
},
"keyrings": [
{
@ -181,10 +182,10 @@
"nativeCurrency": "ETH",
"conversionRate": 556.12,
"addressBook": {
"0x4": {
"0x5": {
"0xc42edfcc21ed14dda456aa0756c153f7985d8813": {
"address": "0xc42edfcc21ed14dda456aa0756c153f7985d8813",
"chainId": "0x4",
"chainId": "0x5",
"isEns": false,
"memo": "",
"name": "Address Book Account 1"

File diff suppressed because it is too large Load Diff

@ -864,10 +864,10 @@
"id": 1441203963845330,
"time": 1652206763566,
"status": "confirmed",
"metamaskNetworkId": "4",
"metamaskNetworkId": "5",
"originalGasEstimate": "0x118e0",
"userEditedGasLimit": false,
"chainId": "0x4",
"chainId": "0x5",
"loadingDefaults": false,
"dappSuggestedGasFees": {
"maxPriorityFeePerGas": "0x3B9ACA00",
@ -884,7 +884,7 @@
"maxFeePerGas": "0x7be830aec",
"maxPriorityFeePerGas": "0x3B9ACA00"
},
"origin": "https://rinkeby.etherscan.io",
"origin": "https://goerli.etherscan.io",
"type": "safetransferfrom",
"userFeeLevel": "dappSuggested",
"defaultGasEstimates": {
@ -980,10 +980,10 @@
"id": 1441203963845330,
"time": 1652206763566,
"status": "confirmed",
"metamaskNetworkId": "4",
"metamaskNetworkId": "5",
"originalGasEstimate": "0x118e0",
"userEditedGasLimit": false,
"chainId": "0x4",
"chainId": "0x5",
"loadingDefaults": false,
"dappSuggestedGasFees": {
"maxPriorityFeePerGas": "0x3B9ACA00",
@ -1000,7 +1000,7 @@
"maxFeePerGas": "0x7be830aec",
"maxPriorityFeePerGas": "0x3B9ACA00"
},
"origin": "https://rinkeby.etherscan.io",
"origin": "https://goerli.etherscan.io",
"type": "safetransferfrom",
"userFeeLevel": "dappSuggested",
"defaultGasEstimates": {
@ -1095,10 +1095,10 @@
"id": 1441203963845330,
"time": 1652206763566,
"status": "confirmed",
"metamaskNetworkId": "4",
"metamaskNetworkId": "5",
"originalGasEstimate": "0x118e0",
"userEditedGasLimit": false,
"chainId": "0x4",
"chainId": "0x5",
"loadingDefaults": false,
"dappSuggestedGasFees": {
"maxPriorityFeePerGas": "0x3B9ACA00",
@ -1115,7 +1115,7 @@
"maxFeePerGas": "0x7be830aec",
"maxPriorityFeePerGas": "0x3B9ACA00"
},
"origin": "https://rinkeby.etherscan.io",
"origin": "https://goerli.etherscan.io",
"type": "safetransferfrom",
"userFeeLevel": "dappSuggested",
"defaultGasEstimates": {

@ -33,10 +33,8 @@
"incomingTransactions": {},
"incomingTxLastFetchedBlocksByNetwork": {
"goerli": null,
"kovan": null,
"mainnet": null,
"sepolia": null,
"rinkeby": 5570536
"sepolia": null
}
},
"KeyringController": {
@ -128,8 +126,8 @@
"PreferencesController": {
"accountTokens": {
"0x5cfe73b6021e818b776b421b1c4db2474086a7e1": {
"rinkeby": [],
"ropsten": []
"goerli": [],
"sepolia": []
}
},
"assetImages": {},

@ -22,10 +22,8 @@
"incomingTransactions": {},
"incomingTxLastFetchedBlocksByNetwork": {
"goerli": null,
"kovan": null,
"mainnet": null,
"sepolia": null,
"rinkeby": 5570536,
"localhost": 98
}
},
@ -130,8 +128,8 @@
"frequentRpcListDetail": [],
"accountTokens": {
"0x5cfe73b6021e818b776b421b1c4db2474086a7e1": {
"rinkeby": [],
"ropsten": []
"goerli": [],
"sepolia": []
}
},
"assetImages": {},

@ -19,10 +19,8 @@
"incomingTransactions": {},
"incomingTxLastFetchedBlocksByNetwork": {
"goerli": null,
"kovan": null,
"mainnet": null,
"sepolia": null,
"rinkeby": 5570536
"sepolia": null
}
},
"KeyringController": {
@ -130,8 +128,8 @@
],
"accountTokens": {
"0x5cfe73b6021e818b776b421b1c4db2474086a7e1": {
"rinkeby": [],
"ropsten": []
"goerli": [],
"sepolia": []
}
},
"assetImages": {},

@ -17,7 +17,7 @@
},
"CachedBalancesController": {
"cachedBalances": {
"0x4": {
"0x5": {
"0x5cfe73b6021e818b776b421b1c4db2474086a7e1": "0x0"
}
}
@ -35,10 +35,7 @@
"incomingTransactions": {},
"incomingTxLastFetchedBlockByChainId": {
"0x1": null,
"0x2a": null,
"0x3": null,
"0x4": 8977934,
"0x5": null
"0x5": 8977934
}
},
"KeyringController": {
@ -54,9 +51,9 @@
"EIPS": {}
},
"previousProviderStore": {
"chainId": "0x4",
"chainId": "0x5",
"ticker": "ETH",
"type": "rinkeby"
"type": "goerli"
},
"provider": {
"chainId": "0x539",

@ -20,10 +20,8 @@
"incomingTransactions": {},
"incomingTxLastFetchedBlocksByNetwork": {
"goerli": null,
"kovan": null,
"mainnet": null,
"sepolia": null,
"rinkeby": 5570536
"sepolia": null
}
},
"KeyringController": {
@ -115,8 +113,8 @@
"PreferencesController": {
"accountTokens": {
"0x5cfe73b6021e818b776b421b1c4db2474086a7e1": {
"rinkeby": [],
"ropsten": []
"goerli": [],
"sepolia": []
}
},
"assetImages": {},

@ -20,10 +20,8 @@
"incomingTransactions": {},
"incomingTxLastFetchedBlocksByNetwork": {
"goerli": null,
"kovan": null,
"mainnet": null,
"sepolia": null,
"rinkeby": 5570536
"sepolia": null
}
},
"KeyringController": {
@ -115,8 +113,8 @@
"PreferencesController": {
"accountTokens": {
"0x5cfe73b6021e818b776b421b1c4db2474086a7e1": {
"rinkeby": [],
"ropsten": []
"goerli": [],
"sepolia": []
}
},
"assetImages": {},

@ -19,10 +19,8 @@
"incomingTransactions": {},
"incomingTxLastFetchedBlocksByNetwork": {
"goerli": null,
"kovan": null,
"mainnet": null,
"sepolia": null,
"rinkeby": 5570536
"sepolia": null
}
},
"KeyringController": {
@ -114,8 +112,8 @@
"PreferencesController": {
"accountTokens": {
"0x5cfe73b6021e818b776b421b1c4db2474086a7e1": {
"rinkeby": [],
"ropsten": []
"goerli": [],
"sepolia": []
}
},
"assetImages": {},

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save