Как купить Банкор через умный контракт
Вся суть
Bancor предлагает революцию в технологиях обмена, когда цена актива зависит исключительно от того сколько ликвидного залога находится в качестве обеспечения актива. Т.е. люди оценивают любую вещь в чём-то ликвидном (Например сам Банкор оценен в Эфире). Вносят в банк кучу залога (в данном случае эфир) и теперь могут свободно под обеспечение банка покупать нужные и продавать обратно в банк ненужные себе экземпляры этой вещи.
Причём сумма залога, которая возвращается или кладётся в банк зависит от количество раскупленных вещей. Чем больше покупается вещей, тем больше надо внести в банк залога за вещь (пользуется спросом!), чем больше продаётся вещей обратно в банк (уничтожается), тем меньше залога будет возвращаться взамен вещи из банка. Решаемая задача - обеспечить возможность высоколиквидной внебиржевой торговли по справедливой цене.
Как сейчас можно купить\продать BNT (Банкор-токены) по этой схеме?
Инструкция для MyEtherWallet (На английском языке)
Простой вариант:
Просто шлём эфиры на адрес контракта:
0x77a77EcA75445841875eBb67a33d0A97Dc34d924
Предупреждение:
- Не шлите с кошельков Бирж или веб-кошельков
- Используйте 300 000 газа
- Используйте от 24 GWEI стоимость газа
В ответ придёт BNT по текущей, взвешенной цене.
Ориентир цены можно посмотреть тут
Продажа доступна лишь по более сложной схеме.
Покупка BNT
Шаг 1. Отправляем ETH с вашего кошелька в адрес EtherToken контракта.
- Выбираем в MyEthWallet вкладку "Перевести Эфир"
- Вводим адрес получателя (Контракта EtherToken):
0xD76b5c2A23ef78368d8E34288B5b65D616B746aE - В графе сумма перевода указываем количество Эфира для покупки BNT
- Ставим Газ Лимит к 150 000
- Нажимаем "Сформировать транзакцию"
- Нажимаем "Отправить транзакцию"
На данном шаге вы можете увидеть предупреждение о том, что действительно ли вы желаете отправить ETH на адрес, подтверждаете, что да.
Теперь у вас есть EtherToken и вы в любой момент можете обменять их на BNT
Шаг 2. Даём доступ обменнику BNT к своему EthToken-балансу
- Выберите закладку "Контракты" в MyEtherWallet
- В адрес контракта внесите адрес EtherToken контракта:
0xD76b5c2A23ef78368d8E34288B5b65D616B746aE - Скопируйте весь ABI-текст по этой ссылке в поле ABI / JSON интерфейс
- Нажмите "Подключится"
- Под надписью "Прочитать / записать контракт" нажмите кнопку "выбрать функцию" и выберите "BalanceOf".
- Укажите адрес вашего кошелька Эфира.
- Нажмите "Прочесть"
- Скопируйте себе и сохраните цифру под “uint256” (Это размер ваших ETH в WEI). Она нужна для следующих шагов.
Шаг 3
- В том же меню вместо "balanceOf" выберите действие "approve".
Обратите внимание: Если вы уже делали "approve" до этого, то вам надо будет сделать Шаг 3 два раза (с начала и до конца). Первый раз установить "_value" в 0 (ноль). Второй раз установить "_value" равным цифре, что вы запомнили на Шаге 2. - В поле “spender address” вносим адрес BancorChanger контракта: 0xCA83bD8c4C7B1c0409B25FbD7e70B1ef57629fF4
- В поле “_value” занесите значение сохранённое на 2-м шаге.
- Нажмите "Записать"
- Установите количество Эфира к отправке 0 (Ноль). Если будет другое - это приведёт к ошибке транзакции.
- Используйте количество газа по-умолчанию, если нет его, то 150 000.
- Нажмите "Сформировать транзакцию"
- И "Я уверен" для её выполнения.
Шаг 4. Обмен
Теперь вы готовы поменять свои EtherToken на BNT.
Следующие действия мы делаем снова на вкладке Контракты.
- Внесите адрес BancorChanger контракта в поле “Contact Address” : 0xCA83bD8c4C7B1c0409B25FbD7e70B1ef57629fF4
- Скопируйте ABI-текст по этой ссылке в поле “ABI / JSON Interface” (сначала очистив его от предыдущих значений).
- Нажмите "Подключиться"
- Выберите действие "change" из выпадающего меню под "Прочитать / записать контракт"
- Запишите в поле “_fromToken” EtherToken контракт:
0xD76b5c2A23ef78368d8E34288B5b65D616B746aE - В поле “_toToken” мы записываем адрес BNT token contract: 0x1F573D6Fb3F13d689FF844B4cE37794d79a7FF1C
- В поле “_amount” мы вписываем значение с Шага 2. (объём для покупки в WEI)
- В поле “_minReturn” пишем минимальное количество BNT которое вы согласны получить в обмен на свои ETH. Если вы хотите купить BNT по его текущей стоимости, то ставьте 1 как "_minReturn".
Если вы не хотите использовать минимальное количество к покупке, вы можете поставить 1 для пропуска этого поля. Это значит, что транзакция выполнится по текущей рыночной цене.
Использование поля MinReturn указывает минимальное количество токенов, которые вы согласны получить когда обмен закончится. Текущая цена BNT указана на сайте, однако из-за колебаний курса в процессе выполнения транзакции ваша цена может отличаться, и эта функция позволяет выставить ограничения.
Например, если вы желаете поменять 5 Эфира на BNT, и текущая цена 0.01 Эфира, то вы можете пожелать ограничить цену покупки до 0.01. Это значит, что вы должны поставить возврат минимум:
5 ETH / 0.01 = 500 BNT
500 BNT in WEI = 500e+18 = 500,000,000,000,000,000,000
(Вы можете для простоты использовать конвертер ETH в WEI
Если минимальное количество BNT контракт вернуть не сможет (например произошёл скачок цены BNT во время исполнения контракта), то вы потеряете стоимость газа потраченного на исполнение транзакции, но сама транзакция не будет выполнена и обмен отменится.
Жмите "Записать"
На этом этапе вы увидите предупреждение.Установите количество Эфира к отправке 0 (Ноль). Если будет другое - это приведёт к ошибке транзакции.
Используйте количество газа по-умолчанию, если нет его, то 150 000.
Нажмите "Сформировать транзакцию"
И "Я уверен" для её выполнения.
Это всё. Если транзакция успешно выполнится, то вы увидите BNT в своём кошельке.