github.com/yimialmonte/fabric@v2.1.1+incompatible/common/tools/protolator/protoext/peerext/transaction.go (about)

     1  /*
     2  Copyright IBM Corp. All Rights Reserved.
     3  
     4  SPDX-License-Identifier: Apache-2.0
     5  */
     6  
     7  package peerext
     8  
     9  import (
    10  	"fmt"
    11  
    12  	"github.com/golang/protobuf/proto"
    13  	"github.com/hyperledger/fabric-protos-go/common"
    14  	"github.com/hyperledger/fabric-protos-go/peer"
    15  )
    16  
    17  type TransactionAction struct { // nothing was testing this
    18  	*peer.TransactionAction
    19  }
    20  
    21  func (ta *TransactionAction) Underlying() proto.Message {
    22  	return ta.TransactionAction
    23  }
    24  
    25  func (ta *TransactionAction) StaticallyOpaqueFields() []string {
    26  	return []string{"header", "payload"}
    27  }
    28  
    29  func (ta *TransactionAction) StaticallyOpaqueFieldProto(name string) (proto.Message, error) {
    30  	switch name {
    31  	case ta.StaticallyOpaqueFields()[0]:
    32  		return &common.SignatureHeader{}, nil
    33  	case ta.StaticallyOpaqueFields()[1]:
    34  		return &peer.ChaincodeActionPayload{}, nil
    35  	default:
    36  		return nil, fmt.Errorf("not a marshaled field: %s", name)
    37  	}
    38  }
    39  
    40  type ChaincodeActionPayload struct {
    41  	*peer.ChaincodeActionPayload
    42  }
    43  
    44  func (cap *ChaincodeActionPayload) Underlying() proto.Message {
    45  	return cap.ChaincodeActionPayload
    46  }
    47  
    48  func (cap *ChaincodeActionPayload) StaticallyOpaqueFields() []string {
    49  	return []string{"chaincode_proposal_payload"}
    50  }
    51  
    52  func (cap *ChaincodeActionPayload) StaticallyOpaqueFieldProto(name string) (proto.Message, error) {
    53  	if name != cap.StaticallyOpaqueFields()[0] {
    54  		return nil, fmt.Errorf("not a marshaled field: %s", name)
    55  	}
    56  	return &peer.ChaincodeProposalPayload{}, nil
    57  }
    58  
    59  type ChaincodeEndorsedAction struct {
    60  	*peer.ChaincodeEndorsedAction
    61  }
    62  
    63  func (cae *ChaincodeEndorsedAction) Underlying() proto.Message {
    64  	return cae.ChaincodeEndorsedAction
    65  }
    66  
    67  func (cae *ChaincodeEndorsedAction) StaticallyOpaqueFields() []string {
    68  	return []string{"proposal_response_payload"}
    69  }
    70  
    71  func (cae *ChaincodeEndorsedAction) StaticallyOpaqueFieldProto(name string) (proto.Message, error) {
    72  	if name != cae.StaticallyOpaqueFields()[0] {
    73  		return nil, fmt.Errorf("not a marshaled field: %s", name)
    74  	}
    75  	return &peer.ProposalResponsePayload{}, nil
    76  }