aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/helpers/utils
diff options
context:
space:
mode:
Diffstat (limited to 'ui/app/helpers/utils')
-rw-r--r--ui/app/helpers/utils/token-util.js21
-rw-r--r--ui/app/helpers/utils/transactions.util.js20
2 files changed, 36 insertions, 5 deletions
diff --git a/ui/app/helpers/utils/token-util.js b/ui/app/helpers/utils/token-util.js
index 35a19a69f..3920045ac 100644
--- a/ui/app/helpers/utils/token-util.js
+++ b/ui/app/helpers/utils/token-util.js
@@ -68,6 +68,22 @@ async function getDecimals (tokenAddress) {
return decimals
}
+export async function fetchSymbolAndDecimals (tokenAddress) {
+ let symbol, decimals
+
+ try {
+ symbol = await getSymbol(tokenAddress)
+ decimals = await getDecimals(tokenAddress)
+ } catch (error) {
+ log.warn(`symbol() and decimal() calls for token at address ${tokenAddress} resulted in error:`, error)
+ }
+
+ return {
+ symbol: symbol || DEFAULT_SYMBOL,
+ decimals: decimals || DEFAULT_DECIMALS,
+ }
+}
+
export async function getSymbolAndDecimals (tokenAddress, existingTokens = []) {
const existingToken = existingTokens.find(({ address }) => tokenAddress === address)
@@ -116,3 +132,8 @@ export function getTokenValue (tokenParams = []) {
const valueData = tokenParams.find(param => param.name === '_value')
return valueData && valueData.value
}
+
+export function getTokenToAddress (tokenParams = []) {
+ const toAddressData = tokenParams.find(param => param.name === '_to')
+ return toAddressData && toAddressData.value
+}
diff --git a/ui/app/helpers/utils/transactions.util.js b/ui/app/helpers/utils/transactions.util.js
index c84053ec7..b65bda5b2 100644
--- a/ui/app/helpers/utils/transactions.util.js
+++ b/ui/app/helpers/utils/transactions.util.js
@@ -103,6 +103,20 @@ export function getFourBytePrefix (data = '') {
}
/**
+ * Given an transaction category, returns a boolean which indicates whether the transaction is calling an erc20 token method
+ *
+ * @param {string} transactionCategory - The category of transaction being evaluated
+ * @returns {boolean} - whether the transaction is calling an erc20 token method
+ */
+export function isTokenMethodAction (transactionCategory) {
+ return [
+ TOKEN_METHOD_TRANSFER,
+ TOKEN_METHOD_APPROVE,
+ TOKEN_METHOD_TRANSFER_FROM,
+ ].includes(transactionCategory)
+}
+
+/**
* Returns the action of a transaction as a key to be passed into the translator.
* @param {Object} transaction - txData object
* @returns {string|undefined}
@@ -122,11 +136,7 @@ export function getTransactionActionKey (transaction) {
return DEPLOY_CONTRACT_ACTION_KEY
}
- const isTokenAction = [
- TOKEN_METHOD_TRANSFER,
- TOKEN_METHOD_APPROVE,
- TOKEN_METHOD_TRANSFER_FROM,
- ].find(actionName => actionName === transactionCategory)
+ const isTokenAction = isTokenMethodAction(transactionCategory)
const isNonTokenSmartContract = transactionCategory === CONTRACT_INTERACTION_KEY
if (isTokenAction || isNonTokenSmartContract) {