How To Unapprove A Multisig Transaction

To unapprove a multi-sig transaction, submit a transaction to the unapprove action of the eosio.msig account.

In the example shown below userbbbbbbbb unapproves the changeowner proposal, previously proposed by useraaaaaaaa using userbbbbbbbb's active permission.

(async () => {
  await api.transact({
    actions: [{
      account: 'eosio.msig',
      name: 'unapprove',
      authorization: [{
        actor: 'userbbbbbbbb',
        permission: 'active',
      }],
      data: {
        proposer: 'useraaaaaaaa',
        proposal_name: 'changeowner',
        level: {
          actor: 'userbbbbbbbb',
          permission: 'active',
        }
      },
    }]
  }, {
    blocksBehind: 3,
    expireSeconds: 30,
    broadcast: true,
    sign: true
  });
})();