feat: wrap hub-web client to provide consistent APIs with hub-nodejs (#811)

* wrap client for hub-web so that the APIs are consistent with hub-nodejs

* update readme for new APIs

* fix type export

* add changeset

* rename client to be consistent with hub-nodejs

* update README

* remove envoy folder from root
This commit is contained in:
PangZhi
2023-04-04 15:28:42 -07:00
committed by GitHub
parent b81ed8c5e2
commit ce7929e2aa
9 changed files with 213 additions and 226 deletions

View File

@@ -0,0 +1,6 @@
---
'@farcaster/hub-web': minor
---
wrap client of hub-web response Promise<T> -> Promise<HubResult<T>>
fix the camelCase issue for generated ts

View File

@@ -1,36 +0,0 @@
In order for farcaster to support grpc-web, we need to set up envoy alongside the server.
## Requirement
Install docker if the farcaster instance doesn't support docker yet
```
ssh ubuntu@<farcaster instance ipv4 address> -i key.pem
chmod +x install-docker.sh
./install-docker.sh
logout of the ssh session
re-login
```
## Infra setting
update inbound/outbound traffic to allow tcp through envoy port (default: 2284)
## Start envoy
update envoy.yaml for the correct rpc port (default: 2283) and envoy port (default: 2284)
```
chmod +x envoy-start.sh
./envoy-start.sh
```
you should be able to see an envoy process under docker ps
## Contributing
Please see our [contributing guidelines](https://github.com/farcasterxyz/hubble/blob/main/CONTRIBUTING.md) before making a pull request.
## License
MIT License

View File

@@ -1,8 +0,0 @@
#!/bin/bash
docker run -d -v "$(pwd)"/envoy.yaml:/etc/envoy/envoy.yaml:ro \
--network=host envoyproxy/envoy:v1.22.0
# command to run in Mac/Windows
# docker run -d -v "$(pwd)"/envoy.yaml:/etc/envoy/envoy.yaml:ro \
# -p 2284:2284 -p 9901:9901 envoyproxy/envoy:v1.22.0

View File

@@ -1,64 +0,0 @@
admin:
access_log_path: /tmp/admin_access.log
address:
socket_address: { address: 0.0.0.0, port_value: 9901 }
static_resources:
listeners:
- name: listener_0
address:
# update the port_value to the port of envoy
socket_address: { address: 0.0.0.0, port_value: 2284 }
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
'@type': type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
codec_type: auto
stat_prefix: ingress_http
route_config:
name: local_route
virtual_hosts:
- name: local_service
domains: ['*']
routes:
- match: { prefix: '/' }
route:
cluster: greeter_service
timeout: 0s
max_stream_duration:
grpc_timeout_header_max: 0s
cors:
allow_origin_string_match:
- prefix: '*'
allow_methods: GET, PUT, DELETE, POST, OPTIONS
allow_headers: keep-alive,user-agent,cache-control,content-type,content-transfer-encoding,custom-header-1,x-accept-content-transfer-encoding,x-accept-response-streaming,x-user-agent,x-grpc-web,grpc-timeout
max_age: '1728000'
expose_headers: custom-header-1,grpc-status,grpc-message
http_filters:
- name: envoy.filters.http.grpc_web
typed_config:
'@type': type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb
- name: envoy.filters.http.cors
typed_config:
'@type': type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors
- name: envoy.filters.http.router
typed_config:
'@type': type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
clusters:
- name: greeter_service
connect_timeout: 0.25s
type: logical_dns
http2_protocol_options: {}
lb_policy: round_robin
load_assignment:
cluster_name: cluster_0
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
# win/mac hosts: Use address: host.docker.internal instead of address: localhost in the line below
address: 0.0.0.0
# update the value to the port of rpc server
port_value: 2283

View File

@@ -1,6 +0,0 @@
#!/bin/bash
sudo apt update
sudo apt install docker.io -y
sudo snap install docker
sudo usermod -a -G docker ubuntu

View File

@@ -22,18 +22,18 @@ pnpm install @farcaster/hub-web
### Fetching Data from Hubs
```typescript
import { getRpcWebClient } from '@farcaster/hub-web';
import { getInsecureHubRpcClient } from '@farcaster/hub-web';
(async () => {
// if you are testing from a node environment
// const client = getRpcWebClient('http://testnet1.farcaster.xyz:2284', false);
// const client = getInsecureHubRpcClient('testnet1.farcaster.xyz:2284', false);
// if you are testing from a braowser environment
const client = getRpcWebClient('http://testnet1.farcaster.xyz:2284');
const client = getInsecureHubRpcClient('testnet1.farcaster.xyz:2284');
const castsResult = await client.GetCastsByFid({ fid: 7884 });
const castsResult = await client.getCastsByFid({ fid: 7884 });
castsResult.messages.map((cast) => console.log(cast.data?.castAddBody?.text));
castsResult.map((casts) => casts.messages.map((cast) => console.log(cast.data?.castAddBody?.text)));
})();
```

View File

@@ -18,7 +18,7 @@
"scripts": {
"build": "tsup --config tsup.config.ts",
"clean": "rimraf ./dist",
"protoc": "protoc --plugin=./node_modules/.bin/protoc-gen-ts_proto --ts_proto_out=./src/generated/ --ts_proto_opt=esModuleInterop=true,exportCommonSymbols=false,outputClientImpl=grpc-web,useOptionals=none,unrecognizedEnum=false,removeEnumPrefix=true --proto_path=../protobufs/src/schemas ../protobufs/src/schemas/rpc.proto",
"protoc": "protoc --plugin=./node_modules/.bin/protoc-gen-ts_proto --ts_proto_out=./src/generated/ --ts_proto_opt=esModuleInterop=true,exportCommonSymbols=false,outputClientImpl=grpc-web,useOptionals=none,unrecognizedEnum=false,removeEnumPrefix=true,lowerCaseServiceMethods=true --proto_path=../protobufs/src/schemas ../protobufs/src/schemas/rpc.proto",
"lint": "eslint src/ --color --ext .ts",
"lint:fix": "yarn run lint -- --fix",
"prepublishOnly": "yarn run build"

View File

@@ -1,8 +1,103 @@
import { GrpcWebImpl, HubServiceClientImpl } from './generated/rpc';
import {
HubService,
HubServiceClientImpl,
GrpcWebError,
GrpcWebImpl,
AdminService,
AdminServiceClientImpl,
} from './generated/rpc';
import { NodeHttpTransport } from '@improbable-eng/grpc-web-node-http-transport';
export type RpcWebClient = typeof HubServiceClientImpl;
import { grpc } from '@improbable-eng/grpc-web';
import { err, ok } from 'neverthrow';
import { HubError, HubErrorCode, HubResult } from '@farcaster/utils';
import { Observable, of } from 'rxjs';
import { catchError } from 'rxjs/operators';
export const getRpcWebClient = (url: string, isBrowser = true): HubServiceClientImpl => {
return new HubServiceClientImpl(new GrpcWebImpl(url, isBrowser ? {} : { transport: NodeHttpTransport() }));
const fromServiceError = (err: GrpcWebError): HubError => {
let context = err['message'];
if (err.code === 14 && context === 'No connection established') {
context =
'Connection failed: please check that the hubs address, ports and authentication config are correct. ' + context;
return new HubError('unavailable' as HubErrorCode, context);
}
// TODO: grpc error code to HubErrorCode
return new HubError('unknown' as HubErrorCode, context);
};
// wrap grpc-web client with HubResult to make sure APIs are consistent with hub-nodejs
type OriginalUnaryCall<T, U> = (request: T, metadata?: grpc.Metadata) => Promise<U>;
type WrappedUnaryCall<T, U> = (request: T, metadata?: grpc.Metadata) => Promise<HubResult<U>>;
type OriginalStream<T, U> = (request: T, metadata?: grpc.Metadata) => Observable<U>;
type WrappedStream<T, U> = (request: T, metadata?: grpc.Metadata) => Promise<HubResult<Observable<U>>>;
type WrappedClient<C> = { $: C } & {
[prop in keyof C]: C[prop] extends OriginalUnaryCall<infer T, infer U>
? WrappedUnaryCall<T, U>
: C[prop] extends OriginalStream<infer T, infer U>
? WrappedStream<T, U>
: never;
};
const wrapClient = <C extends object>(client: C) => {
return new Proxy(client, {
get: (target, descriptor) => {
const key = descriptor as keyof WrappedClient<C>;
if (key === '$') return target;
// eslint-disable-next-line security/detect-object-injection
const func = target[key];
if (typeof func === 'function') {
return (...args: unknown[]) => {
let result = func.call(target, ...args);
if (result instanceof Promise) {
return (result as Promise<any>).then(
(res) => ok(res),
(e) => err(fromServiceError(e as GrpcWebError))
);
}
if (result instanceof Observable) {
result = result.pipe(
catchError((e, _caught) => {
// TODO: investigate error handling
return of(err(e));
})
);
return ok(result);
}
return ok(result);
};
}
return func;
},
}) as unknown as WrappedClient<C>;
};
export type HubRpcClient = WrappedClient<HubService>;
/* eslint-disable @typescript-eslint/no-unused-vars */
export const getSSLHubRpcClient = (address: string, isBrowser = true): HubRpcClient => {
throw new Error('getSSLHubRpcClient not implemented');
// return wrapClient(new HubServiceClientImpl(getRpcWebClient('https://' + address, isBrowser)));
};
/* eslint-enable @typescript-eslint/no-unused-vars */
export const getInsecureHubRpcClient = (address: string, isBrowser = true): HubRpcClient => {
return wrapClient(new HubServiceClientImpl(getRpcWebClient('http://' + address, isBrowser)));
};
export type AdminRpcClient = WrappedClient<AdminService>;
export const getAdminRpcClient = (address: string, isBrowser = true): AdminRpcClient => {
return wrapClient(new AdminServiceClientImpl(getRpcWebClient('http://' + address, isBrowser)));
};
const getRpcWebClient = (address: string, isBrowser = true): GrpcWebImpl => {
return new GrpcWebImpl(address, isBrowser ? {} : { transport: NodeHttpTransport() });
};

View File

@@ -34,56 +34,56 @@ import {
export interface HubService {
/** Submit Methods */
SubmitMessage(request: DeepPartial<Message>, metadata?: grpc.Metadata): Promise<Message>;
submitMessage(request: DeepPartial<Message>, metadata?: grpc.Metadata): Promise<Message>;
/** Event Methods */
Subscribe(request: DeepPartial<SubscribeRequest>, metadata?: grpc.Metadata): Observable<HubEvent>;
GetEvent(request: DeepPartial<EventRequest>, metadata?: grpc.Metadata): Promise<HubEvent>;
subscribe(request: DeepPartial<SubscribeRequest>, metadata?: grpc.Metadata): Observable<HubEvent>;
getEvent(request: DeepPartial<EventRequest>, metadata?: grpc.Metadata): Promise<HubEvent>;
/** Casts */
GetCast(request: DeepPartial<CastId>, metadata?: grpc.Metadata): Promise<Message>;
GetCastsByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
GetCastsByParent(request: DeepPartial<CastsByParentRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
GetCastsByMention(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
getCast(request: DeepPartial<CastId>, metadata?: grpc.Metadata): Promise<Message>;
getCastsByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
getCastsByParent(request: DeepPartial<CastsByParentRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
getCastsByMention(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
/** Reactions */
GetReaction(request: DeepPartial<ReactionRequest>, metadata?: grpc.Metadata): Promise<Message>;
GetReactionsByFid(request: DeepPartial<ReactionsByFidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
GetReactionsByCast(request: DeepPartial<ReactionsByCastRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
getReaction(request: DeepPartial<ReactionRequest>, metadata?: grpc.Metadata): Promise<Message>;
getReactionsByFid(request: DeepPartial<ReactionsByFidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
getReactionsByCast(request: DeepPartial<ReactionsByCastRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
/** User Data */
GetUserData(request: DeepPartial<UserDataRequest>, metadata?: grpc.Metadata): Promise<Message>;
GetUserDataByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
GetNameRegistryEvent(
getUserData(request: DeepPartial<UserDataRequest>, metadata?: grpc.Metadata): Promise<Message>;
getUserDataByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
getNameRegistryEvent(
request: DeepPartial<NameRegistryEventRequest>,
metadata?: grpc.Metadata
): Promise<NameRegistryEvent>;
/** Verifications */
GetVerification(request: DeepPartial<VerificationRequest>, metadata?: grpc.Metadata): Promise<Message>;
GetVerificationsByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
getVerification(request: DeepPartial<VerificationRequest>, metadata?: grpc.Metadata): Promise<Message>;
getVerificationsByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
/** Signer */
GetSigner(request: DeepPartial<SignerRequest>, metadata?: grpc.Metadata): Promise<Message>;
GetSignersByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
GetIdRegistryEvent(request: DeepPartial<IdRegistryEventRequest>, metadata?: grpc.Metadata): Promise<IdRegistryEvent>;
GetIdRegistryEventByAddress(
getSigner(request: DeepPartial<SignerRequest>, metadata?: grpc.Metadata): Promise<Message>;
getSignersByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
getIdRegistryEvent(request: DeepPartial<IdRegistryEventRequest>, metadata?: grpc.Metadata): Promise<IdRegistryEvent>;
getIdRegistryEventByAddress(
request: DeepPartial<IdRegistryEventByAddressRequest>,
metadata?: grpc.Metadata
): Promise<IdRegistryEvent>;
GetFids(request: DeepPartial<FidsRequest>, metadata?: grpc.Metadata): Promise<FidsResponse>;
getFids(request: DeepPartial<FidsRequest>, metadata?: grpc.Metadata): Promise<FidsResponse>;
/** Bulk Methods */
GetAllCastMessagesByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
GetAllReactionMessagesByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
GetAllVerificationMessagesByFid(
getAllCastMessagesByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
getAllReactionMessagesByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
getAllVerificationMessagesByFid(
request: DeepPartial<FidRequest>,
metadata?: grpc.Metadata
): Promise<MessagesResponse>;
GetAllSignerMessagesByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
GetAllUserDataMessagesByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
getAllSignerMessagesByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
getAllUserDataMessagesByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
/** Sync Methods */
GetInfo(request: DeepPartial<Empty>, metadata?: grpc.Metadata): Promise<HubInfoResponse>;
GetAllSyncIdsByPrefix(request: DeepPartial<TrieNodePrefix>, metadata?: grpc.Metadata): Promise<SyncIds>;
GetAllMessagesBySyncIds(request: DeepPartial<SyncIds>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
GetSyncMetadataByPrefix(
getInfo(request: DeepPartial<Empty>, metadata?: grpc.Metadata): Promise<HubInfoResponse>;
getAllSyncIdsByPrefix(request: DeepPartial<TrieNodePrefix>, metadata?: grpc.Metadata): Promise<SyncIds>;
getAllMessagesBySyncIds(request: DeepPartial<SyncIds>, metadata?: grpc.Metadata): Promise<MessagesResponse>;
getSyncMetadataByPrefix(
request: DeepPartial<TrieNodePrefix>,
metadata?: grpc.Metadata
): Promise<TrieNodeMetadataResponse>;
GetSyncSnapshotByPrefix(
getSyncSnapshotByPrefix(
request: DeepPartial<TrieNodePrefix>,
metadata?: grpc.Metadata
): Promise<TrieNodeSnapshotResponse>;
@@ -94,117 +94,117 @@ export class HubServiceClientImpl implements HubService {
constructor(rpc: Rpc) {
this.rpc = rpc;
this.SubmitMessage = this.SubmitMessage.bind(this);
this.Subscribe = this.Subscribe.bind(this);
this.GetEvent = this.GetEvent.bind(this);
this.GetCast = this.GetCast.bind(this);
this.GetCastsByFid = this.GetCastsByFid.bind(this);
this.GetCastsByParent = this.GetCastsByParent.bind(this);
this.GetCastsByMention = this.GetCastsByMention.bind(this);
this.GetReaction = this.GetReaction.bind(this);
this.GetReactionsByFid = this.GetReactionsByFid.bind(this);
this.GetReactionsByCast = this.GetReactionsByCast.bind(this);
this.GetUserData = this.GetUserData.bind(this);
this.GetUserDataByFid = this.GetUserDataByFid.bind(this);
this.GetNameRegistryEvent = this.GetNameRegistryEvent.bind(this);
this.GetVerification = this.GetVerification.bind(this);
this.GetVerificationsByFid = this.GetVerificationsByFid.bind(this);
this.GetSigner = this.GetSigner.bind(this);
this.GetSignersByFid = this.GetSignersByFid.bind(this);
this.GetIdRegistryEvent = this.GetIdRegistryEvent.bind(this);
this.GetIdRegistryEventByAddress = this.GetIdRegistryEventByAddress.bind(this);
this.GetFids = this.GetFids.bind(this);
this.GetAllCastMessagesByFid = this.GetAllCastMessagesByFid.bind(this);
this.GetAllReactionMessagesByFid = this.GetAllReactionMessagesByFid.bind(this);
this.GetAllVerificationMessagesByFid = this.GetAllVerificationMessagesByFid.bind(this);
this.GetAllSignerMessagesByFid = this.GetAllSignerMessagesByFid.bind(this);
this.GetAllUserDataMessagesByFid = this.GetAllUserDataMessagesByFid.bind(this);
this.GetInfo = this.GetInfo.bind(this);
this.GetAllSyncIdsByPrefix = this.GetAllSyncIdsByPrefix.bind(this);
this.GetAllMessagesBySyncIds = this.GetAllMessagesBySyncIds.bind(this);
this.GetSyncMetadataByPrefix = this.GetSyncMetadataByPrefix.bind(this);
this.GetSyncSnapshotByPrefix = this.GetSyncSnapshotByPrefix.bind(this);
this.submitMessage = this.submitMessage.bind(this);
this.subscribe = this.subscribe.bind(this);
this.getEvent = this.getEvent.bind(this);
this.getCast = this.getCast.bind(this);
this.getCastsByFid = this.getCastsByFid.bind(this);
this.getCastsByParent = this.getCastsByParent.bind(this);
this.getCastsByMention = this.getCastsByMention.bind(this);
this.getReaction = this.getReaction.bind(this);
this.getReactionsByFid = this.getReactionsByFid.bind(this);
this.getReactionsByCast = this.getReactionsByCast.bind(this);
this.getUserData = this.getUserData.bind(this);
this.getUserDataByFid = this.getUserDataByFid.bind(this);
this.getNameRegistryEvent = this.getNameRegistryEvent.bind(this);
this.getVerification = this.getVerification.bind(this);
this.getVerificationsByFid = this.getVerificationsByFid.bind(this);
this.getSigner = this.getSigner.bind(this);
this.getSignersByFid = this.getSignersByFid.bind(this);
this.getIdRegistryEvent = this.getIdRegistryEvent.bind(this);
this.getIdRegistryEventByAddress = this.getIdRegistryEventByAddress.bind(this);
this.getFids = this.getFids.bind(this);
this.getAllCastMessagesByFid = this.getAllCastMessagesByFid.bind(this);
this.getAllReactionMessagesByFid = this.getAllReactionMessagesByFid.bind(this);
this.getAllVerificationMessagesByFid = this.getAllVerificationMessagesByFid.bind(this);
this.getAllSignerMessagesByFid = this.getAllSignerMessagesByFid.bind(this);
this.getAllUserDataMessagesByFid = this.getAllUserDataMessagesByFid.bind(this);
this.getInfo = this.getInfo.bind(this);
this.getAllSyncIdsByPrefix = this.getAllSyncIdsByPrefix.bind(this);
this.getAllMessagesBySyncIds = this.getAllMessagesBySyncIds.bind(this);
this.getSyncMetadataByPrefix = this.getSyncMetadataByPrefix.bind(this);
this.getSyncSnapshotByPrefix = this.getSyncSnapshotByPrefix.bind(this);
}
SubmitMessage(request: DeepPartial<Message>, metadata?: grpc.Metadata): Promise<Message> {
submitMessage(request: DeepPartial<Message>, metadata?: grpc.Metadata): Promise<Message> {
return this.rpc.unary(HubServiceSubmitMessageDesc, Message.fromPartial(request), metadata);
}
Subscribe(request: DeepPartial<SubscribeRequest>, metadata?: grpc.Metadata): Observable<HubEvent> {
subscribe(request: DeepPartial<SubscribeRequest>, metadata?: grpc.Metadata): Observable<HubEvent> {
return this.rpc.invoke(HubServiceSubscribeDesc, SubscribeRequest.fromPartial(request), metadata);
}
GetEvent(request: DeepPartial<EventRequest>, metadata?: grpc.Metadata): Promise<HubEvent> {
getEvent(request: DeepPartial<EventRequest>, metadata?: grpc.Metadata): Promise<HubEvent> {
return this.rpc.unary(HubServiceGetEventDesc, EventRequest.fromPartial(request), metadata);
}
GetCast(request: DeepPartial<CastId>, metadata?: grpc.Metadata): Promise<Message> {
getCast(request: DeepPartial<CastId>, metadata?: grpc.Metadata): Promise<Message> {
return this.rpc.unary(HubServiceGetCastDesc, CastId.fromPartial(request), metadata);
}
GetCastsByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
getCastsByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
return this.rpc.unary(HubServiceGetCastsByFidDesc, FidRequest.fromPartial(request), metadata);
}
GetCastsByParent(request: DeepPartial<CastsByParentRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
getCastsByParent(request: DeepPartial<CastsByParentRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
return this.rpc.unary(HubServiceGetCastsByParentDesc, CastsByParentRequest.fromPartial(request), metadata);
}
GetCastsByMention(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
getCastsByMention(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
return this.rpc.unary(HubServiceGetCastsByMentionDesc, FidRequest.fromPartial(request), metadata);
}
GetReaction(request: DeepPartial<ReactionRequest>, metadata?: grpc.Metadata): Promise<Message> {
getReaction(request: DeepPartial<ReactionRequest>, metadata?: grpc.Metadata): Promise<Message> {
return this.rpc.unary(HubServiceGetReactionDesc, ReactionRequest.fromPartial(request), metadata);
}
GetReactionsByFid(request: DeepPartial<ReactionsByFidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
getReactionsByFid(request: DeepPartial<ReactionsByFidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
return this.rpc.unary(HubServiceGetReactionsByFidDesc, ReactionsByFidRequest.fromPartial(request), metadata);
}
GetReactionsByCast(
getReactionsByCast(
request: DeepPartial<ReactionsByCastRequest>,
metadata?: grpc.Metadata
): Promise<MessagesResponse> {
return this.rpc.unary(HubServiceGetReactionsByCastDesc, ReactionsByCastRequest.fromPartial(request), metadata);
}
GetUserData(request: DeepPartial<UserDataRequest>, metadata?: grpc.Metadata): Promise<Message> {
getUserData(request: DeepPartial<UserDataRequest>, metadata?: grpc.Metadata): Promise<Message> {
return this.rpc.unary(HubServiceGetUserDataDesc, UserDataRequest.fromPartial(request), metadata);
}
GetUserDataByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
getUserDataByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
return this.rpc.unary(HubServiceGetUserDataByFidDesc, FidRequest.fromPartial(request), metadata);
}
GetNameRegistryEvent(
getNameRegistryEvent(
request: DeepPartial<NameRegistryEventRequest>,
metadata?: grpc.Metadata
): Promise<NameRegistryEvent> {
return this.rpc.unary(HubServiceGetNameRegistryEventDesc, NameRegistryEventRequest.fromPartial(request), metadata);
}
GetVerification(request: DeepPartial<VerificationRequest>, metadata?: grpc.Metadata): Promise<Message> {
getVerification(request: DeepPartial<VerificationRequest>, metadata?: grpc.Metadata): Promise<Message> {
return this.rpc.unary(HubServiceGetVerificationDesc, VerificationRequest.fromPartial(request), metadata);
}
GetVerificationsByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
getVerificationsByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
return this.rpc.unary(HubServiceGetVerificationsByFidDesc, FidRequest.fromPartial(request), metadata);
}
GetSigner(request: DeepPartial<SignerRequest>, metadata?: grpc.Metadata): Promise<Message> {
getSigner(request: DeepPartial<SignerRequest>, metadata?: grpc.Metadata): Promise<Message> {
return this.rpc.unary(HubServiceGetSignerDesc, SignerRequest.fromPartial(request), metadata);
}
GetSignersByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
getSignersByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
return this.rpc.unary(HubServiceGetSignersByFidDesc, FidRequest.fromPartial(request), metadata);
}
GetIdRegistryEvent(request: DeepPartial<IdRegistryEventRequest>, metadata?: grpc.Metadata): Promise<IdRegistryEvent> {
getIdRegistryEvent(request: DeepPartial<IdRegistryEventRequest>, metadata?: grpc.Metadata): Promise<IdRegistryEvent> {
return this.rpc.unary(HubServiceGetIdRegistryEventDesc, IdRegistryEventRequest.fromPartial(request), metadata);
}
GetIdRegistryEventByAddress(
getIdRegistryEventByAddress(
request: DeepPartial<IdRegistryEventByAddressRequest>,
metadata?: grpc.Metadata
): Promise<IdRegistryEvent> {
@@ -215,53 +215,53 @@ export class HubServiceClientImpl implements HubService {
);
}
GetFids(request: DeepPartial<FidsRequest>, metadata?: grpc.Metadata): Promise<FidsResponse> {
getFids(request: DeepPartial<FidsRequest>, metadata?: grpc.Metadata): Promise<FidsResponse> {
return this.rpc.unary(HubServiceGetFidsDesc, FidsRequest.fromPartial(request), metadata);
}
GetAllCastMessagesByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
getAllCastMessagesByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
return this.rpc.unary(HubServiceGetAllCastMessagesByFidDesc, FidRequest.fromPartial(request), metadata);
}
GetAllReactionMessagesByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
getAllReactionMessagesByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
return this.rpc.unary(HubServiceGetAllReactionMessagesByFidDesc, FidRequest.fromPartial(request), metadata);
}
GetAllVerificationMessagesByFid(
getAllVerificationMessagesByFid(
request: DeepPartial<FidRequest>,
metadata?: grpc.Metadata
): Promise<MessagesResponse> {
return this.rpc.unary(HubServiceGetAllVerificationMessagesByFidDesc, FidRequest.fromPartial(request), metadata);
}
GetAllSignerMessagesByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
getAllSignerMessagesByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
return this.rpc.unary(HubServiceGetAllSignerMessagesByFidDesc, FidRequest.fromPartial(request), metadata);
}
GetAllUserDataMessagesByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
getAllUserDataMessagesByFid(request: DeepPartial<FidRequest>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
return this.rpc.unary(HubServiceGetAllUserDataMessagesByFidDesc, FidRequest.fromPartial(request), metadata);
}
GetInfo(request: DeepPartial<Empty>, metadata?: grpc.Metadata): Promise<HubInfoResponse> {
getInfo(request: DeepPartial<Empty>, metadata?: grpc.Metadata): Promise<HubInfoResponse> {
return this.rpc.unary(HubServiceGetInfoDesc, Empty.fromPartial(request), metadata);
}
GetAllSyncIdsByPrefix(request: DeepPartial<TrieNodePrefix>, metadata?: grpc.Metadata): Promise<SyncIds> {
getAllSyncIdsByPrefix(request: DeepPartial<TrieNodePrefix>, metadata?: grpc.Metadata): Promise<SyncIds> {
return this.rpc.unary(HubServiceGetAllSyncIdsByPrefixDesc, TrieNodePrefix.fromPartial(request), metadata);
}
GetAllMessagesBySyncIds(request: DeepPartial<SyncIds>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
getAllMessagesBySyncIds(request: DeepPartial<SyncIds>, metadata?: grpc.Metadata): Promise<MessagesResponse> {
return this.rpc.unary(HubServiceGetAllMessagesBySyncIdsDesc, SyncIds.fromPartial(request), metadata);
}
GetSyncMetadataByPrefix(
getSyncMetadataByPrefix(
request: DeepPartial<TrieNodePrefix>,
metadata?: grpc.Metadata
): Promise<TrieNodeMetadataResponse> {
return this.rpc.unary(HubServiceGetSyncMetadataByPrefixDesc, TrieNodePrefix.fromPartial(request), metadata);
}
GetSyncSnapshotByPrefix(
getSyncSnapshotByPrefix(
request: DeepPartial<TrieNodePrefix>,
metadata?: grpc.Metadata
): Promise<TrieNodeSnapshotResponse> {
@@ -962,10 +962,10 @@ export const HubServiceGetSyncSnapshotByPrefixDesc: UnaryMethodDefinitionish = {
};
export interface AdminService {
RebuildSyncTrie(request: DeepPartial<Empty>, metadata?: grpc.Metadata): Promise<Empty>;
DeleteAllMessagesFromDb(request: DeepPartial<Empty>, metadata?: grpc.Metadata): Promise<Empty>;
SubmitIdRegistryEvent(request: DeepPartial<IdRegistryEvent>, metadata?: grpc.Metadata): Promise<IdRegistryEvent>;
SubmitNameRegistryEvent(
rebuildSyncTrie(request: DeepPartial<Empty>, metadata?: grpc.Metadata): Promise<Empty>;
deleteAllMessagesFromDb(request: DeepPartial<Empty>, metadata?: grpc.Metadata): Promise<Empty>;
submitIdRegistryEvent(request: DeepPartial<IdRegistryEvent>, metadata?: grpc.Metadata): Promise<IdRegistryEvent>;
submitNameRegistryEvent(
request: DeepPartial<NameRegistryEvent>,
metadata?: grpc.Metadata
): Promise<NameRegistryEvent>;
@@ -976,25 +976,25 @@ export class AdminServiceClientImpl implements AdminService {
constructor(rpc: Rpc) {
this.rpc = rpc;
this.RebuildSyncTrie = this.RebuildSyncTrie.bind(this);
this.DeleteAllMessagesFromDb = this.DeleteAllMessagesFromDb.bind(this);
this.SubmitIdRegistryEvent = this.SubmitIdRegistryEvent.bind(this);
this.SubmitNameRegistryEvent = this.SubmitNameRegistryEvent.bind(this);
this.rebuildSyncTrie = this.rebuildSyncTrie.bind(this);
this.deleteAllMessagesFromDb = this.deleteAllMessagesFromDb.bind(this);
this.submitIdRegistryEvent = this.submitIdRegistryEvent.bind(this);
this.submitNameRegistryEvent = this.submitNameRegistryEvent.bind(this);
}
RebuildSyncTrie(request: DeepPartial<Empty>, metadata?: grpc.Metadata): Promise<Empty> {
rebuildSyncTrie(request: DeepPartial<Empty>, metadata?: grpc.Metadata): Promise<Empty> {
return this.rpc.unary(AdminServiceRebuildSyncTrieDesc, Empty.fromPartial(request), metadata);
}
DeleteAllMessagesFromDb(request: DeepPartial<Empty>, metadata?: grpc.Metadata): Promise<Empty> {
deleteAllMessagesFromDb(request: DeepPartial<Empty>, metadata?: grpc.Metadata): Promise<Empty> {
return this.rpc.unary(AdminServiceDeleteAllMessagesFromDbDesc, Empty.fromPartial(request), metadata);
}
SubmitIdRegistryEvent(request: DeepPartial<IdRegistryEvent>, metadata?: grpc.Metadata): Promise<IdRegistryEvent> {
submitIdRegistryEvent(request: DeepPartial<IdRegistryEvent>, metadata?: grpc.Metadata): Promise<IdRegistryEvent> {
return this.rpc.unary(AdminServiceSubmitIdRegistryEventDesc, IdRegistryEvent.fromPartial(request), metadata);
}
SubmitNameRegistryEvent(
submitNameRegistryEvent(
request: DeepPartial<NameRegistryEvent>,
metadata?: grpc.Metadata
): Promise<NameRegistryEvent> {