Помогите! Я только о отказались от проверки моего контракта на https://etherscan.io/verifyContract2?a=
Окна 10
Гет 1.7.3 стабильной 4bb3c89d
Ethereum Кошелек 0.9.3.2075 (используется не для создания, компиляции и публикации контракта: Нет файлов - копия & мимо код из блокнота)
Четность 1.8.0-бета-9882902-20171015
Монолитность 4,19 + совершить c4cbbb05.Emscripten.Clang (это то, что https://remix.ethereum.org Said моя версия - Не уверен, что это)
Контракт Адрес: 0xb0DC7fdB068aBA78Cd79e1BF9006196fF3299C8f
Договор Имя: MyAdvancedToken
Составитель: 4,19 Comit c4cbbb05
Оптимизация: Нет
Конструктор Аргументы ABI-кодируются:
000000000000000000000000000000000000000000000000000000003b9aca00000000000000000 0000000000000000000000000000000000000000000000060000000000000000000000000000000 00000000000000000000000000000000a0000000000000000000000000000000000000000000000 00000000000000000134469676974616c20446f6c6c617220436f696e0000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000444444354000 00000000000000000000000000000000000000000000000000000
Я попытался удалить ^ перед ^ 0.4.4
Я изменил последнюю цифру в различные другие версии компилятора и попытаться проверить с этими компиляторами
Если кто-то может помочь мне проверить этот контракт, я пришлю вам $ 50 USD. Благодаря!
Код ниже, что астральная кошелек (не Mist) компилируется и развертывается:
Прагма монолитность ^ 0.4.4;
контракт принадлежит {
общедоступный адрес владельца;
функция принадлежит () {общественного
владелец = msg.sender;
}
Модификатор onlyOwner {
требуется (msg.sender == владелец);
_;
}
Функция transferOwnership (адрес newOwner) onlyOwner общественности {
владелец = newOwner;
}
}
Интерфейс tokenRecipient {функция receiveApproval (адрес _from, uint256 _value, адрес _token, байты _extraData) общественности; }
контракт TokenERC20 {
// Общественные переменные лексемы
строка публичное имя;
строка общественного символа;
uint8 общественных знаков после запятой = 18;
// 18 знаков после запятой является сильно предложено по умолчанию, во избежание изменения его
uint256 общественного totalSupply;
// Это создает массив со всеми противовесами
отображение (адрес => uint256) общественного balanceOf;
отображение (адрес => отображение (адрес => uint256)) общественного пособия;
// Это создает общественное событие на blockchain, который будет оповещать клиентов
Передача события (адрес индексируются, индексированные по адресу, значение uint256);
// Это уведомляет клиентов о количестве сжигаемого
Запись событий (адрес индексируются, значение uint256);
/ **
* Функция Constrctor
*
* Инициализация контракта с начальными лексемами питания создателя договора
* /
функционировать TokenERC20 (
uint256 initialSupply,
Строка tokenName,
строка tokenSymbol
) Общественности {
totalSupply = initialSupply * 10 ** uint256 (десятичные); // Обновление общие объем поставки с десятичной суммой
balanceOf [msg.sender] = totalSupply; // Дайте создателю все начальные жетоны
имя = tokenName; // Задает имя для целей отображения
Символ = tokenSymbol; // Задает символ для целей отображения
}
/ **
* Внутренний перевод, только можно назвать настоящим договором
* /
Функция _transfer (адрес _from, адрес _to, UINT _value) внутренний {
// Передача Предотвратить 0x0 адрес. Используйте ожог () вместо
требуется (_to = 0x0!);
// Проверяем, если отправитель имеет достаточно
требуют (balanceOf [_from] >= _value);
// Проверка на переполнение
требуется (balanceOf [_to] + _value > balanceOf [_to]);
// Сохранить для утверждения в будущем
UINT previousBalances = balanceOf [_from] + balanceOf [_to];
// Вычесть от отправителя
balanceOf [_from] - = _value;
// Добавляем же получателю
balanceOf [_to] + = _value;
Передача (_from, _to, _value);
// Утверждает используются для использования статического анализа для поиска ошибок в коде. Они никогда не должны терпеть неудачу
утверждают (balanceOf [_from] + [balanceOf _to] == previousBalances);
}
/ **
* Передача жетонов
*
* Отправить `_value` лексемы` _to` с вашего счета
*
* @param _to по адресу получателя
* @param _value суммы для отправки
* /
Передаточная функция (адрес _to, uint256 _value) публичное {
_transfer (msg.sender, _to, _value);
}
/ **
* Передача лексемы из другого адреса
*
* Отправить `_value` лексемы` _to` в имени `_from`
*
* @param _from на адрес отправителя
* @param _to по адресу получателя
* @param _value суммы для отправки
* /
Функция transferFrom (адрес _from, адрес _to, uint256 _value) государственные доходы (BOOL успех) {
требуют (_value <= Пособие [_from] [msg.sender]); // Проверяем пособие
пособие [_from] [msg.sender] - = _value;
_transfer (_from, _to, _value);
возвращает истину;
}
/ **
* Установить пособие по другому адресу
*
* Позволяет `_spender` потратить не больше, чем` _value` лексем в вашем имени
*
* @param _spender по адресу разрешено израсходовать
* @param _value суммы максимальных они могут потратить
* /
функция утвердить (адрес _spender, uint256 _value) общественность
возвращает (BOOL успех) {
пособие [msg.sender] [_ транжира] = _value;
возвращает истину;
}
/ **
* Установить пособие по другому адресу и уведомить
*
* Позволяет `_spender` потратить не больше, чем` _value` лексем вашего имени, а затем свистеть договор об этом
*
* @param _spender по адресу разрешено израсходовать
* @param _value суммы максимальных они могут потратить
* @param _extraData некоторой дополнительной информации для отправки утвержденного контракта
* /
Функция approveAndCall (адрес _spender, uint256 _value, байты _extraData)
общественности
возвращает (BOOL успех) {
tokenRecipient транжира = tokenRecipient (_spender);
если (утверждение (_spender, _value)) {
spender.receiveApproval (msg.sender, _value, это, _extraData);
возвращает истину;
}
}
/ **
* Уничтожить маркеры
*
* Удалить `_value` маркеры из системы необратимо
*
* @param _value суммы денег, чтобы сжечь
* /
Функция ожога (uint256 _value) государственные доходы (BOOL успех) {
требуют (balanceOf [msg.sender] >= _value); // Проверяем, если отправитель имеет достаточно
balanceOf [msg.sender] - = _value; // Вычесть от отправителя
totalSupply - = _value; // Обновления totalSupply
Ожог (msg.sender, _value);
возвращает истину;
}
/ **
* Уничтожить маркеры от другой учетной записи
*
* Удалить `_value` лексем из системы необратимо от имени` _from`.
*
* @param _from адрес отправителя
* @param _value суммы денег, чтобы сжечь
* /
Функция burnFrom (адрес _from, uint256 _value) государственные доходы (BOOL успех) {
требуют (balanceOf [_from] >= _value); // Проверяем, если целевой баланс достаточно
требуют (_value <= Пособие [_from] [msg.sender]); // Проверяем пособие
balanceOf [_from] - = _value; // Вычесть из целевого баланса
пособие [_from] [msg.sender] - = _value; // Вычесть из резерва отправителя
totalSupply - = _value; // Обновление totalSupply
Ожог (_from, _value);
возвращает истину;
}
}
/ ****************************************** /
/ * ADVANCED ЗНАК НАЧИНАЕТСЯ ЗДЕСЬ * /
/ ****************************************** /
контракт MyAdvancedToken принадлежит, TokenERC20 {
uint256 общественного sellPrice;
uint256 общественного buyPrice;
отображение (адрес => BOOL) общественного frozenAccount;
/ * Это формирует общественное событие на blockchain, который будет оповещать клиентов * /
FrozenFunds событий (адрес целевой, BOOL замороженные);
/ * Инициализация контракт с начальными лексем питания к создателю договора * /
Функция MyAdvancedToken (
uint256 initialSupply,
Строка tokenName,
строка tokenSymbol
) TokenERC20 (initialSupply, tokenName, tokenSymbol) публичное {}
/ * Внутренняя передача, только можно назвать настоящим договором * /
Функция _transfer (адрес _from, адрес _to, UINT _value) внутренний {
требуется (_to = 0x0!); // Передача Предотвратить 0x0 адрес. Используйте ожог () вместо
требуют (balanceOf [_from] >= _value); // Проверяем, если отправитель имеет достаточно
требуется (balanceOf [_to] + _value > balanceOf [_to]); // Проверка на переполнение
требуют (frozenAccount [_from]!); // Проверяем, если отправитель заморожен
требуют (frozenAccount [_to]!); // Проверяем, если получатель замораживается
balanceOf [_from] - = _value; // Вычесть от отправителя
balanceOf [_to] + = _value; // Добавляем же получателю
Передача (_from, _to, _value);
}
/// @notice Создать `mintedAmount` жетоны и отправить его в` target`
/// целевой @param Адрес получить маркеры
/// @param mintedAmount количество жетонов он получит
Функция mintToken (адрес целевой, uint256 mintedAmount) onlyOwner общественных {
balanceOf [цель] + = mintedAmount;
totalSupply + = mintedAmount;
Передача (0, это, mintedAmount);
Передача (это, цель, mintedAmount);
}
/// @notice `замораживать? Предотвратить | Allow` `target` от отправки & приема жетонов
/// целевой @param Адрес быть заморожен
/// @param заморозить либо заморозить его или нет
Функция freezeAccount (адрес целевой, BOOL замораживание) onlyOwner общественных {
frozenAccount [цель] = замораживание;
FrozenFunds (целевые, замораживание);
}
/// @notice Разрешить пользователям покупать маркеры для `newBuyPrice` ETH и продавать жетоны для` newSellPrice` ETH
/// @param newSellPrice Цена пользователи могут продать по договору
/// пользователи @param newBuyPrice Цена может купить от договора
Функция setPrices (uint256 newSellPrice, uint256 newBuyPrice) onlyOwner общественности {
sellPrice = newSellPrice;
buyPrice = newBuyPrice;
}
/// @notice Купить маркеры от контракта, отправив эфир
Функция покупки () оплачиваемые общественные {
сумма UINT = msg.value / buyPrice; // вычисляет сумму
_transfer (это, msg.sender, сумма); // делает переводы
}
/// @notice Продаем `amount` лексемы к контрактному
/// @param количество количество жетонов, которые будут проданы
Функция надувательства (количество uint256) публичное {
требуют (this.balance >= Сумма * sellPrice); // проверяет, если договор имеет достаточно простой эфир, чтобы купить
_transfer (msg.sender, это, сумма); // делает переводы
msg.sender.transfer (сумма * sellPrice); // посылает эфир продавцу. Важно, чтобы сделать это в прошлом, чтобы избежать рекурсии атак
}
}