lib/transaction.js
function multiSign(_txObj, i, privKey, redeemScript) {
  var hashcode = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : zconstants.SIGHASH_ALL;

  // Make a copy
  var txObj = JSON.parse(JSON.stringify(_txObj));

  // Populate current tx.ins[i] with the redeemScript
  var signingTx = signatureForm(txObj, i, redeemScript, hashcode);

  return getScriptSignature(privKey, signingTx, hashcode);
}
function multiSign(_txObj, i, privKey, redeemScript) {
  var hashcode = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : zconstants.SIGHASH_ALL;

  // Make a copy
  var txObj = JSON.parse(JSON.stringify(_txObj));

  // Populate current tx.ins[i] with the redeemScript
  var signingTx = signatureForm(txObj, i, redeemScript, hashcode);

  return getScriptSignature(privKey, signingTx, hashcode);
}
/*
Gets signatures needed for multi-sign tx
@param {String} _txObj transaction object you wanna sign
@param {Int} index fof tx.in to sign
@param {privKey} One of the M private keys you (NOT WIF format!!!)
@param {string} redeemScript (redeemScript of the multi-sig)
@param {string} hashcode (SIGHASH_ALL, SIGHASH_NONE, etc)
return {String} signature