Closed cbrit closed 4 months ago
The changes encompass various updates and additions across multiple files, focusing on enhanced functionalities related to gRPC interactions, encoding services, and client-side operations. Key enhancements include new Go modules for building gRPC schedule requests, TLS authentication, encoding services, and better integration testing setups alongside expanded documentation and improved proto definitions.
File / Directory | Change Summary |
---|---|
README.md |
Updated installation instructions emphasizing building from source with Rust and Git. |
client_example/adaptor_call.go |
Added logic for making multiple function calls with Uniswap V1 adaptors, defining several new structures. |
client_example/main.go |
Introduced functions for establishing gRPC connections with TLS encryption and building clients. |
client_example/schedule_request.go |
Added functionalities to build Uniswap V3 schedule requests and perform swaps with the Uniswap V3 adaptor. |
docs/00-TableOfContents.md |
Added a new section "Steward for Strategists." |
docs/06-StewardForStrategists.md |
Introduced the gRPC server encode mode for testing contract call data encoding. |
hash_proto |
Made modifications related to content integrity; no alterations to public entities. |
proto/steward/v4/steward.proto |
Introduced EncodingService , EncodeRequest , and EncodeResponse for contract call encoding. |
src/commands.rs |
Added Encode module and EncodeCmd command to StewardCmd enum. |
src/commands/encode.rs |
Defined EncodeCmd command and start module. |
src/encode.rs |
Implemented EncodingHandler struct and different function call encoding methods. |
src/lib.rs |
Added a new encode module. |
src/server.rs |
Added functions for encoding services setup and error handling. |
src/cork.rs |
Updated id_hash function by removing the reference from the encoded_call argument. |
go/builder/cellar_call.go |
Introduced methods for building function calls for CellarV2_5 in CellarCallBuilder . |
go/builder/request.go |
Added ScheduleRequestBuilder for constructing ScheduleRequest objects with validation logic. |
go/client_example/main.go (new change) |
Implemented a Go client application demonstrating two-way TLS authentication and gRPC server interaction using steward_proto . |
integration_tests/proposal_test.go |
Reformatted the code for better readability without altering the logic or control flow. |
integration_tests/setup_test.go |
Adjusted indentation and formatting for the configuration declaration for improved readability. |
sequenceDiagram
participant Client as Client Application
participant GRPC Server as gRPC Server
participant TLS as TLS Service
participant Encoding as Encoding Service
participant Builder as Builder Service
Client->>TLS: buildCredentials()
TLS-->>Client: TransportCredentials
Client->>GRPC Server: getConnection(TransportCredentials)
GRPC Server-->>Client: ClientConn
Client->>Builder: buildScheduleRequest()
Builder-->>Client: ScheduleRequest
Client->>GRPC Server: SendRequest(ScheduleRequest)
GRPC Server->>Encoding: EncodeRequest(CallData)
Encoding-->>GRPC Server: EncodeResponse(EncodedCall)
GRPC Server-->>Client: Response(EncodedCall)
Adds an server that can be run with
steward encode start
to submit contract call data params in the form of protos and get back the hex-encoded call data.Summary by CodeRabbit
New Features
Documentation
Refactor