@toruslabs/ethereum-controllers 7.1.2 → 7.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/ethereumControllers.cjs.js +76 -46
  2. package/dist/ethereumControllers.esm.js +36 -7
  3. package/dist/ethereumControllers.umd.min.js +1 -1
  4. package/dist/lib.cjs/Gas/gasUtil.js +15 -15
  5. package/dist/lib.cjs/Message/utils.js +11 -4
  6. package/dist/lib.cjs/Network/createEthereumMiddleware.js +23 -0
  7. package/dist/lib.cjs/Preferences/PreferencesController.js +1 -0
  8. package/dist/lib.cjs/Tokens/TokensController.js +1 -2
  9. package/dist/lib.cjs/Transaction/TransactionController.js +5 -5
  10. package/dist/lib.cjs/index.js +1 -0
  11. package/dist/lib.cjs/utils/conversionUtils.js +17 -17
  12. package/dist/lib.cjs/utils/helpers.js +6 -6
  13. package/dist/lib.esm/Gas/gasUtil.js +1 -1
  14. package/dist/lib.esm/Message/utils.js +11 -4
  15. package/dist/lib.esm/Network/createEthereumMiddleware.js +23 -1
  16. package/dist/lib.esm/Preferences/PreferencesController.js +2 -1
  17. package/dist/lib.esm/Tokens/TokensController.js +1 -2
  18. package/dist/lib.esm/Transaction/TransactionController.js +1 -1
  19. package/dist/lib.esm/index.js +1 -1
  20. package/dist/lib.esm/utils/conversionUtils.js +1 -1
  21. package/dist/lib.esm/utils/helpers.js +1 -1
  22. package/dist/types/Account/AccountTrackerController.d.ts +2 -1
  23. package/dist/types/Gas/gasUtil.d.ts +1 -1
  24. package/dist/types/Message/SwitchChainController.d.ts +1 -2
  25. package/dist/types/Message/utils.d.ts +2 -2
  26. package/dist/types/Network/createEthereumMiddleware.d.ts +6 -2
  27. package/dist/types/Nfts/INftsController.d.ts +8 -8
  28. package/dist/types/Nfts/NftHandler.d.ts +2 -1
  29. package/dist/types/Nfts/NftsController.d.ts +6 -5
  30. package/dist/types/Preferences/IPreferencesController.d.ts +10 -0
  31. package/dist/types/Preferences/PreferencesController.d.ts +4 -1
  32. package/dist/types/Tokens/TokenRatesController.d.ts +2 -1
  33. package/dist/types/Tokens/TokensController.d.ts +2 -1
  34. package/dist/types/index.d.ts +1 -0
  35. package/dist/types/utils/conversionUtils.d.ts +1 -1
  36. package/dist/types/utils/helpers.d.ts +1 -1
  37. package/dist/types/utils/interfaces.d.ts +11 -74
  38. package/package.json +4 -4
@@ -8022,6 +8022,7 @@ __webpack_require__.d(__webpack_exports__, {
8022
8022
  createProcessSwitchEthereumChain: () => (/* reexport */ src_createProcessSwitchEthereumChain),
8023
8023
  createProcessTransactionMiddleware: () => (/* reexport */ src_createProcessTransactionMiddleware),
8024
8024
  createProcessTypedMessageV4: () => (/* reexport */ src_createProcessTypedMessageV4),
8025
+ createProcessWalletSwitchChain: () => (/* reexport */ src_createProcessWalletSwitchChain),
8025
8026
  createProviderConfigMiddleware: () => (/* reexport */ src_createProviderConfigMiddleware),
8026
8027
  createRequestAccountsMiddleware: () => (/* reexport */ src_createRequestAccountsMiddleware),
8027
8028
  decGWEIToHexWEI: () => (/* reexport */ src_decGWEIToHexWEI),
@@ -19017,7 +19018,6 @@ class src_CurrencyController extends src_base_controllers_namespaceObject.BaseCu
19017
19018
  }
19018
19019
  ;// external "bignumber.js"
19019
19020
  const src_external_bignumber_js_namespaceObject = require("bignumber.js");
19020
- var src_external_bignumber_js_default = /*#__PURE__*/__webpack_require__.n(src_external_bignumber_js_namespaceObject);
19021
19021
  ;// external "@babel/runtime/helpers/objectDestructuringEmpty"
19022
19022
  const src_objectDestructuringEmpty_namespaceObject = require("@babel/runtime/helpers/objectDestructuringEmpty");
19023
19023
  var src_objectDestructuringEmpty_default = /*#__PURE__*/__webpack_require__.n(src_objectDestructuringEmpty_namespaceObject);
@@ -19064,14 +19064,14 @@ const src_excluded = ["aBase", "bBase"],
19064
19064
 
19065
19065
 
19066
19066
  // Big Number Constants
19067
- const src_BIG_NUMBER_WEI_MULTIPLIER = new (src_external_bignumber_js_default())("1000000000000000000");
19068
- const src_BIG_NUMBER_GWEI_MULTIPLIER = new (src_external_bignumber_js_default())("1000000000");
19069
- const src_BIG_NUMBER_ETH_MULTIPLIER = new (src_external_bignumber_js_default())("1");
19067
+ const src_BIG_NUMBER_WEI_MULTIPLIER = new src_external_bignumber_js_namespaceObject.BigNumber("1000000000000000000");
19068
+ const src_BIG_NUMBER_GWEI_MULTIPLIER = new src_external_bignumber_js_namespaceObject.BigNumber("1000000000");
19069
+ const src_BIG_NUMBER_ETH_MULTIPLIER = new src_external_bignumber_js_namespaceObject.BigNumber("1");
19070
19070
  // Setter Maps
19071
19071
  const src_toBigNumber = {
19072
- hex: n => new (src_external_bignumber_js_default())((0,src_util_namespaceObject.stripHexPrefix)(n), 16),
19073
- dec: n => new (src_external_bignumber_js_default())(String(n), 10),
19074
- BN: n => new (src_external_bignumber_js_default())(n.toString(16), 16)
19072
+ hex: n => new src_external_bignumber_js_namespaceObject.BigNumber((0,src_util_namespaceObject.stripHexPrefix)(n), 16),
19073
+ dec: n => new src_external_bignumber_js_namespaceObject.BigNumber(String(n), 10),
19074
+ BN: n => new src_external_bignumber_js_namespaceObject.BigNumber(n.toString(16), 16)
19075
19075
  };
19076
19076
  const src_toNormalizedDenomination = {
19077
19077
  WEI: bigNumber => bigNumber.div(src_BIG_NUMBER_WEI_MULTIPLIER),
@@ -19079,13 +19079,13 @@ const src_toNormalizedDenomination = {
19079
19079
  ETH: bigNumber => bigNumber.div(src_BIG_NUMBER_ETH_MULTIPLIER)
19080
19080
  };
19081
19081
  const src_toSpecifiedDenomination = {
19082
- WEI: bigNumber => bigNumber.times(src_BIG_NUMBER_WEI_MULTIPLIER).dp(0, (src_external_bignumber_js_default()).ROUND_HALF_UP),
19083
- GWEI: bigNumber => bigNumber.times(src_BIG_NUMBER_GWEI_MULTIPLIER).dp(9, (src_external_bignumber_js_default()).ROUND_HALF_UP),
19084
- ETH: bigNumber => bigNumber.times(src_BIG_NUMBER_ETH_MULTIPLIER).dp(9, (src_external_bignumber_js_default()).ROUND_HALF_UP)
19082
+ WEI: bigNumber => bigNumber.times(src_BIG_NUMBER_WEI_MULTIPLIER).dp(0, src_external_bignumber_js_namespaceObject.BigNumber.ROUND_HALF_UP),
19083
+ GWEI: bigNumber => bigNumber.times(src_BIG_NUMBER_GWEI_MULTIPLIER).dp(9, src_external_bignumber_js_namespaceObject.BigNumber.ROUND_HALF_UP),
19084
+ ETH: bigNumber => bigNumber.times(src_BIG_NUMBER_ETH_MULTIPLIER).dp(9, src_external_bignumber_js_namespaceObject.BigNumber.ROUND_HALF_UP)
19085
19085
  };
19086
19086
  const src_baseChange = {
19087
19087
  hex: n => n.toString(16),
19088
- dec: n => new (src_external_bignumber_js_default())(n).toString(10),
19088
+ dec: n => new src_external_bignumber_js_namespaceObject.BigNumber(n).toString(10),
19089
19089
  BN: n => new (src_external_bn_js_default())(n.toString(16))
19090
19090
  };
19091
19091
 
@@ -19118,7 +19118,7 @@ const src_converter = ({
19118
19118
  }
19119
19119
  let rate = src_toBigNumber.dec(conversionRate);
19120
19120
  if (invertConversionRate) {
19121
- rate = new (src_external_bignumber_js_default())(1).div(conversionRate);
19121
+ rate = new src_external_bignumber_js_namespaceObject.BigNumber(1).div(conversionRate);
19122
19122
  }
19123
19123
  convertedValue = convertedValue.times(rate);
19124
19124
  }
@@ -19126,10 +19126,10 @@ const src_converter = ({
19126
19126
  convertedValue = src_toSpecifiedDenomination[toDenomination](convertedValue);
19127
19127
  }
19128
19128
  if (numberOfDecimals) {
19129
- convertedValue = convertedValue.dp(numberOfDecimals, (src_external_bignumber_js_default()).ROUND_HALF_DOWN);
19129
+ convertedValue = convertedValue.dp(numberOfDecimals, src_external_bignumber_js_namespaceObject.BigNumber.ROUND_HALF_DOWN);
19130
19130
  }
19131
19131
  if (roundDown) {
19132
- convertedValue = convertedValue.dp(roundDown, (src_external_bignumber_js_default()).ROUND_DOWN);
19132
+ convertedValue = convertedValue.dp(roundDown, src_external_bignumber_js_namespaceObject.BigNumber.ROUND_DOWN);
19133
19133
  }
19134
19134
  if (toNumericBase) {
19135
19135
  convertedValue = src_baseChange[toNumericBase](convertedValue);
@@ -19170,10 +19170,10 @@ const src_getBigNumber = (value, base) => {
19170
19170
 
19171
19171
  // We don't include 'number' here, because BigNumber will throw if passed
19172
19172
  // a number primitive it considers unsafe.
19173
- if (typeof value === "string" || value instanceof (src_external_bignumber_js_default())) {
19174
- return new (src_external_bignumber_js_default())(value, base);
19173
+ if (typeof value === "string" || value instanceof src_external_bignumber_js_namespaceObject.BigNumber) {
19174
+ return new src_external_bignumber_js_namespaceObject.BigNumber(value, base);
19175
19175
  }
19176
- return new (src_external_bignumber_js_default())(String(value), base);
19176
+ return new src_external_bignumber_js_namespaceObject.BigNumber(String(value), base);
19177
19177
  };
19178
19178
  const src_addCurrencies = (a, b, options = {}) => {
19179
19179
  const {
@@ -19275,7 +19275,7 @@ const src_hexWEIToDecGWEI = decGWEI => {
19275
19275
 
19276
19276
 
19277
19277
  function src_normalizeGWEIDecimalNumbers(n) {
19278
- const numberAsWEIHex = src_decGWEIToHexWEI(new (src_external_bignumber_js_default())(n));
19278
+ const numberAsWEIHex = src_decGWEIToHexWEI(new src_external_bignumber_js_namespaceObject.BigNumber(n));
19279
19279
  const numberAsGWEI = src_hexWEIToDecGWEI(numberAsWEIHex);
19280
19280
  return numberAsGWEI;
19281
19281
  }
@@ -19314,14 +19314,14 @@ async function src_gasUtil_fetchGasEstimatesViaEthFeeHistory(provider) {
19314
19314
  const numberOfRewards = rewardList.length || 1;
19315
19315
  const priorityFeeCalcs = rewardList.reduce((acc, curr) => {
19316
19316
  return {
19317
- slow: acc.slow.plus(new (src_external_bignumber_js_default())(curr[0], 16)),
19318
- average: acc.average.plus(new (src_external_bignumber_js_default())(curr[1], 16)),
19319
- fast: acc.fast.plus(new (src_external_bignumber_js_default())(curr[2], 16))
19317
+ slow: acc.slow.plus(new src_external_bignumber_js_namespaceObject.BigNumber(curr[0], 16)),
19318
+ average: acc.average.plus(new src_external_bignumber_js_namespaceObject.BigNumber(curr[1], 16)),
19319
+ fast: acc.fast.plus(new src_external_bignumber_js_namespaceObject.BigNumber(curr[2], 16))
19320
19320
  };
19321
19321
  }, {
19322
- slow: new (src_external_bignumber_js_default())(0),
19323
- average: new (src_external_bignumber_js_default())(0),
19324
- fast: new (src_external_bignumber_js_default())(0)
19322
+ slow: new src_external_bignumber_js_namespaceObject.BigNumber(0),
19323
+ average: new src_external_bignumber_js_namespaceObject.BigNumber(0),
19324
+ fast: new src_external_bignumber_js_namespaceObject.BigNumber(0)
19325
19325
  });
19326
19326
  return {
19327
19327
  estimatedBaseFee: src_hexWEIToDecGWEI(finalBaseFeePerGas).toString(10),
@@ -19379,13 +19379,13 @@ function src_calculateTimeEstimate(maxPriorityFeePerGas, maxFeePerGas, gasFeeEst
19379
19379
  high,
19380
19380
  estimatedBaseFee
19381
19381
  } = gasFeeEstimates;
19382
- const maxPriorityFeePerGasInWEI = new (src_external_bignumber_js_default())(src_decGWEIToHexWEI(new (src_external_bignumber_js_default())(maxPriorityFeePerGas)), 16);
19383
- const maxFeePerGasInWEI = new (src_external_bignumber_js_default())(src_decGWEIToHexWEI(new (src_external_bignumber_js_default())(maxFeePerGas)), 16);
19384
- const estimatedBaseFeeInWEI = new (src_external_bignumber_js_default())(src_decGWEIToHexWEI(new (src_external_bignumber_js_default())(estimatedBaseFee)), 16);
19385
- const effectiveMaxPriorityFee = src_external_bignumber_js_default().min(maxPriorityFeePerGasInWEI, maxFeePerGasInWEI.minus(estimatedBaseFeeInWEI));
19386
- const lowMaxPriorityFeeInWEI = new (src_external_bignumber_js_default())(src_decGWEIToHexWEI(new (src_external_bignumber_js_default())(low.suggestedMaxPriorityFeePerGas)), 16);
19387
- const mediumMaxPriorityFeeInWEI = new (src_external_bignumber_js_default())(src_decGWEIToHexWEI(new (src_external_bignumber_js_default())(medium.suggestedMaxPriorityFeePerGas)), 16);
19388
- const highMaxPriorityFeeInWEI = new (src_external_bignumber_js_default())(src_decGWEIToHexWEI(new (src_external_bignumber_js_default())(high.suggestedMaxPriorityFeePerGas)), 16);
19382
+ const maxPriorityFeePerGasInWEI = new src_external_bignumber_js_namespaceObject.BigNumber(src_decGWEIToHexWEI(new src_external_bignumber_js_namespaceObject.BigNumber(maxPriorityFeePerGas)), 16);
19383
+ const maxFeePerGasInWEI = new src_external_bignumber_js_namespaceObject.BigNumber(src_decGWEIToHexWEI(new src_external_bignumber_js_namespaceObject.BigNumber(maxFeePerGas)), 16);
19384
+ const estimatedBaseFeeInWEI = new src_external_bignumber_js_namespaceObject.BigNumber(src_decGWEIToHexWEI(new src_external_bignumber_js_namespaceObject.BigNumber(estimatedBaseFee)), 16);
19385
+ const effectiveMaxPriorityFee = src_external_bignumber_js_namespaceObject.BigNumber.min(maxPriorityFeePerGasInWEI, maxFeePerGasInWEI.minus(estimatedBaseFeeInWEI));
19386
+ const lowMaxPriorityFeeInWEI = new src_external_bignumber_js_namespaceObject.BigNumber(src_decGWEIToHexWEI(new src_external_bignumber_js_namespaceObject.BigNumber(low.suggestedMaxPriorityFeePerGas)), 16);
19387
+ const mediumMaxPriorityFeeInWEI = new src_external_bignumber_js_namespaceObject.BigNumber(src_decGWEIToHexWEI(new src_external_bignumber_js_namespaceObject.BigNumber(medium.suggestedMaxPriorityFeePerGas)), 16);
19388
+ const highMaxPriorityFeeInWEI = new src_external_bignumber_js_namespaceObject.BigNumber(src_decGWEIToHexWEI(new src_external_bignumber_js_namespaceObject.BigNumber(high.suggestedMaxPriorityFeePerGas)), 16);
19389
19389
  let lowerTimeBound;
19390
19390
  let upperTimeBound;
19391
19391
  if (effectiveMaxPriorityFee.lt(lowMaxPriorityFeeInWEI)) {
@@ -19714,6 +19714,7 @@ class src_KeyringController extends src_base_controllers_namespaceObject.BaseKey
19714
19714
  ;// ./src/Message/utils.ts
19715
19715
 
19716
19716
 
19717
+
19717
19718
  const src_hexRe = /^[0-9A-Fa-f]+$/gu;
19718
19719
  function src_validateAddress(address, propertyName) {
19719
19720
  if (!address || typeof address !== "string" || !(0,src_util_namespaceObject.isValidAddress)(address)) {
@@ -19805,13 +19806,19 @@ async function src_validateAddChainData(data) {
19805
19806
  }
19806
19807
  function src_validateSwitchChainData(data) {
19807
19808
  const {
19808
- chainId
19809
+ chainId: fullChainId
19809
19810
  } = data || {};
19810
- if (!chainId) {
19811
+ if (!fullChainId) {
19811
19812
  throw new Error("Invalid switch chain params: please pass chainId in params");
19812
19813
  }
19813
- if (!(0,src_external_ethers_namespaceObject.isHexString)(chainId)) {
19814
- throw new Error("Invalid switch chain params: please pass a valid hex chainId in params, for: ex: 0x1");
19814
+ if (!(0,src_external_ethers_namespaceObject.isHexString)(fullChainId)) {
19815
+ const [namespace, chainId] = fullChainId.split(":");
19816
+ if (namespace !== src_base_controllers_namespaceObject.CHAIN_NAMESPACES.SOLANA && namespace !== src_base_controllers_namespaceObject.CHAIN_NAMESPACES.EIP155) {
19817
+ throw new Error("Invalid switch chain params: invalid namespace");
19818
+ }
19819
+ if (!chainId || isNaN(Number(chainId))) {
19820
+ throw new Error("Invalid switch chain params: invalid chainId");
19821
+ }
19815
19822
  }
19816
19823
  }
19817
19824
  ;// ./src/Message/AddChainController.ts
@@ -20398,6 +20405,25 @@ function src_createProcessSwitchEthereumChain({
20398
20405
  response.result = await processSwitchEthereumChain(msgParams, request);
20399
20406
  });
20400
20407
  }
20408
+ function src_createProcessWalletSwitchChain({
20409
+ processWalletSwitchChain
20410
+ }) {
20411
+ return (0,src_auth_namespaceObject.createAsyncMiddleware)(async (request, response, next) => {
20412
+ const {
20413
+ method
20414
+ } = request;
20415
+ if (method !== src_base_controllers_namespaceObject.PROVIDER_JRPC_METHODS.WALLET_SWITCH_CHAIN) return next();
20416
+ if (!processWalletSwitchChain) throw new Error("WalletMiddleware - opts.processWalletSwitchChain not provided");
20417
+ if (!(request !== null && request !== void 0 && request.params)) throw new Error("WalletMiddleware - missing params");
20418
+ let msgParams = request.params;
20419
+ if (Array.isArray(request.params)) {
20420
+ if (!(request.params.length === 1)) throw new Error(`WalletMiddleware - incorrect params for ${method} method. expected [data]`);
20421
+ const [message] = request.params;
20422
+ msgParams = message;
20423
+ }
20424
+ response.result = await processWalletSwitchChain(msgParams, request);
20425
+ });
20426
+ }
20401
20427
  function src_createProcessAddEthereumChain({
20402
20428
  processAddEthereumChain
20403
20429
  }) {
@@ -20444,6 +20470,7 @@ function src_createEthereumMiddleware(providerHandlers) {
20444
20470
  getPendingNonce,
20445
20471
  getPendingTransactionByHash,
20446
20472
  processSwitchEthereumChain,
20473
+ processWalletSwitchChain,
20447
20474
  processAddEthereumChain,
20448
20475
  getProviderState,
20449
20476
  version
@@ -20471,6 +20498,8 @@ function src_createEthereumMiddleware(providerHandlers) {
20471
20498
  getPendingTransactionByHash
20472
20499
  }), src_createProcessSwitchEthereumChain({
20473
20500
  processSwitchEthereumChain
20501
+ }), src_createProcessWalletSwitchChain({
20502
+ processWalletSwitchChain
20474
20503
  }), src_createProcessAddEthereumChain({
20475
20504
  processAddEthereumChain
20476
20505
  })]);
@@ -21176,7 +21205,7 @@ async function src_determineTransactionType(txParams, provider) {
21176
21205
 
21177
21206
 
21178
21207
  function src_hexToBn(hex) {
21179
- return new (src_external_bignumber_js_default())((0,src_util_namespaceObject.stripHexPrefix)(hex), 16);
21208
+ return new src_external_bignumber_js_namespaceObject.BigNumber((0,src_util_namespaceObject.stripHexPrefix)(hex), 16);
21180
21209
  }
21181
21210
  function src_BNToHex(bn) {
21182
21211
  return (0,src_util_namespaceObject.addHexPrefix)(bn.toString(16));
@@ -21279,7 +21308,7 @@ function src_bnLessThan(a, b) {
21279
21308
  if (a === null || a === undefined || b === null || b === undefined) {
21280
21309
  return null;
21281
21310
  }
21282
- return new (src_external_bignumber_js_default())(a, 10).lt(b, 10);
21311
+ return new src_external_bignumber_js_namespaceObject.BigNumber(a, 10).lt(b, 10);
21283
21312
  }
21284
21313
  const src_getIpfsEndpoint = path => `https://infura-ipfs.io/${path}`;
21285
21314
  function src_sanitizeNftMetdataUrl(url) {
@@ -21322,7 +21351,7 @@ const src_addEtherscanTransactions = async params => {
21322
21351
  }));
21323
21352
  const finalTxs = transactionPromises.reduce((accumulator, x) => {
21324
21353
  var _SUPPORTED_NETWORKS$c3, _SUPPORTED_NETWORKS$c4;
21325
- let totalAmountString = x.value ? new (src_external_bignumber_js_default())(x.value).div(new (src_external_bignumber_js_default())(10).pow(new (src_external_bignumber_js_default())(x.tokenDecimal || 18))).toString() : "";
21354
+ let totalAmountString = x.value ? new src_external_bignumber_js_namespaceObject.BigNumber(x.value).div(new src_external_bignumber_js_namespaceObject.BigNumber(10).pow(new src_external_bignumber_js_namespaceObject.BigNumber(x.tokenDecimal || 18))).toString() : "";
21326
21355
  let type = src_CONTRACT_TYPE_ETH;
21327
21356
  if (x.contractAddress !== "") {
21328
21357
  if (x.tokenID) {
@@ -21350,8 +21379,8 @@ const src_addEtherscanTransactions = async params => {
21350
21379
  input: x.input,
21351
21380
  contract_address: x.contractAddress,
21352
21381
  transaction_category: x.transaction_category,
21353
- gas: `0x${new (src_external_bignumber_js_default())(x.gasUsed || 0, 10).toString(16)}`,
21354
- gasPrice: `0x${new (src_external_bignumber_js_default())(x.gasPrice || 0, 10).toString(16)}`,
21382
+ gas: `0x${new src_external_bignumber_js_namespaceObject.BigNumber(x.gasUsed || 0, 10).toString(16)}`,
21383
+ gasPrice: `0x${new src_external_bignumber_js_namespaceObject.BigNumber(x.gasPrice || 0, 10).toString(16)}`,
21355
21384
  chain_id: chainId,
21356
21385
  currency_amount: "",
21357
21386
  nonce: x.nonce,
@@ -21785,6 +21814,7 @@ class src_PreferencesController extends src_base_controllers_namespaceObject.Bas
21785
21814
  signAuthMessage,
21786
21815
  validateSignMessage
21787
21816
  });
21817
+ src_defineProperty_default()(this, "chainNamespace", src_base_controllers_namespaceObject.CHAIN_NAMESPACES.EIP155);
21788
21818
  src_defineProperty_default()(this, "_handle", void 0);
21789
21819
  src_defineProperty_default()(this, "_mutex", new src_external_async_mutex_namespaceObject.Mutex());
21790
21820
  src_defineProperty_default()(this, "getProviderConfig", void 0);
@@ -22423,7 +22453,6 @@ class src_TokenRatesController extends src_base_controllers_namespaceObject.Base
22423
22453
 
22424
22454
 
22425
22455
 
22426
-
22427
22456
  function src_getObjectFromArrayBasedonKey(oldArray, key) {
22428
22457
  return oldArray.reduce((acc, x) => {
22429
22458
  const xkey = x[key];
@@ -22649,7 +22678,7 @@ class src_TokensController extends src_base_controllers_namespaceObject.BaseCont
22649
22678
  logo: x.logo || "eth.svg",
22650
22679
  name: tokenInstance.name,
22651
22680
  symbol: tokenInstance.symbol,
22652
- tokenAddress: src_toChecksumAddressByChainId(tokenInstance.address, x.chainId),
22681
+ tokenAddress: tokenInstance.address,
22653
22682
  balance: `0x${balance}`,
22654
22683
  customTokenId: x.customTokenId,
22655
22684
  network: x.chainId,
@@ -23803,8 +23832,8 @@ class src_TransactionController extends src_TransactionStateManager {
23803
23832
  if (suggestedMaxPriorityFeePerGas && suggestedMaxFeePerGas) {
23804
23833
  return {
23805
23834
  // send to controller in hex wei
23806
- maxFeePerGas: (0,src_util_namespaceObject.addHexPrefix)(src_decGWEIToHexWEI(new (src_external_bignumber_js_default())(suggestedMaxFeePerGas)).toString(16)),
23807
- maxPriorityFeePerGas: (0,src_util_namespaceObject.addHexPrefix)(src_decGWEIToHexWEI(new (src_external_bignumber_js_default())(suggestedMaxPriorityFeePerGas)).toString(16))
23835
+ maxFeePerGas: (0,src_util_namespaceObject.addHexPrefix)(src_decGWEIToHexWEI(new src_external_bignumber_js_namespaceObject.BigNumber(suggestedMaxFeePerGas)).toString(16)),
23836
+ maxPriorityFeePerGas: (0,src_util_namespaceObject.addHexPrefix)(src_decGWEIToHexWEI(new src_external_bignumber_js_namespaceObject.BigNumber(suggestedMaxPriorityFeePerGas)).toString(16))
23808
23837
  };
23809
23838
  }
23810
23839
  } else if (gasEstimateType === src_GAS_ESTIMATE_TYPES.LEGACY) {
@@ -23814,7 +23843,7 @@ class src_TransactionController extends src_TransactionStateManager {
23814
23843
  // The LEGACY type includes low, medium and high estimates of
23815
23844
  // gas price values.
23816
23845
  return {
23817
- gasPrice: (0,src_util_namespaceObject.addHexPrefix)(src_decGWEIToHexWEI(new (src_external_bignumber_js_default())(medium)).toString(16))
23846
+ gasPrice: (0,src_util_namespaceObject.addHexPrefix)(src_decGWEIToHexWEI(new src_external_bignumber_js_namespaceObject.BigNumber(medium)).toString(16))
23818
23847
  };
23819
23848
  } else if (gasEstimateType === src_GAS_ESTIMATE_TYPES.ETH_GASPRICE) {
23820
23849
  const {
@@ -23823,7 +23852,7 @@ class src_TransactionController extends src_TransactionStateManager {
23823
23852
  // The ETH_GASPRICE type just includes a single gas price property,
23824
23853
  // which we can assume was retrieved from eth_gasPrice
23825
23854
  return {
23826
- gasPrice: (0,src_util_namespaceObject.addHexPrefix)(src_decGWEIToHexWEI(new (src_external_bignumber_js_default())(gasPrice)).toString(16))
23855
+ gasPrice: (0,src_util_namespaceObject.addHexPrefix)(src_decGWEIToHexWEI(new src_external_bignumber_js_namespaceObject.BigNumber(gasPrice)).toString(16))
23827
23856
  };
23828
23857
  }
23829
23858
  } catch (error) {
@@ -24000,6 +24029,7 @@ class src_TransactionController extends src_TransactionStateManager {
24000
24029
 
24001
24030
 
24002
24031
 
24032
+
24003
24033
 
24004
24034
 
24005
24035
  /**
@@ -9,7 +9,7 @@ import { JRPCEngine, providerFromEngine, createAsyncMiddleware, mergeMiddleware,
9
9
  import { defineChain, createPublicClient, http, createWalletClient, parseEther, toHex } from 'viem';
10
10
  import { createPaymasterClient, createBundlerClient, entryPoint06Address, entryPoint07Address } from 'viem/account-abstraction';
11
11
  import { get } from '@toruslabs/http-helpers';
12
- import BigNumber from 'bignumber.js';
12
+ import { BigNumber } from 'bignumber.js';
13
13
  import _objectDestructuringEmpty from '@babel/runtime/helpers/objectDestructuringEmpty';
14
14
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
15
15
  import BN, { BN as BN$1 } from 'bn.js';
@@ -2277,13 +2277,19 @@ async function validateAddChainData(data) {
2277
2277
  }
2278
2278
  function validateSwitchChainData(data) {
2279
2279
  const {
2280
- chainId
2280
+ chainId: fullChainId
2281
2281
  } = data || {};
2282
- if (!chainId) {
2282
+ if (!fullChainId) {
2283
2283
  throw new Error("Invalid switch chain params: please pass chainId in params");
2284
2284
  }
2285
- if (!isHexString(chainId)) {
2286
- throw new Error("Invalid switch chain params: please pass a valid hex chainId in params, for: ex: 0x1");
2285
+ if (!isHexString(fullChainId)) {
2286
+ const [namespace, chainId] = fullChainId.split(":");
2287
+ if (namespace !== CHAIN_NAMESPACES.SOLANA && namespace !== CHAIN_NAMESPACES.EIP155) {
2288
+ throw new Error("Invalid switch chain params: invalid namespace");
2289
+ }
2290
+ if (!chainId || isNaN(Number(chainId))) {
2291
+ throw new Error("Invalid switch chain params: invalid chainId");
2292
+ }
2287
2293
  }
2288
2294
  }
2289
2295
 
@@ -2837,6 +2843,25 @@ function createProcessSwitchEthereumChain({
2837
2843
  response.result = await processSwitchEthereumChain(msgParams, request);
2838
2844
  });
2839
2845
  }
2846
+ function createProcessWalletSwitchChain({
2847
+ processWalletSwitchChain
2848
+ }) {
2849
+ return createAsyncMiddleware(async (request, response, next) => {
2850
+ const {
2851
+ method
2852
+ } = request;
2853
+ if (method !== PROVIDER_JRPC_METHODS.WALLET_SWITCH_CHAIN) return next();
2854
+ if (!processWalletSwitchChain) throw new Error("WalletMiddleware - opts.processWalletSwitchChain not provided");
2855
+ if (!(request !== null && request !== void 0 && request.params)) throw new Error("WalletMiddleware - missing params");
2856
+ let msgParams = request.params;
2857
+ if (Array.isArray(request.params)) {
2858
+ if (!(request.params.length === 1)) throw new Error(`WalletMiddleware - incorrect params for ${method} method. expected [data]`);
2859
+ const [message] = request.params;
2860
+ msgParams = message;
2861
+ }
2862
+ response.result = await processWalletSwitchChain(msgParams, request);
2863
+ });
2864
+ }
2840
2865
  function createProcessAddEthereumChain({
2841
2866
  processAddEthereumChain
2842
2867
  }) {
@@ -2883,6 +2908,7 @@ function createEthereumMiddleware(providerHandlers) {
2883
2908
  getPendingNonce,
2884
2909
  getPendingTransactionByHash,
2885
2910
  processSwitchEthereumChain,
2911
+ processWalletSwitchChain,
2886
2912
  processAddEthereumChain,
2887
2913
  getProviderState,
2888
2914
  version
@@ -2910,6 +2936,8 @@ function createEthereumMiddleware(providerHandlers) {
2910
2936
  getPendingTransactionByHash
2911
2937
  }), createProcessSwitchEthereumChain({
2912
2938
  processSwitchEthereumChain
2939
+ }), createProcessWalletSwitchChain({
2940
+ processWalletSwitchChain
2913
2941
  }), createProcessAddEthereumChain({
2914
2942
  processAddEthereumChain
2915
2943
  })]);
@@ -4165,6 +4193,7 @@ class PreferencesController extends BasePreferencesController {
4165
4193
  signAuthMessage,
4166
4194
  validateSignMessage
4167
4195
  });
4196
+ _defineProperty(this, "chainNamespace", CHAIN_NAMESPACES.EIP155);
4168
4197
  _defineProperty(this, "_handle", void 0);
4169
4198
  _defineProperty(this, "_mutex", new Mutex());
4170
4199
  _defineProperty(this, "getProviderConfig", void 0);
@@ -5009,7 +5038,7 @@ class TokensController extends BaseController {
5009
5038
  logo: x.logo || "eth.svg",
5010
5039
  name: tokenInstance.name,
5011
5040
  symbol: tokenInstance.symbol,
5012
- tokenAddress: toChecksumAddressByChainId(tokenInstance.address, x.chainId),
5041
+ tokenAddress: tokenInstance.address,
5013
5042
  balance: `0x${balance}`,
5014
5043
  customTokenId: x.customTokenId,
5015
5044
  network: x.chainId,
@@ -6280,4 +6309,4 @@ class TransactionController extends TransactionStateManager {
6280
6309
  }
6281
6310
  }
6282
6311
 
6283
- export { ARBITRUM_MAINNET_CHAIN_ID, ARBITRUM_TESTNET_CHAIN_ID, AVALANCHE_MAINNET_CHAIN_ID, AVALANCHE_TESTNET_CHAIN_ID, AccountAbstractionController, AccountTrackerController, AddChainController, BASE_CHAIN_ID, BASE_TESTNET_CHAIN_ID, BNToHex, BSC_MAINNET_CHAIN_ID, BSC_TESTNET_CHAIN_ID, BiconomySmartAccount, CELO_MAINNET_CHAIN_ID, CHAIN_ID_TO_GAS_LIMIT_BUFFER_MAP, COINGECKO_PLATFORMS_CHAIN_CODE_MAP, COINGECKO_SUPPORTED_CURRENCIES, CONTRACT_TYPE_ERC1155, CONTRACT_TYPE_ERC20, CONTRACT_TYPE_ERC721, CONTRACT_TYPE_ETH, CurrencyController, DEFAULT_CURRENCY, ERC1155_INTERFACE_ID, ERC721_ENUMERABLE_INTERFACE_ID, ERC721_INTERFACE_ID, ERC721_METADATA_INTERFACE_ID, ETHERSCAN_SUPPORTED_CHAINS, GAS_ESTIMATE_TYPES, GAS_LIMITS, GasFeeController, KernelSmartAccount, KeyringController, LOCALHOST, MAINNET_CHAIN_ID, METHOD_TYPES, MessageController, NetworkController, NexusSmartAccount, NftHandler, NftsController, NonceTracker, OLD_ERC721_LIST, OPTIMISM_MAINNET_CHAIN_ID, OPTIMISM_TESTNET_CHAIN_ID, POLYGON_AMOY_CHAIN_ID, POLYGON_CHAIN_ID, PendingTransactionTracker, PersonalMessageController, PollingBlockTracker, PreferencesController, SEPOLIA_CHAIN_ID, SIMPLEHASH_SUPPORTED_CHAINS, SMART_ACCOUNT, SUPPORTED_NETWORKS, SafeSmartAccount, SwitchChainController, TEST_CHAINS, TRANSACTION_ENVELOPE_TYPES, TokenHandler, TokenRatesController, TokensController, TransactionController, TransactionGasUtil, TransactionStateManager, TrustSmartAccount, TypedMessageController, XDAI_CHAIN_ID, addCurrencies, addEtherscanTransactions, bnLessThan, conversionGTE, conversionGreaterThan, conversionLTE, conversionLessThan, conversionMax, conversionUtil, createChainIdMiddleware, createEthereumMiddleware, createGetAccountsMiddleware, createJsonRpcClient, createPendingNonceMiddleware, createPendingTxMiddleware, createProcessAddEthereumChain, createProcessEstimateUserOperationGasMiddleware, createProcessEthSignMessage, createProcessPersonalMessage, createProcessSwitchEthereumChain, createProcessTransactionMiddleware, createProcessTypedMessageV4, createProviderConfigMiddleware, createRequestAccountsMiddleware, decGWEIToHexWEI, determineTransactionType, ensureFieldIsString, ensureMutuallyExclusiveFieldsNotProvided, eoaInterceptorMiddleware, eoaProviderAsMiddleware, erc1155Abi, erc20Abi, erc721Abi, formatDate, formatPastTx, formatTime, formatTxMetaForRpcResult, generateHistoryEntry, getBigNumber, getChainType, getEthTxStatus, getEtherScanHashLink, getFinalStates, getIpfsEndpoint, hexToBn, hexWEIToDecGWEI, isAddressByChainId, isEIP1559Transaction, isLegacyTransaction, multiplyCurrencies, normalizeAndValidateTxParams, normalizeMessageData, normalizeTxParameters, parseStandardTokenTransactionData, readAddressAsContract, replayHistory, sanitizeNftMetdataUrl, singleBalanceCheckerAbi, snapshotFromTxMeta, subtractCurrencies, toChecksumAddressByChainId, toNegative, transactionMatchesNetwork, validateAddChainData, validateAddress, validateFrom, validateRecipient, validateSignMessageData, validateSwitchChainData, validateTxParameters, validateTypedSignMessageDataV4 };
6312
+ export { ARBITRUM_MAINNET_CHAIN_ID, ARBITRUM_TESTNET_CHAIN_ID, AVALANCHE_MAINNET_CHAIN_ID, AVALANCHE_TESTNET_CHAIN_ID, AccountAbstractionController, AccountTrackerController, AddChainController, BASE_CHAIN_ID, BASE_TESTNET_CHAIN_ID, BNToHex, BSC_MAINNET_CHAIN_ID, BSC_TESTNET_CHAIN_ID, BiconomySmartAccount, CELO_MAINNET_CHAIN_ID, CHAIN_ID_TO_GAS_LIMIT_BUFFER_MAP, COINGECKO_PLATFORMS_CHAIN_CODE_MAP, COINGECKO_SUPPORTED_CURRENCIES, CONTRACT_TYPE_ERC1155, CONTRACT_TYPE_ERC20, CONTRACT_TYPE_ERC721, CONTRACT_TYPE_ETH, CurrencyController, DEFAULT_CURRENCY, ERC1155_INTERFACE_ID, ERC721_ENUMERABLE_INTERFACE_ID, ERC721_INTERFACE_ID, ERC721_METADATA_INTERFACE_ID, ETHERSCAN_SUPPORTED_CHAINS, GAS_ESTIMATE_TYPES, GAS_LIMITS, GasFeeController, KernelSmartAccount, KeyringController, LOCALHOST, MAINNET_CHAIN_ID, METHOD_TYPES, MessageController, NetworkController, NexusSmartAccount, NftHandler, NftsController, NonceTracker, OLD_ERC721_LIST, OPTIMISM_MAINNET_CHAIN_ID, OPTIMISM_TESTNET_CHAIN_ID, POLYGON_AMOY_CHAIN_ID, POLYGON_CHAIN_ID, PendingTransactionTracker, PersonalMessageController, PollingBlockTracker, PreferencesController, SEPOLIA_CHAIN_ID, SIMPLEHASH_SUPPORTED_CHAINS, SMART_ACCOUNT, SUPPORTED_NETWORKS, SafeSmartAccount, SwitchChainController, TEST_CHAINS, TRANSACTION_ENVELOPE_TYPES, TokenHandler, TokenRatesController, TokensController, TransactionController, TransactionGasUtil, TransactionStateManager, TrustSmartAccount, TypedMessageController, XDAI_CHAIN_ID, addCurrencies, addEtherscanTransactions, bnLessThan, conversionGTE, conversionGreaterThan, conversionLTE, conversionLessThan, conversionMax, conversionUtil, createChainIdMiddleware, createEthereumMiddleware, createGetAccountsMiddleware, createJsonRpcClient, createPendingNonceMiddleware, createPendingTxMiddleware, createProcessAddEthereumChain, createProcessEstimateUserOperationGasMiddleware, createProcessEthSignMessage, createProcessPersonalMessage, createProcessSwitchEthereumChain, createProcessTransactionMiddleware, createProcessTypedMessageV4, createProcessWalletSwitchChain, createProviderConfigMiddleware, createRequestAccountsMiddleware, decGWEIToHexWEI, determineTransactionType, ensureFieldIsString, ensureMutuallyExclusiveFieldsNotProvided, eoaInterceptorMiddleware, eoaProviderAsMiddleware, erc1155Abi, erc20Abi, erc721Abi, formatDate, formatPastTx, formatTime, formatTxMetaForRpcResult, generateHistoryEntry, getBigNumber, getChainType, getEthTxStatus, getEtherScanHashLink, getFinalStates, getIpfsEndpoint, hexToBn, hexWEIToDecGWEI, isAddressByChainId, isEIP1559Transaction, isLegacyTransaction, multiplyCurrencies, normalizeAndValidateTxParams, normalizeMessageData, normalizeTxParameters, parseStandardTokenTransactionData, readAddressAsContract, replayHistory, sanitizeNftMetdataUrl, singleBalanceCheckerAbi, snapshotFromTxMeta, subtractCurrencies, toChecksumAddressByChainId, toNegative, transactionMatchesNetwork, validateAddChainData, validateAddress, validateFrom, validateRecipient, validateSignMessageData, validateSwitchChainData, validateTxParameters, validateTypedSignMessageDataV4 };