清理代码
This commit is contained in:
@@ -4,8 +4,6 @@
|
||||
"description": "ZH健康",
|
||||
"main": "main.js",
|
||||
"dependencies": {
|
||||
"bitcore-lib": "^8.25.25",
|
||||
"bitcore-mnemonic": "^8.25.25",
|
||||
"moment": "^2.29.1",
|
||||
"uni-read-pages": "^1.0.5",
|
||||
"uni-simple-router": "^2.0.7",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<view class="im--img" :class="guest ? 'right': 'left'">
|
||||
<image class="src" :src="msg.thumbnail" @click="previewImage" mode="widthFix"></image>
|
||||
<view class="im--image" :class="guest ? 'right': 'left'">
|
||||
<image class="img" :src="msg.thumbnail" @click="previewImage" mode="widthFix"></image>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -10,7 +10,15 @@
|
||||
props: {
|
||||
msg: {
|
||||
type: Object,
|
||||
default: {}
|
||||
default: () => {
|
||||
return {
|
||||
local: '',
|
||||
remote: '',
|
||||
objectName: '',
|
||||
thumbnail: '',
|
||||
isFull: false
|
||||
}
|
||||
}
|
||||
},
|
||||
guest: {
|
||||
type: Boolean,
|
||||
@@ -30,22 +38,23 @@
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.im--img {
|
||||
padding: 19rpx;
|
||||
}
|
||||
<style scoped lang="scss">
|
||||
.im--image {
|
||||
padding: 20rpx;
|
||||
|
||||
.im--img.left {
|
||||
&.left {
|
||||
border-radius: 0 20rpx 20rpx 20rpx;
|
||||
background: white;
|
||||
}
|
||||
|
||||
.im--img.right {
|
||||
&.right {
|
||||
border-radius: 20rpx 0 20rpx 20rpx;
|
||||
background: #34CE98;
|
||||
}
|
||||
|
||||
.src {
|
||||
width: 240rpx;
|
||||
.img {
|
||||
width: 150rpx;
|
||||
border-radius: 10rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -7,11 +7,6 @@
|
||||
<script>
|
||||
export default {
|
||||
name: 'showText',
|
||||
data() {
|
||||
return {
|
||||
|
||||
};
|
||||
},
|
||||
props: {
|
||||
msg: {
|
||||
type: Object,
|
||||
@@ -25,22 +20,22 @@
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style scoped lang="scss">
|
||||
.im--text {
|
||||
max-width: 400rpx;
|
||||
padding: 20rpx;
|
||||
font-size: 28rpx;
|
||||
line-height: 40rpx;
|
||||
}
|
||||
|
||||
.im--text.left {
|
||||
&.left {
|
||||
border-radius: 0 20rpx 20rpx 20rpx;
|
||||
background: white;
|
||||
}
|
||||
|
||||
.im--text.right {
|
||||
&.right {
|
||||
border-radius: 20rpx 0 20rpx 20rpx;
|
||||
background: #34CE98;
|
||||
background: $main-color;
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<template>
|
||||
<view>
|
||||
<view class="im--audio" :class="guest ? 'right': 'left'" @click="onPlayMsg">
|
||||
<image v-if="!guest" class="audio-mp3" src="@/static/icon/audio_green.png" mode="widthFix"></image>
|
||||
<text class="audio-text">"{{msg.duration}}"</text>
|
||||
<image v-if="guest" class="audio-mp3" src="@/static/icon/audio_white.png" mode="widthFix"></image>
|
||||
<view class="im--voice" :class="guest ? 'right': 'left'" @click="onPlayMsg">
|
||||
<image v-if="!guest" class="icon" src="@/static/icon/audio_green.png" mode="widthFix"></image>
|
||||
<text class="duration">{{msg.duration}}"</text>
|
||||
<image v-if="guest" class="icon" src="@/static/icon/audio_white.png" mode="widthFix"></image>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
@@ -57,8 +57,8 @@
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.im--audio {
|
||||
<style scoped lang="scss">
|
||||
.im--voice {
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
@@ -66,33 +66,30 @@
|
||||
width: 170rpx;
|
||||
padding: 0 20rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
,
|
||||
.im--audio.left {
|
||||
border-radius: 0 20rpx 20rpx 20rpx;
|
||||
background: white;
|
||||
}
|
||||
|
||||
.im--audio.right {
|
||||
border-radius: 20rpx 0 20rpx 20rpx;
|
||||
background: #34CE98;
|
||||
}
|
||||
|
||||
.audio-mp3 {
|
||||
.icon {
|
||||
width: 38rpx;
|
||||
height: 38rpx;
|
||||
}
|
||||
|
||||
.audio-text {
|
||||
&.left {
|
||||
border-radius: 0 20rpx 20rpx 20rpx;
|
||||
background: white;
|
||||
|
||||
.duration {
|
||||
color: #333;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
|
||||
.im--audio.left .audio-text {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.im--audio.right .audio-text {
|
||||
&.right {
|
||||
border-radius: 20rpx 0 20rpx 20rpx;
|
||||
background: $main-color;
|
||||
|
||||
.duration {
|
||||
color: white;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -29,21 +29,24 @@
|
||||
</style>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content{
|
||||
.content {
|
||||
position: relative;
|
||||
height: 100vh;
|
||||
padding: 0 15vw;
|
||||
text-align: center;
|
||||
.logo{
|
||||
|
||||
.logo {
|
||||
width: 138rpx;
|
||||
vertical-align: top;
|
||||
margin-bottom: 20vh;
|
||||
}
|
||||
.sub-title{
|
||||
|
||||
.sub-title {
|
||||
font-size: $title-size-m;
|
||||
color: $text-gray;
|
||||
}
|
||||
.wallet-btn{
|
||||
|
||||
.wallet-btn {
|
||||
width: 100%;
|
||||
background-color: $main-color;
|
||||
height: 90rpx;
|
||||
@@ -53,10 +56,11 @@
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
font-size: $title-size;
|
||||
&.hollow{
|
||||
|
||||
&.hollow {
|
||||
background-color: white;
|
||||
color: $main-color;
|
||||
border:solid 2rpx $main-color;
|
||||
border: solid 2rpx $main-color;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,17 +29,8 @@
|
||||
</view>
|
||||
</view>
|
||||
<!-- key键盘 -->
|
||||
<u-keyboard
|
||||
mode="number"
|
||||
random
|
||||
dotDisabled
|
||||
:overlay="false"
|
||||
:show="keyShow"
|
||||
:showCancel="false"
|
||||
@change="keyValChange"
|
||||
@backspace="keyValBackspace"
|
||||
@confirm="keyShow = false"
|
||||
></u-keyboard>
|
||||
<u-keyboard mode="number" random dotDisabled :overlay="false" :show="keyShow" :showCancel="false"
|
||||
@change="keyValChange" @backspace="keyValBackspace" @confirm="keyShow = false"></u-keyboard>
|
||||
<!-- 按钮 -->
|
||||
<view class="buttons">
|
||||
<button type="default" form-type="submit" @click="createWallet">确认激活</button>
|
||||
@@ -48,30 +39,33 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { security } from '@/apis/interfaces/wallet';
|
||||
export default {
|
||||
import {
|
||||
security
|
||||
} from '@/apis/interfaces/wallet';
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
password: '',
|
||||
verify : '',
|
||||
valKye : '',
|
||||
keyShow : false
|
||||
verify: '',
|
||||
valKye: '',
|
||||
keyShow: false
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
// 唤起key
|
||||
onShowKet(key){
|
||||
onShowKet(key) {
|
||||
this.valKye = key
|
||||
this.keyShow = true
|
||||
},
|
||||
// 键盘输入
|
||||
keyValChange(e){
|
||||
if(this[this.valKye].length >= 6) return
|
||||
keyValChange(e) {
|
||||
if (this[this.valKye].length >= 6) return
|
||||
this[this.valKye] += e
|
||||
},
|
||||
// 键盘删除
|
||||
keyValBackspace(e){
|
||||
if(this[this.valKye].length) this[this.valKye] = this[this.valKye].substr(0, this[this.valKye].length - 1)
|
||||
keyValBackspace(e) {
|
||||
if (this[this.valKye].length) this[this.valKye] = this[this.valKye].substr(0, this[this.valKye].length -
|
||||
1)
|
||||
},
|
||||
// 激活钱包
|
||||
createWallet() {
|
||||
@@ -104,31 +98,38 @@ export default {
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.flicker-animation{
|
||||
.flicker-animation {
|
||||
animation: flicker .8s infinite;
|
||||
}
|
||||
@keyframes flicker{
|
||||
0%{opacity: 0;}
|
||||
100{opacity: 1;}
|
||||
|
||||
@keyframes flicker {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100 {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
// 副标题
|
||||
.sub-title {
|
||||
// 副标题
|
||||
.sub-title {
|
||||
color: $text-gray;
|
||||
text-align: center;
|
||||
margin: $margin * 2 $margin;
|
||||
font-size: $title-size-m;
|
||||
}
|
||||
}
|
||||
|
||||
// 设置密码
|
||||
.password {
|
||||
// 设置密码
|
||||
.password {
|
||||
padding: 0 $padding * 2;
|
||||
|
||||
.prompt {
|
||||
margin-top: $margin * 2;
|
||||
font-size: $title-size-m;
|
||||
@@ -138,6 +139,7 @@ export default {
|
||||
|
||||
.group {
|
||||
padding-top: $padding;
|
||||
|
||||
.inputs {
|
||||
padding: 10rpx $padding + 10;
|
||||
margin-top: $margin;
|
||||
@@ -147,20 +149,23 @@ export default {
|
||||
line-height: 70rpx;
|
||||
font-size: $title-size-lg;
|
||||
text-align: center;
|
||||
text{
|
||||
|
||||
text {
|
||||
padding: 0 10rpx;
|
||||
text-align: center;
|
||||
}
|
||||
.placeholder{
|
||||
|
||||
.placeholder {
|
||||
color: $text-gray;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 按钮
|
||||
.buttons {
|
||||
// 按钮
|
||||
.buttons {
|
||||
padding: $padding * 2;
|
||||
|
||||
.text {
|
||||
text-align: center;
|
||||
line-height: 90rpx;
|
||||
@@ -179,9 +184,10 @@ export default {
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
font-size: $title-size;
|
||||
&::after{
|
||||
|
||||
&::after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -15,7 +15,9 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { seed } from "@/apis/interfaces/wallet"
|
||||
import {
|
||||
seed
|
||||
} from "@/apis/interfaces/wallet"
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@@ -35,7 +37,7 @@
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
goto(){
|
||||
goto() {
|
||||
this.$Router.replace({
|
||||
name: 'WalletValidation',
|
||||
params: {
|
||||
@@ -50,25 +52,28 @@
|
||||
|
||||
<style lang="scss" scoped>
|
||||
// 提示信息
|
||||
.prompt{
|
||||
.prompt {
|
||||
color: $text-gray;
|
||||
text-align: center;
|
||||
line-height: 90rpx;
|
||||
font-size: $title-size-m;
|
||||
}
|
||||
|
||||
// 跳过
|
||||
.skip{
|
||||
.skip {
|
||||
padding: $padding * 2;
|
||||
text-align: center;
|
||||
color: $text-gray;
|
||||
navigator{
|
||||
|
||||
navigator {
|
||||
color: $main-color;
|
||||
margin-left: $margin/2;
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
// 助记词
|
||||
.mnemonic{
|
||||
.mnemonic {
|
||||
margin: $margin $margin * 2;
|
||||
border-radius: $radius-m;
|
||||
box-shadow: 0 0 4rpx 4rpx rgba($color: $text-color, $alpha: .02);
|
||||
@@ -77,7 +82,8 @@
|
||||
list-style: none;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
li{
|
||||
|
||||
li {
|
||||
text-align: center;
|
||||
height: 58rpx;
|
||||
padding: 0 $padding/2;
|
||||
@@ -87,16 +93,19 @@
|
||||
background: rgba($color: $border-color, $alpha: .4);
|
||||
}
|
||||
}
|
||||
|
||||
// 按钮
|
||||
.buttons{
|
||||
.buttons {
|
||||
padding: $padding $padding * 2;
|
||||
.text{
|
||||
|
||||
.text {
|
||||
text-align: center;
|
||||
margin-bottom: $margin * 2;
|
||||
font-size: $title-size-m;
|
||||
color: $text-price;
|
||||
}
|
||||
button{
|
||||
|
||||
button {
|
||||
height: 90rpx;
|
||||
line-height: 90rpx;
|
||||
background-color: $main-color;
|
||||
@@ -104,7 +113,8 @@
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
font-size: $title-size;
|
||||
&::after{
|
||||
|
||||
&::after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,13 +21,15 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { privatekey, keyrules } from '@/apis/interfaces/wallet'
|
||||
import {
|
||||
privatekey,
|
||||
keyrules
|
||||
} from '@/apis/interfaces/wallet'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
key: "",
|
||||
rules: [
|
||||
{
|
||||
rules: [{
|
||||
title: "什么是托管钱包?",
|
||||
description: "托管钱包顾名思义就是用户把私钥和数字资产委托给其他机构管理,也就是就是通过中心化的方式安全管理并保存资产,本质上是与区块链所追求的去中心化相背离的。"
|
||||
},
|
||||
@@ -44,12 +46,12 @@
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
icon: 'none'
|
||||
})
|
||||
})
|
||||
},
|
||||
methods:{
|
||||
copykey(){
|
||||
methods: {
|
||||
copykey() {
|
||||
uni.setClipboardData({
|
||||
data: this.key
|
||||
})
|
||||
@@ -59,25 +61,28 @@
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.keys{
|
||||
.keys {
|
||||
margin: $margin * 2;
|
||||
background: white;
|
||||
padding: $padding * 2;
|
||||
box-shadow: 0 0 4rpx 4rpx rgba($color: #000000, $alpha: .02);
|
||||
border-radius: $radius;
|
||||
.title{
|
||||
|
||||
.title {
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
font-size: $title-size + 4;
|
||||
color: $text-color;
|
||||
}
|
||||
.key{
|
||||
|
||||
.key {
|
||||
padding: $padding * 2 0;
|
||||
text-align: center;
|
||||
color: $main-color;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
.copykey{
|
||||
|
||||
.copykey {
|
||||
background-color: $main-color;
|
||||
color: white;
|
||||
height: 95rpx;
|
||||
@@ -88,28 +93,34 @@
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
.doubt{
|
||||
|
||||
.doubt {
|
||||
margin: $margin $margin * 2;
|
||||
.doubt-item{
|
||||
|
||||
.doubt-item {
|
||||
padding: $padding 0;
|
||||
.title{
|
||||
|
||||
.title {
|
||||
font-weight: bold;
|
||||
color: $text-color;
|
||||
line-height: 50rpx;
|
||||
font-size: $title-size + 2;
|
||||
}
|
||||
.content{
|
||||
|
||||
.content {
|
||||
color: $text-gray;
|
||||
font-size: $title-size-m;
|
||||
line-height: 40rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.liability{
|
||||
|
||||
.liability {
|
||||
text-align: center;
|
||||
color: $text-gray;
|
||||
@extend .ios-bottom;
|
||||
navigator{
|
||||
|
||||
navigator {
|
||||
font-size: $title-size-sm;
|
||||
display: inline-block;
|
||||
line-height: 90rpx;
|
||||
|
||||
@@ -35,35 +35,30 @@
|
||||
</view>
|
||||
</u-popup>
|
||||
<!-- key -->
|
||||
<u-keyboard
|
||||
mode="number"
|
||||
random
|
||||
dotDisabled
|
||||
:overlay="false"
|
||||
:show="passwordShow"
|
||||
confirmText="验证"
|
||||
@change="keyValChange"
|
||||
@backspace="keyValBackspace"
|
||||
@confirm="payPassword('confirm', passwordPages)"
|
||||
@cancel="passwordShow = false"
|
||||
></u-keyboard>
|
||||
<u-keyboard mode="number" random dotDisabled :overlay="false" :show="passwordShow" confirmText="验证"
|
||||
@change="keyValChange" @backspace="keyValBackspace" @confirm="payPassword('confirm', passwordPages)"
|
||||
@cancel="passwordShow = false"></u-keyboard>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import record from '@/components/property/record'
|
||||
import { sum, logs, securityCheck } from '@/apis/interfaces/wallet'
|
||||
import {
|
||||
sum,
|
||||
logs,
|
||||
securityCheck
|
||||
} from '@/apis/interfaces/wallet'
|
||||
export default {
|
||||
components: {
|
||||
record
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
balance : {},
|
||||
logs : [],
|
||||
logsType : 0,
|
||||
password : '',
|
||||
passwordShow : false,
|
||||
balance: {},
|
||||
logs: [],
|
||||
logsType: 0,
|
||||
password: '',
|
||||
passwordShow: false,
|
||||
passwordPages: ''
|
||||
};
|
||||
},
|
||||
@@ -83,44 +78,59 @@
|
||||
},
|
||||
methods: {
|
||||
// 键盘输入
|
||||
keyValChange(e){
|
||||
if(this.password.length >= 6) return
|
||||
keyValChange(e) {
|
||||
if (this.password.length >= 6) return
|
||||
this.password += e
|
||||
},
|
||||
// 键盘删除
|
||||
keyValBackspace(e){
|
||||
if(this.password.length) this.password = this.password.substr(0, this.password.length - 1)
|
||||
keyValBackspace(e) {
|
||||
if (this.password.length) this.password = this.password.substr(0, this.password.length - 1)
|
||||
},
|
||||
// 弹出私钥
|
||||
showPrivatekey(pages){
|
||||
showPrivatekey(pages) {
|
||||
this.passwordShow = true
|
||||
this.passwordPages = pages
|
||||
},
|
||||
// 重置密码
|
||||
resetPassword(){
|
||||
resetPassword() {
|
||||
this.passwordShow = false
|
||||
this.password = ''
|
||||
},
|
||||
// 验证私钥
|
||||
payPassword(type){
|
||||
if(type === 'confirm'){
|
||||
if(this.password === '') {
|
||||
payPassword(type) {
|
||||
if (type === 'confirm') {
|
||||
if (this.password === '') {
|
||||
uni.showToast({
|
||||
title: '请输入安全密码',
|
||||
icon : 'none'
|
||||
icon: 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
securityCheck(this.password).then(res => {
|
||||
switch (this.passwordPages){
|
||||
switch (this.passwordPages) {
|
||||
case 'privatekey':
|
||||
this.$Router.push({name:'WalletPrivatekey', params: {password: this.password}})
|
||||
this.$Router.push({
|
||||
name: 'WalletPrivatekey',
|
||||
params: {
|
||||
password: this.password
|
||||
}
|
||||
})
|
||||
break;
|
||||
case 'ResetPassword':
|
||||
this.$Router.push({name:'ResetPassword', params: {password: this.password}})
|
||||
this.$Router.push({
|
||||
name: 'ResetPassword',
|
||||
params: {
|
||||
password: this.password
|
||||
}
|
||||
})
|
||||
break;
|
||||
case 'WalletMnemonic':
|
||||
this.$Router.push({name:'WalletMnemonic', params: {password: this.password}})
|
||||
this.$Router.push({
|
||||
name: 'WalletMnemonic',
|
||||
params: {
|
||||
password: this.password
|
||||
}
|
||||
})
|
||||
break;
|
||||
}
|
||||
this.resetPassword()
|
||||
@@ -184,23 +194,31 @@
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.flicker-animation{
|
||||
.flicker-animation {
|
||||
animation: flicker .8s infinite;
|
||||
}
|
||||
@keyframes flicker{
|
||||
0%{opacity: 0;}
|
||||
100{opacity: 1;}
|
||||
|
||||
@keyframes flicker {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100 {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
// 验证密码弹出层
|
||||
.validationPassword{
|
||||
.validationPassword {
|
||||
width: 80vw;
|
||||
.from{
|
||||
|
||||
.from {
|
||||
padding: $padding*2;
|
||||
text-align: center;
|
||||
.title{
|
||||
|
||||
.title {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
@@ -209,6 +227,7 @@
|
||||
font-size: $title-size;
|
||||
padding-bottom: $padding;
|
||||
}
|
||||
|
||||
// input{
|
||||
// background: $window-color;
|
||||
// height: 90rpx;
|
||||
@@ -223,35 +242,43 @@
|
||||
border-radius: 45rpx;
|
||||
font-size: $title-size-lg;
|
||||
text-align: center;
|
||||
text{
|
||||
|
||||
text {
|
||||
padding: 0 10rpx;
|
||||
text-align: center;
|
||||
}
|
||||
.placeholder{
|
||||
|
||||
.placeholder {
|
||||
color: $text-gray;
|
||||
}
|
||||
}
|
||||
}
|
||||
.buttons{
|
||||
|
||||
.buttons {
|
||||
text-align: center;
|
||||
padding: 0 $padding*2;
|
||||
.button{
|
||||
|
||||
.button {
|
||||
height: 90rpx;
|
||||
line-height: 90rpx;
|
||||
margin-bottom: $margin;
|
||||
&.cancel{
|
||||
|
||||
&.cancel {
|
||||
color: $text-gray;
|
||||
}
|
||||
&.confirm{
|
||||
|
||||
&.confirm {
|
||||
color: white;
|
||||
background: $main-color;
|
||||
border-radius: 45rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
}
|
||||
|
||||
// 账户
|
||||
.propery {
|
||||
position: relative;
|
||||
|
||||
@@ -29,17 +29,8 @@
|
||||
</view>
|
||||
</view>
|
||||
<!-- key键盘 -->
|
||||
<u-keyboard
|
||||
mode="number"
|
||||
random
|
||||
dotDisabled
|
||||
:overlay="false"
|
||||
:show="keyShow"
|
||||
:showCancel="false"
|
||||
@change="keyValChange"
|
||||
@backspace="keyValBackspace"
|
||||
@confirm="keyShow = false"
|
||||
></u-keyboard>
|
||||
<u-keyboard mode="number" random dotDisabled :overlay="false" :show="keyShow" :showCancel="false"
|
||||
@change="keyValChange" @backspace="keyValBackspace" @confirm="keyShow = false"></u-keyboard>
|
||||
<!-- 按钮 -->
|
||||
<view class="buttons">
|
||||
<button type="default" form-type="submit" @click="createWallet">确认修改</button>
|
||||
@@ -48,16 +39,17 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { securityReset } from '@/apis/interfaces/wallet'
|
||||
import {
|
||||
securityReset
|
||||
} from '@/apis/interfaces/wallet'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
password: '',
|
||||
verify: '',
|
||||
oldPassword: '',
|
||||
|
||||
valKye : '',
|
||||
keyShow : false
|
||||
valKye: '',
|
||||
keyShow: false
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
@@ -65,18 +57,19 @@
|
||||
},
|
||||
methods: {
|
||||
// 唤起key
|
||||
onShowKet(key){
|
||||
onShowKet(key) {
|
||||
this.valKye = key
|
||||
this.keyShow = true
|
||||
},
|
||||
// 键盘输入
|
||||
keyValChange(e){
|
||||
if(this[this.valKye].length >= 6) return
|
||||
keyValChange(e) {
|
||||
if (this[this.valKye].length >= 6) return
|
||||
this[this.valKye] += e
|
||||
},
|
||||
// 键盘删除
|
||||
keyValBackspace(e){
|
||||
if(this[this.valKye].length) this[this.valKye] = this[this.valKye].substr(0, this[this.valKye].length - 1)
|
||||
keyValBackspace(e) {
|
||||
if (this[this.valKye].length) this[this.valKye] = this[this.valKye].substr(0, this[this.valKye].length -
|
||||
1)
|
||||
},
|
||||
// 修改密码
|
||||
createWallet() {
|
||||
@@ -101,8 +94,8 @@
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '密码已重置',
|
||||
showCancel:false,
|
||||
success: res=> {
|
||||
showCancel: false,
|
||||
success: res => {
|
||||
uni.navigateBack()
|
||||
}
|
||||
})
|
||||
@@ -119,12 +112,18 @@
|
||||
|
||||
|
||||
<style>
|
||||
.flicker-animation{
|
||||
.flicker-animation {
|
||||
animation: flicker .8s infinite;
|
||||
}
|
||||
@keyframes flicker{
|
||||
0%{opacity: 0;}
|
||||
100{opacity: 1;}
|
||||
|
||||
@keyframes flicker {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100 {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -140,6 +139,7 @@
|
||||
// 设置密码
|
||||
.password {
|
||||
padding: 0 $padding * 2;
|
||||
|
||||
.prompt {
|
||||
margin-top: $margin * 2;
|
||||
font-size: $title-size-m;
|
||||
@@ -149,6 +149,7 @@
|
||||
|
||||
.group {
|
||||
padding-top: $padding;
|
||||
|
||||
.inputs {
|
||||
padding: 10rpx $padding + 10;
|
||||
margin-top: $margin;
|
||||
@@ -158,11 +159,13 @@
|
||||
line-height: 70rpx;
|
||||
font-size: $title-size-lg;
|
||||
text-align: center;
|
||||
text{
|
||||
|
||||
text {
|
||||
padding: 0 10rpx;
|
||||
text-align: center;
|
||||
}
|
||||
.placeholder{
|
||||
|
||||
.placeholder {
|
||||
color: $text-gray;
|
||||
}
|
||||
}
|
||||
@@ -172,6 +175,7 @@
|
||||
// 按钮
|
||||
.buttons {
|
||||
padding: $padding * 2;
|
||||
|
||||
.text {
|
||||
text-align: center;
|
||||
line-height: 90rpx;
|
||||
@@ -190,7 +194,8 @@
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
font-size: $title-size;
|
||||
&::after{
|
||||
|
||||
&::after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,13 +6,8 @@
|
||||
</view>
|
||||
<!-- 助记词 -->
|
||||
<view class="mnemonic">
|
||||
<view
|
||||
class="item"
|
||||
v-for="(item, index) in validation"
|
||||
:key="index"
|
||||
:class="item === null ? 'hide': ''"
|
||||
@click="onKeys('removeKey', index)"
|
||||
>{{ item }}</view>
|
||||
<view class="item" v-for="(item, index) in validation" :key="index" :class="item === null ? 'hide': ''"
|
||||
@click="onKeys('removeKey', index)">{{ item }}</view>
|
||||
</view>
|
||||
<!-- 选择助记词 -->
|
||||
<block v-if="mnemonic.length > 0">
|
||||
@@ -20,7 +15,8 @@
|
||||
按顺序填写助记词
|
||||
</view>
|
||||
<view class="mnemonic-select">
|
||||
<view class="item" v-for="(item, index) in mnemonic" :key="index" @click="onKeys('addKey', index)">{{ item }}</view>
|
||||
<view class="item" v-for="(item, index) in mnemonic" :key="index" @click="onKeys('addKey', index)">
|
||||
{{ item }}</view>
|
||||
</view>
|
||||
</block>
|
||||
<!-- 按钮 -->
|
||||
@@ -31,14 +27,16 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { hash } from "../../apis/interfaces/wallet"
|
||||
import {
|
||||
hash
|
||||
} from "@/apis/interfaces/wallet"
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
validation : new Array(12).fill(null), // 验证key
|
||||
mnemonic : [], // 助记词key
|
||||
sign : '', // 助记词校验签名
|
||||
seedString : '', // 助记词原词
|
||||
validation: new Array(12).fill(null), // 验证key
|
||||
mnemonic: [], // 助记词key
|
||||
sign: '', // 助记词校验签名
|
||||
seedString: '', // 助记词原词
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
@@ -53,24 +51,24 @@
|
||||
},
|
||||
methods: {
|
||||
// 填写助记词
|
||||
onKeys(type, index){
|
||||
if(type === 'addKey') {
|
||||
onKeys(type, index) {
|
||||
if (type === 'addKey') {
|
||||
this.$set(this.validation, this.validation.findIndex(val => val === null), this.mnemonic[index])
|
||||
this.$delete(this.mnemonic, index)
|
||||
return
|
||||
}
|
||||
if(type === 'removeKey' && this.validation[index] !== null) {
|
||||
if (type === 'removeKey' && this.validation[index] !== null) {
|
||||
this.mnemonic.push(this.validation[index])
|
||||
this.$delete(this.validation, index)
|
||||
this.validation.push(null)
|
||||
}
|
||||
},
|
||||
// 验证助记词
|
||||
verifyMnemonic(){
|
||||
if(this.validation.findIndex(val => val === null) > -1){
|
||||
verifyMnemonic() {
|
||||
if (this.validation.findIndex(val => val === null) > -1) {
|
||||
uni.showToast({
|
||||
title: '请完整填写助记词',
|
||||
icon : 'none'
|
||||
icon: 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -78,7 +76,7 @@
|
||||
if (this.seedString !== seed) {
|
||||
uni.showToast({
|
||||
title: '验证失败,请确认您的助记词',
|
||||
icon : 'none'
|
||||
icon: 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -92,24 +90,27 @@
|
||||
|
||||
<style lang="scss" scoped>
|
||||
// 提示信息
|
||||
.prompt{
|
||||
.prompt {
|
||||
color: $text-gray;
|
||||
text-align: center;
|
||||
line-height: 90rpx;
|
||||
font-size: $title-size-m;
|
||||
}
|
||||
|
||||
// 选择助记词
|
||||
.mnemonic-title{
|
||||
.mnemonic-title {
|
||||
padding-top: $padding * 2;
|
||||
margin: 0 $margin * 2;
|
||||
font-size: $title-size-m;
|
||||
color: $main-color;
|
||||
}
|
||||
.mnemonic-select{
|
||||
|
||||
.mnemonic-select {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
padding: $padding $padding + $padding / 2;
|
||||
.item{
|
||||
|
||||
.item {
|
||||
background-color: white;
|
||||
line-height: 68rpx;
|
||||
height: 68rpx;
|
||||
@@ -120,8 +121,9 @@
|
||||
box-shadow: 0 0 4rpx 4rpx rgba($color: $text-color, $alpha: .02);
|
||||
}
|
||||
}
|
||||
|
||||
// 助记词
|
||||
.mnemonic{
|
||||
.mnemonic {
|
||||
margin: $margin ($margin * 2);
|
||||
border-radius: $radius-m;
|
||||
box-shadow: 0 0 4rpx 4rpx rgba($color: $text-color, $alpha: .02);
|
||||
@@ -130,7 +132,8 @@
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: flex-start;
|
||||
.item{
|
||||
|
||||
.item {
|
||||
background: rgba($color: $border-color, $alpha: .4);
|
||||
min-width: 58rpx;
|
||||
height: 58rpx;
|
||||
@@ -138,23 +141,27 @@
|
||||
text-align: center;
|
||||
color: $text-color;
|
||||
margin: $margin / 2;
|
||||
&.hide{
|
||||
border:dashed 1px $border-color;
|
||||
|
||||
&.hide {
|
||||
border: dashed 1px $border-color;
|
||||
box-sizing: border-box;
|
||||
background-color: white;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 按钮
|
||||
.buttons{
|
||||
.buttons {
|
||||
padding: $padding $padding * 2;
|
||||
.text{
|
||||
|
||||
.text {
|
||||
text-align: center;
|
||||
margin-bottom: $margin * 2;
|
||||
font-size: $title-size-lg;
|
||||
color: $text-price;
|
||||
}
|
||||
button{
|
||||
|
||||
button {
|
||||
height: 90rpx;
|
||||
line-height: 90rpx;
|
||||
background-color: $main-color;
|
||||
@@ -162,7 +169,8 @@
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
font-size: $title-size;
|
||||
&[disabled]{
|
||||
|
||||
&[disabled] {
|
||||
background: rgba($color: $main-color, $alpha: .8);
|
||||
}
|
||||
}
|
||||
|
||||
126
wallet/Wallet.js
126
wallet/Wallet.js
@@ -1,126 +0,0 @@
|
||||
import Bitcore from "bitcore-lib"
|
||||
import Mnemonic from "bitcore-mnemonic"
|
||||
import secp256k1 from 'secp256k1'
|
||||
import {
|
||||
Address,
|
||||
pubToAddress,
|
||||
toBuffer,
|
||||
toChecksumAddress,
|
||||
intToBuffer
|
||||
} from 'ethereumjs-util'
|
||||
import coinType from './networks.js'
|
||||
import basex from 'base-x'
|
||||
|
||||
export default class Wallet {
|
||||
|
||||
static coinType = coinType
|
||||
|
||||
/**
|
||||
* 生成助记词
|
||||
* @param {Object} lang
|
||||
*/
|
||||
static generateMnemonic(lang) {
|
||||
if (lang) {
|
||||
return (new Mnemonic(this.getLanguage(lang))).toString();
|
||||
} else {
|
||||
return (new Mnemonic()).toString();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证助记词
|
||||
* @param {Object} code
|
||||
* @param {Object} lang
|
||||
*/
|
||||
static validMnemonic(code, lang) {
|
||||
if (lang) {
|
||||
return Mnemonic.isValid(code, this.getLanguage(lang));
|
||||
} else {
|
||||
return Mnemonic.isValid(code);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取助记词字典
|
||||
* @param {Object} lang
|
||||
*/
|
||||
static getLanguage(lang) {
|
||||
return Mnemonic.Words[lang]
|
||||
}
|
||||
|
||||
/**
|
||||
* 转成硬钱包私钥
|
||||
* @param {Object} code
|
||||
*/
|
||||
static toHDPrivateKey(code) {
|
||||
return (new Mnemonic(code)).toHDPrivateKey()
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证地址是否合法
|
||||
* @param {Object} addr
|
||||
*/
|
||||
static isValidAddress(addr) {
|
||||
return Bitcore.Address.isValid(addr)
|
||||
}
|
||||
|
||||
/**
|
||||
* 硬钱包私钥转成对应网络的 地址 和 私钥
|
||||
* @param {Object} hdPrivateKey
|
||||
* @param {Object} type
|
||||
*/
|
||||
static HDPrivateKeyToAddress(hdPrivateKey, type) {
|
||||
const derived = hdPrivateKey.derive("m/44'/" + type.type + "'/0'/0/0");
|
||||
if (type.type === 195) {
|
||||
const ethAddr = this.getEthereumAddress(derived)
|
||||
const addressBuffer = Buffer.concat([intToBuffer(0x41), ethAddr.buf], 21)
|
||||
return {
|
||||
address: Bitcore.encoding.Base58Check.encode(addressBuffer),
|
||||
public_key: derived.privateKey.publicKey.toString(),
|
||||
private_key: derived.privateKey.toString()
|
||||
}
|
||||
}
|
||||
if (type.type === 144) {
|
||||
let addr = derived.privateKey.toAddress(type.network).toString()
|
||||
let deco = Bitcore.encoding.Base58.decode(addr)
|
||||
|
||||
return {
|
||||
address: basex('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz').encode(deco),
|
||||
public_key: derived.privateKey.publicKey.toString(),
|
||||
private_key: derived.privateKey.toString()
|
||||
}
|
||||
}
|
||||
if (this.networkIsEthereum(type)) {
|
||||
return {
|
||||
address: toChecksumAddress(this.getEthereumAddress(derived).toString()),
|
||||
public_key: derived.privateKey.publicKey.toString(),
|
||||
private_key: derived.privateKey.toString()
|
||||
}
|
||||
}
|
||||
return {
|
||||
address: derived.privateKey.toAddress(type.network).toString(),
|
||||
public_key: derived.privateKey.publicKey.toString(),
|
||||
private_key: derived.privateKey.toString()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 以太坊地址格式转换
|
||||
* @param {Object} derived
|
||||
*/
|
||||
static getEthereumAddress(derived) {
|
||||
const publicKey = derived.hdPublicKey.publicKey.toBuffer()
|
||||
const ethPublicKey = secp256k1.publicKeyConvert(publicKey, false)
|
||||
.slice(1)
|
||||
return Address.fromPublicKey(toBuffer(ethPublicKey))
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否是以太坊网络
|
||||
* @param {Object} type
|
||||
*/
|
||||
static networkIsEthereum(type) {
|
||||
return type.isEthereum
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
import {
|
||||
Wallet
|
||||
} from "./Wallet.js"
|
||||
|
||||
const code = Wallet.generateMnemonic(this.defaultLanguage)
|
||||
this.mnemonicCode = code
|
||||
const hdPrivateKey = Wallet.toHDPrivateKey(this.mnemonicCode)
|
||||
// const derived = hdPrivateKey.derive("m/44'/61'/0'/0/0");
|
||||
// const publicKey = derived.hdPublicKey.publicKey.toBuffer()
|
||||
// const ethPublicKey = secp256k1.publicKeyConvert(publicKey, false)
|
||||
// .slice(1)
|
||||
|
||||
// const ethAddr = Address.fromPublicKey(toBuffer(ethPublicKey)).toString();
|
||||
|
||||
// console.log(toChecksumAddress(ethAddr));
|
||||
|
||||
// console.log(Address.fromPrivateKey(hdPrivateKey.hdPublicKey.publicKey.toBuffer()));
|
||||
|
||||
var addr = []
|
||||
for (var i in this.coinType) {
|
||||
let whk = Wallet.HDPrivateKeyToAddress(hdPrivateKey, i)
|
||||
let parmas = {
|
||||
name: this.coinType[i],
|
||||
address: whk.address,
|
||||
private_key: whk.private_key,
|
||||
}
|
||||
addr.push(parmas)
|
||||
}
|
||||
this.address = addr
|
||||
@@ -1,24 +0,0 @@
|
||||
import store from "@/store/index.js"
|
||||
|
||||
const USE_SOTER_AUTH_KEY = 'USE_SOTER_AUTH_KEY'
|
||||
|
||||
/**
|
||||
* 初始化配置
|
||||
*/
|
||||
const initWalletConfigs = () => {
|
||||
// 生物识别
|
||||
const USE_SOTER = Boolean(uni.getStorageSync(USE_SOTER_AUTH_KEY))
|
||||
store.dispatch('wallet/setSoterAuth', USE_SOTER)
|
||||
// 获取默认钱包
|
||||
}
|
||||
|
||||
const setSoterAuthStatus = (opt) => {
|
||||
uni.setStorageSync(USE_SOTER_AUTH_KEY, opt)
|
||||
store.dispatch('wallet/setSoterAuth', opt)
|
||||
}
|
||||
|
||||
export default {
|
||||
USE_SOTER_AUTH_KEY,
|
||||
setSoterAuthStatus,
|
||||
initWalletConfigs
|
||||
}
|
||||
@@ -1,209 +0,0 @@
|
||||
import Bitcore from "bitcore-lib"
|
||||
|
||||
export default [{
|
||||
type: 0,
|
||||
name: '比特币',
|
||||
symbol: 'BTC',
|
||||
code: 'btc',
|
||||
isEthereum: false,
|
||||
network: Bitcore.Networks.mainnet
|
||||
},
|
||||
{
|
||||
type: 60,
|
||||
name: '以太坊',
|
||||
symbol: 'ETH',
|
||||
code: 'eth',
|
||||
isEthereum: true
|
||||
},
|
||||
{
|
||||
type: 61,
|
||||
name: '以太经典',
|
||||
symbol: 'ETC',
|
||||
code: 'etc',
|
||||
isEthereum: true
|
||||
},
|
||||
{
|
||||
type: 60,
|
||||
name: '赤子心',
|
||||
symbol: 'CZX',
|
||||
code: 'eth_0x3a2a239b1bdaae768ffa06314d523e88e98d4d1f',
|
||||
isEthereum: true
|
||||
},
|
||||
// {
|
||||
// type: 2,
|
||||
// name: '莱特币',
|
||||
// symbol: 'LTC',
|
||||
// isEthereum: false,
|
||||
// network: Bitcore.Networks.add({
|
||||
// name: 'LTC',
|
||||
// alias: 'LTC',
|
||||
// pubkeyhash: 0x30,
|
||||
// privatekey: 0x32,
|
||||
// scripthash: 0xb0,
|
||||
// bech32prefix: 'ltc',
|
||||
// xpubkey: 0x019da462,
|
||||
// xprivkey: 0x019d9cfe,
|
||||
// networkMagic: 0xdbb6c0fb
|
||||
// })
|
||||
// },
|
||||
{
|
||||
type: 3,
|
||||
name: '狗狗币',
|
||||
symbol: 'DOGE',
|
||||
code: 'doge',
|
||||
isEthereum: false,
|
||||
network: Bitcore.Networks.add({
|
||||
name: 'DOGE',
|
||||
alias: 'DOGE',
|
||||
pubkeyhash: 0x1e,
|
||||
privatekey: 0x16,
|
||||
scripthash: 0x9e,
|
||||
bech32prefix: 'doge',
|
||||
xpubkey: 0x02facafd,
|
||||
xprivkey: 0x02fac398,
|
||||
networkMagic: 0xc0c0c0c0
|
||||
})
|
||||
},
|
||||
|
||||
// {
|
||||
// type: 133,
|
||||
// name: '零币',
|
||||
// symbol: 'ZEC',
|
||||
// isEthereum: false,
|
||||
// network: Bitcore.Networks.add({
|
||||
// name: 'ZEC',
|
||||
// alias: 'ZEC',
|
||||
// pubkeyhash: 0x1e,
|
||||
// privatekey: 0x16,
|
||||
// scripthash: 0x9e,
|
||||
// bech32prefix: 'doge',
|
||||
// xpubkey: 0x02facafd,
|
||||
// xprivkey: 0x02fac398,
|
||||
// networkMagic: 0xc0c0c0c0
|
||||
// })
|
||||
// },
|
||||
// {
|
||||
// type: 144,
|
||||
// name: 'XPR - 瑞波币',
|
||||
// symbol: 'XPR',
|
||||
// isEthereum: false,
|
||||
// network: Bitcore.Networks.add({
|
||||
// name: 'XPR',
|
||||
// alias: 'XPR',
|
||||
// pubkeyhash: 0x1e,
|
||||
// privatekey: 0x16,
|
||||
// scripthash: 0x9e,
|
||||
// bech32prefix: 'doge',
|
||||
// xpubkey: 0x02facafd,
|
||||
// xprivkey: 0x02fac398,
|
||||
// networkMagic: 0xc0c0c0c0
|
||||
// })
|
||||
// },
|
||||
// {
|
||||
// type: 145,
|
||||
// name: '比特现金',
|
||||
// symbol: 'BCH',
|
||||
// isEthereum: false,
|
||||
// network: Bitcore.Networks.add({
|
||||
// name: 'BCH',
|
||||
// alias: 'BCH',
|
||||
// pubkeyhash: 0x00,
|
||||
// privatekey: 0x05,
|
||||
// scripthash: 0x80,
|
||||
// bech32prefix: 'bitcoincash',
|
||||
// xpubkey: 0x0488b21e,
|
||||
// xprivkey: 0x0488ade4,
|
||||
// networkMagic: 0xd9b4bef9
|
||||
// })
|
||||
// },
|
||||
// {
|
||||
// type: 195,
|
||||
// name: '波场',
|
||||
// symbol: 'TRX',
|
||||
// isEthereum: false,
|
||||
// network: Bitcore.Networks.add({
|
||||
// name: 'TRX',
|
||||
// alias: 'TRX',
|
||||
// pubkeyhash: 0x41,
|
||||
// privatekey: 0x05,
|
||||
// scripthash: 0x80,
|
||||
// bech32prefix: '',
|
||||
// xpubkey: 0x0488b21e,
|
||||
// xprivkey: 0x0488ade4
|
||||
// })
|
||||
// },
|
||||
{
|
||||
type: 195,
|
||||
name: 'USDT(TRC20)',
|
||||
symbol: 'USDT',
|
||||
code: 'trx_TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t',
|
||||
isEthereum: false,
|
||||
network: Bitcore.Networks.add({
|
||||
name: 'USDT',
|
||||
alias: 'USDT',
|
||||
pubkeyhash: 0x41,
|
||||
privatekey: 0x05,
|
||||
scripthash: 0x80,
|
||||
bech32prefix: '',
|
||||
xpubkey: 0x0488b21e,
|
||||
xprivkey: 0x0488ade4
|
||||
})
|
||||
},
|
||||
{
|
||||
type: 195,
|
||||
name: 'USDT(ERC20)',
|
||||
symbol: 'USDT',
|
||||
code: 'eth_0xdac17f958d2ee523a2206206994597c13d831ec7',
|
||||
isEthereum: true
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
name: 'USDT(OMNI)',
|
||||
symbol: 'USDT',
|
||||
code: 'usdt',
|
||||
isEthereum: false,
|
||||
network: Bitcore.Networks.mainnet
|
||||
},
|
||||
{
|
||||
type: 13107,
|
||||
name: '比特元',
|
||||
symbol: 'BTY',
|
||||
code: 'bty',
|
||||
isEthereum: false,
|
||||
network: Bitcore.Networks.add({
|
||||
name: 'BTY',
|
||||
alias: 'BTY',
|
||||
pubkeyhash: 0x00,
|
||||
privatekey: 0x05,
|
||||
scripthash: 0x80,
|
||||
bech32prefix: 'bityuan',
|
||||
xpubkey: 0x0488b21e,
|
||||
xprivkey: 0x0488ade4,
|
||||
networkMagic: 0xd9b4bef9
|
||||
})
|
||||
},
|
||||
// {
|
||||
// type: 60,
|
||||
// name: '元链',
|
||||
// symbol: 'YCC',
|
||||
// isEthereum: true
|
||||
// },
|
||||
{
|
||||
type: 13107,
|
||||
name: 'JZC',
|
||||
symbol: 'JZC',
|
||||
code: 'bty',
|
||||
isEthereum: false,
|
||||
network: Bitcore.Networks.add({
|
||||
name: 'JZC',
|
||||
alias: 'JZC',
|
||||
pubkeyhash: 0x00,
|
||||
privatekey: 0x05,
|
||||
scripthash: 0x80,
|
||||
bech32prefix: 'bityuan',
|
||||
xpubkey: 0x0488b21e,
|
||||
xprivkey: 0x0488ade4,
|
||||
networkMagic: 0xd9b4bef9
|
||||
})
|
||||
}
|
||||
]
|
||||
207
yarn.lock
207
yarn.lock
@@ -2,194 +2,27 @@
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"base-x@^3.0.2":
|
||||
"integrity" "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ=="
|
||||
"resolved" "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz"
|
||||
"version" "3.0.9"
|
||||
dependencies:
|
||||
"safe-buffer" "^5.0.1"
|
||||
moment@^2.29.1:
|
||||
version "2.29.1"
|
||||
resolved "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz"
|
||||
integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
|
||||
|
||||
"bech32@=2.0.0":
|
||||
"integrity" "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg=="
|
||||
"resolved" "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz"
|
||||
"version" "2.0.0"
|
||||
uni-read-pages@^1.0.5:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.npmjs.org/uni-read-pages/-/uni-read-pages-1.0.5.tgz"
|
||||
integrity sha512-GkrrZ0LX0vn9R5k6RKEi0Ez3Q3e2vUpjXQ8Z6/K/d28KudI9ajqgt8WEjQFlG5EPm1K6uTArN8LlqmZTEixDUA==
|
||||
|
||||
"bigi@^1.1.0", "bigi@^1.4.2":
|
||||
"integrity" "sha1-nGZalfiLiwj8Bc/XMfVhhZ1yWCU="
|
||||
"resolved" "https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz"
|
||||
"version" "1.4.2"
|
||||
uni-simple-router@^2.0.7:
|
||||
version "2.0.7"
|
||||
resolved "https://registry.npmjs.org/uni-simple-router/-/uni-simple-router-2.0.7.tgz"
|
||||
integrity sha512-8FKv5dw7Eoonm0gkO8udprrxzin0fNUI0+AvIphFkFRH5ZmP5ZWJ2pvnWzb2NiiqQSECTSU5VSB7HhvOSwD5eA==
|
||||
|
||||
"bip-schnorr@=0.6.4":
|
||||
"integrity" "sha512-dNKw7Lea8B0wMIN4OjEmOk/Z5qUGqoPDY0P2QttLqGk1hmDPytLWW8PR5Pb6Vxy6CprcdEgfJpOjUu+ONQveyg=="
|
||||
"resolved" "https://registry.npmjs.org/bip-schnorr/-/bip-schnorr-0.6.4.tgz"
|
||||
"version" "0.6.4"
|
||||
dependencies:
|
||||
"bigi" "^1.4.2"
|
||||
"ecurve" "^1.0.6"
|
||||
"js-sha256" "^0.9.0"
|
||||
"randombytes" "^2.1.0"
|
||||
"safe-buffer" "^5.2.1"
|
||||
uview-ui@^2.0.19:
|
||||
version "2.0.19"
|
||||
resolved "https://registry.npmjs.org/uview-ui/-/uview-ui-2.0.19.tgz"
|
||||
integrity sha512-ddZiaP7R9wsUxMzAuhuXgh5OswgCm2lKuulTqjnRXFr0uUWsgL1iBifU3GbOwpwP0LtTHKJOo9rYv1LP0WXmzA==
|
||||
|
||||
"bitcore-lib@^8.25.25":
|
||||
"integrity" "sha512-H6qNCVl4M8/MglXhvc04mmeus1d6nrmqTJGQ+xezJLvL7hs7R3dyBPtOqSP3YSw0iq/GWspMd8f5OOlyXVipJQ=="
|
||||
"resolved" "https://registry.npmjs.org/bitcore-lib/-/bitcore-lib-8.25.25.tgz"
|
||||
"version" "8.25.25"
|
||||
dependencies:
|
||||
"bech32" "=2.0.0"
|
||||
"bip-schnorr" "=0.6.4"
|
||||
"bn.js" "=4.11.8"
|
||||
"bs58" "^4.0.1"
|
||||
"buffer-compare" "=1.1.1"
|
||||
"elliptic" "^6.5.3"
|
||||
"inherits" "=2.0.1"
|
||||
"lodash" "^4.17.20"
|
||||
|
||||
"bitcore-mnemonic@^8.25.25":
|
||||
"integrity" "sha512-7HvRxHrmd+Rh0Ohl0SEDMKQBAM+FoevXbCFnxGju6H+uZjtWMOToHA8vUg0+B91pfEMjdt9mQVB/wSA8GMqnCA=="
|
||||
"resolved" "https://registry.npmjs.org/bitcore-mnemonic/-/bitcore-mnemonic-8.25.25.tgz"
|
||||
"version" "8.25.25"
|
||||
dependencies:
|
||||
"bitcore-lib" "^8.25.25"
|
||||
"unorm" "^1.4.1"
|
||||
|
||||
"bn.js@^4.11.9":
|
||||
"integrity" "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
|
||||
"resolved" "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz"
|
||||
"version" "4.12.0"
|
||||
|
||||
"bn.js@=4.11.8":
|
||||
"integrity" "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA=="
|
||||
"resolved" "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz"
|
||||
"version" "4.11.8"
|
||||
|
||||
"brorand@^1.1.0":
|
||||
"integrity" "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
|
||||
"resolved" "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz"
|
||||
"version" "1.1.0"
|
||||
|
||||
"bs58@^4.0.1":
|
||||
"integrity" "sha1-vhYedsNU9veIrkBx9j806MTwpCo="
|
||||
"resolved" "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz"
|
||||
"version" "4.0.1"
|
||||
dependencies:
|
||||
"base-x" "^3.0.2"
|
||||
|
||||
"buffer-compare@=1.1.1":
|
||||
"integrity" "sha1-W+e+hTr4kZjR9N3AkNHWakiu9ZY="
|
||||
"resolved" "https://registry.npmjs.org/buffer-compare/-/buffer-compare-1.1.1.tgz"
|
||||
"version" "1.1.1"
|
||||
|
||||
"ecurve@^1.0.6":
|
||||
"integrity" "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w=="
|
||||
"resolved" "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz"
|
||||
"version" "1.0.6"
|
||||
dependencies:
|
||||
"bigi" "^1.1.0"
|
||||
"safe-buffer" "^5.0.1"
|
||||
|
||||
"elliptic@^6.5.3":
|
||||
"integrity" "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ=="
|
||||
"resolved" "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz"
|
||||
"version" "6.5.4"
|
||||
dependencies:
|
||||
"bn.js" "^4.11.9"
|
||||
"brorand" "^1.1.0"
|
||||
"hash.js" "^1.0.0"
|
||||
"hmac-drbg" "^1.0.1"
|
||||
"inherits" "^2.0.4"
|
||||
"minimalistic-assert" "^1.0.1"
|
||||
"minimalistic-crypto-utils" "^1.0.1"
|
||||
|
||||
"hash.js@^1.0.0", "hash.js@^1.0.3":
|
||||
"integrity" "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA=="
|
||||
"resolved" "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz"
|
||||
"version" "1.1.7"
|
||||
dependencies:
|
||||
"inherits" "^2.0.3"
|
||||
"minimalistic-assert" "^1.0.1"
|
||||
|
||||
"hmac-drbg@^1.0.1":
|
||||
"integrity" "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE="
|
||||
"resolved" "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz"
|
||||
"version" "1.0.1"
|
||||
dependencies:
|
||||
"hash.js" "^1.0.3"
|
||||
"minimalistic-assert" "^1.0.0"
|
||||
"minimalistic-crypto-utils" "^1.0.1"
|
||||
|
||||
"inherits@^2.0.3":
|
||||
"integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
||||
"resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
|
||||
"version" "2.0.4"
|
||||
|
||||
"inherits@^2.0.4":
|
||||
"integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
||||
"resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
|
||||
"version" "2.0.4"
|
||||
|
||||
"inherits@=2.0.1":
|
||||
"integrity" "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
|
||||
"resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
|
||||
"version" "2.0.1"
|
||||
|
||||
"js-sha256@^0.9.0":
|
||||
"integrity" "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA=="
|
||||
"resolved" "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz"
|
||||
"version" "0.9.0"
|
||||
|
||||
"lodash@^4.17.20":
|
||||
"integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
||||
"resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
|
||||
"version" "4.17.21"
|
||||
|
||||
"minimalistic-assert@^1.0.0", "minimalistic-assert@^1.0.1":
|
||||
"integrity" "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
|
||||
"resolved" "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"
|
||||
"version" "1.0.1"
|
||||
|
||||
"minimalistic-crypto-utils@^1.0.1":
|
||||
"integrity" "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
|
||||
"resolved" "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz"
|
||||
"version" "1.0.1"
|
||||
|
||||
"moment@^2.29.1":
|
||||
"integrity" "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
|
||||
"resolved" "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz"
|
||||
"version" "2.29.1"
|
||||
|
||||
"randombytes@^2.1.0":
|
||||
"integrity" "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ=="
|
||||
"resolved" "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz"
|
||||
"version" "2.1.0"
|
||||
dependencies:
|
||||
"safe-buffer" "^5.1.0"
|
||||
|
||||
"safe-buffer@^5.0.1", "safe-buffer@^5.1.0", "safe-buffer@^5.2.1":
|
||||
"integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
|
||||
"resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
|
||||
"version" "5.2.1"
|
||||
|
||||
"uni-read-pages@^1.0.5":
|
||||
"integrity" "sha512-GkrrZ0LX0vn9R5k6RKEi0Ez3Q3e2vUpjXQ8Z6/K/d28KudI9ajqgt8WEjQFlG5EPm1K6uTArN8LlqmZTEixDUA=="
|
||||
"resolved" "https://registry.npmjs.org/uni-read-pages/-/uni-read-pages-1.0.5.tgz"
|
||||
"version" "1.0.5"
|
||||
|
||||
"uni-simple-router@^2.0.7":
|
||||
"integrity" "sha512-8FKv5dw7Eoonm0gkO8udprrxzin0fNUI0+AvIphFkFRH5ZmP5ZWJ2pvnWzb2NiiqQSECTSU5VSB7HhvOSwD5eA=="
|
||||
"resolved" "https://registry.npmjs.org/uni-simple-router/-/uni-simple-router-2.0.7.tgz"
|
||||
"version" "2.0.7"
|
||||
|
||||
"unorm@^1.4.1":
|
||||
"integrity" "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA=="
|
||||
"resolved" "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz"
|
||||
"version" "1.6.0"
|
||||
|
||||
"uview-ui@^2.0.19":
|
||||
"integrity" "sha512-ddZiaP7R9wsUxMzAuhuXgh5OswgCm2lKuulTqjnRXFr0uUWsgL1iBifU3GbOwpwP0LtTHKJOo9rYv1LP0WXmzA=="
|
||||
"resolved" "https://registry.npmjs.org/uview-ui/-/uview-ui-2.0.19.tgz"
|
||||
"version" "2.0.19"
|
||||
|
||||
"vuex@^3.6.2":
|
||||
"integrity" "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw=="
|
||||
"resolved" "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz"
|
||||
"version" "3.6.2"
|
||||
vuex@^3.6.2:
|
||||
version "3.6.2"
|
||||
resolved "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz"
|
||||
integrity sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==
|
||||
|
||||
Reference in New Issue
Block a user