// ExecTxs executes all the transactions listed in the txs array // one-by-one. If all the executions are successful, it returns // the candidate global state hash, and nil error array. func (h *Helper) ExecTxs(id interface{}, txs []*pb.Transaction) ([]byte, error) { // TODO id is currently ignored, fix once the underlying implementation accepts id // The secHelper is set during creat ChaincodeSupport, so we don't need this step // cxt := context.WithValue(context.Background(), "security", h.coordinator.GetSecHelper()) // TODO return directly once underlying implementation no longer returns []error succeededTxs, res, ccevents, txerrs, err := chaincode.ExecuteTransactions(context.Background(), chaincode.DefaultChain, txs) h.curBatch = append(h.curBatch, succeededTxs...) // TODO, remove after issue 579 //copy errs to result txresults := make([]*pb.TransactionResult, len(txerrs)) //process errors for each transaction for i, e := range txerrs { //NOTE- it'll be nice if we can have error values. For now success == 0, error == 1 if txerrs[i] != nil { txresults[i] = &pb.TransactionResult{Txid: txs[i].Txid, Error: e.Error(), ErrorCode: 1, ChaincodeEvent: ccevents[i]} } else { txresults[i] = &pb.TransactionResult{Txid: txs[i].Txid, ChaincodeEvent: ccevents[i]} } } h.curBatchErrs = append(h.curBatchErrs, txresults...) // TODO, remove after issue 579 return res, err }
// ExecTxs executes all the transactions listed in the txs array // one-by-one. If all the executions are successful, it returns // the candidate global state hash, and nil error array. func (h *Helper) ExecTxs(id interface{}, txs []*pb.Transaction) ([]byte, error) { // TODO id is currently ignored, fix once the underlying implementation accepts id // The secHelper is set during creat ChaincodeSupport, so we don't need this step // cxt := context.WithValue(context.Background(), "security", h.coordinator.GetSecHelper()) // TODO return directly once underlying implementation no longer returns []error res, _ := chaincode.ExecuteTransactions(context.Background(), chaincode.DefaultChain, txs) h.curBatch = append(h.curBatch, txs...) // TODO, remove after issue 579 return res, nil }