Table of Contents |
---|
...
Functionality | |
---|---|
Alice (via dApp) called |
|
Oracle monitors |
TBD: Both methods require a history node so we should reach out to BPs with the requirements and ask which method they prefer Finality Check:
|
Oracle validates | See Exception handling below |
Oracle executes | wrap(ethaddress, FIO (SUF) amount, obtid);
|
Oracle validates |
|
Once all Oracles have submitted | TBD: Does the oracle do any kind of monitoring or validation of the overall transaction (post consensus?) TBD: What happens if the Oracle does not have enough ETH to cover the transaction? Does it roll back? Does it stay in the queue? |
Exception handling
Error condition | Trigger | Type | fields:name | fields:value | Error message | Oracle Action |
---|---|---|---|---|---|---|
Invalid chain | Chain passed to | Oracle triggers TBD: How do other oracle get notified when a transaction is getting unwound? TBD: What if one oracle approves the transaction and another oracle rejects? | ||||
Invalid Ethereum address | Public address passed to | Oracle triggers | ||||
...
Functionality | |
---|---|
Alice (dApp) executes | unwrap(fio address, amount);
|
Oracle monitors |
|
Oracle validates | Validation includes:
|
If exceptions are found, Oracle takes action to unwind transaction | See Exception handling below |
Registered Oracles call | fio.oracle contract Actions:
|
Oracle validates |
|
Once all Oracles have submitted | TBD: Does the oracle do any kind of monitoring or validation of the overall transaction (post consensus?) |
Exception handling
Error condition | Trigger | Type | fields:name | fields:value | Error message | Oracle Action |
---|---|---|---|---|---|---|
Invalid FIO Address | FIO Address passed in with ERC-20 is not valid or does not exist | Oracle triggers a ERC20
| ||||