diff --git a/src/components/assets/hanging.vue b/src/components/assets/hanging.vue index fe47f0e..294a038 100644 --- a/src/components/assets/hanging.vue +++ b/src/components/assets/hanging.vue @@ -19,6 +19,7 @@ import OverView from "@/components/common/searchView/Overview.vue"; import Card from "@/components/common/hangingCard.vue"; import { apiHangingState } from "@/utils/marketplace" import {walletStore} from "@/store/wallet"; +import { formatPrice } from "@/components/chain/utils" const localWalletStore = walletStore() const nftList = ref([]) @@ -54,6 +55,15 @@ const getHistoryList = async () => { } if(myAddress) { let res = await apiHangingState(data) + for (let sub of res.rows) { + if (sub.event?.data) { + const _data = formatPrice(sub.event.data) + sub.event.icon = _data.icon + sub.event.usd = _data.usd + sub.event.currencyName = _data.currencyName + sub.event.amount = _data.amount + } + } nftList.value = res.rows } } diff --git a/src/components/assets/trading.vue b/src/components/assets/trading.vue index 62f06a2..ea1fbec 100644 --- a/src/components/assets/trading.vue +++ b/src/components/assets/trading.vue @@ -21,6 +21,7 @@ import StatusRadio from "@/components/common/searchView/statusRadio.vue"; import Card from "@/components/common/tradingCard.vue"; import { apiHistoryState, nftDetail } from "@/utils/marketplace" import {walletStore} from "@/store/wallet"; +import { parseTradeEvent } from "@/components/chain/utils" const localWalletStore = walletStore() const myAddress = ref(localWalletStore.address) const nftList = ref([]) @@ -46,6 +47,15 @@ const getHistoryList = async () => { } if(myAddress.value) { let res = await apiHistoryState(myAddress.value,data) + for (let sub of res.rows) { + if (sub.event?.data) { + const _data = parseTradeEvent(sub.event) + sub.event.icon = _data.icon + sub.event.usd = _data.usd + sub.event.currencyName = _data.currencyName + sub.event.amount = _data.amount + } + } nftList.value = res.rows } } diff --git a/src/components/chain/utils.js b/src/components/chain/utils.js index d866089..eefd7b9 100644 --- a/src/components/chain/utils.js +++ b/src/components/chain/utils.js @@ -241,4 +241,39 @@ export const formatPrice = (nftData) => { } } return {icon, price, usd, tokenAmount, currencyName, amount: amountBn} +} + +export const parseTradeEvent = (event) => { + const marketplaceList = useMarketplaceStore() + const payments = event.data?.details?.payment + const feeList = payments?.fees || [] + let amountBn = 0n; + for (const fee of feeList) { + amountBn += BigInt(fee.amount) + } + let address; + let icon, price, usd, currencyName; + if (payments?.token?.contract_address) { + address = payments?.token?.contract_address + if (address) { + address = address.toLowerCase() + } + } else { + address = 'NATIVE' + } + if (!address) { + return {icon, price} + } + if (address) { + const currencyData = currencyMap[address] + currencyName = currencyData.name + if (currencyData) { + const currencyPrice = marketplaceList.priceDatas + icon = currencyData.icon + price = currencyPrice.find(o => o.id == currencyData.id_query) + let amount = parseFloat(ethers.utils.formatUnits(amountBn, 18)) + usd = (amount * price.price).toFixed(2) + } + } + return {icon, price, usd, currencyName, amount: amountBn} } \ No newline at end of file diff --git a/src/components/common/hangingCard.vue b/src/components/common/hangingCard.vue index 72fdf7a..d4532d9 100644 --- a/src/components/common/hangingCard.vue +++ b/src/components/common/hangingCard.vue @@ -16,8 +16,10 @@