es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error lógico del contrato web3.exceptions.ContractLogicError: ejecución revertida.

¡Hola!
Ayúdame por favor.
Acabo de crear mis propios tokens en la testnet de BSC a través de PancakeFactory.
Luego creé un pool de liquidez con estos tokens.
He acuñado los tokens y quiero aprobar
estos tokens en PancakeRouter
y agregar liquidez a este pool.

A continuación puedes ver mi código:

def approves(w3, token_contract, router_contract, my_account, my_pk):
    allowance_value = token_contract.functions.allowance(
        my_account, router_contract.address).call()
    print('allowance value:', allowance_value)
    if allowance_value <= 1000000000000000:
        approve_est_gas = token_contract.functions.approve(
            router_contract.address,
            10000
        ).estimateGas(
            {
                'from': my_account,
                'nonce': w3.eth.get_transaction_count(my_account)
            }
        )

    approve_tx_builder = token_contract.functions.approve(
        router_contract.address,
        10000
    ).buildTransaction(
        {
            'from': my_account,
            'nonce': w3.eth.get_transaction_count(my_account),
            'gas': approve_est_gas
        }
    )

    signed_tx = w3.eth.account.sign_transaction(approve_tx_builder, my_pk)
    tx_hash = w3.eth.send_raw_transaction(signed_tx.rawTransaction)
    tx_receipt = w3.eth.wait_for_transaction_receipt(tx_hash)
    print('tx_hash:', tx_receipt['transactionHash'].hex())
    print('tx_hash:', tx_receipt['status'])

Siempre recibo este error:

raise ContractLogicError('execution reverted')
web3.exceptions.ContractLogicError: execution reverted
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el error que estás recibiendo es un ContractLogicError y dice que la ejecución ha sido revertida. Este error puede ocurrir debido a varias razones, como el límite de gas demasiado bajo, valores incorrectos pasados en la función, etc.

    Para resolver este problema, puede que necesites investigar más a fondo y descubrir la razón exacta del error. Una forma de hacer esto es verificar el recibo de la transacción utilizando el tx_hash y ver si se proporcionan mensajes de error. También puedes intentar aumentar el límite de gas o cambiar los valores pasados en la función para ver si eso ayuda. También sería útil proporcionar más información sobre el contrato y la función utilizada en este código.

Comments are closed.