Как проверить приложенный депозит TRC-10 в контракте TRON
Единицы TRC-10 могут прийти как нативное вложение транзакции. Если контракт зачисляет количество без проверки ID токена, через этот путь можно внести другой актив.
Прочитайте поля вложения TVM
В контракте для компилятора Solidity от TRON храните acceptedToken типа trcToken и учётный mapping credit. В примере принимается положительная сумма именно указанного TRC-10, а лишний TRX отклоняется.
function deposit() external payable {
require(msg.tokenid == acceptedToken, "asset");
require(msg.tokenvalue > 0, "empty");
require(msg.value == 0, "unexpected TRX");
credit[msg.sender] += msg.tokenvalue;
}
Проверьте сценарий с посторонним токеном
В локальном тесте приложите десять единиц другого ID и проверьте неизменность credit. Затем повторите с десятью единицами настроенного токена и сверьте прирост. Депозит TRC-20 поступает через вызовы контракта и требует другого пути интеграции. Проверка события TRC-20 не охватывает это нативное вложение TRC-10.