Add TON support
Support the Telegram Open Network (TON) in the following sequences
- ZRC20 deposit and withdraw support for TON token
- ZRC20
depositAndCall()from TON network with TON token - ZRC20 deposit/depositAndCall/withdraw for TON fungible token such as Jetton
- ZRC20 withdrawAndCall() -- to be researched further how this would look like, as cross contract call on TON is asynchronous.
Reference design is the Solana support: https://github.com/zeta-chain/node/issues/2506 Particularly the Gateway contract on TON can reference the solana program https://github.com/zeta-chain/protocol-contracts-solana The Gateway contract will need to verify the TSS ECDSA signature in the contract itself, and associated guards against replay on the same chain (via nonce), replay on other chains (via chainid), and basic commitment in the signature against message.
Is your feature request related to a problem? Please describe. No
Describe the solution you'd like Omnichain support for TON assets and remote call.
Describe alternatives you've considered Alternative would be to
- not support TON
Motivation and Context TON is an emerging blockchain that is currently TOP 10 by market capitalization. It's also a heterogenous chain which would benefit much from the abstraction zetachain provides.
Implementation
### Tasks
- [ ] https://github.com/zeta-chain/node/issues/2716
Added EPIC task here: https://github.com/zeta-chain/node/issues/2549
Would be good to look in the differences with Solana
Linking https://github.com/zeta-chain/node/issues/2716. Please note that
ZRC20 deposit/depositAndCall/withdraw for TON fungible token such as Jetton
Is not included in the implementation scope as of now. TON contracts are upgradable, so we can improve this is the future.
Please also note each jetton type of each account is a separate smart contract instance
Closing this one, we can use the Jetton epic for the next improvement