async def test_finalizeOps_proposal2(deex): deex.clear() proposal = deex.new_proposal() await deex.transfer("init1", 2, "TEST", append_to=proposal) tx = await deex.tx().json() # default tx buffer ops = tx["operations"] assert len(ops) == 1 assert getOperationNameForId(ops[0][0]) == "proposal_create" prop = ops[0][1] assert len(prop["proposed_ops"]) == 1 assert getOperationNameForId(prop["proposed_ops"][0]["op"][0]) == "transfer"
async def test_finalizeOps_changeproposer_new(deex): deex.clear() proposal = deex.proposal(proposer="init5") await deex.transfer("init1", 5, "TEST", append_to=proposal) tx = await deex.tx().json() ops = tx["operations"] assert len(ops) == 1 assert getOperationNameForId(ops[0][0]) == "proposal_create" prop = ops[0][1] assert len(prop["proposed_ops"]) == 1 assert prop["fee_paying_account"] == "1.2.11" assert getOperationNameForId(prop["proposed_ops"][0]["op"][0]) == "transfer"
def test_finalizeOps_changeproposer_new(self): proposal = deex.proposal(proposer="init5") deex.transfer("init1", 1, "DX", append_to=proposal) tx = deex.tx().json() ops = tx["operations"] self.assertEqual(len(ops), 1) self.assertEqual(getOperationNameForId(ops[0][0]), "proposal_create") prop = ops[0][1] self.assertEqual(len(prop["proposed_ops"]), 1) self.assertEqual(prop["fee_paying_account"], "1.2.90747") self.assertEqual( getOperationNameForId(prop["proposed_ops"][0]["op"][0]), "transfer" )
def test_finalizeOps_proposal2(self): proposal = deex.new_proposal() # proposal = deex.proposal() deex.transfer("init1", 1, "DX", append_to=proposal) tx = deex.tx().json() # default tx buffer ops = tx["operations"] self.assertEqual(len(ops), 1) self.assertEqual(getOperationNameForId(ops[0][0]), "proposal_create") prop = ops[0][1] self.assertEqual(len(prop["proposed_ops"]), 1) self.assertEqual( getOperationNameForId(prop["proposed_ops"][0]["op"][0]), "transfer" )
async def test_finalizeOps_combined_proposal(deex): deex.clear() parent = deex.new_tx() proposal = deex.new_proposal(parent) await deex.transfer("init1", 3, "TEST", append_to=proposal) await deex.transfer("init1", 4, "TEST", append_to=parent) tx = await parent.json() ops = tx["operations"] assert len(ops) == 2 assert getOperationNameForId(ops[0][0]) == "proposal_create" assert getOperationNameForId(ops[1][0]) == "transfer" prop = ops[0][1] assert len(prop["proposed_ops"]) == 1 assert getOperationNameForId(prop["proposed_ops"][0]["op"][0]) == "transfer"
def test_finalizeOps_combined_proposal(self): parent = deex.new_tx() proposal = deex.new_proposal(parent) deex.transfer("init1", 1, "DX", append_to=proposal) deex.transfer("init1", 1, "DX", append_to=parent) tx = parent.json() ops = tx["operations"] self.assertEqual(len(ops), 2) self.assertEqual(getOperationNameForId(ops[0][0]), "proposal_create") self.assertEqual(getOperationNameForId(ops[1][0]), "transfer") prop = ops[0][1] self.assertEqual(len(prop["proposed_ops"]), 1) self.assertEqual( getOperationNameForId(prop["proposed_ops"][0]["op"][0]), "transfer" )
def test_account_upgrade(self): account = Account("init0") pprint(account) tx = account.upgrade() ops = tx["operations"] op = ops[0][1] self.assertEqual(len(ops), 1) self.assertEqual(getOperationNameForId(ops[0][0]), "account_upgrade") self.assertTrue(op["upgrade_to_lifetime_member"]) self.assertEqual(op["account_to_upgrade"], "1.2.100")
def test_update_memo_key(self): tx = deex.update_memo_key( "DX55VCzsb47NZwWe5F3qyQKedX9iHBHMVVFSc96PDvV7wuj7W86n") self.assertEqual(getOperationNameForId(tx["operations"][0][0]), "account_update") op = tx["operations"][0][1] self.assertEqual( op["new_options"]["memo_key"], "DX55VCzsb47NZwWe5F3qyQKedX9iHBHMVVFSc96PDvV7wuj7W86n", )
def test_transfer(self): tx = deex.transfer("1.2.101", 1.33, "DX", memo="Foobar", account="init0") self.assertEqual(getOperationNameForId(tx["operations"][0][0]), "transfer") op = tx["operations"][0][1] self.assertIn("memo", op) self.assertEqual(op["from"], "1.2.100") self.assertEqual(op["to"], "1.2.101") amount = Amount(op["amount"]) self.assertEqual(float(amount), 1.33)
def test_allow(self): tx = deex.allow( "DX55VCzsb47NZwWe5F3qyQKedX9iHBHMVVFSc96PDvV7wuj7W86n", weight=1, threshold=1, permission="owner", ) self.assertEqual(getOperationNameForId(tx["operations"][0][0]), "account_update") op = tx["operations"][0][1] self.assertIn("owner", op) self.assertIn( ["DX55VCzsb47NZwWe5F3qyQKedX9iHBHMVVFSc96PDvV7wuj7W86n", "1"], op["owner"]["key_auths"], ) self.assertEqual(op["owner"]["weight_threshold"], 1)
def test_create_account(self): name = "".join( random.choice(string.ascii_lowercase) for _ in range(12)) key1 = PrivateKey() key2 = PrivateKey() key3 = PrivateKey() key4 = PrivateKey() tx = deex.create_account( name, registrar="init0", # 1.2.100 referrer="init1", # 1.2.101 referrer_percent=33, owner_key=format(key1.pubkey, "DX"), active_key=format(key2.pubkey, "DX"), memo_key=format(key3.pubkey, "DX"), additional_owner_keys=[format(key4.pubkey, "DX")], additional_active_keys=[format(key4.pubkey, "DX")], additional_owner_accounts=["committee-account"], # 1.2.0 additional_active_accounts=["committee-account"], proxy_account="init0", storekeys=False, ) self.assertEqual(getOperationNameForId(tx["operations"][0][0]), "account_create") op = tx["operations"][0][1] role = "active" self.assertIn(format(key4.pubkey, "DX"), [x[0] for x in op[role]["key_auths"]]) self.assertIn(format(key4.pubkey, "DX"), [x[0] for x in op[role]["key_auths"]]) self.assertIn("1.2.0", [x[0] for x in op[role]["account_auths"]]) role = "owner" self.assertIn(format(key4.pubkey, "DX"), [x[0] for x in op[role]["key_auths"]]) self.assertIn(format(key4.pubkey, "DX"), [x[0] for x in op[role]["key_auths"]]) self.assertIn("1.2.0", [x[0] for x in op[role]["account_auths"]]) self.assertEqual(op["options"]["voting_account"], "1.2.100") self.assertEqual(op["registrar"], "1.2.100") self.assertEqual(op["referrer"], "1.2.101") self.assertEqual(op["referrer_percent"], 33 * 100)
def test_approvecommittee(self): tx = deex.approvecommittee("1.5.0") self.assertEqual(getOperationNameForId(tx["operations"][0][0]), "account_update") op = tx["operations"][0][1] self.assertIn("0:11", op["new_options"]["votes"])
def test_approvewitness(self): tx = deex.approvewitness("1.6.1") self.assertEqual(getOperationNameForId(tx["operations"][0][0]), "account_update") op = tx["operations"][0][1] self.assertIn("1:0", op["new_options"]["votes"])
def test_create_asset(self): symbol = "FOOBAR" precision = 7 max_supply = 100000 description = "Test asset" is_bitasset = True market_fee_percent = 0.1 max_market_fee = 10 blacklist_authorities = ["init1"] blacklist_authorities_ids = [ Account(a)["id"] for a in blacklist_authorities ] blacklist_markets = ["DX"] blacklist_markets_ids = ["1.3.0"] permissions = { "charge_market_fee": True, "white_list": True, "override_authority": True, "transfer_restricted": True, "disable_force_settle": True, "global_settle": True, "disable_confidential": True, "witness_fed_asset": True, "committee_fed_asset": True, } flags = { "charge_market_fee": False, "white_list": False, "override_authority": False, "transfer_restricted": False, "disable_force_settle": False, "global_settle": False, "disable_confidential": False, "witness_fed_asset": False, "committee_fed_asset": False, } tx = deex.create_asset( symbol, precision, max_supply, market_fee_percent=market_fee_percent, max_market_fee=max_market_fee, description=description, is_bitasset=is_bitasset, blacklist_authorities=blacklist_authorities, blacklist_markets=blacklist_markets, permissions=permissions, flags=flags, ) self.assertEqual(getOperationNameForId(tx["operations"][0][0]), "asset_create") op = tx["operations"][0][1] self.assertEqual(op["issuer"], "1.2.100") self.assertEqual(op["symbol"], symbol) self.assertEqual(op["precision"], precision) self.assertEqual(op["common_options"]["max_supply"], int(max_supply * 10**precision)) self.assertEqual(op["common_options"]["market_fee_percent"], int(market_fee_percent * 100)) self.assertEqual( op["common_options"]["max_market_fee"], int(max_market_fee * 10**precision), ) self.assertEqual(op["common_options"]["description"], description) self.assertEqual(op["common_options"]["blacklist_authorities"], blacklist_authorities_ids) self.assertEqual(op["common_options"]["blacklist_markets"], blacklist_markets_ids) self.assertEqual(todict(op["common_options"]["issuer_permissions"]), permissions) self.assertEqual(todict(op["common_options"]["flags"]), flags)