Skip to content

Commit

Permalink
RPC: add method ultralight_getPingPayload
Browse files Browse the repository at this point in the history
  • Loading branch information
ScottyPoi committed Feb 28, 2025
1 parent 457efcd commit 5ac22b6
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion packages/cli/src/rpc/modules/ultralight.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { hexToBytes } from '@ethereumjs/util'
import { HistoryNetworkContentType, NetworkId, addRLPSerializedBlock } from 'portalnetwork'
import { HistoryNetworkContentType, NetworkId } from 'portalnetwork'

import { INTERNAL_ERROR } from '../error-code.js'
import { middleware, validators } from '../validators.js'
Expand All @@ -22,6 +22,7 @@ const methods = [
'ultralight_getNetworkDBSize',
'ultralight_pruneNetworkDB',
'ultralight_setNetworkStorage',
'ultralight_getPingPayload'
]

export class ultralight {
Expand Down Expand Up @@ -64,6 +65,10 @@ export class ultralight {
[validators.networkId],
[validators.megabytes],
])
this.getPingPayload = middleware(this.getPingPayload.bind(this), 1, [
[validators.networkId],
[validators.extension]
])
}
async methods() {
return methods
Expand Down Expand Up @@ -196,4 +201,17 @@ export class ultralight {
radius: '0x' + network.nodeRadius.toString(16),
}
}
async getPingPayload(params: [NetworkId, number]) {
const [networkId, extension] = params
const network = this._client.networks.get(networkId)
if (!network) {
throw {
code: INTERNAL_ERROR,
message: `Invalid network id ${networkId}`,
}
}
const payload = network.pingPongPayload(extension)
return payload
}

}

0 comments on commit 5ac22b6

Please sign in to comment.