import { Schema } from '@liskhq/lisk-codec' ; export const nodeInfoSchema = { $id : '/nodeInfo' , type : 'object' , properties : { networkIdentifier : { dataType : 'string' , fieldNumber : 1 , } , networkVersion : { dataType : 'string' , fieldNumber : 2 , } , nonce : { dataType : 'string' , fieldNumber : 3 , } , advertiseAddress : { dataType : 'boolean' , fieldNumber : 4 , } , } , required : [ 'networkIdentifier' , 'networkVersion' , 'nonce' ] , } ; export const peerInfoSchema = { $id : '/protocolPeerInfo' , type : 'object' , properties : { ipAddress : { dataType : 'string' , fieldNumber : 1 , } , port : { dataType : 'uint32' , fieldNumber : 2 , } , } , required : [ 'ipAddress' , 'port' ] , } ; export const peerRequestResponseSchema = { $id : '/protocolPeerRequestResponse' , type : 'object' , properties : { peers : { type : 'array' , fieldNumber : 1 , items : { dataType : 'bytes' , } , } , } , required : [ 'peers' ] , } ; export const defaultRPCSchemas = { peerInfo : peerInfoSchema , nodeInfo : nodeInfoSchema , peerRequestResponse : peerRequestResponseSchema , } ; export const mergeCustomSchema = ( baseSchema , customSchema ) : Schema => ( { ... baseSchema , properties : { ... baseSchema . properties , options : { type : 'object' , fieldNumber : 5 , properties : { ... customSchema . properties } , } , } , } ) ;