mirror of https://github.com/status-im/nim-eth.git
Networkid common (#547)
* Move NetworkId type to common eth_types NetworkId is after all a common type and this way it avoid an application that requires it to also import all devp2p related network types. RLP related calls are moved to eth_types_rlp, this means that p2p protocols that send NetworkId over the wire need to import this too. Or just common in general. * Remove # in front of multiline comment end bracket These seem to be interpreted wrongly by the GitHub code browser.
This commit is contained in:
parent
cc52ef35e4
commit
fef47331c3
|
@ -51,6 +51,8 @@ type
|
||||||
# they are separate entity
|
# they are separate entity
|
||||||
ChainId* = distinct uint64
|
ChainId* = distinct uint64
|
||||||
|
|
||||||
|
NetworkId* = distinct uint
|
||||||
|
|
||||||
Account* = object
|
Account* = object
|
||||||
nonce*: AccountNonce
|
nonce*: AccountNonce
|
||||||
balance*: UInt256
|
balance*: UInt256
|
||||||
|
@ -284,3 +286,9 @@ template hasData*(r: EthResourceRefs): bool = r != nil
|
||||||
template deref*(b: Blob): auto = b
|
template deref*(b: Blob): auto = b
|
||||||
template deref*(o: Option): auto = o.get
|
template deref*(o: Option): auto = o.get
|
||||||
template deref*(r: EthResourceRefs): auto = r[]
|
template deref*(r: EthResourceRefs): auto = r[]
|
||||||
|
|
||||||
|
func `==`*(a, b: NetworkId): bool =
|
||||||
|
a.uint == b.uint
|
||||||
|
|
||||||
|
func `$`*(x: NetworkId): string =
|
||||||
|
`$`(uint(x))
|
||||||
|
|
|
@ -336,3 +336,8 @@ proc rlpHash*[T](v: T): Hash256 =
|
||||||
|
|
||||||
func blockHash*(h: BlockHeader): KeccakHash {.inline.} = rlpHash(h)
|
func blockHash*(h: BlockHeader): KeccakHash {.inline.} = rlpHash(h)
|
||||||
|
|
||||||
|
proc append*(rlpWriter: var RlpWriter, id: NetworkId) =
|
||||||
|
rlpWriter.append(id.uint)
|
||||||
|
|
||||||
|
proc read*(rlp: var Rlp, T: type NetworkId): T =
|
||||||
|
rlp.read(uint).NetworkId
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# nim-eth
|
# nim-eth
|
||||||
# Copyright (c) 2018-2021 Status Research & Development GmbH
|
# Copyright (c) 2018-2022 Status Research & Development GmbH
|
||||||
# Licensed and distributed under either of
|
# Licensed and distributed under either of
|
||||||
# * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
|
# * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
|
||||||
# * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
|
# * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
|
||||||
|
@ -46,7 +46,7 @@ template addCapability*(node: var EthereumNode,
|
||||||
name(ParamType), name(Protocol.NetworkState)]
|
name(ParamType), name(Protocol.NetworkState)]
|
||||||
{. error: errMsg .}
|
{. error: errMsg .}
|
||||||
|
|
||||||
addCapability(node, Protocol.protocolInfo,
|
addCapability(node, Protocol.protocolInfo,
|
||||||
cast[RootRef](networkState))
|
cast[RootRef](networkState))
|
||||||
|
|
||||||
proc replaceNetworkState*(node: var EthereumNode,
|
proc replaceNetworkState*(node: var EthereumNode,
|
||||||
|
@ -66,14 +66,14 @@ template replaceNetworkState*(node: var EthereumNode,
|
||||||
name(ParamType), name(Protocol.NetworkState)]
|
name(ParamType), name(Protocol.NetworkState)]
|
||||||
{. error: errMsg .}
|
{. error: errMsg .}
|
||||||
|
|
||||||
replaceNetworkState(node, Protocol.protocolInfo,
|
replaceNetworkState(node, Protocol.protocolInfo,
|
||||||
cast[RootRef](networkState))
|
cast[RootRef](networkState))
|
||||||
|
|
||||||
proc newEthereumNode*(
|
proc newEthereumNode*(
|
||||||
keys: KeyPair,
|
keys: KeyPair,
|
||||||
address: Address,
|
address: Address,
|
||||||
networkId: NetworkId,
|
networkId: NetworkId,
|
||||||
clientId = "nim-eth-p2p/0.2.0", # TODO: read this value from nimble somehow
|
clientId = "nim-eth-p2p",
|
||||||
addAllCapabilities = true,
|
addAllCapabilities = true,
|
||||||
useCompression: bool = false,
|
useCompression: bool = false,
|
||||||
minPeers = 10,
|
minPeers = 10,
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
|
|
||||||
# nim-eth
|
# nim-eth
|
||||||
# Copyright (c) 2018-2021 Status Research & Development GmbH
|
# Copyright (c) 2018-2022 Status Research & Development GmbH
|
||||||
# Licensed and distributed under either of
|
# Licensed and distributed under either of
|
||||||
# * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
|
# * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
|
||||||
# * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
|
# * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
|
||||||
|
@ -10,15 +9,15 @@ import
|
||||||
std/[deques, tables],
|
std/[deques, tables],
|
||||||
chronos,
|
chronos,
|
||||||
stew/results,
|
stew/results,
|
||||||
".."/../[rlp, keys],
|
".."/../[rlp, keys], ../../common/eth_types,
|
||||||
".."/[enode, kademlia, discovery, rlpxcrypt]
|
".."/[enode, kademlia, discovery, rlpxcrypt]
|
||||||
|
|
||||||
|
export eth_types.NetworkId
|
||||||
|
|
||||||
const
|
const
|
||||||
useSnappy* = defined(useSnappy)
|
useSnappy* = defined(useSnappy)
|
||||||
|
|
||||||
type
|
type
|
||||||
NetworkId* = distinct uint
|
|
||||||
|
|
||||||
EthereumNode* = ref object
|
EthereumNode* = ref object
|
||||||
networkId*: NetworkId
|
networkId*: NetworkId
|
||||||
clientId*: string
|
clientId*: string
|
||||||
|
@ -188,15 +187,3 @@ proc `$`*(peer: Peer): string = $peer.remote
|
||||||
|
|
||||||
proc toENode*(v: EthereumNode): ENode =
|
proc toENode*(v: EthereumNode): ENode =
|
||||||
ENode(pubkey: v.keys.pubkey, address: v.address)
|
ENode(pubkey: v.keys.pubkey, address: v.address)
|
||||||
|
|
||||||
proc append*(rlpWriter: var RlpWriter, id: NetworkId) {.inline.} =
|
|
||||||
rlpWriter.append(id.uint)
|
|
||||||
|
|
||||||
proc read*(rlp: var Rlp, T: type NetworkId): T {.inline.} =
|
|
||||||
rlp.read(uint).NetworkId
|
|
||||||
|
|
||||||
func `==`*(a, b: NetworkId): bool {.inline.} =
|
|
||||||
a.uint == b.uint
|
|
||||||
|
|
||||||
func `$`*(x: NetworkId): string {.inline.} =
|
|
||||||
`$`(uint(x))
|
|
||||||
|
|
|
@ -525,7 +525,7 @@ proc getRlpxHeaderData(header: RlpxHeader): (int,int,int) =
|
||||||
capabilityId = result[0],
|
capabilityId = result[0],
|
||||||
contextId = result[1],
|
contextId = result[1],
|
||||||
datagramSize = datagramSize()
|
datagramSize = datagramSize()
|
||||||
#]#
|
]#
|
||||||
except:
|
except:
|
||||||
error "RLPx message header-data options, parse error",
|
error "RLPx message header-data options, parse error",
|
||||||
capabilityId = result[0],
|
capabilityId = result[0],
|
||||||
|
@ -659,7 +659,7 @@ proc recvMsg*(peer: Peer): Future[tuple[msgId: int, msgData: Rlp]] {.async.} =
|
||||||
trace "RLPx next chunked datagram fragment",
|
trace "RLPx next chunked datagram fragment",
|
||||||
peer, msgId = result[0], ctxId, msgSize, moreData, totalMsgSize,
|
peer, msgId = result[0], ctxId, msgSize, moreData, totalMsgSize,
|
||||||
dcrBytesCount, payloadSoFar = decryptedBytes.len
|
dcrBytesCount, payloadSoFar = decryptedBytes.len
|
||||||
#]#
|
]#
|
||||||
|
|
||||||
# End While
|
# End While
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue