перейдіть до Ремікс IDE. Створіть новий файл під назвою Faucet.sol
і додайте наступний вміст до файлу:
Примітка: я припускаю, що у вас уже є маркер, розгорнутий у тестовій мережі Мумбаї. Якщо ви не розгорнули свій маркер, пройдіть це стаття. Він використовує BSC, але той самий метод можна використовувати для розгортання маркера в тестовій мережі Мумбаї. Тільки MetaMask має бути налаштований для роботи з тестовою мережею Mumbai.
Я розгорнув простий маркер під назвою "Зразок середнього токена (SMT)” у тестовій мережі Мумбаї з метою тестування, і цей кран надсилатиме 1 токен SMT (який можна змінити) з інтервалом у п’ять хвилин на адресу гаманця, що запитує.
Отже, давайте скомпілюємо контракт і розгорнемо його в тестовій мережі Мумбаї.
Для розгортання нам потрібні деякі токени testnet Matic. Кроки для компіляції та розгортання контракту за допомогою Remix також можна знайти у згаданій вище статті. Під час розгортання, tokenAddress
і ownerAddress
необхідно передати для ініціалізації контракту.
Кран має чотири методи:
send()
— Ця функція надсилає 1 SMT (за замовчуванням) на запитуючий гаманець. Слід зазначити, що відображення (nextRequestAt
) було оголошено про впровадження базового механізму обмеження ставок. Між двома наступними дзвінками з одного гаманця має бути щонайменше п’ять хвилин.setTokenAddress
(адреса) — цей метод може використовуватися власником/адміністратором крана для оновлення основної адреси маркера. Наприклад, якщо ми запускаємо нову версію токена (наприклад, SMTv2), ми можемо передати нову адресу токена цьому методу, щоб з крана почав капати новий токен замість старого. Це дещо схоже на «метод адаптера», який використовується в контрактах з можливістю оновлення.setFaucetDripAmount
(uint256) — за допомогою цього методу власник може збільшити або зменшити кількість маркерів, надісланих за запит. Значення за замовчуванням — 1 SMT.withdrawTokens
(адреса, uint256) - Власник крана може використовувати це для вилучення токенів зі смарт-контракту.
Нам потрібно вручну внести деякі токени в контракт крана, як тільки контракт буде розгорнуто.
Крім send()
метод, інші три функції може викликати лише власник крана. Тому onlyOwner
модифікатор передано.