The tEVM is generally compatible with any smart contract written in Solidity. Care must be taken to validate throughout the smart contract development life cycle that the contract is functioning as expected. It is always recommended to thoroughly test any contract on the Telos testnet before deploying to the Telos mainnet.
Due to the nature of the Telos EVM's implementation, certain versions of Solidity may not always be supported. Currently all versions should be supported, but version > 0.7.0 is recommended.
As verified by Sentnl's Audit all gas values are consistent with gETH. Explicit effort was made to align the tEVM with EIP-2929 in order to conform with Gas costs. In addition with the Audit verification all Open-Zeppelin tests have been run ensuring EVM compatibility.
Currently supported JSON RPC methods:
parity_pendingTransactions // No-op
eth_getBalanceHuman // custom, returns the float balance instead of wei
// trace APIs only support the 'trace' type and not 'vmTrace' or 'stateDiff'
For more on EVM compatibility, click here.