- Регистрация
- 31.12.2019
- Сообщения
- 7,560
- Реакции
- 36
Салют!
ПАРА ВВОДНЫХ СЛОВ.
Сначала я собирался описать целый дежентельменский набор инструментов для продажи ненастоящих токенов, и получения средств, которые предназначались не нам. А именно
Но немного увлекся и подробно описал лишь малую часть, зато самую интересную - про токены. Уверен, будет понятно даже тем кто не пишет код. Но если вы умеете в солидити, то документация и библиотеки откроют вам неслыханные возможности.
ПОЕХАЛИ.
Сначала подумаем, как именно мы можем получить свой профит:
Создаем красивый фасад: лендинг, white paper, road map, страница на medium и сообщество в telegram. Предлагаем купить свой ERC20 токен, отправив ETH на адрес смарт контракта.
Или еще проще - на сайте просим заполнить гуглоформу с указанием сколько ETH ты хочешь потратить и присылаем в ответном письме кошелек, на который надо переводить деньги, чтобы получить токены. Именно так это и работает. При этом сам "многообещающий проект" создавать не обязательно.
Звучит красиво и, казалось бы, что может пойти не так?
А то, что у людей уже нет такого доверия к ICO как раньше. И сейчас надо очень постараться (читай, "потратить много денег") чтобы на тебя обратили внимание. Тем более, на смену ICO постепенно приходит IEO - это когда первичную раздачу токена проводит сама биржа, например, Binance Launchpad.
Поэтому, чтобы такое сработало, надо действовать хитрее, не пытаться втюхать свой липовый проект напрямую.
Заходим на IcoDrops в раздел Upcoming ICO и выбираем жертву.
Я выбрал Centrifuge:
Тикер CFG
Token Sale 26 мая.
Total Tokens: 425,000,000
Понятное дело, на Binance нам никто разместить токен CFG не даст. Да и любой другой токен тоже.
Но никто нам не мешает создать продажу одноименного токена на децентрализованных биржах. Например на Uniswap, 1Inch или, скажу по своему собственному опыту, на любой из топ 7 DeFi-площадок. У каждой есть свои нюансы работы, плюсы и минусы, но принцип тот же.
Для начала проверяем нет ли такого токена на Uniswap:
Отлично. Значит создаем свой токен Centrifuge.
Нам потребуется расширение для браузера MetaMask, кошелек и немного эфира на нем.
Теперь идем на фициальный сайт эфира -> Developers -> Documentation -> Integrated Development Environments.
Видим что у эфира есть отличный Web-based IDE - отлично, будем работать не выходя из браузера.
Кстати, на этом сайте есть еще много чего интересного, например, целая drag-and-drop песочница, куча видео, инструкций и примеров кода. Но, мы отвлеклись. Клацаем на remix.ethereum.org.
У нас открывается среда разработки и уже даже создано несколько папок и файликов. Нажимаем на "Create New File" и называем как_хотим.sol
Теперь собственно осталось написать сам смарт-контракт. Но зачем же его писать, если до нас уже все написали! Я говорю про OpenZeppelin - самую известную библиотеку для ERC20 контрактов. ссыль на гитхаб: https://github.com/OpenZeppelin/openzeppelin-contracts
Только посмотрите, готовые блокчейн-решения на все случаи жизни
Идем contracts -> token -> ERC20 и выбираем файлик ERC20.sol, ведь именно такой контракт мы решили запускать?
Открываем файл, и видим кучу полезных функций (нас в первую очередь интересует "ERC20") и кучу бесполезных комментариев.
Бесполезных ли? Если их кто-то пишет, значит это кому-то нужно! Во-первых, сразу отмечаем себе лицензию MIT и версию solidity ^0.8.0.
Во-вторых, смотрите, что мы чуть было не пропустили:
Нам же нужно как-то указать предложение токенов - сколько их всего будет, и где им стоит сразу появиться (у нас на кошельке, а не у всяких там майнеров). Переходим:
Это нам пригодиться) Параметры, которые принимает контракт ERC20 можно посмотреть в файлике ERC20.sol, вы же попытались в нем разобраться, так?
Собственно, все что нужно мы уже собрали:
Откуда взялось это страшное число? - оригинал проекта, который мы копируем выпускает 425,000,000 токенов + 18 нолей, это стандартное значение количества знаков поле запятой для ERC20 токенов.
Переходим в компелятор, пытаемся скомпелировать и... видем пару предупреждений:
Первое - мы не добавили лицензию. Не беда, смотрим выше скриншот гитхаба OpenZeppelin, чей код мы копировали и берем лицензию оттуда.
Со вторым сложнее - пришлось покопаться в документации solidity (если что, это язык на котором мы писали смарт-контракт):
Оказывается, начиная с версии v.0.7, указывать в контрактах public/external больше не нужно.
Ок, вносим правочки, вот что получилось:
Жмем "Compile". Успех!
Теперь жмем "деплой". Не обращайте внимания, что я пока работаю в тестовой сети, в конце мы обязательно переключимся на боевую
Нас тут же перебрасывает в MetaMask (Помните, я говорил вначале, что его надо установить) и просят заплатить комиссию за транзакцию. Нам не жалко - "подтвердить".
Ждем немного, пока в терминале снизу не появится зеленая строка что все хорошо и наш токен в сети.
Ура! Кликаем на нее и попадаем в etherscan.
Тут видим адрес нашего контракта и название токена. Осталось только верифицировать аккаунт. кликаем на Verify and Publish и заполняем форму. На всякий случай скрины:
Но чтож такое! Оказывается нельзя так просто взять и импоритровать 90% кода контракта файликом из OpenZeppelin.
Чтож, раз вы "так", то и мы "так". Мы просто возьмем вееееесь код который находится в файле котоый мы импортируем
(https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol), удалим комменты и запихнем вместо импорта. Как тебе такое Илон Маск?
Да, да... Вы скажете, что я мог бы создать нормальное виртуальное окружение куда импортировать весь OpenZeppelin, а также использовать Truffle... Но до конца приема статей осталось несколько часов и вообще, мануал рассчитан на тех, кто не силен в код.
Так что, я заварил чайку и пошел копировать файлы Blockchain OpenZeppelin.
Для начала все что есть в файле ERC20.sol, а потом все что есть в файлах на которые он ссылается
Тут важно сохранять порядок, чтобы каждая функция ссылалась на уже определенную функцию:
Получилось довольно много кода, в целях экономии места - скрин, но по просьбам трудящихся могу опубликовать.
+ клацаем на галочку, чтобы компелятора оптимизировал наше добро. Отлично, даже чай остыть не успел)
Компеляция, Деплой, оплата комиссии MetaMask. Это все мы уже умеем.
Снова переходим в etherscan.io (ссылка появится снизу в консоле)
Видим, что адрес контракта уже новый (потому что это новый контракт))
Снова жмем Verify and Publish, заполняем форму,
в поле Enter the Solidity Contract Code below вставляем весь наш код,
жмем "я не робот", выбираем все картинки с мостами иии...Успех
Осталось лишь добавить этот токен в МетаМаск
На этом пока все. Нам осталось добавить токену иконку и начать листить его на UNISWAP/
но это тема других статей
успееехов!
Автор: focus
ПАРА ВВОДНЫХ СЛОВ.
Сначала я собирался описать целый дежентельменский набор инструментов для продажи ненастоящих токенов, и получения средств, которые предназначались не нам. А именно
- Создание токенов (фальшивых или настоящих)
- Листинг их на децентрализованных биржах
- Клонирование лендингов ICO (или создание оригинальных)
- Проведение собственного AirDrop'а, итд.
Но немного увлекся и подробно описал лишь малую часть, зато самую интересную - про токены. Уверен, будет понятно даже тем кто не пишет код. Но если вы умеете в солидити, то документация и библиотеки откроют вам неслыханные возможности.
ПОЕХАЛИ.
Сначала подумаем, как именно мы можем получить свой профит:
- Новое "качественное" scamICO
Создаем красивый фасад: лендинг, white paper, road map, страница на medium и сообщество в telegram. Предлагаем купить свой ERC20 токен, отправив ETH на адрес смарт контракта.
Или еще проще - на сайте просим заполнить гуглоформу с указанием сколько ETH ты хочешь потратить и присылаем в ответном письме кошелек, на который надо переводить деньги, чтобы получить токены. Именно так это и работает. При этом сам "многообещающий проект" создавать не обязательно.
Звучит красиво и, казалось бы, что может пойти не так?
А то, что у людей уже нет такого доверия к ICO как раньше. И сейчас надо очень постараться (читай, "потратить много денег") чтобы на тебя обратили внимание. Тем более, на смену ICO постепенно приходит IEO - это когда первичную раздачу токена проводит сама биржа, например, Binance Launchpad.
Поэтому, чтобы такое сработало, надо действовать хитрее, не пытаться втюхать свой липовый проект напрямую.
- Размещение фальшивых токенов.
Заходим на IcoDrops в раздел Upcoming ICO и выбираем жертву.
Я выбрал Centrifuge:
Тикер CFG
Token Sale 26 мая.
Total Tokens: 425,000,000
Понятное дело, на Binance нам никто разместить токен CFG не даст. Да и любой другой токен тоже.
Но никто нам не мешает создать продажу одноименного токена на децентрализованных биржах. Например на Uniswap, 1Inch или, скажу по своему собственному опыту, на любой из топ 7 DeFi-площадок. У каждой есть свои нюансы работы, плюсы и минусы, но принцип тот же.
Для начала проверяем нет ли такого токена на Uniswap:
Отлично. Значит создаем свой токен Centrifuge.
Нам потребуется расширение для браузера MetaMask, кошелек и немного эфира на нем.
Теперь идем на фициальный сайт эфира -> Developers -> Documentation -> Integrated Development Environments.
Видим что у эфира есть отличный Web-based IDE - отлично, будем работать не выходя из браузера.
Кстати, на этом сайте есть еще много чего интересного, например, целая drag-and-drop песочница, куча видео, инструкций и примеров кода. Но, мы отвлеклись. Клацаем на remix.ethereum.org.
У нас открывается среда разработки и уже даже создано несколько папок и файликов. Нажимаем на "Create New File" и называем как_хотим.sol
Теперь собственно осталось написать сам смарт-контракт. Но зачем же его писать, если до нас уже все написали! Я говорю про OpenZeppelin - самую известную библиотеку для ERC20 контрактов. ссыль на гитхаб: https://github.com/OpenZeppelin/openzeppelin-contracts
Только посмотрите, готовые блокчейн-решения на все случаи жизни
Идем contracts -> token -> ERC20 и выбираем файлик ERC20.sol, ведь именно такой контракт мы решили запускать?
Открываем файл, и видим кучу полезных функций (нас в первую очередь интересует "ERC20") и кучу бесполезных комментариев.
Бесполезных ли? Если их кто-то пишет, значит это кому-то нужно! Во-первых, сразу отмечаем себе лицензию MIT и версию solidity ^0.8.0.
Во-вторых, смотрите, что мы чуть было не пропустили:
Нам же нужно как-то указать предложение токенов - сколько их всего будет, и где им стоит сразу появиться (у нас на кошельке, а не у всяких там майнеров). Переходим:
Это нам пригодиться) Параметры, которые принимает контракт ERC20 можно посмотреть в файлике ERC20.sol, вы же попытались в нем разобраться, так?
Собственно, все что нужно мы уже собрали:
Код:
pragma solidity ^0.8.0;
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol";
contract CFG_contract is ERC20("Centrifuge", "CFG") {
constructor() public {
_mint(msg.sender, 425000000000000000000000000);
}
}
Откуда взялось это страшное число? - оригинал проекта, который мы копируем выпускает 425,000,000 токенов + 18 нолей, это стандартное значение количества знаков поле запятой для ERC20 токенов.
Переходим в компелятор, пытаемся скомпелировать и... видем пару предупреждений:
Первое - мы не добавили лицензию. Не беда, смотрим выше скриншот гитхаба OpenZeppelin, чей код мы копировали и берем лицензию оттуда.
Со вторым сложнее - пришлось покопаться в документации solidity (если что, это язык на котором мы писали смарт-контракт):
Оказывается, начиная с версии v.0.7, указывать в контрактах public/external больше не нужно.
Ок, вносим правочки, вот что получилось:
Код:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol";
contract CFG_contract is ERC20("Centrifuge", "CFG") {
constructor() {
_mint(msg.sender, 425000000000000000000000000);
}
}
Жмем "Compile". Успех!
Теперь жмем "деплой". Не обращайте внимания, что я пока работаю в тестовой сети, в конце мы обязательно переключимся на боевую
Нас тут же перебрасывает в MetaMask (Помните, я говорил вначале, что его надо установить) и просят заплатить комиссию за транзакцию. Нам не жалко - "подтвердить".
Ждем немного, пока в терминале снизу не появится зеленая строка что все хорошо и наш токен в сети.
Ура! Кликаем на нее и попадаем в etherscan.
Тут видим адрес нашего контракта и название токена. Осталось только верифицировать аккаунт. кликаем на Verify and Publish и заполняем форму. На всякий случай скрины:
Но чтож такое! Оказывается нельзя так просто взять и импоритровать 90% кода контракта файликом из OpenZeppelin.
Чтож, раз вы "так", то и мы "так". Мы просто возьмем вееееесь код который находится в файле котоый мы импортируем
(https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol), удалим комменты и запихнем вместо импорта. Как тебе такое Илон Маск?
Да, да... Вы скажете, что я мог бы создать нормальное виртуальное окружение куда импортировать весь OpenZeppelin, а также использовать Truffle... Но до конца приема статей осталось несколько часов и вообще, мануал рассчитан на тех, кто не силен в код.
Так что, я заварил чайку и пошел копировать файлы Blockchain OpenZeppelin.
Для начала все что есть в файле ERC20.sol, а потом все что есть в файлах на которые он ссылается
Код:
import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";
import "../../utils/Context.sol";
Тут важно сохранять порядок, чтобы каждая функция ссылалась на уже определенную функцию:
Код:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
#Все из файла ../../utils/Context.sol
#Все из файла ./extensions/IERC20Metadata.sol
#Все из файла ./IERC20.sol
#наша контракт:
contract CFG_contract is ERC20("Centrifuge", "CFG") {
constructor() {
_mint(msg.sender, 425000000000000000000000000);
}
}
Получилось довольно много кода, в целях экономии места - скрин, но по просьбам трудящихся могу опубликовать.
+ клацаем на галочку, чтобы компелятора оптимизировал наше добро. Отлично, даже чай остыть не успел)
Компеляция, Деплой, оплата комиссии MetaMask. Это все мы уже умеем.
Снова переходим в etherscan.io (ссылка появится снизу в консоле)
Видим, что адрес контракта уже новый (потому что это новый контракт))
Снова жмем Verify and Publish, заполняем форму,
в поле Enter the Solidity Contract Code below вставляем весь наш код,
жмем "я не робот", выбираем все картинки с мостами иии...Успех
Осталось лишь добавить этот токен в МетаМаск
На этом пока все. Нам осталось добавить токену иконку и начать листить его на UNISWAP/
но это тема других статей
успееехов!
Автор: focus