2021-02-04 19:15:23 +01:00
|
|
|
import { useMemo } from 'react';
|
2022-03-17 19:35:40 +01:00
|
|
|
import { parseStandardTokenTransactionData } from '../../shared/modules/transaction.utils';
|
2020-05-26 22:49:11 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* useTokenData
|
|
|
|
* Given the data string from txParams return a decoded object of the details of the
|
|
|
|
* transaction data.
|
2022-01-07 16:57:33 +01:00
|
|
|
*
|
|
|
|
* @param {string} [transactionData] - Raw data string from token transaction
|
2020-05-26 22:49:11 +02:00
|
|
|
* @param {boolean} [isTokenTransaction] - Due to the nature of hooks, it isn't possible
|
|
|
|
* to conditionally call this hook. This flag will
|
|
|
|
* force this hook to return null if it set as false
|
|
|
|
* which indicates the transaction is not associated
|
|
|
|
* with a token.
|
2022-08-24 20:57:47 +02:00
|
|
|
* @returns {object} Decoded token data
|
2020-05-26 22:49:11 +02:00
|
|
|
*/
|
2020-11-03 00:41:28 +01:00
|
|
|
export function useTokenData(transactionData, isTokenTransaction = true) {
|
2020-05-26 22:49:11 +02:00
|
|
|
return useMemo(() => {
|
|
|
|
if (!isTokenTransaction || !transactionData) {
|
2021-02-04 19:15:23 +01:00
|
|
|
return null;
|
2020-05-26 22:49:11 +02:00
|
|
|
}
|
2022-03-17 19:35:40 +01:00
|
|
|
return parseStandardTokenTransactionData(transactionData);
|
2021-02-04 19:15:23 +01:00
|
|
|
}, [isTokenTransaction, transactionData]);
|
2020-05-26 22:49:11 +02:00
|
|
|
}
|