Используйте Remix IDE

В этой демонстрации мы рассмотрим, как создать сборщик для вашего токена с помощью Solidity и развернуть его в живой сети Matic / Polygon. У токена есть сборщик по нескольким причинам. Это может быть сборщик основной сети, используемый для распространения токенов среди сообщества на основе выполнения некоторой задачи, сборщик тестовой сети для поддержки разработчиков, создающих приложения с использованием токена, и т. Д.

В этой статье мы расскажем, как:

  • Создайте смарт-контракт крана.
  • Разверните его в тестовой сети Мумбаи.

Примечание. Вы также можете развернуть этот сборщик в Ethereum или Binance Smart Chain (BSC).

Давайте начнем!

Перейдите в Remix IDE . Создайте новый файл с именем Faucet.sol и добавьте в него следующее содержимое:

Примечание: я предполагаю, что у вас уже есть токен, развернутый в тестовой сети Мумбаи. Если вы еще не развернули свой токен, прочтите эту статью. Он использует BSC, но тот же метод можно использовать и для развертывания токена в тестовой сети Мумбаи. Для работы с тестовой сетью Мумбаи следует настроить только MetaMask.

Я развернул простой токен под названием Образец среднего токена (SMT) в тестовой сети Мумбаи для целей тестирования, и этот кран будет капать 1 токен SMT (который можно изменить) с интервалом в пять минут в запрашивающий кошелек. адрес.

Итак, давайте скомпилируем контракт и развернем его в тестовой сети Мумбаи.

Для развертывания нам понадобится несколько токенов testnet Matic. Шаги по компиляции и развертыванию контракта с помощью Remix также можно найти в упомянутой выше статье. Во время развертывания tokenAddress и ownerAddress должны быть переданы для инициализации контракта.

У крана есть четыре метода:

  1. send() - Эта функция отправляет 1 SMT (по умолчанию) запрашивающему кошельку. Следует отметить, что отображение (nextRequestAt) было объявлено для реализации базового механизма ограничения скорости. Между двумя последующими звонками с одного кошелька должен быть интервал не менее пяти минут.
  2. setTokenAddress (адрес) - этот метод может использоваться владельцем / администратором сборщика для обновления адреса базового токена. Например, если мы запускаем новую версию токена (например, SMTv2), мы можем передать новый адрес токена этому методу, чтобы кран начал сливать новый токен вместо старого. Это несколько похоже на «метод адаптера», который используется в контрактах с возможностью обновления.
  3. setFaucetDripAmount (uint256) - Используя этот метод, владелец может увеличить или уменьшить количество токенов, отправляемых за один запрос. Значение по умолчанию - 1 SMT.
  4. withdrawTokens (адрес, uint256) - Владелец сборщика может использовать это для вывода токенов из смарт-контракта.

Нам нужно вручную внести некоторые токены в контракт сборщика, как только контракт будет развернут.

Помимо метода send(), остальные три функции могут быть вызваны только владельцем сборщика. Следовательно, модификатор onlyOwner передается.

Время живых действий

После успешного развертывания контракта мы можем увидеть методы в нижнем левом углу Remix IDE.

Мы можем подключить кошелек MetaMask и поэкспериментировать с методами.

Метод send закапает 1 SMT в кошелек, как показано ниже:

Если мы снова попытаемся принудительно заключить контракт на отправку токенов в течение пяти минут, транзакция будет отменена с сообщением об ошибке «Повторить попытку позже».

Если мы хотим изменить токен или сумму, отправляемую по запросу, это можно сделать, вызвав соответствующие методы.

Заключение

Этот смарт-контракт для сборщика создан просто для развлечения и является базовой реализацией. В контракт можно внести множество изменений, чтобы сделать его более устойчивым, безопасным и надежным. Не стесняйтесь изменять кран в соответствии с вашими требованиями и экспериментировать с ним.

Спасибо за прочтение!