Skip to content

Commit b8aa6eb

Browse files
authored
Merge pull request #216 from AkioNak/fix-rpc-listissuances
listissuances should outputs asset/tokenamount as -1 if the asset is blinded.
2 parents 4d65c0c + befa2e0 commit b8aa6eb

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

qa/rpc-tests/confidential_transactions.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -329,30 +329,38 @@ def run_test(self):
329329
# Now have node 0 audit these issuances
330330
blindingkey1 = self.nodes[1].dumpissuanceblindingkey(redata1["txid"], redata1["vin"])
331331
blindingkey2 = self.nodes[2].dumpissuanceblindingkey(redata2["txid"], redata2["vin"])
332+
blindingkey3 = self.nodes[2].dumpissuanceblindingkey(issuancedata["txid"], issuancedata["vin"])
332333

333334
# Need addr to get transactions in wallet. TODO: importissuances?
334335
txdet1 = self.nodes[1].gettransaction(redata1["txid"])["details"]
335336
txdet2 = self.nodes[2].gettransaction(redata2["txid"])["details"]
337+
txdet3 = self.nodes[2].gettransaction(issuancedata["txid"])["details"]
336338

337339
# Receive addresses added last
338340
addr1 = txdet1[len(txdet1)-1]["address"]
339341
addr2 = txdet2[len(txdet2)-1]["address"]
342+
addr3 = txdet3[len(txdet3)-1]["address"]
340343

341344
assert_equal(len(self.nodes[0].listissuances()), 5);
342345
self.nodes[0].importaddress(addr1)
343346
self.nodes[0].importaddress(addr2)
347+
self.nodes[0].importaddress(addr3)
344348

345349
issuances = self.nodes[0].listissuances()
346-
assert_equal(len(issuances), 7)
350+
assert_equal(len(issuances), 8)
347351

348352
for issue in issuances:
349353
if issue['txid'] == redata1["txid"] and issue['vin'] == redata1["vin"]:
350-
assert_equal(issue['assetamount'], Decimal('-1E-8'))
354+
assert_equal(issue['assetamount'], Decimal('-1'))
351355
if issue['txid'] == redata2["txid"] and issue['vin'] == redata2["vin"]:
352-
assert_equal(issue['assetamount'], Decimal('-1E-8'))
356+
assert_equal(issue['assetamount'], Decimal('-1'))
357+
if issue['txid'] == issuancedata["txid"] and issue['vin'] == issuancedata["vin"]:
358+
assert_equal(issue['assetamount'], Decimal('-1'))
359+
assert_equal(issue['tokenamount'], Decimal('-1'))
353360

354361
self.nodes[0].importissuanceblindingkey(redata1["txid"], redata1["vin"], blindingkey1)
355362
self.nodes[0].importissuanceblindingkey(redata2["txid"], redata2["vin"], blindingkey2)
363+
self.nodes[0].importissuanceblindingkey(issuancedata["txid"], issuancedata["vin"], blindingkey3)
356364

357365
issuances = self.nodes[0].listissuances()
358366

@@ -361,6 +369,9 @@ def run_test(self):
361369
assert_equal(issue['assetamount'], Decimal('0.05'))
362370
if issue['txid'] == redata2["txid"] and issue['vin'] == redata2["vin"]:
363371
assert_equal(issue['assetamount'], Decimal('0.025'))
372+
if issue['txid'] == issuancedata["txid"] and issue['vin'] == issuancedata["vin"]:
373+
assert_equal(issue['assetamount'], Decimal('0'))
374+
assert_equal(issue['tokenamount'], Decimal('0.00000006'))
364375

365376
# Check for value accounting when asset issuance is null but token not, ie unblinded
366377
issued = self.nodes[0].issueasset(0, 1, False)

src/wallet/rpcwallet.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4040,7 +4040,8 @@ UniValue listissuances(const JSONRPCRequest& request)
40404040
CalculateReissuanceToken(token, entropy, issuance.nAmount.IsCommitment());
40414041
item.push_back(Pair("isreissuance", false));
40424042
item.push_back(Pair("token", token.GetHex()));
4043-
item.push_back(Pair("tokenamount", ValueFromAmount(pcoin->GetIssuanceAmount(vinIndex, true))));
4043+
CAmount itamount = pcoin->GetIssuanceAmount(vinIndex, true);
4044+
item.push_back(Pair("tokenamount", (itamount == -1 ) ? -1 : ValueFromAmount(itamount)));
40444045
item.push_back(Pair("tokenblinds", pcoin->GetIssuanceBlindingFactor(vinIndex, true).GetHex()));
40454046
item.push_back(Pair("entropy", entropy.GetHex()));
40464047
} else {
@@ -4055,7 +4056,8 @@ UniValue listissuances(const JSONRPCRequest& request)
40554056
if (label != "") {
40564057
item.push_back(Pair("assetlabel", label));
40574058
}
4058-
item.push_back(Pair("assetamount", ValueFromAmount(pcoin->GetIssuanceAmount(vinIndex, false))));
4059+
CAmount iaamount = pcoin->GetIssuanceAmount(vinIndex, false);
4060+
item.push_back(Pair("assetamount", (iaamount == -1 ) ? -1 : ValueFromAmount(iaamount)));
40594061
item.push_back(Pair("assetblinds", pcoin->GetIssuanceBlindingFactor(vinIndex, false).GetHex()));
40604062
if (!assetfilter.IsNull() && assetfilter != asset) {
40614063
continue;

0 commit comments

Comments
 (0)