MCPcopy Create free account
hub / github.com/ElementsProject/elements / run_test

Method run_test

test/functional/feature_issuance.py:110–527  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

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'))

Callers

nothing calls this directly

Calls 11

raw_issuanceMethod · 0.95
assert_equalFunction · 0.90
assert_raises_rpc_errorFunction · 0.90
importaddressMethod · 0.80
sendrawtransactionMethod · 0.80
addmultisigaddressMethod · 0.80
enumerateFunction · 0.50
generateMethod · 0.45
sync_allMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected