Руководство по тестированию смарт контрактов для поставщиков капитала в сетях Ethereum Sepolia и Arbitrum Sepolia
Для тестирования смарт контрактов для поставщиков капитала в сетях Ethereum Sepolia и Arbitrum Sepolia, нужно пройти несколько основных шагов:
- Получение SepoliaETH
- Получение stETH в сети Ethereum Sepolia
- Депозит stETH в контракт распределения наград в сeти Ethereum Sepolia
- Получение наград в токене MOR в сети Arbitrum Sepolia с использованием Layer Zero bridge
Ethereum Sepolia
- Контракт распределения наград: 0x98a8c301F3B168daCD0B054dc06A15c778F12D6e
- Контракт токена stETH: 0xEE3fc2711cBB17B26747048c177698398c9a95ce
Arbitrum Sepolia
- Контракт токена MOR: 0xe6d01d086a844a61641c75f1bca572e7aa70e154
- Для начала нам необходим установленный Metamask или другой кошелек web3. Нужно перейти к настройкам сети, которые по умолчанию обычно установлены на Ethereum, затем выбрать в качестве сети тестовую сеть Sepolia.
- Следующий шаг это депозит SepoliaETH, для этого вы можете использовать веб-сайты краны, такие как https://sepolia-faucet.pk910.de/# или https://sepoliafaucet.com/.
- Существует множество других кранов, которые можно легко найти, но обычно им требуется чтобы у вас был активный адрес в основной сети Ethereum.
Поскольку тестовый токен stETH официально не развернут в сети Sepolia, мы будем использовать копию этого токена с необходимыми для тестирования основными функциями.
Для этого необходимо перейти к контракту stETH и открыть вкладку “Contract”, затем нажать на “Write Contract”. Не забудьте подключить свой кошелек, в котором должен быть достаточный баланс нативного токена для оплаты комиссии.
Далее необходимо выбрать функцию mint()
, с помощью которой мы сможем отчеканить необходимое количество stETH.
В качестве параметров необходимо указать:
account_
: адрес на который будут зачислены токены;amount_
: количество токенов в WEI, вместо ETH. Для конвертации, вы можете использовать данный калькулятор https://eth-converter.com. Например, если вам необходиы 0,01 stETH, то эта сумма будет равняться 10000000000000000 WEI.
На примере выше, было отчеканено 100 stETH (отображение в WEI) на адрес 0xa4DB...2259.
После выполнения всех действий нажмите на кнопку “Write” и подтвердите транзакцию в кошельке.
Необходимо перейти к контракту stETH, перейти во вкладку “Contract”, затем “Read Contract”. Не забудьте подключить свой кошелек, в котором должен быть достаточный баланс нативного токена для оплаты комиссии.
Перейдите к функции balanceOf()
и в качестве параметра, в поле account_
, укажите ваш адрес и нажмите на кнопку "Query". В результате мы получим значение в WEI показывающее количество stETH на вашем адресе. На примере выше, у адреса 0xa4DB...2259 есть 1000 stETH отображенные в WEI.
Еще один способ проверки баланса, это добавление токена в ваш web3 кошелек. Узнать как это сделать в кошельке Metamask, вы можете из этого руководства. В качестве адреса токена stETH введите 0xEE3fc2711cBB17B26747048c177698398c9a95ce
.
Перейдите к контракту stETH, откройте сначала вкладку “Contract”, затем вкладку “Write Contract”. Не забудьте подключить свой кошелек, в котором должен быть достаточный баланс нативного токена для оплаты комиссии.
Перед внесением средств, нам необходимо предоставить разрешение контракту на отправку stETH с вашего кошелька. Для этого мы будем использовать функцию approve()
.
В качестве параметров укажите:
spender
: адрес контракта распределения наград -0x98a8c301F3B168daCD0B054dc06A15c778F12D6e
;amount
: сумму токенов на которые даете разрешение отображенную в WEI. Сумма должна равняться или быть больше той, которую вы планируете внести в контракт. Для удобства вычислений, вы можете воспользоваться калькулятором https://eth-converter.com.
После выполнения всех действий нажмите на кнопку “Write” и подтвердите транзакцию в кошельке.
Далее необходимо перейти к контракту распределения наград, и открыть вкладку “Contract”, а затем “Write as Proxy”. Не забудьте подключить свой кошелек, в котором должен быть достаточный баланс нативного токена для оплаты комиссии.
Необходимая для внесения stETH в контракт функция, называется stake()
.
В качестве параметров укажите:
poolId_
: идентификатор группы (пула); для тестирования создан пул с номером “0”;amount_
: сумма токенов в WEI. (10 stETH в данном примере).
После выполнения всех действий нажмите на кнопку “Write” и подтвердите транзакцию в кошельке.
Данная информация доступна через взаимодействие с контрактом распределения наград. Откройте вкладку “Contract”, а затем “Read as Proxy”. Не забудьте подключить свой кошелек, в котором должен быть достаточный баланс нативного токена для оплаты комиссии.
Для нашей цели, мы будем использовать две функции. Первая показывает количество токенов MOR полученных в качестве награды за депозит stETH в контракт. Награды начисляются каждую секунду.
Выберите функцию getCurrentUserReward
и в качестве параметров укажите:
poolId_
номер пула, в нашем случае это "0";user_
адрес вашего кошелька.
Для отображения информации, нажмите на кнопку "Query".
Как результат, вы увидите значение показывающее количество начисленных токенов в качестве награды. Отображение токенов в WEI.
Вторая функция usersData()
покажет сумму вашего депозита. Параметры аналогичны первой функции.
Необходимо перейти к контракту распределения наград, вкладку “Contract”, а затем вкладку “Write as Proxy”. Не забудьте подключить свой кошелек, в котором должен быть достаточный баланс нативного токена для оплаты комиссии.
Выберите функцию withdraw()
и укажите в качестве параметров:
poolId_
: номер пула, в нашем случае это "0";amount_
: сумму токенов указанную в WEI.
После выполнения всех действий нажмите на кнопку “Write” и подтвердите транзакцию в кошельке.
Для этого нам снова необходим контракт распределения наград. Нужная функция находится во вкладке “Contract” и “Write as Proxy”. Не забудьте подключить свой кошелек, в котором должен быть достаточный баланс нативного токена для оплаты комиссии.
Чеканка и получение токенов MOR осуществляется в сети Arbitrum Sepolia, поэтому нам необходимо воспользоваться мостом Layer Zero.
Всё что необходимо сделать, это использовать функцию claim()
и указать следующие параметры:
claim
: тут указывается сумма нативных токенов в сети-отправителе, которые будут использованы в качестве комиссии за чеканку токенов в сети Arbitrum Sepolia. Вы можете указать бОльшую сумму, разница будет вам возвращена;poolId_
: номер пула, в нашем случае это "0";user_
: адрес в сети Arbitrum Sepolia на который будут зачислены токены.
После выполнения всех действий нажмите на кнопку “Write” и подтвердите транзакцию в кошельке.
Поздравление, ваша награда в виде токенов MOR теперь в сети Arbitrum Sepolia. Вы можете импортировать адрес токена 0xe6D01D086a844a61641C75f1BCA572e7aa70e154
в ваш кошелек Мetamask используя это руководство или проверить баланс через смарт контракт по примеру с токеном stETH.
- Для начала нам необходим установленный Metamask или другой кошелек web3. Затем необходимо добавить сеть Arbitrum Sepolia вручную или использовать сайт Chainlist где нажать на кнопку “Add to Metamask”.
- Следующий шаг это депозит Arbitrum Sepolia ETH, для этого вы можете использовать веб-сайты краны, такие как ttps://faucet.quicknode.com/arbitrum/sepolia или https://faucet.triangleplatform.com/arbitrum/sepolia
Если вам интересно более детальное руководство, с описанием функций контрактов, вы можете его найти по ссылке