Skip to content

Commit 4611a17

Browse files
Seongjae Choimajecty
authored andcommitted
Implement devel, engine, mempool, net rpc functions
1 parent 650de62 commit 4611a17

File tree

5 files changed

+236
-1
lines changed

5 files changed

+236
-1
lines changed

devel.go

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package rpc
2+
3+
type Devel struct {
4+
rpcClient rpcClient
5+
}
6+
7+
func (d *Devel) GetStateTrieKeys(offset int, limit int) ([]string, error) {
8+
const method = "devel_getStateTrieKeys"
9+
var keys []string
10+
err := d.rpcClient.call(callInterface{method: method, id: ""}, &keys, offset, limit)
11+
return keys, err
12+
}
13+
14+
func (d *Devel) GetStateTrieValue(key string) ([]string, error) {
15+
const method = "devel_getStateTrieValue"
16+
var keys []string
17+
err := d.rpcClient.call(callInterface{method: method, id: ""}, &keys, key)
18+
return keys, err
19+
}
20+
21+
func (d *Devel) StartSealing() error {
22+
const method = "devel_startSealing"
23+
return d.rpcClient.call(callInterface{method: method, id: ""}, nil)
24+
}
25+
26+
func (d *Devel) stopSealing() error {
27+
const method = "devel_stopSealing"
28+
err := d.rpcClient.call(callInterface{method: method, id: ""}, nil)
29+
return err
30+
}
31+
32+
func (d *Devel) getBlockSyncPeers() ([]string, error) {
33+
const method = "devel_getBlockSyncPeers"
34+
var result []string
35+
err := d.rpcClient.call(callInterface{method: method, id: ""}, &result)
36+
return result, err
37+
}
38+
39+
func (d *Devel) testTPS(count int, seed int, option string) (int, error) {
40+
const method = "devel_testTPS"
41+
var result int
42+
err := d.rpcClient.call(callInterface{method: method, id: ""}, &result, count, seed, option)
43+
return result, err
44+
}

engine.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package rpc
2+
3+
type Engine struct {
4+
rpcClient rpcClient
5+
}
6+
7+
func (e *Engine) GetCoinbase() (string, error) {
8+
const method = "engine_getCoinbase"
9+
var result string
10+
err := e.rpcClient.call(callInterface{method: method, id: ""}, &result)
11+
return result, err
12+
}
13+
14+
func (e *Engine) GetBlockReward(blockNumber int) (interface{}, error) {
15+
const method = "engine_getBlockReward"
16+
var result interface{}
17+
err := e.rpcClient.call(callInterface{method: method, id: ""}, &result, blockNumber)
18+
return result, err
19+
}
20+
21+
func (e *Engine) GetRecommendedConfirmation() (int, error) {
22+
const method = "engine_getRecommendedConfirmation"
23+
var result int
24+
err := e.rpcClient.call(callInterface{method: method, id: ""}, &result)
25+
return result, err
26+
}
27+
28+
func (e *Engine) GetCustomActionData(handerID int, bytes string, blockNumber int) (string, error) {
29+
const method = "engine_getCustomActionData"
30+
var result string
31+
err := e.rpcClient.call(callInterface{method: method, id: ""}, &result, handerID, bytes, blockNumber)
32+
return result, err
33+
}

mempool.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package rpc
2+
3+
type Mempool struct {
4+
rpcClient rpcClient
5+
}
6+
7+
func (m *Mempool) SendSignedTransaction(tx string) (string, error) {
8+
const method = "mempool_sendSignedTransaction"
9+
var result string
10+
err := m.rpcClient.call(callInterface{method: method, id: ""}, &result, tx)
11+
return result, err
12+
}
13+
14+
func (m *Mempool) GetErrorHint(transactionHash string) (string, error) {
15+
const method = "mempool_getErrorHint"
16+
var result string
17+
err := m.rpcClient.call(callInterface{method: method, id: ""}, &result, transactionHash)
18+
return result, err
19+
20+
}
21+
22+
func (m *Mempool) GetTransactionResultsByTracker(tracker string) ([]bool, error) {
23+
const method = "mempool_getTransactionResultsByTracker"
24+
var result []bool
25+
err := m.rpcClient.call(callInterface{method: method, id: ""}, &result, tracker)
26+
return result, err
27+
}
28+
29+
func (m *Mempool) GetPendingTransactions(from int, to int) (interface{}, error) {
30+
const method = "mempool_getPendingTransactions"
31+
var result interface{}
32+
err := m.rpcClient.call(callInterface{method: method, id: ""}, from, to)
33+
return result, err
34+
}

net.go

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
package rpc
2+
3+
type Net struct {
4+
rpcClient rpcClient
5+
}
6+
7+
func (n *Net) LocalKeyFor(address string, port int) (string, error) {
8+
const method = "net_localKeyFor"
9+
var result string
10+
err := n.rpcClient.call(callInterface{method: method, id: ""}, &result, address, port)
11+
return result, err
12+
}
13+
14+
func (n *Net) RegisterRemoteKeyFor(address string, port int, remotePublicKey string) (string, error) {
15+
const method = "net_registerRemoteKeyFor"
16+
var result string
17+
err := n.rpcClient.call(callInterface{method: method, id: ""}, &result, address, port, remotePublicKey)
18+
return result, err
19+
}
20+
21+
func (n *Net) Connect(address string, port int) error {
22+
const method = "net_connect"
23+
return n.rpcClient.call(callInterface{method: method, id: ""}, nil, address, port)
24+
}
25+
26+
func (n *Net) IsConnected(address string, port int) (bool, error) {
27+
const method = "net_isConnected"
28+
var result bool
29+
err := n.rpcClient.call(callInterface{method: method, id: ""}, &result, address, port)
30+
return result, err
31+
}
32+
33+
func (n *Net) Disconnect(address string, port int) error {
34+
const method = "net_disconnect"
35+
return n.rpcClient.call(callInterface{method: method, id: ""}, nil, address, port)
36+
}
37+
38+
func (n *Net) GetPeerCount() (int, error) {
39+
const method = "net_getPeerCount"
40+
var result int
41+
err := n.rpcClient.call(callInterface{method: method, id: ""}, &result)
42+
return result, err
43+
}
44+
45+
func (n *Net) GetEstablishedPeers() ([]string, error) {
46+
const method = "net_getEstablishedPeers"
47+
var result []string
48+
err := n.rpcClient.call(callInterface{method: method, id: ""}, &result)
49+
return result, err
50+
}
51+
52+
func (n *Net) GetPort() (int, error) {
53+
const method = "net_getPort"
54+
var port int
55+
err := n.rpcClient.call(callInterface{method: method, id: ""}, &port)
56+
return port, err
57+
}
58+
59+
func (n *Net) AddToWhitelist(address string, tag string) error {
60+
const method = "net_addToWhitelist"
61+
return n.rpcClient.call(callInterface{method: method, id: ""}, nil, address, tag)
62+
}
63+
64+
func (n *Net) RemoveFromWhitelist(address string) error {
65+
const method = "net_removeFromWhitelist"
66+
return n.rpcClient.call(callInterface{method: method, id: ""}, nil, address)
67+
}
68+
69+
func (n *Net) AddToBlacklist(address string, tag string) error {
70+
const method = "net_addToBlacklist"
71+
return n.rpcClient.call(callInterface{method: method, id: ""}, nil, address, tag)
72+
}
73+
74+
func (n *Net) RemoveFromBlacklist(address string) error {
75+
const method = "net_removeFromBlacklist"
76+
return n.rpcClient.call(callInterface{method: method, id: ""}, nil, address)
77+
}
78+
79+
func (n *Net) EnableWhitelist() error {
80+
const method = "net_enableWhitelist"
81+
return n.rpcClient.call(callInterface{method: method, id: ""}, nil)
82+
}
83+
84+
func (n *Net) DisableWhitelist() error {
85+
const method = "net_disableWhitelist"
86+
return n.rpcClient.call(callInterface{method: method, id: ""}, nil)
87+
}
88+
89+
func (n *Net) EnableBlacklist() error {
90+
const method = "net_enableBlacklist"
91+
return n.rpcClient.call(callInterface{method: method, id: ""}, nil)
92+
}
93+
94+
func (n *Net) DisableBlacklist() error {
95+
const method = "net_disableBlacklist"
96+
return n.rpcClient.call(callInterface{method: method, id: ""}, nil)
97+
}
98+
99+
func (n *Net) GetWhitelist() (interface{}, error) {
100+
const method = "net_getWhitelist"
101+
var reusult interface{}
102+
err := n.rpcClient.call(callInterface{method: method, id: ""}, &reusult)
103+
return reusult, err
104+
}
105+
106+
func (n *Net) GetBlacklist() (interface{}, error) {
107+
const method = "net_getBlacklist"
108+
var reusult interface{}
109+
err := n.rpcClient.call(callInterface{method: method, id: ""}, &reusult)
110+
return reusult, err
111+
}
112+
113+
func (n *Net) RecentNetworkUsage() (interface{}, error) {
114+
const method = "net_recentNetworkUsage"
115+
var reusult interface{}
116+
err := n.rpcClient.call(callInterface{method: method, id: ""}, &reusult)
117+
return reusult, err
118+
}

rpc.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ type RPC struct {
55
rpcClient rpcClient
66
account Account
77
chain Chain
8+
devel Devel
9+
engine Engine
10+
mempool Mempool
11+
net Net
812
}
913

1014
// NewRPC is a constructor of RPC
@@ -14,7 +18,9 @@ func NewRPC(nodeURL string) RPC {
1418
rpcClient: rpcClient,
1519
account: Account{rpcClient},
1620
chain: Chain{rpcClient},
17-
}
21+
devel: Devel{rpcClient},
22+
engine: Engine{rpcClient},
23+
mempool: Mempool{rpcClient}}
1824
}
1925

2026
// Ping sends request to node

0 commit comments

Comments
 (0)