feat: add durable Kuknos settlement coordination

This commit is contained in:
Navid
2026-09-15 13:59:13 +03:30
parent d5c9b338a4
commit 12c478cf3a
34 changed files with 1846 additions and 122 deletions
+561 -31
View File
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.36.11
// protoc-gen-go v1.36.6
// protoc (unknown)
// source: ledger/v1/msg.proto
@@ -1441,11 +1441,17 @@ func (x *ReplayJournalsResponse) GetResults() []*ReplayJournalResult {
}
type HealthResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Serving bool `protobuf:"varint,1,opt,name=serving,proto3" json:"serving,omitempty"`
DatabaseReady bool `protobuf:"varint,2,opt,name=database_ready,json=databaseReady,proto3" json:"database_ready,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
state protoimpl.MessageState `protogen:"open.v1"`
Serving bool `protobuf:"varint,1,opt,name=serving,proto3" json:"serving,omitempty"`
DatabaseReady bool `protobuf:"varint,2,opt,name=database_ready,json=databaseReady,proto3" json:"database_ready,omitempty"`
SettlementEnabled bool `protobuf:"varint,3,opt,name=settlement_enabled,json=settlementEnabled,proto3" json:"settlement_enabled,omitempty"`
SettlementReady bool `protobuf:"varint,4,opt,name=settlement_ready,json=settlementReady,proto3" json:"settlement_ready,omitempty"`
SettlementPending int64 `protobuf:"varint,5,opt,name=settlement_pending,json=settlementPending,proto3" json:"settlement_pending,omitempty"`
SettlementRetryable int64 `protobuf:"varint,6,opt,name=settlement_retryable,json=settlementRetryable,proto3" json:"settlement_retryable,omitempty"`
SettlementManualReview int64 `protobuf:"varint,7,opt,name=settlement_manual_review,json=settlementManualReview,proto3" json:"settlement_manual_review,omitempty"`
OldestPendingSeconds int64 `protobuf:"varint,8,opt,name=oldest_pending_seconds,json=oldestPendingSeconds,proto3" json:"oldest_pending_seconds,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *HealthResponse) Reset() {
@@ -1492,6 +1498,479 @@ func (x *HealthResponse) GetDatabaseReady() bool {
return false
}
func (x *HealthResponse) GetSettlementEnabled() bool {
if x != nil {
return x.SettlementEnabled
}
return false
}
func (x *HealthResponse) GetSettlementReady() bool {
if x != nil {
return x.SettlementReady
}
return false
}
func (x *HealthResponse) GetSettlementPending() int64 {
if x != nil {
return x.SettlementPending
}
return 0
}
func (x *HealthResponse) GetSettlementRetryable() int64 {
if x != nil {
return x.SettlementRetryable
}
return 0
}
func (x *HealthResponse) GetSettlementManualReview() int64 {
if x != nil {
return x.SettlementManualReview
}
return 0
}
func (x *HealthResponse) GetOldestPendingSeconds() int64 {
if x != nil {
return x.OldestPendingSeconds
}
return 0
}
type EnqueueSettlementRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
SourceService string `protobuf:"bytes,1,opt,name=source_service,json=sourceService,proto3" json:"source_service,omitempty"`
SourceTransactionId string `protobuf:"bytes,2,opt,name=source_transaction_id,json=sourceTransactionId,proto3" json:"source_transaction_id,omitempty"`
IdempotencyKey string `protobuf:"bytes,3,opt,name=idempotency_key,json=idempotencyKey,proto3" json:"idempotency_key,omitempty"`
Network string `protobuf:"bytes,4,opt,name=network,proto3" json:"network,omitempty"`
// Signed transaction XDR. GL persists and submits this payload durably.
SignedTransactionXdr string `protobuf:"bytes,5,opt,name=signed_transaction_xdr,json=signedTransactionXdr,proto3" json:"signed_transaction_xdr,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *EnqueueSettlementRequest) Reset() {
*x = EnqueueSettlementRequest{}
mi := &file_ledger_v1_msg_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *EnqueueSettlementRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EnqueueSettlementRequest) ProtoMessage() {}
func (x *EnqueueSettlementRequest) ProtoReflect() protoreflect.Message {
mi := &file_ledger_v1_msg_proto_msgTypes[18]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EnqueueSettlementRequest.ProtoReflect.Descriptor instead.
func (*EnqueueSettlementRequest) Descriptor() ([]byte, []int) {
return file_ledger_v1_msg_proto_rawDescGZIP(), []int{18}
}
func (x *EnqueueSettlementRequest) GetSourceService() string {
if x != nil {
return x.SourceService
}
return ""
}
func (x *EnqueueSettlementRequest) GetSourceTransactionId() string {
if x != nil {
return x.SourceTransactionId
}
return ""
}
func (x *EnqueueSettlementRequest) GetIdempotencyKey() string {
if x != nil {
return x.IdempotencyKey
}
return ""
}
func (x *EnqueueSettlementRequest) GetNetwork() string {
if x != nil {
return x.Network
}
return ""
}
func (x *EnqueueSettlementRequest) GetSignedTransactionXdr() string {
if x != nil {
return x.SignedTransactionXdr
}
return ""
}
type EnqueueSettlementResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
SettlementId string `protobuf:"bytes,1,opt,name=settlement_id,json=settlementId,proto3" json:"settlement_id,omitempty"`
Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
AlreadyExisted bool `protobuf:"varint,3,opt,name=already_existed,json=alreadyExisted,proto3" json:"already_existed,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *EnqueueSettlementResponse) Reset() {
*x = EnqueueSettlementResponse{}
mi := &file_ledger_v1_msg_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *EnqueueSettlementResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EnqueueSettlementResponse) ProtoMessage() {}
func (x *EnqueueSettlementResponse) ProtoReflect() protoreflect.Message {
mi := &file_ledger_v1_msg_proto_msgTypes[19]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EnqueueSettlementResponse.ProtoReflect.Descriptor instead.
func (*EnqueueSettlementResponse) Descriptor() ([]byte, []int) {
return file_ledger_v1_msg_proto_rawDescGZIP(), []int{19}
}
func (x *EnqueueSettlementResponse) GetSettlementId() string {
if x != nil {
return x.SettlementId
}
return ""
}
func (x *EnqueueSettlementResponse) GetStatus() string {
if x != nil {
return x.Status
}
return ""
}
func (x *EnqueueSettlementResponse) GetAlreadyExisted() bool {
if x != nil {
return x.AlreadyExisted
}
return false
}
type GetSettlementRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Types that are valid to be assigned to Lookup:
//
// *GetSettlementRequest_SettlementId
// *GetSettlementRequest_IdempotencyKey
Lookup isGetSettlementRequest_Lookup `protobuf_oneof:"lookup"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GetSettlementRequest) Reset() {
*x = GetSettlementRequest{}
mi := &file_ledger_v1_msg_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GetSettlementRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetSettlementRequest) ProtoMessage() {}
func (x *GetSettlementRequest) ProtoReflect() protoreflect.Message {
mi := &file_ledger_v1_msg_proto_msgTypes[20]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetSettlementRequest.ProtoReflect.Descriptor instead.
func (*GetSettlementRequest) Descriptor() ([]byte, []int) {
return file_ledger_v1_msg_proto_rawDescGZIP(), []int{20}
}
func (x *GetSettlementRequest) GetLookup() isGetSettlementRequest_Lookup {
if x != nil {
return x.Lookup
}
return nil
}
func (x *GetSettlementRequest) GetSettlementId() string {
if x != nil {
if x, ok := x.Lookup.(*GetSettlementRequest_SettlementId); ok {
return x.SettlementId
}
}
return ""
}
func (x *GetSettlementRequest) GetIdempotencyKey() string {
if x != nil {
if x, ok := x.Lookup.(*GetSettlementRequest_IdempotencyKey); ok {
return x.IdempotencyKey
}
}
return ""
}
type isGetSettlementRequest_Lookup interface {
isGetSettlementRequest_Lookup()
}
type GetSettlementRequest_SettlementId struct {
SettlementId string `protobuf:"bytes,1,opt,name=settlement_id,json=settlementId,proto3,oneof"`
}
type GetSettlementRequest_IdempotencyKey struct {
IdempotencyKey string `protobuf:"bytes,2,opt,name=idempotency_key,json=idempotencyKey,proto3,oneof"`
}
func (*GetSettlementRequest_SettlementId) isGetSettlementRequest_Lookup() {}
func (*GetSettlementRequest_IdempotencyKey) isGetSettlementRequest_Lookup() {}
type Settlement struct {
state protoimpl.MessageState `protogen:"open.v1"`
SettlementId string `protobuf:"bytes,1,opt,name=settlement_id,json=settlementId,proto3" json:"settlement_id,omitempty"`
SourceService string `protobuf:"bytes,2,opt,name=source_service,json=sourceService,proto3" json:"source_service,omitempty"`
SourceTransactionId string `protobuf:"bytes,3,opt,name=source_transaction_id,json=sourceTransactionId,proto3" json:"source_transaction_id,omitempty"`
IdempotencyKey string `protobuf:"bytes,4,opt,name=idempotency_key,json=idempotencyKey,proto3" json:"idempotency_key,omitempty"`
Status string `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"`
Network string `protobuf:"bytes,6,opt,name=network,proto3" json:"network,omitempty"`
TransactionHash string `protobuf:"bytes,7,opt,name=transaction_hash,json=transactionHash,proto3" json:"transaction_hash,omitempty"`
Attempts uint32 `protobuf:"varint,8,opt,name=attempts,proto3" json:"attempts,omitempty"`
LastError string `protobuf:"bytes,9,opt,name=last_error,json=lastError,proto3" json:"last_error,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Settlement) Reset() {
*x = Settlement{}
mi := &file_ledger_v1_msg_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Settlement) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Settlement) ProtoMessage() {}
func (x *Settlement) ProtoReflect() protoreflect.Message {
mi := &file_ledger_v1_msg_proto_msgTypes[21]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Settlement.ProtoReflect.Descriptor instead.
func (*Settlement) Descriptor() ([]byte, []int) {
return file_ledger_v1_msg_proto_rawDescGZIP(), []int{21}
}
func (x *Settlement) GetSettlementId() string {
if x != nil {
return x.SettlementId
}
return ""
}
func (x *Settlement) GetSourceService() string {
if x != nil {
return x.SourceService
}
return ""
}
func (x *Settlement) GetSourceTransactionId() string {
if x != nil {
return x.SourceTransactionId
}
return ""
}
func (x *Settlement) GetIdempotencyKey() string {
if x != nil {
return x.IdempotencyKey
}
return ""
}
func (x *Settlement) GetStatus() string {
if x != nil {
return x.Status
}
return ""
}
func (x *Settlement) GetNetwork() string {
if x != nil {
return x.Network
}
return ""
}
func (x *Settlement) GetTransactionHash() string {
if x != nil {
return x.TransactionHash
}
return ""
}
func (x *Settlement) GetAttempts() uint32 {
if x != nil {
return x.Attempts
}
return 0
}
func (x *Settlement) GetLastError() string {
if x != nil {
return x.LastError
}
return ""
}
type RetrySettlementRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
SettlementId string `protobuf:"bytes,1,opt,name=settlement_id,json=settlementId,proto3" json:"settlement_id,omitempty"`
ActorId string `protobuf:"bytes,2,opt,name=actor_id,json=actorId,proto3" json:"actor_id,omitempty"`
Reason string `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *RetrySettlementRequest) Reset() {
*x = RetrySettlementRequest{}
mi := &file_ledger_v1_msg_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *RetrySettlementRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RetrySettlementRequest) ProtoMessage() {}
func (x *RetrySettlementRequest) ProtoReflect() protoreflect.Message {
mi := &file_ledger_v1_msg_proto_msgTypes[22]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RetrySettlementRequest.ProtoReflect.Descriptor instead.
func (*RetrySettlementRequest) Descriptor() ([]byte, []int) {
return file_ledger_v1_msg_proto_rawDescGZIP(), []int{22}
}
func (x *RetrySettlementRequest) GetSettlementId() string {
if x != nil {
return x.SettlementId
}
return ""
}
func (x *RetrySettlementRequest) GetActorId() string {
if x != nil {
return x.ActorId
}
return ""
}
func (x *RetrySettlementRequest) GetReason() string {
if x != nil {
return x.Reason
}
return ""
}
type RetrySettlementResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Settlement *Settlement `protobuf:"bytes,1,opt,name=settlement,proto3" json:"settlement,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *RetrySettlementResponse) Reset() {
*x = RetrySettlementResponse{}
mi := &file_ledger_v1_msg_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *RetrySettlementResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RetrySettlementResponse) ProtoMessage() {}
func (x *RetrySettlementResponse) ProtoReflect() protoreflect.Message {
mi := &file_ledger_v1_msg_proto_msgTypes[23]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RetrySettlementResponse.ProtoReflect.Descriptor instead.
func (*RetrySettlementResponse) Descriptor() ([]byte, []int) {
return file_ledger_v1_msg_proto_rawDescGZIP(), []int{23}
}
func (x *RetrySettlementResponse) GetSettlement() *Settlement {
if x != nil {
return x.Settlement
}
return nil
}
var File_ledger_v1_msg_proto protoreflect.FileDescriptor
const file_ledger_v1_msg_proto_rawDesc = "" +
@@ -1632,10 +2111,50 @@ const file_ledger_v1_msg_proto_rawDesc = "" +
"\ajournal\x18\x02 \x01(\v2\x12.ledger.v1.JournalR\ajournal\x12'\n" +
"\x0falready_existed\x18\x03 \x01(\bR\x0ealreadyExisted\"R\n" +
"\x16ReplayJournalsResponse\x128\n" +
"\aresults\x18\x01 \x03(\v2\x1e.ledger.v1.ReplayJournalResultR\aresults\"Q\n" +
"\aresults\x18\x01 \x03(\v2\x1e.ledger.v1.ReplayJournalResultR\aresults\"\xfd\x02\n" +
"\x0eHealthResponse\x12\x18\n" +
"\aserving\x18\x01 \x01(\bR\aserving\x12%\n" +
"\x0edatabase_ready\x18\x02 \x01(\bR\rdatabaseReady*\x9a\x02\n" +
"\x0edatabase_ready\x18\x02 \x01(\bR\rdatabaseReady\x12-\n" +
"\x12settlement_enabled\x18\x03 \x01(\bR\x11settlementEnabled\x12)\n" +
"\x10settlement_ready\x18\x04 \x01(\bR\x0fsettlementReady\x12-\n" +
"\x12settlement_pending\x18\x05 \x01(\x03R\x11settlementPending\x121\n" +
"\x14settlement_retryable\x18\x06 \x01(\x03R\x13settlementRetryable\x128\n" +
"\x18settlement_manual_review\x18\a \x01(\x03R\x16settlementManualReview\x124\n" +
"\x16oldest_pending_seconds\x18\b \x01(\x03R\x14oldestPendingSeconds\"\xee\x01\n" +
"\x18EnqueueSettlementRequest\x12%\n" +
"\x0esource_service\x18\x01 \x01(\tR\rsourceService\x122\n" +
"\x15source_transaction_id\x18\x02 \x01(\tR\x13sourceTransactionId\x12'\n" +
"\x0fidempotency_key\x18\x03 \x01(\tR\x0eidempotencyKey\x12\x18\n" +
"\anetwork\x18\x04 \x01(\tR\anetwork\x124\n" +
"\x16signed_transaction_xdr\x18\x05 \x01(\tR\x14signedTransactionXdr\"\x81\x01\n" +
"\x19EnqueueSettlementResponse\x12#\n" +
"\rsettlement_id\x18\x01 \x01(\tR\fsettlementId\x12\x16\n" +
"\x06status\x18\x02 \x01(\tR\x06status\x12'\n" +
"\x0falready_existed\x18\x03 \x01(\bR\x0ealreadyExisted\"r\n" +
"\x14GetSettlementRequest\x12%\n" +
"\rsettlement_id\x18\x01 \x01(\tH\x00R\fsettlementId\x12)\n" +
"\x0fidempotency_key\x18\x02 \x01(\tH\x00R\x0eidempotencyKeyB\b\n" +
"\x06lookup\"\xcd\x02\n" +
"\n" +
"Settlement\x12#\n" +
"\rsettlement_id\x18\x01 \x01(\tR\fsettlementId\x12%\n" +
"\x0esource_service\x18\x02 \x01(\tR\rsourceService\x122\n" +
"\x15source_transaction_id\x18\x03 \x01(\tR\x13sourceTransactionId\x12'\n" +
"\x0fidempotency_key\x18\x04 \x01(\tR\x0eidempotencyKey\x12\x16\n" +
"\x06status\x18\x05 \x01(\tR\x06status\x12\x18\n" +
"\anetwork\x18\x06 \x01(\tR\anetwork\x12)\n" +
"\x10transaction_hash\x18\a \x01(\tR\x0ftransactionHash\x12\x1a\n" +
"\battempts\x18\b \x01(\rR\battempts\x12\x1d\n" +
"\n" +
"last_error\x18\t \x01(\tR\tlastError\"p\n" +
"\x16RetrySettlementRequest\x12#\n" +
"\rsettlement_id\x18\x01 \x01(\tR\fsettlementId\x12\x19\n" +
"\bactor_id\x18\x02 \x01(\tR\aactorId\x12\x16\n" +
"\x06reason\x18\x03 \x01(\tR\x06reason\"P\n" +
"\x17RetrySettlementResponse\x125\n" +
"\n" +
"settlement\x18\x01 \x01(\v2\x15.ledger.v1.SettlementR\n" +
"settlement*\x9a\x02\n" +
"\fAccountClass\x12\x1d\n" +
"\x19ACCOUNT_CLASS_UNSPECIFIED\x10\x00\x12 \n" +
"\x1cACCOUNT_CLASS_USER_AVAILABLE\x10\x01\x12\x1d\n" +
@@ -1669,7 +2188,7 @@ func file_ledger_v1_msg_proto_rawDescGZIP() []byte {
}
var file_ledger_v1_msg_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_ledger_v1_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 21)
var file_ledger_v1_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 27)
var file_ledger_v1_msg_proto_goTypes = []any{
(AccountClass)(0), // 0: ledger.v1.AccountClass
(TransactionState)(0), // 1: ledger.v1.TransactionState
@@ -1691,47 +2210,54 @@ var file_ledger_v1_msg_proto_goTypes = []any{
(*ReplayJournalResult)(nil), // 17: ledger.v1.ReplayJournalResult
(*ReplayJournalsResponse)(nil), // 18: ledger.v1.ReplayJournalsResponse
(*HealthResponse)(nil), // 19: ledger.v1.HealthResponse
nil, // 20: ledger.v1.Journal.MetadataEntry
nil, // 21: ledger.v1.AppendJournalRequest.MetadataEntry
nil, // 22: ledger.v1.AppendTransactionEventRequest.MetadataEntry
(*timestamppb.Timestamp)(nil), // 23: google.protobuf.Timestamp
(*EnqueueSettlementRequest)(nil), // 20: ledger.v1.EnqueueSettlementRequest
(*EnqueueSettlementResponse)(nil), // 21: ledger.v1.EnqueueSettlementResponse
(*GetSettlementRequest)(nil), // 22: ledger.v1.GetSettlementRequest
(*Settlement)(nil), // 23: ledger.v1.Settlement
(*RetrySettlementRequest)(nil), // 24: ledger.v1.RetrySettlementRequest
(*RetrySettlementResponse)(nil), // 25: ledger.v1.RetrySettlementResponse
nil, // 26: ledger.v1.Journal.MetadataEntry
nil, // 27: ledger.v1.AppendJournalRequest.MetadataEntry
nil, // 28: ledger.v1.AppendTransactionEventRequest.MetadataEntry
(*timestamppb.Timestamp)(nil), // 29: google.protobuf.Timestamp
}
var file_ledger_v1_msg_proto_depIdxs = []int32{
0, // 0: ledger.v1.AccountReference.account_class:type_name -> ledger.v1.AccountClass
2, // 1: ledger.v1.JournalEntry.account:type_name -> ledger.v1.AccountReference
3, // 2: ledger.v1.Journal.entries:type_name -> ledger.v1.JournalEntry
23, // 3: ledger.v1.Journal.occurred_at:type_name -> google.protobuf.Timestamp
23, // 4: ledger.v1.Journal.recorded_at:type_name -> google.protobuf.Timestamp
29, // 3: ledger.v1.Journal.occurred_at:type_name -> google.protobuf.Timestamp
29, // 4: ledger.v1.Journal.recorded_at:type_name -> google.protobuf.Timestamp
4, // 5: ledger.v1.Journal.blockchain:type_name -> ledger.v1.BlockchainReference
20, // 6: ledger.v1.Journal.metadata:type_name -> ledger.v1.Journal.MetadataEntry
26, // 6: ledger.v1.Journal.metadata:type_name -> ledger.v1.Journal.MetadataEntry
3, // 7: ledger.v1.AppendJournalRequest.entries:type_name -> ledger.v1.JournalEntry
23, // 8: ledger.v1.AppendJournalRequest.occurred_at:type_name -> google.protobuf.Timestamp
29, // 8: ledger.v1.AppendJournalRequest.occurred_at:type_name -> google.protobuf.Timestamp
4, // 9: ledger.v1.AppendJournalRequest.blockchain:type_name -> ledger.v1.BlockchainReference
21, // 10: ledger.v1.AppendJournalRequest.metadata:type_name -> ledger.v1.AppendJournalRequest.MetadataEntry
27, // 10: ledger.v1.AppendJournalRequest.metadata:type_name -> ledger.v1.AppendJournalRequest.MetadataEntry
5, // 11: ledger.v1.AppendJournalResponse.journal:type_name -> ledger.v1.Journal
1, // 12: ledger.v1.AppendTransactionEventRequest.state:type_name -> ledger.v1.TransactionState
23, // 13: ledger.v1.AppendTransactionEventRequest.occurred_at:type_name -> google.protobuf.Timestamp
29, // 13: ledger.v1.AppendTransactionEventRequest.occurred_at:type_name -> google.protobuf.Timestamp
4, // 14: ledger.v1.AppendTransactionEventRequest.blockchain:type_name -> ledger.v1.BlockchainReference
22, // 15: ledger.v1.AppendTransactionEventRequest.metadata:type_name -> ledger.v1.AppendTransactionEventRequest.MetadataEntry
28, // 15: ledger.v1.AppendTransactionEventRequest.metadata:type_name -> ledger.v1.AppendTransactionEventRequest.MetadataEntry
8, // 16: ledger.v1.TransactionEvent.event:type_name -> ledger.v1.AppendTransactionEventRequest
23, // 17: ledger.v1.TransactionEvent.recorded_at:type_name -> google.protobuf.Timestamp
29, // 17: ledger.v1.TransactionEvent.recorded_at:type_name -> google.protobuf.Timestamp
9, // 18: ledger.v1.AppendTransactionEventResponse.event:type_name -> ledger.v1.TransactionEvent
2, // 19: ledger.v1.ListEntriesRequest.account:type_name -> ledger.v1.AccountReference
23, // 20: ledger.v1.ListEntriesRequest.recorded_from:type_name -> google.protobuf.Timestamp
23, // 21: ledger.v1.ListEntriesRequest.recorded_to:type_name -> google.protobuf.Timestamp
29, // 20: ledger.v1.ListEntriesRequest.recorded_from:type_name -> google.protobuf.Timestamp
29, // 21: ledger.v1.ListEntriesRequest.recorded_to:type_name -> google.protobuf.Timestamp
5, // 22: ledger.v1.ListEntriesResponse.journals:type_name -> ledger.v1.Journal
2, // 23: ledger.v1.GetBalanceRequest.account:type_name -> ledger.v1.AccountReference
23, // 24: ledger.v1.GetBalanceRequest.as_of:type_name -> google.protobuf.Timestamp
29, // 24: ledger.v1.GetBalanceRequest.as_of:type_name -> google.protobuf.Timestamp
2, // 25: ledger.v1.GetBalanceResponse.account:type_name -> ledger.v1.AccountReference
23, // 26: ledger.v1.GetBalanceResponse.as_of:type_name -> google.protobuf.Timestamp
29, // 26: ledger.v1.GetBalanceResponse.as_of:type_name -> google.protobuf.Timestamp
6, // 27: ledger.v1.ReplayJournalsRequest.journals:type_name -> ledger.v1.AppendJournalRequest
5, // 28: ledger.v1.ReplayJournalResult.journal:type_name -> ledger.v1.Journal
17, // 29: ledger.v1.ReplayJournalsResponse.results:type_name -> ledger.v1.ReplayJournalResult
30, // [30:30] is the sub-list for method output_type
30, // [30:30] is the sub-list for method input_type
30, // [30:30] is the sub-list for extension type_name
30, // [30:30] is the sub-list for extension extendee
0, // [0:30] is the sub-list for field type_name
23, // 30: ledger.v1.RetrySettlementResponse.settlement:type_name -> ledger.v1.Settlement
31, // [31:31] is the sub-list for method output_type
31, // [31:31] is the sub-list for method input_type
31, // [31:31] is the sub-list for extension type_name
31, // [31:31] is the sub-list for extension extendee
0, // [0:31] is the sub-list for field type_name
}
func init() { file_ledger_v1_msg_proto_init() }
@@ -1746,13 +2272,17 @@ func file_ledger_v1_msg_proto_init() {
(*GetJournalRequest_IdempotencyKey)(nil),
}
file_ledger_v1_msg_proto_msgTypes[10].OneofWrappers = []any{}
file_ledger_v1_msg_proto_msgTypes[20].OneofWrappers = []any{
(*GetSettlementRequest_SettlementId)(nil),
(*GetSettlementRequest_IdempotencyKey)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_ledger_v1_msg_proto_rawDesc), len(file_ledger_v1_msg_proto_rawDesc)),
NumEnums: 2,
NumMessages: 21,
NumMessages: 27,
NumExtensions: 0,
NumServices: 0,
},