Rename account to label where appropriate
This change only updates strings and adds RPC aliases, but should simplify the implementation of address labels in https://github.com/bitcoin/bitcoin/pull/7729, by getting renaming out of the way and letting it focus on semantics. The difference between accounts and labels is that labels apply only to addresses, while accounts apply to both addresses and transactions (transactions have "from" and "to" accounts). The code associating accounts with transactions is clumsy and unreliable so we would like get rid of it.
This commit is contained in:
1 parent
c39dd2ef59
commit
045eeb8870
10 files changed
+253
-231
No files matched your search
@@ -36,11 +36,11 @@ class ReceivedByTest(BitcoinTestFramework):
|
||||
self.sync_all()
|
||||
assert_array_result(self.nodes[1].listreceivedbyaddress(),
|
||||
{"address": addr},
|
||||
{"address": addr, "account": "", "amount": Decimal("0.1"), "confirmations": 10, "txids": [txid, ]})
|
||||
{"address": addr, "label": "", "amount": Decimal("0.1"), "confirmations": 10, "txids": [txid, ]})
|
||||
# With min confidence < 10
|
||||
assert_array_result(self.nodes[1].listreceivedbyaddress(5),
|
||||
{"address": addr},
|
||||
{"address": addr, "account": "", "amount": Decimal("0.1"), "confirmations": 10, "txids": [txid, ]})
|
||||
{"address": addr, "label": "", "amount": Decimal("0.1"), "confirmations": 10, "txids": [txid, ]})
|
||||
# With min confidence > 10, should not find Tx
|
||||
assert_array_result(self.nodes[1].listreceivedbyaddress(11), {"address": addr}, {}, True)
|
||||
|
||||
@@ -48,11 +48,11 @@ class ReceivedByTest(BitcoinTestFramework):
|
||||
empty_addr = self.nodes[1].getnewaddress()
|
||||
assert_array_result(self.nodes[1].listreceivedbyaddress(0, True),
|
||||
{"address": empty_addr},
|
||||
{"address": empty_addr, "account": "", "amount": 0, "confirmations": 0, "txids": []})
|
||||
{"address": empty_addr, "label": "", "amount": 0, "confirmations": 0, "txids": []})
|
||||
|
||||
#Test Address filtering
|
||||
#Only on addr
|
||||
expected = {"address":addr, "account":"", "amount":Decimal("0.1"), "confirmations":10, "txids":[txid,]}
|
||||
expected = {"address":addr, "label":"", "amount":Decimal("0.1"), "confirmations":10, "txids":[txid,]}
|
||||
res = self.nodes[1].listreceivedbyaddress(minconf=0, include_empty=True, include_watchonly=True, address_filter=addr)
|
||||
assert_array_result(res, {"address":addr}, expected)
|
||||
assert_equal(len(res), 1)
|
||||
@@ -66,12 +66,12 @@ class ReceivedByTest(BitcoinTestFramework):
|
||||
self.nodes[0].generate(1)
|
||||
self.sync_all()
|
||||
#Same test as above should still pass
|
||||
expected = {"address":addr, "account":"", "amount":Decimal("0.1"), "confirmations":11, "txids":[txid,]}
|
||||
expected = {"address":addr, "label":"", "amount":Decimal("0.1"), "confirmations":11, "txids":[txid,]}
|
||||
res = self.nodes[1].listreceivedbyaddress(0, True, True, addr)
|
||||
assert_array_result(res, {"address":addr}, expected)
|
||||
assert_equal(len(res), 1)
|
||||
#Same test as above but with other_addr should still pass
|
||||
expected = {"address":other_addr, "account":"", "amount":Decimal("0.1"), "confirmations":1, "txids":[txid2,]}
|
||||
expected = {"address":other_addr, "label":"", "amount":Decimal("0.1"), "confirmations":1, "txids":[txid2,]}
|
||||
res = self.nodes[1].listreceivedbyaddress(0, True, True, other_addr)
|
||||
assert_array_result(res, {"address":other_addr}, expected)
|
||||
assert_equal(len(res), 1)
|
||||
@@ -108,46 +108,46 @@ class ReceivedByTest(BitcoinTestFramework):
|
||||
# Trying to getreceivedby for an address the wallet doesn't own should return an error
|
||||
assert_raises_rpc_error(-4, "Address not found in wallet", self.nodes[0].getreceivedbyaddress, addr)
|
||||
|
||||
self.log.info("listreceivedbyaccount + getreceivedbyaccount Test")
|
||||
self.log.info("listreceivedbylabel + getreceivedbylabel Test")
|
||||
|
||||
# set pre-state
|
||||
addrArr = self.nodes[1].getnewaddress()
|
||||
account = self.nodes[1].getaccount(addrArr)
|
||||
received_by_account_json = [r for r in self.nodes[1].listreceivedbyaccount() if r["account"] == account][0]
|
||||
balance_by_account = self.nodes[1].getreceivedbyaccount(account)
|
||||
label = self.nodes[1].getaccount(addrArr)
|
||||
received_by_label_json = [r for r in self.nodes[1].listreceivedbylabel() if r["label"] == label][0]
|
||||
balance_by_label = self.nodes[1].getreceivedbylabel(label)
|
||||
|
||||
txid = self.nodes[0].sendtoaddress(addr, 0.1)
|
||||
self.sync_all()
|
||||
|
||||
# listreceivedbyaccount should return received_by_account_json because of 0 confirmations
|
||||
assert_array_result(self.nodes[1].listreceivedbyaccount(),
|
||||
{"account": account},
|
||||
received_by_account_json)
|
||||
# listreceivedbylabel should return received_by_label_json because of 0 confirmations
|
||||
assert_array_result(self.nodes[1].listreceivedbylabel(),
|
||||
{"label": label},
|
||||
received_by_label_json)
|
||||
|
||||
# getreceivedbyaddress should return same balance because of 0 confirmations
|
||||
balance = self.nodes[1].getreceivedbyaccount(account)
|
||||
assert_equal(balance, balance_by_account)
|
||||
balance = self.nodes[1].getreceivedbylabel(label)
|
||||
assert_equal(balance, balance_by_label)
|
||||
|
||||
self.nodes[1].generate(10)
|
||||
self.sync_all()
|
||||
# listreceivedbyaccount should return updated account balance
|
||||
assert_array_result(self.nodes[1].listreceivedbyaccount(),
|
||||
{"account": account},
|
||||
{"account": received_by_account_json["account"], "amount": (received_by_account_json["amount"] + Decimal("0.1"))})
|
||||
# listreceivedbylabel should return updated received list
|
||||
assert_array_result(self.nodes[1].listreceivedbylabel(),
|
||||
{"label": label},
|
||||
{"label": received_by_label_json["label"], "amount": (received_by_label_json["amount"] + Decimal("0.1"))})
|
||||
|
||||
# getreceivedbyaddress should return updates balance
|
||||
balance = self.nodes[1].getreceivedbyaccount(account)
|
||||
assert_equal(balance, balance_by_account + Decimal("0.1"))
|
||||
# getreceivedbylabel should return updated receive total
|
||||
balance = self.nodes[1].getreceivedbylabel(label)
|
||||
assert_equal(balance, balance_by_label + Decimal("0.1"))
|
||||
|
||||
# Create a new account named "mynewaccount" that has a 0 balance
|
||||
self.nodes[1].getaccountaddress("mynewaccount")
|
||||
received_by_account_json = [r for r in self.nodes[1].listreceivedbyaccount(0, True) if r["account"] == "mynewaccount"][0]
|
||||
# Create a new label named "mynewlabel" that has a 0 balance
|
||||
self.nodes[1].getlabeladdress("mynewlabel")
|
||||
received_by_label_json = [r for r in self.nodes[1].listreceivedbylabel(0, True) if r["label"] == "mynewlabel"][0]
|
||||
|
||||
# Test includeempty of listreceivedbyaccount
|
||||
assert_equal(received_by_account_json["amount"], Decimal("0.0"))
|
||||
# Test includeempty of listreceivedbylabel
|
||||
assert_equal(received_by_label_json["amount"], Decimal("0.0"))
|
||||
|
||||
# Test getreceivedbyaccount for 0 amount accounts
|
||||
balance = self.nodes[1].getreceivedbyaccount("mynewaccount")
|
||||
# Test getreceivedbylabel for 0 amount labels
|
||||
balance = self.nodes[1].getreceivedbylabel("mynewlabel")
|
||||
assert_equal(balance, Decimal("0.0"))
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
Reference in new issue
Block a user