feat: version ledger settlement contracts

This commit is contained in:
Navid
2026-09-15 13:59:13 +03:30
parent e316e225a0
commit d01c287550
3 changed files with 57 additions and 1 deletions
+50
View File
@@ -165,4 +165,54 @@ message ReplayJournalsResponse {
message HealthResponse {
bool serving = 1;
bool database_ready = 2;
bool settlement_enabled = 3;
bool settlement_ready = 4;
int64 settlement_pending = 5;
int64 settlement_retryable = 6;
int64 settlement_manual_review = 7;
int64 oldest_pending_seconds = 8;
}
message EnqueueSettlementRequest {
string source_service = 1;
string source_transaction_id = 2;
string idempotency_key = 3;
string network = 4;
// Signed transaction XDR. GL persists and submits this payload durably.
string signed_transaction_xdr = 5;
}
message EnqueueSettlementResponse {
string settlement_id = 1;
string status = 2;
bool already_existed = 3;
}
message GetSettlementRequest {
oneof lookup {
string settlement_id = 1;
string idempotency_key = 2;
}
}
message Settlement {
string settlement_id = 1;
string source_service = 2;
string source_transaction_id = 3;
string idempotency_key = 4;
string status = 5;
string network = 6;
string transaction_hash = 7;
uint32 attempts = 8;
string last_error = 9;
}
message RetrySettlementRequest {
string settlement_id = 1;
string actor_id = 2;
string reason = 3;
}
message RetrySettlementResponse {
Settlement settlement = 1;
}
+4
View File
@@ -13,4 +13,8 @@ service GeneralLedgerService {
rpc ListEntries(ListEntriesRequest) returns (ListEntriesResponse);
rpc GetBalance(GetBalanceRequest) returns (GetBalanceResponse);
rpc ReplayJournals(ReplayJournalsRequest) returns (ReplayJournalsResponse);
rpc EnqueueSettlement(EnqueueSettlementRequest) returns (EnqueueSettlementResponse);
rpc GetSettlement(GetSettlementRequest) returns (Settlement);
// Restricted operator command. Requires the configured x-admin-token metadata.
rpc RetrySettlement(RetrySettlementRequest) returns (RetrySettlementResponse);
}