const {Type, Field} = require('protobufjs');
const protoChaincodeInput = new Type('ChaincodeInput')
.add(new Field('args', 1, 'string', 'repeated'));
const protoChaincodeSpec = new Type('ChaincodeSpec')
.add(new Field('input', 3, 'ChaincodeInput')).add(protoChaincodeInput);
const protoChaincodeProposalPayloadInput = new Type('ChaincodeProposalPayloadInput')
.add(new Field('chaincodeSpec', 1, 'ChaincodeSpec')).add(protoChaincodeSpec);
const protoChaincodeProposalPayload = new Type('ChaincodeProposalPayload')
.add(new Field('input', 1, 'ChaincodeProposalPayloadInput')).add(protoChaincodeProposalPayloadInput);
const protoChaincodeActionPayload = new Type('ChaincodeActionPayload')
.add(new Field('chaincodeProposalPayload', 1, 'ChaincodeProposalPayload')).add(protoChaincodeProposalPayload);
const protoTransactionAction = new Type('TransactionAction')
.add(new Field('payload', 2, 'ChaincodeActionPayload')).add(protoChaincodeActionPayload);
const protoTransaction = new Type('Transaction')
.add(new Field('actions', 1, 'TransactionAction', 'repeated')).add(protoTransactionAction);
const protoPayload = new Type('Payload')
.add(new Field('data', 2, 'Transaction')).add(protoTransaction);
const protoEnvelope = new Type('Envelope')
.add(new Field('payload', 1, 'Payload')).add(protoPayload);
function getTransactions(bytes) {
const envelope = protoEnvelope.decode(bytes);
const actions = envelope.toJSON().payload.data.actions;
for (const action of actions) {
txs.push(action.payload.chaincodeProposalPayload
.input.chaincodeSpec.input.args);
'CpsDEpgDCpUDEpIDCo8DCowDCokDGoYDChNQb3N0VHJ1c3RlZVJlc3BvbnNlCrIBeyJ0eXBlIjoidHJ1c3RlZV9yZXNwb25zZSIsInBhZE5hbWUiOiJteS1wYWQtMS4wIiwidHJ1c3RlZUlkIjoidHJ1c3RlZTEiLCJ0b2tlbiI6ImYxMzQxZmM5MDU5Zjg1N2MyMThmNTEwNzcxZTJjODlmIiwidHJ1c3RlZVNoYXJlIjoiQWtGdVdiQUcxU2NjbDY5UlduMnhIU2lRUGRsaFlvbVpuRnF5SE81bFFEZGwifQq5AXsic2lnbmVyTWV0YWRhdGEiOnsiaWQiOiJ0cnVzdGVlMSIsImZ1bGxOYW1lIjoiVHJ1c3RlZS0xIiwicm9sZSI6IlRydXN0ZWUifSwicGF5bG9hZCI6Ik1FWUNJUUNCMHJFa2FvZGR6VWQ0eXVJUmFuTlZ5ZVlDK21JZmxPSm5Mdm82RnF0QXRBSWhBSys3cWxtenJnZ1diRTEzVDJvcUErNS9wSUdiZmluZFl3OEFTbU1xV21vNSJ9',
'CkESPwo9EjsKOQo3CjUaMwoPUG9zdERhdGFSZXF1ZXN0CiAyMWJmNTdkZDUyYTNiODEzMjhmZTEzOGFjNGU4ZWQxYg==',
const blockData = block.data.data;
const data0B64 = blockData[0];
const data0 = Buffer.from(data0B64, 'base64');
console.log(getTransactions(data0));
// 'PostTrusteeResponse',
// '{"type":"trustee_response","padName":"my-pad-1.0","trusteeId":"trustee1","token":"f1341fc9059f857c218f510771e2c89f","trusteeShare":"AkFuWbAG1Sccl69RWn2xHSiQPdlhYomZnFqyHO5lQDdl"}',
// '{"signerMetadata":{"id":"trustee1","fullName":"Trustee-1","role":"Trustee"},"payload":"MEYCIQCB0rEkaoddzUd4yuIRanNVyeYC+mIflOJnLvo6FqtAtAIhAK+7qlmzrggWbE13T2oqA+5/pIGbfindYw8ASmMqWmo5"}'
const data1B64 = blockData[1];
const data1 = Buffer.from(base1B64, 'base64');
console.log(getTransactions(data1));
// 'PostTrusteeResponse',
// '21bf57dd52a3b81328fe138ac4e8ed1b'