Skip to content

Feedback for “Hello, World! - with PyCardano” #104

@a97-enig

Description

@a97-enig

On my machine, I copy and paste the tutorial code into hello-world-lock.py and hello-world-unlock.py - the lock script works fine, but the unlock script produces an error when building the contract. Output below:

(pycardano_opshin) mkitchin@Matthews-MacBook-Pro offchain % python hello-world-lock.py
2 tADA locked into the contract
Tx ID: fafa96b4ecf717637ac975007d1d0c0a2a34747f778e62ae89e43928aa66f484
Datum: d8799f581ce13d3f2fcaa683629dfc11587b2845b0f42bf527765a0f9935339c1aff

(pycardano_opshin) mkitchin@Matthews-MacBook-Pro offchain % python hello-world-unlock.py fafa96b4ecf717637ac975007d1d0c0a2a34747f778e62ae89e43928aa66f484
2025-01-27 16:22:55,346 - PyCardano - WARNING - Class: <class 'pycardano.txbuilder.TransactionBuilder'>, method: <function TransactionBuilder.build at 0x112829ee0>, state:
{
'_certificate_script_to_redeemers': [],
'_collateral_return': {
'address': addr_test1vrsn60e0e2ngxc5alsg4s7eggkc0g2l4yam95ruex5eecxs9ggkwn,
'amount': {'coin': 9882509581, 'multi_asset': {}},
'datum': None,
'datum_hash': None,
'post_alonzo': False,
'script': None,
},
'_datums': {},
'_excluded_inputs': [],
'_input_addresses': [
addr_test1vrsn60e0e2ngxc5alsg4s7eggkc0g2l4yam95ruex5eecxs9ggkwn,
],
'_inputs': [
{'input': {
'index': 0,
'transaction_id': TransactionId(hex='fafa96b4ecf717637ac975007d1d0c0a2a34747f778e62ae89e43928aa66f484'),
},
'output': {
'address': addr_test1wqcwfshs38z28yllmcegw8lle6gsa23c9ck8fm2y279r8fcrvsmcs,
'amount': {'coin': 2000000, 'multi_asset': {}},
'datum': RawCBOR(cbor=b"\xd8y\x9fX\x1c\xe1=?/\xca\xa6\x83b\x9d\xfc\x11X{(E\xb0\xf4+\xf5'vZ\x0f\x9953\x9c\x1a\xff"),
'datum_hash': None,
'post_alonzo': False,
'script': None,
}},
{'input': {
'index': 1,
'transaction_id': TransactionId(hex='fafa96b4ecf717637ac975007d1d0c0a2a34747f778e62ae89e43928aa66f484'),
},
'output': {
'address': addr_test1vrsn60e0e2ngxc5alsg4s7eggkc0g2l4yam95ruex5eecxs9ggkwn,
'amount': {'coin': 9886117199, 'multi_asset': {}},
'datum': None,
'datum_hash': None,
'post_alonzo': False,
'script': None,
}},
],
'_inputs_to_redeemers': {
{'input': {
'index': 0,
'transaction_id': TransactionId(hex='fafa96b4ecf717637ac975007d1d0c0a2a34747f778e62ae89e43928aa66f484'),
},
'output': {
'address': addr_test1wqcwfshs38z28yllmcegw8lle6gsa23c9ck8fm2y279r8fcrvsmcs,
'amount': {'coin': 2000000, 'multi_asset': {}},
'datum': RawCBOR(cbor=b"\xd8y\x9fX\x1c\xe1=?/\xca\xa6\x83b\x9d\xfc\x11X{(E\xb0\xf4+\xf5'vZ\x0f\x9953\x9c\x1a\xff"),
'datum_hash': None,
'post_alonzo': False,
'script': None,
}}: {
'data': HelloWorldRedeemer(msg=b'Hello, World!'),
'ex_units': {'mem': 0, 'steps': 0},
'index': 0,
'tag': {
'objclass': <enum 'RedeemerTag'>,
'name': 'SPEND',
'sort_order': 0,
'value': 0,
},
},
},
'_inputs_to_scripts': {
{'input': {
'index': 0,
'transaction_id': TransactionId(hex='fafa96b4ecf717637ac975007d1d0c0a2a34747f778e62ae89e43928aa66f484'),
},
'output': {
'address': addr_test1wqcwfshs38z28yllmcegw8lle6gsa23c9ck8fm2y279r8fcrvsmcs,
'amount': {'coin': 2000000, 'multi_asset': {}},
'datum': RawCBOR(cbor=b"\xd8y\x9fX\x1c\xe1=?/\xca\xa6\x83b\x9d\xfc\x11X{(E\xb0\xf4+\xf5'vZ\x0f\x9953\x9c\x1a\xff"),
'datum_hash': None,
'post_alonzo': False,
'script': None,
}}: b'Y\x01\x06\x01\x01\x00222222%30\x0222222S3\x00s7\x0e\x90\x01\x18\x04\x1b\xaa\x00\x1123"S3\x00\xa37\x0e\x90\x00\x18\x05\x9b\xaa\x00Q22S3\x00\xf3\x01\x10\x02\x1530\x0c3p\xe9\x00\x01\x80i\xba\xa0\x03\x13%30\r3q\xe6\xeb\x8c\x04L\x03\xcd\xd5\x00BE\rHello, Aiken!\x00\x10\x01\x14\xa0fDdf\x00 \x02\x00dJf&\x00"\x94\x04\xcc\x89L\xcc\x04\x8c\xdcx\x01\x00(\xa5\x113\x00@\x04\x00\x13u\xc6\x02\x80\x02\x00&\xeb\x0c\x04\x0c\x04L\x04L\x04L\x04L\x04L\x04L\x04L\x04L\x03\x8d\xd5\x00A\xba\xe3\x01\x03\x00\xe3uF\x02\x06\x01\xc6\xea\x80\x0cXX\xddq\x80x\x00\x98\x06\x1b\xaa\x00Qc\x00\xc0\x010\x0c0\r\x00\x13\x00\x93u@\x02,\x14\x16\x00f\x01 \x04\x10\x00F\x01\x00\x02\x08n\xa8\x00E&\x13eesJ\xaeuU\xcf\xb9\xf5t*\xe8\x81',
},
'_minting_script_to_redeemers': [],
'_outputs': [
{
'address': addr_test1vrsn60e0e2ngxc5alsg4s7eggkc0g2l4yam95ruex5eecxs9ggkwn,
'amount': {'coin': 2000000, 'multi_asset': {}},
'datum': None,
'datum_hash': None,
'post_alonzo': False,
'script': None,
},
],
'_potential_inputs': [],
'_reference_scripts': [],
'_should_estimate_execution_units': False,
'_total_collateral': 3607618,
'_withdrawal_script_to_redeemers': [],
'auxiliary_data': None,
'certificates': None,
'collateral_return_threshold': 1000000,
'collaterals': [
{'input': {
'index': 1,
'transaction_id': TransactionId(hex='fafa96b4ecf717637ac975007d1d0c0a2a34747f778e62ae89e43928aa66f484'),
},
'output': {
'address': addr_test1vrsn60e0e2ngxc5alsg4s7eggkc0g2l4yam95ruex5eecxs9ggkwn,
'amount': {'coin': 9886117199, 'multi_asset': {}},
'datum': None,
'datum_hash': None,
'post_alonzo': False,
'script': None,
}},
],
'context': <pycardano.backend.blockfrost.BlockFrostChainContext object at 0x10527d090>,
'execution_memory_buffer': 0.2,
'execution_step_buffer': 0.2,
'fee_buffer': None,
'initial_stake_pool_registration': False,
'mint': None,
'native_scripts': None,
'reference_inputs': set(),
'required_signers': [
VerificationKeyHash(hex='e13d3f2fcaa683629dfc11587b2845b0f42bf527765a0f9935339c1a'),
],
'ttl': 71309343,
'use_redeemer_map': True,
'utxo_selectors': [
<pycardano.coinselection.RandomImproveMultiAsset object at 0x1128259d0>,
<pycardano.coinselection.LargestFirstSelector object at 0x112826310>,
],
'validity_start': 71298343,
'withdrawals': None,
'witness_override': None,
}
Traceback (most recent call last):
File "/Users/mkitchin/Code/Tutorials/pycardano/src/offchain/hello-world-unlock.py", line 106, in
tx_hash = unlock(
^^^^^^^
File "/Users/mkitchin/Code/Tutorials/pycardano/src/offchain/hello-world-unlock.py", line 66, in unlock
signed_tx = builder.build_and_sign(
^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/mkitchin/.pyenv/versions/3.11.11/envs/pycardano_opshin/lib/python3.11/site-packages/pycardano/txbuilder.py", line 1563, in build_and_sign
tx_body = self.build(
^^^^^^^^^^^
File "/Users/mkitchin/.pyenv/versions/3.11.11/envs/pycardano_opshin/lib/python3.11/site-packages/pycardano/logging.py", line 37, in wrapper
raise e
File "/Users/mkitchin/.pyenv/versions/3.11.11/envs/pycardano_opshin/lib/python3.11/site-packages/pycardano/logging.py", line 28, in wrapper
output = func(obj, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/mkitchin/.pyenv/versions/3.11.11/envs/pycardano_opshin/lib/python3.11/site-packages/pycardano/txbuilder.py", line 1333, in build
self._update_execution_units(
File "/Users/mkitchin/.pyenv/versions/3.11.11/envs/pycardano_opshin/lib/python3.11/site-packages/pycardano/txbuilder.py", line 1470, in _update_execution_units
estimated_execution_units = self._estimate_execution_units(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/mkitchin/.pyenv/versions/3.11.11/envs/pycardano_opshin/lib/python3.11/site-packages/pycardano/txbuilder.py", line 1516, in _estimate_execution_units
return self.context.evaluate_tx(tx)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/mkitchin/.pyenv/versions/3.11.11/envs/pycardano_opshin/lib/python3.11/site-packages/pycardano/backend/base.py", line 209, in evaluate_tx
return self.evaluate_tx_cbor(tx.to_cbor())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/mkitchin/.pyenv/versions/3.11.11/envs/pycardano_opshin/lib/python3.11/site-packages/pycardano/backend/blockfrost.py", line 302, in evaluate_tx_cbor
raise TransactionFailedException(result)
pycardano.exception.TransactionFailedException: Namespace(EvaluationFailure=Namespace(ScriptFailures=Namespace()))

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions