Open alvin-reyes opened 1 year ago
Added the components. We will need queuing to associate each job as a topic on NSQ and execution provider can consume the commands which will return the off-chain results.
Sharing the flow here from my discussion with Alison Haire (Ally, developerAlly)
1 - smart contract developer wants to "GET" a file on IPFS via http
2 - smart contract developer imports the oracle.sol
3 - smart contract developer calls the oracle.sol, passing the "URL", "GET" function and a execution provider ID. This will be saved on a []mapping.
4 - the execution provider reads the same contract and look to the provider list of request (on the []mapping). It'll then get the meta, execute, persist the result on IPFS, and return the CID
5 - the CID is persisted on the results meta of the oracle contract
6 - smart contract developer will get back the result CID from looking up the results mapping.
Proposal: Estuary FEVM Oracle Library and Execution Provider
I had a discussion with @kelindi on potentially creating an Oracle Service that will use Estuary as the execution provider.
Proposal
The idea is to create an Oracle library in Solidity that will run URL or Service request to Estuary.
Components:
Details or the design to follow