xmtp / xmtp-js

XMTP client SDKs, content types, and other packages written in TypeScript
https://xmtp.org/docs
211 stars 40 forks source link

Add Support for Viem Signer #416

Closed daria-github closed 1 year ago

daria-github commented 1 year ago

Is your feature request related to a problem?

Currently, Client.create needs to take a Signer from the ethers lib, which Wagmi is no longer using in recent versions, preventing us from migrating to later versions of Wagmi.

Describe the solution to the problem

Allow support for both the Viem Signer equivalent and ethers.

Describe the uses cases for the feature

This will allow us to bump our Wagmi version to the latest.

Additional details

No response

mkobetic commented 1 year ago

I haven't looked at any details here, but we probably need a lot less than the full ethers.Signer. It might be worth just defining our own interface that would be a tiny subset of Signer.

neekolas commented 1 year ago

@richardhuaaa defined our own interface that is a tiny subset of Signer a while back, and that is all we require of apps since version 8.something. It lives here.

Definitely agree this is becoming a real problem. I helped debug a number of issues with projects using Viem at ETHWaterloo. Especially with the deprecation of WalletConnect V1 which has a lot of people upgrading their wallet connection packages.

As a FYI, this is how Lenster solves the issue (please don't copy it directly, the signature ?? ''; swallows all kinds of issues).

fabriguespe commented 1 year ago

One developer has created this solution I used xmtp/xmtp-js and created function for that takes the viem wallet generated by wagmi 2 and mapped it to a mock function that would be capital with ethers wallet

pranav-singhal commented 1 year ago

Facing the same issue myself

is anyone looking into this right now?

neekolas commented 1 year ago

Closed with https://github.com/xmtp/xmtp-js/pull/459