OZSelectedSigner
public enum OZSelectedSigner : Sendable, Hashable
A signer selected for participation in a multi-signer authorization ceremony.
The smart-account contract supports M-of-N authorization across a mix of signer
kinds (passkey-backed external signers, Stellar G-address wallet signers, and Ed25519 external signers).
OZSelectedSigner is the single tagged-union shape passed by callers to manager
methods that take a selectedSigners parameter (for example
addPolicy(contextRuleId:policyAddress:installParams:selectedSigners:forceMethod:)).
When the supplied list is empty, manager methods route through the single-signer submission path bound to the connected passkey credential. When the list is non-empty, manager methods route through the multi-signer collection path which gathers a signature from every supplied signer and assembles the final authorization map.
Important
This type is shared across every manager that supports multi-signer authorization. It is defined here because the policy manager is the first manager to require it; subsequent managers consume the same definition without redeclaring it.-
A passkey-backed external signer identified by its WebAuthn credential id.
Declaration
Swift
case passkey(credentialId: String, credentialIdBytes: Data? = nil, keyData: Data? = nil, transports: [String]? = nil)Parameters
credentialIdBase64URL-encoded WebAuthn credential identifier.
credentialIdBytesOptional raw credential identifier bytes. When supplied, the multi-signer pipeline includes a matching
WebAuthnAllowCredential(withtransports) on the WebAuthn authentication request so the OS can route to the correct passkey. Whennil, noallowCredentialslist is passed to the provider and the authenticator falls back to its default credential discovery.keyDataOptional pre-fetched secp256r1 public key plus credential id bytes (
publicKey || credentialId). Supplying this avoids an indexer lookup during signature collection. May benilwhen the manager should resolve the key data on demand.transportsOptional WebAuthn transport hints (
internal,hybrid,usb,ble,nfc) propagated into theWebAuthnAllowCredentialpassed to the WebAuthn provider whencredentialIdBytesis non-nil. Cross-device flows typically leave thisnil. -
A wallet-backed signer identified by its
G…Stellar account address.Declaration
Swift
case wallet(accountId: String)Parameters
accountIdStellar account address (
G…strkey) of the wallet that will produce the signature, either through a configured external wallet adapter or through an in-process keypair registered viaOZExternalSignerManager. -
An Ed25519 signer backed by a verifier contract.
Identifies a signer registered on-chain as an
External(verifierAddress, publicKey)entry. The actual signing capability must be registered separately viaaddEd25519FromRawKey(secretKeyBytes:verifierAddress:)or by supplying a conformingOZExternalEd25519SignerAdapterbefore the multi-signer pipeline executes.Declaration
Swift
case ed25519(verifierAddress: String, publicKey: Data)Parameters
verifierAddressContract address (
C…strkey) of the Ed25519 verifier contract registered as part of the on-chainExternal(verifierAddress, publicKey)signer entry.publicKey32-byte Ed25519 public key that identifies the signer slot on the smart account. Must match the public key registered in the on-chain signer entry.
View on GitHub
Install in Dash