This package has been deprecated

Author message:

Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

@hoprnet/hopr-protos

1.57.0-next.39 • Public • Published

HOPR

HOPR is a privacy-preserving messaging protocol which enables the creation of a secure communication network via relay nodes powered by economic incentives using digital tokens.

Testing

Testing is done by trying to generate proto stubs for node and web, if building fails then it means something is wrong with our protos, ideally, we can improve this to also include linting and breaking change detection.

Protos Architecture

Stage 0 - describe        GET   /status ({} => { id, multiAddresses, connectedNodes })
Stage 0 - describe        GET   /version ({} => { version, componentsVersion })
Stage 0 - quit            POST  /shutdown ({} => { timestamp })
Stage 0 - ping            POST  /ping ({peerId} => { latency })
Stage 0 - .env            POST  /settings ({ bootstrapServers, isUsingCoverTraffic })

Stage 1 - balance         GET   /balance/native ({} => { amount })
Stage 1 - balance         GET   /balance/hopr ({} => { amount })
Stage 1 - myAddress       GET   /address/native ({} => { amount })
Stage 1 - myAddress       GET   /address/hopr ({} => { amount })

Stage 2.a - listChannel   GET   /channels ({} => { openChannel[] })
Stage 2.a - openChannel   POST  /channels ({ peerId } => { channelId, txHash })
Stage 2.a - listChannel   GET   /channels/:channelId ({ channelId } => { state, balance, ... })
Stage 2.a - closeChannel  POST  /channels/:channelId/close ({ channelId  } => { txHash })
Stage 2.b - listen*       POST  /listen ({ [peerId] } => { stream:payload })
Stage 2.b - send          POST  /send ({ peerId, payload, [intermediatePeerIds[], timeout]} => { intermediatePeerIds[] })

Stage 3 - transfer*       POST  /transfer/native ({ address,  amount } => { txHash })
Stage 3 - transfer*       POST  /transfer/hopr ({ address, amount } => { txHash })

You can also check out a more detailed overview here.

Workflow

  1. add a new .proto file in protos folder
  2. running yarn build will generate grpc-node stubs and grpc-web stubs

example:

// for node
import { VersionRequest } from '@hoprnet/hopr-protos/node/version_pb'

// for web
import { VersionRequest } from '@hoprnet/hopr-protos/web/version_pb'

Generating docs

You can take a look at generateDocs script on how to generate docs.

Notes on @grpc/grpc-js

Eventually we will have to switch to @grpc/grpc-js since @grpc/grpc-native-core is being deprecated.

We can do that once these issues are closed 1, 2.

Gotchas

  • web stubs are not bundled with their dependancies

Readme

Keywords

none

Package Sidebar

Install

npm i @hoprnet/hopr-protos

Homepage

hoprnet.org

Weekly Downloads

4

Version

1.57.0-next.39

License

GPL-3.0-only

Unpacked Size

569 kB

Total Files

104

Last publish

Collaborators

  • hopr-bot
  • robertkiel