mirror of https://github.com/status-im/nim-eth.git
196 lines
5.7 KiB
Nim
196 lines
5.7 KiB
Nim
|
|
## Generated at line 781
|
|
type
|
|
DevP2P* = object
|
|
type
|
|
helloObj* = object
|
|
version*: uint
|
|
clientId*: string
|
|
capabilities*: seq[Capability]
|
|
listenPort*: uint
|
|
nodeId*: array[RawPublicKeySize, byte]
|
|
|
|
template hello*(PROTO: type DevP2P): type =
|
|
helloObj
|
|
|
|
template msgProtocol*(MSG: type helloObj): type =
|
|
DevP2P
|
|
|
|
template RecType*(MSG: type helloObj): untyped =
|
|
helloObj
|
|
|
|
template msgId*(MSG: type helloObj): int =
|
|
0
|
|
|
|
type
|
|
sendDisconnectMsgObj* = object
|
|
reason*: DisconnectionReasonList
|
|
|
|
template sendDisconnectMsg*(PROTO: type DevP2P): type =
|
|
sendDisconnectMsgObj
|
|
|
|
template msgProtocol*(MSG: type sendDisconnectMsgObj): type =
|
|
DevP2P
|
|
|
|
template RecType*(MSG: type sendDisconnectMsgObj): untyped =
|
|
sendDisconnectMsgObj
|
|
|
|
template msgId*(MSG: type sendDisconnectMsgObj): int =
|
|
1
|
|
|
|
type
|
|
pingObj* = object
|
|
emptyList*: EmptyList
|
|
|
|
template ping*(PROTO: type DevP2P): type =
|
|
pingObj
|
|
|
|
template msgProtocol*(MSG: type pingObj): type =
|
|
DevP2P
|
|
|
|
template RecType*(MSG: type pingObj): untyped =
|
|
pingObj
|
|
|
|
template msgId*(MSG: type pingObj): int =
|
|
2
|
|
|
|
type
|
|
pongObj* = object
|
|
emptyList*: EmptyList
|
|
|
|
template pong*(PROTO: type DevP2P): type =
|
|
pongObj
|
|
|
|
template msgProtocol*(MSG: type pongObj): type =
|
|
DevP2P
|
|
|
|
template RecType*(MSG: type pongObj): untyped =
|
|
pongObj
|
|
|
|
template msgId*(MSG: type pongObj): int =
|
|
3
|
|
|
|
var DevP2PProtocolObj = initProtocol("p2p", 5, nil, nil)
|
|
var DevP2PProtocol = addr DevP2PProtocolObj
|
|
template protocolInfo*(P`gensym75730262: type DevP2P): auto =
|
|
DevP2PProtocol
|
|
|
|
proc hello*(peerOrResponder: Peer; version: uint; clientId: string;
|
|
capabilities: seq[Capability]; listenPort: uint;
|
|
nodeId: array[RawPublicKeySize, byte]): Future[void] {.gcsafe.} =
|
|
let peer = getPeer(peerOrResponder)
|
|
var writer = initRlpWriter()
|
|
const
|
|
perProtocolMsgId = 0
|
|
let perPeerMsgId = 0
|
|
append(writer, perPeerMsgId)
|
|
startList(writer, 5)
|
|
append(writer, version)
|
|
append(writer, clientId)
|
|
append(writer, capabilities)
|
|
append(writer, listenPort)
|
|
append(writer, nodeId)
|
|
let msgBytes = finish(writer)
|
|
return sendMsg(peer, msgBytes)
|
|
|
|
proc sendDisconnectMsg*(peerOrResponder: Peer; reason: DisconnectionReasonList): Future[
|
|
void] {.gcsafe.} =
|
|
let peer = getPeer(peerOrResponder)
|
|
var writer = initRlpWriter()
|
|
const
|
|
perProtocolMsgId = 1
|
|
let perPeerMsgId = 1
|
|
append(writer, perPeerMsgId)
|
|
append(writer, reason)
|
|
let msgBytes = finish(writer)
|
|
return sendMsg(peer, msgBytes)
|
|
|
|
proc ping*(peerOrResponder: Peer; emptyList: EmptyList): Future[void] {.gcsafe.} =
|
|
let peer = getPeer(peerOrResponder)
|
|
var writer = initRlpWriter()
|
|
const
|
|
perProtocolMsgId = 2
|
|
let perPeerMsgId = 2
|
|
append(writer, perPeerMsgId)
|
|
append(writer, emptyList)
|
|
let msgBytes = finish(writer)
|
|
return sendMsg(peer, msgBytes)
|
|
|
|
proc pong*(peerOrResponder: Peer; emptyList: EmptyList): Future[void] {.gcsafe.} =
|
|
let peer = getPeer(peerOrResponder)
|
|
var writer = initRlpWriter()
|
|
const
|
|
perProtocolMsgId = 3
|
|
let perPeerMsgId = 3
|
|
append(writer, perPeerMsgId)
|
|
append(writer, emptyList)
|
|
let msgBytes = finish(writer)
|
|
return sendMsg(peer, msgBytes)
|
|
|
|
proc sendDisconnectMsgUserHandler(peer: Peer; reason: DisconnectionReasonList) {.
|
|
gcsafe, async.} =
|
|
type
|
|
CurrentProtocol = DevP2P
|
|
const
|
|
perProtocolMsgId = 1
|
|
trace "disconnect message received", reason = reason.value, peer
|
|
await peer.disconnect(reason.value, false)
|
|
|
|
proc pingUserHandler(peer: Peer; emptyList: EmptyList) {.gcsafe, async.} =
|
|
type
|
|
CurrentProtocol = DevP2P
|
|
const
|
|
perProtocolMsgId = 2
|
|
discard peer.pong(EmptyList())
|
|
|
|
proc pongUserHandler(peer: Peer; emptyList: EmptyList) {.gcsafe, async.} =
|
|
type
|
|
CurrentProtocol = DevP2P
|
|
const
|
|
perProtocolMsgId = 3
|
|
discard
|
|
|
|
proc helloThunk(peer: Peer; _`gensym75730215: int; data`gensym75730216: Rlp) {.async,
|
|
gcsafe.} =
|
|
var rlp = data`gensym75730216
|
|
var msg {.noinit.}: helloObj
|
|
tryEnterList(rlp)
|
|
msg.version = checkedRlpRead(peer, rlp, uint)
|
|
msg.clientId = checkedRlpRead(peer, rlp, string)
|
|
msg.capabilities = checkedRlpRead(peer, rlp, seq[Capability])
|
|
msg.listenPort = checkedRlpRead(peer, rlp, uint)
|
|
msg.nodeId = checkedRlpRead(peer, rlp, array[RawPublicKeySize, byte])
|
|
|
|
proc sendDisconnectMsgThunk(peer: Peer; _`gensym75730250: int;
|
|
data`gensym75730251: Rlp) {.async, gcsafe.} =
|
|
var rlp = data`gensym75730251
|
|
var msg {.noinit.}: sendDisconnectMsgObj
|
|
msg.reason = checkedRlpRead(peer, rlp, DisconnectionReasonList)
|
|
await(sendDisconnectMsgUserHandler(peer, msg.reason))
|
|
|
|
proc pingThunk(peer: Peer; _`gensym75730252: int; data`gensym75730253: Rlp) {.async,
|
|
gcsafe.} =
|
|
var rlp = data`gensym75730253
|
|
var msg {.noinit.}: pingObj
|
|
msg.emptyList = checkedRlpRead(peer, rlp, EmptyList)
|
|
await(pingUserHandler(peer, msg.emptyList))
|
|
|
|
proc pongThunk(peer: Peer; _`gensym75730254: int; data`gensym75730255: Rlp) {.async,
|
|
gcsafe.} =
|
|
var rlp = data`gensym75730255
|
|
var msg {.noinit.}: pongObj
|
|
msg.emptyList = checkedRlpRead(peer, rlp, EmptyList)
|
|
await(pongUserHandler(peer, msg.emptyList))
|
|
|
|
registerMsg(DevP2PProtocol, 0, "hello", helloThunk, messagePrinter[helloObj],
|
|
requestResolver[helloObj], nextMsgResolver[helloObj])
|
|
registerMsg(DevP2PProtocol, 1, "sendDisconnectMsg", sendDisconnectMsgThunk,
|
|
messagePrinter[sendDisconnectMsgObj],
|
|
requestResolver[sendDisconnectMsgObj],
|
|
nextMsgResolver[sendDisconnectMsgObj])
|
|
registerMsg(DevP2PProtocol, 2, "ping", pingThunk, messagePrinter[pingObj],
|
|
requestResolver[pingObj], nextMsgResolver[pingObj])
|
|
registerMsg(DevP2PProtocol, 3, "pong", pongThunk, messagePrinter[pongObj],
|
|
requestResolver[pongObj], nextMsgResolver[pongObj])
|
|
setEventHandlers(DevP2PProtocol, nil, nil)
|
|
registerProtocol(DevP2PProtocol) |