Browse Source

second

master
胡铖茏 4 years ago
parent
commit
ca6d9a04be
  1. 1113
      package-lock.json
  2. 5
      pages.json
  3. 2
      pages/menu/backUp/backUp2/index.vue
  4. 15
      pages/menu/backUp/backUp3/index.vue
  5. 134
      pages/menu/backUp/backUp4/index.css
  6. 165
      pages/menu/backUp/backUp4/index.vue
  7. 11
      pages/register/index.vue
  8. 55
      utils/TokenUtil.js

1113
package-lock.json

File diff suppressed because it is too large

5
pages.json

@ -3,6 +3,11 @@
"^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
},
"pages": [ //pageshttps://uniapp.dcloud.io/collocation/pages
{
"path": "pages/menu/backUp/backUp4/index"
},
{
"path": "pages/menu/market/index"

2
pages/menu/backUp/backUp2/index.vue

@ -36,7 +36,7 @@
methods: {
//
getWrod(){
var walletInfo = uni.getStorageSync('walletInfo');
var walletInfo = uni.getStorageSync('word');
this.mnemonics=walletInfo.mnemonic.split(' ')
console.log(walletInfo.mnemonic)
console.log(this.mnemonics)

15
pages/menu/backUp/backUp3/index.vue

@ -80,7 +80,7 @@
wordArr:[],
show: false,
index:0,
showItem:null,
returnIndex:0,
//
mnemonics2:[],
show2:false,
@ -118,7 +118,8 @@
},
//
getWrod(){
var walletInfo = uni.getStorageSync('walletInfo');
var walletInfo = uni.getStorageSync('word');
this.mnemonics=walletInfo.mnemonic.split(' ')
//
this.mnemonics.sort(function() {
@ -128,14 +129,18 @@
},
returnWord(item,index){
this.wordArr.splice(index,1);
console.log(this.wordArr)
this.mnemonics.splice(index,0,item);
this.mnemonics.splice(this.returnIndex,0,item);
console.log(this.mnemonics,'return')
console.log(this.returnIndex,'return')
this.index--
},
//
toWrod(word,index){
this.showItem=index
console.log(word,index,11111)
this.mnemonics.splice(index,1);
console.log(this.mnemonics,'to')
this.wordArr[this.index]=word
this.returnIndex=index
console.log(this.wordArr)
this.index++
this.$forceUpdate()

134
pages/menu/backUp/backUp4/index.css

@ -0,0 +1,134 @@
.main{
padding: 0 32rpx;
padding-bottom: 100rpx;
}
.main .title{
text-align: center;
margin-top: 80rpx;
color: #000;
font-size: 32rpx;
line-height: 48rpx;
}
.main .title2{
text-align: center;
margin-top: 32rpx;
color: #7D87A6;
font-size: 28rpx;
line-height: 48rpx;
}
.mnemonic{
margin-top: 40rpx;
overflow: hidden;
}
.mnemonicBlock{
width: 212rpx;
display: flex;
align-items: center;
justify-content: center;
height: 80rpx;
margin-bottom: 10rpx;
background-color: #E0E5F2;
border-radius: 10rpx;
text-align: center;
position: relative;
color: #000000;
float: left;
margin-left: 10rpx;
}
.mnemonicBlock .number{
position: absolute;
right: 14rpx;
font-size: 24rpx;
bottom: 10rpx;
color: #7D87A6;
}
.main .textareaa{
min-height: 364rpx;
border: 2rpx solid #E9EDF7;
border-radius: 10rpx;
margin-top: 60rpx;
padding: 20rpx;
overflow: hidden;
}
.main .textareaa .item{
float: left;
}
.main .textareaa .item{
margin-left: 10rpx;
}
.mnemonicBlock .item{
display: flex;
width: 100%;
justify-content: center;
align-items: center;
height: 100%;
}
.info_con{
background-color: #fff;
width: 95%;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
border-radius: 24rpx;
z-index: 999;
padding-top: 128rpx;
padding-bottom: 64rpx;
}
.info_con .img{
display: block;
margin: 0 auto;
width: 124rpx;
height: 124rpx;
}
.info_con .info{
text-align: center;
font-size: 36rpx;
margin-top: 20rpx;
}
.info_con .text{
color: #7D87A6;
text-align: center;
font-size: 30rpx;
margin-top: 40rpx;
}
.info_con .btn{
margin: 0 auto;
background-color: #5B53FF;
width: 480rpx;
line-height: 96rpx;
border-radius: 32rpx;
color: #fff;
text-align: center;
margin-top: 104rpx;
}
.info_con .img2{
width: 48rpx;
height: 48rpx;
position: absolute;
right: 30rpx;
top: 30rpx;
}
.info_con .btncon{
margin-top: 64rpx;
display: flex;
justify-content: space-between;
padding: 0 24rpx;
}
.info_con .btncon .can{
width: 314rpx;
line-height: 96rpx;
border-radius: 32rpx;
text-align: center;
color: #F16063;
border: 2rpx solid #F16063;
}
.info_con .btncon .con{
width: 314rpx;
line-height: 96rpx;
border-radius: 32rpx;
text-align: center;
color: #fff;
background-color: #5B53FF;
}

165
pages/menu/backUp/backUp4/index.vue

@ -0,0 +1,165 @@
<template>
<view class="">
<navigation :showBack="true">
Backup mnemonics
</navigation>
<view class="main">
<view class="title">
Confirm your wallet mnemonic
</view>
<textarea class="textareaa" placeholder="Enter mnemonic words separated by spaces" placeholder-style="color:rgb(224,229,242)">
</textarea>
<u-button class="custom-style" @click="confirm">Confirm</u-button>
<view class="info_con" v-if="show">
<image src="../../../../static/tongyonh/xg.png" mode="aspectFit" class="img2" @click="show=false"></image>
<image src="../../../../static/tongyonh/Frame60.png" mode="aspectFit" class="img"></image>
<view class="info">
Successful
</view>
<view class="text">
Backup mnemonic completed!
</view>
<view class="btn" @click="goTranPaw">
Confirm
</view>
</view>
<view class="info_con" v-if="show2">
<image src="../../../../static/tongyonh/xg.png" mode="aspectFit" class="img2" @click="show2=false"></image>
<image src="../../../../static/tongyonh/Subtract.png" mode="aspectFit" class="img"></image>
<view class="info">
Invalid Seed
</view>
<view class="text">
You entered the wrong booster words, <br>please try again.
</view>
<view class="btncon">
<view class="can" @click="show2=false">
Cancel
</view>
<view class="con" @click="restart">
Confirm
</view>
</view>
</view>
<u-mask :show="show" z-index="10"></u-mask>
<u-mask :show="show2" z-index="10"></u-mask>
</view>
</view>
</view>
</template>
<script>
import cont from "@/components/navigation/navigation.vue"
export default {
data() {
return {
mnemonics:[],
wordArr:[],
show: false,
index:0,
returnIndex:0,
//
mnemonics2:[],
show2:false,
};
},
methods: {
//
goTranPaw(){
uni.navigateTo({
url:'/pages/menu/backUp/transPaw/index'
})
},
//
restart(){
uni.redirectTo({
url:'../backUp3/index'
})
},
//
confirm(){
var go=false;
for(var i=0;i<this.mnemonics2.length;i++){
if(this.mnemonics2[i]==this.wordArr[i]){
go=true;
}else{
go=false;
}
};
if(go){
this.show=true;
}else{
this.show2=true
}
},
//
getWrod(){
var walletInfo = uni.getStorageSync('word');
this.mnemonics=walletInfo.mnemonic.split(' ')
//
this.mnemonics.sort(function() {
return (0.5-Math.random());
});
this.mnemonics2=walletInfo.mnemonic.split(' ')
},
returnWord(item,index){
this.wordArr.splice(index,1);
this.mnemonics.splice(this.returnIndex,0,item);
console.log(this.mnemonics,'return')
console.log(this.returnIndex,'return')
this.index--
},
//
toWrod(word,index){
console.log(word,index,11111)
this.mnemonics.splice(index,1);
console.log(this.mnemonics,'to')
this.wordArr[this.index]=word
this.returnIndex=index
console.log(this.wordArr)
this.index++
this.$forceUpdate()
}
},
onLoad() {
this.getWrod()
},
};
</script>
<style scoped>
.custom-style {
height: 112rpx;
text-align: center;
color: #fff;
background-color: #5B53FF !important;
border-radius: 40rpx;
margin-top: 50rpx;
}
.u-default-hover{
background-color: #5B53FF !important;
border-radius: 40rpx !important;
color: #fff !important;
border: none;
}
</style>
<style>
@import './index.css';
</style>

11
pages/register/index.vue

@ -148,8 +148,17 @@
})
return;
}
var walletInfo=token.creatingWallets()
var walletInfo=token.initialWallet()
var word=token.creatingWallets();
console.log(word,1111111)
// ,
uni.setStorage({
key: 'word',
data: word,
success: function() {
console.log('success',word)
}
});
uni.setStorage({
key: 'walletInfo',
data: walletInfo,

55
utils/TokenUtil.js

@ -8,12 +8,13 @@ const bitcoin = require('bitcoinjs-lib')
let Tx = require('ethereumjs-tx');
let token = {
let token = {
// 获取助记词
generateMnemonic: function() {
return bip39.generateMnemonic();
},
//获取Child
getPrivateKey: function(mnemonic, hdpath) {
let seed = bip39.mnemonicToSeedSync(mnemonic);
@ -25,7 +26,9 @@ let token = {
},
//根据助记词生成以太坊ETH的钱包信息
generateEth: function(mnemonic) {
let privateKey = this.getPrivateKey(mnemonic, "m/44'/60'/0'/0/0");
let wallet = new ethers.Wallet(privateKey);
let address = wallet.address;
return {
@ -86,19 +89,43 @@ let token = {
'address': address
};
},
initialWallet:function(mnemonic,password){
let btc=this.generateBtc(mnemonic);
btc.password=password;
btc.coinList=[{
name:"BTC"
}];
let eth=this.generateEth(mnemonic);
eth.password=password;
btc.coinList=[{
name:"ETH"
}];
let tron=this.generateTron(mnemonic);
tron.password=password;
btc.coinList=[{
name:"TRON"
}];
let wallrtInfo={
"BTC":[
btc,
],"ETH":[eth],"TRON":[tron]
}
return wallrtInfo;
},
creatingWallets: function() {
let mnemonic = this.generateMnemonic();
let eth = this.generateEth(mnemonic);
let tron = this.generateTron(mnemonic);
let btc = this.generateBtc(mnemonic);
// let privateKey = this.getPrivateKey(mnemonic);
return {
'eth': eth,
'tron': tron,
'btc': btc,
'mnemonic': mnemonic,
// 'privateKey': privateKey
};
},
let mnemonic = this.generateMnemonic();
let eth = this.generateEth(mnemonic);
let tron = this.generateTron(mnemonic);
let btc = this.generateBtc(mnemonic);
// let privateKey = this.getPrivateKey(mnemonic);
return {
'eth': eth,
'tron': tron,
'btc': btc,
'mnemonic': mnemonic,
// 'privateKey': privateKey
};
},
}
export default token

Loading…
Cancel
Save