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)

...

  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. When ERC20 unwrap event is seen, Oracle validates and calls fio.oracle unwraptokens which transfers FIO to Alice

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

...

  1. fio.oracle contract collects Oracle unwraptokens observations (consensus)

  2. When consensus is reached fio.oracle executes unwraptokens

...

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

...

  • 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