alloy icon indicating copy to clipboard operation
alloy copied to clipboard

[Feature] Infer `EthereumSigner` automatically in the signer layer of the `ProviderBuilder`

Open zerosnacks opened this issue 1 year ago • 3 comments

Component

provider, pubsub, signers

Describe the feature you would like

Given

let signer = LocalWallet::random();

We currently require the signer to be cast into EthereumSigner::from(signer) when using the signer layer in the ProviderBuilder as follows:

let provider = ProviderBuilder::new()
    .with_recommended_fillers()
    .signer(EthereumSigner::from(signer))
    .on_http(rpc_url);

The proposed API:

let provider = ProviderBuilder::new()
    .with_recommended_fillers()
    .signer(signer)
    .on_http(rpc_url);

Additional context

No response

zerosnacks avatar Jun 03 '24 07:06 zerosnacks

change would need to consider #638 and ~~#535~~ #575 (edited to fix link)

prestwich avatar Jun 03 '24 07:06 prestwich

sorry that should be #575

prestwich avatar Jun 03 '24 08:06 prestwich

This seems simple but under the hood has a bunch of extra work needed to allow calling .signer(...) multiple times which would collect credentials in 1 EthereumSigner. Right now if you call .signer(...) multiple times it is not great behavior bc it might create a new SignerFiller or override the existing signer.

This will get bundled with the credential/wallet rewrite, might need .signer(...) -> SignerBuilder

gakonst avatar Jun 05 '24 19:06 gakonst