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
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.
payable
. Sin eso, su contrato se revierte. Necesita un payable
método para recibir cualquier cosa en el contrato.priceOfATransaction
establece msg.value
solo una vez cuando se crea el contrato.
Prashant Prabhakar Singh