Solo un tema argumenta para los registros de eventos visibles en el recibo de la transacción, en lugar de los tres esperados

Tengo un Smart Contrat donde hay algunos eventos como los siguientes:

    MyContract {

   event CustomerDataSendingToSeller(address _seller, string _hasheCustomerData, uint256 _orderSeq);

     function SigneCustomerDataToSell(string _hasheCustomerData) public {

            require(seller != msg.sender);

            customer = msg.sender;

            DataExchangeSeq++;

            DataExchanges[DataExchangeSeq] = DataExchange(customer,_hasheCustomerData,0,0,DataExchangeSeq,0,Buyer(0,"0x",false,false),false);

            emit CustomerDataSendingToSeller(seller,_hasheCustomerData, DataExchangeSeq);

        }

}

Luego pasé mi función de contrato inteligente como transacción después de la implementación, y revisé el recibo de la transacción, vi que solo hay un argumento en lugar de mis tres argumentos en el contrato inteligente.

Aquí la salida de la función de recibo de transacción:w3.eth.getTransactionReceipt(tx_hash)

        AttributeDict({
        'transactionHash':HexBytes('0xee50268e0c525cdee61fa58b1459a74915d7ac25ca72ebdb06065c3bd03a8f73'), 
        'transactionIndex': 0, 
        'blockHash':HexBytes('0x2ddd79c415277e02dc51c649f3463085a8043b87bb7067e3da81062cf608357c'), 
        'blockNumber': 97, 
        'gasUsed': 93882, 
        'cumulativeGasUsed': 93882, 
        'contractAddress': None, 
        'logs': 
          [AttributeDict({
          'logIndex': 0, 
          'transactionIndex': 0,         'transactionHash':0xee50268e0c525cdee61fa58b1459a74915d7ac25ca72ebdb06065c3bd03a8f73', 'blockHash':'0x2ddd79c415277e02dc51c649f3463085a8043b87bb7067e3da81062cf608357c', 'blockNumber': 97, 
'address': '0xAAe858AE95DE4eA7acE44Bc58bBB27C331e6dc0d',     'data':'0x0000000000000000000000000db7fec9d38cb5a3e789228f93ac0b27cb25d24d00000000000000, 
'topics': ['0xf9a97ac82c9d5863f1a327d99b2f678c53726ddea126435a5752717390af467b')], 'type': 'mined'})], 
'status': 1, 
'logsBloom':('0x0000000000004000000000000000000000000000000000000000000000000000000004')})

En el topicsdebería ver mis tres argumentos hash, pero solo uno está presente y parece ser el hash de la función de evento en sí, entonces, ¿por qué no ver el otro?

Gracias por la ayuda :)

Qué valor espera, será devuelto por selleryDataExchangeSeq

Respuestas (1)

Sus parámetros se agregan como tema solo si están indexados (consulte la palabra clave indexada en Solidity). De lo contrario, los parámetros se colocan en el campo de datos.

El tema que ves es la firma del evento. Puedes agregar hasta 3 parámetros indexados, es decir junto con la firma del evento, puedes tener hasta 4 temas.

si gracias ! Solo tenía que leer la documentación correctamente... gracias por tu respuesta :)