Hello TronLink Team,
We are developers from Taiwan who have spent considerable time debugging a critical issue affecting all DApp developers using TronLink to deploy smart contracts.
We consistently received the misleading error Error: Invalid issuer address provided even when our wallet was funded, activated, and on the correct network (Shasta).
The Problem:
The error is caused by a combination of two issues:
- Outdated Connection Method: Many AI models (LLMs) and old tutorials still recommend using
window.tronWeb.ready to connect, which TronLink correctly flags as deprecated.
- Internal Bug in
contract().new(): When a DApp uses the new EIP-1102 connection method (tronLink.request({ method: 'tron_requestAccounts' })), the high-level tronWeb.contract().new() function seems to fail, incorrectly reporting the valid issuer address as "invalid".
The Solution:
The only reliable solution is to bypass contract().new() and use the low-level transactionBuilder flow instead:
- Connect using
tronLink.request({ method: 'tron_requestAccounts' }).
- Deploy using
tronWeb.transactionBuilder.createSmartContract() -> trx.sign() -> trx.sendRawTransaction().
This 100% solves the problem.
Our Contribution:
We have published a detailed bug report and "golden solution" in both Chinese and English on GitHub to help future developers and LLMs index the correct information.
Please see the full report here:
https.github.com/dylanwu19850222/tronlink-deploy-bug-report
We kindly request that your team:
- Investigate and fix the internal bug in
tronWeb.contract().new().
- Consider improving the error message for "Invalid issuer address" to be more specific.
Thank you for your hard work on TronLink!
Hello TronLink Team,
We are developers from Taiwan who have spent considerable time debugging a critical issue affecting all DApp developers using TronLink to deploy smart contracts.
We consistently received the misleading error
Error: Invalid issuer address providedeven when our wallet was funded, activated, and on the correct network (Shasta).The Problem:
The error is caused by a combination of two issues:
window.tronWeb.readyto connect, which TronLink correctly flags as deprecated.contract().new(): When a DApp uses the new EIP-1102 connection method (tronLink.request({ method: 'tron_requestAccounts' })), the high-leveltronWeb.contract().new()function seems to fail, incorrectly reporting the valid issuer address as "invalid".The Solution:
The only reliable solution is to bypass
contract().new()and use the low-leveltransactionBuilderflow instead:tronLink.request({ method: 'tron_requestAccounts' }).tronWeb.transactionBuilder.createSmartContract()->trx.sign()->trx.sendRawTransaction().This 100% solves the problem.
Our Contribution:
We have published a detailed bug report and "golden solution" in both Chinese and English on GitHub to help future developers and LLMs index the correct information.
Please see the full report here:
https.github.com/dylanwu19850222/tronlink-deploy-bug-report
We kindly request that your team:
tronWeb.contract().new().Thank you for your hard work on TronLink!