OSDN Git Service

update bytom to vapor
[bytom/bytom-electron.git] / src / sdk / api / vaporCLI.js
1 const vaporCLI = (client) => {
2
3   return {
4     request: (params) => {
5       const cmdArrays = params.split(' ')
6       let requestParams = {}
7
8       const blockHeightArray =['get-block', 'get-block-header', 'get-difficulty', 'get-hash-rate']
9       if(cmdArrays[0] === 'validate-address'){
10         requestParams = {
11           'address': cmdArrays[1]
12         }
13       }else if(cmdArrays[0] === 'sign-message') {
14         requestParams = {
15           'address': cmdArrays[1],
16           'message': cmdArrays[2],
17           'password':  cmdArrays[3]
18         }
19       }else if(cmdArrays[0] === 'get-transaction') {
20         requestParams = {
21           'tx_id': cmdArrays[1]
22         }
23       }else if(cmdArrays[0] === 'sign-transaction') {
24         requestParams = {
25           'password': cmdArrays[1],
26           'transaction': JSON.parse(cmdArrays[2])
27         }
28       }else if(cmdArrays[0] === 'build-transaction') {
29         requestParams = {
30           'base_transaction': JSON.parse(cmdArrays[1]),
31           'actions':JSON.parse(cmdArrays[2]),
32           'ttl': Number(cmdArrays[3]),
33           'time_range': Number(cmdArrays[4])
34         }
35       }else if(cmdArrays[0] === 'submit-transaction') {
36         requestParams = {
37           'raw_transaction': JSON.parse(cmdArrays[1])
38         }
39       }else if(cmdArrays[0] === 'estimate-transaction-gas') {
40         requestParams = {
41           'transaction_template': JSON.parse(cmdArrays[1])
42         }
43       }else if(cmdArrays[0] === 'get-unconfirmed-transaction') {
44         requestParams = {
45           'tx_id': cmdArrays[1]
46         }
47       }else if(cmdArrays[0] === 'decode-raw-transaction') {
48         requestParams = {
49           'raw_transaction': cmdArrays[1]
50         }
51       }else if(blockHeightArray.includes(cmdArrays[0])) {
52         if(cmdArrays[1]){
53           if(!isNaN(cmdArrays[1])){
54             requestParams = {
55               'block_height': Number(cmdArrays[1])
56             }
57           }else {
58             requestParams = {
59               'block_hash': cmdArrays[1]
60             }
61           }
62         }
63       }else if(cmdArrays[0] === 'set-mining') {
64         requestParams = {
65           'is_mining': cmdArrays[1] === 'true' || (cmdArrays[1] === 'false' ? false : cmdArrays[1])
66         }
67       }else if(cmdArrays[0] === 'verify-message') {
68         requestParams = {
69           'address': cmdArrays[1],
70           'derived_xpub': cmdArrays[2],
71           'message': cmdArrays[3],
72           'signature': cmdArrays[4]
73         }
74       }else if(cmdArrays[0] === 'decode-program') {
75         requestParams = {
76           'program': cmdArrays[1]
77         }
78       }
79
80       return client.request(`/${cmdArrays[0]}`, requestParams)
81     }
82   }
83 }
84
85 module.exports = vaporCLI