Function X May Hash Out

Function X Foundation
Function X
Published in
5 min readMay 31, 2022

EVM development updates

Finally the long awaited EVM-Testnet upgrade with new features and address migration tool is now ready!

TLDR

With this upgrade, now the f(x)Core blockchain can enable

  • Smart contracts
  • Allow users to migrate their wallets to a new type of account that has both fx and 0x wallet types linked. Users will be able to use and view the same funds in both fx and 0x addresses
  • EVM transaction type supports EIP1559 fee calculation rules

Timeline for upgrade:

Thursday 19-May: The team launched a governance proposal on Testnet (this took 2 days to complete)

Saturday 21-May: The proposal passed. Every validator on the network has to upgrade their code thereafter

Tuesday 24-May: Validators who have not upgraded their code will not be able to participate in consensus with the new changes implemented. This is a hard fork of the blockchain.

The feature upgrades and changes will include:

  • Support for new EVM logic
  • EVM transaction type supports EIP1559 fee calculation rules
  • Support account migration
  • Support WFX ERC20, which is wrapped FX tokens supported on f(x) EVM.
  • Support cross-chain functionalities by calling contracts
  • fxcored CLI will support adding of accounts with eth_secp 256k1
  • Deploy ETH PUNDIX Token, BSC PURSE Token, Tron USDJ, polygon LINK Token to f(x)EVM

Additionally, these are the changes to the voting governance module parameters:

For more information/details, you may either refer to:

What does EVM compatibility mean to a user?

EVM compatibility in essence means enabling smart contracts on the blockchain.

Why are smart contracts so powerful?

Smart contracts are powerful not because they can help you automate certain processes or because they are immutable once deployed on the blockchain (there are ways to upgrade your smart contract and do a migration but that’s a topic for another time).

Smart contracts are powerful because their operation is governed by coding. It can essentially become a CUSTODIAL WALLET in a decentralized and trustless system. Users can send ERC20 tokens or possibly other native assets to the smart contract. The smart contract can then disburse the funds according to the code written in it or do something once funds are received.

How do smart contracts enable Defi ?

That’s where the boom of Defi (decentralized finance) started. With smart contracts replacing the roles of the third parties like Financial institutions, the narrative of traditional finance is rewritten. Now writing a few lines of code into a smart contract, the user can carry out certain financial operations like lending and borrowing, swapping, even insurance.

With regards to swapping, instead of the traditional way of exchanging 2 currencies peer to peer with a middleman like a brokerage or centralized crypto exchanges like Binance or Coinbase aiding with the price discovery process, an innovative idea was born to trade against a pool of currencies. This was to circumvent the technical limitations of a blockchain like block time. Voila, the concept of a DEX was born with Uniswap leading the way.

Can Defi completely replace traditional finance?

Not really. Traditional financial service providers have to comply with the local regulations because they provide their clients the asset custody services. Some laws are set for consumer protections. Decentralized finance activities are governed by smart contracts among cross-border peer-to-peer networks. The law and regulation haven’t been clearly defined and enforced. Users should be vigilant when engaging with decentralized finance activities.

Also, there are certainly limitations to the scalability of blockchain amongst other things. Every block can only hold so much data and hence there’s a ceiling to how much code/data the developer can write into a smart contract. Therefore, very complex instruments or the need to carry out complicated KYC on users cannot be written into a smart contract.

But who knows if technology improves, all these technological limits might be a thing of the past.

f(x)Core Testnet Account Migration Guide (using f(x)Core CLI)

The FULL ACCOUNT MIGRATION GUIDE can be found here.

This upgrade introduces a new address which will enable ethereum compatibility.

Things to note❗:

  1. This guide can be done only on f(x)Core Testnet.
  2. The account migration for now can only be done through the f(x)Core CLI. f(x)Wallet for now does not have this feature.
  3. Ensure the new EVM upgrade is done.
  4. Ensure you have f(x)Core command line interface installed.
  5. Your address should not be bonded to any validator (Address should not have a prior successful create-validator command).

Understand the accounts in f(x)Core after EVM testnet upgrade

Accounts in f(x)Core can be represented in both Bech32 and hex format for Ethereum’s Web3 tooling compatibility.

  • The Bech32 format is the default format for Cosmos-SDK queries and transactions through CLI and REST clients.
  • Address (Bech32) with the prefix fx eg: fx1xzyws0l8p8alt6v7tztvqlph8r22lhn4femgr7
  • Address (EIP55 Hex) with the prefix 0x eg: 0x3088e83FE709fBf5e99e5896C07c3738d4aFDE75
  • The hex format on the other hand, is the Ethereum common.Address representation of a Cosmos sdk.AccAddress
  • Compressed Public Key (Bech32): (used to encrypt data) fxpub17weu6qepqgca6ed53q7frh8ftcr6c0kucfhm0yuat4sxx4hc3u2y7pydcwwyc65xl7f

What’s next for Function X EVM development?

EVM compatibility enables smart contracts and unlocks the potential of decentralized apps (Dapps). This would unlock the potential of Defi, Gamefi, NFTs…This next stage in development will definitely be a huge boost to the Function X ecosystem.

Additionally, if you would like to build on f(x)Core or apply for our Grants Program, you may do so here.

Thank you for reading May Hash Out, we look forward to sharing more exciting updates and progress. If you have any questions or concerns regarding EVM integration in f(x)Core, you can always reach our support team on Function X Forum.

--

--