From 7fd076bd0d2893d4823f47d3730efc42c942eabf Mon Sep 17 00:00:00 2001 From: Matias Fontanini Date: Thu, 13 Mar 2025 09:30:59 -0700 Subject: [PATCH 1/2] feat: include leader public key when adding funds --- .../src/gen-proto/nillion/auth/v1/public_key_pb.ts | 2 +- .../src/gen-proto/nillion/auth/v1/token_pb.ts | 2 +- client-vms/src/gen-proto/nillion/auth/v1/user_pb.ts | 2 +- .../src/gen-proto/nillion/compute/v1/invoke_pb.ts | 2 +- .../src/gen-proto/nillion/compute/v1/retrieve_pb.ts | 2 +- .../src/gen-proto/nillion/compute/v1/service_pb.ts | 2 +- .../src/gen-proto/nillion/compute/v1/stream_pb.ts | 2 +- .../nillion/leader_queries/v1/pool_status_pb.ts | 2 +- .../nillion/leader_queries/v1/service_pb.ts | 2 +- .../gen-proto/nillion/membership/v1/cluster_pb.ts | 2 +- .../gen-proto/nillion/membership/v1/service_pb.ts | 2 +- .../gen-proto/nillion/membership/v1/version_pb.ts | 2 +- client-vms/src/gen-proto/nillion/meta/v1/tx_pb.ts | 2 +- .../src/gen-proto/nillion/payments/v1/balance_pb.ts | 13 +++++++++++-- .../src/gen-proto/nillion/payments/v1/config_pb.ts | 2 +- .../src/gen-proto/nillion/payments/v1/quote_pb.ts | 2 +- .../src/gen-proto/nillion/payments/v1/receipt_pb.ts | 2 +- .../src/gen-proto/nillion/payments/v1/service_pb.ts | 2 +- .../nillion/permissions/v1/overwrite_pb.ts | 2 +- .../nillion/permissions/v1/permissions_pb.ts | 2 +- .../gen-proto/nillion/permissions/v1/retrieve_pb.ts | 2 +- .../gen-proto/nillion/permissions/v1/service_pb.ts | 2 +- .../gen-proto/nillion/permissions/v1/update_pb.ts | 2 +- .../nillion/preprocessing/v1/cleanup_pb.ts | 2 +- .../nillion/preprocessing/v1/element_pb.ts | 2 +- .../nillion/preprocessing/v1/generate_pb.ts | 2 +- .../nillion/preprocessing/v1/material_pb.ts | 2 +- .../nillion/preprocessing/v1/service_pb.ts | 2 +- .../gen-proto/nillion/preprocessing/v1/stream_pb.ts | 2 +- .../src/gen-proto/nillion/programs/v1/service_pb.ts | 2 +- .../src/gen-proto/nillion/programs/v1/store_pb.ts | 2 +- .../src/gen-proto/nillion/values/v1/delete_pb.ts | 2 +- .../src/gen-proto/nillion/values/v1/retrieve_pb.ts | 2 +- .../src/gen-proto/nillion/values/v1/service_pb.ts | 2 +- .../src/gen-proto/nillion/values/v1/store_pb.ts | 2 +- .../src/gen-proto/nillion/values/v1/value_pb.ts | 2 +- client-vms/src/payment/builder.ts | 8 ++++++++ client-vms/src/payment/client.ts | 5 +++++ client-vms/src/vm/builder.ts | 7 +++++++ nilvm | 2 +- 40 files changed, 67 insertions(+), 38 deletions(-) diff --git a/client-vms/src/gen-proto/nillion/auth/v1/public_key_pb.ts b/client-vms/src/gen-proto/nillion/auth/v1/public_key_pb.ts index bd711f82..f3a8daca 100644 --- a/client-vms/src/gen-proto/nillion/auth/v1/public_key_pb.ts +++ b/client-vms/src/gen-proto/nillion/auth/v1/public_key_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/auth/v1/token_pb.ts b/client-vms/src/gen-proto/nillion/auth/v1/token_pb.ts index 93ff96ac..af7f0074 100644 --- a/client-vms/src/gen-proto/nillion/auth/v1/token_pb.ts +++ b/client-vms/src/gen-proto/nillion/auth/v1/token_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/auth/v1/user_pb.ts b/client-vms/src/gen-proto/nillion/auth/v1/user_pb.ts index c14efc96..8582bd7a 100644 --- a/client-vms/src/gen-proto/nillion/auth/v1/user_pb.ts +++ b/client-vms/src/gen-proto/nillion/auth/v1/user_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/compute/v1/invoke_pb.ts b/client-vms/src/gen-proto/nillion/compute/v1/invoke_pb.ts index 8391b153..b1a24053 100644 --- a/client-vms/src/gen-proto/nillion/compute/v1/invoke_pb.ts +++ b/client-vms/src/gen-proto/nillion/compute/v1/invoke_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/compute/v1/retrieve_pb.ts b/client-vms/src/gen-proto/nillion/compute/v1/retrieve_pb.ts index f8ca4676..43520552 100644 --- a/client-vms/src/gen-proto/nillion/compute/v1/retrieve_pb.ts +++ b/client-vms/src/gen-proto/nillion/compute/v1/retrieve_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/compute/v1/service_pb.ts b/client-vms/src/gen-proto/nillion/compute/v1/service_pb.ts index b4bffd6d..50855b31 100644 --- a/client-vms/src/gen-proto/nillion/compute/v1/service_pb.ts +++ b/client-vms/src/gen-proto/nillion/compute/v1/service_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/compute/v1/stream_pb.ts b/client-vms/src/gen-proto/nillion/compute/v1/stream_pb.ts index 5e0aca83..1ce2bf89 100644 --- a/client-vms/src/gen-proto/nillion/compute/v1/stream_pb.ts +++ b/client-vms/src/gen-proto/nillion/compute/v1/stream_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/leader_queries/v1/pool_status_pb.ts b/client-vms/src/gen-proto/nillion/leader_queries/v1/pool_status_pb.ts index 30ee3784..132409b1 100644 --- a/client-vms/src/gen-proto/nillion/leader_queries/v1/pool_status_pb.ts +++ b/client-vms/src/gen-proto/nillion/leader_queries/v1/pool_status_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/leader_queries/v1/service_pb.ts b/client-vms/src/gen-proto/nillion/leader_queries/v1/service_pb.ts index fafd29dd..ae106dc4 100644 --- a/client-vms/src/gen-proto/nillion/leader_queries/v1/service_pb.ts +++ b/client-vms/src/gen-proto/nillion/leader_queries/v1/service_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/membership/v1/cluster_pb.ts b/client-vms/src/gen-proto/nillion/membership/v1/cluster_pb.ts index f9195992..752e4412 100644 --- a/client-vms/src/gen-proto/nillion/membership/v1/cluster_pb.ts +++ b/client-vms/src/gen-proto/nillion/membership/v1/cluster_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/membership/v1/service_pb.ts b/client-vms/src/gen-proto/nillion/membership/v1/service_pb.ts index 4344e673..8c1e0d30 100644 --- a/client-vms/src/gen-proto/nillion/membership/v1/service_pb.ts +++ b/client-vms/src/gen-proto/nillion/membership/v1/service_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/membership/v1/version_pb.ts b/client-vms/src/gen-proto/nillion/membership/v1/version_pb.ts index d47c59ac..cced34e2 100644 --- a/client-vms/src/gen-proto/nillion/membership/v1/version_pb.ts +++ b/client-vms/src/gen-proto/nillion/membership/v1/version_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/meta/v1/tx_pb.ts b/client-vms/src/gen-proto/nillion/meta/v1/tx_pb.ts index ab8f2ceb..fdc0f3bb 100644 --- a/client-vms/src/gen-proto/nillion/meta/v1/tx_pb.ts +++ b/client-vms/src/gen-proto/nillion/meta/v1/tx_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/payments/v1/balance_pb.ts b/client-vms/src/gen-proto/nillion/payments/v1/balance_pb.ts index 1517a74c..ac8e2dd7 100644 --- a/client-vms/src/gen-proto/nillion/payments/v1/balance_pb.ts +++ b/client-vms/src/gen-proto/nillion/payments/v1/balance_pb.ts @@ -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 */ @@ -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. @@ -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; }; /** diff --git a/client-vms/src/gen-proto/nillion/payments/v1/config_pb.ts b/client-vms/src/gen-proto/nillion/payments/v1/config_pb.ts index 19d0db31..c2ed9442 100644 --- a/client-vms/src/gen-proto/nillion/payments/v1/config_pb.ts +++ b/client-vms/src/gen-proto/nillion/payments/v1/config_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/payments/v1/quote_pb.ts b/client-vms/src/gen-proto/nillion/payments/v1/quote_pb.ts index 04a38749..6b00f7b8 100644 --- a/client-vms/src/gen-proto/nillion/payments/v1/quote_pb.ts +++ b/client-vms/src/gen-proto/nillion/payments/v1/quote_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/payments/v1/receipt_pb.ts b/client-vms/src/gen-proto/nillion/payments/v1/receipt_pb.ts index b399e236..0c605a5f 100644 --- a/client-vms/src/gen-proto/nillion/payments/v1/receipt_pb.ts +++ b/client-vms/src/gen-proto/nillion/payments/v1/receipt_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/payments/v1/service_pb.ts b/client-vms/src/gen-proto/nillion/payments/v1/service_pb.ts index 6c8e4e47..7c7cd944 100644 --- a/client-vms/src/gen-proto/nillion/payments/v1/service_pb.ts +++ b/client-vms/src/gen-proto/nillion/payments/v1/service_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/permissions/v1/overwrite_pb.ts b/client-vms/src/gen-proto/nillion/permissions/v1/overwrite_pb.ts index 1796b625..ea6d0e93 100644 --- a/client-vms/src/gen-proto/nillion/permissions/v1/overwrite_pb.ts +++ b/client-vms/src/gen-proto/nillion/permissions/v1/overwrite_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/permissions/v1/permissions_pb.ts b/client-vms/src/gen-proto/nillion/permissions/v1/permissions_pb.ts index 42db7456..47f4d3e2 100644 --- a/client-vms/src/gen-proto/nillion/permissions/v1/permissions_pb.ts +++ b/client-vms/src/gen-proto/nillion/permissions/v1/permissions_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/permissions/v1/retrieve_pb.ts b/client-vms/src/gen-proto/nillion/permissions/v1/retrieve_pb.ts index aabb05dc..56fb3f21 100644 --- a/client-vms/src/gen-proto/nillion/permissions/v1/retrieve_pb.ts +++ b/client-vms/src/gen-proto/nillion/permissions/v1/retrieve_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/permissions/v1/service_pb.ts b/client-vms/src/gen-proto/nillion/permissions/v1/service_pb.ts index a28b2cf9..39185c66 100644 --- a/client-vms/src/gen-proto/nillion/permissions/v1/service_pb.ts +++ b/client-vms/src/gen-proto/nillion/permissions/v1/service_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/permissions/v1/update_pb.ts b/client-vms/src/gen-proto/nillion/permissions/v1/update_pb.ts index 93098a2c..c2016f45 100644 --- a/client-vms/src/gen-proto/nillion/permissions/v1/update_pb.ts +++ b/client-vms/src/gen-proto/nillion/permissions/v1/update_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/preprocessing/v1/cleanup_pb.ts b/client-vms/src/gen-proto/nillion/preprocessing/v1/cleanup_pb.ts index c307be0d..63f3dae5 100644 --- a/client-vms/src/gen-proto/nillion/preprocessing/v1/cleanup_pb.ts +++ b/client-vms/src/gen-proto/nillion/preprocessing/v1/cleanup_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/preprocessing/v1/element_pb.ts b/client-vms/src/gen-proto/nillion/preprocessing/v1/element_pb.ts index 99cf9a64..b7d24faf 100644 --- a/client-vms/src/gen-proto/nillion/preprocessing/v1/element_pb.ts +++ b/client-vms/src/gen-proto/nillion/preprocessing/v1/element_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/preprocessing/v1/generate_pb.ts b/client-vms/src/gen-proto/nillion/preprocessing/v1/generate_pb.ts index f8cdadde..ec834807 100644 --- a/client-vms/src/gen-proto/nillion/preprocessing/v1/generate_pb.ts +++ b/client-vms/src/gen-proto/nillion/preprocessing/v1/generate_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/preprocessing/v1/material_pb.ts b/client-vms/src/gen-proto/nillion/preprocessing/v1/material_pb.ts index 92d63313..63bab5af 100644 --- a/client-vms/src/gen-proto/nillion/preprocessing/v1/material_pb.ts +++ b/client-vms/src/gen-proto/nillion/preprocessing/v1/material_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/preprocessing/v1/service_pb.ts b/client-vms/src/gen-proto/nillion/preprocessing/v1/service_pb.ts index cd391070..4257ab9f 100644 --- a/client-vms/src/gen-proto/nillion/preprocessing/v1/service_pb.ts +++ b/client-vms/src/gen-proto/nillion/preprocessing/v1/service_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/preprocessing/v1/stream_pb.ts b/client-vms/src/gen-proto/nillion/preprocessing/v1/stream_pb.ts index f92071bf..daa6eae4 100644 --- a/client-vms/src/gen-proto/nillion/preprocessing/v1/stream_pb.ts +++ b/client-vms/src/gen-proto/nillion/preprocessing/v1/stream_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/programs/v1/service_pb.ts b/client-vms/src/gen-proto/nillion/programs/v1/service_pb.ts index 2a66b392..ef714410 100644 --- a/client-vms/src/gen-proto/nillion/programs/v1/service_pb.ts +++ b/client-vms/src/gen-proto/nillion/programs/v1/service_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/programs/v1/store_pb.ts b/client-vms/src/gen-proto/nillion/programs/v1/store_pb.ts index 087273ed..d39a35aa 100644 --- a/client-vms/src/gen-proto/nillion/programs/v1/store_pb.ts +++ b/client-vms/src/gen-proto/nillion/programs/v1/store_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/values/v1/delete_pb.ts b/client-vms/src/gen-proto/nillion/values/v1/delete_pb.ts index ce10a496..59ecf08b 100644 --- a/client-vms/src/gen-proto/nillion/values/v1/delete_pb.ts +++ b/client-vms/src/gen-proto/nillion/values/v1/delete_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/values/v1/retrieve_pb.ts b/client-vms/src/gen-proto/nillion/values/v1/retrieve_pb.ts index fe7a1a45..64b1ac15 100644 --- a/client-vms/src/gen-proto/nillion/values/v1/retrieve_pb.ts +++ b/client-vms/src/gen-proto/nillion/values/v1/retrieve_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/values/v1/service_pb.ts b/client-vms/src/gen-proto/nillion/values/v1/service_pb.ts index 5b89f7d3..5371f9bc 100644 --- a/client-vms/src/gen-proto/nillion/values/v1/service_pb.ts +++ b/client-vms/src/gen-proto/nillion/values/v1/service_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/values/v1/store_pb.ts b/client-vms/src/gen-proto/nillion/values/v1/store_pb.ts index 2816617c..049e4b57 100644 --- a/client-vms/src/gen-proto/nillion/values/v1/store_pb.ts +++ b/client-vms/src/gen-proto/nillion/values/v1/store_pb.ts @@ -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 */ diff --git a/client-vms/src/gen-proto/nillion/values/v1/value_pb.ts b/client-vms/src/gen-proto/nillion/values/v1/value_pb.ts index 588abe22..69aa2c1d 100644 --- a/client-vms/src/gen-proto/nillion/values/v1/value_pb.ts +++ b/client-vms/src/gen-proto/nillion/values/v1/value_pb.ts @@ -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 */ diff --git a/client-vms/src/payment/builder.ts b/client-vms/src/payment/builder.ts index f3ad6adf..e0a748bb 100644 --- a/client-vms/src/payment/builder.ts +++ b/client-vms/src/payment/builder.ts @@ -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"; @@ -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; @@ -49,6 +51,11 @@ export class PaymentClientBuilder { return this; } + leaderPublicKey(publicKey: PublicKey): this { + this._leaderPublicKey = publicKey; + return this; + } + async build(): Promise { const { signer, chainUrl, transport, id, paymentMode } = PaymentClientBuilderConfig.parse({ @@ -57,6 +64,7 @@ export class PaymentClientBuilder { transport: this._transport, id: this._id, paymentMode: this._paymentMode, + leaderPublicKey: this._leaderPublicKey, }); const registry = new Registry(); diff --git a/client-vms/src/payment/client.ts b/client-vms/src/payment/client.ts index 3cb86a53..6bdbfea5 100644 --- a/client-vms/src/payment/client.ts +++ b/client-vms/src/payment/client.ts @@ -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, @@ -51,6 +52,7 @@ export const PaymentClientConfig = z.object({ ), leader: GrpcClient, paymentMode: z.nativeEnum(PaymentMode), + leaderPublicKey: z.custom(), }); export type PaymentClientConfig = z.infer; @@ -60,12 +62,14 @@ export class PaymentClient { private readonly chain: SigningStargateClient; private readonly leader: Client; 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; this.paymentMode = config.paymentMode; + this.leaderPublicKey = config.leaderPublicKey; } get id(): UserId { @@ -213,6 +217,7 @@ export class PaymentClient { create(AddFundsPayloadSchema, { recipient: this.id.toProto(), nonce: randomBytes(32), + leaderPublicKey: this.leaderPublicKey, }), ); return pipe( diff --git a/client-vms/src/vm/builder.ts b/client-vms/src/vm/builder.ts index 213598d8..14f9141b 100644 --- a/client-vms/src/vm/builder.ts +++ b/client-vms/src/vm/builder.ts @@ -196,6 +196,12 @@ export class VmClientBuilder { } } + if ( + !leaderClusterInfo.publicKeys || + !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) @@ -203,6 +209,7 @@ export class VmClientBuilder { .id(user_id) .signer(signer) .leader(leader.transport) + .leaderPublicKey(leaderClusterInfo.publicKeys?.authentication) .build(); const config = VmClientConfig.parse({ diff --git a/nilvm b/nilvm index d53b7295..5bcbfc46 160000 --- a/nilvm +++ b/nilvm @@ -1 +1 @@ -Subproject commit d53b7295b7cdb3376af1186aa96915768a01223c +Subproject commit 5bcbfc464eab01b0dbb83a0c01317e70aa7a9e79 From 12d565d403daa2a91bc8d3f0a65421374dd6960d Mon Sep 17 00:00:00 2001 From: Matias Fontanini Date: Wed, 19 Mar 2025 08:48:23 -0700 Subject: [PATCH 2/2] chore: use type narrowing around nested object access --- client-vms/src/vm/builder.ts | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/client-vms/src/vm/builder.ts b/client-vms/src/vm/builder.ts index 14f9141b..4a0d1e3a 100644 --- a/client-vms/src/vm/builder.ts +++ b/client-vms/src/vm/builder.ts @@ -196,10 +196,7 @@ export class VmClientBuilder { } } - if ( - !leaderClusterInfo.publicKeys || - !leaderClusterInfo.publicKeys.authentication - ) + if (!leaderClusterInfo.publicKeys?.authentication) throw new Error("Leader public key not in cluster details"); const user_id = UserId.from(tokenAuthManager.publicKey); @@ -209,7 +206,7 @@ export class VmClientBuilder { .id(user_id) .signer(signer) .leader(leader.transport) - .leaderPublicKey(leaderClusterInfo.publicKeys?.authentication) + .leaderPublicKey(leaderClusterInfo.publicKeys.authentication) .build(); const config = VmClientConfig.parse({