Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion client-vms/src/gen-proto/nillion/auth/v1/public_key_pb.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/auth/v1/public_key.proto (package nillion.auth.v1.public_key, syntax proto3)
/* eslint-disable */

Expand Down
2 changes: 1 addition & 1 deletion client-vms/src/gen-proto/nillion/auth/v1/token_pb.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/auth/v1/token.proto (package nillion.auth.v1.token, syntax proto3)
/* eslint-disable */

Expand Down
2 changes: 1 addition & 1 deletion client-vms/src/gen-proto/nillion/auth/v1/user_pb.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/auth/v1/user.proto (package nillion.auth.v1.user, syntax proto3)
/* eslint-disable */

Expand Down
2 changes: 1 addition & 1 deletion client-vms/src/gen-proto/nillion/compute/v1/invoke_pb.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/compute/v1/invoke.proto (package nillion.compute.v1.invoke, syntax proto3)
/* eslint-disable */

Expand Down
2 changes: 1 addition & 1 deletion client-vms/src/gen-proto/nillion/compute/v1/retrieve_pb.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/compute/v1/retrieve.proto (package nillion.compute.v1.retrieve, syntax proto3)
/* eslint-disable */

Expand Down
2 changes: 1 addition & 1 deletion client-vms/src/gen-proto/nillion/compute/v1/service_pb.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/compute/v1/service.proto (package nillion.compute.v1, syntax proto3)
/* eslint-disable */

Expand Down
2 changes: 1 addition & 1 deletion client-vms/src/gen-proto/nillion/compute/v1/stream_pb.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/compute/v1/stream.proto (package nillion.compute.v1.stream, syntax proto3)
/* eslint-disable */

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/leader_queries/v1/pool_status.proto (package nillion.leader_queries.v1.pool_status, syntax proto3)
/* eslint-disable */

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/leader_queries/v1/service.proto (package nillion.leader_queries.v1, syntax proto3)
/* eslint-disable */

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/membership/v1/cluster.proto (package nillion.membership.v1.cluster, syntax proto3)
/* eslint-disable */

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/membership/v1/service.proto (package nillion.membership.v1, syntax proto3)
/* eslint-disable */

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/membership/v1/version.proto (package nillion.membership.v1.version, syntax proto3)
/* eslint-disable */

Expand Down
2 changes: 1 addition & 1 deletion client-vms/src/gen-proto/nillion/meta/v1/tx_pb.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/meta/v1/tx.proto (package nillion.meta.v1, syntax proto3)
/* eslint-disable */

Expand Down
13 changes: 11 additions & 2 deletions client-vms/src/gen-proto/nillion/payments/v1/balance_pb.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/payments/v1/balance.proto (package nillion.payments.v1.balance, syntax proto3)
/* eslint-disable */

Expand All @@ -8,13 +8,15 @@ import type { Timestamp } from "@bufbuild/protobuf/wkt";
import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
import type { UserId } from "../../auth/v1/user_pb";
import { file_nillion_auth_v1_user } from "../../auth/v1/user_pb";
import type { PublicKey } from "../../auth/v1/public_key_pb";
import { file_nillion_auth_v1_public_key } from "../../auth/v1/public_key_pb";
import type { Message } from "@bufbuild/protobuf";

/**
* Describes the file nillion/payments/v1/balance.proto.
*/
export const file_nillion_payments_v1_balance: GenFile = /*@__PURE__*/
fileDesc("CiFuaWxsaW9uL3BheW1lbnRzL3YxL2JhbGFuY2UucHJvdG8SG25pbGxpb24ucGF5bWVudHMudjEuYmFsYW5jZSKLAQoWQWNjb3VudEJhbGFuY2VSZXNwb25zZRIPCgdiYWxhbmNlGAEgASgEEjAKDGxhc3RfdXBkYXRlZBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKZXhwaXJlc19hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiMwoPQWRkRnVuZHNSZXF1ZXN0Eg8KB3BheWxvYWQYASABKAwSDwoHdHhfaGFzaBgCIAEoCSJRCg9BZGRGdW5kc1BheWxvYWQSLwoJcmVjaXBpZW50GAEgASgLMhwubmlsbGlvbi5hdXRoLnYxLnVzZXIuVXNlcklkEg0KBW5vbmNlGAIgASgMQr8BCh9jb20ubmlsbGlvbi5wYXltZW50cy52MS5iYWxhbmNlQgxCYWxhbmNlUHJvdG9QAaICBE5QVkKqAhtOaWxsaW9uLlBheW1lbnRzLlYxLkJhbGFuY2XKAhtOaWxsaW9uXFBheW1lbnRzXFYxXEJhbGFuY2XiAidOaWxsaW9uXFBheW1lbnRzXFYxXEJhbGFuY2VcR1BCTWV0YWRhdGHqAh5OaWxsaW9uOjpQYXltZW50czo6VjE6OkJhbGFuY2ViBnByb3RvMw", [file_google_protobuf_timestamp, file_nillion_auth_v1_user]);
fileDesc("CiFuaWxsaW9uL3BheW1lbnRzL3YxL2JhbGFuY2UucHJvdG8SG25pbGxpb24ucGF5bWVudHMudjEuYmFsYW5jZSKLAQoWQWNjb3VudEJhbGFuY2VSZXNwb25zZRIPCgdiYWxhbmNlGAEgASgEEjAKDGxhc3RfdXBkYXRlZBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKZXhwaXJlc19hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiMwoPQWRkRnVuZHNSZXF1ZXN0Eg8KB3BheWxvYWQYASABKAwSDwoHdHhfaGFzaBgCIAEoCSKTAQoPQWRkRnVuZHNQYXlsb2FkEi8KCXJlY2lwaWVudBgBIAEoCzIcLm5pbGxpb24uYXV0aC52MS51c2VyLlVzZXJJZBINCgVub25jZRgCIAEoDBJAChFsZWFkZXJfcHVibGljX2tleRgDIAEoCzIlLm5pbGxpb24uYXV0aC52MS5wdWJsaWNfa2V5LlB1YmxpY0tleUK/AQofY29tLm5pbGxpb24ucGF5bWVudHMudjEuYmFsYW5jZUIMQmFsYW5jZVByb3RvUAGiAgROUFZCqgIbTmlsbGlvbi5QYXltZW50cy5WMS5CYWxhbmNlygIbTmlsbGlvblxQYXltZW50c1xWMVxCYWxhbmNl4gInTmlsbGlvblxQYXltZW50c1xWMVxCYWxhbmNlXEdQQk1ldGFkYXRh6gIeTmlsbGlvbjo6UGF5bWVudHM6OlYxOjpCYWxhbmNlYgZwcm90bzM", [file_google_protobuf_timestamp, file_nillion_auth_v1_user, file_nillion_auth_v1_public_key]);

/**
* A response to a request to get the user account's balance.
Expand Down Expand Up @@ -98,6 +100,13 @@ export type AddFundsPayload = Message<"nillion.payments.v1.balance.AddFundsPaylo
* @generated from field: bytes nonce = 2;
*/
nonce: Uint8Array;

/**
* The public key of the leader node that funds are being sent to.
*
* @generated from field: nillion.auth.v1.public_key.PublicKey leader_public_key = 3;
*/
leaderPublicKey?: PublicKey;
};

/**
Expand Down
2 changes: 1 addition & 1 deletion client-vms/src/gen-proto/nillion/payments/v1/config_pb.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/payments/v1/config.proto (package nillion.payments.v1.config, syntax proto3)
/* eslint-disable */

Expand Down
2 changes: 1 addition & 1 deletion client-vms/src/gen-proto/nillion/payments/v1/quote_pb.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/payments/v1/quote.proto (package nillion.payments.v1.quote, syntax proto3)
/* eslint-disable */

Expand Down
2 changes: 1 addition & 1 deletion client-vms/src/gen-proto/nillion/payments/v1/receipt_pb.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/payments/v1/receipt.proto (package nillion.payments.v1.receipt, syntax proto3)
/* eslint-disable */

Expand Down
2 changes: 1 addition & 1 deletion client-vms/src/gen-proto/nillion/payments/v1/service_pb.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/payments/v1/service.proto (package nillion.payments.v1, syntax proto3)
/* eslint-disable */

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/permissions/v1/overwrite.proto (package nillion.permissions.v1.overwrite, syntax proto3)
/* eslint-disable */

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/permissions/v1/permissions.proto (package nillion.permissions.v1.permissions, syntax proto3)
/* eslint-disable */

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/permissions/v1/retrieve.proto (package nillion.permissions.v1.retrieve, syntax proto3)
/* eslint-disable */

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/permissions/v1/service.proto (package nillion.permissions.v1, syntax proto3)
/* eslint-disable */

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/permissions/v1/update.proto (package nillion.permissions.v1.update, syntax proto3)
/* eslint-disable */

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/preprocessing/v1/cleanup.proto (package nillion.preprocessing.v1.cleanup, syntax proto3)
/* eslint-disable */

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/preprocessing/v1/element.proto (package nillion.preprocessing.v1.element, syntax proto3)
/* eslint-disable */

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/preprocessing/v1/generate.proto (package nillion.preprocessing.v1.generate, syntax proto3)
/* eslint-disable */

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/preprocessing/v1/material.proto (package nillion.preprocessing.v1.material, syntax proto3)
/* eslint-disable */

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/preprocessing/v1/service.proto (package nillion.preprocessing.v1, syntax proto3)
/* eslint-disable */

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/preprocessing/v1/stream.proto (package nillion.preprocessing.v1.stream, syntax proto3)
/* eslint-disable */

Expand Down
2 changes: 1 addition & 1 deletion client-vms/src/gen-proto/nillion/programs/v1/service_pb.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/programs/v1/service.proto (package nillion.programs.v1, syntax proto3)
/* eslint-disable */

Expand Down
2 changes: 1 addition & 1 deletion client-vms/src/gen-proto/nillion/programs/v1/store_pb.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/programs/v1/store.proto (package nillion.programs.v1.store, syntax proto3)
/* eslint-disable */

Expand Down
2 changes: 1 addition & 1 deletion client-vms/src/gen-proto/nillion/values/v1/delete_pb.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/values/v1/delete.proto (package nillion.values.v1.delete, syntax proto3)
/* eslint-disable */

Expand Down
2 changes: 1 addition & 1 deletion client-vms/src/gen-proto/nillion/values/v1/retrieve_pb.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/values/v1/retrieve.proto (package nillion.values.v1.retrieve, syntax proto3)
/* eslint-disable */

Expand Down
2 changes: 1 addition & 1 deletion client-vms/src/gen-proto/nillion/values/v1/service_pb.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/values/v1/service.proto (package nillion.values.v1, syntax proto3)
/* eslint-disable */

Expand Down
2 changes: 1 addition & 1 deletion client-vms/src/gen-proto/nillion/values/v1/store_pb.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/values/v1/store.proto (package nillion.values.v1.store, syntax proto3)
/* eslint-disable */

Expand Down
2 changes: 1 addition & 1 deletion client-vms/src/gen-proto/nillion/values/v1/value_pb.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file nillion/values/v1/value.proto (package nillion.values.v1.value, syntax proto3)
/* eslint-disable */

Expand Down
8 changes: 8 additions & 0 deletions client-vms/src/payment/builder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { createClient } from "@connectrpc/connect";
import { type OfflineSigner, Registry } from "@cosmjs/proto-signing";
import { GasPrice, SigningStargateClient } from "@cosmjs/stargate";
import { z } from "zod";
import type { PublicKey } from "#/gen-proto/nillion/auth/v1/public_key_pb";
import { Payments } from "#/gen-proto/nillion/payments/v1/service_pb";
import { UserId } from "#/types";
import { GrpcTransport, OfflineSignerSchema } from "#/types/grpc";
Expand All @@ -23,6 +24,7 @@ export class PaymentClientBuilder {
private _transport?: GrpcTransport;
private _id?: UserId;
private _paymentMode?: PaymentMode;
private _leaderPublicKey?: PublicKey;

chainUrl(url: string): this {
this._chainUrl = url;
Expand All @@ -49,6 +51,11 @@ export class PaymentClientBuilder {
return this;
}

leaderPublicKey(publicKey: PublicKey): this {
this._leaderPublicKey = publicKey;
return this;
}

async build(): Promise<PaymentClient> {
const { signer, chainUrl, transport, id, paymentMode } =
PaymentClientBuilderConfig.parse({
Expand All @@ -57,6 +64,7 @@ export class PaymentClientBuilder {
transport: this._transport,
id: this._id,
paymentMode: this._paymentMode,
leaderPublicKey: this._leaderPublicKey,
});

const registry = new Registry();
Expand Down
5 changes: 5 additions & 0 deletions client-vms/src/payment/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { randomBytes } from "@noble/hashes/utils";
import { Effect as E, pipe } from "effect";
import { UnknownException } from "effect/Cause";
import { z } from "zod";
import type { PublicKey } from "#/gen-proto/nillion/auth/v1/public_key_pb";
import {
type MsgPayFor,
MsgPayForSchema,
Expand Down Expand Up @@ -51,6 +52,7 @@ export const PaymentClientConfig = z.object({
),
leader: GrpcClient,
paymentMode: z.nativeEnum(PaymentMode),
leaderPublicKey: z.custom<PublicKey>(),
});

export type PaymentClientConfig = z.infer<typeof PaymentClientConfig>;
Expand All @@ -60,12 +62,14 @@ export class PaymentClient {
private readonly chain: SigningStargateClient;
private readonly leader: Client<typeof Payments>;
private readonly paymentMode: PaymentMode;
private readonly leaderPublicKey: PublicKey;

constructor(private readonly config: PaymentClientConfig) {
this.address = config.address;
this.chain = config.chain;
this.leader = config.leader as Client<typeof Payments>;
this.paymentMode = config.paymentMode;
this.leaderPublicKey = config.leaderPublicKey;
}

get id(): UserId {
Expand Down Expand Up @@ -213,6 +217,7 @@ export class PaymentClient {
create(AddFundsPayloadSchema, {
recipient: this.id.toProto(),
nonce: randomBytes(32),
leaderPublicKey: this.leaderPublicKey,
}),
);
return pipe(
Expand Down
4 changes: 4 additions & 0 deletions client-vms/src/vm/builder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -196,13 +196,17 @@ export class VmClientBuilder {
}
}

if (!leaderClusterInfo.publicKeys?.authentication)
throw new Error("Leader public key not in cluster details");

const user_id = UserId.from(tokenAuthManager.publicKey);
const payer = await new PaymentClientBuilder()
.chainUrl(chainUrl)
.paymentMode(supportedPaymentMode)
.id(user_id)
.signer(signer)
.leader(leader.transport)
.leaderPublicKey(leaderClusterInfo.publicKeys.authentication)
.build();

const config = VmClientConfig.parse({
Expand Down