Files
hub-monorepo/generate-protos.sh
Aditi Srinivasan c37a637034 chore: pull in updated Snapchain protos (#2635)
## Why is this change needed?

Pull in the `GetConnectedPeers` endpoint so we can use it in the
console.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.

<!-- start pr-codex -->

---

## PR-Codex overview
This PR focuses on updating the `GetConnectedPeers` functionality in the
`HubService` by introducing new request and response types, along with
modifications to the serialization and deserialization processes. It
also updates dependencies and related proto files.

### Detailed summary
- Added `GetConnectedPeersRequest` and `GetConnectedPeersResponse`
interfaces.
- Implemented `getConnectedPeers` method in `HubServiceService`.
- Updated `HubServiceServer` and `HubServiceClient` interfaces to
include `getConnectedPeers`.
- Modified `generate-protos.sh` to use a new proto revision.
- Updated `ContactInfoBody` structure in `gossip.ts` to include new
fields.
- Refactored `GossipMessage` to accommodate new message types.
- Updated dependencies in `.changeset/tender-melons-fail.md`.

> The following files were skipped due to too many changes:
`packages/hub-nodejs/src/generated/gossip.ts`

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2025-07-21 12:16:10 -04:00

32 lines
1.5 KiB
Bash
Executable File

PROTO_REPO=https://github.com/farcasterxyz/snapchain
PROTO_PATH=src/proto
PROTO_REV=dc325daa2ce84f4de3bce840a277508accabb642 # Update this if you want to generate off updated snapchain protos
TMPDIR=tmp-protogen
git clone $PROTO_REPO $TMPDIR
cd $TMPDIR
git checkout $PROTO_REV
cd ..
# Determine which files you care about
if [[ "$LIBRARY" == "core" ]]; then
RELEVANT_PROTOS=$(ls $TMPDIR/$PROTO_PATH/*.proto | xargs -n 1 basename | xargs -I{} echo '/defs/{}' | tr '\n' ' ')
OUT_PATH=src/protobufs/generated
CUSTOM_TS_PROTO_OPTS="outputServices=false"
elif [[ "$LIBRARY" == "hub-nodejs" ]]; then
RELEVANT_PROTOS="/defs/rpc.proto /defs/admin_rpc.proto"
OUT_PATH=src/generated
CUSTOM_TS_PROTO_OPTS="outputServices=grpc-js"
elif [[ "$LIBRARY" == "hub-web" ]]; then
RELEVANT_PROTOS="/defs/rpc.proto /defs/admin_rpc.proto"
OUT_PATH=src/generated
CUSTOM_TS_PROTO_OPTS="outputClientImpl=grpc-web,lowerCaseServiceMethods=true"
fi
echo "Generating relevant protos: $RELEVANT_PROTOS"
echo "Outputting generated files to: $OUT_PATH"
docker run --rm --user $(id -u):$(id -g) -v $(pwd)/../../node_modules:/node_modules -v $(pwd)/$TMPDIR/$PROTO_PATH:/defs -v $(pwd)/$OUT_PATH:/out namely/protoc:1.50_1 --plugin=/node_modules/ts-proto/protoc-gen-ts_proto --ts_proto_out=/out --ts_proto_opt=esModuleInterop=true,exportCommonSymbols=false,useOptionals=none,unrecognizedEnum=false,removeEnumPrefix=true,$CUSTOM_TS_PROTO_OPTS --proto_path=/defs $RELEVANT_PROTOS
rm -rf $TMPDIR