CounterFireGames/src/utils/marketplace.js
2024-07-18 17:40:11 +08:00

137 lines
3.7 KiB
JavaScript

import { BlockChain } from "@/components/chain/BlockChain";
import axios from "axios"
const API_BASE = import.meta.env.VUE_APP_MKT_API
const API_UAW = import.meta.env.VUE_APP_UAW_API
const net_id = import.meta.env.VUE_APP_NET_ID
const toJson = res => res.json();
const httpPost = async (url, data, token) => {
token = token || await new BlockChain().token();
let headers = {"Content-Type": "application/json"};
// let token = token;
if (token) {
headers['Authorization'] = `Bearer ${token}`;
}
return fetch(url, {
method: "POST",
body: JSON.stringify(data),
headers
}).then(toJson);
}
const httpGet = async (url, data, token) => {
token = token || await new BlockChain().token();
let headers = {"Content-Type": "application/json"};
if (token) {
headers['Authorization'] = `Bearer ${token}`;
}
url = url + (url.indexOf('?') > -1 ? "&" : "?" )+ new URLSearchParams(data).toString()
return fetch(url, {
method: "GET",
headers
}).then(toJson);
}
// 获取市场所有
export const apiMarketplaceState = async (data) => {
const url = `${API_BASE}/api/market/product/list/${net_id}`;
// return httpPost(url, data)
let res = await axios.post(url,data,
{ })
// console.log(res)
return res.data
}
// 获取nft地板价
export const apiGetPrice = async (data) => {
const url = `${API_BASE}/api/market/product/query_price`
return httpGet(url, data)
}
// 获取我拥有得资产
export const apiAssetsState = async (account_address, data, token) => {
const url = `${API_BASE}/api/asset/${net_id}/${account_address}`
return httpGet(url, data, token)
}
// 获取上架出售得NFTS
export const apiHangingState = async (data,account_address) => {
const url = `${API_BASE}/api/listing/${net_id}/${account_address}`
return httpGet(url, data)
}
// 账号交易历史
export const apiHistoryState = async (account_address,data) => {
const url = `${API_BASE}/api/market/transaction/history/${net_id}/${account_address}`
return httpGet(url, data)
}
// 账号游戏内资产
export const apiLockState = async (account_address,data, token) => {
const url = `${API_BASE}/api/market/product/lock/${net_id}/${account_address}`
return httpPost(url, data, token)
}
// 详情
export const apiDetail = async (account_address) => {
const url = `${API_BASE}/api/market/transaction/history/${net_id}/${account_address}`
return httpGet(url, {})
}
// 获取购物车列表
export const apiGetCartList = async () => {
const url = `${API_BASE}/api/shopcart/list`
return httpGet(url, {})
}
// 添加购物车
export const apiAddCartList = async (data) => {
const url = `${API_BASE}/api/shopcart/add`
return httpPost(url, data)
}
// 删除购物中nft
export const apiDelCartList = async (data) => {
const url = `${API_BASE}/api/shopcart/del`
return httpPost(url, data)
}
// 清空购物车
export const apiClearCartList = async () => {
const url = `${API_BASE}/api/shopcart/clear`
return httpPost(url, {net_id})
}
export const nftDetail = async(address, tokenId) => {
const url = `${API_BASE}/api/market/product/goods/${net_id}/${address}/${tokenId}`
return httpGet(url, {})
}
// UAW查询领取
export const apiCecInfo = async(address) => {
let res = await axios.get(`${API_UAW}/task/api/cec/info/${address}`)
return res.data
}
// 获取游戏内资产
export const apiHeroList = async(data, token) => {
const url = `${API_BASE}/api/ingame/asset/hero/list`
return httpPost(url, data, token)
}
export const apiUnlockOrMint = async (data, token) => {
const url = `${API_BASE}/api/nft/stacking/unlock`
return httpPost(url, data, token)
}
export const apiMintNft = async (data, token) => {
const url = `${API_BASE}/api/ingame/asset/hero/mint`
return httpPost(url, data, token)
}