fio.oracle Contract - Oracles and Fees
Misc. Requirements
Questions | Answers |
---|---|
Is there a minimum amount of FIO for wrapping or unwrapping? |
|
Is there a maximum? |
|
BPs: Is there an easy way to go from FIO to Eth? |
|
Why do we increase RAM on Oracle-specific actions (since they are BPs with unlimited RAM)? |
|
What should we set wrap RAM to? |
|
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.