Add this to your Cargo.toml:
[dependencies]
ethers-web = "0.2"
Depending on the web framework you are using you might want to enable proper feature.
For yew
you should simply enable its feature first:
[dependencies]
ethers-web = { version = "0.2", features = [ "yew" ] }
In examples
folder you will find an example yew application that is using an yew::UseEthereum
that will allow you to connect to chosen wallet and maintain its life cycle
by fetching messages from the message loop using next()
function.
The library does not deliver own message loop bacause of the limitations that yew
and leptos
are inside their WASM
lifecycle.
There are two wallet standards implemented inside ethers-web
.
Eip1193
is an embedded wallet standard such as Metamask
. To connect to it you just need to call connect()
method and attach connected context provider as any other provider in ethers
calls.
WalletConnect
requires a bit more setup than just making a connection. You will need PROJECT_ID
and additional RPC_URL
that will be handling generic rpc calls that wallet might not support.
Simply check examples
folder to find example implementations you can use in your app.
In progress of creation. For now check examples
folder for implementation details for both leptos
and yew
frameworks
- EIP1193 injected wallet implementation
- WalletConnect
- Proper Leptos support
- Documentation
This library currently needs WASM to work. There is a plan to support server-side implementations, though. For now, we focus on building robust solution for WASM implementations of websites.