MixWallet на смартконтракте в сети Tron
В этой статье хотелось бы рассказать о рабочем анонимном кошельке на базе смартконтракта в сети Tron. Работает с TRX и USDT.
Все операции и скрины буду прилагать с тестнета, так как там проще. Разницы в коде между тестнетом и майнетом нет. Это один и тот же смартконтракт.
Как получить usdt или trx в тестнете NILE Testnet можете прочитать тут. Можете обкатать смартконтракт MixWallet сначала в тестнете NILE.
Смартконтракт представляет собой кошелек, где каждый пользователь может создать внутри смартконтракта неограниченное множество внутрених адресов вида 0x9bc103a989f6b553b704ae0433f0702b080b1742cae0080ac80a6a7ccbea66a4
Причем создавая новый адрес, старый продолжает работать.
Пользователь может перемещать свои активы либо на своем исходном кошельке tron но между внутренними адресами, либо может переместить по внутреннему адресу на другой кошелек tron. Далее пользователь может вывести там сумму частями или полностью. При некой толике фантазии можно перемешать свои активы и запутать стороннего наблюдателя очень сильно.
Смартконтракт при создании учетной записи адреса (пополнении баланса) потребляет х2 газа сети. Поэтому советую пополнять на сумму не менее 1 trx или 1 usdt.
При работе смартконтракт потребляет энергию сети Tron, стоит это учитывать.
1. Аппрувы
При работе с usdt нужно дать апрув на адресе смартконтракта usdt.
Для этого идем в смартконтракт usdt по ссылкам ниже, и далее как на картинке, вписывая адрес смартконтракта MixWalet (майнет/тестнет соответственно, для смарта usdt майнет/тестнет).
Смартконтракт usdt для тестнет сети Смартконтракт usdt для майнет сети
Адрес смартконтракта MixWallet тестнет сети CNPtcMrEouDSBcg9tuf4FSQEm3auXknW5
Адрес смартконтракта MixWallet майнет сети TJbdFcoSYyA3gN64AuCeSkqwdJN2Kcp91g
Поговорим о управлении смартконтрактом MixWallet.
2. Комиссии за использование смартконтракта
Управляется смартконтракт через тронскан по ссылкам в начале статьи.
Например для получения текущих значений комисий идем по кнопкам как на рисунке:
minimum - минимальная комиссия
maximum - максимальная комиссия
Как формируются комиссии? Все комиссии работают только на вывод актива со смартконтракта. Перемещение активов внутри смартконтракта не облагается никакими комиссиями.
При выводе суммы актива накладывается процентная комиссия которая не может быть меньше минимальной или больше максимальной комиссии. При этом, если на счете у пользователя находится обьем актива равный бонусному депозиту - то процентная комиссия уменьшается вдвое. Напомню, все комиссии применимы только при выводе актива.
3. Пополнение смартконтракта MixWallet
Внесение актива происходит через кнопки Deposit_TRX или Deposit_USDT
Сумма пополнения указывается в 10-6 доле.
например нам нужно положить в кошелек MixWallet 100 TRX. Для этого в поле Amount token to Send_unit256 вводим 100000000 (100 и 6ть нулей), поле recipientHashAddress_bytes32 можем оставить пустым, и тогда внесенный актив упадет на наш акаунт, либо можем ввести внутрений адрес того кошелька, куда хотим сделать перевод, например 0x8940294cce8e0b90454e536288531a9a5316cb88f04dcacbea3ccece337a3186
и тогда внесенная сумма TRX или USDT упадет на внутренний счет адреса назначения.
Так выглядит транзакция внесения 100 trx на свой адрес в тронскане.
Так выглядит транзакция внесения 100 trx на внутренний адрес (свой/чужой) в тронскане.
Таким образом при начале использования советую внести несколько трон на внутренний адрес смартконтракта (для регистрации пользователя) и создать себе несколько внутренних адресов.
4. Внутренние адреса для переводов активов
Посмотреть все свои адреса можно по кнопке MyHashAddress
5. Баланс внутри смартконтракта MixWallet
Проверить свой баланс можно по кнопке CheckBalance
trxBalance: 1 - текущий баланс trx на адресе
usdtBalance: 12252 - текущий баланс usdt на адресе
Эти балансы вы можете перемещать внутри смартконтракта полностью, и не платить комиссий.
hashAddress: 0x9bc103a989...a6a7ccbea66a4 - последний созданый вами хеш адрес для приема переводов
availableWithdrawTrxAmount: 0 -
availableWithdrawUsdtAmount: 12152 - значения актива, которые вы можете вывести на свой адрес трон из смартконтракта (с учетом комиссий)
usdtCommission: 100 - текущие комиссии на ваш баланс (применяются при выводе актива на адрес трон)
Создать +1 хеш-адрес можно по кнопке CreateHashAddress.
6. Перевод активов между внутренними адресами смартконтракта MixWallet
Кнопки TransferTRX_ToHashAddress и TransferUSDT_ToHashAddress позволяют переводить свой актив внутри смартконтракта как в пределах одного адреса трон на заранее созданый вами хешадрес смартконтракта, так и на другой адрес трон на его хеш адрес. На картинке перевожу 100 (10-6) трон на адрес 0xc4b3db3806111a8cbbbcef9b7bd89463e80bf03d20337d7ed723569427064630
Так выглядит транзакция в тронскане по переводу 100 trx на внутрений адрес 0x9bc103a989f6b553b704ae0433f0702b080b1742cae0080ac80a6a7ccbea66a4
С условием того, что мы не знаем кому принадлежит внутрений адрес 0x9bc103a989f6b553b704ae0433f0702b080b1742cae0080ac80a6a7ccbea66a4, сказать кому мы перевели деньги нет возможности.
Транзакция по переводу 100 usdt на адрес 0x9bc103a989f6b553b704ae0433f0702b080b1742cae0080ac80a6a7ccbea66a4 выглядит в тронскане так-же.
Надо дополнить: по сути при переводе usdt или trx на внутренние адреса, сам актив внутри смартконтракта не перемещается, меняется только запись во внутреннем маппинге.
7. Вывод активов со смартконтракта MixWallet на свой кошелек Tron
Вывод актива с баланса смартконтракта на адрес вашего трон кошелька происходит по кнопкам Withdraw_TRX или Withdraw_USDT.
Причем выводится на тот кошелек, с которого подписываете эту транзакцию.
На картинке вывожу 100 trx (10-6) на свой трон адрес.
В сумму баланса на вывод нужно вводить сумму актива с учетом комиссии, ее мы обсуждали выше, в меню баланса CheckBalance.
Так выглядит транзакция вывода 100 trx на свой адрес tron в тронскане.
Так выглядит транзакция вывода 100 usdt на свой адрес tron в тронскане.