1013 lines
34 KiB
Go
1013 lines
34 KiB
Go
|
// Copyright 2020. The Tari Project
|
||
|
//
|
||
|
// Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
|
||
|
// following conditions are met:
|
||
|
//
|
||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following
|
||
|
// disclaimer.
|
||
|
//
|
||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
|
||
|
// following disclaimer in the documentation and/or other materials provided with the distribution.
|
||
|
//
|
||
|
// 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote
|
||
|
// products derived from this software without specific prior written permission.
|
||
|
//
|
||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||
|
// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||
|
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||
|
// USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
|
|
||
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||
|
// versions:
|
||
|
// protoc-gen-go v1.36.6
|
||
|
// protoc v3.6.1
|
||
|
// source: transaction.proto
|
||
|
|
||
|
package transaction
|
||
|
|
||
|
import (
|
||
|
sidechain_types "pool/internal/gbt/tari/proto/sidechain_types"
|
||
|
types "pool/internal/gbt/tari/proto/types"
|
||
|
reflect "reflect"
|
||
|
sync "sync"
|
||
|
unsafe "unsafe"
|
||
|
|
||
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||
|
)
|
||
|
|
||
|
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)
|
||
|
)
|
||
|
|
||
|
// The transaction kernel tracks the excess for a given transaction. For an explanation of what the excess is, and
|
||
|
// why it is necessary, refer to the
|
||
|
// [Mimblewimble TLU post](https://tlu.tarilabs.com/protocols/mimblewimble-1/sources/PITCHME.link.html?highlight=mimblewimble#mimblewimble).
|
||
|
// The kernel also tracks other transaction metadata, such as the lock height for the transaction (i.e. the earliest
|
||
|
// this transaction can be mined) and the transaction fee, in cleartext.
|
||
|
type TransactionKernel struct {
|
||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||
|
// Options for a kernel's structure or use
|
||
|
Features uint32 `protobuf:"varint,1,opt,name=features,proto3" json:"features,omitempty"`
|
||
|
// / Fee originally included in the transaction this proof is for (in MicroMinotari)
|
||
|
Fee uint64 `protobuf:"varint,2,opt,name=fee,proto3" json:"fee,omitempty"`
|
||
|
// This kernel is not valid earlier than lock_height blocks
|
||
|
// The max lock_height of all *inputs* to this transaction
|
||
|
LockHeight uint64 `protobuf:"varint,3,opt,name=lock_height,json=lockHeight,proto3" json:"lock_height,omitempty"`
|
||
|
// Remainder of the sum of all transaction commitments. If the transaction
|
||
|
// is well formed, amounts components should sum to zero and the excess
|
||
|
// is hence a valid public key.
|
||
|
Excess []byte `protobuf:"bytes,6,opt,name=excess,proto3" json:"excess,omitempty"`
|
||
|
// The signature proving the excess is a valid public key, which signs
|
||
|
// the transaction fee.
|
||
|
ExcessSig *types.Signature `protobuf:"bytes,7,opt,name=excess_sig,json=excessSig,proto3" json:"excess_sig,omitempty"`
|
||
|
// The hash of the kernel, as it appears in the MMR
|
||
|
Hash []byte `protobuf:"bytes,8,opt,name=hash,proto3" json:"hash,omitempty"`
|
||
|
// Version
|
||
|
Version uint32 `protobuf:"varint,9,opt,name=version,proto3" json:"version,omitempty"`
|
||
|
// Optional burned commitment
|
||
|
BurnCommitment []byte `protobuf:"bytes,10,opt,name=burn_commitment,json=burnCommitment,proto3" json:"burn_commitment,omitempty"`
|
||
|
unknownFields protoimpl.UnknownFields
|
||
|
sizeCache protoimpl.SizeCache
|
||
|
}
|
||
|
|
||
|
func (x *TransactionKernel) Reset() {
|
||
|
*x = TransactionKernel{}
|
||
|
mi := &file_transaction_proto_msgTypes[0]
|
||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||
|
ms.StoreMessageInfo(mi)
|
||
|
}
|
||
|
|
||
|
func (x *TransactionKernel) String() string {
|
||
|
return protoimpl.X.MessageStringOf(x)
|
||
|
}
|
||
|
|
||
|
func (*TransactionKernel) ProtoMessage() {}
|
||
|
|
||
|
func (x *TransactionKernel) ProtoReflect() protoreflect.Message {
|
||
|
mi := &file_transaction_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)
|
||
|
}
|
||
|
|
||
|
// Deprecated: Use TransactionKernel.ProtoReflect.Descriptor instead.
|
||
|
func (*TransactionKernel) Descriptor() ([]byte, []int) {
|
||
|
return file_transaction_proto_rawDescGZIP(), []int{0}
|
||
|
}
|
||
|
|
||
|
func (x *TransactionKernel) GetFeatures() uint32 {
|
||
|
if x != nil {
|
||
|
return x.Features
|
||
|
}
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
func (x *TransactionKernel) GetFee() uint64 {
|
||
|
if x != nil {
|
||
|
return x.Fee
|
||
|
}
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
func (x *TransactionKernel) GetLockHeight() uint64 {
|
||
|
if x != nil {
|
||
|
return x.LockHeight
|
||
|
}
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
func (x *TransactionKernel) GetExcess() []byte {
|
||
|
if x != nil {
|
||
|
return x.Excess
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionKernel) GetExcessSig() *types.Signature {
|
||
|
if x != nil {
|
||
|
return x.ExcessSig
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionKernel) GetHash() []byte {
|
||
|
if x != nil {
|
||
|
return x.Hash
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionKernel) GetVersion() uint32 {
|
||
|
if x != nil {
|
||
|
return x.Version
|
||
|
}
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
func (x *TransactionKernel) GetBurnCommitment() []byte {
|
||
|
if x != nil {
|
||
|
return x.BurnCommitment
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
// A transaction input.
|
||
|
//
|
||
|
// Primarily a reference to an output being spent by the transaction.
|
||
|
type TransactionInput struct {
|
||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||
|
// The features of the output being spent. We will check maturity for all outputs.
|
||
|
Features *OutputFeatures `protobuf:"bytes,1,opt,name=features,proto3" json:"features,omitempty"`
|
||
|
// The commitment referencing the output being spent.
|
||
|
Commitment []byte `protobuf:"bytes,2,opt,name=commitment,proto3" json:"commitment,omitempty"`
|
||
|
// Hash of the input, as it appears in the MMR
|
||
|
Hash []byte `protobuf:"bytes,3,opt,name=hash,proto3" json:"hash,omitempty"`
|
||
|
// The serialised script
|
||
|
Script []byte `protobuf:"bytes,4,opt,name=script,proto3" json:"script,omitempty"`
|
||
|
// The script input data, if any
|
||
|
InputData []byte `protobuf:"bytes,5,opt,name=input_data,json=inputData,proto3" json:"input_data,omitempty"`
|
||
|
// A signature with k_s, signing the script, input data, and mined height
|
||
|
ScriptSignature *types.ComAndPubSignature `protobuf:"bytes,7,opt,name=script_signature,json=scriptSignature,proto3" json:"script_signature,omitempty"`
|
||
|
// The offset public key, K_O
|
||
|
SenderOffsetPublicKey []byte `protobuf:"bytes,8,opt,name=sender_offset_public_key,json=senderOffsetPublicKey,proto3" json:"sender_offset_public_key,omitempty"`
|
||
|
// The hash of the output this input is spending
|
||
|
OutputHash []byte `protobuf:"bytes,9,opt,name=output_hash,json=outputHash,proto3" json:"output_hash,omitempty"`
|
||
|
// Covenant
|
||
|
Covenant []byte `protobuf:"bytes,10,opt,name=covenant,proto3" json:"covenant,omitempty"`
|
||
|
// Version
|
||
|
Version uint32 `protobuf:"varint,11,opt,name=version,proto3" json:"version,omitempty"`
|
||
|
// The encrypted data
|
||
|
EncryptedData []byte `protobuf:"bytes,12,opt,name=encrypted_data,json=encryptedData,proto3" json:"encrypted_data,omitempty"`
|
||
|
// The minimum value of the commitment that is proven by the range proof (in MicroMinotari)
|
||
|
MinimumValuePromise uint64 `protobuf:"varint,13,opt,name=minimum_value_promise,json=minimumValuePromise,proto3" json:"minimum_value_promise,omitempty"`
|
||
|
// The metadata signature for output this input is spending
|
||
|
MetadataSignature *types.ComAndPubSignature `protobuf:"bytes,14,opt,name=metadata_signature,json=metadataSignature,proto3" json:"metadata_signature,omitempty"`
|
||
|
// The rangeproof hash for output this input is spending
|
||
|
RangeproofHash []byte `protobuf:"bytes,15,opt,name=rangeproof_hash,json=rangeproofHash,proto3" json:"rangeproof_hash,omitempty"`
|
||
|
unknownFields protoimpl.UnknownFields
|
||
|
sizeCache protoimpl.SizeCache
|
||
|
}
|
||
|
|
||
|
func (x *TransactionInput) Reset() {
|
||
|
*x = TransactionInput{}
|
||
|
mi := &file_transaction_proto_msgTypes[1]
|
||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||
|
ms.StoreMessageInfo(mi)
|
||
|
}
|
||
|
|
||
|
func (x *TransactionInput) String() string {
|
||
|
return protoimpl.X.MessageStringOf(x)
|
||
|
}
|
||
|
|
||
|
func (*TransactionInput) ProtoMessage() {}
|
||
|
|
||
|
func (x *TransactionInput) ProtoReflect() protoreflect.Message {
|
||
|
mi := &file_transaction_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)
|
||
|
}
|
||
|
|
||
|
// Deprecated: Use TransactionInput.ProtoReflect.Descriptor instead.
|
||
|
func (*TransactionInput) Descriptor() ([]byte, []int) {
|
||
|
return file_transaction_proto_rawDescGZIP(), []int{1}
|
||
|
}
|
||
|
|
||
|
func (x *TransactionInput) GetFeatures() *OutputFeatures {
|
||
|
if x != nil {
|
||
|
return x.Features
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionInput) GetCommitment() []byte {
|
||
|
if x != nil {
|
||
|
return x.Commitment
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionInput) GetHash() []byte {
|
||
|
if x != nil {
|
||
|
return x.Hash
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionInput) GetScript() []byte {
|
||
|
if x != nil {
|
||
|
return x.Script
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionInput) GetInputData() []byte {
|
||
|
if x != nil {
|
||
|
return x.InputData
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionInput) GetScriptSignature() *types.ComAndPubSignature {
|
||
|
if x != nil {
|
||
|
return x.ScriptSignature
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionInput) GetSenderOffsetPublicKey() []byte {
|
||
|
if x != nil {
|
||
|
return x.SenderOffsetPublicKey
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionInput) GetOutputHash() []byte {
|
||
|
if x != nil {
|
||
|
return x.OutputHash
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionInput) GetCovenant() []byte {
|
||
|
if x != nil {
|
||
|
return x.Covenant
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionInput) GetVersion() uint32 {
|
||
|
if x != nil {
|
||
|
return x.Version
|
||
|
}
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
func (x *TransactionInput) GetEncryptedData() []byte {
|
||
|
if x != nil {
|
||
|
return x.EncryptedData
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionInput) GetMinimumValuePromise() uint64 {
|
||
|
if x != nil {
|
||
|
return x.MinimumValuePromise
|
||
|
}
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
func (x *TransactionInput) GetMetadataSignature() *types.ComAndPubSignature {
|
||
|
if x != nil {
|
||
|
return x.MetadataSignature
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionInput) GetRangeproofHash() []byte {
|
||
|
if x != nil {
|
||
|
return x.RangeproofHash
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
// Output for a transaction, defining the new ownership of coins that are being transferred. The commitment is a
|
||
|
// blinded value for the output while the range proof guarantees the commitment includes a positive value without
|
||
|
// overflow and the ownership of the private key.
|
||
|
type TransactionOutput struct {
|
||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||
|
// Options for an output's structure or use
|
||
|
Features *OutputFeatures `protobuf:"bytes,1,opt,name=features,proto3" json:"features,omitempty"`
|
||
|
// The homomorphic commitment representing the output amount
|
||
|
Commitment []byte `protobuf:"bytes,2,opt,name=commitment,proto3" json:"commitment,omitempty"`
|
||
|
// A proof that the commitment is in the right range
|
||
|
RangeProof *types.RangeProof `protobuf:"bytes,3,opt,name=range_proof,json=rangeProof,proto3" json:"range_proof,omitempty"`
|
||
|
// The hash of the output, as it appears in the MMR
|
||
|
Hash []byte `protobuf:"bytes,4,opt,name=hash,proto3" json:"hash,omitempty"`
|
||
|
// Tari script serialised script
|
||
|
Script []byte `protobuf:"bytes,5,opt,name=script,proto3" json:"script,omitempty"`
|
||
|
// Tari script offset public key, K_O
|
||
|
SenderOffsetPublicKey []byte `protobuf:"bytes,6,opt,name=sender_offset_public_key,json=senderOffsetPublicKey,proto3" json:"sender_offset_public_key,omitempty"`
|
||
|
// Metadata signature with the homomorphic commitment private values (amount and blinding factor) and the sender
|
||
|
// offset private key
|
||
|
MetadataSignature *types.ComAndPubSignature `protobuf:"bytes,7,opt,name=metadata_signature,json=metadataSignature,proto3" json:"metadata_signature,omitempty"`
|
||
|
// Covenant
|
||
|
Covenant []byte `protobuf:"bytes,8,opt,name=covenant,proto3" json:"covenant,omitempty"`
|
||
|
// Version
|
||
|
Version uint32 `protobuf:"varint,9,opt,name=version,proto3" json:"version,omitempty"`
|
||
|
// Encrypted Pedersen commitment openings (value and mask) for the output
|
||
|
EncryptedData []byte `protobuf:"bytes,10,opt,name=encrypted_data,json=encryptedData,proto3" json:"encrypted_data,omitempty"`
|
||
|
// The minimum value of the commitment that is proven by the range proof (in MicroMinotari)
|
||
|
MinimumValuePromise uint64 `protobuf:"varint,11,opt,name=minimum_value_promise,json=minimumValuePromise,proto3" json:"minimum_value_promise,omitempty"`
|
||
|
// Payment reference (PayRef) - 32-byte Blake2b hash of (block_hash || output_hash)
|
||
|
// This provides a unique, deterministic reference for the output that can be used
|
||
|
// for payment verification without revealing wallet ownership
|
||
|
PaymentReference []byte `protobuf:"bytes,12,opt,name=payment_reference,json=paymentReference,proto3" json:"payment_reference,omitempty"`
|
||
|
unknownFields protoimpl.UnknownFields
|
||
|
sizeCache protoimpl.SizeCache
|
||
|
}
|
||
|
|
||
|
func (x *TransactionOutput) Reset() {
|
||
|
*x = TransactionOutput{}
|
||
|
mi := &file_transaction_proto_msgTypes[2]
|
||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||
|
ms.StoreMessageInfo(mi)
|
||
|
}
|
||
|
|
||
|
func (x *TransactionOutput) String() string {
|
||
|
return protoimpl.X.MessageStringOf(x)
|
||
|
}
|
||
|
|
||
|
func (*TransactionOutput) ProtoMessage() {}
|
||
|
|
||
|
func (x *TransactionOutput) ProtoReflect() protoreflect.Message {
|
||
|
mi := &file_transaction_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)
|
||
|
}
|
||
|
|
||
|
// Deprecated: Use TransactionOutput.ProtoReflect.Descriptor instead.
|
||
|
func (*TransactionOutput) Descriptor() ([]byte, []int) {
|
||
|
return file_transaction_proto_rawDescGZIP(), []int{2}
|
||
|
}
|
||
|
|
||
|
func (x *TransactionOutput) GetFeatures() *OutputFeatures {
|
||
|
if x != nil {
|
||
|
return x.Features
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionOutput) GetCommitment() []byte {
|
||
|
if x != nil {
|
||
|
return x.Commitment
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionOutput) GetRangeProof() *types.RangeProof {
|
||
|
if x != nil {
|
||
|
return x.RangeProof
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionOutput) GetHash() []byte {
|
||
|
if x != nil {
|
||
|
return x.Hash
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionOutput) GetScript() []byte {
|
||
|
if x != nil {
|
||
|
return x.Script
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionOutput) GetSenderOffsetPublicKey() []byte {
|
||
|
if x != nil {
|
||
|
return x.SenderOffsetPublicKey
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionOutput) GetMetadataSignature() *types.ComAndPubSignature {
|
||
|
if x != nil {
|
||
|
return x.MetadataSignature
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionOutput) GetCovenant() []byte {
|
||
|
if x != nil {
|
||
|
return x.Covenant
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionOutput) GetVersion() uint32 {
|
||
|
if x != nil {
|
||
|
return x.Version
|
||
|
}
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
func (x *TransactionOutput) GetEncryptedData() []byte {
|
||
|
if x != nil {
|
||
|
return x.EncryptedData
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *TransactionOutput) GetMinimumValuePromise() uint64 {
|
||
|
if x != nil {
|
||
|
return x.MinimumValuePromise
|
||
|
}
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
func (x *TransactionOutput) GetPaymentReference() []byte {
|
||
|
if x != nil {
|
||
|
return x.PaymentReference
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
// Options for UTXOs
|
||
|
type OutputFeatures struct {
|
||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||
|
// Version
|
||
|
Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
|
||
|
// The type of output, eg Coinbase, all of which have different consensus rules
|
||
|
OutputType uint32 `protobuf:"varint,2,opt,name=output_type,json=outputType,proto3" json:"output_type,omitempty"`
|
||
|
// The maturity of the specific UTXO. This is the min lock height at which an UTXO can be spend. Coinbase UTXO
|
||
|
// require a min maturity of the Coinbase_lock_height, this should be checked on receiving new blocks.
|
||
|
Maturity uint64 `protobuf:"varint,3,opt,name=maturity,proto3" json:"maturity,omitempty"`
|
||
|
// Additional arbitrary info in coinbase transactions supplied by miners
|
||
|
CoinbaseExtra []byte `protobuf:"bytes,4,opt,name=coinbase_extra,json=coinbaseExtra,proto3" json:"coinbase_extra,omitempty"`
|
||
|
// Features that are specific to a side chain
|
||
|
SidechainFeature *sidechain_types.SideChainFeature `protobuf:"bytes,5,opt,name=sidechain_feature,json=sidechainFeature,proto3" json:"sidechain_feature,omitempty"`
|
||
|
// The type of range proof used in the output
|
||
|
RangeProofType uint32 `protobuf:"varint,6,opt,name=range_proof_type,json=rangeProofType,proto3" json:"range_proof_type,omitempty"`
|
||
|
unknownFields protoimpl.UnknownFields
|
||
|
sizeCache protoimpl.SizeCache
|
||
|
}
|
||
|
|
||
|
func (x *OutputFeatures) Reset() {
|
||
|
*x = OutputFeatures{}
|
||
|
mi := &file_transaction_proto_msgTypes[3]
|
||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||
|
ms.StoreMessageInfo(mi)
|
||
|
}
|
||
|
|
||
|
func (x *OutputFeatures) String() string {
|
||
|
return protoimpl.X.MessageStringOf(x)
|
||
|
}
|
||
|
|
||
|
func (*OutputFeatures) ProtoMessage() {}
|
||
|
|
||
|
func (x *OutputFeatures) ProtoReflect() protoreflect.Message {
|
||
|
mi := &file_transaction_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)
|
||
|
}
|
||
|
|
||
|
// Deprecated: Use OutputFeatures.ProtoReflect.Descriptor instead.
|
||
|
func (*OutputFeatures) Descriptor() ([]byte, []int) {
|
||
|
return file_transaction_proto_rawDescGZIP(), []int{3}
|
||
|
}
|
||
|
|
||
|
func (x *OutputFeatures) GetVersion() uint32 {
|
||
|
if x != nil {
|
||
|
return x.Version
|
||
|
}
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
func (x *OutputFeatures) GetOutputType() uint32 {
|
||
|
if x != nil {
|
||
|
return x.OutputType
|
||
|
}
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
func (x *OutputFeatures) GetMaturity() uint64 {
|
||
|
if x != nil {
|
||
|
return x.Maturity
|
||
|
}
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
func (x *OutputFeatures) GetCoinbaseExtra() []byte {
|
||
|
if x != nil {
|
||
|
return x.CoinbaseExtra
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *OutputFeatures) GetSidechainFeature() *sidechain_types.SideChainFeature {
|
||
|
if x != nil {
|
||
|
return x.SidechainFeature
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *OutputFeatures) GetRangeProofType() uint32 {
|
||
|
if x != nil {
|
||
|
return x.RangeProofType
|
||
|
}
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
// The components of the block or transaction. The same struct can be used for either, since in Mimblewimble,
|
||
|
// cut-through means that blocks and transactions have the same structure. The inputs, outputs and kernels should
|
||
|
// be sorted by their Blake2b-256bit digest hash
|
||
|
type AggregateBody struct {
|
||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||
|
// List of inputs spent by the transaction.
|
||
|
Inputs []*TransactionInput `protobuf:"bytes,1,rep,name=inputs,proto3" json:"inputs,omitempty"`
|
||
|
// List of outputs the transaction produces.
|
||
|
Outputs []*TransactionOutput `protobuf:"bytes,2,rep,name=outputs,proto3" json:"outputs,omitempty"`
|
||
|
// Kernels contain the excesses and their signatures for transaction
|
||
|
Kernels []*TransactionKernel `protobuf:"bytes,3,rep,name=kernels,proto3" json:"kernels,omitempty"`
|
||
|
unknownFields protoimpl.UnknownFields
|
||
|
sizeCache protoimpl.SizeCache
|
||
|
}
|
||
|
|
||
|
func (x *AggregateBody) Reset() {
|
||
|
*x = AggregateBody{}
|
||
|
mi := &file_transaction_proto_msgTypes[4]
|
||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||
|
ms.StoreMessageInfo(mi)
|
||
|
}
|
||
|
|
||
|
func (x *AggregateBody) String() string {
|
||
|
return protoimpl.X.MessageStringOf(x)
|
||
|
}
|
||
|
|
||
|
func (*AggregateBody) ProtoMessage() {}
|
||
|
|
||
|
func (x *AggregateBody) ProtoReflect() protoreflect.Message {
|
||
|
mi := &file_transaction_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)
|
||
|
}
|
||
|
|
||
|
// Deprecated: Use AggregateBody.ProtoReflect.Descriptor instead.
|
||
|
func (*AggregateBody) Descriptor() ([]byte, []int) {
|
||
|
return file_transaction_proto_rawDescGZIP(), []int{4}
|
||
|
}
|
||
|
|
||
|
func (x *AggregateBody) GetInputs() []*TransactionInput {
|
||
|
if x != nil {
|
||
|
return x.Inputs
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *AggregateBody) GetOutputs() []*TransactionOutput {
|
||
|
if x != nil {
|
||
|
return x.Outputs
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *AggregateBody) GetKernels() []*TransactionKernel {
|
||
|
if x != nil {
|
||
|
return x.Kernels
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
// A transaction which consists of a kernel offset and an aggregate body made up of inputs, outputs and kernels.
|
||
|
type Transaction struct {
|
||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||
|
Offset []byte `protobuf:"bytes,1,opt,name=offset,proto3" json:"offset,omitempty"`
|
||
|
Body *AggregateBody `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"`
|
||
|
ScriptOffset []byte `protobuf:"bytes,3,opt,name=script_offset,json=scriptOffset,proto3" json:"script_offset,omitempty"`
|
||
|
unknownFields protoimpl.UnknownFields
|
||
|
sizeCache protoimpl.SizeCache
|
||
|
}
|
||
|
|
||
|
func (x *Transaction) Reset() {
|
||
|
*x = Transaction{}
|
||
|
mi := &file_transaction_proto_msgTypes[5]
|
||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||
|
ms.StoreMessageInfo(mi)
|
||
|
}
|
||
|
|
||
|
func (x *Transaction) String() string {
|
||
|
return protoimpl.X.MessageStringOf(x)
|
||
|
}
|
||
|
|
||
|
func (*Transaction) ProtoMessage() {}
|
||
|
|
||
|
func (x *Transaction) ProtoReflect() protoreflect.Message {
|
||
|
mi := &file_transaction_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)
|
||
|
}
|
||
|
|
||
|
// Deprecated: Use Transaction.ProtoReflect.Descriptor instead.
|
||
|
func (*Transaction) Descriptor() ([]byte, []int) {
|
||
|
return file_transaction_proto_rawDescGZIP(), []int{5}
|
||
|
}
|
||
|
|
||
|
func (x *Transaction) GetOffset() []byte {
|
||
|
if x != nil {
|
||
|
return x.Offset
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *Transaction) GetBody() *AggregateBody {
|
||
|
if x != nil {
|
||
|
return x.Body
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *Transaction) GetScriptOffset() []byte {
|
||
|
if x != nil {
|
||
|
return x.ScriptOffset
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
type UnblindedOutput struct {
|
||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||
|
// Value of the output
|
||
|
Value uint64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
|
||
|
// Spending key of the output
|
||
|
SpendingKey []byte `protobuf:"bytes,2,opt,name=spending_key,json=spendingKey,proto3" json:"spending_key,omitempty"`
|
||
|
// Options for an output's structure or use
|
||
|
Features *OutputFeatures `protobuf:"bytes,3,opt,name=features,proto3" json:"features,omitempty"`
|
||
|
// Tari script serialised script
|
||
|
Script []byte `protobuf:"bytes,4,opt,name=script,proto3" json:"script,omitempty"`
|
||
|
// Tari script input data for spending
|
||
|
InputData []byte `protobuf:"bytes,5,opt,name=input_data,json=inputData,proto3" json:"input_data,omitempty"`
|
||
|
// Tari script private key
|
||
|
ScriptPrivateKey []byte `protobuf:"bytes,7,opt,name=script_private_key,json=scriptPrivateKey,proto3" json:"script_private_key,omitempty"`
|
||
|
// Tari script offset pubkey, K_O
|
||
|
SenderOffsetPublicKey []byte `protobuf:"bytes,8,opt,name=sender_offset_public_key,json=senderOffsetPublicKey,proto3" json:"sender_offset_public_key,omitempty"`
|
||
|
// UTXO signature with the script offset private key, k_O
|
||
|
MetadataSignature *types.ComAndPubSignature `protobuf:"bytes,9,opt,name=metadata_signature,json=metadataSignature,proto3" json:"metadata_signature,omitempty"`
|
||
|
// The minimum height the script allows this output to be spent
|
||
|
ScriptLockHeight uint64 `protobuf:"varint,10,opt,name=script_lock_height,json=scriptLockHeight,proto3" json:"script_lock_height,omitempty"`
|
||
|
// Covenant
|
||
|
Covenant []byte `protobuf:"bytes,11,opt,name=covenant,proto3" json:"covenant,omitempty"`
|
||
|
// Encrypted data
|
||
|
EncryptedData []byte `protobuf:"bytes,12,opt,name=encrypted_data,json=encryptedData,proto3" json:"encrypted_data,omitempty"`
|
||
|
// The minimum value of the commitment that is proven by the range proof (in MicroMinotari)
|
||
|
MinimumValuePromise uint64 `protobuf:"varint,13,opt,name=minimum_value_promise,json=minimumValuePromise,proto3" json:"minimum_value_promise,omitempty"`
|
||
|
// The range proof
|
||
|
RangeProof *types.RangeProof `protobuf:"bytes,14,opt,name=range_proof,json=rangeProof,proto3" json:"range_proof,omitempty"`
|
||
|
unknownFields protoimpl.UnknownFields
|
||
|
sizeCache protoimpl.SizeCache
|
||
|
}
|
||
|
|
||
|
func (x *UnblindedOutput) Reset() {
|
||
|
*x = UnblindedOutput{}
|
||
|
mi := &file_transaction_proto_msgTypes[6]
|
||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||
|
ms.StoreMessageInfo(mi)
|
||
|
}
|
||
|
|
||
|
func (x *UnblindedOutput) String() string {
|
||
|
return protoimpl.X.MessageStringOf(x)
|
||
|
}
|
||
|
|
||
|
func (*UnblindedOutput) ProtoMessage() {}
|
||
|
|
||
|
func (x *UnblindedOutput) ProtoReflect() protoreflect.Message {
|
||
|
mi := &file_transaction_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)
|
||
|
}
|
||
|
|
||
|
// Deprecated: Use UnblindedOutput.ProtoReflect.Descriptor instead.
|
||
|
func (*UnblindedOutput) Descriptor() ([]byte, []int) {
|
||
|
return file_transaction_proto_rawDescGZIP(), []int{6}
|
||
|
}
|
||
|
|
||
|
func (x *UnblindedOutput) GetValue() uint64 {
|
||
|
if x != nil {
|
||
|
return x.Value
|
||
|
}
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
func (x *UnblindedOutput) GetSpendingKey() []byte {
|
||
|
if x != nil {
|
||
|
return x.SpendingKey
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *UnblindedOutput) GetFeatures() *OutputFeatures {
|
||
|
if x != nil {
|
||
|
return x.Features
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *UnblindedOutput) GetScript() []byte {
|
||
|
if x != nil {
|
||
|
return x.Script
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *UnblindedOutput) GetInputData() []byte {
|
||
|
if x != nil {
|
||
|
return x.InputData
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *UnblindedOutput) GetScriptPrivateKey() []byte {
|
||
|
if x != nil {
|
||
|
return x.ScriptPrivateKey
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *UnblindedOutput) GetSenderOffsetPublicKey() []byte {
|
||
|
if x != nil {
|
||
|
return x.SenderOffsetPublicKey
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *UnblindedOutput) GetMetadataSignature() *types.ComAndPubSignature {
|
||
|
if x != nil {
|
||
|
return x.MetadataSignature
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *UnblindedOutput) GetScriptLockHeight() uint64 {
|
||
|
if x != nil {
|
||
|
return x.ScriptLockHeight
|
||
|
}
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
func (x *UnblindedOutput) GetCovenant() []byte {
|
||
|
if x != nil {
|
||
|
return x.Covenant
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *UnblindedOutput) GetEncryptedData() []byte {
|
||
|
if x != nil {
|
||
|
return x.EncryptedData
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (x *UnblindedOutput) GetMinimumValuePromise() uint64 {
|
||
|
if x != nil {
|
||
|
return x.MinimumValuePromise
|
||
|
}
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
func (x *UnblindedOutput) GetRangeProof() *types.RangeProof {
|
||
|
if x != nil {
|
||
|
return x.RangeProof
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
var File_transaction_proto protoreflect.FileDescriptor
|
||
|
|
||
|
const file_transaction_proto_rawDesc = "" +
|
||
|
"\n" +
|
||
|
"\x11transaction.proto\x12\btari.rpc\x1a\vtypes.proto\x1a\x15sidechain_types.proto\"\x85\x02\n" +
|
||
|
"\x11TransactionKernel\x12\x1a\n" +
|
||
|
"\bfeatures\x18\x01 \x01(\rR\bfeatures\x12\x10\n" +
|
||
|
"\x03fee\x18\x02 \x01(\x04R\x03fee\x12\x1f\n" +
|
||
|
"\vlock_height\x18\x03 \x01(\x04R\n" +
|
||
|
"lockHeight\x12\x16\n" +
|
||
|
"\x06excess\x18\x06 \x01(\fR\x06excess\x122\n" +
|
||
|
"\n" +
|
||
|
"excess_sig\x18\a \x01(\v2\x13.tari.rpc.SignatureR\texcessSig\x12\x12\n" +
|
||
|
"\x04hash\x18\b \x01(\fR\x04hash\x12\x18\n" +
|
||
|
"\aversion\x18\t \x01(\rR\aversion\x12'\n" +
|
||
|
"\x0fburn_commitment\x18\n" +
|
||
|
" \x01(\fR\x0eburnCommitment\"\xdd\x04\n" +
|
||
|
"\x10TransactionInput\x124\n" +
|
||
|
"\bfeatures\x18\x01 \x01(\v2\x18.tari.rpc.OutputFeaturesR\bfeatures\x12\x1e\n" +
|
||
|
"\n" +
|
||
|
"commitment\x18\x02 \x01(\fR\n" +
|
||
|
"commitment\x12\x12\n" +
|
||
|
"\x04hash\x18\x03 \x01(\fR\x04hash\x12\x16\n" +
|
||
|
"\x06script\x18\x04 \x01(\fR\x06script\x12\x1d\n" +
|
||
|
"\n" +
|
||
|
"input_data\x18\x05 \x01(\fR\tinputData\x12G\n" +
|
||
|
"\x10script_signature\x18\a \x01(\v2\x1c.tari.rpc.ComAndPubSignatureR\x0fscriptSignature\x127\n" +
|
||
|
"\x18sender_offset_public_key\x18\b \x01(\fR\x15senderOffsetPublicKey\x12\x1f\n" +
|
||
|
"\voutput_hash\x18\t \x01(\fR\n" +
|
||
|
"outputHash\x12\x1a\n" +
|
||
|
"\bcovenant\x18\n" +
|
||
|
" \x01(\fR\bcovenant\x12\x18\n" +
|
||
|
"\aversion\x18\v \x01(\rR\aversion\x12%\n" +
|
||
|
"\x0eencrypted_data\x18\f \x01(\fR\rencryptedData\x122\n" +
|
||
|
"\x15minimum_value_promise\x18\r \x01(\x04R\x13minimumValuePromise\x12K\n" +
|
||
|
"\x12metadata_signature\x18\x0e \x01(\v2\x1c.tari.rpc.ComAndPubSignatureR\x11metadataSignature\x12'\n" +
|
||
|
"\x0frangeproof_hash\x18\x0f \x01(\fR\x0erangeproofHash\"\x90\x04\n" +
|
||
|
"\x11TransactionOutput\x124\n" +
|
||
|
"\bfeatures\x18\x01 \x01(\v2\x18.tari.rpc.OutputFeaturesR\bfeatures\x12\x1e\n" +
|
||
|
"\n" +
|
||
|
"commitment\x18\x02 \x01(\fR\n" +
|
||
|
"commitment\x125\n" +
|
||
|
"\vrange_proof\x18\x03 \x01(\v2\x14.tari.rpc.RangeProofR\n" +
|
||
|
"rangeProof\x12\x12\n" +
|
||
|
"\x04hash\x18\x04 \x01(\fR\x04hash\x12\x16\n" +
|
||
|
"\x06script\x18\x05 \x01(\fR\x06script\x127\n" +
|
||
|
"\x18sender_offset_public_key\x18\x06 \x01(\fR\x15senderOffsetPublicKey\x12K\n" +
|
||
|
"\x12metadata_signature\x18\a \x01(\v2\x1c.tari.rpc.ComAndPubSignatureR\x11metadataSignature\x12\x1a\n" +
|
||
|
"\bcovenant\x18\b \x01(\fR\bcovenant\x12\x18\n" +
|
||
|
"\aversion\x18\t \x01(\rR\aversion\x12%\n" +
|
||
|
"\x0eencrypted_data\x18\n" +
|
||
|
" \x01(\fR\rencryptedData\x122\n" +
|
||
|
"\x15minimum_value_promise\x18\v \x01(\x04R\x13minimumValuePromise\x12+\n" +
|
||
|
"\x11payment_reference\x18\f \x01(\fR\x10paymentReference\"\x81\x02\n" +
|
||
|
"\x0eOutputFeatures\x12\x18\n" +
|
||
|
"\aversion\x18\x01 \x01(\rR\aversion\x12\x1f\n" +
|
||
|
"\voutput_type\x18\x02 \x01(\rR\n" +
|
||
|
"outputType\x12\x1a\n" +
|
||
|
"\bmaturity\x18\x03 \x01(\x04R\bmaturity\x12%\n" +
|
||
|
"\x0ecoinbase_extra\x18\x04 \x01(\fR\rcoinbaseExtra\x12G\n" +
|
||
|
"\x11sidechain_feature\x18\x05 \x01(\v2\x1a.tari.rpc.SideChainFeatureR\x10sidechainFeature\x12(\n" +
|
||
|
"\x10range_proof_type\x18\x06 \x01(\rR\x0erangeProofType\"\xb1\x01\n" +
|
||
|
"\rAggregateBody\x122\n" +
|
||
|
"\x06inputs\x18\x01 \x03(\v2\x1a.tari.rpc.TransactionInputR\x06inputs\x125\n" +
|
||
|
"\aoutputs\x18\x02 \x03(\v2\x1b.tari.rpc.TransactionOutputR\aoutputs\x125\n" +
|
||
|
"\akernels\x18\x03 \x03(\v2\x1b.tari.rpc.TransactionKernelR\akernels\"w\n" +
|
||
|
"\vTransaction\x12\x16\n" +
|
||
|
"\x06offset\x18\x01 \x01(\fR\x06offset\x12+\n" +
|
||
|
"\x04body\x18\x02 \x01(\v2\x17.tari.rpc.AggregateBodyR\x04body\x12#\n" +
|
||
|
"\rscript_offset\x18\x03 \x01(\fR\fscriptOffset\"\xc7\x04\n" +
|
||
|
"\x0fUnblindedOutput\x12\x14\n" +
|
||
|
"\x05value\x18\x01 \x01(\x04R\x05value\x12!\n" +
|
||
|
"\fspending_key\x18\x02 \x01(\fR\vspendingKey\x124\n" +
|
||
|
"\bfeatures\x18\x03 \x01(\v2\x18.tari.rpc.OutputFeaturesR\bfeatures\x12\x16\n" +
|
||
|
"\x06script\x18\x04 \x01(\fR\x06script\x12\x1d\n" +
|
||
|
"\n" +
|
||
|
"input_data\x18\x05 \x01(\fR\tinputData\x12,\n" +
|
||
|
"\x12script_private_key\x18\a \x01(\fR\x10scriptPrivateKey\x127\n" +
|
||
|
"\x18sender_offset_public_key\x18\b \x01(\fR\x15senderOffsetPublicKey\x12K\n" +
|
||
|
"\x12metadata_signature\x18\t \x01(\v2\x1c.tari.rpc.ComAndPubSignatureR\x11metadataSignature\x12,\n" +
|
||
|
"\x12script_lock_height\x18\n" +
|
||
|
" \x01(\x04R\x10scriptLockHeight\x12\x1a\n" +
|
||
|
"\bcovenant\x18\v \x01(\fR\bcovenant\x12%\n" +
|
||
|
"\x0eencrypted_data\x18\f \x01(\fR\rencryptedData\x122\n" +
|
||
|
"\x15minimum_value_promise\x18\r \x01(\x04R\x13minimumValuePromise\x125\n" +
|
||
|
"\vrange_proof\x18\x0e \x01(\v2\x14.tari.rpc.RangeProofR\n" +
|
||
|
"rangeProofB0Z.pool/internal/gbt/tari/transaction;transactionb\x06proto3"
|
||
|
|
||
|
var (
|
||
|
file_transaction_proto_rawDescOnce sync.Once
|
||
|
file_transaction_proto_rawDescData []byte
|
||
|
)
|
||
|
|
||
|
func file_transaction_proto_rawDescGZIP() []byte {
|
||
|
file_transaction_proto_rawDescOnce.Do(func() {
|
||
|
file_transaction_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_transaction_proto_rawDesc), len(file_transaction_proto_rawDesc)))
|
||
|
})
|
||
|
return file_transaction_proto_rawDescData
|
||
|
}
|
||
|
|
||
|
var file_transaction_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
|
||
|
var file_transaction_proto_goTypes = []any{
|
||
|
(*TransactionKernel)(nil), // 0: tari.rpc.TransactionKernel
|
||
|
(*TransactionInput)(nil), // 1: tari.rpc.TransactionInput
|
||
|
(*TransactionOutput)(nil), // 2: tari.rpc.TransactionOutput
|
||
|
(*OutputFeatures)(nil), // 3: tari.rpc.OutputFeatures
|
||
|
(*AggregateBody)(nil), // 4: tari.rpc.AggregateBody
|
||
|
(*Transaction)(nil), // 5: tari.rpc.Transaction
|
||
|
(*UnblindedOutput)(nil), // 6: tari.rpc.UnblindedOutput
|
||
|
(*types.Signature)(nil), // 7: tari.rpc.Signature
|
||
|
(*types.ComAndPubSignature)(nil), // 8: tari.rpc.ComAndPubSignature
|
||
|
(*types.RangeProof)(nil), // 9: tari.rpc.RangeProof
|
||
|
(*sidechain_types.SideChainFeature)(nil), // 10: tari.rpc.SideChainFeature
|
||
|
}
|
||
|
var file_transaction_proto_depIdxs = []int32{
|
||
|
7, // 0: tari.rpc.TransactionKernel.excess_sig:type_name -> tari.rpc.Signature
|
||
|
3, // 1: tari.rpc.TransactionInput.features:type_name -> tari.rpc.OutputFeatures
|
||
|
8, // 2: tari.rpc.TransactionInput.script_signature:type_name -> tari.rpc.ComAndPubSignature
|
||
|
8, // 3: tari.rpc.TransactionInput.metadata_signature:type_name -> tari.rpc.ComAndPubSignature
|
||
|
3, // 4: tari.rpc.TransactionOutput.features:type_name -> tari.rpc.OutputFeatures
|
||
|
9, // 5: tari.rpc.TransactionOutput.range_proof:type_name -> tari.rpc.RangeProof
|
||
|
8, // 6: tari.rpc.TransactionOutput.metadata_signature:type_name -> tari.rpc.ComAndPubSignature
|
||
|
10, // 7: tari.rpc.OutputFeatures.sidechain_feature:type_name -> tari.rpc.SideChainFeature
|
||
|
1, // 8: tari.rpc.AggregateBody.inputs:type_name -> tari.rpc.TransactionInput
|
||
|
2, // 9: tari.rpc.AggregateBody.outputs:type_name -> tari.rpc.TransactionOutput
|
||
|
0, // 10: tari.rpc.AggregateBody.kernels:type_name -> tari.rpc.TransactionKernel
|
||
|
4, // 11: tari.rpc.Transaction.body:type_name -> tari.rpc.AggregateBody
|
||
|
3, // 12: tari.rpc.UnblindedOutput.features:type_name -> tari.rpc.OutputFeatures
|
||
|
8, // 13: tari.rpc.UnblindedOutput.metadata_signature:type_name -> tari.rpc.ComAndPubSignature
|
||
|
9, // 14: tari.rpc.UnblindedOutput.range_proof:type_name -> tari.rpc.RangeProof
|
||
|
15, // [15:15] is the sub-list for method output_type
|
||
|
15, // [15:15] is the sub-list for method input_type
|
||
|
15, // [15:15] is the sub-list for extension type_name
|
||
|
15, // [15:15] is the sub-list for extension extendee
|
||
|
0, // [0:15] is the sub-list for field type_name
|
||
|
}
|
||
|
|
||
|
func init() { file_transaction_proto_init() }
|
||
|
func file_transaction_proto_init() {
|
||
|
if File_transaction_proto != nil {
|
||
|
return
|
||
|
}
|
||
|
type x struct{}
|
||
|
out := protoimpl.TypeBuilder{
|
||
|
File: protoimpl.DescBuilder{
|
||
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||
|
RawDescriptor: unsafe.Slice(unsafe.StringData(file_transaction_proto_rawDesc), len(file_transaction_proto_rawDesc)),
|
||
|
NumEnums: 0,
|
||
|
NumMessages: 7,
|
||
|
NumExtensions: 0,
|
||
|
NumServices: 0,
|
||
|
},
|
||
|
GoTypes: file_transaction_proto_goTypes,
|
||
|
DependencyIndexes: file_transaction_proto_depIdxs,
|
||
|
MessageInfos: file_transaction_proto_msgTypes,
|
||
|
}.Build()
|
||
|
File_transaction_proto = out.File
|
||
|
file_transaction_proto_goTypes = nil
|
||
|
file_transaction_proto_depIdxs = nil
|
||
|
}
|