Conversation
There was a problem hiding this comment.
Pull request overview
Adds XRPL (secp256k1) support alongside existing EVM signing by introducing XRPL codecs, address derivation, and a unified server gRPC service flow with TSS message + signature verification.
Changes:
- Add XRPL transaction decoding/encoding, XRPL address derivation, and XRPL signing endpoint (
SignXrpl) with DER ECDSA signatures. - Introduce TSS message decoding and secp256k1 TSS signature verification used by both EVM and XRPL flows.
- Refactor signer/public-key APIs to support compressed vs uncompressed keys and update server hooks + request schema to carry
tx_message+Tss.
Reviewed changes
Copilot reviewed 28 out of 29 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
| src/verifier/tss/signature.rs | Adds secp256k1 TSS signature verification logic + tests. |
| src/verifier/tss/message/xrpl.rs | Verifies XRPL tx prices match decoded TSS message prices + integration test. |
| src/verifier/tss/message/evm.rs | Verifies EVM tx contains the expected TSS message (byte compare). |
| src/verifier/tss/message.rs | Exposes EVM/XRPL TSS message verification modules. |
| src/verifier/tss.rs | Exposes TSS verifier submodules. |
| src/verifier.rs | Adds top-level verifier module export. |
| src/signer/signature/ecdsa.rs | Adds DER signature type support implementing Signature. |
| src/signer/local.rs | Extends local signer with DER signing + compressed/uncompressed pubkeys; updates tests. |
| src/signer/aws.rs | Updates Signer trait implementation for new public_key(is_compressed) signature. |
| src/signer.rs | Adds XRPL address derivation + changes signer traits to return Result and accept compression flag. |
| src/server/service.rs | Consolidates gRPC service impl; adds SignXrpl flow and TSS verification calls. |
| src/server/pre_sign.rs | Updates hook API to receive both tx_message and tss_message. |
| src/server/evm.rs | Removes older EVM-only gRPC implementation (replaced by service.rs). |
| src/server/builder.rs | Adds XRPL signer/hook wiring and TSS signature verifier injection into Server. |
| src/server.rs | Updates Server struct fields and module layout for new service + XRPL support. |
| src/lib.rs | Exposes new codec and verifier modules publicly. |
| src/commands/utils.rs | Splits local signer derivation into EVM vs XRPL derivation paths (coin types 60/144). |
| src/commands/start.rs | Initializes EVM + XRPL local signers and loads TSS public key from env. |
| src/commands/key.rs | Updates key listing to show EVM + XRPL keys/addresses with compression control. |
| src/commands.rs | Re-exports updated signer-loading helpers. |
| src/codec/xrpl.rs | Adds XRPL tx deserialization + price extraction + tx re-encoding with injected fields. |
| src/codec/tss.rs | Adds TSS message decoding (ABI) and tick-to-price conversion with tests. |
| src/codec/evm.rs | Adds EVM tx decoding to extract embedded TSS struct from calldata with tests. |
| src/codec.rs | Exposes codec submodules (evm/tss/xrpl). |
| proto/fkms/v1/signer.proto | Adds SignXrpl RPC and refactors requests to carry tx_message + Tss. |
| README.md | Updates overview/API documentation for XRPL and new RPCs/examples. |
| Cargo.toml | Adds XRPL/TSS-related dependencies and enables k256 arithmetic features. |
| Cargo.lock | Updates dependency graph for newly added crates and upgraded alloy versions. |
| .github/workflows/ci.yml | Updates CI toolchain pins (stable clippy/test). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 28 out of 29 changed files in this pull request and generated 13 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 29 out of 30 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
No description provided.