feat: add wallet-providers package + upgrade workspace to @arkade-os/sdk 0.4.39#2
feat: add wallet-providers package + upgrade workspace to @arkade-os/sdk 0.4.39#2Kukks wants to merge 4 commits into
Conversation
Browser wallet provider Identity implementations for the Arkade SDK: - UnisatIdentity (batch signing via signPsbts) - OkxIdentity (batch signing via signPsbts) - LeatherIdentity (single sign only) - PhantomIdentity (single sign only) UniSat and OKX implement BatchSignableIdentity, enabling the SDK to batch-sign all checkpoint + main tx PSBTs in a single wallet popup (depends on arkade-os/ts-sdk#395). Includes a Vite test app at apps/wallet-providers-test/ for manual testing with installed browser extensions.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
🔍 Arkana Review —
|
Adds signMultiple() to SatsConnectIdentity using sats-connect's signMultipleTransactions callback API. This enables batch signing of all checkpoint + main tx PSBTs in a single Xverse wallet popup. Also refactors the merge+validate logic into a shared private method and threads the network config through to the identity constructor.
Deploying snap with
|
| Latest commit: |
79453f1
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://28dde563.snap-bu9.pages.dev |
| Branch Preview URL: | https://feat-wallet-providers.snap-bu9.pages.dev |
Deploying arkade-xverse with
|
| Latest commit: |
79453f1
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://90cc628e.arkade-xverse.pages.dev |
| Branch Preview URL: | https://feat-wallet-providers.arkade-xverse.pages.dev |
🔍 Review — Second commit:
|
… 0.4.39 BatchSignableIdentity and SignRequest were stubbed locally pending arkade-os/ts-sdk#395, which is now merged and published in @arkade-os/sdk >=0.4.15. Re-export them from the SDK and drop the stubs. - types.ts: re-export SignRequest/BatchSignableIdentity from @arkade-os/sdk - package.json: peerDependency >=0.4.15, devDependency ^0.4.39
Bumps every package and app to the latest SDK (0.4.39) and boltz-swap (0.3.44), and migrates the breaking changes: - sats-connect: source SignRequest from the SDK (drop local stub) - checkout, sats-connect-react, metamask-snap: rename boltz-swap ArkadeLightning -> ArkadeSwaps (renamed in boltz-swap 0.3.x) - checkout/cli: remove dead unused identity/SingleKey (pre-existing typecheck error, unrelated to the bump) Verified: every package and app typechecks + builds EXCEPT @arkade-os/snap. The snap cannot bundle SDK 0.4.39 because the fee Estimator.eval() method trips MetaMask's SES direct-eval check (arkade-os/ts-sdk#580). Left on 0.4.39 pending the upstream rename.
Summary
@arkade-os/wallet-providerspackage with browser wallet Identity implementations for UniSat, OKX, Leather, and PhantomBatchSignableIdentity(batch PSBT signing in one popup)Identity(sequential signing)BrowserWalletIdentitybase class handles pubkey normalization, signerSession stubs, and PSBT merge+validation@arkade-os/wallet-providers/unisat)signMultiple()to existingSatsConnectIdentityusing sats-connect'ssignMultipleTransactionsAPI for batch signing@arkade-os/sdk0.4.39 +@arkade-os/boltz-swap0.3.44 (see "Workspace SDK upgrade")apps/wallet-providers-test/for manual browser testingSDK types
BatchSignableIdentityandSignRequestare imported from@arkade-os/sdk(arkade-os/ts-sdk#395, shipped in@arkade-os/sdk>=0.4.15). The local stub definitions inwallet-providers— and the separate localSignRequestinsats-connect— have been removed in favour of SDK imports.@arkade-os/wallet-providersdeclares@arkade-os/sdk>=0.4.15 as a peer dependency.Workspace SDK upgrade
Bumps every package and app to the latest SDK + boltz-swap and migrates the breaking changes:
@arkade-os/sdk→ 0.4.39 (peers>=0.4.15) across root,checkout,sats-connect,sats-connect-react,snap,xverse.@arkade-os/boltz-swap→ 0.3.44 (peers>=0.3.0) across root,checkout,sats-connect-react,xverse. Required because boltz-swap bundles its own SDK copy — staying on 0.2.x would mix SDK 0.3.x and 0.4.x in the same type graph.ArkadeLightning→ArkadeSwaps(same constructor + methods). Updated incheckout,sats-connect-react, andapps/metamask-snap.checkout/cli/create.ts(unusedidentity/SingleKey).@arkade-os/snap@arkade-os/snapcannot bundle SDK 0.4.39: the feeEstimator.eval()method name trips MetaMask Snaps' SES "direct eval" check (SES_EVAL_REJECTED), rejecting the whole bundle. SDK 0.3.0 had no such method. Tracked upstream at arkade-os/ts-sdk#580. The snap stays on 0.4.39 and its build will fail until the SDK renames the method — this is the expected red check on this PR.Provider matrix
@arkade-os/sats-connect(updated)signMultipleTransactions)@arkade-os/wallet-providerssignPsbts)@arkade-os/wallet-providerssignPsbts)@arkade-os/wallet-providers@arkade-os/wallet-providersTest plan
wallet-providers,sats-connect,sats-connect-react,checkout)tsup/vite/next) — except@arkade-os/snap(see Known issue)apps/wallet-providers-test/@arkade-os/snapbuild once arkade-os/ts-sdk#580 lands