public Dictionary <string, string> BuscarInfo(string id) { var tx_id = client.NewQueryProposalRequest(); tx_id.Args = new List <string>() { id }; tx_id.ChaincodeID = new Hyperledger.Fabric.SDK.ChaincodeID() { Name = chaincode }; tx_id.Fcn = "BuscarInfo"; //c3369ed2-0b93-42ef-aa93-c76fd962a448 var response = channel.QueryByChaincode(tx_id); if (!response[0].IsInvalid) { var msgEnc = response[0].ChaincodeActionResponsePayload; var msg = System.Text.Encoding.UTF8.GetString(msgEnc); var result = Newtonsoft.Json.JsonConvert.DeserializeObject <List <string> >(msg); return(Newtonsoft.Json.JsonConvert.DeserializeObject <Dictionary <string, string> >(result[0])); } Console.WriteLine(response[0].Message); return(null); }
private void QueryChaincodeForExpectedValue(HFClient client, Channel channel, string expect, ChaincodeID chaincdeID) { Util.COut("Now query chaincode {0} on channel {1} for the value of b expecting to see: {2}", chaincdeID, channel.Name, expect); QueryByChaincodeRequest queryByChaincodeRequest = client.NewQueryProposalRequest(); queryByChaincodeRequest.SetArgs("b".ToBytes()); // test using bytes as args. End2end uses Strings. queryByChaincodeRequest.SetFcn("query"); queryByChaincodeRequest.ChaincodeID = chaincdeID; List <ProposalResponse> queryProposals; queryProposals = channel.QueryByChaincode(queryByChaincodeRequest); foreach (ProposalResponse proposalResponse in queryProposals) { if (!proposalResponse.IsVerified || proposalResponse.Status != ChaincodeResponse.ChaincodeResponseStatus.SUCCESS) { Assert.Fail($"Failed query proposal from peer {proposalResponse.Peer.Name} status: {proposalResponse.Status}. Messages: {proposalResponse.Message}. Was verified : {proposalResponse.IsVerified}"); } else { string payload = proposalResponse.ProtoProposalResponse.Response.Payload.ToStringUtf8(); Util.COut("Query payload of b from peer {0} returned {1}", proposalResponse.Peer.Name, payload); Assert.AreEqual(expect, payload, $"Failed compare on channel {channel.Name} chaincode id {chaincdeID} expected value:'{expect}', but got:'{payload}'"); } } }
public FabCarCollections QueryAllCars() { var t = client.NewQueryProposalRequest(); var request = t; t.ChaincodeID = new Hyperledger.Fabric.SDK.ChaincodeID() { Name = chaincode }; t.Fcn = "queryAllCars"; t.Args = new System.Collections.Generic.List <string>(); var response = channel.QueryByChaincode(t); if (response.Count > 0) { return(Newtonsoft.Json.JsonConvert.DeserializeObject <FabCarCollections>(System.Text.Encoding.UTF8.GetString(response[0].ChaincodeActionResponsePayload))); } return(null); }
// Returns the current value of b's assets private static string QueryChaincodeForCurrentValue(HFClient client, Channel channel, ChaincodeID chaincodeID) { Util.COut("Now query chaincode on channel {0} for the current value of b", channel.Name); QueryByChaincodeRequest queryByChaincodeRequest = client.NewQueryProposalRequest(); queryByChaincodeRequest.SetArgs("b"); queryByChaincodeRequest.SetFcn("query"); queryByChaincodeRequest.SetChaincodeID(chaincodeID); List <ProposalResponse> queryProposals; queryProposals = channel.QueryByChaincode(queryByChaincodeRequest); string expect = null; foreach (ProposalResponse proposalResponse in queryProposals) { if (!proposalResponse.IsVerified || proposalResponse.Status != ChaincodeResponse.ChaincodeResponseStatus.SUCCESS) { Assert.Fail($"Failed query proposal from peer {proposalResponse.Peer.Name} status: {proposalResponse.Status}. Messages: {proposalResponse.Message}. Was verified : {proposalResponse.IsVerified}"); } else { string payload = proposalResponse.ProtoProposalResponse.Response.Payload.ToStringUtf8(); Util.COut("Query payload of b from peer {0} returned {1}", proposalResponse.Peer.Name, payload); if (expect != null) { Assert.AreEqual(expect, payload); } else { expect = payload; } } } return(expect); }