Description
1. What did you do?
- I would like to create a clone of Tornado Cash (https://tornado.cash/) on TRON
- Therefore I needed to deploy a ZK SNARK Verifier Contract (which performs some calls to precompiled ECDSA contracts) on TRON Blockchain:
https://tronscan.io/#/contract/TAvhRwrobjBsNLpKpTTsNfSVMAkELzuufB
2. What did you expect to see?
-
function verifyProof(bytes memory proof, uint256[6] memory input) public view returns (bool)
to be executed without errors like in any other EVM compatible Network -
Test Parameters (for a simple test which should return the value false):
proof = 0x0c3f55fb97b02d2c507f8c5b6b87b8f8872939f07959f0f671bd83c767d42ca52e718ff1621ebe51cc7c831d39f5a3da25d1cd7db0b4d9e49d216762a3385f14273b6f3daf5b6f3e3ed77c0508117f3d651ddd6e8ac4f2b350dfca929d005504132acfbef922dff2af5a98e4f0d2115fbd8af99a30ebe18420b85ee2961b6dc905a114775273fcccfea094fa06ca9e0325b71bae23c6830f0a2c10737a5543f52072054a099fe527a0941005a44e8d0b055aa4065df5d90bd3966f242e5ad2ec0a9227d4ecdf1fbbfde91b96110e2259fba35fda009e3eaf2126af0d4d242c912e70a7083394fee6a6bc05ebd0d78f45621caa1053bbd2c1f0efde16e90cc59f
input = ["0","0","0","0","0","0"]
3. What did you see instead?
-
When executing via TronScan:
class org.tron.core.vm.program.Program$OutOfTimeException : CPU timeout for 'SWAP1' operation executing -
When executing via EtherScan:
a valid response: false
To sum it up it seems that it is not possible to call this kind of contracts (even if there are calls to low energy cosuming precompiled ECDSA contracts within the contract) due to harsh timeout restrictions on TRON