Wrapping Architecture Overview
FIO is rolling out two wrapping features in the next release: FIO Token wrapping and FIO Domain wrapping. There is some overlap in the applications (on the FIO Chain and the fio.oracle middleware) but some differences (token wraps to the fio.erc20 contract on Ethereum, while domains wrap to the fio.erc721 contract on Polygon).
Wrapping applications/contracts
The wrapping architecture consists of 5 applications/contracts:
FIO Chain contract (Casey)
The same fio.oracle contract handles both the domain and token wrapping and unwrapping.
FIP-17a token wrapping: fips/fip-0017a.md at master · fioprotocol/fips
FIP-17b domain wrapping: fips/fip-0017b.md at master · fioprotocol/fips
2. ERC20 contract on the Ethereum chain (Adam / Bill)
Spec of endpoints (similar to a FIP spec): fio.erc20 - wFIO Contract Specification
Github: GitHub - fioprotocol/fio.erc20
Devnet deployed on Ropsten testnet
3. ERC721 contract on the Polygon chain (Adam / Bill)
Spec of endpoints (similar to a FIP spec): fio.erc721 - FIONFT Contract Specification
Github: GitHub - fioprotocol/fio.erc721
Devnet deployed on Polygon Mumbai testnet
4. Oracle middleware
Spec: Oracle middleware
Github: GitHub - fioprotocol/fio.oracle: Oracle for moving tokens and code to and from the FIO chain
5. Wrapping Status Page (Admin UI)
This application is used to track wrap and unwrap transactions for the BPs and other Admins. There is not a lot of error checking in the oracle to monitor transactions that fail. The Status page is being built to help monitor transactions so appropriate action can be taken.
Spec: FIO Wrapping Status Page
Github:
Development site: https://fio-wrap-status-page.vercel.app
Devnet
Instructions for the Wrapping Devnet are here: https://fioprotocol.atlassian.net/wiki/spaces/FO/pages/349569342
(Note that this is in development, so check with Eric to make sure it is working before testing it out.)