def run_test(self):
    txid = self.nodes[0].sendtoaddress(self.nodes[1].getnewaddress(), 0.1)
    self.sync_all()
    assert_array_result(self.nodes[0].listtransactions(), {'txid': txid}, {'category': 'send', 'account': '', 'amount': Decimal('-0.1'), 'confirmations': 0})
    assert_array_result(self.nodes[1].listtransactions(), {'txid': txid}, {'category': 'receive', 'account': '', 'amount': Decimal('0.1'), 'confirmations': 0})
    self.nodes[0].generate(1)
    self.sync_all()
    assert_array_result(self.nodes[0].listtransactions(), {'txid': txid}, {'category': 'send', 'account': '', 'amount': Decimal('-0.1'), 'confirmations': 1})
    assert_array_result(self.nodes[1].listtransactions(), {'txid': txid}, {'category': 'receive', 'account': '', 'amount': Decimal('0.1'), 'confirmations': 1})
    txid = self.nodes[0].sendtoaddress(self.nodes[0].getnewaddress(), 0.2)
    assert_array_result(self.nodes[0].listtransactions(), {'txid': txid, 'category': 'send'}, {'amount': Decimal('-0.2')})
    assert_array_result(self.nodes[0].listtransactions(), {'txid': txid, 'category': 'receive'}, {'amount': Decimal('0.2')})
    send_to = {self.nodes[0].getnewaddress(): 0.11, self.nodes[1].getnewaddress(): 0.22, self.nodes[0].getaccountaddress('from1'): 0.33, self.nodes[1].getaccountaddress('toself'): 0.44}
    txid = self.nodes[1].sendmany('', send_to)
    self.sync_all()
    assert_array_result(self.nodes[1].listtransactions(), {'category': 'send', 'amount': Decimal('-0.11')}, {'txid': txid})
    assert_array_result(self.nodes[0].listtransactions(), {'category': 'receive', 'amount': Decimal('0.11')}, {'txid': txid})
    assert_array_result(self.nodes[1].listtransactions(), {'category': 'send', 'amount': Decimal('-0.22')}, {'txid': txid})
    assert_array_result(self.nodes[1].listtransactions(), {'category': 'receive', 'amount': Decimal('0.22')}, {'txid': txid})
    assert_array_result(self.nodes[1].listtransactions(), {'category': 'send', 'amount': Decimal('-0.33')}, {'txid': txid})
    assert_array_result(self.nodes[0].listtransactions(), {'category': 'receive', 'amount': Decimal('0.33')}, {'txid': txid, 'account': 'from1'})
    assert_array_result(self.nodes[1].listtransactions(), {'category': 'send', 'amount': Decimal('-0.44')}, {'txid': txid, 'account': ''})
    assert_array_result(self.nodes[1].listtransactions(), {'category': 'receive', 'amount': Decimal('0.44')}, {'txid': txid, 'account': 'toself'})
    multisig = self.nodes[1].createmultisig(1, [self.nodes[1].getnewaddress()])
    self.nodes[0].importaddress(multisig['redeemScript'], 'watchonly', False, True)
    txid = self.nodes[1].sendtoaddress(multisig['address'], 0.1)
    self.nodes[1].generate(1)
    self.sync_all()
    assert (len(self.nodes[0].listtransactions('watchonly', 100, 0, False)) == 0)
    assert_array_result(self.nodes[0].listtransactions('watchonly', 100, 0, True), {'category': 'receive', 'amount': Decimal('0.1')}, {'txid': txid, 'account': 'watchonly'})
    self.run_rbf_opt_in_test()
def run_test(self):
    txid = self.nodes[0].sendtoaddress(self.nodes[1].getnewaddress(), 0.1)
    self.sync_all()
    assert_array_result(self.nodes[0].listtransactions(), {'txid': txid}, {'category': 'send', 'account': , 'amount': Decimal('-0.1'), 'confirmations': 0})
    assert_array_result(self.nodes[1].listtransactions(), {'txid': txid}, {'category': 'receive', 'account': , 'amount': Decimal('0.1'), 'confirmations': 0})
    self.nodes[0].generate(1)
    self.sync_all()
    assert_array_result(self.nodes[0].listtransactions(), {'txid': txid}, {'category': 'send', 'account': , 'amount': Decimal('-0.1'), 'confirmations': 1})
    assert_array_result(self.nodes[1].listtransactions(), {'txid': txid}, {'category': 'receive', 'account': , 'amount': Decimal('0.1'), 'confirmations': 1})
    txid = self.nodes[0].sendtoaddress(self.nodes[0].getnewaddress(), 0.2)
    assert_array_result(self.nodes[0].listtransactions(), {'txid': txid, 'category': 'send'}, {'amount': Decimal('-0.2')})
    assert_array_result(self.nodes[0].listtransactions(), {'txid': txid, 'category': 'receive'}, {'amount': Decimal('0.2')})
    send_to = {self.nodes[0].getnewaddress(): 0.11, self.nodes[1].getnewaddress(): 0.22, self.nodes[0].getaccountaddress('from1'): 0.33, self.nodes[1].getaccountaddress('toself'): 0.44}
    txid = self.nodes[1].sendmany(, send_to)
    self.sync_all()
    assert_array_result(self.nodes[1].listtransactions(), {'category': 'send', 'amount': Decimal('-0.11')}, {'txid': txid})
    assert_array_result(self.nodes[0].listtransactions(), {'category': 'receive', 'amount': Decimal('0.11')}, {'txid': txid})
    assert_array_result(self.nodes[1].listtransactions(), {'category': 'send', 'amount': Decimal('-0.22')}, {'txid': txid})
    assert_array_result(self.nodes[1].listtransactions(), {'category': 'receive', 'amount': Decimal('0.22')}, {'txid': txid})
    assert_array_result(self.nodes[1].listtransactions(), {'category': 'send', 'amount': Decimal('-0.33')}, {'txid': txid})
    assert_array_result(self.nodes[0].listtransactions(), {'category': 'receive', 'amount': Decimal('0.33')}, {'txid': txid, 'account': 'from1'})
    assert_array_result(self.nodes[1].listtransactions(), {'category': 'send', 'amount': Decimal('-0.44')}, {'txid': txid, 'account': })
    assert_array_result(self.nodes[1].listtransactions(), {'category': 'receive', 'amount': Decimal('0.44')}, {'txid': txid, 'account': 'toself'})
    multisig = self.nodes[1].createmultisig(1, [self.nodes[1].getnewaddress()])
    self.nodes[0].importaddress(multisig['redeemScript'], 'watchonly', False, True)
    txid = self.nodes[1].sendtoaddress(multisig['address'], 0.1)
    self.nodes[1].generate(1)
    self.sync_all()
    assert (len(self.nodes[0].listtransactions('watchonly', 100, 0, False)) == 0)
    assert_array_result(self.nodes[0].listtransactions('watchonly', 100, 0, True), {'category': 'receive', 'amount': Decimal('0.1')}, {'txid': txid, 'account': 'watchonly'})
    self.run_rbf_opt_in_test()