@toruslabs/ethereum-controllers 5.5.2 → 5.5.4

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 (51) hide show
  1. package/dist/ethereumControllers.cjs.js +22 -21
  2. package/dist/ethereumControllers.esm.js +22 -20
  3. package/dist/ethereumControllers.umd.min.js +1 -2
  4. package/dist/ethereumControllers.umd.min.js.LICENSE.txt +0 -2
  5. package/dist/types/Account/AccountTrackerController.d.ts +1 -1
  6. package/dist/types/utils/interfaces.d.ts +3 -0
  7. package/package.json +14 -15
  8. package/dist/ethereumControllers.cjs.js.map +0 -1
  9. package/dist/ethereumControllers.esm.js.map +0 -1
  10. package/dist/ethereumControllers.umd.min.js.map +0 -1
  11. package/src/Account/AccountTrackerController.ts +0 -172
  12. package/src/Block/PollingBlockTracker.ts +0 -89
  13. package/src/Currency/CurrencyController.ts +0 -117
  14. package/src/Gas/GasFeeController.ts +0 -261
  15. package/src/Gas/IGasFeeController.ts +0 -56
  16. package/src/Gas/gasUtil.ts +0 -163
  17. package/src/Keyring/KeyringController.ts +0 -117
  18. package/src/Message/AbstractMessageController.ts +0 -136
  19. package/src/Message/AddChainController.ts +0 -73
  20. package/src/Message/DecryptMessageController.ts +0 -76
  21. package/src/Message/EncryptionPublicKeyController.ts +0 -75
  22. package/src/Message/MessageController.ts +0 -74
  23. package/src/Message/PersonalMessageController.ts +0 -74
  24. package/src/Message/SwitchChainController.ts +0 -74
  25. package/src/Message/TypedMessageController.ts +0 -109
  26. package/src/Message/utils.ts +0 -155
  27. package/src/Network/NetworkController.ts +0 -184
  28. package/src/Network/createEthereumMiddleware.ts +0 -475
  29. package/src/Network/createJsonRpcClient.ts +0 -63
  30. package/src/Nfts/INftsController.ts +0 -13
  31. package/src/Nfts/NftHandler.ts +0 -191
  32. package/src/Nfts/NftsController.ts +0 -216
  33. package/src/Preferences/PreferencesController.ts +0 -473
  34. package/src/Tokens/ITokensController.ts +0 -13
  35. package/src/Tokens/TokenHandler.ts +0 -60
  36. package/src/Tokens/TokenRatesController.ts +0 -134
  37. package/src/Tokens/TokensController.ts +0 -273
  38. package/src/Transaction/NonceTracker.ts +0 -152
  39. package/src/Transaction/PendingTransactionTracker.ts +0 -235
  40. package/src/Transaction/TransactionController.ts +0 -558
  41. package/src/Transaction/TransactionGasUtil.ts +0 -74
  42. package/src/Transaction/TransactionStateHistoryHelper.ts +0 -41
  43. package/src/Transaction/TransactionStateManager.ts +0 -315
  44. package/src/Transaction/TransactionUtils.ts +0 -333
  45. package/src/index.ts +0 -49
  46. package/src/utils/abis.ts +0 -677
  47. package/src/utils/constants.ts +0 -438
  48. package/src/utils/contractAddresses.ts +0 -19
  49. package/src/utils/conversionUtils.ts +0 -269
  50. package/src/utils/helpers.ts +0 -234
  51. package/src/utils/interfaces.ts +0 -516
@@ -1090,9 +1090,6 @@ class AccountTrackerController extends base_controllers_namespaceObject.BaseCont
1090
1090
  this.defaultState = {
1091
1091
  accounts: {}
1092
1092
  };
1093
- this.defaultConfig = {
1094
- _currentBlock: null
1095
- };
1096
1093
  this.initialize();
1097
1094
  this.provider = provider;
1098
1095
  this.blockTracker = blockTracker;
@@ -1108,10 +1105,7 @@ class AccountTrackerController extends base_controllers_namespaceObject.BaseCont
1108
1105
  });
1109
1106
  this.blockTrackerListener = this.blockTrackerListener.bind(this);
1110
1107
  }
1111
- blockTrackerListener(block) {
1112
- this.configure({
1113
- _currentBlock: block
1114
- });
1108
+ blockTrackerListener() {
1115
1109
  this.refresh();
1116
1110
  }
1117
1111
  startPolling() {
@@ -1152,8 +1146,6 @@ class AccountTrackerController extends base_controllers_namespaceObject.BaseCont
1152
1146
  async refresh() {
1153
1147
  const releaseLock = await this.mutex.acquire();
1154
1148
  try {
1155
- const currentBlock = this.config._currentBlock;
1156
- if (!currentBlock) return;
1157
1149
  this._updateAccounts();
1158
1150
  } catch (error) {} finally {
1159
1151
  releaseLock();
@@ -1564,7 +1556,6 @@ async function determineTransactionType(txParams, provider) {
1564
1556
 
1565
1557
 
1566
1558
 
1567
-
1568
1559
  function getEtherScanHashLink(txHash, chainId) {
1569
1560
  if (!SUPPORTED_NETWORKS[chainId]) return "";
1570
1561
  return `${SUPPORTED_NETWORKS[chainId].blockExplorerUrl}/tx/${txHash}`;
@@ -1718,13 +1709,24 @@ const addEtherscanTransactions = async (txn, lowerCaseSelectedAddress, provider,
1718
1709
  }));
1719
1710
  const finalTxs = transactionPromises.reduce((accumulator, x) => {
1720
1711
  var _SUPPORTED_NETWORKS$c3, _SUPPORTED_NETWORKS$c4;
1721
- const totalAmountString = x.value ? (0,external_ethers_namespaceObject.formatEther)(x.value) : "";
1712
+ let totalAmountString = x.value ? new (external_bignumber_js_default())(x.value).div(new (external_bignumber_js_default())(10).pow(new (external_bignumber_js_default())(x.tokenDecimal || 18))).toString() : "";
1713
+ let type = CONTRACT_TYPE_ETH;
1714
+ if (x.contractAddress !== "") {
1715
+ if (x.tokenID) {
1716
+ type = x.tokenValue ? CONTRACT_TYPE_ERC1155 : CONTRACT_TYPE_ERC721;
1717
+ } else {
1718
+ type = CONTRACT_TYPE_ERC20;
1719
+ }
1720
+ }
1721
+ if (type === CONTRACT_TYPE_ERC1155) {
1722
+ totalAmountString = x.tokenValue;
1723
+ }
1722
1724
  const etherscanTransaction = {
1723
1725
  etherscanLink: getEtherScanHashLink(x.hash, chainId),
1724
- type: x.type || ((_SUPPORTED_NETWORKS$c3 = SUPPORTED_NETWORKS[chainId]) === null || _SUPPORTED_NETWORKS$c3 === void 0 ? void 0 : _SUPPORTED_NETWORKS$c3.ticker) || CONTRACT_TYPE_ETH,
1726
+ type,
1725
1727
  type_image_link: x.type_image_link || "n/a",
1726
- type_name: x.type_name || "n/a",
1727
- symbol: (_SUPPORTED_NETWORKS$c4 = SUPPORTED_NETWORKS[chainId]) === null || _SUPPORTED_NETWORKS$c4 === void 0 ? void 0 : _SUPPORTED_NETWORKS$c4.ticker,
1728
+ type_name: x.tokenName || ((_SUPPORTED_NETWORKS$c3 = SUPPORTED_NETWORKS[chainId]) === null || _SUPPORTED_NETWORKS$c3 === void 0 ? void 0 : _SUPPORTED_NETWORKS$c3.ticker) || "n/a",
1729
+ symbol: x.tokenSymbol || ((_SUPPORTED_NETWORKS$c4 = SUPPORTED_NETWORKS[chainId]) === null || _SUPPORTED_NETWORKS$c4 === void 0 ? void 0 : _SUPPORTED_NETWORKS$c4.ticker),
1728
1730
  token_id: x.tokenID || "",
1729
1731
  total_amount: totalAmountString,
1730
1732
  created_at: new Date(Number(x.timeStamp) * 1000),
@@ -1736,8 +1738,8 @@ const addEtherscanTransactions = async (txn, lowerCaseSelectedAddress, provider,
1736
1738
  input: x.input,
1737
1739
  contract_address: x.contractAddress,
1738
1740
  transaction_category: x.transaction_category,
1739
- gas: x.gas,
1740
- gasPrice: x.gasPrice,
1741
+ gas: `0x${new (external_bignumber_js_default())(x.gasUsed || 0, 10).toString(16)}`,
1742
+ gasPrice: `0x${new (external_bignumber_js_default())(x.gasPrice || 0, 10).toString(16)}`,
1741
1743
  chain_id: chainId,
1742
1744
  currency_amount: "",
1743
1745
  nonce: x.nonce,
@@ -2591,7 +2593,7 @@ class KeyringController extends base_controllers_namespaceObject.BaseKeyringCont
2591
2593
  const hexPrivateKey = accountPrivateKey.padStart(64, "0");
2592
2594
  const bufferPrivKey = Buffer.from(hexPrivateKey, "hex");
2593
2595
  const publicKey = (0,util_namespaceObject.bytesToHex)((0,util_namespaceObject.privateToPublic)(bufferPrivKey));
2594
- const address = (0,util_namespaceObject.bytesToHex)((0,util_namespaceObject.privateToAddress)(bufferPrivKey));
2596
+ const address = (0,util_namespaceObject.toChecksumAddress)((0,util_namespaceObject.bytesToHex)((0,util_namespaceObject.privateToAddress)(bufferPrivKey)));
2595
2597
  const existingWallet = this.state.wallets.find(w => w.address === address);
2596
2598
  if (existingWallet) return existingWallet.address;
2597
2599
  this.update({
@@ -4537,7 +4539,7 @@ class PreferencesController extends base_controllers_namespaceObject.BasePrefere
4537
4539
  calledFromEmbed,
4538
4540
  userInfo,
4539
4541
  rehydrate,
4540
- locale = "en-US",
4542
+ locale = "en",
4541
4543
  type,
4542
4544
  signatures,
4543
4545
  web3AuthClientId,
@@ -4641,7 +4643,7 @@ class PreferencesController extends base_controllers_namespaceObject.BasePrefere
4641
4643
  async patchNewTx(tx, address) {
4642
4644
  var _this$getAddressState2;
4643
4645
  const formattedTx = formatPastTx(tx);
4644
- const storePastTx = (_this$getAddressState2 = this.getAddressState(address)) === null || _this$getAddressState2 === void 0 ? void 0 : _this$getAddressState2.formattedPastTransactions;
4646
+ const storePastTx = ((_this$getAddressState2 = this.getAddressState(address)) === null || _this$getAddressState2 === void 0 ? void 0 : _this$getAddressState2.formattedPastTransactions) || [];
4645
4647
  const duplicateIndex = storePastTx.findIndex(x => x.transaction_hash === tx.transaction_hash && x.chainId === tx.chain_id);
4646
4648
  if (tx.status === base_controllers_namespaceObject.TransactionStatus.submitted || tx.status === base_controllers_namespaceObject.TransactionStatus.confirmed) {
4647
4649
  if (duplicateIndex === -1) {
@@ -6692,5 +6694,4 @@ class TransactionController extends TransactionStateManager {
6692
6694
  */
6693
6695
  module.exports = __webpack_exports__;
6694
6696
  /******/ })()
6695
- ;
6696
- //# sourceMappingURL=ethereumControllers.cjs.js.map
6697
+ ;
@@ -2,7 +2,7 @@ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
2
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
3
  import { CHAIN_NAMESPACES, BaseController, randomId, TransactionStatus, TRANSACTION_TYPES, formatSmallNumbers, addressSlicer, ACTIVITY_ACTION_RECEIVE, ACTIVITY_ACTION_SEND, significantDigits, BaseBlockTracker, timeout, BaseCurrencyController, BaseKeyringController, PROVIDER_JRPC_METHODS, createFetchMiddleware, createSwappableProxy, createEventEmitterProxy, BasePreferencesController, TX_EVENTS, BaseTransactionStateManager, transactionMatchesNetwork as transactionMatchesNetwork$1 } from '@toruslabs/base-controllers';
4
4
  import { Mutex } from 'async-mutex';
5
- import { BrowserProvider, toQuantity, Contract, Interface, formatEther, isHexString as isHexString$1, JsonRpcProvider, keccak256 } from 'ethers';
5
+ import { BrowserProvider, toQuantity, Contract, Interface, isHexString as isHexString$1, JsonRpcProvider, keccak256 } from 'ethers';
6
6
  import log from 'loglevel';
7
7
  import { isHexString, addHexPrefix, isValidAddress, toChecksumAddress, stripHexPrefix, bytesToHex, privateToPublic, privateToAddress, ecsign, bigIntToBytes } from '@ethereumjs/util';
8
8
  import BigNumber from 'bignumber.js';
@@ -890,9 +890,6 @@ class AccountTrackerController extends BaseController {
890
890
  this.defaultState = {
891
891
  accounts: {}
892
892
  };
893
- this.defaultConfig = {
894
- _currentBlock: null
895
- };
896
893
  this.initialize();
897
894
  this.provider = provider;
898
895
  this.blockTracker = blockTracker;
@@ -908,10 +905,7 @@ class AccountTrackerController extends BaseController {
908
905
  });
909
906
  this.blockTrackerListener = this.blockTrackerListener.bind(this);
910
907
  }
911
- blockTrackerListener(block) {
912
- this.configure({
913
- _currentBlock: block
914
- });
908
+ blockTrackerListener() {
915
909
  this.refresh();
916
910
  }
917
911
  startPolling() {
@@ -952,8 +946,6 @@ class AccountTrackerController extends BaseController {
952
946
  async refresh() {
953
947
  const releaseLock = await this.mutex.acquire();
954
948
  try {
955
- const currentBlock = this.config._currentBlock;
956
- if (!currentBlock) return;
957
949
  this._updateAccounts();
958
950
  } catch (error) {} finally {
959
951
  releaseLock();
@@ -1495,13 +1487,24 @@ const addEtherscanTransactions = async (txn, lowerCaseSelectedAddress, provider,
1495
1487
  }));
1496
1488
  const finalTxs = transactionPromises.reduce((accumulator, x) => {
1497
1489
  var _SUPPORTED_NETWORKS$c3, _SUPPORTED_NETWORKS$c4;
1498
- const totalAmountString = x.value ? formatEther(x.value) : "";
1490
+ let totalAmountString = x.value ? new BigNumber(x.value).div(new BigNumber(10).pow(new BigNumber(x.tokenDecimal || 18))).toString() : "";
1491
+ let type = CONTRACT_TYPE_ETH;
1492
+ if (x.contractAddress !== "") {
1493
+ if (x.tokenID) {
1494
+ type = x.tokenValue ? CONTRACT_TYPE_ERC1155 : CONTRACT_TYPE_ERC721;
1495
+ } else {
1496
+ type = CONTRACT_TYPE_ERC20;
1497
+ }
1498
+ }
1499
+ if (type === CONTRACT_TYPE_ERC1155) {
1500
+ totalAmountString = x.tokenValue;
1501
+ }
1499
1502
  const etherscanTransaction = {
1500
1503
  etherscanLink: getEtherScanHashLink(x.hash, chainId),
1501
- type: x.type || ((_SUPPORTED_NETWORKS$c3 = SUPPORTED_NETWORKS[chainId]) === null || _SUPPORTED_NETWORKS$c3 === void 0 ? void 0 : _SUPPORTED_NETWORKS$c3.ticker) || CONTRACT_TYPE_ETH,
1504
+ type,
1502
1505
  type_image_link: x.type_image_link || "n/a",
1503
- type_name: x.type_name || "n/a",
1504
- symbol: (_SUPPORTED_NETWORKS$c4 = SUPPORTED_NETWORKS[chainId]) === null || _SUPPORTED_NETWORKS$c4 === void 0 ? void 0 : _SUPPORTED_NETWORKS$c4.ticker,
1506
+ type_name: x.tokenName || ((_SUPPORTED_NETWORKS$c3 = SUPPORTED_NETWORKS[chainId]) === null || _SUPPORTED_NETWORKS$c3 === void 0 ? void 0 : _SUPPORTED_NETWORKS$c3.ticker) || "n/a",
1507
+ symbol: x.tokenSymbol || ((_SUPPORTED_NETWORKS$c4 = SUPPORTED_NETWORKS[chainId]) === null || _SUPPORTED_NETWORKS$c4 === void 0 ? void 0 : _SUPPORTED_NETWORKS$c4.ticker),
1505
1508
  token_id: x.tokenID || "",
1506
1509
  total_amount: totalAmountString,
1507
1510
  created_at: new Date(Number(x.timeStamp) * 1000),
@@ -1513,8 +1516,8 @@ const addEtherscanTransactions = async (txn, lowerCaseSelectedAddress, provider,
1513
1516
  input: x.input,
1514
1517
  contract_address: x.contractAddress,
1515
1518
  transaction_category: x.transaction_category,
1516
- gas: x.gas,
1517
- gasPrice: x.gasPrice,
1519
+ gas: `0x${new BigNumber(x.gasUsed || 0, 10).toString(16)}`,
1520
+ gasPrice: `0x${new BigNumber(x.gasPrice || 0, 10).toString(16)}`,
1518
1521
  chain_id: chainId,
1519
1522
  currency_amount: "",
1520
1523
  nonce: x.nonce,
@@ -2296,7 +2299,7 @@ class KeyringController extends BaseKeyringController {
2296
2299
  const hexPrivateKey = accountPrivateKey.padStart(64, "0");
2297
2300
  const bufferPrivKey = Buffer.from(hexPrivateKey, "hex");
2298
2301
  const publicKey = bytesToHex(privateToPublic(bufferPrivKey));
2299
- const address = bytesToHex(privateToAddress(bufferPrivKey));
2302
+ const address = toChecksumAddress(bytesToHex(privateToAddress(bufferPrivKey)));
2300
2303
  const existingWallet = this.state.wallets.find(w => w.address === address);
2301
2304
  if (existingWallet) return existingWallet.address;
2302
2305
  this.update({
@@ -4135,7 +4138,7 @@ class PreferencesController extends BasePreferencesController {
4135
4138
  calledFromEmbed,
4136
4139
  userInfo,
4137
4140
  rehydrate,
4138
- locale = "en-US",
4141
+ locale = "en",
4139
4142
  type,
4140
4143
  signatures,
4141
4144
  web3AuthClientId,
@@ -4239,7 +4242,7 @@ class PreferencesController extends BasePreferencesController {
4239
4242
  async patchNewTx(tx, address) {
4240
4243
  var _this$getAddressState2;
4241
4244
  const formattedTx = formatPastTx(tx);
4242
- const storePastTx = (_this$getAddressState2 = this.getAddressState(address)) === null || _this$getAddressState2 === void 0 ? void 0 : _this$getAddressState2.formattedPastTransactions;
4245
+ const storePastTx = ((_this$getAddressState2 = this.getAddressState(address)) === null || _this$getAddressState2 === void 0 ? void 0 : _this$getAddressState2.formattedPastTransactions) || [];
4243
4246
  const duplicateIndex = storePastTx.findIndex(x => x.transaction_hash === tx.transaction_hash && x.chainId === tx.chain_id);
4244
4247
  if (tx.status === TransactionStatus.submitted || tx.status === TransactionStatus.confirmed) {
4245
4248
  if (duplicateIndex === -1) {
@@ -6168,4 +6171,3 @@ class TransactionController extends TransactionStateManager {
6168
6171
  }
6169
6172
 
6170
6173
  export { ARBITRUM_MAINNET_CHAIN_ID, ARBITRUM_TESTNET_CHAIN_ID, AVALANCHE_MAINNET_CHAIN_ID, AVALANCHE_TESTNET_CHAIN_ID, AccountTrackerController, AddChainController, BASE_CHAIN_ID, BASE_TESTNET_CHAIN_ID, BSC_MAINNET_CHAIN_ID, BSC_TESTNET_CHAIN_ID, 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, DecryptMessageController, ERC1155_INTERFACE_ID, ERC721_ENUMERABLE_INTERFACE_ID, ERC721_INTERFACE_ID, ERC721_METADATA_INTERFACE_ID, ETHERSCAN_SUPPORTED_CHAINS, EncryptionPublicKeyController, GAS_ESTIMATE_TYPES, GAS_LIMITS, GasFeeController, KeyringController, LOCALHOST, MAINNET_CHAIN_ID, MESSAGE_EVENTS, METHOD_TYPES, MessageController, MessageStatus, NetworkController, NftHandler, NftsController, NonceTracker, OLD_ERC721_LIST, OPTIMISM_MAINNET_CHAIN_ID, OPTIMISM_TESTNET_CHAIN_ID, POLYGON_CHAIN_ID, POLYGON_MUMBAI_CHAIN_ID, PendingTransactionTracker, PersonalMessageController, PollingBlockTracker, PreferencesController, SEPOLIA_CHAIN_ID, SIMPLEHASH_SUPPORTED_CHAINS, SUPPORTED_NETWORKS, SwitchChainController, TEST_CHAINS, TRANSACTION_ENVELOPE_TYPES, TokenHandler, TokenRatesController, TokensController, TransactionController, TransactionGasUtil, TransactionStateManager, TypedMessageController, XDAI_CHAIN_ID, addCurrencies, addEtherscanTransactions, bnLessThan, conversionGTE, conversionGreaterThan, conversionLTE, conversionLessThan, conversionMax, conversionUtil, createChainIdMiddleware, createEthereumMiddleware, createGetAccountsMiddleware, createJsonRpcClient, createPendingNonceMiddleware, createPendingTxMiddleware, createProcessAddEthereumChain, createProcessDecryptMessageMiddleware, createProcessEncryptionPublicKeyMiddleware, createProcessEthSignMessage, createProcessPersonalMessage, createProcessSwitchEthereumChain, createProcessTransactionMiddleware, createProcessTypedMessage, createProcessTypedMessageV3, createProcessTypedMessageV4, createProviderConfigMiddleware, createRequestAccountsMiddleware, decGWEIToHexWEI, determineTransactionType, ensureFieldIsString, ensureMutuallyExclusiveFieldsNotProvided, erc1155Abi, erc20Abi, erc721Abi, formatDate, formatPastTx, formatTime, formatTxMetaForRpcResult, generateHistoryEntry, getBigNumber, getChainType, getEthTxStatus, getEtherScanHashLink, getFinalStates, getIpfsEndpoint, hexWEIToDecGWEI, idleTimeTracker, isAddressByChainId, isEIP1559Transaction, isLegacyTransaction, multiplyCurrencies, normalizeAndValidateTxParams, normalizeMessageData, normalizeTxParameters, parseDecryptMessageData, parseStandardTokenTransactionData, readAddressAsContract, replayHistory, sanitizeNftMetdataUrl, singleBalanceCheckerAbi, snapshotFromTxMeta, subtractCurrencies, toChecksumAddressByChainId, toNegative, transactionMatchesNetwork, validateAddChainData, validateAddress, validateDecryptedMessageData, validateEncryptionPublicKeyMessageData, validateFrom, validateRecipient, validateSignMessageData, validateSwitchChainData, validateTxParameters, validateTypedSignMessageDataV1, validateTypedSignMessageDataV3V4 };
6171
- //# sourceMappingURL=ethereumControllers.esm.js.map