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 }