def test_execute_contract(self, node: Node, call_type): with patch.object(Session, "post", side_effect=self.post): contract = Contract( node, "0x6361d0441973eb4457d2f8092bbbe303db5eb0f981") if call_type == "write": contract.execute("withdraw", (1000, )) elif call_type == "vote": contract.vote("withdraw", (1000, ))
# transfer asset from contract assert contract.execute("transfer", [node.address, 100 * constant.COIN]).check() is constant.SUCCESS assert node.balance(asset=asset_type) == 100 * constant.COIN # check contract balance assert contract.read("checkBalance") == 9900 * constant.COIN # transfer to other address assert node.send(AccountFactory.new().address, 1 * constant.COIN, asset_type).check() is constant.SUCCESS # check balance assert node.balance(asset=asset_type) == 99 * constant.COIN # burn assert contract.execute("burn", asset_value=98 * constant.COIN, asset_type=asset_type).check() is constant.SUCCESS # check balance assert node.balance(asset=asset_type) == 1 * constant.COIN assert contract.read("voteValues", [88]) == 0 tx = contract.vote("vote", [88], asset_type=asset_type) assert tx.check() is constant.SUCCESS # check balance assert node.balance(asset=asset_type) == 1 * constant.COIN logs = contract.fetch(tx.id) # fetch logs print(logs) assert contract.read("voteValues", [88]) == 1 * constant.COIN