Merge branch 'new-CounterFire' of http://git.kingsome.cn/huangjinming/CounterFireGames into new-CounterFire-0724
This commit is contained in:
commit
b70988c946
@ -8,6 +8,7 @@ import {isTokenExpired, genRefreshToken, cfgChainId, switchEthereumChain} from "
|
|||||||
import {ImtblMarket} from "@/components/chain/Market";
|
import {ImtblMarket} from "@/components/chain/Market";
|
||||||
import { ALL_PROVIDERS } from "@/configs/configchain";
|
import { ALL_PROVIDERS } from "@/configs/configchain";
|
||||||
import {Locker} from "@/components/chain/contract/Locker";
|
import {Locker} from "@/components/chain/contract/Locker";
|
||||||
|
import {GameItemMall} from "@/components/chain/contract/GameItemMall";
|
||||||
import ConfirmDialog from "@/components/Dialogs/confirmDialog.vue";
|
import ConfirmDialog from "@/components/Dialogs/confirmDialog.vue";
|
||||||
import { Widgets } from "./Widgets";
|
import { Widgets } from "./Widgets";
|
||||||
|
|
||||||
@ -28,6 +29,7 @@ export class BlockChain {
|
|||||||
this.initWallet();
|
this.initWallet();
|
||||||
this.market = new ImtblMarket(this)
|
this.market = new ImtblMarket(this)
|
||||||
this.locker = new Locker(this)
|
this.locker = new Locker(this)
|
||||||
|
this.mall = new GameItemMall(this)
|
||||||
this.widgets = new Widgets(this)
|
this.widgets = new Widgets(this)
|
||||||
BlockChain.instance = this;
|
BlockChain.instance = this;
|
||||||
|
|
||||||
|
50
src/components/chain/contract/GameItemMall.js
Normal file
50
src/components/chain/contract/GameItemMall.js
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
import { apiPreRecharge } from '@/utils/marketplace'
|
||||||
|
|
||||||
|
export class GameItemMall {
|
||||||
|
constructor(_chainInstance) {
|
||||||
|
this.bc = _chainInstance
|
||||||
|
}
|
||||||
|
|
||||||
|
async sendTransaction(provider, {from, to, data}) {
|
||||||
|
const txHash = await provider.provider.request({
|
||||||
|
method: 'eth_sendTransaction',
|
||||||
|
params: [{
|
||||||
|
from,
|
||||||
|
to,
|
||||||
|
data
|
||||||
|
}]
|
||||||
|
})
|
||||||
|
console.log(txHash)
|
||||||
|
const res = await provider.waitForTransaction(txHash)
|
||||||
|
if (res.status == 0) {
|
||||||
|
throw new Error('transaction failed')
|
||||||
|
}
|
||||||
|
return txHash
|
||||||
|
}
|
||||||
|
|
||||||
|
async execBuyItem(itemId) {
|
||||||
|
await this.bc.checkPassportLogin();
|
||||||
|
const chainId = parseInt(import.meta.env.VUE_APP_NET_ID);
|
||||||
|
const { provider, address } = await this.bc.selectAddress({targetChainId: chainId})
|
||||||
|
const preDatas = {
|
||||||
|
net_id: address,
|
||||||
|
goods_id: itemId,
|
||||||
|
account_address: address,
|
||||||
|
}
|
||||||
|
const { errocode, errmsg, calls } = await apiPreRecharge(preDatas)
|
||||||
|
if (errocode) {
|
||||||
|
throw new Error(errmsg)
|
||||||
|
}
|
||||||
|
if (!calls || calls.length == 0) {
|
||||||
|
throw new Error('no calls')
|
||||||
|
}
|
||||||
|
let resutls = []
|
||||||
|
for (let i = 0; i < calls.length; i++) {
|
||||||
|
const { to, data } = calls[i].trans_req
|
||||||
|
let hash = await this.sendTransaction(provider, {from: address, to, data})
|
||||||
|
resutls.push(hash)
|
||||||
|
}
|
||||||
|
return resutls
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -177,3 +177,9 @@ export const apiRechargeHistory = async (account_address) => {
|
|||||||
const url = `${API_BASE}/api/recharge/history/${net_id}/${account_address}`
|
const url = `${API_BASE}/api/recharge/history/${net_id}/${account_address}`
|
||||||
return httpPost(url, {})
|
return httpPost(url, {})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 充值-购买
|
||||||
|
export const apiPreRecharge = async (data) => {
|
||||||
|
const url = `${API_BASE}/api/recharge/buy`
|
||||||
|
return httpPost(url, data)
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user