// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.3
// 	protoc        v6.31.1
// source: ledger.proto

package v1

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	descriptorpb "google.golang.org/protobuf/types/descriptorpb"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

var (
	file_ledger_proto_rawDescOnce sync.Once
	file_ledger_proto_rawDescData = file_ledger_proto_rawDesc
)

// Extension fields to descriptorpb.FieldOptions.
var (
	// optional bool tui_signed_display_q2_2021 = 20001;
	E_TuiSignedDisplayQ2_2021 = &file_ledger_proto_extTypes[1]
)

// Extension fields to descriptorpb.MessageOptions.
var (
	// optional bool tui_signed_message = 20000;
	E_TuiSignedMessage = &file_ledger_proto_extTypes[0]
)

var File_ledger_proto protoreflect.FileDescriptor

var file_ledger_proto_depIdxs = []int32{
	46, // 0: ic_ledger.pb.v1.LedgerInit.minting_account:type_name -> ic_ledger.pb.v1.AccountIdentifier
	39, // 1: ic_ledger.pb.v1.LedgerInit.initial_values:type_name -> ic_ledger.pb.v1.Account
	0,  // 2: ic_ledger.pb.v1.LedgerInit.archive_canister:type_name -> ic_ledger.pb.v1.PrincipalId
	48, // 3: ic_ledger.pb.v1.SendRequest.memo:type_name -> ic_ledger.pb.v1.Memo
	35, // 4: ic_ledger.pb.v1.SendRequest.payment:type_name -> ic_ledger.pb.v1.Payment
	34, // 5: ic_ledger.pb.v1.SendRequest.max_fee:type_name -> ic_ledger.pb.v1.Tokens
	47, // 6: ic_ledger.pb.v1.SendRequest.from_subaccount:type_name -> ic_ledger.pb.v1.Subaccount
	46, // 7: ic_ledger.pb.v1.SendRequest.to:type_name -> ic_ledger.pb.v1.AccountIdentifier
	36, // 8: ic_ledger.pb.v1.SendRequest.created_at:type_name -> ic_ledger.pb.v1.BlockIndex
	50, // 9: ic_ledger.pb.v1.SendRequest.created_at_time:type_name -> ic_ledger.pb.v1.TimeStamp
	36, // 10: ic_ledger.pb.v1.SendResponse.resulting_height:type_name -> ic_ledger.pb.v1.BlockIndex
	36, // 11: ic_ledger.pb.v1.NotifyRequest.block_height:type_name -> ic_ledger.pb.v1.BlockIndex
	34, // 12: ic_ledger.pb.v1.NotifyRequest.max_fee:type_name -> ic_ledger.pb.v1.Tokens
	47, // 13: ic_ledger.pb.v1.NotifyRequest.from_subaccount:type_name -> ic_ledger.pb.v1.Subaccount
	0,  // 14: ic_ledger.pb.v1.NotifyRequest.to_canister:type_name -> ic_ledger.pb.v1.PrincipalId
	47, // 15: ic_ledger.pb.v1.NotifyRequest.to_subaccount:type_name -> ic_ledger.pb.v1.Subaccount
	0,  // 16: ic_ledger.pb.v1.TransactionNotificationRequest.from:type_name -> ic_ledger.pb.v1.PrincipalId
	47, // 17: ic_ledger.pb.v1.TransactionNotificationRequest.from_subaccount:type_name -> ic_ledger.pb.v1.Subaccount
	0,  // 18: ic_ledger.pb.v1.TransactionNotificationRequest.to:type_name -> ic_ledger.pb.v1.PrincipalId
	47, // 19: ic_ledger.pb.v1.TransactionNotificationRequest.to_subaccount:type_name -> ic_ledger.pb.v1.Subaccount
	36, // 20: ic_ledger.pb.v1.TransactionNotificationRequest.block_height:type_name -> ic_ledger.pb.v1.BlockIndex
	34, // 21: ic_ledger.pb.v1.TransactionNotificationRequest.amount:type_name -> ic_ledger.pb.v1.Tokens
	48, // 22: ic_ledger.pb.v1.TransactionNotificationRequest.memo:type_name -> ic_ledger.pb.v1.Memo
	0,  // 23: ic_ledger.pb.v1.CyclesNotificationResponse.created_canister_id:type_name -> ic_ledger.pb.v1.PrincipalId
	21, // 24: ic_ledger.pb.v1.CyclesNotificationResponse.refund:type_name -> ic_ledger.pb.v1.Refund
	22, // 25: ic_ledger.pb.v1.CyclesNotificationResponse.topped_up:type_name -> ic_ledger.pb.v1.ToppedUp
	46, // 26: ic_ledger.pb.v1.AccountBalanceRequest.account:type_name -> ic_ledger.pb.v1.AccountIdentifier
	34, // 27: ic_ledger.pb.v1.AccountBalanceResponse.balance:type_name -> ic_ledger.pb.v1.Tokens
	51, // 28: ic_ledger.pb.v1.TipOfChainResponse.certification:type_name -> ic_ledger.pb.v1.Certification
	36, // 29: ic_ledger.pb.v1.TipOfChainResponse.chain_length:type_name -> ic_ledger.pb.v1.BlockIndex
	34, // 30: ic_ledger.pb.v1.TotalSupplyResponse.total_supply:type_name -> ic_ledger.pb.v1.Tokens
	50, // 31: ic_ledger.pb.v1.LedgerArchiveRequest.timestamp:type_name -> ic_ledger.pb.v1.TimeStamp
	18, // 32: ic_ledger.pb.v1.BlockResponse.block:type_name -> ic_ledger.pb.v1.EncodedBlock
	0,  // 33: ic_ledger.pb.v1.BlockResponse.canister_id:type_name -> ic_ledger.pb.v1.PrincipalId
	36, // 34: ic_ledger.pb.v1.Refund.refund:type_name -> ic_ledger.pb.v1.BlockIndex
	18, // 35: ic_ledger.pb.v1.EncodedBlocks.blocks:type_name -> ic_ledger.pb.v1.EncodedBlock
	23, // 36: ic_ledger.pb.v1.GetBlocksResponse.blocks:type_name -> ic_ledger.pb.v1.EncodedBlocks
	18, // 37: ic_ledger.pb.v1.IterBlocksResponse.blocks:type_name -> ic_ledger.pb.v1.EncodedBlock
	0,  // 38: ic_ledger.pb.v1.ArchiveIndexEntry.canister_id:type_name -> ic_ledger.pb.v1.PrincipalId
	27, // 39: ic_ledger.pb.v1.ArchiveIndexResponse.entries:type_name -> ic_ledger.pb.v1.ArchiveIndexEntry
	37, // 40: ic_ledger.pb.v1.ArchiveAddRequest.blocks:type_name -> ic_ledger.pb.v1.Block
	0,  // 41: ic_ledger.pb.v1.GetNodesResponse.nodes:type_name -> ic_ledger.pb.v1.PrincipalId
	34, // 42: ic_ledger.pb.v1.Payment.receiver_gets:type_name -> ic_ledger.pb.v1.Tokens
	38, // 43: ic_ledger.pb.v1.Block.parent_hash:type_name -> ic_ledger.pb.v1.Hash
	50, // 44: ic_ledger.pb.v1.Block.timestamp:type_name -> ic_ledger.pb.v1.TimeStamp
	40, // 45: ic_ledger.pb.v1.Block.transaction:type_name -> ic_ledger.pb.v1.Transaction
	46, // 46: ic_ledger.pb.v1.Account.identifier:type_name -> ic_ledger.pb.v1.AccountIdentifier
	34, // 47: ic_ledger.pb.v1.Account.balance:type_name -> ic_ledger.pb.v1.Tokens
	45, // 48: ic_ledger.pb.v1.Transaction.burn:type_name -> ic_ledger.pb.v1.Burn
	44, // 49: ic_ledger.pb.v1.Transaction.mint:type_name -> ic_ledger.pb.v1.Mint
	41, // 50: ic_ledger.pb.v1.Transaction.send:type_name -> ic_ledger.pb.v1.Send
	48, // 51: ic_ledger.pb.v1.Transaction.memo:type_name -> ic_ledger.pb.v1.Memo
	49, // 52: ic_ledger.pb.v1.Transaction.icrc1_memo:type_name -> ic_ledger.pb.v1.Icrc1Memo
	36, // 53: ic_ledger.pb.v1.Transaction.created_at:type_name -> ic_ledger.pb.v1.BlockIndex
	50, // 54: ic_ledger.pb.v1.Transaction.created_at_time:type_name -> ic_ledger.pb.v1.TimeStamp
	46, // 55: ic_ledger.pb.v1.Send.from:type_name -> ic_ledger.pb.v1.AccountIdentifier
	46, // 56: ic_ledger.pb.v1.Send.to:type_name -> ic_ledger.pb.v1.AccountIdentifier
	34, // 57: ic_ledger.pb.v1.Send.amount:type_name -> ic_ledger.pb.v1.Tokens
	34, // 58: ic_ledger.pb.v1.Send.max_fee:type_name -> ic_ledger.pb.v1.Tokens
	43, // 59: ic_ledger.pb.v1.Send.approve:type_name -> ic_ledger.pb.v1.Approve
	42, // 60: ic_ledger.pb.v1.Send.transfer_from:type_name -> ic_ledger.pb.v1.TransferFrom
	46, // 61: ic_ledger.pb.v1.TransferFrom.spender:type_name -> ic_ledger.pb.v1.AccountIdentifier
	34, // 62: ic_ledger.pb.v1.Approve.allowance:type_name -> ic_ledger.pb.v1.Tokens
	50, // 63: ic_ledger.pb.v1.Approve.expires_at:type_name -> ic_ledger.pb.v1.TimeStamp
	34, // 64: ic_ledger.pb.v1.Approve.expected_allowance:type_name -> ic_ledger.pb.v1.Tokens
	46, // 65: ic_ledger.pb.v1.Mint.to:type_name -> ic_ledger.pb.v1.AccountIdentifier
	34, // 66: ic_ledger.pb.v1.Mint.amount:type_name -> ic_ledger.pb.v1.Tokens
	46, // 67: ic_ledger.pb.v1.Burn.from:type_name -> ic_ledger.pb.v1.AccountIdentifier
	34, // 68: ic_ledger.pb.v1.Burn.amount:type_name -> ic_ledger.pb.v1.Tokens
	46, // 69: ic_ledger.pb.v1.Burn.spender:type_name -> ic_ledger.pb.v1.AccountIdentifier
	34, // 70: ic_ledger.pb.v1.TransferFeeResponse.transfer_fee:type_name -> ic_ledger.pb.v1.Tokens
	54, // 71: ic_ledger.pb.v1.tui_signed_message:extendee -> google.protobuf.MessageOptions
	55, // 72: ic_ledger.pb.v1.tui_signed_display_q2_2021:extendee -> google.protobuf.FieldOptions
	73, // [73:73] is the sub-list for method output_type
	73, // [73:73] is the sub-list for method input_type
	73, // [73:73] is the sub-list for extension type_name
	71, // [71:73] is the sub-list for extension extendee
	0,  // [0:71] is the sub-list for field type_name
}

var file_ledger_proto_extTypes = []protoimpl.ExtensionInfo{
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*bool)(nil),
		Field:         20000,
		Name:          "ic_ledger.pb.v1.tui_signed_message",
		Tag:           "varint,20000,opt,name=tui_signed_message",
		Filename:      "ledger.proto",
	},
	{
		ExtendedType:  (*descriptorpb.FieldOptions)(nil),
		ExtensionType: (*bool)(nil),
		Field:         20001,
		Name:          "ic_ledger.pb.v1.tui_signed_display_q2_2021",
		Tag:           "varint,20001,opt,name=tui_signed_display_q2_2021",
		Filename:      "ledger.proto",
	},
}

var file_ledger_proto_goTypes = []any{
	(*PrincipalId)(nil),                     // 0: ic_ledger.pb.v1.PrincipalId
	(*LedgerInit)(nil),                      // 1: ic_ledger.pb.v1.LedgerInit
	(*LedgerUpgrade)(nil),                   // 2: ic_ledger.pb.v1.LedgerUpgrade
	(*SendRequest)(nil),                     // 3: ic_ledger.pb.v1.SendRequest
	(*SendResponse)(nil),                    // 4: ic_ledger.pb.v1.SendResponse
	(*NotifyRequest)(nil),                   // 5: ic_ledger.pb.v1.NotifyRequest
	(*NotifyResponse)(nil),                  // 6: ic_ledger.pb.v1.NotifyResponse
	(*TransactionNotificationRequest)(nil),  // 7: ic_ledger.pb.v1.TransactionNotificationRequest
	(*TransactionNotificationResponse)(nil), // 8: ic_ledger.pb.v1.TransactionNotificationResponse
	(*CyclesNotificationResponse)(nil),      // 9: ic_ledger.pb.v1.CyclesNotificationResponse
	(*AccountBalanceRequest)(nil),           // 10: ic_ledger.pb.v1.AccountBalanceRequest
	(*AccountBalanceResponse)(nil),          // 11: ic_ledger.pb.v1.AccountBalanceResponse
	(*TipOfChainRequest)(nil),               // 12: ic_ledger.pb.v1.TipOfChainRequest
	(*TipOfChainResponse)(nil),              // 13: ic_ledger.pb.v1.TipOfChainResponse
	(*TotalSupplyRequest)(nil),              // 14: ic_ledger.pb.v1.TotalSupplyRequest
	(*TotalSupplyResponse)(nil),             // 15: ic_ledger.pb.v1.TotalSupplyResponse
	(*LedgerArchiveRequest)(nil),            // 16: ic_ledger.pb.v1.LedgerArchiveRequest
	(*BlockRequest)(nil),                    // 17: ic_ledger.pb.v1.BlockRequest
	(*EncodedBlock)(nil),                    // 18: ic_ledger.pb.v1.EncodedBlock
	(*BlockResponse)(nil),                   // 19: ic_ledger.pb.v1.BlockResponse
	(*GetBlocksRequest)(nil),                // 20: ic_ledger.pb.v1.GetBlocksRequest
	(*Refund)(nil),                          // 21: ic_ledger.pb.v1.Refund
	(*ToppedUp)(nil),                        // 22: ic_ledger.pb.v1.ToppedUp
	(*EncodedBlocks)(nil),                   // 23: ic_ledger.pb.v1.EncodedBlocks
	(*GetBlocksResponse)(nil),               // 24: ic_ledger.pb.v1.GetBlocksResponse
	(*IterBlocksRequest)(nil),               // 25: ic_ledger.pb.v1.IterBlocksRequest
	(*IterBlocksResponse)(nil),              // 26: ic_ledger.pb.v1.IterBlocksResponse
	(*ArchiveIndexEntry)(nil),               // 27: ic_ledger.pb.v1.ArchiveIndexEntry
	(*ArchiveIndexResponse)(nil),            // 28: ic_ledger.pb.v1.ArchiveIndexResponse
	(*ArchiveInit)(nil),                     // 29: ic_ledger.pb.v1.ArchiveInit
	(*ArchiveAddRequest)(nil),               // 30: ic_ledger.pb.v1.ArchiveAddRequest
	(*ArchiveAddResponse)(nil),              // 31: ic_ledger.pb.v1.ArchiveAddResponse
	(*GetNodesRequest)(nil),                 // 32: ic_ledger.pb.v1.GetNodesRequest
	(*GetNodesResponse)(nil),                // 33: ic_ledger.pb.v1.GetNodesResponse
	(*Tokens)(nil),                          // 34: ic_ledger.pb.v1.Tokens
	(*Payment)(nil),                         // 35: ic_ledger.pb.v1.Payment
	(*BlockIndex)(nil),                      // 36: ic_ledger.pb.v1.BlockIndex
	(*Block)(nil),                           // 37: ic_ledger.pb.v1.Block
	(*Hash)(nil),                            // 38: ic_ledger.pb.v1.Hash
	(*Account)(nil),                         // 39: ic_ledger.pb.v1.Account
	(*Transaction)(nil),                     // 40: ic_ledger.pb.v1.Transaction
	(*Send)(nil),                            // 41: ic_ledger.pb.v1.Send
	(*TransferFrom)(nil),                    // 42: ic_ledger.pb.v1.TransferFrom
	(*Approve)(nil),                         // 43: ic_ledger.pb.v1.Approve
	(*Mint)(nil),                            // 44: ic_ledger.pb.v1.Mint
	(*Burn)(nil),                            // 45: ic_ledger.pb.v1.Burn
	(*AccountIdentifier)(nil),               // 46: ic_ledger.pb.v1.AccountIdentifier
	(*Subaccount)(nil),                      // 47: ic_ledger.pb.v1.Subaccount
	(*Memo)(nil),                            // 48: ic_ledger.pb.v1.Memo
	(*Icrc1Memo)(nil),                       // 49: ic_ledger.pb.v1.Icrc1Memo
	(*TimeStamp)(nil),                       // 50: ic_ledger.pb.v1.TimeStamp
	(*Certification)(nil),                   // 51: ic_ledger.pb.v1.Certification
	(*TransferFeeRequest)(nil),              // 52: ic_ledger.pb.v1.TransferFeeRequest
	(*TransferFeeResponse)(nil),             // 53: ic_ledger.pb.v1.TransferFeeResponse
	(*descriptorpb.MessageOptions)(nil),     // 54: google.protobuf.MessageOptions
	(*descriptorpb.FieldOptions)(nil),       // 55: google.protobuf.FieldOptions
}

var file_ledger_proto_msgTypes = make([]protoimpl.MessageInfo, 54)

var file_ledger_proto_rawDesc = []byte{
	0x0a, 0x0c, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f,
	0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x1a,
	0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x22, 0x3e, 0x0a, 0x0b, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x49, 0x64,
	0x12, 0x29, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x88, 0xe2, 0x09, 0x01, 0x52, 0x0c, 0x73,
	0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x49, 0x64, 0x3a, 0x04, 0x80, 0xe2, 0x09,
	0x01, 0x22, 0x98, 0x02, 0x0a, 0x0a, 0x4c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x49, 0x6e, 0x69, 0x74,
	0x12, 0x4b, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x63, 0x5f, 0x6c,
	0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x0e, 0x6d,
	0x69, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3f, 0x0a,
	0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18,
	0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65,
	0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52,
	0x0d, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47,
	0x0a, 0x10, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6e, 0x69, 0x73, 0x74,
	0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65,
	0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63,
	0x69, 0x70, 0x61, 0x6c, 0x49, 0x64, 0x52, 0x0f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x43,
	0x61, 0x6e, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x16, 0x6d, 0x61, 0x78, 0x5f, 0x6d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65,
	0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x0f, 0x0a, 0x0d,
	0x4c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x22, 0xbc, 0x03,
	0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a,
	0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x69, 0x63,
	0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65,
	0x6d, 0x6f, 0x42, 0x04, 0x88, 0xe2, 0x09, 0x01, 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x12, 0x38,
	0x0a, 0x07, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x18, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76,
	0x31, 0x2e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x04, 0x88, 0xe2, 0x09, 0x01, 0x52,
	0x07, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f,
	0x66, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x69, 0x63, 0x5f, 0x6c,
	0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65,
	0x6e, 0x73, 0x42, 0x04, 0x88, 0xe2, 0x09, 0x01, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x46, 0x65, 0x65,
	0x12, 0x4a, 0x0a, 0x0f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x69, 0x63, 0x5f, 0x6c,
	0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x61,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0x88, 0xe2, 0x09, 0x01, 0x52, 0x0e, 0x66, 0x72,
	0x6f, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x02,
	0x74, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65,
	0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x04, 0x88, 0xe2,
	0x09, 0x01, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x3a, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x69, 0x63, 0x5f,
	0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f,
	0x63, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
	0x41, 0x74, 0x12, 0x42, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x63,
	0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69,
	0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
	0x41, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x04, 0x80, 0xe2, 0x09, 0x01, 0x22, 0x56, 0x0a, 0x0c,
	0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x10,
	0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67,
	0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e,
	0x64, 0x65, 0x78, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65,
	0x69, 0x67, 0x68, 0x74, 0x22, 0xec, 0x02, 0x0a, 0x0d, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f,
	0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x69,
	0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x42,
	0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x04, 0x88, 0xe2, 0x09, 0x01, 0x52,
	0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x36, 0x0a, 0x07,
	0x6d, 0x61, 0x78, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
	0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e,
	0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x42, 0x04, 0x88, 0xe2, 0x09, 0x01, 0x52, 0x06, 0x6d, 0x61,
	0x78, 0x46, 0x65, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x73, 0x75, 0x62,
	0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
	0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0x88, 0xe2, 0x09, 0x01,
	0x52, 0x0e, 0x66, 0x72, 0x6f, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x12, 0x43, 0x0a, 0x0b, 0x74, 0x6f, 0x5f, 0x63, 0x61, 0x6e, 0x69, 0x73, 0x74, 0x65, 0x72, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65,
	0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61,
	0x6c, 0x49, 0x64, 0x42, 0x04, 0x88, 0xe2, 0x09, 0x01, 0x52, 0x0a, 0x74, 0x6f, 0x43, 0x61, 0x6e,
	0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x0d, 0x74, 0x6f, 0x5f, 0x73, 0x75, 0x62, 0x61,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x69,
	0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53,
	0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0x88, 0xe2, 0x09, 0x01, 0x52,
	0x0c, 0x74, 0x6f, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x04, 0x80,
	0xe2, 0x09, 0x01, 0x22, 0x10, 0x0a, 0x0e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa4, 0x03, 0x0a, 0x1e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67,
	0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70,
	0x61, 0x6c, 0x49, 0x64, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x44, 0x0a, 0x0f, 0x66, 0x72,
	0x6f, 0x6d, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e,
	0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x52, 0x0e, 0x66, 0x72, 0x6f, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x12, 0x2c, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69,
	0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50,
	0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x49, 0x64, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x40,
	0x0a, 0x0d, 0x74, 0x6f, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65,
	0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x52, 0x0c, 0x74, 0x6f, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x12, 0x3e, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67,
	0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e,
	0x64, 0x65, 0x78, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74,
	0x12, 0x2f, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x17, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e,
	0x74, 0x12, 0x29, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x15, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76,
	0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x22, 0x3d, 0x0a, 0x1f,
	0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x66,
	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe5, 0x01, 0x0a, 0x1a,
	0x43, 0x79, 0x63, 0x6c, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x13, 0x63, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x6e, 0x69, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64,
	0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69,
	0x70, 0x61, 0x6c, 0x49, 0x64, 0x48, 0x00, 0x52, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
	0x43, 0x61, 0x6e, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x72, 0x65,
	0x66, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x69, 0x63, 0x5f,
	0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66,
	0x75, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x12, 0x38, 0x0a,
	0x09, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x19, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x55, 0x70, 0x48, 0x00, 0x52, 0x08, 0x74,
	0x6f, 0x70, 0x70, 0x65, 0x64, 0x55, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x22, 0x55, 0x0a, 0x15, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61,
	0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x07,
	0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e,
	0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e,
	0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65,
	0x72, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x4b, 0x0a, 0x16, 0x41, 0x63,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65,
	0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x07,
	0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x13, 0x0a, 0x11, 0x54, 0x69, 0x70, 0x4f, 0x66,
	0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x9a, 0x01, 0x0a,
	0x12, 0x54, 0x69, 0x70, 0x4f, 0x66, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x63, 0x5f,
	0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x65, 0x72,
	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x63, 0x65, 0x72, 0x74,
	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0c, 0x63, 0x68, 0x61,
	0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1b, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76,
	0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0b, 0x63, 0x68,
	0x61, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x14, 0x0a, 0x12, 0x54, 0x6f, 0x74,
	0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22,
	0x51, 0x0a, 0x13, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f,
	0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x69,
	0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54,
	0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70,
	0x6c, 0x79, 0x22, 0x50, 0x0a, 0x14, 0x4c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x41, 0x72, 0x63, 0x68,
	0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69,
	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
	0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e,
	0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x22, 0x31, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65,
	0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63,
	0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x24, 0x0a, 0x0c, 0x45, 0x6e, 0x63, 0x6f, 0x64,
	0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x98, 0x01,
	0x0a, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x35, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,
	0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31,
	0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52,
	0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x3f, 0x0a, 0x0b, 0x63, 0x61, 0x6e, 0x69, 0x73, 0x74,
	0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x63,
	0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72,
	0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x49, 0x64, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x61, 0x6e,
	0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b,
	0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x40, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42,
	0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05,
	0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x74, 0x61,
	0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x53, 0x0a, 0x06, 0x52, 0x65,
	0x66, 0x75, 0x6e, 0x64, 0x12, 0x33, 0x0a, 0x06, 0x72, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72,
	0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x64, 0x65,
	0x78, 0x52, 0x06, 0x72, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72,
	0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22,
	0x0a, 0x0a, 0x08, 0x54, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x55, 0x70, 0x22, 0x46, 0x0a, 0x0d, 0x45,
	0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x35, 0x0a, 0x06,
	0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69,
	0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x45,
	0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x06, 0x62, 0x6c, 0x6f,
	0x63, 0x6b, 0x73, 0x22, 0x7b, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x62, 0x6c, 0x6f, 0x63,
	0x6b, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65,
	0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x64,
	0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x48, 0x00, 0x52, 0x06, 0x62, 0x6c, 0x6f, 0x63,
	0x6b, 0x73, 0x12, 0x16, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x14, 0x0a, 0x12, 0x67, 0x65,
	0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
	0x22, 0x41, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c,
	0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, 0x65, 0x6e,
	0x67, 0x74, 0x68, 0x22, 0x4b, 0x0a, 0x12, 0x49, 0x74, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b,
	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x62, 0x6c, 0x6f,
	0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x63, 0x5f, 0x6c,
	0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x63, 0x6f,
	0x64, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73,
	0x22, 0x90, 0x01, 0x0a, 0x11, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x64, 0x65,
	0x78, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74,
	0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x68, 0x65, 0x69,
	0x67, 0x68, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x65, 0x69, 0x67, 0x68,
	0x74, 0x5f, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x68, 0x65, 0x69, 0x67,
	0x68, 0x74, 0x54, 0x6f, 0x12, 0x3d, 0x0a, 0x0b, 0x63, 0x61, 0x6e, 0x69, 0x73, 0x74, 0x65, 0x72,
	0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x63, 0x5f, 0x6c,
	0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x69, 0x6e,
	0x63, 0x69, 0x70, 0x61, 0x6c, 0x49, 0x64, 0x52, 0x0a, 0x63, 0x61, 0x6e, 0x69, 0x73, 0x74, 0x65,
	0x72, 0x49, 0x64, 0x22, 0x54, 0x0a, 0x14, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x49, 0x6e,
	0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x65,
	0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69,
	0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x41,
	0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x74, 0x72, 0x79,
	0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, 0x7e, 0x0a, 0x0b, 0x41, 0x72, 0x63,
	0x68, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x3a, 0x0a, 0x1a, 0x6e, 0x6f, 0x64, 0x65,
	0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65,
	0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x6e, 0x6f,
	0x64, 0x65, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x42,
	0x79, 0x74, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x16, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x43, 0x0a, 0x11, 0x41, 0x72, 0x63,
	0x68, 0x69, 0x76, 0x65, 0x41, 0x64, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e,
	0x0a, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16,
	0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31,
	0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x22, 0x14,
	0x0a, 0x12, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x11, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x46, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4e, 0x6f,
	0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x6e,
	0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x63, 0x5f,
	0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x69,
	0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x49, 0x64, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22,
	0x26, 0x0a, 0x06, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x03, 0x65, 0x38, 0x73,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x88, 0xe2, 0x09, 0x01, 0x52, 0x03, 0x65, 0x38,
	0x73, 0x3a, 0x04, 0x80, 0xe2, 0x09, 0x01, 0x22, 0x53, 0x0a, 0x07, 0x50, 0x61, 0x79, 0x6d, 0x65,
	0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x67,
	0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x69, 0x63, 0x5f, 0x6c,
	0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65,
	0x6e, 0x73, 0x42, 0x04, 0x88, 0xe2, 0x09, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76,
	0x65, 0x72, 0x47, 0x65, 0x74, 0x73, 0x3a, 0x04, 0x80, 0xe2, 0x09, 0x01, 0x22, 0x30, 0x0a, 0x0a,
	0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x06, 0x68, 0x65,
	0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x88, 0xe2, 0x09, 0x01,
	0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x04, 0x80, 0xe2, 0x09, 0x01, 0x22, 0xb9,
	0x01, 0x0a, 0x05, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x36, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65,
	0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e,
	0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e,
	0x48, 0x61, 0x73, 0x68, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68,
	0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e,
	0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x52,
	0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3e, 0x0a, 0x0b, 0x74, 0x72,
	0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1c, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76,
	0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x74,
	0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x1a, 0x0a, 0x04, 0x48, 0x61,
	0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c,
	0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x80, 0x01, 0x0a, 0x07, 0x41, 0x63, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67,
	0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e,
	0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x31, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64,
	0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73,
	0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x86, 0x03, 0x0a, 0x0b, 0x54, 0x72,
	0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x04, 0x62, 0x75, 0x72,
	0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64,
	0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x72, 0x6e, 0x48, 0x00,
	0x52, 0x04, 0x62, 0x75, 0x72, 0x6e, 0x12, 0x2b, 0x0a, 0x04, 0x6d, 0x69, 0x6e, 0x74, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72,
	0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6d,
	0x69, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x04, 0x73, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x15, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62,
	0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x04, 0x73, 0x65, 0x6e, 0x64,
	0x12, 0x29, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,
	0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31,
	0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x12, 0x39, 0x0a, 0x0a, 0x69,
	0x63, 0x72, 0x63, 0x31, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1a, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76,
	0x31, 0x2e, 0x49, 0x63, 0x72, 0x63, 0x31, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x09, 0x69, 0x63, 0x72,
	0x63, 0x31, 0x4d, 0x65, 0x6d, 0x6f, 0x12, 0x3a, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x69, 0x63, 0x5f,
	0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f,
	0x63, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
	0x41, 0x74, 0x12, 0x42, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x63,
	0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69,
	0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
	0x41, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66,
	0x65, 0x72, 0x22, 0xde, 0x02, 0x0a, 0x04, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x36, 0x0a, 0x04, 0x66,
	0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x63, 0x5f, 0x6c,
	0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x04, 0x66,
	0x72, 0x6f, 0x6d, 0x12, 0x32, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x22, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76,
	0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66,
	0x69, 0x65, 0x72, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x2f, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e,
	0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64,
	0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73,
	0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f,
	0x66, 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x69, 0x63, 0x5f, 0x6c,
	0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65,
	0x6e, 0x73, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x46, 0x65, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x61, 0x70,
	0x70, 0x72, 0x6f, 0x76, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x69, 0x63,
	0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70,
	0x70, 0x72, 0x6f, 0x76, 0x65, 0x48, 0x00, 0x52, 0x07, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65,
	0x12, 0x44, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x66, 0x72, 0x6f,
	0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64,
	0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66,
	0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x48, 0x00, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66,
	0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x0b, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
	0x69, 0x6f, 0x6e, 0x22, 0x4c, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x46,
	0x72, 0x6f, 0x6d, 0x12, 0x3c, 0x0a, 0x07, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72,
	0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64,
	0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x07, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65,
	0x72, 0x22, 0xc3, 0x01, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x12, 0x35, 0x0a,
	0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x17, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77,
	0x61, 0x6e, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f,
	0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65,
	0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x53,
	0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x12,
	0x46, 0x0a, 0x12, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6c, 0x6c, 0x6f,
	0x77, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x69, 0x63,
	0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f,
	0x6b, 0x65, 0x6e, 0x73, 0x52, 0x11, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x6c,
	0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x6b, 0x0a, 0x04, 0x4d, 0x69, 0x6e, 0x74, 0x12,
	0x32, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x63,
	0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52,
	0x02, 0x74, 0x6f, 0x12, 0x2f, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e,
	0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x06, 0x61, 0x6d,
	0x6f, 0x75, 0x6e, 0x74, 0x22, 0xad, 0x01, 0x0a, 0x04, 0x42, 0x75, 0x72, 0x6e, 0x12, 0x36, 0x0a,
	0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x63,
	0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52,
	0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x2f, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64, 0x67, 0x65,
	0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x06,
	0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x07, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65,
	0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x64,
	0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x07, 0x73, 0x70, 0x65,
	0x6e, 0x64, 0x65, 0x72, 0x22, 0x33, 0x0a, 0x11, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49,
	0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x04, 0x68, 0x61, 0x73,
	0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x88, 0xe2, 0x09, 0x01, 0x52, 0x04, 0x68,
	0x61, 0x73, 0x68, 0x3a, 0x04, 0x80, 0xe2, 0x09, 0x01, 0x22, 0x39, 0x0a, 0x0a, 0x53, 0x75, 0x62,
	0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x5f, 0x61,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x88, 0xe2,
	0x09, 0x01, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x04,
	0x80, 0xe2, 0x09, 0x01, 0x22, 0x26, 0x0a, 0x04, 0x4d, 0x65, 0x6d, 0x6f, 0x12, 0x18, 0x0a, 0x04,
	0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x88, 0xe2, 0x09, 0x01,
	0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x3a, 0x04, 0x80, 0xe2, 0x09, 0x01, 0x22, 0x2b, 0x0a, 0x09,
	0x49, 0x63, 0x72, 0x63, 0x31, 0x4d, 0x65, 0x6d, 0x6f, 0x12, 0x18, 0x0a, 0x04, 0x6d, 0x65, 0x6d,
	0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x88, 0xe2, 0x09, 0x01, 0x52, 0x04, 0x6d,
	0x65, 0x6d, 0x6f, 0x3a, 0x04, 0x80, 0xe2, 0x09, 0x01, 0x22, 0x34, 0x0a, 0x09, 0x54, 0x69, 0x6d,
	0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
	0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x0e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x61, 0x6e, 0x6f, 0x73, 0x22,
	0x35, 0x0a, 0x0d, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x24, 0x0a, 0x0d, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x14, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66,
	0x65, 0x72, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x51, 0x0a, 0x13,
	0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x46, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f,
	0x66, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x69, 0x63, 0x5f, 0x6c,
	0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65,
	0x6e, 0x73, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x46, 0x65, 0x65, 0x3a,
	0x4f, 0x0a, 0x12, 0x74, 0x75, 0x69, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xa0, 0x9c, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10,
	0x74, 0x75, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x3a, 0x5b, 0x0a, 0x1a, 0x74, 0x75, 0x69, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x64,
	0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x71, 0x32, 0x5f, 0x32, 0x30, 0x32, 0x31, 0x12, 0x1d,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xa1, 0x9c,
	0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x74, 0x75, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64,
	0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x51, 0x32, 0x32, 0x30, 0x32, 0x31, 0x42, 0x0a, 0x5a,
	0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x33,
}

func file_ledger_proto_init() {
	if File_ledger_proto != nil {
		return
	}
	file_ledger_proto_msgTypes[9].OneofWrappers = []any{
		(*CyclesNotificationResponse_CreatedCanisterId)(nil),
		(*CyclesNotificationResponse_Refund)(nil),
		(*CyclesNotificationResponse_ToppedUp)(nil),
	}
	file_ledger_proto_msgTypes[19].OneofWrappers = []any{
		(*BlockResponse_Block)(nil),
		(*BlockResponse_CanisterId)(nil),
	}
	file_ledger_proto_msgTypes[24].OneofWrappers = []any{
		(*GetBlocksResponse_Blocks)(nil),
		(*GetBlocksResponse_Error)(nil),
	}
	file_ledger_proto_msgTypes[40].OneofWrappers = []any{
		(*Transaction_Burn)(nil),
		(*Transaction_Mint)(nil),
		(*Transaction_Send)(nil),
	}
	file_ledger_proto_msgTypes[41].OneofWrappers = []any{
		(*Send_Approve)(nil),
		(*Send_TransferFrom)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_ledger_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   54,
			NumExtensions: 2,
			NumServices:   0,
		},
		GoTypes:           file_ledger_proto_goTypes,
		DependencyIndexes: file_ledger_proto_depIdxs,
		MessageInfos:      file_ledger_proto_msgTypes,
		ExtensionInfos:    file_ledger_proto_extTypes,
	}.Build()
	File_ledger_proto = out.File
	file_ledger_proto_rawDesc = nil
	file_ledger_proto_goTypes = nil
	file_ledger_proto_depIdxs = nil
}

func file_ledger_proto_rawDescGZIP() []byte {
	file_ledger_proto_rawDescOnce.Do(func() {
		file_ledger_proto_rawDescData = protoimpl.X.CompressGZIP(file_ledger_proto_rawDescData)
	})
	return file_ledger_proto_rawDescData
}

func init() { file_ledger_proto_init() }

type Account struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Identifier    *AccountIdentifier     `protobuf:"bytes,1,opt,name=identifier,proto3" json:"identifier,omitempty"`
	Balance       *Tokens                `protobuf:"bytes,2,opt,name=balance,proto3" json:"balance,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use Account.ProtoReflect.Descriptor instead.
func (*Account) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{39}
}

func (x *Account) GetBalance() *Tokens {
	if x != nil {
		return x.Balance
	}
	return nil
}

func (x *Account) GetIdentifier() *AccountIdentifier {
	if x != nil {
		return x.Identifier
	}
	return nil
}

func (*Account) ProtoMessage() {}

func (x *Account) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[39]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *Account) Reset() {
	*x = Account{}
	mi := &file_ledger_proto_msgTypes[39]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Account) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// Get the balance of an account
type AccountBalanceRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Account       *AccountIdentifier     `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use AccountBalanceRequest.ProtoReflect.Descriptor instead.
func (*AccountBalanceRequest) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{10}
}

func (x *AccountBalanceRequest) GetAccount() *AccountIdentifier {
	if x != nil {
		return x.Account
	}
	return nil
}

func (*AccountBalanceRequest) ProtoMessage() {}

func (x *AccountBalanceRequest) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[10]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *AccountBalanceRequest) Reset() {
	*x = AccountBalanceRequest{}
	mi := &file_ledger_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AccountBalanceRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type AccountBalanceResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Balance       *Tokens                `protobuf:"bytes,1,opt,name=balance,proto3" json:"balance,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use AccountBalanceResponse.ProtoReflect.Descriptor instead.
func (*AccountBalanceResponse) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{11}
}

func (x *AccountBalanceResponse) GetBalance() *Tokens {
	if x != nil {
		return x.Balance
	}
	return nil
}

func (*AccountBalanceResponse) ProtoMessage() {}

func (x *AccountBalanceResponse) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[11]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *AccountBalanceResponse) Reset() {
	*x = AccountBalanceResponse{}
	mi := &file_ledger_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AccountBalanceResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type AccountIdentifier struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Can contain either:
	//   - the 32 byte identifier (4 byte checksum + 28 byte hash)
	//   - the 28 byte hash
	Hash          []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use AccountIdentifier.ProtoReflect.Descriptor instead.
func (*AccountIdentifier) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{46}
}

func (x *AccountIdentifier) GetHash() []byte {
	if x != nil {
		return x.Hash
	}
	return nil
}

func (*AccountIdentifier) ProtoMessage() {}

func (x *AccountIdentifier) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[46]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *AccountIdentifier) Reset() {
	*x = AccountIdentifier{}
	mi := &file_ledger_proto_msgTypes[46]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AccountIdentifier) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type Approve struct {
	state             protoimpl.MessageState `protogen:"open.v1"`
	Allowance         *Tokens                `protobuf:"bytes,1,opt,name=allowance,proto3" json:"allowance,omitempty"`
	ExpiresAt         *TimeStamp             `protobuf:"bytes,2,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"`
	ExpectedAllowance *Tokens                `protobuf:"bytes,3,opt,name=expected_allowance,json=expectedAllowance,proto3" json:"expected_allowance,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

// Deprecated: Use Approve.ProtoReflect.Descriptor instead.
func (*Approve) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{43}
}

func (x *Approve) GetAllowance() *Tokens {
	if x != nil {
		return x.Allowance
	}
	return nil
}

func (x *Approve) GetExpectedAllowance() *Tokens {
	if x != nil {
		return x.ExpectedAllowance
	}
	return nil
}

func (x *Approve) GetExpiresAt() *TimeStamp {
	if x != nil {
		return x.ExpiresAt
	}
	return nil
}

func (*Approve) ProtoMessage() {}

func (x *Approve) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[43]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *Approve) Reset() {
	*x = Approve{}
	mi := &file_ledger_proto_msgTypes[43]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Approve) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// Add blocks to the archive canister
type ArchiveAddRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Blocks        []*Block               `protobuf:"bytes,1,rep,name=blocks,proto3" json:"blocks,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use ArchiveAddRequest.ProtoReflect.Descriptor instead.
func (*ArchiveAddRequest) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{30}
}

func (x *ArchiveAddRequest) GetBlocks() []*Block {
	if x != nil {
		return x.Blocks
	}
	return nil
}

func (*ArchiveAddRequest) ProtoMessage() {}

func (x *ArchiveAddRequest) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[30]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *ArchiveAddRequest) Reset() {
	*x = ArchiveAddRequest{}
	mi := &file_ledger_proto_msgTypes[30]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ArchiveAddRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type ArchiveAddResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use ArchiveAddResponse.ProtoReflect.Descriptor instead.
func (*ArchiveAddResponse) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{31}
}

func (*ArchiveAddResponse) ProtoMessage() {}

func (x *ArchiveAddResponse) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[31]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *ArchiveAddResponse) Reset() {
	*x = ArchiveAddResponse{}
	mi := &file_ledger_proto_msgTypes[31]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ArchiveAddResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type ArchiveIndexEntry struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	HeightFrom    uint64                 `protobuf:"varint,1,opt,name=height_from,json=heightFrom,proto3" json:"height_from,omitempty"`
	HeightTo      uint64                 `protobuf:"varint,2,opt,name=height_to,json=heightTo,proto3" json:"height_to,omitempty"`
	CanisterId    *PrincipalId           `protobuf:"bytes,3,opt,name=canister_id,json=canisterId,proto3" json:"canister_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use ArchiveIndexEntry.ProtoReflect.Descriptor instead.
func (*ArchiveIndexEntry) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{27}
}

func (x *ArchiveIndexEntry) GetCanisterId() *PrincipalId {
	if x != nil {
		return x.CanisterId
	}
	return nil
}

func (x *ArchiveIndexEntry) GetHeightFrom() uint64 {
	if x != nil {
		return x.HeightFrom
	}
	return 0
}

func (x *ArchiveIndexEntry) GetHeightTo() uint64 {
	if x != nil {
		return x.HeightTo
	}
	return 0
}

func (*ArchiveIndexEntry) ProtoMessage() {}

func (x *ArchiveIndexEntry) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[27]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *ArchiveIndexEntry) Reset() {
	*x = ArchiveIndexEntry{}
	mi := &file_ledger_proto_msgTypes[27]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ArchiveIndexEntry) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type ArchiveIndexResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Entries       []*ArchiveIndexEntry   `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use ArchiveIndexResponse.ProtoReflect.Descriptor instead.
func (*ArchiveIndexResponse) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{28}
}

func (x *ArchiveIndexResponse) GetEntries() []*ArchiveIndexEntry {
	if x != nil {
		return x.Entries
	}
	return nil
}

func (*ArchiveIndexResponse) ProtoMessage() {}

func (x *ArchiveIndexResponse) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[28]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *ArchiveIndexResponse) Reset() {
	*x = ArchiveIndexResponse{}
	mi := &file_ledger_proto_msgTypes[28]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ArchiveIndexResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// * Archive canister *
// Init the archive canister
type ArchiveInit struct {
	state                  protoimpl.MessageState `protogen:"open.v1"`
	NodeMaxMemorySizeBytes uint32                 `protobuf:"varint,1,opt,name=node_max_memory_size_bytes,json=nodeMaxMemorySizeBytes,proto3" json:"node_max_memory_size_bytes,omitempty"`
	MaxMessageSizeBytes    uint32                 `protobuf:"varint,2,opt,name=max_message_size_bytes,json=maxMessageSizeBytes,proto3" json:"max_message_size_bytes,omitempty"`
	unknownFields          protoimpl.UnknownFields
	sizeCache              protoimpl.SizeCache
}

// Deprecated: Use ArchiveInit.ProtoReflect.Descriptor instead.
func (*ArchiveInit) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{29}
}

func (x *ArchiveInit) GetMaxMessageSizeBytes() uint32 {
	if x != nil {
		return x.MaxMessageSizeBytes
	}
	return 0
}

func (x *ArchiveInit) GetNodeMaxMemorySizeBytes() uint32 {
	if x != nil {
		return x.NodeMaxMemorySizeBytes
	}
	return 0
}

func (*ArchiveInit) ProtoMessage() {}

func (x *ArchiveInit) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[29]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *ArchiveInit) Reset() {
	*x = ArchiveInit{}
	mi := &file_ledger_proto_msgTypes[29]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ArchiveInit) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// This is the
type Block struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	ParentHash    *Hash                  `protobuf:"bytes,1,opt,name=parent_hash,json=parentHash,proto3" json:"parent_hash,omitempty"`
	Timestamp     *TimeStamp             `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Transaction   *Transaction           `protobuf:"bytes,3,opt,name=transaction,proto3" json:"transaction,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use Block.ProtoReflect.Descriptor instead.
func (*Block) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{37}
}

func (x *Block) GetParentHash() *Hash {
	if x != nil {
		return x.ParentHash
	}
	return nil
}

func (x *Block) GetTimestamp() *TimeStamp {
	if x != nil {
		return x.Timestamp
	}
	return nil
}

func (x *Block) GetTransaction() *Transaction {
	if x != nil {
		return x.Transaction
	}
	return nil
}

func (*Block) ProtoMessage() {}

func (x *Block) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[37]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *Block) Reset() {
	*x = Block{}
	mi := &file_ledger_proto_msgTypes[37]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Block) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type BlockIndex struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Height        uint64                 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use BlockIndex.ProtoReflect.Descriptor instead.
func (*BlockIndex) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{36}
}

func (x *BlockIndex) GetHeight() uint64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (*BlockIndex) ProtoMessage() {}

func (x *BlockIndex) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[36]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *BlockIndex) Reset() {
	*x = BlockIndex{}
	mi := &file_ledger_proto_msgTypes[36]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *BlockIndex) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// Get a single block
type BlockRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	BlockHeight   uint64                 `protobuf:"varint,1,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use BlockRequest.ProtoReflect.Descriptor instead.
func (*BlockRequest) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{17}
}

func (x *BlockRequest) GetBlockHeight() uint64 {
	if x != nil {
		return x.BlockHeight
	}
	return 0
}

func (*BlockRequest) ProtoMessage() {}

func (x *BlockRequest) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[17]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *BlockRequest) Reset() {
	*x = BlockRequest{}
	mi := &file_ledger_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *BlockRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type BlockResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to BlockContent:
	//
	//	*BlockResponse_Block
	//	*BlockResponse_CanisterId
	BlockContent  isBlockResponse_BlockContent `protobuf_oneof:"block_content"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use BlockResponse.ProtoReflect.Descriptor instead.
func (*BlockResponse) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{19}
}

func (x *BlockResponse) GetBlock() *EncodedBlock {
	if x != nil {
		if x, ok := x.BlockContent.(*BlockResponse_Block); ok {
			return x.Block
		}
	}
	return nil
}

func (x *BlockResponse) GetBlockContent() isBlockResponse_BlockContent {
	if x != nil {
		return x.BlockContent
	}
	return nil
}

func (x *BlockResponse) GetCanisterId() *PrincipalId {
	if x != nil {
		if x, ok := x.BlockContent.(*BlockResponse_CanisterId); ok {
			return x.CanisterId
		}
	}
	return nil
}

func (*BlockResponse) ProtoMessage() {}

func (x *BlockResponse) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_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)
}

func (x *BlockResponse) Reset() {
	*x = BlockResponse{}
	mi := &file_ledger_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *BlockResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type BlockResponse_Block struct {
	Block *EncodedBlock `protobuf:"bytes,1,opt,name=block,proto3,oneof"`
}

func (*BlockResponse_Block) isBlockResponse_BlockContent() {}

type BlockResponse_CanisterId struct {
	CanisterId *PrincipalId `protobuf:"bytes,2,opt,name=canister_id,json=canisterId,proto3,oneof"`
}

func (*BlockResponse_CanisterId) isBlockResponse_BlockContent() {}

type Burn struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	From          *AccountIdentifier     `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"`
	Amount        *Tokens                `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"`
	Spender       *AccountIdentifier     `protobuf:"bytes,4,opt,name=spender,proto3" json:"spender,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use Burn.ProtoReflect.Descriptor instead.
func (*Burn) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{45}
}

func (x *Burn) GetAmount() *Tokens {
	if x != nil {
		return x.Amount
	}
	return nil
}

func (x *Burn) GetFrom() *AccountIdentifier {
	if x != nil {
		return x.From
	}
	return nil
}

func (x *Burn) GetSpender() *AccountIdentifier {
	if x != nil {
		return x.Spender
	}
	return nil
}

func (*Burn) ProtoMessage() {}

func (x *Burn) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[45]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *Burn) Reset() {
	*x = Burn{}
	mi := &file_ledger_proto_msgTypes[45]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Burn) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type Certification struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Certification []byte                 `protobuf:"bytes,1,opt,name=certification,proto3" json:"certification,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use Certification.ProtoReflect.Descriptor instead.
func (*Certification) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{51}
}

func (x *Certification) GetCertification() []byte {
	if x != nil {
		return x.Certification
	}
	return nil
}

func (*Certification) ProtoMessage() {}

func (x *Certification) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[51]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *Certification) Reset() {
	*x = Certification{}
	mi := &file_ledger_proto_msgTypes[51]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Certification) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type CyclesNotificationResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Response:
	//
	//	*CyclesNotificationResponse_CreatedCanisterId
	//	*CyclesNotificationResponse_Refund
	//	*CyclesNotificationResponse_ToppedUp
	Response      isCyclesNotificationResponse_Response `protobuf_oneof:"response"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use CyclesNotificationResponse.ProtoReflect.Descriptor instead.
func (*CyclesNotificationResponse) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{9}
}

func (x *CyclesNotificationResponse) GetCreatedCanisterId() *PrincipalId {
	if x != nil {
		if x, ok := x.Response.(*CyclesNotificationResponse_CreatedCanisterId); ok {
			return x.CreatedCanisterId
		}
	}
	return nil
}

func (x *CyclesNotificationResponse) GetRefund() *Refund {
	if x != nil {
		if x, ok := x.Response.(*CyclesNotificationResponse_Refund); ok {
			return x.Refund
		}
	}
	return nil
}

func (x *CyclesNotificationResponse) GetResponse() isCyclesNotificationResponse_Response {
	if x != nil {
		return x.Response
	}
	return nil
}

func (x *CyclesNotificationResponse) GetToppedUp() *ToppedUp {
	if x != nil {
		if x, ok := x.Response.(*CyclesNotificationResponse_ToppedUp); ok {
			return x.ToppedUp
		}
	}
	return nil
}

func (*CyclesNotificationResponse) ProtoMessage() {}

func (x *CyclesNotificationResponse) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *CyclesNotificationResponse) Reset() {
	*x = CyclesNotificationResponse{}
	mi := &file_ledger_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CyclesNotificationResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type CyclesNotificationResponse_CreatedCanisterId struct {
	CreatedCanisterId *PrincipalId `protobuf:"bytes,1,opt,name=created_canister_id,json=createdCanisterId,proto3,oneof"`
}

func (*CyclesNotificationResponse_CreatedCanisterId) isCyclesNotificationResponse_Response() {}

type CyclesNotificationResponse_Refund struct {
	Refund *Refund `protobuf:"bytes,2,opt,name=refund,proto3,oneof"`
}

func (*CyclesNotificationResponse_Refund) isCyclesNotificationResponse_Response() {}

type CyclesNotificationResponse_ToppedUp struct {
	ToppedUp *ToppedUp `protobuf:"bytes,3,opt,name=topped_up,json=toppedUp,proto3,oneof"`
}

func (*CyclesNotificationResponse_ToppedUp) isCyclesNotificationResponse_Response() {}

type EncodedBlock struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Block         []byte                 `protobuf:"bytes,1,opt,name=block,proto3" json:"block,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use EncodedBlock.ProtoReflect.Descriptor instead.
func (*EncodedBlock) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{18}
}

func (x *EncodedBlock) GetBlock() []byte {
	if x != nil {
		return x.Block
	}
	return nil
}

func (*EncodedBlock) ProtoMessage() {}

func (x *EncodedBlock) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_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)
}

func (x *EncodedBlock) Reset() {
	*x = EncodedBlock{}
	mi := &file_ledger_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *EncodedBlock) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type EncodedBlocks struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Blocks        []*EncodedBlock        `protobuf:"bytes,1,rep,name=blocks,proto3" json:"blocks,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use EncodedBlocks.ProtoReflect.Descriptor instead.
func (*EncodedBlocks) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{23}
}

func (x *EncodedBlocks) GetBlocks() []*EncodedBlock {
	if x != nil {
		return x.Blocks
	}
	return nil
}

func (*EncodedBlocks) ProtoMessage() {}

func (x *EncodedBlocks) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_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)
}

func (x *EncodedBlocks) Reset() {
	*x = EncodedBlocks{}
	mi := &file_ledger_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *EncodedBlocks) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// Get a set of blocks
type GetBlocksRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Start         uint64                 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"`
	Length        uint64                 `protobuf:"varint,2,opt,name=length,proto3" json:"length,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use GetBlocksRequest.ProtoReflect.Descriptor instead.
func (*GetBlocksRequest) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{20}
}

func (x *GetBlocksRequest) GetLength() uint64 {
	if x != nil {
		return x.Length
	}
	return 0
}

func (x *GetBlocksRequest) GetStart() uint64 {
	if x != nil {
		return x.Start
	}
	return 0
}

func (*GetBlocksRequest) ProtoMessage() {}

func (x *GetBlocksRequest) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_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)
}

func (x *GetBlocksRequest) Reset() {
	*x = GetBlocksRequest{}
	mi := &file_ledger_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetBlocksRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type GetBlocksResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to GetBlocksContent:
	//
	//	*GetBlocksResponse_Blocks
	//	*GetBlocksResponse_Error
	GetBlocksContent isGetBlocksResponse_GetBlocksContent `protobuf_oneof:"get_blocks_content"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

// Deprecated: Use GetBlocksResponse.ProtoReflect.Descriptor instead.
func (*GetBlocksResponse) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{24}
}

func (x *GetBlocksResponse) GetBlocks() *EncodedBlocks {
	if x != nil {
		if x, ok := x.GetBlocksContent.(*GetBlocksResponse_Blocks); ok {
			return x.Blocks
		}
	}
	return nil
}

func (x *GetBlocksResponse) GetError() string {
	if x != nil {
		if x, ok := x.GetBlocksContent.(*GetBlocksResponse_Error); ok {
			return x.Error
		}
	}
	return ""
}

func (x *GetBlocksResponse) GetGetBlocksContent() isGetBlocksResponse_GetBlocksContent {
	if x != nil {
		return x.GetBlocksContent
	}
	return nil
}

func (*GetBlocksResponse) ProtoMessage() {}

func (x *GetBlocksResponse) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[24]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *GetBlocksResponse) Reset() {
	*x = GetBlocksResponse{}
	mi := &file_ledger_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetBlocksResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type GetBlocksResponse_Blocks struct {
	Blocks *EncodedBlocks `protobuf:"bytes,1,opt,name=blocks,proto3,oneof"`
}

func (*GetBlocksResponse_Blocks) isGetBlocksResponse_GetBlocksContent() {}

type GetBlocksResponse_Error struct {
	Error string `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
}

func (*GetBlocksResponse_Error) isGetBlocksResponse_GetBlocksContent() {}

// Fetch a list of all of the archive nodes
type GetNodesRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use GetNodesRequest.ProtoReflect.Descriptor instead.
func (*GetNodesRequest) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{32}
}

func (*GetNodesRequest) ProtoMessage() {}

func (x *GetNodesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[32]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *GetNodesRequest) Reset() {
	*x = GetNodesRequest{}
	mi := &file_ledger_proto_msgTypes[32]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetNodesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type GetNodesResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Nodes         []*PrincipalId         `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use GetNodesResponse.ProtoReflect.Descriptor instead.
func (*GetNodesResponse) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{33}
}

func (x *GetNodesResponse) GetNodes() []*PrincipalId {
	if x != nil {
		return x.Nodes
	}
	return nil
}

func (*GetNodesResponse) ProtoMessage() {}

func (x *GetNodesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[33]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *GetNodesResponse) Reset() {
	*x = GetNodesResponse{}
	mi := &file_ledger_proto_msgTypes[33]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetNodesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type Hash struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Hash          []byte                 `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use Hash.ProtoReflect.Descriptor instead.
func (*Hash) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{38}
}

func (x *Hash) GetHash() []byte {
	if x != nil {
		return x.Hash
	}
	return nil
}

func (*Hash) ProtoMessage() {}

func (x *Hash) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[38]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *Hash) Reset() {
	*x = Hash{}
	mi := &file_ledger_proto_msgTypes[38]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Hash) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type Icrc1Memo struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Memo          []byte                 `protobuf:"bytes,1,opt,name=memo,proto3" json:"memo,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use Icrc1Memo.ProtoReflect.Descriptor instead.
func (*Icrc1Memo) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{49}
}

func (x *Icrc1Memo) GetMemo() []byte {
	if x != nil {
		return x.Memo
	}
	return nil
}

func (*Icrc1Memo) ProtoMessage() {}

func (x *Icrc1Memo) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[49]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *Icrc1Memo) Reset() {
	*x = Icrc1Memo{}
	mi := &file_ledger_proto_msgTypes[49]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Icrc1Memo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// Iterate through blocks
type IterBlocksRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Start         uint64                 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"`
	Length        uint64                 `protobuf:"varint,2,opt,name=length,proto3" json:"length,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use IterBlocksRequest.ProtoReflect.Descriptor instead.
func (*IterBlocksRequest) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{25}
}

func (x *IterBlocksRequest) GetLength() uint64 {
	if x != nil {
		return x.Length
	}
	return 0
}

func (x *IterBlocksRequest) GetStart() uint64 {
	if x != nil {
		return x.Start
	}
	return 0
}

func (*IterBlocksRequest) ProtoMessage() {}

func (x *IterBlocksRequest) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[25]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *IterBlocksRequest) Reset() {
	*x = IterBlocksRequest{}
	mi := &file_ledger_proto_msgTypes[25]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *IterBlocksRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type IterBlocksResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Blocks        []*EncodedBlock        `protobuf:"bytes,1,rep,name=blocks,proto3" json:"blocks,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use IterBlocksResponse.ProtoReflect.Descriptor instead.
func (*IterBlocksResponse) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{26}
}

func (x *IterBlocksResponse) GetBlocks() []*EncodedBlock {
	if x != nil {
		return x.Blocks
	}
	return nil
}

func (*IterBlocksResponse) ProtoMessage() {}

func (x *IterBlocksResponse) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[26]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *IterBlocksResponse) Reset() {
	*x = IterBlocksResponse{}
	mi := &file_ledger_proto_msgTypes[26]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *IterBlocksResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// Archive any blocks older than this
type LedgerArchiveRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Timestamp     *TimeStamp             `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use LedgerArchiveRequest.ProtoReflect.Descriptor instead.
func (*LedgerArchiveRequest) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{16}
}

func (x *LedgerArchiveRequest) GetTimestamp() *TimeStamp {
	if x != nil {
		return x.Timestamp
	}
	return nil
}

func (*LedgerArchiveRequest) ProtoMessage() {}

func (x *LedgerArchiveRequest) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[16]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *LedgerArchiveRequest) Reset() {
	*x = LedgerArchiveRequest{}
	mi := &file_ledger_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LedgerArchiveRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// Initialise the ledger canister
type LedgerInit struct {
	state               protoimpl.MessageState `protogen:"open.v1"`
	MintingAccount      *AccountIdentifier     `protobuf:"bytes,1,opt,name=minting_account,json=mintingAccount,proto3" json:"minting_account,omitempty"`
	InitialValues       []*Account             `protobuf:"bytes,2,rep,name=initial_values,json=initialValues,proto3" json:"initial_values,omitempty"`
	ArchiveCanister     *PrincipalId           `protobuf:"bytes,3,opt,name=archive_canister,json=archiveCanister,proto3" json:"archive_canister,omitempty"`
	MaxMessageSizeBytes uint32                 `protobuf:"varint,4,opt,name=max_message_size_bytes,json=maxMessageSizeBytes,proto3" json:"max_message_size_bytes,omitempty"`
	unknownFields       protoimpl.UnknownFields
	sizeCache           protoimpl.SizeCache
}

// Deprecated: Use LedgerInit.ProtoReflect.Descriptor instead.
func (*LedgerInit) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{1}
}

func (x *LedgerInit) GetArchiveCanister() *PrincipalId {
	if x != nil {
		return x.ArchiveCanister
	}
	return nil
}

func (x *LedgerInit) GetInitialValues() []*Account {
	if x != nil {
		return x.InitialValues
	}
	return nil
}

func (x *LedgerInit) GetMaxMessageSizeBytes() uint32 {
	if x != nil {
		return x.MaxMessageSizeBytes
	}
	return 0
}

func (x *LedgerInit) GetMintingAccount() *AccountIdentifier {
	if x != nil {
		return x.MintingAccount
	}
	return nil
}

func (*LedgerInit) ProtoMessage() {}

func (x *LedgerInit) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *LedgerInit) Reset() {
	*x = LedgerInit{}
	mi := &file_ledger_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LedgerInit) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// The format of values serialized to/from the stable memory during and upgrade
type LedgerUpgrade struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use LedgerUpgrade.ProtoReflect.Descriptor instead.
func (*LedgerUpgrade) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{2}
}

func (*LedgerUpgrade) ProtoMessage() {}

func (x *LedgerUpgrade) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *LedgerUpgrade) Reset() {
	*x = LedgerUpgrade{}
	mi := &file_ledger_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LedgerUpgrade) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type Memo struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Memo          uint64                 `protobuf:"varint,1,opt,name=memo,proto3" json:"memo,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use Memo.ProtoReflect.Descriptor instead.
func (*Memo) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{48}
}

func (x *Memo) GetMemo() uint64 {
	if x != nil {
		return x.Memo
	}
	return 0
}

func (*Memo) ProtoMessage() {}

func (x *Memo) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[48]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *Memo) Reset() {
	*x = Memo{}
	mi := &file_ledger_proto_msgTypes[48]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Memo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type Mint struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	To            *AccountIdentifier     `protobuf:"bytes,2,opt,name=to,proto3" json:"to,omitempty"`
	Amount        *Tokens                `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use Mint.ProtoReflect.Descriptor instead.
func (*Mint) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{44}
}

func (x *Mint) GetAmount() *Tokens {
	if x != nil {
		return x.Amount
	}
	return nil
}

func (x *Mint) GetTo() *AccountIdentifier {
	if x != nil {
		return x.To
	}
	return nil
}

func (*Mint) ProtoMessage() {}

func (x *Mint) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[44]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *Mint) Reset() {
	*x = Mint{}
	mi := &file_ledger_proto_msgTypes[44]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Mint) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// Notify a canister that it has received a payment
type NotifyRequest struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	BlockHeight    *BlockIndex            `protobuf:"bytes,1,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"`
	MaxFee         *Tokens                `protobuf:"bytes,2,opt,name=max_fee,json=maxFee,proto3" json:"max_fee,omitempty"`
	FromSubaccount *Subaccount            `protobuf:"bytes,3,opt,name=from_subaccount,json=fromSubaccount,proto3" json:"from_subaccount,omitempty"`
	ToCanister     *PrincipalId           `protobuf:"bytes,4,opt,name=to_canister,json=toCanister,proto3" json:"to_canister,omitempty"`
	ToSubaccount   *Subaccount            `protobuf:"bytes,5,opt,name=to_subaccount,json=toSubaccount,proto3" json:"to_subaccount,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

// Deprecated: Use NotifyRequest.ProtoReflect.Descriptor instead.
func (*NotifyRequest) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{5}
}

func (x *NotifyRequest) GetBlockHeight() *BlockIndex {
	if x != nil {
		return x.BlockHeight
	}
	return nil
}

func (x *NotifyRequest) GetFromSubaccount() *Subaccount {
	if x != nil {
		return x.FromSubaccount
	}
	return nil
}

func (x *NotifyRequest) GetMaxFee() *Tokens {
	if x != nil {
		return x.MaxFee
	}
	return nil
}

func (x *NotifyRequest) GetToCanister() *PrincipalId {
	if x != nil {
		return x.ToCanister
	}
	return nil
}

func (x *NotifyRequest) GetToSubaccount() *Subaccount {
	if x != nil {
		return x.ToSubaccount
	}
	return nil
}

func (*NotifyRequest) ProtoMessage() {}

func (x *NotifyRequest) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *NotifyRequest) Reset() {
	*x = NotifyRequest{}
	mi := &file_ledger_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NotifyRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type NotifyResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use NotifyResponse.ProtoReflect.Descriptor instead.
func (*NotifyResponse) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{6}
}

func (*NotifyResponse) ProtoMessage() {}

func (x *NotifyResponse) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *NotifyResponse) Reset() {
	*x = NotifyResponse{}
	mi := &file_ledger_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NotifyResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type Payment struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	ReceiverGets  *Tokens                `protobuf:"bytes,1,opt,name=receiver_gets,json=receiverGets,proto3" json:"receiver_gets,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use Payment.ProtoReflect.Descriptor instead.
func (*Payment) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{35}
}

func (x *Payment) GetReceiverGets() *Tokens {
	if x != nil {
		return x.ReceiverGets
	}
	return nil
}

func (*Payment) ProtoMessage() {}

func (x *Payment) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[35]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *Payment) Reset() {
	*x = Payment{}
	mi := &file_ledger_proto_msgTypes[35]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Payment) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// A PB container for a PrincipalId, which uniquely identifies
// a principal.
type PrincipalId struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	SerializedId  []byte                 `protobuf:"bytes,1,opt,name=serialized_id,json=serializedId,proto3" json:"serialized_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use PrincipalId.ProtoReflect.Descriptor instead.
func (*PrincipalId) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{0}
}

func (x *PrincipalId) GetSerializedId() []byte {
	if x != nil {
		return x.SerializedId
	}
	return nil
}

func (*PrincipalId) ProtoMessage() {}

func (x *PrincipalId) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *PrincipalId) Reset() {
	*x = PrincipalId{}
	mi := &file_ledger_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *PrincipalId) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type Refund struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Refund        *BlockIndex            `protobuf:"bytes,2,opt,name=refund,proto3" json:"refund,omitempty"`
	Error         string                 `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use Refund.ProtoReflect.Descriptor instead.
func (*Refund) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{21}
}

func (x *Refund) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *Refund) GetRefund() *BlockIndex {
	if x != nil {
		return x.Refund
	}
	return nil
}

func (*Refund) ProtoMessage() {}

func (x *Refund) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_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)
}

func (x *Refund) Reset() {
	*x = Refund{}
	mi := &file_ledger_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Refund) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type Send struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The meaning of the [from] field depends on the transaction type:
	//   - Transfer: [from] is the source account.
	//   - TransferFrom: [from] is the approver.
	//   - Approve: [from] is the approver.
	From *AccountIdentifier `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"`
	// The meaning of the [to] field depends on the transaction type:
	//   - Transfer: [to] is the destination account.
	//   - TransferFrom: [to] is the destination account.
	//   - Approve: [to] is the default account id of the approved principal.
	To *AccountIdentifier `protobuf:"bytes,2,opt,name=to,proto3" json:"to,omitempty"`
	// If the transaction type is Approve, the amount must be zero.
	Amount *Tokens `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"`
	MaxFee *Tokens `protobuf:"bytes,4,opt,name=max_fee,json=maxFee,proto3" json:"max_fee,omitempty"`
	// We represent metadata of new operation types as submessages for
	// backward compatibility with old clients.
	//
	// Types that are valid to be assigned to Extension:
	//
	//	*Send_Approve
	//	*Send_TransferFrom
	Extension     isSend_Extension `protobuf_oneof:"extension"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use Send.ProtoReflect.Descriptor instead.
func (*Send) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{41}
}

func (x *Send) GetAmount() *Tokens {
	if x != nil {
		return x.Amount
	}
	return nil
}

func (x *Send) GetApprove() *Approve {
	if x != nil {
		if x, ok := x.Extension.(*Send_Approve); ok {
			return x.Approve
		}
	}
	return nil
}

func (x *Send) GetExtension() isSend_Extension {
	if x != nil {
		return x.Extension
	}
	return nil
}

func (x *Send) GetFrom() *AccountIdentifier {
	if x != nil {
		return x.From
	}
	return nil
}

func (x *Send) GetMaxFee() *Tokens {
	if x != nil {
		return x.MaxFee
	}
	return nil
}

func (x *Send) GetTo() *AccountIdentifier {
	if x != nil {
		return x.To
	}
	return nil
}

func (x *Send) GetTransferFrom() *TransferFrom {
	if x != nil {
		if x, ok := x.Extension.(*Send_TransferFrom); ok {
			return x.TransferFrom
		}
	}
	return nil
}

func (*Send) ProtoMessage() {}

func (x *Send) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[41]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *Send) Reset() {
	*x = Send{}
	mi := &file_ledger_proto_msgTypes[41]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Send) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// Make a payment
type SendRequest struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	Memo           *Memo                  `protobuf:"bytes,1,opt,name=memo,proto3" json:"memo,omitempty"`
	Payment        *Payment               `protobuf:"bytes,2,opt,name=payment,proto3" json:"payment,omitempty"`
	MaxFee         *Tokens                `protobuf:"bytes,3,opt,name=max_fee,json=maxFee,proto3" json:"max_fee,omitempty"`
	FromSubaccount *Subaccount            `protobuf:"bytes,4,opt,name=from_subaccount,json=fromSubaccount,proto3" json:"from_subaccount,omitempty"`
	To             *AccountIdentifier     `protobuf:"bytes,5,opt,name=to,proto3" json:"to,omitempty"`
	CreatedAt      *BlockIndex            `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	CreatedAtTime  *TimeStamp             `protobuf:"bytes,7,opt,name=created_at_time,json=createdAtTime,proto3" json:"created_at_time,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

// Deprecated: Use SendRequest.ProtoReflect.Descriptor instead.
func (*SendRequest) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{3}
}

func (x *SendRequest) GetCreatedAt() *BlockIndex {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

func (x *SendRequest) GetCreatedAtTime() *TimeStamp {
	if x != nil {
		return x.CreatedAtTime
	}
	return nil
}

func (x *SendRequest) GetFromSubaccount() *Subaccount {
	if x != nil {
		return x.FromSubaccount
	}
	return nil
}

func (x *SendRequest) GetMaxFee() *Tokens {
	if x != nil {
		return x.MaxFee
	}
	return nil
}

func (x *SendRequest) GetMemo() *Memo {
	if x != nil {
		return x.Memo
	}
	return nil
}

func (x *SendRequest) GetPayment() *Payment {
	if x != nil {
		return x.Payment
	}
	return nil
}

func (x *SendRequest) GetTo() *AccountIdentifier {
	if x != nil {
		return x.To
	}
	return nil
}

func (*SendRequest) ProtoMessage() {}

func (x *SendRequest) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *SendRequest) Reset() {
	*x = SendRequest{}
	mi := &file_ledger_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SendRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type SendResponse struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	ResultingHeight *BlockIndex            `protobuf:"bytes,1,opt,name=resulting_height,json=resultingHeight,proto3" json:"resulting_height,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

// Deprecated: Use SendResponse.ProtoReflect.Descriptor instead.
func (*SendResponse) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{4}
}

func (x *SendResponse) GetResultingHeight() *BlockIndex {
	if x != nil {
		return x.ResultingHeight
	}
	return nil
}

func (*SendResponse) ProtoMessage() {}

func (x *SendResponse) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *SendResponse) Reset() {
	*x = SendResponse{}
	mi := &file_ledger_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SendResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type Send_Approve struct {
	Approve *Approve `protobuf:"bytes,5,opt,name=approve,proto3,oneof"`
}

func (*Send_Approve) isSend_Extension() {}

type Send_TransferFrom struct {
	TransferFrom *TransferFrom `protobuf:"bytes,6,opt,name=transfer_from,json=transferFrom,proto3,oneof"`
}

func (*Send_TransferFrom) isSend_Extension() {}

type Subaccount struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	SubAccount    []byte                 `protobuf:"bytes,1,opt,name=sub_account,json=subAccount,proto3" json:"sub_account,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use Subaccount.ProtoReflect.Descriptor instead.
func (*Subaccount) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{47}
}

func (x *Subaccount) GetSubAccount() []byte {
	if x != nil {
		return x.SubAccount
	}
	return nil
}

func (*Subaccount) ProtoMessage() {}

func (x *Subaccount) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[47]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *Subaccount) Reset() {
	*x = Subaccount{}
	mi := &file_ledger_proto_msgTypes[47]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Subaccount) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type TimeStamp struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	TimestampNanos uint64                 `protobuf:"varint,1,opt,name=timestamp_nanos,json=timestampNanos,proto3" json:"timestamp_nanos,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

// Deprecated: Use TimeStamp.ProtoReflect.Descriptor instead.
func (*TimeStamp) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{50}
}

func (x *TimeStamp) GetTimestampNanos() uint64 {
	if x != nil {
		return x.TimestampNanos
	}
	return 0
}

func (*TimeStamp) ProtoMessage() {}

func (x *TimeStamp) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[50]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *TimeStamp) Reset() {
	*x = TimeStamp{}
	mi := &file_ledger_proto_msgTypes[50]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TimeStamp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// Get the length of the chain with a certification
type TipOfChainRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use TipOfChainRequest.ProtoReflect.Descriptor instead.
func (*TipOfChainRequest) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{12}
}

func (*TipOfChainRequest) ProtoMessage() {}

func (x *TipOfChainRequest) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[12]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *TipOfChainRequest) Reset() {
	*x = TipOfChainRequest{}
	mi := &file_ledger_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TipOfChainRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type TipOfChainResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Certification *Certification         `protobuf:"bytes,1,opt,name=certification,proto3" json:"certification,omitempty"`
	ChainLength   *BlockIndex            `protobuf:"bytes,2,opt,name=chain_length,json=chainLength,proto3" json:"chain_length,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use TipOfChainResponse.ProtoReflect.Descriptor instead.
func (*TipOfChainResponse) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{13}
}

func (x *TipOfChainResponse) GetCertification() *Certification {
	if x != nil {
		return x.Certification
	}
	return nil
}

func (x *TipOfChainResponse) GetChainLength() *BlockIndex {
	if x != nil {
		return x.ChainLength
	}
	return nil
}

func (*TipOfChainResponse) ProtoMessage() {}

func (x *TipOfChainResponse) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[13]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *TipOfChainResponse) Reset() {
	*x = TipOfChainResponse{}
	mi := &file_ledger_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TipOfChainResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// ** BASIC TYPES **
type Tokens struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	E8S           uint64                 `protobuf:"varint,1,opt,name=e8s,proto3" json:"e8s,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use Tokens.ProtoReflect.Descriptor instead.
func (*Tokens) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{34}
}

func (x *Tokens) GetE8S() uint64 {
	if x != nil {
		return x.E8S
	}
	return 0
}

func (*Tokens) ProtoMessage() {}

func (x *Tokens) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[34]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *Tokens) Reset() {
	*x = Tokens{}
	mi := &file_ledger_proto_msgTypes[34]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Tokens) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type ToppedUp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use ToppedUp.ProtoReflect.Descriptor instead.
func (*ToppedUp) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{22}
}

func (*ToppedUp) ProtoMessage() {}

func (x *ToppedUp) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_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)
}

func (x *ToppedUp) Reset() {
	*x = ToppedUp{}
	mi := &file_ledger_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ToppedUp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// How many Tokens are there not in the minting account
type TotalSupplyRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use TotalSupplyRequest.ProtoReflect.Descriptor instead.
func (*TotalSupplyRequest) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{14}
}

func (*TotalSupplyRequest) ProtoMessage() {}

func (x *TotalSupplyRequest) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[14]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *TotalSupplyRequest) Reset() {
	*x = TotalSupplyRequest{}
	mi := &file_ledger_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TotalSupplyRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type TotalSupplyResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	TotalSupply   *Tokens                `protobuf:"bytes,1,opt,name=total_supply,json=totalSupply,proto3" json:"total_supply,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use TotalSupplyResponse.ProtoReflect.Descriptor instead.
func (*TotalSupplyResponse) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{15}
}

func (x *TotalSupplyResponse) GetTotalSupply() *Tokens {
	if x != nil {
		return x.TotalSupply
	}
	return nil
}

func (*TotalSupplyResponse) ProtoMessage() {}

func (x *TotalSupplyResponse) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[15]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *TotalSupplyResponse) Reset() {
	*x = TotalSupplyResponse{}
	mi := &file_ledger_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TotalSupplyResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type Transaction struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Transfer:
	//
	//	*Transaction_Burn
	//	*Transaction_Mint
	//	*Transaction_Send
	Transfer      isTransaction_Transfer `protobuf_oneof:"transfer"`
	Memo          *Memo                  `protobuf:"bytes,4,opt,name=memo,proto3" json:"memo,omitempty"`
	Icrc1Memo     *Icrc1Memo             `protobuf:"bytes,7,opt,name=icrc1_memo,json=icrc1Memo,proto3" json:"icrc1_memo,omitempty"`
	CreatedAt     *BlockIndex            `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` // obsolete
	CreatedAtTime *TimeStamp             `protobuf:"bytes,6,opt,name=created_at_time,json=createdAtTime,proto3" json:"created_at_time,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use Transaction.ProtoReflect.Descriptor instead.
func (*Transaction) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{40}
}

func (x *Transaction) GetBurn() *Burn {
	if x != nil {
		if x, ok := x.Transfer.(*Transaction_Burn); ok {
			return x.Burn
		}
	}
	return nil
}

func (x *Transaction) GetCreatedAt() *BlockIndex {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

func (x *Transaction) GetCreatedAtTime() *TimeStamp {
	if x != nil {
		return x.CreatedAtTime
	}
	return nil
}

func (x *Transaction) GetIcrc1Memo() *Icrc1Memo {
	if x != nil {
		return x.Icrc1Memo
	}
	return nil
}

func (x *Transaction) GetMemo() *Memo {
	if x != nil {
		return x.Memo
	}
	return nil
}

func (x *Transaction) GetMint() *Mint {
	if x != nil {
		if x, ok := x.Transfer.(*Transaction_Mint); ok {
			return x.Mint
		}
	}
	return nil
}

func (x *Transaction) GetSend() *Send {
	if x != nil {
		if x, ok := x.Transfer.(*Transaction_Send); ok {
			return x.Send
		}
	}
	return nil
}

func (x *Transaction) GetTransfer() isTransaction_Transfer {
	if x != nil {
		return x.Transfer
	}
	return nil
}

func (*Transaction) ProtoMessage() {}

func (x *Transaction) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[40]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *Transaction) Reset() {
	*x = Transaction{}
	mi := &file_ledger_proto_msgTypes[40]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Transaction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type TransactionNotificationRequest struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	From           *PrincipalId           `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"`
	FromSubaccount *Subaccount            `protobuf:"bytes,2,opt,name=from_subaccount,json=fromSubaccount,proto3" json:"from_subaccount,omitempty"`
	To             *PrincipalId           `protobuf:"bytes,3,opt,name=to,proto3" json:"to,omitempty"`
	ToSubaccount   *Subaccount            `protobuf:"bytes,4,opt,name=to_subaccount,json=toSubaccount,proto3" json:"to_subaccount,omitempty"`
	BlockHeight    *BlockIndex            `protobuf:"bytes,5,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"`
	Amount         *Tokens                `protobuf:"bytes,6,opt,name=amount,proto3" json:"amount,omitempty"`
	Memo           *Memo                  `protobuf:"bytes,7,opt,name=memo,proto3" json:"memo,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

// Deprecated: Use TransactionNotificationRequest.ProtoReflect.Descriptor instead.
func (*TransactionNotificationRequest) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{7}
}

func (x *TransactionNotificationRequest) GetAmount() *Tokens {
	if x != nil {
		return x.Amount
	}
	return nil
}

func (x *TransactionNotificationRequest) GetBlockHeight() *BlockIndex {
	if x != nil {
		return x.BlockHeight
	}
	return nil
}

func (x *TransactionNotificationRequest) GetFrom() *PrincipalId {
	if x != nil {
		return x.From
	}
	return nil
}

func (x *TransactionNotificationRequest) GetFromSubaccount() *Subaccount {
	if x != nil {
		return x.FromSubaccount
	}
	return nil
}

func (x *TransactionNotificationRequest) GetMemo() *Memo {
	if x != nil {
		return x.Memo
	}
	return nil
}

func (x *TransactionNotificationRequest) GetTo() *PrincipalId {
	if x != nil {
		return x.To
	}
	return nil
}

func (x *TransactionNotificationRequest) GetToSubaccount() *Subaccount {
	if x != nil {
		return x.ToSubaccount
	}
	return nil
}

func (*TransactionNotificationRequest) ProtoMessage() {}

func (x *TransactionNotificationRequest) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *TransactionNotificationRequest) Reset() {
	*x = TransactionNotificationRequest{}
	mi := &file_ledger_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TransactionNotificationRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type TransactionNotificationResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Response      []byte                 `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use TransactionNotificationResponse.ProtoReflect.Descriptor instead.
func (*TransactionNotificationResponse) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{8}
}

func (x *TransactionNotificationResponse) GetResponse() []byte {
	if x != nil {
		return x.Response
	}
	return nil
}

func (*TransactionNotificationResponse) ProtoMessage() {}

func (x *TransactionNotificationResponse) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *TransactionNotificationResponse) Reset() {
	*x = TransactionNotificationResponse{}
	mi := &file_ledger_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TransactionNotificationResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type Transaction_Burn struct {
	Burn *Burn `protobuf:"bytes,1,opt,name=burn,proto3,oneof"`
}

func (*Transaction_Burn) isTransaction_Transfer() {}

type Transaction_Mint struct {
	Mint *Mint `protobuf:"bytes,2,opt,name=mint,proto3,oneof"`
}

func (*Transaction_Mint) isTransaction_Transfer() {}

type Transaction_Send struct {
	Send *Send `protobuf:"bytes,3,opt,name=send,proto3,oneof"`
}

func (*Transaction_Send) isTransaction_Transfer() {}

type TransferFeeRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use TransferFeeRequest.ProtoReflect.Descriptor instead.
func (*TransferFeeRequest) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{52}
}

func (*TransferFeeRequest) ProtoMessage() {}

func (x *TransferFeeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[52]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *TransferFeeRequest) Reset() {
	*x = TransferFeeRequest{}
	mi := &file_ledger_proto_msgTypes[52]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TransferFeeRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type TransferFeeResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	TransferFee   *Tokens                `protobuf:"bytes,1,opt,name=transfer_fee,json=transferFee,proto3" json:"transfer_fee,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use TransferFeeResponse.ProtoReflect.Descriptor instead.
func (*TransferFeeResponse) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{53}
}

func (x *TransferFeeResponse) GetTransferFee() *Tokens {
	if x != nil {
		return x.TransferFee
	}
	return nil
}

func (*TransferFeeResponse) ProtoMessage() {}

func (x *TransferFeeResponse) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[53]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *TransferFeeResponse) Reset() {
	*x = TransferFeeResponse{}
	mi := &file_ledger_proto_msgTypes[53]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TransferFeeResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type TransferFrom struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The default account id of the principal who sent the transaction.
	Spender       *AccountIdentifier `protobuf:"bytes,1,opt,name=spender,proto3" json:"spender,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use TransferFrom.ProtoReflect.Descriptor instead.
func (*TransferFrom) Descriptor() ([]byte, []int) {
	return file_ledger_proto_rawDescGZIP(), []int{42}
}

func (x *TransferFrom) GetSpender() *AccountIdentifier {
	if x != nil {
		return x.Spender
	}
	return nil
}

func (*TransferFrom) ProtoMessage() {}

func (x *TransferFrom) ProtoReflect() protoreflect.Message {
	mi := &file_ledger_proto_msgTypes[42]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *TransferFrom) Reset() {
	*x = TransferFrom{}
	mi := &file_ledger_proto_msgTypes[42]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TransferFrom) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type isBlockResponse_BlockContent interface {
	isBlockResponse_BlockContent()
}
type isCyclesNotificationResponse_Response interface {
	isCyclesNotificationResponse_Response()
}
type isGetBlocksResponse_GetBlocksContent interface {
	isGetBlocksResponse_GetBlocksContent()
}

type isSend_Extension interface {
	isSend_Extension()
}
type isTransaction_Transfer interface {
	isTransaction_Transfer()
}
