feat: add settlement dismissal and cancellation RPCs

This commit is contained in:
2026-10-07 00:32:19 +03:30
parent 2f77f29118
commit 09782d739d
4 changed files with 29 additions and 0 deletions
+10
View File
@@ -253,3 +253,13 @@ message RetrySettlementRequest {
message RetrySettlementResponse {
Settlement settlement = 1;
}
message IgnoreSettlementRequest {
string settlement_id = 1;
string actor_id = 2;
string reason = 3;
}
message IgnoreSettlementResponse {
Settlement settlement = 1;
}
+3
View File
@@ -23,4 +23,7 @@ service GeneralLedgerService {
rpc GetSettlement(GetSettlementRequest) returns (Settlement);
// Restricted operator command. Requires the configured x-admin-token metadata.
rpc RetrySettlement(RetrySettlementRequest) returns (RetrySettlementResponse);
// Operator-reviewed, terminal dismissal. Does not confirm or reverse payment.
// Requires x-admin-token and a recorded reason; only unlocked failed settlements.
rpc IgnoreSettlement(IgnoreSettlementRequest) returns (IgnoreSettlementResponse);
}
+4
View File
@@ -31,6 +31,10 @@ service InternalWalletSrv {
rpc AdminDeactivateAsset(AdminDeactivateAssetReq) returns (base.v1.StatusRes);
rpc AdminApproveIRTWithdrawal(AdminApproveIRTWithdrawalReq) returns (base.v1.StatusRes);
// Cancels an unapproved request and releases its reservation atomically.
rpc AdminCancelIRTWithdrawal(AdminCancelIRTWithdrawalReq) returns (base.v1.StatusRes);
// Cancel only an undecided ICO agreement, atomically against user acceptance.
rpc AdminCancelICOAgreement(AdminCancelICOAgreementReq) returns (base.v1.StatusRes);
// Bank statement receipts are checked and confirmed through the wallet owner.
// Confirmation is idempotent by bank_transaction_number.
+12
View File
@@ -898,3 +898,15 @@ message AdminDeactivateAssetReq {
message AdminAssetMutationRes {
int64 asset_id = 1;
}
// Administrative cancellation never changes a decided agreement or moves funds.
message AdminCancelICOAgreementReq {
uint64 agreement_id = 1;
int64 actor_user_id = 2;
}
message AdminCancelIRTWithdrawalReq {
uint64 withdraw_log_id = 1;
string reason = 2;
int64 actor_user_id = 3;
}