(self)
| 108 | process_raw_issuance(self, node, issuance_list) |
| 109 | |
| 110 | def run_test(self): |
| 111 | self.generate(self.nodes[0], 105) |
| 112 | # Make sure test starts with no initial issuance. |
| 113 | assert_equal(len(self.nodes[0].listissuances()), 0) |
| 114 | |
| 115 | # Unblinded issuance of asset |
| 116 | contract_hash = "deadbeef"*8 |
| 117 | issued = self.nodes[0].issueasset(1, 1, False, contract_hash) |
| 118 | balance = self.nodes[0].getwalletinfo()["balance"] |
| 119 | assert_equal(balance[issued["asset"]], 1) |
| 120 | assert_equal(balance[issued["token"]], 1) |
| 121 | # Quick unblinded reissuance check, making 2*COIN total |
| 122 | self.nodes[0].reissueasset(issued["asset"], 1) |
| 123 | |
| 124 | self.generate(self.nodes[0], 1) |
| 125 | self.sync_all() |
| 126 | |
| 127 | contract_hash = "deadbeee"*8 |
| 128 | issued2 = self.nodes[0].issueasset(2, 1, True, contract_hash) |
| 129 | test_asset = issued2["asset"] |
| 130 | assert_equal(self.nodes[0].getwalletinfo()['balance'][test_asset], Decimal(2)) |
| 131 | node1balance = self.nodes[1].getwalletinfo()['balance'] |
| 132 | if test_asset in node1balance: |
| 133 | assert_equal(node1balance[test_asset], Decimal(0)) |
| 134 | |
| 135 | # Send bitcoin to node 1 and then from 1 to 2 to force node 1 to |
| 136 | # spend confidential money. |
| 137 | self.nodes[0].sendtoaddress(self.nodes[1].getnewaddress(), 4) |
| 138 | self.generate(self.nodes[0], 1) |
| 139 | self.sync_all() |
| 140 | self.nodes[1].sendtoaddress(self.nodes[2].getnewaddress(), 3, "", "", False, False, 1, "UNSET", False, "", False) |
| 141 | self.sync_all() |
| 142 | self.generate(self.nodes[0], 1) |
| 143 | self.sync_all() |
| 144 | |
| 145 | # Destroy assets |
| 146 | pre_destroy_btc_balance = self.nodes[2].getwalletinfo()['balance']['bitcoin'] |
| 147 | self.nodes[2].destroyamount('bitcoin', 2) # Destroy 2 BTC |
| 148 | self.generate(self.nodes[2], 1) |
| 149 | self.sync_all() |
| 150 | assert_greater_than_or_equal(pre_destroy_btc_balance - Decimal('2'), self.nodes[2].getbalance()['bitcoin']) |
| 151 | |
| 152 | issuedamount = self.nodes[0].getwalletinfo()['balance'][issued["token"]] |
| 153 | assert_equal(issuedamount, Decimal('1.0')) |
| 154 | self.nodes[0].destroyamount(issued["token"], issuedamount) # Destroy all reissuance tokens of one type |
| 155 | |
| 156 | self.generate(self.nodes[0], 1) |
| 157 | self.sync_all() |
| 158 | assert issued["token"] not in self.nodes[0].getwalletinfo()['balance'] |
| 159 | |
| 160 | # Test various issuance and auditing paths |
| 161 | |
| 162 | issuancedata = self.nodes[0].issueasset(Decimal('0.00000002'), Decimal('0.00000001')) #2 of asset, 1 reissuance token |
| 163 | self.generate(self.nodes[1], 1) |
| 164 | self.sync_all() |
| 165 | assert_equal(self.nodes[0].getwalletinfo()["balance"][issuancedata["asset"]], Decimal('0.00000002')) |
| 166 | assert_equal(self.nodes[0].getwalletinfo()["balance"][issuancedata["token"]], Decimal('0.00000001')) |
| 167 | self.nodes[0].reissueasset(issuancedata["asset"], Decimal('0.00000001')) |
nothing calls this directly
no test coverage detected