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.

MetaMask – Error RPC: No se pueden establecer propiedades de indefinido (ajuste de ‘loadingDefaults’) error

Estoy construyendo una función de apuesta y me encuentro con el siguiente error después de dar permiso para acceder a mi token:

“MetaMask – Error RPC: No se pueden establecer propiedades de indefinido (establecer ‘loadingDefaults’)”

Contrato de función de apuesta en Solidity:

    // Función de apuesta
    function depositTokens(uint _amount) public {
        require(_amount > 0, 'La cantidad debe ser > 0');
    // Transferir tokens tether a este contrato
    tether.transferFrom(msg.sender, address(this), _amount);

    // Actualizar saldo de apuesta
    stakingBalance[msg.sender] = stakingBalance[msg.sender] + _amount;

    if(!hasStaked[msg.sender]) {
        stakers.push(msg.sender);
    }

    // Actualizar saldo de apuesta
    isStaking[msg.sender] = true;
    hasStaked[msg.sender] = true;

    }

Frontend de apuesta:

stakeTokens = (amount) => {
this.setState({loading: true })
this.state.tether.methods.approve(this.state.deBank._address, amount).send({from: this.state.account}).on('transactionHash', (hash) => {
  this.state.deBank.methods.depositTokens(amount).send({from: this.state.account}).on('transactionHash', (hash) => {
    this.setState({loading:false})
  })
}) 

}

Lo que es extraño es que en el 25-30% de los casos, logro llegar al segundo paso de aprobación y la transacción se realiza.

¿Alguien tiene idea de qué está causando esto?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error “MetaMask – RPC Error: Cannot set properties of undefined (setting ‘loadingDefaults’)” generalmente indica un problema con el código frontend. Parece que el estado ‘loading’ no está definido correctamente en el código frontend, lo cual provoca el error al intentar establecer la propiedad ‘loadingDefaults’.

    Una solución potencial podría ser revisar el código en busca de errores de escritura o errores de sintaxis que puedan estar causando el problema. Otra opción podría ser probar con una versión diferente de MetaMask o cliente de Ethereum, ya que esto podría ayudar a resolver cualquier problema de compatibilidad.

    En cuanto al problema en el que la transacción se realiza correctamente en el 25-30% de los casos, esto podría deberse a una variedad de factores, como congestión en la red o precios del gas. Podría valer la pena monitorear la red y verificar los precios del gas en el momento de las transacciones exitosas para identificar patrones o posibles causas.

Comments are closed.