Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

Todo

  • Need to create a dapp to interact with erc20 contract. Currently using: https://oneclickdapp.com/matrix-second

    • The complexity of this depends on how we structure the ERC20 contract. If we update the contract with all of the fields needed (e.g., passing in a FIO Address to approve) we may be able to use a simple contract explorer.

  • Decide on how to pass in FIO Address (see below)

Use case

Unwrap FIO Token:

  1. Alice (dApp) executes ERC20 unwrap sending in a hashed FIO Address

  2. ERC20 calls burn from Alice’s account

  3. Oracle monitors unwrap

  4. Oracle calls fio.oracle unwraptokens which transfers FIO to Alice

    1. TBD: Oracle passes in FIO Address or FIO Pub Key?

...

Diagram link: https://app.diagrams.net/#G1ETfA3K6VTa-rhqcH7gJmRsFUIiGS2kDn

Discussion

Passing FIO Address into approve

  • Discussed using (hashed) FIO Address versus FIO Public Key.

    • A hashed address will generally be smaller and is a known fixed size.

    • To use a FIO Pub Key we would need to convert the pub key to a raw ecc pubkey so we can fit it in 32 bytes, otherwise it's 56 -> padded to 64 and we end up adding even more gas

    • The “standard” in FIO is to use FIO Pub Key

    • The oracle does a validation check on the FIO Address

    • Decision: We will pass in a (hashed) FIO Address to the ERC20 contract

    • TBD: Does the oracle pass a FIO pub key into unwrap tokens?

  • How to pass in FIO Address