Error al capturar el valor devuelto del contrato

Estoy tratando de establecer una cadena y recibirla de mi contrato.

este es mi codigo

    import web3
import json

from web3 import Web3
def main():
    w3 = Web3(Web3.HTTPProvider("http://localhost:8545"))
    w3.eth.defaultAccount = w3.eth.accounts[0]
    print(w3.eth.defaultAccount)
    with open('abi', 'r') as abi_definition:
        abi = json.load(abi_definition)
    contract = w3.eth.contract(address=w3.toChecksumAddress('0x82A978B3f5962A5b0957d9ee9eEf472EE55B42F1'),abi=abi)
    contract.constructor().transact()
    contract.functions.storeID('yes').call()
    get = contract.functions.getID().call()
    print(get)

if __name__ == '__main__':
    main()

Estoy recibiendo el siguiente error

Traceback (most recent call last):
  File "/home/sapan/PycharmProjects/GlobalCA/venv/lib/python3.5/site-packages/web3/contract.py", line 1214, in call_contract_function
    output_data = decode_abi(output_types, return_data)
  File "/home/sapan/PycharmProjects/GlobalCA/venv/lib/python3.5/site-packages/eth_abi/abi.py", line 63, in decode_abi
    return decoder(stream)
  File "/home/sapan/PycharmProjects/GlobalCA/venv/lib/python3.5/site-packages/eth_abi/decoding.py", line 99, in __call__
    return self.decode(stream)
  File "/home/sapan/PycharmProjects/GlobalCA/venv/lib/python3.5/site-packages/eth_utils/functional.py", line 22, in inner
    return callback(fn(*args, **kwargs))
  File "/home/sapan/PycharmProjects/GlobalCA/venv/lib/python3.5/site-packages/eth_abi/decoding.py", line 135, in decode
    yield HeadTailDecoder.as_decoder(tail_decoder=decoder)(stream)
  File "/home/sapan/PycharmProjects/GlobalCA/venv/lib/python3.5/site-packages/eth_abi/decoding.py", line 99, in __call__
    return self.decode(stream)
  File "/home/sapan/PycharmProjects/GlobalCA/venv/lib/python3.5/site-packages/eth_abi/decoding.py", line 113, in decode
    start_pos = decode_uint_256(stream)
  File "/home/sapan/PycharmProjects/GlobalCA/venv/lib/python3.5/site-packages/eth_abi/decoding.py", line 99, in __call__
    return self.decode(stream)
  File "/home/sapan/PycharmProjects/GlobalCA/venv/lib/python3.5/site-packages/eth_abi/decoding.py", line 162, in decode
    raw_data = cls.read_data_from_stream(stream)
  File "/home/sapan/PycharmProjects/GlobalCA/venv/lib/python3.5/site-packages/eth_abi/decoding.py", line 244, in read_data_from_stream
    len(data),
eth_abi.exceptions.InsufficientDataBytes: Tried to read 32 bytes.  Only got 0 bytes

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/sapan/PycharmProjects/GlobalCA/Node.py", line 18, in <module>
    main()
  File "/home/sapan/PycharmProjects/GlobalCA/Node.py", line 14, in main
    get = contract.functions.getID().call()
  File "/home/sapan/PycharmProjects/GlobalCA/venv/lib/python3.5/site-packages/web3/contract.py", line 979, in call
    **self.kwargs)
  File "/home/sapan/PycharmProjects/GlobalCA/venv/lib/python3.5/site-packages/web3/contract.py", line 1236, in call_contract_function
    raise BadFunctionCallOutput(msg) from e
web3.exceptions.BadFunctionCallOutput: Could not transact with/call contract function, is contract deployed correctly and chain synced?
El código que compartió no incluye la línea de código en el seguimiento de la pila.
Lo siento, estaba jugando con el código anteriormente. Lo edité ahora. Gracias

Respuestas (1)

Esta línea podría estar equivocada:

contrato.funciones.storeID('sí').llamada()

si está cambiando el estado, como sugiere el nombre, debería ser

contrato.funciones.storeID('sí').transact()
Gracias eso resolvió el problema. ¿Puedo ver también el valor devuelto en python?
las transacciones generalmente devuelven un hash de transacción que se puede usar para recuperar la información de la transacción y el recibo