def test_create_transaction_signing(): client = EpochClient() # generate a new keypair new_keypair = KeyPair.generate() receiver_address = new_keypair.get_address() # get the test keypair keypair = KeyPair.from_public_private_key_strings(PUBLIC_KEY, PRIVATE_KEY) # create a spend transaction transaction = client.create_spend_transaction(PUBLIC_KEY, receiver_address, 321) signed_transaction, b58signature = keypair.sign_transaction(transaction) # post the transaction result = client.send_signed_transaction(signed_transaction) assert result is not None assert result.tx_hash is not None print(result) # make sure this works for very short block times client.wait_for_next_block(polling_interval=0.01) spend_tx = client.get_transaction_by_transaction_hash(result.tx_hash, tx_encoding='json') assert spend_tx.transaction['signatures'][0] == b58signature
def test_name_transfer_ownership(): client = EpochClient() name = AEName(random_domain()) name.full_claim_blocking(keypair, name_ttl=70) assert name.status == AEName.Status.CLAIMED client.wait_for_next_block() new_key_pair = KeyPair.generate() # put some coins into the account so the account is in the state tree # otherwise it couldn't become the owner of an address. client.spend(keypair, new_key_pair.get_address(), 1) client.wait_for_next_block() # now transfer the name to the other account name.transfer_ownership(keypair, new_key_pair.get_address()) assert name.status == AEName.Status.TRANSFERRED client.wait_for_next_block() # try changing the target using that new keypair name.update_status() name.update(new_key_pair, target=new_key_pair.get_address(), name_ttl=10) client.wait_for_next_block() name.update_status() assert name.pointers != [], 'Pointers should not be empty' assert name.pointers['account_pubkey'] == new_key_pair.get_address()