fio.oracle Contract - Oracles and Fees

Misc. Requirements

Questions

Answers

Questions

Answers

Is there a minimum amount of FIO for wrapping or unwrapping?

  • Since the Ethereum fee is embedded in the wrapping fee, there is little risk of users abusing the system by wrapping a small number of coins.

  • Decision: No minimum on wrap.

Is there a maximum?

  • Right now we allow users to wrap their entire balance.

  • Decision: No maximum on wrap.

BPs: Is there an easy way to go from FIO to Eth?

  • Make it clear that this is on the BPs.

Why do we increase RAM on Oracle-specific actions (since they are BPs with unlimited RAM)?

  • Contract is not increasing RAM on any Oracle specific actions

What should we set wrap RAM to?

  • 512 is currently set

Requirement: Distributing Fees

Approach #1: Fee claim action:

  • We create a call similar to that of bpclaim, where the balance is pooled and distributed to each oracle. This will require an oracle to call this action or risk losing their distributed fees.

  • What happens if a BP does not claim within 24 hours?

Approach #2: Fees distributed during actions (Preferred)

  • Each action involving fees would need to iterate through the registered oracle's table and send their share of the oracle fee directly to them.

Decision: Discussed with Pawel and decided we would use approach #2

Table Structures

oracleledger

oracleledger keeps track of all wrapping transactions and logs the actor performing the request. This will be the same table used in both token and domain wrapping transactions.

TBD: ( type could be added in new iterations to allow for quick and simple index lookups based on status. )

Oracles

oracles tracks registered oracles used during the validation of unwrapping of NFT/tokens. This table also stores fee information used during the wrapping process.

oraclefees

The type oraclefees is defined as:

oracle_votes

The oracle_votes table is used during unwrapping operations. The registered oracles will call unwraptokens and either emplace a new record or modify the record if the oracle is not the first registered oracle to vote on the obt_it. Once an oracle calls this action and 100% consensus is reached, the unwrapping will be approved and funds will be transferred.