If you are auditing a protocol or planning your own project to work with different EVM and non-EVM networks, you should be aware that user wallet addresses may have different format standards.
Let's find out more about the problems you might run into!
First of all, let's take a look at the Axelar bug report from Code4rena. Axelar is supposed to support different chains, not just EVM.
However, there was a mapping of whitelisted senders that accepted the value of sender account as address data type.
There was also a special library function to convert strings to address types. And it works fine on EVM networks.
But non-EVM networks may have different user/wallet addresses. So most of transactions to them will fail or reverted!
Let's look at some examples.
A Cosmos wallet address is a string of alphanumeric characters that serves as an identifier. In the case of a Cosmos wallet address, it begins with “cosmos” and consists of 45 characters
Here’s an example of a Cosmos wallet address:
cosmos10wljxpl03053h9690apmyeakly3ylhejxgve8g
A Tron (TRX TRC20) wallet address will have the following format:
TBia4uHnb3oSSZm5isP284cA7Np1v15Vhi
Polkadot (and Substrate) use the SS58 address format. This is a broad "meta-format" designed to handle many different cryptographic schemes and chains.
Example:
1FRMM8PEiWXYax7rpS6X4XZX1aAAxSWx1CrKTyrVYhV24fg
Finally, Axelar solved this problem by saving addresses as strings and bytes.
Read the full report here:
Link: https://code4rena.com/reports/2023-07-axelar#m-09-interchainproposalexecutorsol-doesnt-support-non-evm-address-as-caller-or-sender#evm
#wallet
#nonevm
Completely free courses
Learn more about the blockchain world
Free education videos
by RareSkills
by Jeiwan
by RareSkills
by RareSkills
by Andreas M. Antonopoulos, Gavin Wood
by Micah Dameron
Compare execution layer differences between chains
Dive deep into the storage of any contract