@@ -10,6 +10,7 @@ import (
10
10
"encoding/json"
11
11
"fmt"
12
12
"io/ioutil"
13
+ "os"
13
14
"strings"
14
15
15
16
"github.com/golang/protobuf/proto"
@@ -33,12 +34,12 @@ import (
33
34
func checkSpec (spec * pb.ChaincodeSpec ) error {
34
35
// Don't allow nil value
35
36
if spec == nil {
36
- return errors .New ("expected chaincode specification, nil received" )
37
+ return errors .New ("Expected chaincode specification, nil received" )
37
38
}
38
39
39
40
platform , err := platforms .Find (spec .Type )
40
41
if err != nil {
41
- return fmt .Errorf ("failed to determine platform type: %s" , err )
42
+ return fmt .Errorf ("Failed to determine platform type: %s" , err )
42
43
}
43
44
44
45
return platform .ValidateSpec (spec )
@@ -55,7 +56,7 @@ func getChaincodeDeploymentSpec(spec *pb.ChaincodeSpec, crtPkg bool) (*pb.Chainc
55
56
56
57
codePackageBytes , err = container .GetChaincodePackageBytes (spec )
57
58
if err != nil {
58
- err = fmt .Errorf ("error getting chaincode package bytes: %s" , err )
59
+ err = fmt .Errorf ("Error getting chaincode package bytes: %s" , err )
59
60
return nil , err
60
61
}
61
62
}
@@ -73,7 +74,7 @@ func getChaincodeSpec(cmd *cobra.Command) (*pb.ChaincodeSpec, error) {
73
74
// Build the spec
74
75
input := & pb.ChaincodeInput {}
75
76
if err := json .Unmarshal ([]byte (chaincodeCtorJSON ), & input ); err != nil {
76
- return spec , fmt .Errorf ("chaincode argument error: %s" , err )
77
+ return spec , fmt .Errorf ("Chaincode argument error: %s" , err )
77
78
}
78
79
79
80
chaincodeLang = strings .ToUpper (chaincodeLang )
@@ -82,7 +83,7 @@ func getChaincodeSpec(cmd *cobra.Command) (*pb.ChaincodeSpec, error) {
82
83
} else {
83
84
logger .Debug ("java chaincode disabled" )
84
85
if pb .ChaincodeSpec_Type_value [chaincodeLang ] == int32 (pb .ChaincodeSpec_JAVA ) {
85
- return nil , fmt .Errorf ("java chaincode is work-in-progress and disabled" )
86
+ return nil , fmt .Errorf ("Java chaincode is work-in-progress and disabled" )
86
87
}
87
88
}
88
89
spec = & pb.ChaincodeSpec {
@@ -93,7 +94,7 @@ func getChaincodeSpec(cmd *cobra.Command) (*pb.ChaincodeSpec, error) {
93
94
return spec , nil
94
95
}
95
96
96
- func chaincodeInvokeOrQuery (cmd * cobra.Command , invoke bool , cf * ChaincodeCmdFactory ) (err error ) {
97
+ func chaincodeInvokeOrQuery (cmd * cobra.Command , args [] string , invoke bool , cf * ChaincodeCmdFactory ) (err error ) {
97
98
spec , err := getChaincodeSpec (cmd )
98
99
if err != nil {
99
100
return err
@@ -116,45 +117,43 @@ func chaincodeInvokeOrQuery(cmd *cobra.Command, invoke bool, cf *ChaincodeCmdFac
116
117
logger .Debugf ("ESCC invoke result: %v" , proposalResp )
117
118
pRespPayload , err := putils .GetProposalResponsePayload (proposalResp .Payload )
118
119
if err != nil {
119
- return fmt .Errorf ("error while unmarshaling proposal response payload: %s" , err )
120
+ return fmt .Errorf ("Error while unmarshaling proposal response payload: %s" , err )
120
121
}
121
122
ca , err := putils .GetChaincodeAction (pRespPayload .Extension )
122
123
if err != nil {
123
- return fmt .Errorf ("error while unmarshaling chaincode action: %s" , err )
124
+ return fmt .Errorf ("Error while unmarshaling chaincode action: %s" , err )
124
125
}
125
126
logger .Warningf ("Endorsement failure during invoke. chaincode result: %v" , ca .Response )
126
127
} else {
127
128
logger .Debugf ("ESCC invoke result: %v" , proposalResp )
128
129
pRespPayload , err := putils .GetProposalResponsePayload (proposalResp .Payload )
129
130
if err != nil {
130
- return fmt .Errorf ("error while unmarshaling proposal response payload: %s" , err )
131
+ return fmt .Errorf ("Error while unmarshaling proposal response payload: %s" , err )
131
132
}
132
133
ca , err := putils .GetChaincodeAction (pRespPayload .Extension )
133
134
if err != nil {
134
- return fmt .Errorf ("error while unmarshaling chaincode action: %s" , err )
135
+ return fmt .Errorf ("Error while unmarshaling chaincode action: %s" , err )
135
136
}
136
137
logger .Infof ("Chaincode invoke successful. result: %v" , ca .Response )
137
138
}
138
139
} else {
139
140
if proposalResp == nil {
140
- return fmt .Errorf ("error query %s by endorsing: %s" , chainFuncName , err )
141
- }
142
-
143
- if chaincodeQueryRaw && chaincodeQueryHex {
144
- return fmt .Errorf ("options --raw (-r) and --hex (-x) are not compatible" )
141
+ return fmt .Errorf ("Error query %s by endorsing: %s" , chainFuncName , err )
145
142
}
146
143
147
144
if chaincodeQueryRaw {
148
- fmt .Println (proposalResp .Response .Payload )
149
- return nil
150
- }
151
-
152
- if chaincodeQueryHex {
153
- fmt .Printf ("%x\n " , proposalResp .Response .Payload )
154
- return nil
145
+ if chaincodeQueryHex {
146
+ return fmt .Errorf ("Options --raw (-r) and --hex (-x) are not compatible" )
147
+ }
148
+ fmt .Print ("Query Result (Raw): " )
149
+ os .Stdout .Write (proposalResp .Response .Payload )
150
+ } else {
151
+ if chaincodeQueryHex {
152
+ fmt .Printf ("Query Result: %x\n " , proposalResp .Response .Payload )
153
+ } else {
154
+ fmt .Printf ("Query Result: %s\n " , string (proposalResp .Response .Payload ))
155
+ }
155
156
}
156
-
157
- fmt .Println (string (proposalResp .Response .Payload ))
158
157
}
159
158
return nil
160
159
}
@@ -215,20 +214,20 @@ func getCollectionConfigFromBytes(cconfBytes []byte) ([]byte, error) {
215
214
ccarray = append (ccarray , cc )
216
215
}
217
216
218
- ccp := & pcommon.CollectionConfigPackage {Config : ccarray }
217
+ ccp := & pcommon.CollectionConfigPackage {ccarray }
219
218
return proto .Marshal (ccp )
220
219
}
221
220
222
221
func checkChaincodeCmdParams (cmd * cobra.Command ) error {
223
222
//we need chaincode name for everything, including deploy
224
223
if chaincodeName == common .UndefinedParamValue {
225
- return fmt .Errorf ("must supply value for %s name parameter" , chainFuncName )
224
+ return fmt .Errorf ("Must supply value for %s name parameter. " , chainFuncName )
226
225
}
227
226
228
227
if cmd .Name () == instantiateCmdName || cmd .Name () == installCmdName ||
229
228
cmd .Name () == upgradeCmdName || cmd .Name () == packageCmdName {
230
229
if chaincodeVersion == common .UndefinedParamValue {
231
- return fmt .Errorf ("chaincode version is not provided for %s" , cmd .Name ())
230
+ return fmt .Errorf ("Chaincode version is not provided for %s" , cmd .Name ())
232
231
}
233
232
}
234
233
@@ -249,7 +248,7 @@ func checkChaincodeCmdParams(cmd *cobra.Command) error {
249
248
if policy != common .UndefinedParamValue {
250
249
p , err := cauthdsl .FromString (policy )
251
250
if err != nil {
252
- return fmt .Errorf ("invalid policy %s" , policy )
251
+ return fmt .Errorf ("Invalid policy %s" , policy )
253
252
}
254
253
policyMarshalled = putils .MarshalOrPanic (p )
255
254
}
@@ -271,7 +270,7 @@ func checkChaincodeCmdParams(cmd *cobra.Command) error {
271
270
var f interface {}
272
271
err := json .Unmarshal ([]byte (chaincodeCtorJSON ), & f )
273
272
if err != nil {
274
- return fmt .Errorf ("chaincode argument error: %s" , err )
273
+ return fmt .Errorf ("Chaincode argument error: %s" , err )
275
274
}
276
275
m := f .(map [string ]interface {})
277
276
sm := make (map [string ]interface {})
@@ -306,24 +305,24 @@ func InitCmdFactory(isEndorserRequired, isOrdererRequired bool) (*ChaincodeCmdFa
306
305
if isEndorserRequired {
307
306
endorserClient , err = common .GetEndorserClientFnc ()
308
307
if err != nil {
309
- return nil , fmt .Errorf ("error getting endorser client %s: %s" , chainFuncName , err )
308
+ return nil , fmt .Errorf ("Error getting endorser client %s: %s" , chainFuncName , err )
310
309
}
311
310
}
312
311
313
312
signer , err := common .GetDefaultSignerFnc ()
314
313
if err != nil {
315
- return nil , fmt .Errorf ("error getting default signer: %s" , err )
314
+ return nil , fmt .Errorf ("Error getting default signer: %s" , err )
316
315
}
317
316
318
317
var broadcastClient common.BroadcastClient
319
318
if isOrdererRequired {
320
319
if len (common .OrderingEndpoint ) == 0 {
321
320
orderingEndpoints , err := common .GetOrdererEndpointOfChainFnc (channelID , signer , endorserClient )
322
321
if err != nil {
323
- return nil , fmt .Errorf ("error getting (%s) orderer endpoint: %s" , channelID , err )
322
+ return nil , fmt .Errorf ("Error getting (%s) orderer endpoint: %s" , channelID , err )
324
323
}
325
324
if len (orderingEndpoints ) == 0 {
326
- return nil , fmt .Errorf ("error no orderer endpoint got for %s" , channelID )
325
+ return nil , fmt .Errorf ("Error no orderer endpoint got for %s" , channelID )
327
326
}
328
327
logger .Infof ("Get chain(%s) orderer endpoint: %s" , channelID , orderingEndpoints [0 ])
329
328
// override viper env
@@ -333,7 +332,7 @@ func InitCmdFactory(isEndorserRequired, isOrdererRequired bool) (*ChaincodeCmdFa
333
332
broadcastClient , err = common .GetBroadcastClientFnc ()
334
333
335
334
if err != nil {
336
- return nil , fmt .Errorf ("error getting broadcast client: %s" , err )
335
+ return nil , fmt .Errorf ("Error getting broadcast client: %s" , err )
337
336
}
338
337
}
339
338
return & ChaincodeCmdFactory {
@@ -368,7 +367,7 @@ func ChaincodeInvokeOrQuery(
368
367
369
368
creator , err := signer .Serialize ()
370
369
if err != nil {
371
- return nil , fmt .Errorf ("error serializing identity for %s: %s" , signer .GetIdentifier (), err )
370
+ return nil , fmt .Errorf ("Error serializing identity for %s: %s" , signer .GetIdentifier (), err )
372
371
}
373
372
374
373
funcName := "invoke"
@@ -380,7 +379,7 @@ func ChaincodeInvokeOrQuery(
380
379
var tMap map [string ][]byte
381
380
if transient != "" {
382
381
if err := json .Unmarshal ([]byte (transient ), & tMap ); err != nil {
383
- return nil , fmt .Errorf ("error parsing transient string: %s" , err )
382
+ return nil , fmt .Errorf ("Error parsing transient string: %s" , err )
384
383
}
385
384
}
386
385
@@ -393,13 +392,13 @@ func ChaincodeInvokeOrQuery(
393
392
var signedProp * pb.SignedProposal
394
393
signedProp , err = putils .GetSignedProposal (prop , signer )
395
394
if err != nil {
396
- return nil , fmt .Errorf ("error creating signed proposal %s: %s" , funcName , err )
395
+ return nil , fmt .Errorf ("Error creating signed proposal %s: %s" , funcName , err )
397
396
}
398
397
399
398
var proposalResp * pb.ProposalResponse
400
399
proposalResp , err = endorserClient .ProcessProposal (context .Background (), signedProp )
401
400
if err != nil {
402
- return nil , fmt .Errorf ("error endorsing %s: %s" , funcName , err )
401
+ return nil , fmt .Errorf ("Error endorsing %s: %s" , funcName , err )
403
402
}
404
403
405
404
if invoke {
@@ -410,12 +409,12 @@ func ChaincodeInvokeOrQuery(
410
409
// assemble a signed transaction (it's an Envelope message)
411
410
env , err := putils .CreateSignedTx (prop , signer , proposalResp )
412
411
if err != nil {
413
- return proposalResp , fmt .Errorf ("could not assemble transaction, err %s" , err )
412
+ return proposalResp , fmt .Errorf ("Could not assemble transaction, err %s" , err )
414
413
}
415
414
416
415
// send the envelope for ordering
417
416
if err = bc .Send (env ); err != nil {
418
- return proposalResp , fmt .Errorf ("error sending transaction %s: %s" , funcName , err )
417
+ return proposalResp , fmt .Errorf ("Error sending transaction %s: %s" , funcName , err )
419
418
}
420
419
}
421
420
}
0 commit comments