Estimación de gas infinita

este es mi codigo

pragma solidity ^0.4.19;

contract FirstContract
{
    address creator;
    uint256 priceOfATransaction = msg.value;
    uint256 totalAmount;
    address buyer;

    function FirstContract() public
    {
        creator = msg.sender;
    }

    function perSaleDetails() public
    {
        totalAmount += priceOfATransaction;
        //=========Detail of an order==========//
        priceOfATransaction = 0;
    }

    function sellerMoneey() public returns(bool)
    {
        if(msg.sender == creator){
            if(!creator.send(totalAmount)) {
                return false;
            }
        }
    }
}

ADVERTENCIA DE REMEZCLA: -

Requisito de gas de la función FirstContract.sellerMoneey() alto: infinito. Si el requisito de gas de una función es superior al límite de gas del bloque, no se puede ejecutar. Evite bucles en sus funciones o acciones que modifiquen grandes áreas de almacenamiento (esto incluye borrar o copiar arreglos en almacenamiento)

que necesito modificar

Esto puede ser un error en el remix. No puede estimar el gas ni siquiera para una función simple.

Respuestas (1)

Cualquier uso de send()y, transfer()por lo general, arroja esa advertencia del compilador en REMIX, incluso si no hay bucles o cambios de almacenamiento.

Supongo que recién está comenzando con la solidez y los contratos inteligentes, por lo que hay algunas cosas que aprenderá en el futuro. Especialmente con líneas como uint256 priceOfATransaction = msg.value;.

Su código es seguro de compilar.

Gracias. Pero mi contrato está desplegado. Lo que estoy tratando de averiguar es que cada vez que envío algo de éter al contrato, la transacción no se completa y falla. ¿Puede sugerir un código que acepte el éter y luego lo envíe a otra dirección? Gracias de antemano.
@AgnishChakraborty Bueno, esa es una pregunta totalmente diferente... pero ninguna de sus funciones lo es payable. Sin eso, su contrato se revierte. Necesita un payablemétodo para recibir cualquier cosa en el contrato.
@AgnishChakraborty en segundo lugar, esto hace que la línea que mencioné sea un problema aún mayor, ya que se priceOfATransactionestablece msg.valuesolo una vez cuando se crea el contrato.
@AgnishChakraborty Lo ayudaría con el código, pero, sinceramente, no tengo idea de lo que está tratando de lograr con el estado del código inicialmente. Si explicas un poco más cada función, puedo ayudarte.
Quiero un contrato que pueda aceptar ether. Tiene dos funciones que pueden calcular algunas variables pasadas. Y una función para enviar el saldo al creador.