@toruslabs/ethereum-controllers 4.2.0 → 4.4.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.
@@ -794,6 +794,9 @@ const MessageStatus = {
794
794
  REJECTED: "rejected",
795
795
  FAILED: "failed"
796
796
  };
797
+ const MESSAGE_EVENTS = {
798
+ UNAPPROVED_MESSAGE: "unapprovedMessage"
799
+ };
797
800
 
798
801
  const SINGLE_CALL_BALANCES_ADDRESSES = {
799
802
  [MAINNET_CHAIN_ID]: "0xb1f8e55c7f64d203c1400b9d8555d050f94adf39",
@@ -1876,8 +1879,8 @@ class AbstractMessageController extends BaseController {
1876
1879
  this.messages.push(message);
1877
1880
  this.saveMessageList();
1878
1881
  }
1879
- approveMessage(messageParams) {
1880
- this.setMessageStatus(messageParams.id, MessageStatus.APPROVED);
1882
+ approveMessage(messageId, messageParams) {
1883
+ this.setMessageStatus(messageId, MessageStatus.APPROVED);
1881
1884
  return this.prepMessageForSigning(messageParams);
1882
1885
  }
1883
1886
  setMessageStatus(messageId, status) {
@@ -2040,7 +2043,7 @@ class DecryptMessageController extends AbstractMessageController {
2040
2043
  async processDecryptMessage(messageId) {
2041
2044
  try {
2042
2045
  const msgObject = this.getMessage(messageId);
2043
- const cleanMsgParams = await this.approveMessage(msgObject.messageParams);
2046
+ const cleanMsgParams = await this.approveMessage(messageId, msgObject.messageParams);
2044
2047
  const parsedData = parseDecryptMessageData(cleanMsgParams.data);
2045
2048
  const rawSig = this.decryptMessage(parsedData, cleanMsgParams.from);
2046
2049
  this.updateMessage(_objectSpread(_objectSpread({}, msgObject), {}, {
@@ -2072,7 +2075,7 @@ class DecryptMessageController extends AbstractMessageController {
2072
2075
  type: METHOD_TYPES.ETH_DECRYPT
2073
2076
  };
2074
2077
  await this.addMessage(messageData);
2075
- this.emit(`unapprovedMessage`, _objectSpread({}, messageParams));
2078
+ this.emit(MESSAGE_EVENTS.UNAPPROVED_MESSAGE, messageData);
2076
2079
  return messageId;
2077
2080
  }
2078
2081
  prepMessageForSigning(messageParams) {
@@ -2101,7 +2104,7 @@ class EncryptionPublicKeyController extends AbstractMessageController {
2101
2104
  async processGetEncryptionPublicKey(messageId) {
2102
2105
  try {
2103
2106
  const msgObject = this.getMessage(messageId);
2104
- const cleanMsgParams = await this.approveMessage(msgObject.messageParams);
2107
+ const cleanMsgParams = await this.approveMessage(messageId, msgObject.messageParams);
2105
2108
  const publicKey = this.signEncryptionPublicKey(cleanMsgParams.from);
2106
2109
  this.updateMessage(_objectSpread(_objectSpread({}, msgObject), {}, {
2107
2110
  rawSig: publicKey
@@ -2131,7 +2134,7 @@ class EncryptionPublicKeyController extends AbstractMessageController {
2131
2134
  type: METHOD_TYPES.ETH_GET_ENCRYPTION_PUBLIC_KEY
2132
2135
  };
2133
2136
  await this.addMessage(messageData);
2134
- this.emit(`unapprovedMessage`, _objectSpread({}, messageParams));
2137
+ this.emit(MESSAGE_EVENTS.UNAPPROVED_MESSAGE, messageData);
2135
2138
  return messageId;
2136
2139
  }
2137
2140
  prepMessageForSigning(messageParams) {
@@ -2163,7 +2166,7 @@ class MessageController extends AbstractMessageController {
2163
2166
  async processSignMessage(messageId) {
2164
2167
  try {
2165
2168
  const msgObject = this.getMessage(messageId);
2166
- const cleanMsgParams = await this.approveMessage(msgObject.messageParams);
2169
+ const cleanMsgParams = await this.approveMessage(messageId, msgObject.messageParams);
2167
2170
  const rawSig = this.signMessage(cleanMsgParams.data, cleanMsgParams.from);
2168
2171
  this.updateMessage(_objectSpread(_objectSpread({}, msgObject), {}, {
2169
2172
  rawSig
@@ -2194,7 +2197,7 @@ class MessageController extends AbstractMessageController {
2194
2197
  type: METHOD_TYPES.ETH_SIGN
2195
2198
  };
2196
2199
  await this.addMessage(messageData);
2197
- this.emit(`unapprovedMessage`, messageParams);
2200
+ this.emit(MESSAGE_EVENTS.UNAPPROVED_MESSAGE, messageData);
2198
2201
  return messageId;
2199
2202
  }
2200
2203
  prepMessageForSigning(messageParams) {
@@ -2223,7 +2226,7 @@ class PersonalMessageController extends AbstractMessageController {
2223
2226
  async processPersonalSignMessage(messageId) {
2224
2227
  try {
2225
2228
  const msgObject = this.getMessage(messageId);
2226
- const cleanMsgParams = await this.approveMessage(msgObject.messageParams);
2229
+ const cleanMsgParams = await this.approveMessage(messageId, msgObject.messageParams);
2227
2230
  const rawSig = await this.signPersonalMessage(cleanMsgParams.data, cleanMsgParams.from);
2228
2231
  this.updateMessage(_objectSpread(_objectSpread({}, msgObject), {}, {
2229
2232
  rawSig
@@ -2245,7 +2248,7 @@ class PersonalMessageController extends AbstractMessageController {
2245
2248
  messageParams.origin = req.origin;
2246
2249
  }
2247
2250
  messageParams.data = normalizeMessageData(messageParams.data);
2248
- const messageId = randomId();
2251
+ const messageId = messageParams.id || randomId();
2249
2252
  const messageData = {
2250
2253
  id: messageId,
2251
2254
  messageParams,
@@ -2254,7 +2257,7 @@ class PersonalMessageController extends AbstractMessageController {
2254
2257
  type: METHOD_TYPES.PERSONAL_SIGN
2255
2258
  };
2256
2259
  await this.addMessage(messageData);
2257
- this.emit(`unapprovedMessage`, messageParams);
2260
+ this.emit(MESSAGE_EVENTS.UNAPPROVED_MESSAGE, messageData);
2258
2261
  return messageId;
2259
2262
  }
2260
2263
  prepMessageForSigning(messageParams) {
@@ -2295,7 +2298,7 @@ class TypedMessageController extends AbstractMessageController {
2295
2298
  async processPersonalSignMessage(messageId) {
2296
2299
  try {
2297
2300
  const msgObject = this.getMessage(messageId);
2298
- const cleanMsgParams = await this.approveMessage(msgObject.messageParams);
2301
+ const cleanMsgParams = await this.approveMessage(messageId, msgObject.messageParams);
2299
2302
  const rawSig = await this.signTypedData(cleanMsgParams.data, cleanMsgParams.from, cleanMsgParams.version);
2300
2303
  this.updateMessage(_objectSpread(_objectSpread({}, msgObject), {}, {
2301
2304
  rawSig
@@ -2335,7 +2338,7 @@ class TypedMessageController extends AbstractMessageController {
2335
2338
  type: getMessageType(version)
2336
2339
  };
2337
2340
  await this.addMessage(messageData);
2338
- this.emit(`unapprovedMessage`, messageParams);
2341
+ this.emit(MESSAGE_EVENTS.UNAPPROVED_MESSAGE, messageData);
2339
2342
  return messageId;
2340
2343
  }
2341
2344
  prepMessageForSigning(messageParams) {
@@ -3028,7 +3031,6 @@ class NftsController extends BaseController {
3028
3031
  config,
3029
3032
  state,
3030
3033
  provider,
3031
- getNetworkIdentifier,
3032
3034
  getCustomNfts,
3033
3035
  getSimpleHashNfts,
3034
3036
  onPreferencesStateChange,
@@ -3042,12 +3044,10 @@ class NftsController extends BaseController {
3042
3044
  _defineProperty(this, "provider", void 0);
3043
3045
  _defineProperty(this, "ethersProvider", void 0);
3044
3046
  _defineProperty(this, "_timer", void 0);
3045
- _defineProperty(this, "getNetworkIdentifier", void 0);
3046
3047
  _defineProperty(this, "getCustomNfts", void 0);
3047
3048
  _defineProperty(this, "getSimpleHashNfts", void 0);
3048
3049
  this.provider = provider;
3049
3050
  this.ethersProvider = new BrowserProvider(this.provider, "any");
3050
- this.getNetworkIdentifier = getNetworkIdentifier;
3051
3051
  this.getCustomNfts = getCustomNfts;
3052
3052
  this.getSimpleHashNfts = getSimpleHashNfts;
3053
3053
  this.defaultConfig = {
@@ -3125,7 +3125,7 @@ class NftsController extends BaseController {
3125
3125
  detectNewNfts() {
3126
3126
  const userAddress = this.userSelectedAddress;
3127
3127
  if (!userAddress) return;
3128
- const currentChainId = this.getNetworkIdentifier();
3128
+ const currentChainId = this.config.chainId;
3129
3129
  const nftsToDetect = []; // object[]
3130
3130
  if (!currentChainId) {
3131
3131
  this.update({
@@ -3180,7 +3180,7 @@ class NftsController extends BaseController {
3180
3180
  const oldNfts = [...this.userNfts];
3181
3181
  const nonZeroNfts = [];
3182
3182
  try {
3183
- const currentChainId = this.getNetworkIdentifier();
3183
+ const currentChainId = this.config.chainId;
3184
3184
  if (SIMPLEHASH_SUPPORTED_CHAINS.includes(currentChainId)) {
3185
3185
  const simpleHashBalances = await this.getSimpleHashNfts(userAddress, currentChainId);
3186
3186
  nonZeroNfts.push(...simpleHashBalances);
@@ -3785,7 +3785,6 @@ class TokensController extends BaseController {
3785
3785
  config,
3786
3786
  state,
3787
3787
  provider,
3788
- getNetworkIdentifier,
3789
3788
  getCustomTokens,
3790
3789
  getEtherScanTokens,
3791
3790
  getProviderConfig,
@@ -3800,13 +3799,11 @@ class TokensController extends BaseController {
3800
3799
  _defineProperty(this, "provider", void 0);
3801
3800
  _defineProperty(this, "ethersProvider", void 0);
3802
3801
  _defineProperty(this, "_timer", void 0);
3803
- _defineProperty(this, "getNetworkIdentifier", void 0);
3804
3802
  _defineProperty(this, "getProviderConfig", void 0);
3805
3803
  _defineProperty(this, "getCustomTokens", void 0);
3806
3804
  _defineProperty(this, "getEtherScanTokens", void 0);
3807
3805
  this.provider = provider;
3808
3806
  this.ethersProvider = new BrowserProvider(this.provider, "any");
3809
- this.getNetworkIdentifier = getNetworkIdentifier;
3810
3807
  this.getCustomTokens = getCustomTokens;
3811
3808
  this.getEtherScanTokens = getEtherScanTokens;
3812
3809
  this.getProviderConfig = getProviderConfig;
@@ -3885,7 +3882,7 @@ class TokensController extends BaseController {
3885
3882
  detectNewTokens() {
3886
3883
  const userAddress = this.userSelectedAddress;
3887
3884
  if (!userAddress) return;
3888
- const currentChainId = this.getNetworkIdentifier();
3885
+ const currentChainId = this.config.chainId;
3889
3886
  const tokens = []; // object[]
3890
3887
  if (!currentChainId) {
3891
3888
  this.update({
@@ -3937,7 +3934,7 @@ class TokensController extends BaseController {
3937
3934
  const tokenAddresses = oldTokens.map(x => x.tokenAddress);
3938
3935
  const nonZeroTokens = [];
3939
3936
  try {
3940
- const currentChainId = this.getNetworkIdentifier();
3937
+ const currentChainId = this.config.chainId;
3941
3938
  if (ETHERSCAN_SUPPORTED_CHAINS.includes(currentChainId)) {
3942
3939
  const etherscanBalances = await this.getEtherScanTokens(userAddress, currentChainId);
3943
3940
  nonZeroTokens.push(...etherscanBalances);
@@ -4842,7 +4839,7 @@ class TransactionStateManager extends BaseTransactionStateManager {
4842
4839
  }
4843
4840
  }
4844
4841
  return _objectSpread({
4845
- id: randomId(),
4842
+ id: opts.transaction.id || randomId(),
4846
4843
  time: Date.now(),
4847
4844
  status: TransactionStatus.unapproved,
4848
4845
  loadingDefaults: true,
@@ -5581,5 +5578,5 @@ class TransactionController extends TransactionStateManager {
5581
5578
  }
5582
5579
  }
5583
5580
 
5584
- export { ARBITRUM_MAINNET_CHAIN_ID, ARBITRUM_TESTNET_CHAIN_ID, AVALANCHE_MAINNET_CHAIN_ID, AVALANCHE_TESTNET_CHAIN_ID, AccountTrackerController, 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, GOERLI_CHAIN_ID, GasFeeController, KeyringController, LOCALHOST, MAINNET_CHAIN_ID, 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, TEST_CHAINS, TRANSACTION_ENVELOPE_TYPES, TokenHandler, TokenRatesController, TokensController, TransactionController, TransactionGasUtil, TransactionStateManager, TypedMessageController, XDAI_CHAIN_ID, bnLessThan, createChainIdMiddleware, createEthereumMiddleware, createGetAccountsMiddleware, createJsonRpcClient, createPendingNonceMiddleware, createPendingTxMiddleware, createProcessDecryptMessageMiddleware, createProcessEncryptionPublicKeyMiddleware, createProcessEthSignMessage, createProcessPersonalMessage, createProcessTransactionMiddleware, createProcessTypedMessage, createProcessTypedMessageV3, createProcessTypedMessageV4, createProviderConfigMiddleware, createRequestAccountsMiddleware, determineTransactionType, ensureFieldIsString, ensureMutuallyExclusiveFieldsNotProvided, formatDate, formatPastTx, formatTime, formatTxMetaForRpcResult, generateHistoryEntry, getChainType, getEthTxStatus, getEtherScanHashLink, getFinalStates, getIpfsEndpoint, idleTimeTracker, isAddressByChainId, isEIP1559Transaction, isLegacyTransaction, normalizeAndValidateTxParams, normalizeMessageData, normalizeTxParameters, parseDecryptMessageData, parseStandardTokenTransactionData, readAddressAsContract, replayHistory, sanitizeNftMetdataUrl, snapshotFromTxMeta, toChecksumAddressByChainId, transactionMatchesNetwork, validateAddress, validateDecryptedMessageData, validateEncryptionPublicKeyMessageData, validateFrom, validateRecipient, validateSignMessageData, validateTxParameters, validateTypedSignMessageDataV1, validateTypedSignMessageDataV3V4 };
5581
+ export { ARBITRUM_MAINNET_CHAIN_ID, ARBITRUM_TESTNET_CHAIN_ID, AVALANCHE_MAINNET_CHAIN_ID, AVALANCHE_TESTNET_CHAIN_ID, AccountTrackerController, 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, GOERLI_CHAIN_ID, 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, TEST_CHAINS, TRANSACTION_ENVELOPE_TYPES, TokenHandler, TokenRatesController, TokensController, TransactionController, TransactionGasUtil, TransactionStateManager, TypedMessageController, XDAI_CHAIN_ID, bnLessThan, createChainIdMiddleware, createEthereumMiddleware, createGetAccountsMiddleware, createJsonRpcClient, createPendingNonceMiddleware, createPendingTxMiddleware, createProcessDecryptMessageMiddleware, createProcessEncryptionPublicKeyMiddleware, createProcessEthSignMessage, createProcessPersonalMessage, createProcessTransactionMiddleware, createProcessTypedMessage, createProcessTypedMessageV3, createProcessTypedMessageV4, createProviderConfigMiddleware, createRequestAccountsMiddleware, determineTransactionType, ensureFieldIsString, ensureMutuallyExclusiveFieldsNotProvided, formatDate, formatPastTx, formatTime, formatTxMetaForRpcResult, generateHistoryEntry, getChainType, getEthTxStatus, getEtherScanHashLink, getFinalStates, getIpfsEndpoint, idleTimeTracker, isAddressByChainId, isEIP1559Transaction, isLegacyTransaction, normalizeAndValidateTxParams, normalizeMessageData, normalizeTxParameters, parseDecryptMessageData, parseStandardTokenTransactionData, readAddressAsContract, replayHistory, sanitizeNftMetdataUrl, snapshotFromTxMeta, toChecksumAddressByChainId, transactionMatchesNetwork, validateAddress, validateDecryptedMessageData, validateEncryptionPublicKeyMessageData, validateFrom, validateRecipient, validateSignMessageData, validateTxParameters, validateTypedSignMessageDataV1, validateTypedSignMessageDataV3V4 };
5585
5582
  //# sourceMappingURL=ethereumControllers.esm.js.map