Skip to content
Merged
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
10 changes: 9 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,15 @@ PRIVATE_KEY_1=abc123456789deadbeef...

## API

The gRPC API is defined in [`proto/kms/v1/signer.proto`](proto/kms/v1/signer.proto):
### Generate protobufs (Rust)
The Rust server uses `tonic-build`. Rebuilding the project regenerates server/client code:

```sh
cargo clean
cargo build
```

The gRPC API is defined in [`proto/fkms/v1/signer.proto`](proto/fkms/v1/signer.proto):

- `SignEvm(SignEvmRequest)`: Sign a message with a given address
- `GetSignerAddresses(GetSignerAddressesRequest)`: List available signer addresses
Expand Down
6 changes: 3 additions & 3 deletions build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ fn main() {
tonic_build::configure()
.build_server(true)
.build_client(false)
.file_descriptor_set_path(out_dir.join("kms_v1_descriptor.bin"))
.file_descriptor_set_path(out_dir.join("fkms_v1_descriptor.bin"))
.compile_protos(
&["proto/kms/v1/signer.proto"], // specify the proto files to compile
&["proto/kms"], // specify the root location to search proto dependencies
&["proto/fkms/v1/signer.proto"], // specify the proto files to compile
&["proto/fkms"], // specify the root location to search proto dependencies
)
.unwrap();
}
4 changes: 2 additions & 2 deletions proto/kms/v1/signer.proto → proto/fkms/v1/signer.proto
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
syntax = "proto3";

package kms.v1;
package fkms.v1;

service KmsEvmService {
service FkmsService {
rpc SignEvm(SignEvmRequest) returns (SignEvmResponse);
rpc GetSignerAddresses(GetSignerAddressesRequest) returns (GetSignerAddressesResponse);
}
Expand Down
6 changes: 3 additions & 3 deletions src/commands/start.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use crate::commands::utils::{get_config, get_local_signers_from_config};
use crate::proto;
use crate::proto::kms::v1::kms_evm_service_server::KmsEvmServiceServer;
use crate::proto::fkms::v1::fkms_service_server::FkmsServiceServer;
use crate::server::builder::ServerBuilder;
use crate::signer::EvmSigner;
use std::net::SocketAddr;
Expand Down Expand Up @@ -36,7 +36,7 @@ pub async fn start(path: PathBuf) -> anyhow::Result<()> {

let server = builder.build();
let reflection_server = tonic_reflection::server::Builder::configure()
.register_encoded_file_descriptor_set(proto::kms::v1::FILE_DESCRIPTOR_SET)
.register_encoded_file_descriptor_set(proto::fkms::v1::FILE_DESCRIPTOR_SET)
.build_v1()?;

info!(
Expand All @@ -45,7 +45,7 @@ pub async fn start(path: PathBuf) -> anyhow::Result<()> {
);

Server::builder()
.add_service(KmsEvmServiceServer::new(server))
.add_service(FkmsServiceServer::new(server))
.add_service(reflection_server)
.serve(SocketAddr::from((config.server.host, config.server.port)))
.await?;
Expand Down
6 changes: 3 additions & 3 deletions src/proto.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
pub mod kms {
pub mod fkms {
pub mod v1 {
tonic::include_proto!("kms.v1");
tonic::include_proto!("fkms.v1");
pub const FILE_DESCRIPTOR_SET: &[u8] =
tonic::include_file_descriptor_set!("kms_v1_descriptor");
tonic::include_file_descriptor_set!("fkms_v1_descriptor");
}
}
6 changes: 3 additions & 3 deletions src/server/evm.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use crate::proto::kms::v1::kms_evm_service_server::KmsEvmService;
use crate::proto::kms::v1::{
use crate::proto::fkms::v1::fkms_service_server::FkmsService;
use crate::proto::fkms::v1::{
GetSignerAddressesRequest, GetSignerAddressesResponse, SignEvmRequest, SignEvmResponse,
};
use crate::server::Server;
Expand All @@ -9,7 +9,7 @@ use tonic::{Request, Response, Status};
use tracing::{error, info, instrument, warn};

#[tonic::async_trait]
impl KmsEvmService for Server {
impl FkmsService for Server {
#[instrument(skip(self, request))]
async fn sign_evm(
&self,
Expand Down