github.com/s7techlab/cckit@v0.10.5/examples/cpaper_asservice/chaincode.go (about)

     1  package cpaper_asservice
     2  
     3  import (
     4  	"github.com/s7techlab/cckit/extensions/encryption"
     5  	"github.com/s7techlab/cckit/extensions/owner"
     6  	"github.com/s7techlab/cckit/router"
     7  )
     8  
     9  func CCRouter(name string) (*router.Group, error) {
    10  	r := router.New(name)
    11  	// Store on the ledger the information about chaincode instantiation
    12  	r.Init(owner.InvokeSetFromCreator)
    13  
    14  	if err := RegisterCPaperServiceChaincode(r, &CPaperService{}); err != nil {
    15  		return nil, err
    16  	}
    17  
    18  	return r, nil
    19  }
    20  
    21  func NewCC() (*router.Chaincode, error) {
    22  	r, err := CCRouter(`CommercialPaper`)
    23  	if err != nil {
    24  		return nil, err
    25  	}
    26  
    27  	return router.NewChaincode(r), nil
    28  }
    29  
    30  func NewCCEncrypted() (*router.Chaincode, error) {
    31  	r, err := CCRouter(`CommercialPaperEncrypted`)
    32  	if err != nil {
    33  		return nil, err
    34  	}
    35  
    36  	r.
    37  		// encryption key in transient map and encrypted args required
    38  		Pre(encryption.ArgsDecrypt).
    39  		// default Context replaced with EncryptedStateContext only if key is provided in transient map
    40  		Use(encryption.EncStateContext).
    41  		// invoke response will be encrypted cause it will be placed in blocks
    42  		After(encryption.EncryptInvokeResponse())
    43  
    44  	return router.NewChaincode(r), nil
    45  }