Реальная история.
LMFAO
Этот ребенок хочет взять 90 fricking долларов для развертывания ERC-20 маркера, который может быть сделан любым, кто знает, как читать.
Вы знаете, что это с открытым исходным кодом, и весь исходный код, необходимый для развертывания маркера находится на самом Эфириуме сайте?
Во всяком случае для тех, кто не знает, редактировать следующий код, что вы хотите с нужным именем, тикер, общее предложение и количество знаков после запятой затем протолкнуть metamask (Google это). Это будет стоить около $ 10 не $ 90.
Если вам нужна помощь, П.М. меня.
Прагма монолитность ^ 0.4.16;
Интерфейс tokenRecipient {функция receiveApproval (адрес _from, uint256 _value, адрес _token, байты _extraData) общественности; }
контракт TokenERC20 {
// Общественные переменные лексемы
строка публичное имя;
строка общественного символа;
uint8 общественных знаков после запятой = 18;
// 18 знаков после запятой является сильно предложено по умолчанию, во избежание изменения его
uint256 общественного totalSupply;
// Это создает массив со всеми противовесами
отображение (адрес => uint256) общественного balanceOf;
отображение (адрес => отображение (адрес => uint256)) общественного пособия;
// Это создает общественное событие на blockchain, который будет оповещать клиентов
Передача события (адрес индексируются, индексированные по адресу, значение uint256);
// Это уведомляет клиентов о количестве сжигаемого
Запись событий (адрес индексируются, значение uint256);
/ **
* Функция Constrctor
*
* Инициализация контракта с начальными лексемами питания создателя договора
* /
Функция TokenERC20 () {общественного
balanceOf [msg.sender] = +18900000000000000000000000; // Дай создатель всех исходные маркера (например, 100000)
totalSupply = +18900000000000000000000000; // Обновление общий объем поставок (например, 100000)
имя = "eDASH"; // Задает имя для целей отображения
десятичные = 18; // Количество десятичных знаков для целей отображения
символ = "eDASH"; // Задает символ для целей отображения
}
/ **
* Внутренний перевод, только можно назвать настоящим договором
* /
Функция _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);
возвращает истину;
}
/ **
* Уничтожить лексемы из других ccount
*
* Удалить `_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);
возвращает истину;
}
}