Ich habe einen Smart Contract erstellt, aber ich habe beim Bereitstellen einen Fehler erhalten, nachdem ich das Gaslimit von 3000000 und einen zufälligen Wert (wei) angegeben und auf Erstellen geklickt habe, habe ich den folgenden Fehler erhalten:
(Ich verwende Remix IDE, Metatmask-Erweiterung und Ropsten das Netzwerk. Ich habe 10 Eth in meinem Gleichgewicht und ich habe es auch mit Solidity Compiler 0.4.9 und 0.4.20 versucht, bekomme aber immer noch den gleichen Fehler)
Fehler :
Gas estimation errored with the following message (see below). The transaction execution will likely fail. Do you want to force sending?
Error: gas required exceeds allowance or always failing transaction at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:1391377 at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:927906 at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:346093 at o (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:364324) at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:348923 at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:346093 at c (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:349199) at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:349237 at Ht (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:358606) at Object.<anonymous> (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:349326) at e.value (chrome-
Das ist mein Code:
pragma solidity ^0.4.21;
contract admined{
address public admin;
function admined(){
admin = msg.sender;
}
modifier onlyAdmin(){
require(msg.sender == admin);
_;
}
function transferAdminRol(address newAdmin)public onlyAdmin {
admin = newAdmin;
}
}
contract ERC20{
mapping(address => uint256) public balanceOf;
mapping(address => mapping(address => uint256)) public allowance;
string public standard = "Test Africa v0.1";
string public name;
string public symbol;
uint8 public decimal;
uint256 public totalSupply;
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
function ERC20(uint256 initialSupply, string _name, string _symbol, uint8 _decimal) public{
balanceOf[msg.sender] = initialSupply;
name = _name;
symbol = _symbol;
decimal = _decimal;
totalSupply = initialSupply;
}
function transfer(address _to, uint256 _value)public returns (bool success){
require(balanceOf[msg.sender] >= _value);
require(balanceOf[_to] + _value >= balanceOf[_to]);
balanceOf[msg.sender] -= _value;
balanceOf[_to] += _value;
emit Transfer(msg.sender, _to, _value);
return true;
}
function approve(address _spender, uint256 _value) public returns (bool success){
allowance[msg.sender][_spender] = _value;
emit Approval(msg.sender, _spender, _value);
return true;
}
function allowance(address _owner, address _spender) public returns (uint256 remaining) {
return allowance[_owner][_spender];
}
function transferFrom(address _from, address _to, uint256 _value)public returns (bool success){
require(balanceOf[_from] >= _value);
require(balanceOf[_to] + _value >= balanceOf[_to]);
require(_value <= allowance[_from][msg.sender]);
balanceOf[_from] -= _value;
balanceOf[_to] += _value;
allowance[_from][msg.sender] -= _value;
emit Transfer(_from, _to, _value);
return true;
}
function balanceOf(address _owner)public constant returns (uint256 balance) {
return balanceOf[_owner];
}
}
contract testaAFC is admined, ERC20{
uint public minBalanceForAccounts = 50000000000000 wei;
uint256 public sellPrice = 500;
uint256 public buyPrice = 500;
bytes32 public currentChallenge;
uint public timeOfLastProof;
uint public difficulty = 10**32;
mapping (address => bool) public frozenAccount;
event FrozenFunds(address target, bool frozen);
function testaAFC(uint256 initialSupply, string _name, string _symbol,
uint8 _decimal, address _admin)public ERC20(0, _name, _symbol, _decimal){
if(_admin != 0)
admin = _admin;
else
admin = msg.sender;
balanceOf[admin] = initialSupply;
totalSupply = initialSupply;
}
function transfer(address _to, uint256 _value)public returns (bool success){
//
}
function transferFrom(address _from, address _to, uint256 _value)public returns (bool success){
//
}
function setMinBalance(uint minimumBalanceInFinney)public onlyAdmin {
minBalanceForAccounts = minimumBalanceInFinney * 1 wei;
}
function mintToken(address target, uint256 mintedAmount)public onlyAdmin {
balanceOf[target] += mintedAmount;
totalSupply += mintedAmount;
emit Transfer(0, this, mintedAmount);
emit Transfer(this, target, mintedAmount);
}
function setPrices(uint256 newSellPrice, uint256 newBuyPrice)public onlyAdmin {
sellPrice = newSellPrice;
buyPrice = newBuyPrice;
}
function buy()public payable returns (uint amount){
amount = msg.value * buyPrice;
require(balanceOf[this] >= amount);
balanceOf[msg.sender] += amount;
balanceOf[this] -= amount;
emit Transfer(this, msg.sender, amount);
return amount;
}
function sell(uint amount)public returns (uint revenue){
require(balanceOf[msg.sender] >= amount);
balanceOf[this] += amount;
balanceOf[msg.sender] -= amount;
revenue = amount / sellPrice;
msg.sender.transfer(revenue);
emit Transfer(msg.sender, this, amount);
return revenue;
}
}
BITTE HELFEN ICH BIN IN Eile DANKE !!!
Es ist nicht erforderlich, einen Wert in das Feld einzugeben, value
es sei denn, Sie möchten etwas ETH zusammen mit Ihrer Transaktion übertragen. Denken Sie auch daran, payable
in solchen Fällen Schlüsselwörter zu verwenden.
Aniket
Aniket
testaAFC
den Vertrag erfolgreich mit Metamask & Remix auf Ropsten bereitgestellt.Abdeljalil HALLOUMI
Aniket
Abdeljalil HALLOUMI
Aniket
100,"hello","HLO",18,"0x7f75e578b4c55a9f5c01eb7380149ed5e33987c8"
. Hier ist der tx-Hash: ropsten.etherscan.io/tx/…Abdeljalil HALLOUMI
Aniket