...
fio.wrapping: contract deployed to DEV server with V1 History (eventually will move to Hyperion)
oracle: daemon running on server
ERC-20: open zeppelin contracts on Ropsten testnet
TBD
...
approve vs transfer when wrapping
Tracks the discussion regarding the best way to transfer wfio. There are two options listed below. It is important to note that some kind of dApp will be needed on both sides of wrap/unwrap in either case. So, the question becomes what functionality belongs in the oracle and the contracts versus what belongs in the dApp. Constructed correctly, the difference between approve and transfer can be “hidden” from the end user--it would simply show up as an extra step in the dApp.
approve
Steps:
User (via a dApp) calls
wraptokens
The oracle executes a
mint
then anapprove
The user (via a dApp) executes a
transferFrom
The user adds wfio token to Metamask (or similar) holding their Ethereum key and now sees their wfio
Pros:
This is a more standard approach to transferring ERC20 tokens. For example, Uniswap first asks users to “approve” the transaction. Once approved a second “transferFrom” step happens.
Using approve gives an extra layer of security to the transfer process. In theory, if a mistake is made during approve, the approval can be modified (assuming the transferFrom has not occurred).
The user pays the fees for the
transferFrom
Cons:
Extra steps
transfer
Steps:
User (via a dApp) calls
wraptokens
TThe oracle executes a
mint
then atransfer
The user adds wfio token to Metamask (or similar) holding their Ethereum key and now sees their wfio