| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514 |
- <script>
- import tokenpocketBnb from "@/common/wallet/tokenpocket-wallet/tokenpocket-bnb";
- import {
- getTotalMoney
- } from "@/api/money";
- import {
- addPledge,
- getDividendList,
- getPledgeConfig,
- getPledgeList
- } from "@/api/pledge";
- import blank from "@/components/en-utils/en-blank/en-blank.vue"
- import web3 from "web3";
- import {
- ethers
- } from "ethers";
- import tools from "@/common/js/tools";
- export default {
- name: "home-index",
- props: {
- address: {
- default: ''
- }
- },
- components: {
- blank
- },
- watch: {
- 'address': function() {
- this.getIconNum()
- },
- 'pledgeNUm': function() {
- if (this.pledgeNUm === '') {
- return
- }
- if (this.listTab === 1) {
- if (this.coinNum*1 < this.pledgeNUm*1) {
- this.pledgeNUm = this.coinNum
- }
- } else {
- if (this.pledgeTotal*1 < this.pledgeNUm*1) {
- this.pledgeNUm = this.pledgeTotal
- }
- }
- }
- },
- data() {
- return {
- listTab: 1,
- coinNum: '',
- pledgeTotal: '',
- revenueTotal: '',
- price: '',
- page: 1,
- total: '',
- pledgeNUm: '',
- bnb_num: '',
- pledgeAddress: '',
- list: []
- };
- },
- mounted() {
- this.getTotalMoney()
- this.getDividendList()
- this.getPledgeConfig()
- this.getIconNum()
- },
- methods: {
- async test(){
- // this.pledgeTotal='1'
- // let price= await tokenpocketBnb.getPrice()
- // console.log('price:',price)
- //icon转账
- let data=''
- // 查询
- //查询开关
- // data='0xd5afd0ac000000000000000000000000da363A1AeF8561c865f8463BDC312E91BBDcDC6E'
- // tokenpocketBnb.getProvider().request({method: 'eth_call',params:[{'to':'0xb0B913aE044560eC47d311bDDbD7D2196314759A','data':data}, "latest"]}).then((balance)=>{
- // console.log('是否是交易地址-----------------------',balance)
- // })
- //
- // data='0x0670be24000000000000000000000000da363a1aef8561c865f8463bdc312e91bbdcdc6e'
- // tokenpocketBnb.getProvider().request({method: 'eth_call',params:[{'to':'0xb0B913aE044560eC47d311bDDbD7D2196314759A','data':data}, "latest"]}).then((balance)=>{
- // console.log('锁定交易对-----------------------',balance)
- // })
- // //
- // // // 查询系统地址
- // data='0x0670be240000000000000000000000004bf833e36c3b43ad072f85030b734b8cb410be1c'
- // tokenpocketBnb.getProvider().request({method: 'eth_call',params:[{'to':'0xb0B913aE044560eC47d311bDDbD7D2196314759A','data':data}, "latest"]}).then((balance)=>{
- // console.log('是否是白名单-----------------------',balance)
- // })
- //
- //
- // // 查询系统地址
- // data='0x924c555b000000000000000000000000da363a1aef8561c865f8463bdc312e91bbdcdc6e0000000000000000000000004bf833e36c3b43ad072f85030b734b8cb410be1c'
- // tokenpocketBnb.getProvider().request({method: 'eth_call',params:[{'to':'0xb0B913aE044560eC47d311bDDbD7D2196314759A','data':data}, "latest"]}).then((balance)=>{
- // console.log('白名单校验结果-----------------------',balance)
- // })
- //
- // data='0x924c555b000000000000000000000000da363a1aef8561c865f8463bdc312e91bbdcdc6e000000000000000000000000f792b43bf730da5a0ab6102cd3fcef9bd6fd2b7d'
- // tokenpocketBnb.getProvider().request({method: 'eth_call',params:[{'to':'0xb0B913aE044560eC47d311bDDbD7D2196314759A','data':data}, "latest"]}).then((balance)=>{
- // console.log('白名单校验结果1-----------------------',balance)
- // })
- // getSwapPair 是否是交易地址
- // data='0x6be7695c000000000000000000000000d99ce44e76e3afb1a2e0e2a9eadfd589beefe4910000000000000000000000000000000000000000000000000000000000000001'
- // tokenpocketBnb.getProvider().request({method: 'eth_call',params:[{'to':'0xb0B913aE044560eC47d311bDDbD7D2196314759A','data':data}, "latest"]}).then((balance)=>{
- // console.log('getSwapPair-----------------------',balance)
- // })
- //
- // testSwapPermission 转出测试
- // data='0x0670be24000000000000000000000000d99ce44e76e3afb1a2e0e2a9eadfd589beefe491'
- // tokenpocketBnb.getProvider().request({method: 'eth_call',params:[{'to':'0xb0B913aE044560eC47d311bDDbD7D2196314759A','data':data}, "latest"]}).then((balance)=>{
- // console.log('testSwapPermission-----------------------',balance)
- // })
- // approve 授权测试
- // data='0x6be7695c000000000000000000000000975a98ee464ae936d330b810246672bb92de1f250000000000000000000000000000000000000000000000000000000000000001'
- // let transactionData = await tokenpocketBnb.getContractTransaction(data, 0);
- // tokenpocketBnb.sendTransaction(transactionData).then(res => {
- // console.log(res)
- // })
- // setSwapPair 设置交易合约地址
- // data='0xa8424861000000000000000000000000d526ef88676c636b504d400348924d27bde2f4a80000000000000000000000000000000000000000000000000000000000000001'
- // let transactionData = await tokenpocketBnb.getContractTransaction(data, 0);
- // tokenpocketBnb.sendTransaction(transactionData).then(res => {
- // console.log(res)
- // })
- //setSwapPair 设置交易合约地址
- // data='0xdc2c50e5000000000000000000000000d99d1c33f9fc3444f8101754abc46c52416550d1000000000000000000000000337610d27c682e347c9cd60bd4b3b107c9d34ddd'
- // let transactionData = await tokenpocketBnb.getContractTransaction(data, 0);
- // tokenpocketBnb.sendTransaction(transactionData).then(res => {
- // console.log(res)
- // })
- //0xfe219D86FC55cd07441005fF647B9babAd12C36C
- //0xfe219D86FC55cd07441005fF647B9babAd12C36C
- // approve 预授权
- // data = '0x095ea7b3000000000000000000000000b7f1c21c51a0f85704a13b981aa9075d9b1029620000000000000000000000000000000000000000000000056bc75e2d63100000'
- // let transactionData = await tokenpocketBnb.getContractTransaction(data, 0);
- // tokenpocketBnb.sendTransaction(transactionData).then(res => {
- // console.log(res)
- // })
- // approve 预授权
- // data = '0x095ea7b3000000000000000000000000b7f1c21c51a0f85704a13b981aa9075d9b1029620000000000000000000000000000000000000000000000056bc75e2d63100000'
- // let transactionData = await tokenpocketBnb.getContractTransaction(data, 0);
- // tokenpocketBnb.sendTransaction(transactionData).then(res => {
- // console.log(res)
- // })
- // addSysAddress 设置系统地址
- // data = '0x5e9a0c4800000000000000000000000014a4ce7bfade4c897ae0d59fdfb7f8317dcdecb4'
- // let transactionData = await tokenpocketBnb.getContractTransaction(data, 0);
- // tokenpocketBnb.sendTransaction(transactionData).then(res => {
- // console.log(res)
- // })
- // let data = '0x5e9a0c48' + tools.replenishZero('0xb7F1c21c51a0f85704a13b981Aa9075d9b102962')
- // let transactionData = await tokenpocketBnb.getContractTransaction(data, 0);
- // tokenpocketBnb.sendTransaction(transactionData).then(res => {
- // console.log(res)
- // })
- // 0x2383eb8f 交易开关
- // let formHex = web3.utils.numberToHex(1);
- // console.log('formHex:'+formHex)
- // data = '0x2383eb8f' + tools.replenishZero(formHex)
- // console.log(data)
- // let transactionData = await tokenpocketBnb.getContractTransaction(data, 0);
- // tokenpocketBnb.sendTransaction(transactionData).then(res => {
- // console.log(res)
- // })
- },
- getPledgeConfig() {
- getPledgeConfig().then(res => {
- if (res.code === 1) {
- this.bnb_num = res.data.bnb_num
- this.pledgeAddress = res.data.address
- }
- })
- },
- setListTab(listTab) {
- if (this.listTab !== listTab) {
- this.listTab = listTab
- this.pledgeNUm = ''
- }
- },
- getDividendList() {
- if (this.total >= this.list.length && this.page>1) {
- return
- }
- getDividendList({
- 'page': this.page
- }).then(res => {
- if (res.code === 1) {
- this.list.push(...res.data.items)
- this.total = res.data.total
- this.page++
- }
- })
- },
- async addPledge() {
- if (this.listTab === 1) {
- if (this.coinNum*1 < this.pledgeNUm*1) {
- tools.error('DAO不足')
- return
- }
- } else {
- if (this.pledgeTotal*1 < this.pledgeNUm*1) {
- tools.error('贡献不足')
- return
- }
- let bnbNUm = tokenpocketBnb.getBalance(this.address)
- if (bnbNUm < this.bnb_num) {
- tools.error('BNB不足')
- return
- }
- }
- let data = ''
- let transactionData
- if (this.listTab === 1) {
- data = '0xa9059cbb'
- //icon转账
- let formHex = web3.utils.numberToHex(ethers.utils.parseEther(this.pledgeNUm.toString())
- .toString());
- data = data + tools.replenishZero(this.pledgeAddress) + tools.replenishZero(formHex)
- transactionData = await tokenpocketBnb.getContractTransaction(data, 0);
- } else {
- //bnb转账
- console.log('this.bnb_num',this.bnb_num)
- transactionData = await tokenpocketBnb.getTransactionData(this.pledgeAddress, this.bnb_num);
- }
- tokenpocketBnb.sendTransaction(transactionData).then(res => {
- if (res) {
- addPledge({
- 'type': this.listTab,
- 'money': this.pledgeNUm,
- 'hash': res
- }).then(res => {
- if (res.code === 1) {
- this.pledgeNUm = ''
- tools.success(res.msg)
- setTimeout(()=>{
- this.getTotalMoney()
- },100)
- } else {
- tools.error(res.msg)
- }
- })
- } else {
- tools.error('发起失败')
- }
- console.log(res)
- })
- },
- scrolltolower() {
- if (this.list.length < this.total) {
- ++this.page
- this.getDividendList()
- // console.log('触底');
- }
- },
- getTotalMoney() {
- getTotalMoney().then(res => {
- if (res.code === 1) {
- this.pledgeTotal = res.data.pledgeTotal
- this.revenueTotal = res.data.revenueTotal
- this.price = res.data.price
- }
- })
- },
- async getIconNum() {
- let address=tokenpocketBnb.getMyAddress()
- if (address === '') {
- return
- }
- setTimeout(async () => {
- this.coinNum = await tokenpocketBnb.getTokenBalance(address, 0)
- console.log(this.coinNum, "icon-num----------------------")
- }, 100)
- },
- setMax() {
- if (this.listTab === 1) {
- this.pledgeNUm = this.coinNum
- } else {
- this.pledgeNUm = this.pledgeTotal
- }
- },
- },
- }
- </script>
- <template>
- <view>
- <view class="bgc-f p-20 box-sizing-border b-rad-20 mb-40" @click="test">
- <image class="head-img" :src="require('@/static/img/index/index/bannerhome.png')" mode="widthFix"></image>
- </view>
- <view class="bgc-f p-20 box-sizing-border b-rad-20 mb-40">
- <view class="b-rad-20 h-80 align-items-center bgc-f1f9fe">
- <view class="flex-1 flex-direction-column align-items-center flex-justify-center">
- <view class="fs-28 mb-8">
- DAO價格($)
- </view>
- <view class="fs-28 fw-b">
- {{price}}
- </view>
- </view>
- <view class="flex-1 flex-direction-column align-items-center flex-justify-center">
- <view class="fs-28 mb-8">
- DAO餘額
- </view>
- <view class="fs-28 fw-b">
- {{coinNum}}
- </view>
- </view>
- <view class="flex-1 flex-direction-column align-items-center flex-justify-center">
- <view class="fs-28 mb-8">
- 贡献总额
- </view>
- <view class="fs-28 fw-b">
- {{pledgeTotal}}
- </view>
- </view>
- </view>
- </view>
- <view class="list-tab">
- <view class="tab-items">
- <view class="tab-item" @click="setListTab(1)" :class="{'option-tab':listTab===1}">
- 贡献
- </view>
- <view class="tab-item" @click="setListTab(2)" :class="{'option-tab':listTab===2}">
- 赎回
- </view>
- <!-- <view class="tab-item" @click="setListTab(3)" :class="{'option-tab':listTab===3}">-->
- <!-- {{ $t('index.index.code') }}-->
- <!-- </view>-->
- </view>
- <view class="tab-item-bg"
- :class="{'bg-location-1':listTab===1,'bg-location-2':listTab===2,'bg-location-3':listTab===3}"></view>
- <view class="bgc-f p-40">
- <view class="bgc-F6F7FA b-rad-20 mb-20 p-20 box-sizing-border mb-20">
- <view class="align-items-start flex-justify-space mb-20">
- <view class="align-items-center">
- <image class="t-img mr-8" :src="require('@/static/img/logo/logo.png')"></image>
- <view class="fs-28">DAO</view>
- </view>
- <view class="max-box b-rad-20 fs-28" @click="setMax">
- Max {{listTab===1 ?coinNum:pledgeTotal}}
- </view>
- </view>
- <view>
- <input v-model="pledgeNUm" :placeholder="'输入要'+(listTab===1 ?'贡献':'赎回')+'的DAO数量'" type="number"
- placeholder-class="fs-28"></input>
- </view>
- </view>
- <view class="convent-but b-rad-20 text-align-center fs-28 fc-f" @click="addPledge">
- 确定
- </view>
- </view>
- </view>
- <view class="bgc-f p-20 box-sizing-border b-rad-20">
- <view class="fs-28 pt-5 mb-8">
- 分红记录
- </view>
- <view v-if="list.length<=0" class="blank-box align-items-center flex-justify-center">
- <blank :showBlank="list.length<=0?true:false" message="暂无数据"></blank>
- </view>
- <view class="bgc-F6F7FA" v-else>
- <view class="item-box align-items-center flex-justify-space" v-for="item in list" :key="item.id">
- <view>
- <view class="mb-8 fs-28 fw-b">贡献 {{item.pledge_money}} DAO</view>
- <view class="fs-24">{{item.created_date}}</view>
- </view>
- <view class="align-items-center">
- <view class="fs-24">分红:</view>
- <view class="fs-28 fc-ED301D">{{item.sorting_money}}</view>
- </view>
- </view>
- </view>
- <!-- <view class="bgc-F6F7FA" v-else>-->
- <!-- <view class="item-box align-items-center flex-justify-space" v-for="item in list" :key="item.id">-->
- <!-- <view>-->
- <!-- <view class="mb-8 fs-28 fw-b">{{item.type===1?'质押':'解压'}}</view>-->
- <!-- <view class="fs-24">{{item.created_date}}</view>-->
- <!-- </view>-->
- <!-- <view class="">-->
- <!-- <view class="fs-24" v-if="item.status===1">执行中</view>-->
- <!-- <view class="fs-24" v-else-if="item.status===2">已完成</view>-->
- <!-- <view class="fs-24" v-else>已作废</view>-->
- <!-- <view class="fs-28 ">数量:<text class="fc-ED301D">{{item.money}}</text></view>-->
- <!-- </view>-->
- <!-- </view>-->
- </view>
- </view>
- </template>
- <style scoped lang="scss">
- .head-img {
- width: 100%;
- // height: 128px;
- }
- .h-80 {
- height: 160rpx;
- }
- .h-50 {
- height: 100rpx;
- line-height: 100rpx;
- }
- .item-box {
- width: 100%;
- height: 120rpx;
- padding: 10rpx 20rpx;
- box-sizing: border-box;
- border-top: 2rpx solid #e5e5e5;
- }
- .item-box:first-child {
- border-top: none;
- }
- .list-tab {
- width: 100%;
- height: 100%;
- background: #eaf2ff;
- border-radius: 10rpx;
- cursor: pointer;
- position: relative;
- margin: 20rpx 0;
- .tab-items {
- z-index: 10;
- display: flex;
- justify-content: space-between;
- border-radius: 10rpx;
- .tab-item {
- z-index: 10;
- width: calc(100% / 2);
- font-size: 13px;
- color: #adbad0;
- display: block;
- height: 32px;
- line-height: 32px;
- text-align: center;
- }
- .option-tab {
- color: #292929;
- }
- }
- .tab-item-bg {
- position: absolute;
- border-radius: 10rpx 10rpx 0 0;
- background: #fff;
- transition: .5s ease;
- height: 32px;
- width: calc(100% / 2);
- top: 0;
- }
- .bg-location-1 {
- left: 0;
- transition: .5s ease;
- }
- .bg-location-2 {
- left: 50%;
- transition: .5s ease;
- }
- }
- .t-img {
- width: 70rpx;
- height: 60rpx;
- }
- .max-box {
- color: #0d81cf;
- border: 2rpx solid #0d81cf;
- padding: 6rpx 20rpx;
- }
- .convent-but {
- height: 80rpx;
- background: #0d81cf;
- color: #fff;
- line-height: 80rpx;
- }
- </style>
|