@@ -1395,6 +1395,8 @@ elif [ "$1" = "chaincode" ] && [ "$2" = "dev" ]; then
13951395 runDevModeChaincode "$3" "$4"
13961396elif [ "$1" = "chaincode" ] && [ "$2" = "invoke" ]; then
13971397 chaincodeInvoke "$3" "$4" "$5" "$6" "$7"
1398+ elif [ "$1" = "chaincode" ] && [ "$2" = "query" ]; then
1399+ chaincodeQuery "$3" "$4" "$5" "$6" "$7"
13981400elif [ "$1" = "chaincodes" ] && [ "$2" = "list" ]; then
13991401 chaincodeList "$3" "$4"
14001402elif [ "$1" = "channel" ]; then
@@ -1497,6 +1499,44 @@ chaincodeInvoke() {
14971499
14981500 peerChaincodeInvoke " $cli" " $peer_addresses" " $2" " $3" " $4" " $5"
14991501}
1502+
1503+ # Function to perform chaincode query for single peer
1504+ # Accepts 4-5 parameters:
1505+ # 1. single peer domain
1506+ # 2. channel name
1507+ # 3. chaincode name
1508+ # 4. chaincode command
1509+ # 5. transient data (optional)
1510+ chaincodeQuery() {
1511+ if [ " $#" - ne 4 ] && [ " $#" - ne 5 ]; then
1512+ echo " Expected 4 or 5 parameters for chaincode query, but got: $*"
1513+ echo " Usage: fablo chaincode query <peer_domain> <channel_name> <chaincode_name> <command> [transient]"
1514+ exit 1
1515+ fi
1516+
1517+ peer_domain = " $1"
1518+ channel_name = " $2"
1519+ chaincode_name = " $3"
1520+ command = " $4"
1521+ transient = " $5"
1522+
1523+ cli = " "
1524+ peer_address = " "
1525+
1526+ if [ " $peer_domain" = " peer0.org1.example.com" ]; then
1527+ cli = " cli.org1.example.com"
1528+ peer_address = " peer0.org1.example.com:7041"
1529+
1530+ fi
1531+
1532+ if [ - z " $peer_address" ]; then
1533+ echo " Unknown peer: $peer_domain"
1534+ exit 1
1535+ fi
1536+
1537+ peerChaincodeQuery " $cli" " $peer_address" " $channel_name" " $chaincode_name" " $command" " $transient"
1538+
1539+ }
15001540"
15011541`;
15021542
@@ -2671,6 +2711,71 @@ peerChaincodeInvokeTls() {
26712711 --cafile "/var/hyperledger/cli/$CA_CERT" \\
26722712 2>&1
26732713}
2714+
2715+ peerChaincodeQuery() {
2716+ local CLI="$1"
2717+ local PEERS="$2"
2718+ local CHANNEL="$3"
2719+ local CHAINCODE="$4"
2720+ local COMMAND="$5"
2721+ local TRANSIENT="$6"
2722+
2723+ echo "Chaincode query:"
2724+ inputLog "CLI: $CLI"
2725+ inputLog "PEERS: $PEERS"
2726+ inputLog "CHANNEL: $CHANNEL"
2727+ inputLog "CHAINCODE: $CHAINCODE"
2728+ inputLog "COMMAND: $COMMAND"
2729+ inputLog "TRANSIENT: $TRANSIENT"
2730+
2731+ PEER_ADDRESSES="--peerAddresses $(echo "$PEERS" | sed 's/,/ --peerAddresses /g')"
2732+
2733+ # shellcheck disable=SC2086
2734+ docker exec "$CLI" peer chaincode query \\
2735+ $PEER_ADDRESSES \\
2736+ -C "$CHANNEL" \\
2737+ -n "$CHAINCODE" \\
2738+ -c "$COMMAND" \\
2739+ --transient "$TRANSIENT" \\
2740+ 2>&1
2741+ }
2742+
2743+ peerChaincodeQueryTls() {
2744+ local CLI="$1"
2745+ local PEERS="$2"
2746+ local CHANNEL="$3"
2747+ local CHAINCODE="$4"
2748+ local COMMAND="$5"
2749+ local TRANSIENT="$6"
2750+ local PEER_CERTS="$7"
2751+ local CA_CERT="$8"
2752+
2753+ echo "Chaincode query:"
2754+ inputLog "CLI: $CLI"
2755+ inputLog "PEERS: $PEERS"
2756+ inputLog "CHANNEL: $CHANNEL"
2757+ inputLog "CHAINCODE: $CHAINCODE"
2758+ inputLog "COMMAND: $COMMAND"
2759+ inputLog "TRANSIENT: $TRANSIENT"
2760+ inputLog "PEER_CERTS: $PEER_CERTS"
2761+ inputLog "CA_CERT: $CA_CERT"
2762+
2763+ PEER_ADDRESSES="--peerAddresses $(echo "$PEERS" | sed 's/,/ --peerAddresses /g')"
2764+
2765+ TLS_ROOT_CERT_FILES="--tlsRootCertFiles /var/hyperledger/cli/$(echo "$PEER_CERTS" | sed 's/,/ --tlsRootCertFiles \\/var\\/hyperledger\\/cli\\//g')"
2766+
2767+ # shellcheck disable=SC2086
2768+ docker exec "$CLI" peer chaincode query \\
2769+ $PEER_ADDRESSES \\
2770+ $TLS_ROOT_CERT_FILES \\
2771+ -C "$CHANNEL" \\
2772+ -n "$CHAINCODE" \\
2773+ -c "$COMMAND" \\
2774+ --transient "$TRANSIENT" \\
2775+ --tls \\
2776+ --cafile "/var/hyperledger/cli/$CA_CERT" \\
2777+ 2>&1
2778+ }
26742779"
26752780`;
26762781
0 commit comments