Skip to content

Commit 2c92e8e

Browse files
authored
Merge pull request #11 from Adamant-im/rpc-server
Rpc server
2 parents 43a6b1a + df981d8 commit 2c92e8e

File tree

4 files changed

+135
-6
lines changed

4 files changed

+135
-6
lines changed

ops/client_version.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/*
2+
3+
*/
4+
const package = require('../package.json')
5+
module.exports = function (vorpal) {
6+
return vorpal.command('client version').description('Shows adamant-console version').action(function (args, callback) {
7+
answer = {
8+
success: true,
9+
version: package.version
10+
}
11+
this.log(JSON.stringify(answer, null, 4))
12+
if (callback)
13+
callback()
14+
else
15+
return answer
16+
});
17+
};

ops/node.js

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
/*
2+
*/
3+
const config = require('../helpers/configReader.js')
4+
const popsicle = require('popsicle')
5+
var possibleTypes=['height', 'version']
6+
module.exports=function (vorpal) {
7+
return vorpal.command('node <type>').description('Fetch information about node. Available types: height, version').autocomplete(possibleTypes).action(function(args, callback) {
8+
if (!possibleTypes.includes(args.type)) {
9+
this.log('Not valid type')
10+
if (callback)
11+
callback()
12+
return {success: false, error:'Not valid type'}
13+
}
14+
else {
15+
var endpoint=''
16+
var multipleSelect = false
17+
if (args.input=='?') {
18+
var multipleSelect = true
19+
}
20+
if (!multipleSelect) {
21+
switch (args.type) {
22+
case 'height':
23+
endpoint = '/api/blocks/getHeight'
24+
break
25+
case 'version':
26+
endpoint = '/api/peers/version'
27+
break
28+
default:
29+
this.log('Not implemented yet')
30+
if (callback)
31+
callback()
32+
return {success: false, error:'Not implemented yet'}
33+
}
34+
} else {
35+
this.log('Not implemented yet')
36+
if (callback)
37+
callback()
38+
return {success: false, error:'Not implemented yet'}
39+
}
40+
var self = this
41+
return popsicle.request({
42+
method: 'GET',
43+
url: config.getNodeConnectString() + endpoint
44+
}).then(function (res) {
45+
var answer = JSON.parse(res.body)
46+
self.log(JSON.stringify(answer,null,4))
47+
if (callback)
48+
callback()
49+
return answer
50+
})
51+
}
52+
})
53+
}

ops/rpc_server.js

Lines changed: 64 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,21 @@ module.exports = function (vorpal) {
1717
} else resolve(data.account);
1818
})
1919
},
20+
clientVersion: function (args) {
21+
return new Promise(function (resolve, reject) {
22+
var cmd = 'client version '
23+
var err = null
24+
var data = {success: false}
25+
data = vorpal.execSync(cmd)
26+
resolve(data.version)
27+
})
28+
},
2029
getAddress: function (args) {
2130
return new Promise(function (resolve, reject) {
2231
var cmd = 'get address '
2332
var err = null
2433
var data = {success: false}
25-
if (!args.length || args.length>1) {
34+
if (!args.length || args.length > 1) {
2635
err = this.error(-32602)
2736
reject(err)
2837
} else {
@@ -52,7 +61,7 @@ module.exports = function (vorpal) {
5261
var cmd = 'get block '
5362
var err = null
5463
var data = {success: false}
55-
if (!args.length || args.length>1) {
64+
if (!args.length || args.length > 1) {
5665
err = this.error(-32602)
5766
reject(err)
5867
} else {
@@ -82,7 +91,7 @@ module.exports = function (vorpal) {
8291
var cmd = 'get delegate '
8392
var err = null
8493
var data = {success: false}
85-
if (!args.length || args.length>1) {
94+
if (!args.length || args.length > 1) {
8695
err = this.error(-32602)
8796
reject(err)
8897
} else {
@@ -112,7 +121,7 @@ module.exports = function (vorpal) {
112121
var cmd = 'get transaction '
113122
var err = null
114123
var data = {success: false}
115-
if (!args.length || args.length>1) {
124+
if (!args.length || args.length > 1) {
116125
err = this.error(-32602)
117126
reject(err)
118127
} else {
@@ -141,7 +150,7 @@ module.exports = function (vorpal) {
141150
var cmd = 'get transactions '
142151
var err = null
143152
var data = {success: false}
144-
if (!args.length || args.length>1) {
153+
if (!args.length || args.length > 1) {
145154
err = this.error(-32602)
146155
reject(err)
147156
} else {
@@ -194,6 +203,56 @@ module.exports = function (vorpal) {
194203
}
195204
})
196205
},
206+
nodeHeight: function (args) {
207+
return new Promise(function (resolve, reject) {
208+
var cmd = 'node height '
209+
var err = null
210+
var data = {success: false}
211+
212+
data = vorpal.execSync(cmd)
213+
data.then(function (data) {
214+
if (data) {
215+
if (data.success === false) {
216+
err = server.error(1, data.error)
217+
} else {
218+
data = data.height
219+
}
220+
}
221+
if (err)
222+
reject(err)
223+
else
224+
resolve(data)
225+
}).catch(function (err) {
226+
reject(err)
227+
})
228+
229+
})
230+
},
231+
nodeVersion: function (args) {
232+
return new Promise(function (resolve, reject) {
233+
var cmd = 'node version '
234+
var err = null
235+
var data = {success: false}
236+
237+
data = vorpal.execSync(cmd)
238+
data.then(function (data) {
239+
if (data) {
240+
if (data.success === false) {
241+
err = server.error(1, data.error)
242+
} else {
243+
data = {commit: data.commit, version: data.version}
244+
}
245+
}
246+
if (err)
247+
reject(err)
248+
else
249+
resolve(data)
250+
}).catch(function (err) {
251+
reject(err)
252+
})
253+
254+
})
255+
},
197256
sendTokens: function (args) {
198257
return new Promise(function (resolve, reject) {
199258
var cmd = 'send tokens '

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "adamant-console",
3-
"version": "1.4.0",
3+
"version": "1.4.1",
44
"description": "console tools for ADAMANT.im",
55
"main": "index.js",
66
"dependencies": {

0 commit comments

Comments
 (0)