Das ist mein Code
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;
}
}
}
}
REMIX-WARNUNG:-
Gasbedarf der Funktion FirstContract.sellerMoneey() hoch: unendlich. Wenn der Gasbedarf einer Funktion höher ist als die Sperrgasgrenze, kann sie nicht ausgeführt werden. Bitte vermeiden Sie Schleifen in Ihren Funktionen oder Aktionen, die große Speicherbereiche ändern (dazu gehört das Löschen oder Kopieren von Arrays im Speicher).
Was muss ich ändern
Jede Verwendung von send()
und transfer()
löst normalerweise diese Compiler-Warnung auf REMIX aus, selbst wenn es keine Schleifen oder Speicheränderungen gibt.
Ich nehme an, Sie fangen gerade erst mit Solidität und intelligenten Verträgen an, also gibt es ein paar Dinge, die Sie in Zukunft lernen werden. Vor allem bei Zeilen wie uint256 priceOfATransaction = msg.value;
.
Ihr Code kann sicher kompiliert werden.
payable
. Andernfalls wird Ihr Vertrag rückgängig gemacht. Sie brauchen eine payable
Methode, um etwas im Vertrag zu erhalten.priceOfATransaction
festgelegt wird msg.value
, wenn der Vertrag erstellt wird.
Prashant Prabhakar Singh