crossmint_wallets 0.2.0 copy "crossmint_wallets: ^0.2.0" to clipboard
crossmint_wallets: ^0.2.0 copied to clipboard

Pure-Dart wallet primitives for the Crossmint Flutter SDK — wallet models, signer abstractions, and API contracts.

0.2.0 #

  • CrossmintWalletsClient.addSigner and .removeSigner gained an optional approver parameter, naming the recovery method that authorizes the operation. Breaking change for anyone implementing CrossmintWalletsClient directly — add the parameter to your implementation. Threaded through DefaultCrossmintWalletsClient, WalletsApiService.unregisterSigner, and the signer registration/removal serialization.
  • CrossmintWalletCreateRequest gained a second constructor, .withRecoveryMethods, taking the full recoveryMethods list. The two constructors are mutually exclusive: the default one takes a single recovery, the new one takes the list. recoveryMethods and recovery (the first entry) are readable off either. Mirrors the paired createWallet overloads in the Swift and Kotlin SDKs.
  • The wire form follows the constructor, not the list length. The default constructor sends config.adminSigner and works on every chain; .withRecoveryMethods sends config.recoveryMethods on Solana and Stellar. On another chain a one-entry list goes out as config.adminSigner, and a longer list throws CrossmintWalletException(walletInvalidChain) client-side instead of reaching the backend's HTTP 501. This matches RecoveryInput in the Swift SDK and RecoveryConfig in Kotlin.
  • CrossmintWalletCreateRequest.withResolvedSigners rebuilds a request with resolved signers through the same constructor, so the wire form survives the controller's email and device-signer resolution. usesRecoveryMethodList reports which form a request holds.
  • CrossmintWallets.createWalletWithRecoveryMethods is the facade entry point for the list form; createWallet keeps its single-recovery signature.
  • New error code CrossmintErrorCode.walletMissingRecoveryMethod, thrown as a CrossmintWalletException when a request carries no recovery method at all. It is an Exception rather than the StateError an empty list would otherwise raise, so caller on Exception handlers catch it instead of leaving the operation stranded in progress.
  • Fixed: the approver is trimmed before it is sent. The registration body and the unregisterSigner query string used to carry the raw string, and a whitespace-only approver is now dropped instead of sent as " ".
  • Requires crossmint_core ^0.1.7.

0.1.5 #

  • Added CrossmintOtpDeliveryChannel (sms, whatsapp) and CrossmintPhoneSignerConfig.channel to request the OTP delivery channel for phone signers. Null means the service default, SMS. The channel is client-only: it is not serialized into wallet API requests and is not parsed back from a fetched wallet's recovery config.
  • The onSignWithPasskey dartdoc now states that assertions must be requested with userVerification: "required".

0.1.4 #

  • Added deployImmediately to addSigner, defaulting to true. On EVM wallets it controls how the backend registers the signer: true returns an on-chain registration transaction installed immediately, false keeps the lazy signature-request flow. The flag is never sent for Solana or Stellar wallets.
  • EVM signer registration requests changed shape. The registration payload now always carries deployImmediately on EVM, where the key was previously absent, so existing callers that pass nothing now send true explicitly. Pass deployImmediately: false to keep the lazy signature-request flow.
  • EVM registration responses are parsed differently. The parser now branches by chain family: on EVM it reads the transaction id from the chain entry's onChain block, and a registration carrying onChain no longer yields a pending signature id. Solana and Stellar keep the previous pending-transaction path. Callers that read the returned signature id on EVM should read the transaction id instead.
  • The exception raised for an unsupported device signer now reads Device signers are not supported for this wallet. instead of ... for this wallet's provider., and the matching dartdoc was reworded. The error code (CrossmintErrorCode.walletDeviceSignerNotSupported) is unchanged; only the default message text differs.

0.1.3 #

  • Solana device signers are no longer rejected client-side. Device signer registration is serialized and sent for all chains; support is provider-dependent (Swig/Crossmint support it, Squads does not) and validated server-side.
  • registerSigner now maps the backend DEVICE_SIGNER_NOT_SUPPORTED code to a typed CrossmintWalletException(walletDeviceSignerNotSupported), recognized from the response body regardless of HTTP status.
  • Requires crossmint_core ^0.1.4 for the new CrossmintErrorCode.walletDeviceSignerNotSupported.
  • Removed the permissionless_passkeys dependency (passkey factory moved to a host-supplied/callback path in the umbrella SDK).

0.1.2 #

  • Docs: expanded dartdoc coverage on the public surface for the pub.flutter-io.cn landing page, plus a follow-up pass that fixed broken [reference] link targets and dartdoc format regressions surfaced by the docs build.

0.1.1 #

  • Aligned WalletSerializationCodec.serializeDelegatedSigner with the EVM OpenAPI schema for email and phone signers — it now emits the full {type, email|phone} object instead of a bare email: / phone: locator string, matching serializeSignerRegistrationInput and the RN SDK. Forward-compat only — no end-user behavior change in this release: the Crossmint backend does not currently accept email or phone as delegated signer types on EVM, so wallet creation with signers: [CrossmintEmailSignerConfig(...)] / CrossmintPhoneSignerConfig(...) continues to fail with HTTP 400. Tracking the backend-side addition separately. See #21 / #24.

0.1.0 #

  • First public release on pub.flutter-io.cn

0.0.1 #

  • Initial internal extraction from crossmint_flutter
  • Added wallet domain contracts, models, API service, and signer abstractions
  • Added internal default wallet repository export for monorepo wiring
0
likes
140
points
2.56k
downloads

Documentation

API reference

Publisher

verified publishercrossmint.com

Weekly Downloads

Pure-Dart wallet primitives for the Crossmint Flutter SDK — wallet models, signer abstractions, and API contracts.

Homepage
Repository (GitHub)
View/report issues

Topics

#crossmint #wallet #blockchain

License

Apache-2.0 (license)

Dependencies

crossmint_core

More

Packages that depend on crossmint_wallets