2020-04-29 04:49:27 +00:00
|
|
|
import
|
|
|
|
json_rpc/rpcserver, tables, options,
|
|
|
|
eth/[common, rlp, keys, p2p],
|
|
|
|
#DevP2P impl
|
2020-05-01 12:43:25 +00:00
|
|
|
# ../../../protocol/v1/waku_protocol,
|
2020-04-29 05:02:42 +00:00
|
|
|
../../../protocol/v2/waku_protocol,
|
2020-04-29 04:49:27 +00:00
|
|
|
nimcrypto/[sysrand, hmac, sha2, pbkdf2],
|
2020-05-01 12:43:25 +00:00
|
|
|
../../v1/rpc/[rpc_types, hexstrings, key_storage]
|
2020-04-29 04:49:27 +00:00
|
|
|
|
|
|
|
from stew/byteutils import hexToSeqByte, hexToByteArray
|
|
|
|
|
|
|
|
# Instead of using rlpx waku_protocol here, lets do mock waku2_protocol
|
|
|
|
# This should wrap GossipSub, not use EthereumNode here
|
|
|
|
|
2020-04-29 05:19:48 +00:00
|
|
|
# In Waku0/1 we use node.protocolState(Waku) a lot to get information
|
|
|
|
# Also keys to get priate key, etc
|
|
|
|
# Where is the equivalent in Waku/2?
|
|
|
|
# TODO: Extend to get access to protocol state and keys
|
|
|
|
#proc setupWakuRPC*(node: EthereumNode, keys: KeyStorage, rpcsrv: RpcServer) =
|
|
|
|
proc setupWakuRPC*(rpcsrv: RpcServer) =
|
2020-04-29 04:49:27 +00:00
|
|
|
|
|
|
|
# Seems easy enough, lets try to get this first
|
|
|
|
rpcsrv.rpc("waku_version") do() -> string:
|
2020-05-19 03:49:25 +00:00
|
|
|
## Returns string of the current Waku protocol version.
|
|
|
|
result = WakuSubCodec
|
2020-04-29 04:49:27 +00:00
|
|
|
|
|
|
|
# TODO: Dial/Connect
|
|
|
|
# XXX: Though wrong layer for that - wait how does this work in devp2p sim?
|
|
|
|
# We connect to nodes there, should be very similar here
|
|
|
|
|