CrossmintSolanaNonCustodialSigner class final

Solana variant of CrossmintNonCustodialSigner. Signs with ed25519 keys using base58 encoding. signMessage is intentionally unsupported — Solana only supports transaction signing.

Inheritance

Constructors

CrossmintSolanaNonCustodialSigner({required CrossmintClient client, required HiddenSignerBridge bridge, required String type, required String locator, String? address, CrossmintSignerAuthRequiredCallback? onAuthRequired, CrossmintOtpDeliveryChannel? channel, CrossmintSignerBridgeClient? bridgeClient})
Creates a Solana non-custodial signer.

Properties

address → String?
The wallet address this signer approves for, if known at construction.
finalinherited
bridge → HiddenSignerBridge
The hidden signer WebView bridge that hosts the signing runtime.
finalinherited
canExportPrivateKey → bool
Whether this signer can export its private key. Only non-custodial email/phone signers return true.
no setterinherited
channel → CrossmintOtpDeliveryChannel?
OTP delivery channel for phone signers. Null means the service default (SMS). Ignored for email signers.
finalinherited
client → CrossmintClient
The client this signer belongs to.
finalinherited
exportKeyParams → ({CrossmintExportSignerEncoding encoding, CrossmintSignerKeyType keyType})
no setteroverride
hashCode → int
The hash code for this object.
no setterinherited
locator → String
finalinherited
needsAuth → bool
true while an OTP challenge is outstanding.
no setterinherited
onAuthRequired → CrossmintSignerAuthRequiredCallback?
Callback invoked when an OTP challenge starts or ends. Usually wired to CrossmintWalletController.onAuthRequired — which in turn surfaces a reactive challenge on CrossmintWalletController.otp.
finalinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
type → String
finalinherited

Methods

ensureAuthenticated() → Future<void>
Ensures the signer runtime has completed its authentication handshake, prompting the user via onAuthRequired if necessary. Concurrent callers share the same in-flight future — the user sees at most one prompt per auth cycle.
inherited
exportPrivateKey(CrossmintExportSignerBridge bridge) → Future<void>
Kicks off the key-export flow via the provided export bridge. The bridge renders a Crossmint-hosted UI that the user confirms inside. Throws CrossmintSignerException when the signer type does not support export.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
reject([Object? error]) → void
Cancels the pending OTP challenge. Fails the pending ensureAuthenticated future with CrossmintAuthRejectedException when no cause is supplied.
inherited
sendOtp() → Future<void>
(Re-)sends the OTP to the signer locator (email / phone). Meant to be invoked via CrossmintWalletOtpController.sendOtp during an active challenge.
inherited
sign({required CrossmintSignerKeyType keyType, required String bytes, required CrossmintSignerEncoding encoding}) → Future<String>
Low-level sign primitive — ensures auth, then invokes the signer bridge directly. Chain-specific subclasses wrap this with the encoding / key-type appropriate for their chain.
inherited
signMessage(String message) → Future<String>
override
signTransaction(String transaction) → Future<String>
override
toString() → String
A string representation of this object.
inherited
verifyOtp(String otp) → Future<void>
Submits the OTP the user entered. Resolves the pending ensureAuthenticated future on success.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited