-
Notifications
You must be signed in to change notification settings - Fork 40
move from IPC to HTTP #371
Description
Problem
We currently rely on #[tauri::command] to define endpoints to communicate between the UI and the desktop app.
This heavily couples all of our components to tauri, and makes it difficult to work with other layers. e.g.: the app doesn't work on a browser (even though it is running on localhost:1420), largely because of this. It's also impossible to communicate with this endpoints from outside the JS in the webview.
Solution
Create a new iron_http, to live side by side with iron_ws. the root endpoint should behave as an ethereum RPC, and an additional /iron/ namespace should include endpoints for dealing with all the things that are currently tauri commands
the app should now launch both a WS and an HTTP server on boot. Both can be used as an Ethereum provider
Checklist
- Create
iron-httpcrate Add iron-http crate with initial Axum setup #372 - Have root endpoint behave as an Ethereum RPC Correctly respond to JSON-RPC requests on
iron-http#377 - Add
/iron/namespace endpoints for responding to tauri commands-
forge_get_abiImplementing/iron/foundry/abiendpoint #391 -
forge_get_nameImplement the/iron/forge/nameendpoint #427 -
wsImplement http endpoints for ws commands #421 -
connectionsImplement theiron/connectionsendpoints #429 -
networksImplement/iron/networks/endpoints #430 -
settingsImplement/iron/settings/endpoints #431 -
walletsImplement/iron/wallets/endpoints #432 -
simulatorImplement/iron/simulator/endpoints #433 -
dbImplement/iron/db/endpoints #439
-