@toruslabs/ethereum-controllers 5.3.2 → 5.3.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.
@@ -8,7 +8,7 @@ import { addHexPrefix, isValidAddress, toChecksumAddress, stripHexPrefix, isHexS
8
8
  import BigNumber from 'bignumber.js';
9
9
  import { get, post, remove, patch } from '@toruslabs/http-helpers';
10
10
  import { cloneDeep, merge, omitBy, mapValues, keyBy, sortBy, pickBy } from 'lodash';
11
- import '@babel/runtime/helpers/objectDestructuringEmpty';
11
+ import _objectDestructuringEmpty from '@babel/runtime/helpers/objectDestructuringEmpty';
12
12
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
13
13
  import BN, { BN as BN$1 } from 'bn.js';
14
14
  import { concatSig, personalSign, signTypedData, getEncryptionPublicKey, decrypt, typedSignatureHash, TYPED_MESSAGE_SCHEMA, SignTypedDataVersion } from '@metamask/eth-sig-util';
@@ -1335,6 +1335,10 @@ class CurrencyController extends BaseCurrencyController {
1335
1335
  }
1336
1336
  }
1337
1337
 
1338
+ const _excluded$1 = ["aBase", "bBase"],
1339
+ _excluded2 = ["aBase", "bBase"],
1340
+ _excluded3 = ["multiplicandBase", "multiplierBase"];
1341
+
1338
1342
  // Big Number Constants
1339
1343
  const BIG_NUMBER_WEI_MULTIPLIER = new BigNumber("1000000000000000000");
1340
1344
  const BIG_NUMBER_GWEI_MULTIPLIER = new BigNumber("1000000000");
@@ -1361,6 +1365,9 @@ const baseChange = {
1361
1365
  BN: n => new BN(n.toString(16))
1362
1366
  };
1363
1367
 
1368
+ // Utility function for checking base types
1369
+ const isValidBase = base => Number.isInteger(base) && base > 1;
1370
+
1364
1371
  /**
1365
1372
  * Utility method to convert a value between denominations, formats and currencies.
1366
1373
  */
@@ -1434,6 +1441,101 @@ const conversionUtil = (value, _ref2) => {
1434
1441
  value
1435
1442
  });
1436
1443
  };
1444
+ const getBigNumber = (value, base) => {
1445
+ if (!isValidBase(base)) {
1446
+ throw new Error("Must specificy valid base");
1447
+ }
1448
+
1449
+ // We don't include 'number' here, because BigNumber will throw if passed
1450
+ // a number primitive it considers unsafe.
1451
+ if (typeof value === "string" || value instanceof BigNumber) {
1452
+ return new BigNumber(value, base);
1453
+ }
1454
+ return new BigNumber(String(value), base);
1455
+ };
1456
+ const addCurrencies = function (a, b) {
1457
+ let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1458
+ const {
1459
+ aBase,
1460
+ bBase
1461
+ } = options,
1462
+ conversionOptions = _objectWithoutProperties(options, _excluded$1);
1463
+ if (!isValidBase(aBase) || !isValidBase(bBase)) {
1464
+ throw new Error("Must specify valid aBase and bBase");
1465
+ }
1466
+ const value = getBigNumber(a, aBase).plus(getBigNumber(b, bBase));
1467
+ return converter(_objectSpread({
1468
+ value
1469
+ }, conversionOptions));
1470
+ };
1471
+ const subtractCurrencies = function (a, b) {
1472
+ let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1473
+ const {
1474
+ aBase,
1475
+ bBase
1476
+ } = options,
1477
+ conversionOptions = _objectWithoutProperties(options, _excluded2);
1478
+ if (!isValidBase(aBase) || !isValidBase(bBase)) {
1479
+ throw new Error("Must specify valid aBase and bBase");
1480
+ }
1481
+ const value = getBigNumber(a, aBase).minus(getBigNumber(b, bBase));
1482
+ return converter(_objectSpread({
1483
+ value
1484
+ }, conversionOptions));
1485
+ };
1486
+ const multiplyCurrencies = function (a, b) {
1487
+ let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1488
+ const {
1489
+ multiplicandBase,
1490
+ multiplierBase
1491
+ } = options,
1492
+ conversionOptions = _objectWithoutProperties(options, _excluded3);
1493
+ if (!isValidBase(multiplicandBase) || !isValidBase(multiplierBase)) {
1494
+ throw new Error("Must specify valid multiplicandBase and multiplierBase");
1495
+ }
1496
+ const value = getBigNumber(a, multiplicandBase).times(getBigNumber(b, multiplierBase));
1497
+ return converter(_objectSpread({
1498
+ value
1499
+ }, conversionOptions));
1500
+ };
1501
+ const conversionGreaterThan = (_ref3, _ref4) => {
1502
+ let secondProps = Object.assign({}, (_objectDestructuringEmpty(_ref4), _ref4));
1503
+ let firstProps = Object.assign({}, (_objectDestructuringEmpty(_ref3), _ref3));
1504
+ const firstValue = converter(_objectSpread({}, firstProps));
1505
+ const secondValue = converter(_objectSpread({}, secondProps));
1506
+ return firstValue.gt(secondValue);
1507
+ };
1508
+ const conversionLessThan = (_ref5, _ref6) => {
1509
+ let secondProps = Object.assign({}, (_objectDestructuringEmpty(_ref6), _ref6));
1510
+ let firstProps = Object.assign({}, (_objectDestructuringEmpty(_ref5), _ref5));
1511
+ const firstValue = converter(_objectSpread({}, firstProps));
1512
+ const secondValue = converter(_objectSpread({}, secondProps));
1513
+ return firstValue.lt(secondValue);
1514
+ };
1515
+ const conversionMax = (_ref7, _ref8) => {
1516
+ let secondProps = Object.assign({}, (_objectDestructuringEmpty(_ref8), _ref8));
1517
+ let firstProps = Object.assign({}, (_objectDestructuringEmpty(_ref7), _ref7));
1518
+ const firstIsGreater = conversionGreaterThan(_objectSpread({}, firstProps), _objectSpread({}, secondProps));
1519
+ return firstIsGreater ? firstProps.value : secondProps.value;
1520
+ };
1521
+ const conversionGTE = (_ref9, _ref10) => {
1522
+ let secondProps = Object.assign({}, (_objectDestructuringEmpty(_ref10), _ref10));
1523
+ let firstProps = Object.assign({}, (_objectDestructuringEmpty(_ref9), _ref9));
1524
+ const firstValue = converter(_objectSpread({}, firstProps));
1525
+ const secondValue = converter(_objectSpread({}, secondProps));
1526
+ return firstValue.isGreaterThanOrEqualTo(secondValue);
1527
+ };
1528
+ const conversionLTE = (_ref11, _ref12) => {
1529
+ let secondProps = Object.assign({}, (_objectDestructuringEmpty(_ref12), _ref12));
1530
+ let firstProps = Object.assign({}, (_objectDestructuringEmpty(_ref11), _ref11));
1531
+ const firstValue = converter(_objectSpread({}, firstProps));
1532
+ const secondValue = converter(_objectSpread({}, secondProps));
1533
+ return firstValue.isLessThanOrEqualTo(secondValue);
1534
+ };
1535
+ const toNegative = function (n) {
1536
+ let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1537
+ return multiplyCurrencies(n, -1, options);
1538
+ };
1437
1539
  const decGWEIToHexWEI = decGWEI => {
1438
1540
  return conversionUtil(decGWEI, {
1439
1541
  fromNumericBase: "dec",
@@ -5906,7 +6008,7 @@ class TransactionController extends TransactionStateManager {
5906
6008
  category,
5907
6009
  methodParams
5908
6010
  } = await determineTransactionType(txParameters, this.provider);
5909
- txMeta.type = type;
6011
+ txMeta.contractType = type;
5910
6012
  txMeta.transactionCategory = category;
5911
6013
  txMeta.methodParams = methodParams;
5912
6014
  txMeta.transaction.value = txMeta.transaction.value ? addHexPrefix(txMeta.transaction.value) : "0x0";
@@ -6008,5 +6110,5 @@ class TransactionController extends TransactionStateManager {
6008
6110
  }
6009
6111
  }
6010
6112
 
6011
- 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, bnLessThan, createChainIdMiddleware, createEthereumMiddleware, createGetAccountsMiddleware, createJsonRpcClient, createPendingNonceMiddleware, createPendingTxMiddleware, createProcessAddEthereumChain, createProcessDecryptMessageMiddleware, createProcessEncryptionPublicKeyMiddleware, createProcessEthSignMessage, createProcessPersonalMessage, createProcessSwitchEthereumChain, createProcessTransactionMiddleware, createProcessTypedMessage, createProcessTypedMessageV3, createProcessTypedMessageV4, createProviderConfigMiddleware, createRequestAccountsMiddleware, determineTransactionType, ensureFieldIsString, ensureMutuallyExclusiveFieldsNotProvided, erc1155Abi, erc20Abi, erc721Abi, formatDate, formatPastTx, formatTime, formatTxMetaForRpcResult, generateHistoryEntry, getChainType, getEthTxStatus, getEtherScanHashLink, getFinalStates, getIpfsEndpoint, idleTimeTracker, isAddressByChainId, isEIP1559Transaction, isLegacyTransaction, normalizeAndValidateTxParams, normalizeMessageData, normalizeTxParameters, parseDecryptMessageData, parseStandardTokenTransactionData, readAddressAsContract, replayHistory, sanitizeNftMetdataUrl, singleBalanceCheckerAbi, snapshotFromTxMeta, toChecksumAddressByChainId, transactionMatchesNetwork, validateAddChainData, validateAddress, validateDecryptedMessageData, validateEncryptionPublicKeyMessageData, validateFrom, validateRecipient, validateSignMessageData, validateSwitchChainData, validateTxParameters, validateTypedSignMessageDataV1, validateTypedSignMessageDataV3V4 };
6113
+ 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, 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 };
6012
6114
  //# sourceMappingURL=ethereumControllers.esm.js.map