From 251813a1be0fa47aa979b8a696eec04d7958d88b Mon Sep 17 00:00:00 2001 From: AnthonyMadia Date: Wed, 21 Dec 2022 13:17:53 -0500 Subject: [PATCH] add: RELAYREQUEST && RELAYRESPONSE types and functions --- src/message/create.ts | 19 +++++++++++++++++++ src/message/types.ts | 26 ++++++++++++++++++++++++-- 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/src/message/create.ts b/src/message/create.ts index 453e128f..5f785080 100644 --- a/src/message/create.ts +++ b/src/message/create.ts @@ -9,6 +9,8 @@ import { INodesMessage, ITalkReqMessage, ITalkRespMessage, + IRelayRequestMessage, + IRelayResponseMessage, } from "./types.js"; import { SequenceNumber, ENR } from "../enr/index.js"; @@ -56,3 +58,20 @@ export function createTalkResponseMessage(requestId: RequestId, payload: Uint8Ar response: Buffer.from(payload), }; } + +export function createRelayRequestMessage(fromNodeId: bigint, toNodeId: bigint): IRelayRequestMessage { + return { + type: MessageType.RELAYREQUEST, + id: createRequestId(), + fromNodeId, + toNodeId, + }; +} + +export function createRelayResponseMessage(response: number): IRelayResponseMessage { + return { + type: MessageType.RELAYRESPONSE, + id: createRequestId(), + response, + }; +} diff --git a/src/message/types.ts b/src/message/types.ts index 5a3cc1ee..f2ae8a3d 100644 --- a/src/message/types.ts +++ b/src/message/types.ts @@ -20,6 +20,8 @@ export enum MessageType { TICKET = 8, REGCONFIRMATION = 9, TOPICQUERY = 10, + RELAYREQUEST = 11, + RELAYRESPONSE = 12, } export function isRequestType(type: MessageType): boolean { @@ -34,14 +36,21 @@ export function isRequestType(type: MessageType): boolean { export type Message = RequestMessage | ResponseMessage; -export type RequestMessage = IPingMessage | IFindNodeMessage | ITalkReqMessage | IRegTopicMessage | ITopicQueryMessage; +export type RequestMessage = + | IPingMessage + | IFindNodeMessage + | ITalkReqMessage + | IRegTopicMessage + | ITopicQueryMessage + | IRelayResponseMessage; export type ResponseMessage = | IPongMessage | INodesMessage | ITalkRespMessage | ITicketMessage - | IRegConfirmationMessage; + | IRegConfirmationMessage + | IRelayResponseMessage; export interface IPingMessage { type: MessageType.PING; @@ -108,3 +117,16 @@ export interface ITopicQueryMessage { id: RequestId; topic: Buffer; } + +export interface IRelayRequestMessage { + type: MessageType.RELAYREQUEST; + id: RequestId; + fromNodeId: bigint; + toNodeId: bigint; +} + +export interface IRelayResponseMessage { + type: MessageType.RELAYRESPONSE; + id: RequestId; + response: number; +}