-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtran.js
More file actions
executable file
·91 lines (74 loc) · 2.36 KB
/
tran.js
File metadata and controls
executable file
·91 lines (74 loc) · 2.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
//node tran.js "bac10tyhju9pfpfkt7hrd2zqr0vjn4k5sfrrhenf7v" "bac1xd9mvz9hh3wljp2qwvakkxfnwumzq6tmutllc8" "10000ubcv"
/**
*
* node tran.js from to amount
*
* node tran.js "bac1anp8qzj4welr3ydqnfyhmnarxjwqk0vrhuca7n" "bac1hzpytmhedn302fgygsmxn67sq4lc90kcv5cvmn" "0.001" "bac"
*
* pill mouse frost skull shoe desk voyage whisper call burst imitate blood plunge adapt scene neglect humor good pole print amazing early conduct consider
*
*/
const bacchainjs = require("./bacchain-sdk/bacchain-sdk-js/src/index");
const chainId = "bacchain-mainnet-1.0";
const lcdUrl = "http://52.69.196.169:1317";
const bacchainSdk = bacchainjs.newBacchainSdk(lcdUrl, chainId)
bacchainSdk.setBech32MainPrefix("bac")
const readline = require('readline-sync')
console.log(process.argv.length)
if (process.argv.length != 6){
console.log("input error")
return
}
var fromAddr = process.argv[2]
var toAddr = process.argv[3]
var amount = process.argv[4]
var coin = process.argv[5]
var amount = amount
if("bcv" == coin){
amount = amount * 1000000
}
if("bac" == coin ){
amount = amount * 1000000000
}
var mnemonic = readline.question('请输入助记词:\n')
const accAddr = bacchainSdk.getAddress(mnemonic);
const ecpairPriv = bacchainSdk.getECPairPriv(mnemonic);
if(accAddr != fromAddr){
console.log("private key error")
return
}
var main = async () => {
var txhash = await sendTx()
await sleep(8000)
var txInfo = await bacchainSdk.getTxInfoByHash(txhash)
console.log("交易hash:")
console.log(txhash)
console.log("交易详情:")
console.log(txInfo)
}
async function sendTx(){
var data = await bacchainSdk.getAccounts(fromAddr)
var txInfo = {
type: "bacchain/MsgSend",
from_address :fromAddr,
to_address :toAddr,
amountDenom: "nbac",
amount: amount,
feeDenom: "nbac",
fee: 100000000,
gas: 100000000,
memo: "",
account_number: data.value.account_number,
sequence: data.value.sequence
}
var stdSignMsg = bacchainSdk.NewStdMsg(txInfo);
var signedTx = bacchainSdk.sign(stdSignMsg, ecpairPriv);
var data = await bacchainSdk.broadcast(signedTx)
var txHash = data['txhash']
return txHash
}
var sleep = function(time) {
var startTime = new Date().getTime() + parseInt(time, 10);
while(new Date().getTime() < startTime) {}
};
main()