diff --git a/backend/coins/btc/sign.go b/backend/coins/btc/sign.go index ca92b89165..f02805577a 100644 --- a/backend/coins/btc/sign.go +++ b/backend/coins/btc/sign.go @@ -24,6 +24,7 @@ import ( "github.com/digitalbitbox/bitbox-wallet-app/backend/coins/btc/maketx" "github.com/digitalbitbox/bitbox-wallet-app/backend/coins/btc/transactions" "github.com/digitalbitbox/bitbox-wallet-app/backend/coins/btc/types" + "github.com/digitalbitbox/bitbox-wallet-app/backend/coins/coin" "github.com/digitalbitbox/bitbox-wallet-app/backend/signing" "github.com/digitalbitbox/bitbox-wallet-app/util/errp" ) @@ -47,6 +48,7 @@ type ProposedTransaction struct { // Signatures collects the signatures, one per transaction input. Signatures []*types.Signature SigHashes *txscript.TxSigHashes + FormatUnit coin.BtcUnit } // signTransaction signs all inputs. It assumes all outputs spent belong to this @@ -68,6 +70,7 @@ func (account *Account) signTransaction( GetPrevTx: getPrevTx, Signatures: make([]*types.Signature, len(txProposal.Transaction.TxIn)), SigHashes: txscript.NewTxSigHashes(txProposal.Transaction, previousOutputs), + FormatUnit: account.coin.formatUnit, } if err := account.Config().Keystore.SignTransaction(proposedTransaction); err != nil { diff --git a/backend/devices/bitbox02/keystore.go b/backend/devices/bitbox02/keystore.go index 03be536ef3..42298d3f61 100644 --- a/backend/devices/bitbox02/keystore.go +++ b/backend/devices/bitbox02/keystore.go @@ -416,6 +416,10 @@ func (keystore *keystore) signBTCTransaction(btcProposedTx *btc.ProposedTransact } } + formatUnit := messages.BTCSignInitRequest_DEFAULT + if btcProposedTx.FormatUnit == coinpkg.BtcUnitSats { + formatUnit = messages.BTCSignInitRequest_SAT + } signatures, err := keystore.device.BTCSign( msgCoin, scriptConfigs, @@ -425,6 +429,7 @@ func (keystore *keystore) signBTCTransaction(btcProposedTx *btc.ProposedTransact Outputs: outputs, Locktime: tx.LockTime, }, + formatUnit, ) if firmware.IsErrorAbort(err) { return errp.WithStack(keystorePkg.ErrSigningAborted) diff --git a/go.mod b/go.mod index 7a86a4ce57..4ece5656ae 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/btcsuite/btcd/btcutil v1.1.2 github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 github.com/cespare/cp v1.1.1 // indirect - github.com/digitalbitbox/bitbox02-api-go v0.0.0-20221003094719-2c29561c5a4c + github.com/digitalbitbox/bitbox02-api-go v0.0.0-20221027102202-8c31f236c498 github.com/ethereum/go-ethereum v1.10.21 github.com/flynn/noise v1.0.0 github.com/gorilla/mux v1.8.0 diff --git a/go.sum b/go.sum index c3a32c7d7a..d03a2cd432 100644 --- a/go.sum +++ b/go.sum @@ -115,8 +115,8 @@ github.com/deepmap/oapi-codegen v1.8.2/go.mod h1:YLgSKSDv/bZQB7N4ws6luhozi3cEdRk github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/digitalbitbox/bitbox02-api-go v0.0.0-20221003094719-2c29561c5a4c h1:mJl1SA+NVUZGd+LwgRpmLpNyv+kuAhKnEzE+kvIrK+0= -github.com/digitalbitbox/bitbox02-api-go v0.0.0-20221003094719-2c29561c5a4c/go.mod h1:4HNNrzUZC3ew0iuD40MoGp6wAhcDw1UtGYBRjJkJF/k= +github.com/digitalbitbox/bitbox02-api-go v0.0.0-20221027102202-8c31f236c498 h1:rmgofU3d2ZKU4mYzAfve9g3rmjJ7SVwg1uh+AgwqDt8= +github.com/digitalbitbox/bitbox02-api-go v0.0.0-20221027102202-8c31f236c498/go.mod h1:4HNNrzUZC3ew0iuD40MoGp6wAhcDw1UtGYBRjJkJF/k= github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= diff --git a/vendor/github.com/digitalbitbox/bitbox02-api-go/api/firmware/btc.go b/vendor/github.com/digitalbitbox/bitbox02-api-go/api/firmware/btc.go index a310266de3..573af8650d 100644 --- a/vendor/github.com/digitalbitbox/bitbox02-api-go/api/firmware/btc.go +++ b/vendor/github.com/digitalbitbox/bitbox02-api-go/api/firmware/btc.go @@ -246,6 +246,7 @@ func (device *Device) BTCSign( coin messages.BTCCoin, scriptConfigs []*messages.BTCScriptConfigWithKeypath, tx *BTCTx, + formatUnit messages.BTCSignInitRequest_FormatUnit, ) ([][]byte, error) { if !device.version.AtLeast(semver.NewSemVer(9, 10, 0)) { for _, sc := range scriptConfigs { @@ -267,6 +268,7 @@ func (device *Device) BTCSign( NumInputs: uint32(len(tx.Inputs)), NumOutputs: uint32(len(tx.Outputs)), Locktime: tx.Locktime, + FormatUnit: formatUnit, }}}) if err != nil { return nil, err diff --git a/vendor/github.com/digitalbitbox/bitbox02-api-go/api/firmware/messages/btc.pb.go b/vendor/github.com/digitalbitbox/bitbox02-api-go/api/firmware/messages/btc.pb.go index 144121628d..56684e5f6c 100644 --- a/vendor/github.com/digitalbitbox/bitbox02-api-go/api/firmware/messages/btc.pb.go +++ b/vendor/github.com/digitalbitbox/bitbox02-api-go/api/firmware/messages/btc.pb.go @@ -311,6 +311,54 @@ func (BTCPubRequest_XPubType) EnumDescriptor() ([]byte, []int) { return file_btc_proto_rawDescGZIP(), []int{1, 0} } +type BTCSignInitRequest_FormatUnit int32 + +const ( + // According to `coin` (BTC, LTC, etc.). + BTCSignInitRequest_DEFAULT BTCSignInitRequest_FormatUnit = 0 + // Only valid for BTC/TBTC, formats as "sat"/"tsat". + BTCSignInitRequest_SAT BTCSignInitRequest_FormatUnit = 1 +) + +// Enum value maps for BTCSignInitRequest_FormatUnit. +var ( + BTCSignInitRequest_FormatUnit_name = map[int32]string{ + 0: "DEFAULT", + 1: "SAT", + } + BTCSignInitRequest_FormatUnit_value = map[string]int32{ + "DEFAULT": 0, + "SAT": 1, + } +) + +func (x BTCSignInitRequest_FormatUnit) Enum() *BTCSignInitRequest_FormatUnit { + p := new(BTCSignInitRequest_FormatUnit) + *p = x + return p +} + +func (x BTCSignInitRequest_FormatUnit) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BTCSignInitRequest_FormatUnit) Descriptor() protoreflect.EnumDescriptor { + return file_btc_proto_enumTypes[5].Descriptor() +} + +func (BTCSignInitRequest_FormatUnit) Type() protoreflect.EnumType { + return &file_btc_proto_enumTypes[5] +} + +func (x BTCSignInitRequest_FormatUnit) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BTCSignInitRequest_FormatUnit.Descriptor instead. +func (BTCSignInitRequest_FormatUnit) EnumDescriptor() ([]byte, []int) { + return file_btc_proto_rawDescGZIP(), []int{3, 0} +} + type BTCSignNextResponse_Type int32 const ( @@ -357,11 +405,11 @@ func (x BTCSignNextResponse_Type) String() string { } func (BTCSignNextResponse_Type) Descriptor() protoreflect.EnumDescriptor { - return file_btc_proto_enumTypes[5].Descriptor() + return file_btc_proto_enumTypes[6].Descriptor() } func (BTCSignNextResponse_Type) Type() protoreflect.EnumType { - return &file_btc_proto_enumTypes[5] + return &file_btc_proto_enumTypes[6] } func (x BTCSignNextResponse_Type) Number() protoreflect.EnumNumber { @@ -405,11 +453,11 @@ func (x BTCRegisterScriptConfigRequest_XPubType) String() string { } func (BTCRegisterScriptConfigRequest_XPubType) Descriptor() protoreflect.EnumDescriptor { - return file_btc_proto_enumTypes[6].Descriptor() + return file_btc_proto_enumTypes[7].Descriptor() } func (BTCRegisterScriptConfigRequest_XPubType) Type() protoreflect.EnumType { - return &file_btc_proto_enumTypes[6] + return &file_btc_proto_enumTypes[7] } func (x BTCRegisterScriptConfigRequest_XPubType) Number() protoreflect.EnumNumber { @@ -672,6 +720,7 @@ type BTCSignInitRequest struct { NumInputs uint32 `protobuf:"varint,5,opt,name=num_inputs,json=numInputs,proto3" json:"num_inputs,omitempty"` NumOutputs uint32 `protobuf:"varint,6,opt,name=num_outputs,json=numOutputs,proto3" json:"num_outputs,omitempty"` Locktime uint32 `protobuf:"varint,7,opt,name=locktime,proto3" json:"locktime,omitempty"` // must be <500000000 + FormatUnit BTCSignInitRequest_FormatUnit `protobuf:"varint,8,opt,name=format_unit,json=formatUnit,proto3,enum=shiftcrypto.bitbox02.BTCSignInitRequest_FormatUnit" json:"format_unit,omitempty"` } func (x *BTCSignInitRequest) Reset() { @@ -748,6 +797,13 @@ func (x *BTCSignInitRequest) GetLocktime() uint32 { return 0 } +func (x *BTCSignInitRequest) GetFormatUnit() BTCSignInitRequest_FormatUnit { + if x != nil { + return x.FormatUnit + } + return BTCSignInitRequest_DEFAULT +} + type BTCSignNextResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2019,7 +2075,7 @@ var file_btc_proto_rawDesc = []byte{ 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x70, - 0x61, 0x74, 0x68, 0x22, 0x96, 0x02, 0x0a, 0x12, 0x42, 0x54, 0x43, 0x53, 0x69, 0x67, 0x6e, 0x49, + 0x61, 0x74, 0x68, 0x22, 0x90, 0x03, 0x0a, 0x12, 0x42, 0x54, 0x43, 0x53, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, @@ -2036,241 +2092,249 @@ var file_btc_proto_rawDesc = []byte{ 0x1f, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xb5, 0x03, 0x0a, - 0x13, 0x42, 0x54, 0x43, 0x53, 0x69, 0x67, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, - 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x53, 0x69, 0x67, - 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x23, - 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x72, 0x65, 0x76, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x12, 0x73, 0x0a, 0x1d, 0x61, 0x6e, 0x74, 0x69, 0x5f, 0x6b, 0x6c, 0x65, 0x70, 0x74, 0x6f, 0x5f, - 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x41, - 0x6e, 0x74, 0x69, 0x4b, 0x6c, 0x65, 0x70, 0x74, 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x43, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x1a, 0x61, 0x6e, 0x74, 0x69, 0x4b, - 0x6c, 0x65, 0x70, 0x74, 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x6d, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, - 0x05, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x55, 0x54, 0x50, - 0x55, 0x54, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x0f, - 0x0a, 0x0b, 0x50, 0x52, 0x45, 0x56, 0x54, 0x58, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x03, 0x12, - 0x10, 0x0a, 0x0c, 0x50, 0x52, 0x45, 0x56, 0x54, 0x58, 0x5f, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x10, - 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x52, 0x45, 0x56, 0x54, 0x58, 0x5f, 0x4f, 0x55, 0x54, 0x50, - 0x55, 0x54, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x48, 0x4f, 0x53, 0x54, 0x5f, 0x4e, 0x4f, 0x4e, - 0x43, 0x45, 0x10, 0x06, 0x22, 0xce, 0x02, 0x0a, 0x13, 0x42, 0x54, 0x43, 0x53, 0x69, 0x67, 0x6e, - 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, - 0x70, 0x72, 0x65, 0x76, 0x4f, 0x75, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x4f, 0x75, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, - 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x76, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x76, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x76, 0x4f, 0x75, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x76, 0x4f, 0x75, - 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x70, 0x61, 0x74, 0x68, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x13, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x67, 0x0a, 0x15, - 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x73, 0x68, - 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, - 0x30, 0x32, 0x2e, 0x41, 0x6e, 0x74, 0x69, 0x4b, 0x6c, 0x65, 0x70, 0x74, 0x6f, 0x48, 0x6f, 0x73, - 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x13, 0x68, 0x6f, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xdd, 0x01, 0x0a, 0x14, 0x42, 0x54, 0x43, 0x53, 0x69, 0x67, - 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6f, 0x75, - 0x72, 0x73, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x23, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, - 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6b, - 0x65, 0x79, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x6b, 0x65, - 0x79, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x11, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xb6, 0x01, 0x0a, 0x1b, 0x42, 0x54, 0x43, 0x53, 0x63, 0x72, + 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x0b, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x33, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, + 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x53, 0x69, 0x67, 0x6e, + 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x0a, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x55, 0x6e, + 0x69, 0x74, 0x22, 0x22, 0x0a, 0x0a, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x55, 0x6e, 0x69, 0x74, + 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x07, 0x0a, + 0x03, 0x53, 0x41, 0x54, 0x10, 0x01, 0x22, 0xb5, 0x03, 0x0a, 0x13, 0x42, 0x54, 0x43, 0x53, 0x69, + 0x67, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x73, + 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, + 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x53, 0x69, 0x67, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0c, 0x68, 0x61, 0x73, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, + 0x72, 0x65, 0x76, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x70, 0x72, 0x65, 0x76, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x73, 0x0a, 0x1d, 0x61, 0x6e, + 0x74, 0x69, 0x5f, 0x6b, 0x6c, 0x65, 0x70, 0x74, 0x6f, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, + 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x41, 0x6e, 0x74, 0x69, 0x4b, 0x6c, 0x65, + 0x70, 0x74, 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x1a, 0x61, 0x6e, 0x74, 0x69, 0x4b, 0x6c, 0x65, 0x70, 0x74, 0x6f, 0x53, + 0x69, 0x67, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x6d, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4e, 0x50, 0x55, 0x54, + 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x10, 0x01, 0x12, 0x08, + 0x0a, 0x04, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x52, 0x45, 0x56, + 0x54, 0x58, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x52, 0x45, + 0x56, 0x54, 0x58, 0x5f, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x50, + 0x52, 0x45, 0x56, 0x54, 0x58, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x10, 0x05, 0x12, 0x0e, + 0x0a, 0x0a, 0x48, 0x4f, 0x53, 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x43, 0x45, 0x10, 0x06, 0x22, 0xce, + 0x02, 0x0a, 0x13, 0x42, 0x54, 0x43, 0x53, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x4f, 0x75, + 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x72, 0x65, + 0x76, 0x4f, 0x75, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x76, + 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, + 0x70, 0x72, 0x65, 0x76, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, + 0x70, 0x72, 0x65, 0x76, 0x4f, 0x75, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x76, 0x4f, 0x75, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x6b, 0x65, 0x79, 0x70, 0x61, 0x74, 0x68, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x6b, + 0x65, 0x79, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x11, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x67, 0x0a, 0x15, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x6e, + 0x6f, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, + 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x41, 0x6e, 0x74, + 0x69, 0x4b, 0x6c, 0x65, 0x70, 0x74, 0x6f, 0x48, 0x6f, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x13, 0x68, 0x6f, 0x73, 0x74, + 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0xdd, 0x01, 0x0a, 0x14, 0x42, 0x54, 0x43, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x75, 0x72, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x37, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x73, 0x68, 0x69, + 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, + 0x32, 0x2e, 0x42, 0x54, 0x43, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x70, 0x61, 0x74, 0x68, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x70, 0x61, 0x74, 0x68, 0x12, + 0x2e, 0x0a, 0x13, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, + 0xb6, 0x01, 0x0a, 0x1b, 0x42, 0x54, 0x43, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x31, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, + 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, + 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x04, 0x63, 0x6f, + 0x69, 0x6e, 0x12, 0x4a, 0x0a, 0x0d, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x68, 0x69, 0x66, + 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, + 0x2e, 0x42, 0x54, 0x43, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x0c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, + 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x07, 0x6b, 0x65, 0x79, 0x70, 0x61, 0x74, 0x68, 0x22, 0x0c, 0x0a, 0x0a, 0x42, 0x54, 0x43, 0x53, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x7b, 0x0a, 0x22, 0x42, 0x54, 0x43, 0x49, 0x73, 0x53, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x0c, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, + 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x43, 0x6f, - 0x69, 0x6e, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x4a, 0x0a, 0x0d, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, - 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x70, 0x61, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x70, 0x61, 0x74, 0x68, 0x22, 0x0c, - 0x0a, 0x0a, 0x42, 0x54, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x7b, 0x0a, 0x22, - 0x42, 0x54, 0x43, 0x49, 0x73, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x4a, 0x0a, 0x23, 0x42, 0x54, 0x43, 0x49, 0x73, 0x53, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, + 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0c, 0x69, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x22, + 0x9a, 0x02, 0x0a, 0x1e, 0x42, 0x54, 0x43, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4a, 0x0a, 0x23, 0x42, 0x54, 0x43, - 0x49, 0x73, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x65, 0x64, 0x22, 0x9a, 0x02, 0x0a, 0x1e, 0x42, 0x54, 0x43, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x0c, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, - 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, - 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x5a, 0x0a, 0x09, 0x78, 0x70, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3d, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, + 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x5a, 0x0a, + 0x09, 0x78, 0x70, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x3d, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, + 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x58, 0x50, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x08, 0x78, 0x70, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x22, 0x31, 0x0a, 0x08, 0x58, 0x50, 0x75, + 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x45, 0x4c, + 0x45, 0x43, 0x54, 0x52, 0x55, 0x4d, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x55, 0x54, 0x4f, + 0x5f, 0x58, 0x50, 0x55, 0x42, 0x5f, 0x54, 0x50, 0x55, 0x42, 0x10, 0x01, 0x22, 0x8c, 0x01, 0x0a, + 0x14, 0x42, 0x54, 0x43, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x1d, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x1f, + 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, + 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xa8, 0x01, 0x0a, 0x15, + 0x42, 0x54, 0x43, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x6f, 0x75, + 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x72, + 0x65, 0x76, 0x4f, 0x75, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x72, 0x65, + 0x76, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x76, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x29, 0x0a, 0x10, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x53, 0x0a, 0x16, 0x42, 0x54, 0x43, 0x50, 0x72, 0x65, + 0x76, 0x54, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, + 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x70, + 0x75, 0x62, 0x6b, 0x65, 0x79, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, 0x9c, 0x02, 0x0a, 0x15, + 0x42, 0x54, 0x43, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x43, 0x6f, + 0x69, 0x6e, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x55, 0x0a, 0x0d, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x30, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, + 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x57, 0x69, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x70, 0x61, 0x74, + 0x68, 0x52, 0x0c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x12, 0x67, 0x0a, 0x15, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x5f, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x33, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, + 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x41, 0x6e, 0x74, 0x69, 0x4b, 0x6c, 0x65, 0x70, + 0x74, 0x6f, 0x48, 0x6f, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x13, 0x68, 0x6f, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x36, 0x0a, 0x16, 0x42, 0x54, + 0x43, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x22, 0xaf, 0x05, 0x0a, 0x0a, 0x42, 0x54, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x79, 0x0a, 0x1b, 0x69, 0x73, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, - 0x43, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x58, 0x50, 0x75, - 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x78, 0x70, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x31, 0x0a, 0x08, 0x58, 0x50, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x41, - 0x55, 0x54, 0x4f, 0x5f, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x52, 0x55, 0x4d, 0x10, 0x00, 0x12, 0x12, - 0x0a, 0x0e, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x58, 0x50, 0x55, 0x42, 0x5f, 0x54, 0x50, 0x55, 0x42, - 0x10, 0x01, 0x22, 0x8c, 0x01, 0x0a, 0x14, 0x42, 0x54, 0x43, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, - 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x49, 0x6e, - 0x70, 0x75, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x74, 0x69, 0x6d, - 0x65, 0x22, 0xa8, 0x01, 0x0a, 0x15, 0x42, 0x54, 0x43, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x70, - 0x72, 0x65, 0x76, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x4f, 0x75, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, - 0x24, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x76, 0x4f, 0x75, 0x74, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x53, 0x0a, 0x16, - 0x42, 0x54, 0x43, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0d, - 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x53, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x22, 0x9c, 0x02, 0x0a, 0x15, 0x42, 0x54, 0x43, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x04, 0x63, - 0x6f, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x73, 0x68, 0x69, 0x66, - 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, - 0x2e, 0x42, 0x54, 0x43, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x55, - 0x0a, 0x0d, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, - 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x57, 0x69, 0x74, 0x68, - 0x4b, 0x65, 0x79, 0x70, 0x61, 0x74, 0x68, 0x52, 0x0c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x67, 0x0a, 0x15, 0x68, 0x6f, 0x73, 0x74, 0x5f, - 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x41, 0x6e, - 0x74, 0x69, 0x4b, 0x6c, 0x65, 0x70, 0x74, 0x6f, 0x48, 0x6f, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x63, - 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x13, 0x68, 0x6f, 0x73, - 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0x36, 0x0a, 0x16, 0x42, 0x54, 0x43, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xaf, 0x05, 0x0a, 0x0a, 0x42, 0x54, 0x43, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x79, 0x0a, 0x1b, 0x69, 0x73, 0x5f, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x73, + 0x43, 0x49, 0x73, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x48, 0x00, 0x52, 0x18, 0x69, 0x73, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x12, 0x6c, 0x0a, 0x16, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, - 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x49, 0x73, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x18, 0x69, 0x73, 0x53, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x65, 0x64, 0x12, 0x6c, 0x0a, 0x16, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, - 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x14, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x4d, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, - 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x76, 0x74, 0x78, 0x49, 0x6e, 0x69, 0x74, 0x12, - 0x50, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x76, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, + 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x48, 0x00, 0x52, 0x14, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4d, 0x0a, 0x0b, 0x70, 0x72, + 0x65, 0x76, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, + 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, + 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x70, + 0x72, 0x65, 0x76, 0x74, 0x78, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x50, 0x0a, 0x0c, 0x70, 0x72, 0x65, + 0x76, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, + 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, + 0x70, 0x72, 0x65, 0x76, 0x74, 0x78, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x53, 0x0a, 0x0d, 0x70, + 0x72, 0x65, 0x76, 0x74, 0x78, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, + 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x50, 0x72, 0x65, + 0x76, 0x54, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x48, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x76, 0x74, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x12, 0x50, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, + 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, + 0x43, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x65, 0x0a, 0x14, 0x61, 0x6e, 0x74, 0x69, 0x6b, 0x6c, 0x65, 0x70, 0x74, 0x6f, + 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x30, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, + 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x41, 0x6e, 0x74, 0x69, 0x4b, 0x6c, 0x65, 0x70, + 0x74, 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x48, 0x00, 0x52, 0x13, 0x61, 0x6e, 0x74, 0x69, 0x6b, 0x6c, 0x65, 0x70, 0x74, 0x6f, + 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0xe6, 0x03, 0x0a, 0x0b, 0x42, 0x54, 0x43, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, - 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x74, 0x78, 0x49, 0x6e, 0x70, 0x75, - 0x74, 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x76, 0x74, 0x78, 0x5f, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, - 0x42, 0x54, 0x43, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x76, 0x74, 0x78, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x50, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, - 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, - 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x69, 0x67, - 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x65, 0x0a, 0x14, 0x61, 0x6e, 0x74, 0x69, - 0x6b, 0x6c, 0x65, 0x70, 0x74, 0x6f, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x41, 0x6e, - 0x74, 0x69, 0x4b, 0x6c, 0x65, 0x70, 0x74, 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x13, 0x61, 0x6e, 0x74, 0x69, - 0x6b, 0x6c, 0x65, 0x70, 0x74, 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x42, - 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xe6, 0x03, 0x0a, 0x0b, 0x42, - 0x54, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x73, 0x75, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x68, - 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, - 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, - 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x7a, 0x0a, 0x1b, 0x69, 0x73, 0x5f, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, - 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, - 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x49, 0x73, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x18, 0x69, 0x73, 0x53, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x65, 0x72, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x6e, 0x65, 0x78, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, + 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x12, 0x7a, 0x0a, 0x1b, 0x69, 0x73, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, - 0x54, 0x43, 0x53, 0x69, 0x67, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x12, 0x51, - 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x53, - 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x12, 0x74, 0x0a, 0x1c, 0x61, 0x6e, 0x74, 0x69, 0x6b, 0x6c, 0x65, 0x70, 0x74, 0x6f, 0x5f, - 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x41, - 0x6e, 0x74, 0x69, 0x4b, 0x6c, 0x65, 0x70, 0x74, 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x43, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1a, 0x61, 0x6e, 0x74, - 0x69, 0x6b, 0x6c, 0x65, 0x70, 0x74, 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2a, 0x2f, 0x0a, 0x07, 0x42, 0x54, 0x43, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x07, - 0x0a, 0x03, 0x42, 0x54, 0x43, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x42, 0x54, 0x43, 0x10, - 0x01, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x54, 0x43, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x4c, - 0x54, 0x43, 0x10, 0x03, 0x2a, 0x52, 0x0a, 0x0d, 0x42, 0x54, 0x43, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x32, 0x50, 0x4b, 0x48, 0x10, 0x01, 0x12, 0x08, 0x0a, - 0x04, 0x50, 0x32, 0x53, 0x48, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x32, 0x57, 0x50, 0x4b, - 0x48, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x32, 0x57, 0x53, 0x48, 0x10, 0x04, 0x12, 0x08, - 0x0a, 0x04, 0x50, 0x32, 0x54, 0x52, 0x10, 0x05, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x54, 0x43, 0x49, 0x73, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x48, 0x00, 0x52, 0x18, 0x69, 0x73, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x12, 0x48, + 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, + 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x53, 0x69, 0x67, 0x6e, + 0x4e, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, + 0x73, 0x69, 0x67, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x12, 0x51, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, + 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, + 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x69, 0x74, + 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x42, 0x54, 0x43, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0b, + 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x74, 0x0a, 0x1c, 0x61, + 0x6e, 0x74, 0x69, 0x6b, 0x6c, 0x65, 0x70, 0x74, 0x6f, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, + 0x62, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x30, 0x32, 0x2e, 0x41, 0x6e, 0x74, 0x69, 0x4b, 0x6c, 0x65, + 0x70, 0x74, 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1a, 0x61, 0x6e, 0x74, 0x69, 0x6b, 0x6c, 0x65, 0x70, 0x74, + 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x2f, 0x0a, + 0x07, 0x42, 0x54, 0x43, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x54, 0x43, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x42, 0x54, 0x43, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x4c, + 0x54, 0x43, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x4c, 0x54, 0x43, 0x10, 0x03, 0x2a, 0x52, + 0x0a, 0x0d, 0x42, 0x54, 0x43, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x50, 0x32, 0x50, 0x4b, 0x48, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x32, 0x53, 0x48, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x32, 0x57, 0x50, 0x4b, 0x48, 0x10, 0x03, 0x12, 0x09, 0x0a, + 0x05, 0x50, 0x32, 0x57, 0x53, 0x48, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x32, 0x54, 0x52, + 0x10, 0x05, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2285,7 +2349,7 @@ func file_btc_proto_rawDescGZIP() []byte { return file_btc_proto_rawDescData } -var file_btc_proto_enumTypes = make([]protoimpl.EnumInfo, 7) +var file_btc_proto_enumTypes = make([]protoimpl.EnumInfo, 8) var file_btc_proto_msgTypes = make([]protoimpl.MessageInfo, 20) var file_btc_proto_goTypes = []interface{}{ (BTCCoin)(0), // 0: shiftcrypto.bitbox02.BTCCoin @@ -2293,73 +2357,75 @@ var file_btc_proto_goTypes = []interface{}{ (BTCScriptConfig_SimpleType)(0), // 2: shiftcrypto.bitbox02.BTCScriptConfig.SimpleType (BTCScriptConfig_Multisig_ScriptType)(0), // 3: shiftcrypto.bitbox02.BTCScriptConfig.Multisig.ScriptType (BTCPubRequest_XPubType)(0), // 4: shiftcrypto.bitbox02.BTCPubRequest.XPubType - (BTCSignNextResponse_Type)(0), // 5: shiftcrypto.bitbox02.BTCSignNextResponse.Type - (BTCRegisterScriptConfigRequest_XPubType)(0), // 6: shiftcrypto.bitbox02.BTCRegisterScriptConfigRequest.XPubType - (*BTCScriptConfig)(nil), // 7: shiftcrypto.bitbox02.BTCScriptConfig - (*BTCPubRequest)(nil), // 8: shiftcrypto.bitbox02.BTCPubRequest - (*BTCScriptConfigWithKeypath)(nil), // 9: shiftcrypto.bitbox02.BTCScriptConfigWithKeypath - (*BTCSignInitRequest)(nil), // 10: shiftcrypto.bitbox02.BTCSignInitRequest - (*BTCSignNextResponse)(nil), // 11: shiftcrypto.bitbox02.BTCSignNextResponse - (*BTCSignInputRequest)(nil), // 12: shiftcrypto.bitbox02.BTCSignInputRequest - (*BTCSignOutputRequest)(nil), // 13: shiftcrypto.bitbox02.BTCSignOutputRequest - (*BTCScriptConfigRegistration)(nil), // 14: shiftcrypto.bitbox02.BTCScriptConfigRegistration - (*BTCSuccess)(nil), // 15: shiftcrypto.bitbox02.BTCSuccess - (*BTCIsScriptConfigRegisteredRequest)(nil), // 16: shiftcrypto.bitbox02.BTCIsScriptConfigRegisteredRequest - (*BTCIsScriptConfigRegisteredResponse)(nil), // 17: shiftcrypto.bitbox02.BTCIsScriptConfigRegisteredResponse - (*BTCRegisterScriptConfigRequest)(nil), // 18: shiftcrypto.bitbox02.BTCRegisterScriptConfigRequest - (*BTCPrevTxInitRequest)(nil), // 19: shiftcrypto.bitbox02.BTCPrevTxInitRequest - (*BTCPrevTxInputRequest)(nil), // 20: shiftcrypto.bitbox02.BTCPrevTxInputRequest - (*BTCPrevTxOutputRequest)(nil), // 21: shiftcrypto.bitbox02.BTCPrevTxOutputRequest - (*BTCSignMessageRequest)(nil), // 22: shiftcrypto.bitbox02.BTCSignMessageRequest - (*BTCSignMessageResponse)(nil), // 23: shiftcrypto.bitbox02.BTCSignMessageResponse - (*BTCRequest)(nil), // 24: shiftcrypto.bitbox02.BTCRequest - (*BTCResponse)(nil), // 25: shiftcrypto.bitbox02.BTCResponse - (*BTCScriptConfig_Multisig)(nil), // 26: shiftcrypto.bitbox02.BTCScriptConfig.Multisig - (*AntiKleptoSignerCommitment)(nil), // 27: shiftcrypto.bitbox02.AntiKleptoSignerCommitment - (*AntiKleptoHostNonceCommitment)(nil), // 28: shiftcrypto.bitbox02.AntiKleptoHostNonceCommitment - (*AntiKleptoSignatureRequest)(nil), // 29: shiftcrypto.bitbox02.AntiKleptoSignatureRequest - (*XPub)(nil), // 30: shiftcrypto.bitbox02.XPub + (BTCSignInitRequest_FormatUnit)(0), // 5: shiftcrypto.bitbox02.BTCSignInitRequest.FormatUnit + (BTCSignNextResponse_Type)(0), // 6: shiftcrypto.bitbox02.BTCSignNextResponse.Type + (BTCRegisterScriptConfigRequest_XPubType)(0), // 7: shiftcrypto.bitbox02.BTCRegisterScriptConfigRequest.XPubType + (*BTCScriptConfig)(nil), // 8: shiftcrypto.bitbox02.BTCScriptConfig + (*BTCPubRequest)(nil), // 9: shiftcrypto.bitbox02.BTCPubRequest + (*BTCScriptConfigWithKeypath)(nil), // 10: shiftcrypto.bitbox02.BTCScriptConfigWithKeypath + (*BTCSignInitRequest)(nil), // 11: shiftcrypto.bitbox02.BTCSignInitRequest + (*BTCSignNextResponse)(nil), // 12: shiftcrypto.bitbox02.BTCSignNextResponse + (*BTCSignInputRequest)(nil), // 13: shiftcrypto.bitbox02.BTCSignInputRequest + (*BTCSignOutputRequest)(nil), // 14: shiftcrypto.bitbox02.BTCSignOutputRequest + (*BTCScriptConfigRegistration)(nil), // 15: shiftcrypto.bitbox02.BTCScriptConfigRegistration + (*BTCSuccess)(nil), // 16: shiftcrypto.bitbox02.BTCSuccess + (*BTCIsScriptConfigRegisteredRequest)(nil), // 17: shiftcrypto.bitbox02.BTCIsScriptConfigRegisteredRequest + (*BTCIsScriptConfigRegisteredResponse)(nil), // 18: shiftcrypto.bitbox02.BTCIsScriptConfigRegisteredResponse + (*BTCRegisterScriptConfigRequest)(nil), // 19: shiftcrypto.bitbox02.BTCRegisterScriptConfigRequest + (*BTCPrevTxInitRequest)(nil), // 20: shiftcrypto.bitbox02.BTCPrevTxInitRequest + (*BTCPrevTxInputRequest)(nil), // 21: shiftcrypto.bitbox02.BTCPrevTxInputRequest + (*BTCPrevTxOutputRequest)(nil), // 22: shiftcrypto.bitbox02.BTCPrevTxOutputRequest + (*BTCSignMessageRequest)(nil), // 23: shiftcrypto.bitbox02.BTCSignMessageRequest + (*BTCSignMessageResponse)(nil), // 24: shiftcrypto.bitbox02.BTCSignMessageResponse + (*BTCRequest)(nil), // 25: shiftcrypto.bitbox02.BTCRequest + (*BTCResponse)(nil), // 26: shiftcrypto.bitbox02.BTCResponse + (*BTCScriptConfig_Multisig)(nil), // 27: shiftcrypto.bitbox02.BTCScriptConfig.Multisig + (*AntiKleptoSignerCommitment)(nil), // 28: shiftcrypto.bitbox02.AntiKleptoSignerCommitment + (*AntiKleptoHostNonceCommitment)(nil), // 29: shiftcrypto.bitbox02.AntiKleptoHostNonceCommitment + (*AntiKleptoSignatureRequest)(nil), // 30: shiftcrypto.bitbox02.AntiKleptoSignatureRequest + (*XPub)(nil), // 31: shiftcrypto.bitbox02.XPub } var file_btc_proto_depIdxs = []int32{ 2, // 0: shiftcrypto.bitbox02.BTCScriptConfig.simple_type:type_name -> shiftcrypto.bitbox02.BTCScriptConfig.SimpleType - 26, // 1: shiftcrypto.bitbox02.BTCScriptConfig.multisig:type_name -> shiftcrypto.bitbox02.BTCScriptConfig.Multisig + 27, // 1: shiftcrypto.bitbox02.BTCScriptConfig.multisig:type_name -> shiftcrypto.bitbox02.BTCScriptConfig.Multisig 0, // 2: shiftcrypto.bitbox02.BTCPubRequest.coin:type_name -> shiftcrypto.bitbox02.BTCCoin 4, // 3: shiftcrypto.bitbox02.BTCPubRequest.xpub_type:type_name -> shiftcrypto.bitbox02.BTCPubRequest.XPubType - 7, // 4: shiftcrypto.bitbox02.BTCPubRequest.script_config:type_name -> shiftcrypto.bitbox02.BTCScriptConfig - 7, // 5: shiftcrypto.bitbox02.BTCScriptConfigWithKeypath.script_config:type_name -> shiftcrypto.bitbox02.BTCScriptConfig + 8, // 4: shiftcrypto.bitbox02.BTCPubRequest.script_config:type_name -> shiftcrypto.bitbox02.BTCScriptConfig + 8, // 5: shiftcrypto.bitbox02.BTCScriptConfigWithKeypath.script_config:type_name -> shiftcrypto.bitbox02.BTCScriptConfig 0, // 6: shiftcrypto.bitbox02.BTCSignInitRequest.coin:type_name -> shiftcrypto.bitbox02.BTCCoin - 9, // 7: shiftcrypto.bitbox02.BTCSignInitRequest.script_configs:type_name -> shiftcrypto.bitbox02.BTCScriptConfigWithKeypath - 5, // 8: shiftcrypto.bitbox02.BTCSignNextResponse.type:type_name -> shiftcrypto.bitbox02.BTCSignNextResponse.Type - 27, // 9: shiftcrypto.bitbox02.BTCSignNextResponse.anti_klepto_signer_commitment:type_name -> shiftcrypto.bitbox02.AntiKleptoSignerCommitment - 28, // 10: shiftcrypto.bitbox02.BTCSignInputRequest.host_nonce_commitment:type_name -> shiftcrypto.bitbox02.AntiKleptoHostNonceCommitment - 1, // 11: shiftcrypto.bitbox02.BTCSignOutputRequest.type:type_name -> shiftcrypto.bitbox02.BTCOutputType - 0, // 12: shiftcrypto.bitbox02.BTCScriptConfigRegistration.coin:type_name -> shiftcrypto.bitbox02.BTCCoin - 7, // 13: shiftcrypto.bitbox02.BTCScriptConfigRegistration.script_config:type_name -> shiftcrypto.bitbox02.BTCScriptConfig - 14, // 14: shiftcrypto.bitbox02.BTCIsScriptConfigRegisteredRequest.registration:type_name -> shiftcrypto.bitbox02.BTCScriptConfigRegistration - 14, // 15: shiftcrypto.bitbox02.BTCRegisterScriptConfigRequest.registration:type_name -> shiftcrypto.bitbox02.BTCScriptConfigRegistration - 6, // 16: shiftcrypto.bitbox02.BTCRegisterScriptConfigRequest.xpub_type:type_name -> shiftcrypto.bitbox02.BTCRegisterScriptConfigRequest.XPubType - 0, // 17: shiftcrypto.bitbox02.BTCSignMessageRequest.coin:type_name -> shiftcrypto.bitbox02.BTCCoin - 9, // 18: shiftcrypto.bitbox02.BTCSignMessageRequest.script_config:type_name -> shiftcrypto.bitbox02.BTCScriptConfigWithKeypath - 28, // 19: shiftcrypto.bitbox02.BTCSignMessageRequest.host_nonce_commitment:type_name -> shiftcrypto.bitbox02.AntiKleptoHostNonceCommitment - 16, // 20: shiftcrypto.bitbox02.BTCRequest.is_script_config_registered:type_name -> shiftcrypto.bitbox02.BTCIsScriptConfigRegisteredRequest - 18, // 21: shiftcrypto.bitbox02.BTCRequest.register_script_config:type_name -> shiftcrypto.bitbox02.BTCRegisterScriptConfigRequest - 19, // 22: shiftcrypto.bitbox02.BTCRequest.prevtx_init:type_name -> shiftcrypto.bitbox02.BTCPrevTxInitRequest - 20, // 23: shiftcrypto.bitbox02.BTCRequest.prevtx_input:type_name -> shiftcrypto.bitbox02.BTCPrevTxInputRequest - 21, // 24: shiftcrypto.bitbox02.BTCRequest.prevtx_output:type_name -> shiftcrypto.bitbox02.BTCPrevTxOutputRequest - 22, // 25: shiftcrypto.bitbox02.BTCRequest.sign_message:type_name -> shiftcrypto.bitbox02.BTCSignMessageRequest - 29, // 26: shiftcrypto.bitbox02.BTCRequest.antiklepto_signature:type_name -> shiftcrypto.bitbox02.AntiKleptoSignatureRequest - 15, // 27: shiftcrypto.bitbox02.BTCResponse.success:type_name -> shiftcrypto.bitbox02.BTCSuccess - 17, // 28: shiftcrypto.bitbox02.BTCResponse.is_script_config_registered:type_name -> shiftcrypto.bitbox02.BTCIsScriptConfigRegisteredResponse - 11, // 29: shiftcrypto.bitbox02.BTCResponse.sign_next:type_name -> shiftcrypto.bitbox02.BTCSignNextResponse - 23, // 30: shiftcrypto.bitbox02.BTCResponse.sign_message:type_name -> shiftcrypto.bitbox02.BTCSignMessageResponse - 27, // 31: shiftcrypto.bitbox02.BTCResponse.antiklepto_signer_commitment:type_name -> shiftcrypto.bitbox02.AntiKleptoSignerCommitment - 30, // 32: shiftcrypto.bitbox02.BTCScriptConfig.Multisig.xpubs:type_name -> shiftcrypto.bitbox02.XPub - 3, // 33: shiftcrypto.bitbox02.BTCScriptConfig.Multisig.script_type:type_name -> shiftcrypto.bitbox02.BTCScriptConfig.Multisig.ScriptType - 34, // [34:34] is the sub-list for method output_type - 34, // [34:34] is the sub-list for method input_type - 34, // [34:34] is the sub-list for extension type_name - 34, // [34:34] is the sub-list for extension extendee - 0, // [0:34] is the sub-list for field type_name + 10, // 7: shiftcrypto.bitbox02.BTCSignInitRequest.script_configs:type_name -> shiftcrypto.bitbox02.BTCScriptConfigWithKeypath + 5, // 8: shiftcrypto.bitbox02.BTCSignInitRequest.format_unit:type_name -> shiftcrypto.bitbox02.BTCSignInitRequest.FormatUnit + 6, // 9: shiftcrypto.bitbox02.BTCSignNextResponse.type:type_name -> shiftcrypto.bitbox02.BTCSignNextResponse.Type + 28, // 10: shiftcrypto.bitbox02.BTCSignNextResponse.anti_klepto_signer_commitment:type_name -> shiftcrypto.bitbox02.AntiKleptoSignerCommitment + 29, // 11: shiftcrypto.bitbox02.BTCSignInputRequest.host_nonce_commitment:type_name -> shiftcrypto.bitbox02.AntiKleptoHostNonceCommitment + 1, // 12: shiftcrypto.bitbox02.BTCSignOutputRequest.type:type_name -> shiftcrypto.bitbox02.BTCOutputType + 0, // 13: shiftcrypto.bitbox02.BTCScriptConfigRegistration.coin:type_name -> shiftcrypto.bitbox02.BTCCoin + 8, // 14: shiftcrypto.bitbox02.BTCScriptConfigRegistration.script_config:type_name -> shiftcrypto.bitbox02.BTCScriptConfig + 15, // 15: shiftcrypto.bitbox02.BTCIsScriptConfigRegisteredRequest.registration:type_name -> shiftcrypto.bitbox02.BTCScriptConfigRegistration + 15, // 16: shiftcrypto.bitbox02.BTCRegisterScriptConfigRequest.registration:type_name -> shiftcrypto.bitbox02.BTCScriptConfigRegistration + 7, // 17: shiftcrypto.bitbox02.BTCRegisterScriptConfigRequest.xpub_type:type_name -> shiftcrypto.bitbox02.BTCRegisterScriptConfigRequest.XPubType + 0, // 18: shiftcrypto.bitbox02.BTCSignMessageRequest.coin:type_name -> shiftcrypto.bitbox02.BTCCoin + 10, // 19: shiftcrypto.bitbox02.BTCSignMessageRequest.script_config:type_name -> shiftcrypto.bitbox02.BTCScriptConfigWithKeypath + 29, // 20: shiftcrypto.bitbox02.BTCSignMessageRequest.host_nonce_commitment:type_name -> shiftcrypto.bitbox02.AntiKleptoHostNonceCommitment + 17, // 21: shiftcrypto.bitbox02.BTCRequest.is_script_config_registered:type_name -> shiftcrypto.bitbox02.BTCIsScriptConfigRegisteredRequest + 19, // 22: shiftcrypto.bitbox02.BTCRequest.register_script_config:type_name -> shiftcrypto.bitbox02.BTCRegisterScriptConfigRequest + 20, // 23: shiftcrypto.bitbox02.BTCRequest.prevtx_init:type_name -> shiftcrypto.bitbox02.BTCPrevTxInitRequest + 21, // 24: shiftcrypto.bitbox02.BTCRequest.prevtx_input:type_name -> shiftcrypto.bitbox02.BTCPrevTxInputRequest + 22, // 25: shiftcrypto.bitbox02.BTCRequest.prevtx_output:type_name -> shiftcrypto.bitbox02.BTCPrevTxOutputRequest + 23, // 26: shiftcrypto.bitbox02.BTCRequest.sign_message:type_name -> shiftcrypto.bitbox02.BTCSignMessageRequest + 30, // 27: shiftcrypto.bitbox02.BTCRequest.antiklepto_signature:type_name -> shiftcrypto.bitbox02.AntiKleptoSignatureRequest + 16, // 28: shiftcrypto.bitbox02.BTCResponse.success:type_name -> shiftcrypto.bitbox02.BTCSuccess + 18, // 29: shiftcrypto.bitbox02.BTCResponse.is_script_config_registered:type_name -> shiftcrypto.bitbox02.BTCIsScriptConfigRegisteredResponse + 12, // 30: shiftcrypto.bitbox02.BTCResponse.sign_next:type_name -> shiftcrypto.bitbox02.BTCSignNextResponse + 24, // 31: shiftcrypto.bitbox02.BTCResponse.sign_message:type_name -> shiftcrypto.bitbox02.BTCSignMessageResponse + 28, // 32: shiftcrypto.bitbox02.BTCResponse.antiklepto_signer_commitment:type_name -> shiftcrypto.bitbox02.AntiKleptoSignerCommitment + 31, // 33: shiftcrypto.bitbox02.BTCScriptConfig.Multisig.xpubs:type_name -> shiftcrypto.bitbox02.XPub + 3, // 34: shiftcrypto.bitbox02.BTCScriptConfig.Multisig.script_type:type_name -> shiftcrypto.bitbox02.BTCScriptConfig.Multisig.ScriptType + 35, // [35:35] is the sub-list for method output_type + 35, // [35:35] is the sub-list for method input_type + 35, // [35:35] is the sub-list for extension type_name + 35, // [35:35] is the sub-list for extension extendee + 0, // [0:35] is the sub-list for field type_name } func init() { file_btc_proto_init() } @@ -2640,7 +2706,7 @@ func file_btc_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_btc_proto_rawDesc, - NumEnums: 7, + NumEnums: 8, NumMessages: 20, NumExtensions: 0, NumServices: 0, diff --git a/vendor/github.com/digitalbitbox/bitbox02-api-go/api/firmware/messages/btc.proto b/vendor/github.com/digitalbitbox/bitbox02-api-go/api/firmware/messages/btc.proto index 60e0df6817..e3370ebab6 100644 --- a/vendor/github.com/digitalbitbox/bitbox02-api-go/api/firmware/messages/btc.proto +++ b/vendor/github.com/digitalbitbox/bitbox02-api-go/api/firmware/messages/btc.proto @@ -96,6 +96,14 @@ message BTCSignInitRequest { uint32 num_inputs = 5; uint32 num_outputs = 6; uint32 locktime = 7; // must be <500000000 + + enum FormatUnit { + // According to `coin` (BTC, LTC, etc.). + DEFAULT = 0; + // Only valid for BTC/TBTC, formats as "sat"/"tsat". + SAT = 1; + } + FormatUnit format_unit = 8; } message BTCSignNextResponse { diff --git a/vendor/github.com/digitalbitbox/bitbox02-api-go/communication/u2fhid/u2fhid.go b/vendor/github.com/digitalbitbox/bitbox02-api-go/communication/u2fhid/u2fhid.go index f4a4cd4d14..e34362e5f2 100644 --- a/vendor/github.com/digitalbitbox/bitbox02-api-go/communication/u2fhid/u2fhid.go +++ b/vendor/github.com/digitalbitbox/bitbox02-api-go/communication/u2fhid/u2fhid.go @@ -31,7 +31,7 @@ const ( const ( // CID - channel identifier. - cid = 0xff000000 + cid uint32 = 0xff000000 ) func newBuffer() *bytes.Buffer { @@ -109,7 +109,7 @@ func (communication *Communication) sendFrame(msg string) error { readBuffer := bytes.NewBuffer([]byte(msg)) // init frame header := newBuffer() - if err := binary.Write(header, binary.BigEndian, uint32(cid)); err != nil { + if err := binary.Write(header, binary.BigEndian, cid); err != nil { return errp.WithStack(err) } if err := binary.Write(header, binary.BigEndian, communication.cmd); err != nil { @@ -124,7 +124,7 @@ func (communication *Communication) sendFrame(msg string) error { for seq := 0; readBuffer.Len() > 0; seq++ { // cont frame header = newBuffer() - if err := binary.Write(header, binary.BigEndian, uint32(cid)); err != nil { + if err := binary.Write(header, binary.BigEndian, cid); err != nil { return errp.WithStack(err) } if err := binary.Write(header, binary.BigEndian, uint8(seq)); err != nil { @@ -153,8 +153,9 @@ func (communication *Communication) readFrame() ([]byte, error) { if readLen < 7 { return nil, errp.New("expected minimum read length of 7") } - if read[0] != 0xff || read[1] != 0 || read[2] != 0 || read[3] != 0 { - return nil, errp.Newf("USB command ID mismatch %d %d %d %d", read[0], read[1], read[2], read[3]) + replyCid := binary.BigEndian.Uint32(read[:4]) + if replyCid != cid { + return nil, errp.Newf("USB command ID mismatch, %v != %v", cid, replyCid) } if read[4] != communication.cmd { return nil, errp.Newf("USB command frame mismatch (%d, expected %d)", read[4], communication.cmd) diff --git a/vendor/modules.txt b/vendor/modules.txt index 5c27dad334..4a47141edb 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -44,7 +44,7 @@ github.com/decred/dcrd/crypto/blake256 github.com/decred/dcrd/dcrec/secp256k1/v4 github.com/decred/dcrd/dcrec/secp256k1/v4/ecdsa github.com/decred/dcrd/dcrec/secp256k1/v4/schnorr -# github.com/digitalbitbox/bitbox02-api-go v0.0.0-20221003094719-2c29561c5a4c +# github.com/digitalbitbox/bitbox02-api-go v0.0.0-20221027102202-8c31f236c498 ## explicit github.com/digitalbitbox/bitbox02-api-go/api/bootloader github.com/digitalbitbox/bitbox02-api-go/api/common