Разворачиваем простой смартконтракт в TRON
Данная статья разработана и подготовлена в телеграмм канале Крипто Парень. Подписывайся на мой телеграмм канал, там много полезной и интересной информации по криптовалютам.
Предлагаю вам услуги своего бота, по заправке газом в сети TRC20.
Информацию по использованию и аренде газа в сети TRC20 можешь найти в моей группе TRON TRX SELL ENERGY
Сегодня хотелось бы рассказать, как в троне развернуть простейший смартконтракт.
Функционал данного смартконтракта будет:
Пополнение баланса смартконтракта, вывод баланса смартконтракта. Вывести баланс смартконтракта может только его владелец.
Я уже развернул свой смартконтракт: https://nile.tronscan.org/#/contract/TBCXV14wF2Sek9eC63hgxhe6jo2fqLGS65
И потестировал выводы с него от лица владельца-создателя: https://nile.tronscan.org/#/transaction/833c181f09fbabaf17500483d7a4bc38e3c6c3e4bbad6573d4ef0e4920c84d4a
А это транзакция вывода с рандомного кошелька: https://nile.tronscan.org/#/transaction/5f7d94635858f965dacec6056b771d325f315f981483f1199a80741e864c549e
Как видите оно не проходит, вывести средства может только владелец контракта!
Это тестнет сети TRON. Nile тестнет, как им пользоваться писал тут. В мейнете так же все работает!
Давайте по шагам:
1. Получение тестового TRX на свой кошелек
Переходим в веб приложение тронлинк, в верхней части (как показано на рисунке), переключаем Tron Mainnet на Tron Nile Testnet.
Далее идем в КРАН, и кидаем себе на адрес любые токены: TRX. Главное помните, тестнет привязан к IP адресу вашего пк, если хотите стать тест-миллионером, смените свой IP адрес, например через запрещенный сервис ВПН. Так же в тестнете есть свой тронскан.
Далее с тест токенами, можете развлекаться как хотите, стейкать, открывать смарты, переводить.. Короче все то, на что у вас в майнете трона не хватало реальных денег!
2. Пишем код смартконтракта TRON на языке solidity
У меня мой смартконтракт на solidity 0.5.10, это важно!
Чтобы далеко не ходить - прилагаю мой код, можете поиграться.
Скачать код можно тут, либо скопипастить ниже.
+++++++++++++++++++++++++++++++++++++++++++
contract TronWallet {
address owner;
constructor() public {
owner = msg.sender;
}
// Депозит TRX на контракт
function deposit() public payable {}
// Вывод средств
function withdraw(address payable recipient, uint amount) public {
require(msg.sender == owner, "Only owner can withdraw");
require(address(this).balance >= amount, "Insufficient balance");
recipient.transfer(amount);
}
// Получение баланса контракта
function getBalance() public view returns (uint) {
return address(this).balance;
}
}
+++++++++++++++++++++++++++++++++++++++++++
Код между плюсами указан если что.
Сохраняете данный код a файл TronWallet.sol
3. Деплоим код смартконтракта в тестнет TRON
Для этого идем сюда: https://nile.tronscan.org/#/contracts/contract-compiler
и просто загружаем код нашего смартконтракта (сохраненный ранее файл TronWallet.sol) в форму на тронскане.
В окне выбираем версию нашего solidity 0.5.10 (2)
Ваша версия указана в коде контракта (3)
Завершающий этап - кнопка Deploy (5)
Далее контракт деплоится, мы его подписываем и на этом этапе платим комиссию в TRX. В тестнете это стоило мне 23 TRX.
В конце этого процесса, вам выдается ссылка на ваш контракт.
4. Послесловие
В контракте от лица владельца можно изменять потребление газа (комиссии сети) тут:
Пополнять смартконтракт можно простым переводом на него, по его адресу.
Выводить (снимать) средства можно в этом меню: https://nile.tronscan.org/#/contract/TBCXV14wF2Sek9eC63hgxhe6jo2fqLGS65/code
По меню и управлению смартконтрактом с тронскана:
Заходим в меню как показано на скрине(0)
Так как пополнить смартконтрат можно простым переводом на него TRX, то нас интересует только вывод с него - меню(1)
В поле(2) вводим адрес получателя средств
В поле(3) вводим сумму. Если хотим вывести 100 TRX то вводим 100000000 (100 и 6ть нулей)
Либо вводим в поле(3) 100, но в меню(4) выбираем 10в6 степени.
Нажимаем кнопочку Send.
Вот и все. Ну и на адресе владельца контракта должен быть TRX для оплаты газа.