Merge branch 'new-CounterFire' of http://git.kingsome.cn/huangjinming/CounterFireGames into new-CounterFire
This commit is contained in:
commit
5e9ca195e9
@ -19,6 +19,7 @@ import OverView from "@/components/common/searchView/Overview.vue";
|
|||||||
import Card from "@/components/common/hangingCard.vue";
|
import Card from "@/components/common/hangingCard.vue";
|
||||||
import { apiHangingState } from "@/utils/marketplace"
|
import { apiHangingState } from "@/utils/marketplace"
|
||||||
import {walletStore} from "@/store/wallet";
|
import {walletStore} from "@/store/wallet";
|
||||||
|
import { formatPrice } from "@/components/chain/utils"
|
||||||
const localWalletStore = walletStore()
|
const localWalletStore = walletStore()
|
||||||
|
|
||||||
const nftList = ref([])
|
const nftList = ref([])
|
||||||
@ -54,6 +55,15 @@ const getHistoryList = async () => {
|
|||||||
}
|
}
|
||||||
if(myAddress) {
|
if(myAddress) {
|
||||||
let res = await apiHangingState(data)
|
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
|
nftList.value = res.rows
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,7 @@ import StatusRadio from "@/components/common/searchView/statusRadio.vue";
|
|||||||
import Card from "@/components/common/tradingCard.vue";
|
import Card from "@/components/common/tradingCard.vue";
|
||||||
import { apiHistoryState, nftDetail } from "@/utils/marketplace"
|
import { apiHistoryState, nftDetail } from "@/utils/marketplace"
|
||||||
import {walletStore} from "@/store/wallet";
|
import {walletStore} from "@/store/wallet";
|
||||||
|
import { parseTradeEvent } from "@/components/chain/utils"
|
||||||
const localWalletStore = walletStore()
|
const localWalletStore = walletStore()
|
||||||
const myAddress = ref(localWalletStore.address)
|
const myAddress = ref(localWalletStore.address)
|
||||||
const nftList = ref([])
|
const nftList = ref([])
|
||||||
@ -46,6 +47,15 @@ const getHistoryList = async () => {
|
|||||||
}
|
}
|
||||||
if(myAddress.value) {
|
if(myAddress.value) {
|
||||||
let res = await apiHistoryState(myAddress.value,data)
|
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
|
nftList.value = res.rows
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -242,3 +242,38 @@ export const formatPrice = (nftData) => {
|
|||||||
}
|
}
|
||||||
return {icon, price, usd, tokenAmount, currencyName, amount: amountBn}
|
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}
|
||||||
|
}
|
@ -16,8 +16,10 @@
|
|||||||
<div class="price">
|
<div class="price">
|
||||||
{{ priceCalculated(event.data.buy[0].amount) }}
|
{{ priceCalculated(event.data.buy[0].amount) }}
|
||||||
<div class="price-icon">
|
<div class="price-icon">
|
||||||
<img src="@/assets/img/marketplace/ETHicon.png" alt="">
|
<!-- <img src="@/assets/img/marketplace/ETHicon.png" alt=""> -->
|
||||||
|
<img :src="event.icon" alt="">
|
||||||
</div>
|
</div>
|
||||||
|
<!-- {{ priceCalculated(event.data.buy[0].amount) }} -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</a-table-column>
|
</a-table-column>
|
||||||
@ -53,6 +55,7 @@ import ImgCard from "@/components/common/imgCard.vue"
|
|||||||
import { priceCalculated, showTime } from "@/configs/priceCalculate"
|
import { priceCalculated, showTime } from "@/configs/priceCalculate"
|
||||||
import { BlockChain } from "@/components/chain/BlockChain"
|
import { BlockChain } from "@/components/chain/BlockChain"
|
||||||
|
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
nftData: {
|
nftData: {
|
||||||
type: Array,
|
type: Array,
|
||||||
@ -60,6 +63,7 @@ const props = defineProps({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
const eventNft = async (e) => {
|
const eventNft = async (e) => {
|
||||||
console.log(e.data.id)
|
console.log(e.data.id)
|
||||||
// return
|
// return
|
||||||
@ -68,7 +72,6 @@ const eventNft = async (e) => {
|
|||||||
console.log("---",res)
|
console.log("---",res)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
@ -21,16 +21,16 @@
|
|||||||
<a-table-column title="Price" data-index="event" :width="400">
|
<a-table-column title="Price" data-index="event" :width="400">
|
||||||
<template #default="{ text: event }">
|
<template #default="{ text: event }">
|
||||||
<div class="price">
|
<div class="price">
|
||||||
<div class="nft-price">{{ event.data.details.asset[0].amount }}</div>
|
<div class="nft-price">{{ priceCalculated(event.amount) }}</div>
|
||||||
<p>$ 400</p>
|
<p>$ {{ event.usd }}</p>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</a-table-column>
|
</a-table-column>
|
||||||
<a-table-column title="" data-index="event">
|
<a-table-column title="" data-index="event">
|
||||||
<template #default="{ text: event }">
|
<template #default="{ text: event }">
|
||||||
<div class="price-icon">
|
<div class="price-icon">
|
||||||
<span>{{event}}</span>
|
<!-- <span>{{event}}</span> -->
|
||||||
<img src="@/assets/img/marketplace/ETHicon.png" alt="">
|
<img :src="event.icon" alt="">
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</a-table-column>
|
</a-table-column>
|
||||||
@ -51,7 +51,7 @@
|
|||||||
<a-table-column title="" data-index="event">
|
<a-table-column title="" data-index="event">
|
||||||
<template #default="{ text: event }">
|
<template #default="{ text: event }">
|
||||||
<div class="from-to-icon">
|
<div class="from-to-icon">
|
||||||
<span>{{event}}</span>
|
<!-- <span>{{event}}</span> -->
|
||||||
<img src="@/assets/img/marketplace/Arrows.png" alt="">
|
<img src="@/assets/img/marketplace/Arrows.png" alt="">
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -70,11 +70,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</a-table-column>
|
</a-table-column>
|
||||||
<a-table-column title="Contract" data-index="nft" :width="400">
|
<a-table-column title="Contract" data-index="event" :width="400">
|
||||||
<template #default="{ text: nft }">
|
<template #default="{ text: event }">
|
||||||
<div class="contract">
|
<div class="contract">
|
||||||
<div class="nft-contract">
|
<div class="nft-contract">
|
||||||
<a :href="nft.meta_url" target="_back">
|
<a :href="chainExpolor(event.data.blockchain_metadata.transaction_hash)" target="_back">
|
||||||
<span>Etherscan</span>
|
<span>Etherscan</span>
|
||||||
<img src="@/assets/img/marketplace/Links web icon.png" alt="">
|
<img src="@/assets/img/marketplace/Links web icon.png" alt="">
|
||||||
</a>
|
</a>
|
||||||
@ -89,7 +89,8 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { ref } from "vue"
|
import { ref } from "vue"
|
||||||
import ImgCard from "@/components/common/imgCard.vue"
|
import ImgCard from "@/components/common/imgCard.vue"
|
||||||
import { sliceAddress, showTime } from "@/configs/priceCalculate"
|
import { sliceAddress, showTime, priceCalculated } from "@/configs/priceCalculate"
|
||||||
|
import { currentChainCfg } from '@/components/chain/utils'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
nftData: {
|
nftData: {
|
||||||
@ -98,6 +99,12 @@ const props = defineProps({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const chainExpolor = (urlPart) => {
|
||||||
|
const base = currentChainCfg.explorerurl
|
||||||
|
return `${base}/tx/${urlPart}`
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
console.log(props.nftData)
|
console.log(props.nftData)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user