Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat!: Switch to SIP-030 #403

Draft
wants to merge 31 commits into
base: main
Choose a base branch
from
Draft

feat!: Switch to SIP-030 #403

wants to merge 31 commits into from

Conversation

janniks
Copy link
Collaborator

@janniks janniks commented Jan 14, 2025

This PR was published to npm with the alpha versions:

🚧 WIP

  • Add new JSON RPC APIs and types (e.g. stx_signMessage)
    • These consist of: method, params, and response types.
  • Deprecate but keep most legacy methods, to avoid breaking as much as possible for dApps
  • Add TypeBox and Zod schemas for wallets and apps to validate.

Apologies for the large diff. The gist of this pull request is switching away from the JWT token-based API to the new JSON RPC-based API. However, we want to stay largely backwards compatible with the previous connect version, even though this will be a breaking change. And thus many no-op functions and types are still included. Sometimes even slightly broken behaviors kept for ease of dApp developer experience.

Copy link

changeset-bot bot commented Jan 14, 2025

🦋 Changeset detected

Latest commit: 3c2c6a6

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 3 packages
Name Type
@stacks/connect-react Major
@stacks/connect Major
@stacks/connect-ui Major

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link

vercel bot commented Jan 14, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
connect ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jan 30, 2025 5:11pm
connect-docs ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jan 30, 2025 5:11pm


// TYPES

export type NetworkString = 'mainnet' | 'testnet' | 'regtest' | 'devnet' | string;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

afaik typescript will not autocomplete this unless you use a LiteralUnion

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll try that. Thx
I did try the string literal union, but with string being a union member didn't work.


/** Disconnect selected wallet. Alias for {@link clearSelectedProviderId} */
export const disconnect = clearSelectedProviderId;

export { isProviderSelected } from '@stacks/connect-ui';

/**
* @deprecated Use the renamed {@link showConnect} method
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be updated as well.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Which one do you mean? showBlockstack is an alias for showConnect which uses authenticate which mimics the new flow to get a minimum of address selection working in the UserSession. (To stay backwards compatible a bit, so it's easier for apps to update).
Marked as deprecated to indicate that this would be one of the methods that may disappear in another breaking release.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see, showConnect is not deprecated.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a good point though, my thinking was I would mark these as deprecated as well. Where deprecated should mean, at some point they won't be updated anymore and we recommend an alternative way of doing things.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants