@arcadiasystems/morse-sdk 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,62 @@
2
2
 
3
3
  All notable changes to `morse-sdk` will be documented in this file. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
4
4
 
5
+ ## [0.1.4] - 2026-05-21
6
+
7
+ Pluggable `PubkeyCache` for `fromAccountAsync` so Phantom users do not re-sign a probe message on every page reload.
8
+
9
+ ### Added
10
+
11
+ - **`PubkeyCache` interface** with `get`, `set`, optional `clear`. Methods may be sync or async, so the same interface backs browser `localStorage`, IndexedDB, and server-side KV stores. Pass via the new `options.pubkeyCache` arg on `fromAccountAsync`.
12
+ - **`BrowserStoragePubkeyCache`**: ready-to-use `PubkeyCache` backed by a DOM `Storage`-like interface (defaults to `globalThis.localStorage`). Customizable `prefix` for namespacing. Throws `ConfigurationError` at construction when `localStorage` is unavailable and no `storage` was injected (SSR / Node without polyfill).
13
+ - **`BrowserStorageLike` / `BrowserStoragePubkeyCacheOptions`** exported types for consumers building their own storage adapters or tests.
14
+
15
+ ### Changed
16
+
17
+ - **`fromAccountAsync(account, callbacks, options?)`**: third parameter added. Cache hits are still verified to derive to `account.address` before the signer is trusted; on mismatch the SDK calls `cache.clear?.(address)` and falls through to a fresh probe, then writes the recovered pubkey back via `cache.set`. Stale entries, planted bytes, and wallet rotation all heal automatically. Compliant wallets (sync `fromAccount` path) skip the cache entirely; `get`/`set` are not called.
18
+
19
+ ### Consumer migration
20
+
21
+ Before (probe popup on every mount):
22
+
23
+ ```ts
24
+ const signer = await WalletStandardSigner.fromAccountAsync(account, callbacks);
25
+ ```
26
+
27
+ After (probe popup once per address):
28
+
29
+ ```ts
30
+ import { BrowserStoragePubkeyCache } from "@arcadiasystems/morse-sdk";
31
+ const signer = await WalletStandardSigner.fromAccountAsync(account, callbacks, {
32
+ pubkeyCache: new BrowserStoragePubkeyCache(),
33
+ });
34
+ ```
35
+
36
+ ### Unchanged
37
+
38
+ No behavior change for callers who do not pass `pubkeyCache`. No behavior change for compliant wallets. `fromAccount` (sync) is unchanged; the cache only applies to the async recovery path. Error classes, public types, and the rest of the SDK surface are byte-identical to 0.1.3.
39
+
40
+ ## [0.1.3] - 2026-05-21
41
+
42
+ Phantom (Sui) wallet support, plus a structured error class so consumer dapps can render proper UX for unsupported wallets.
43
+
44
+ ### Added
45
+
46
+ - **`WalletStandardSigner.fromAccountAsync(account, callbacks)`**: async variant of `fromAccount` that recovers the real Ed25519 public key from a probe signature when `account.publicKey` is non-canonical. Compliant wallets (Slush, Suiet) go through the sync path with no extra IO; non-canonical wallets (Phantom) get one extra wallet popup at session start for the recovery. The probe message is domain-separated (`"morse-sdk:wallet-pubkey-recovery:" + address`) so it cannot collide with a real transaction. The recovered key is verified to derive to `account.address` before the signer is constructed; a wallet bug that signs with a different key is caught and rejected.
47
+ - **`UnsupportedWalletSchemeError extends ConfigurationError`** with structured fields `code: UnsupportedWalletSchemeCode`, `publicKeyBytes: Readonly<Uint8Array>`, `address: string`, optional `walletName?: string`. The `code` discriminates the failure mode: `non-canonical-pubkey` (sync decode failed, recovery applicable), `malformed-zklogin` (zkLogin-shaped but not decodable, recovery not applicable), `recovery-sig-length` / `recovery-non-ed25519` / `recovery-address-mismatch` (recovery flow failed). Consumer dapps switch on `code` to render the appropriate CTA without parsing message strings.
48
+
49
+ ### Changed
50
+
51
+ - **`fromAccount` now throws `UnsupportedWalletSchemeError`** (still a `ConfigurationError` subclass) instead of plain `ConfigurationError` on unrecognized public-key shapes. Existing consumers narrowing on `ConfigurationError` continue to work without modification; consumers who want structured fields opt in via `instanceof UnsupportedWalletSchemeError`. The error message also updates the suggested remediation from "implement a custom Signer" to "retry with WalletStandardSigner.fromAccountAsync".
52
+
53
+ ### Context
54
+
55
+ Phantom's Sui adapter returns a 59-byte opaque blob in `account.publicKey` instead of the canonical 32 / 33-byte form mandated by wallet-standard. This is a known, undocumented quirk (confirmed in the Sui developer forum; the Sui team's response was "reach out to Phantom"). Earlier versions of `WalletStandardSigner` refused these accounts entirely. The recovery flow added here works because Phantom's `signPersonalMessage` does return Sui's canonical 97-byte `flag || sig || pk` signature blob, so the real public key can be extracted from the last 32 bytes of any signature the wallet produces. We do not trust `account.publicKey` at all on the async path.
56
+
57
+ ### Unchanged
58
+
59
+ No behavior changes for compliant wallets (Slush, Suiet, keypair-backed). `fromAccount` is still synchronous; `fromAccountAsync` is purely additive. Other error classes, public types, and the rest of the SDK surface are byte-identical to 0.1.2.
60
+
5
61
  ## [0.1.2] - 2026-05-21
6
62
 
7
63
  Additive UI-translation helper plus three bug fixes in the reader's error mapping. Pre-1.0 patch-bump per the project's pragmatic versioning policy; semver-strict consumers can treat as a minor (one new export, one new optional field, one corrected throw class).
@@ -75,5 +131,8 @@ See `README.md` for the full list. Headlines:
75
131
  - Wallet schemes other than Ed25519 ship as decoders with E2E unverified; `WalletStandardSigner.fromAccount` will accept them, but `@mysten/walrus` and `@mysten/seal` round-trip is not yet smoke-tested for those configurations.
76
132
  - gRPC client only at v0.1.0; the reader and adapter interfaces are typed against `Pick<SuiGrpcClient, ...>`. JSON-RPC fallback is planned for v0.2.0.
77
133
 
134
+ [0.1.4]: https://github.com/arcadiasystems/morse-dcms/releases/tag/v0.1.4
135
+ [0.1.3]: https://github.com/arcadiasystems/morse-dcms/releases/tag/v0.1.3
136
+ [0.1.2]: https://github.com/arcadiasystems/morse-dcms/releases/tag/v0.1.2
78
137
  [0.1.1]: https://github.com/arcadiasystems/morse-dcms/releases/tag/v0.1.1
79
138
  [0.1.0]: https://github.com/arcadiasystems/morse-dcms/releases/tag/v0.1.0
package/README.md CHANGED
@@ -231,7 +231,9 @@ The full public surface, grouped by concern. Every export carries a JSDoc on its
231
231
  | Export | Purpose |
232
232
  | --- | --- |
233
233
  | `KeypairAdapter` | Server / CLI `WalletAdapter` wrapping a raw `Ed25519Keypair`. |
234
- | `WalletStandardSigner.fromAccount(account, callbacks)` | Browser-side `Signer` for `@mysten/walrus` and `@mysten/seal`; wraps wallet-standard wallets without ever holding the user's key. |
234
+ | `WalletStandardSigner.fromAccount(account, callbacks)` | Browser-side `Signer` for `@mysten/walrus` and `@mysten/seal`; wraps wallet-standard wallets without ever holding the user's key. Sync; throws `UnsupportedWalletSchemeError` on non-canonical `account.publicKey` (e.g. Phantom). |
235
+ | `WalletStandardSigner.fromAccountAsync(account, callbacks, options?)` | Same as `fromAccount`, with signature-based pubkey recovery for wallets that return a non-canonical `account.publicKey` (Phantom). Pass `options.pubkeyCache` to skip the recovery probe across sessions. One extra wallet popup on first session per address; subsequent sessions are zero-popup when a cache is supplied. |
236
+ | `BrowserStoragePubkeyCache({ storage?, prefix? })` | `PubkeyCache` backed by browser `localStorage`. Customizable storage backend (for tests, `sessionStorage`, or polyfills) and key prefix. |
235
237
  | `DefaultWalrusWriteAdapter.fromConfig(config, signer)` | Walrus uploads (blob + quilt). Implements `WalrusFlowCapable` (the 2-popup optimization). |
236
238
  | `DefaultWalrusReadAdapter.fromConfig(config)` | Walrus reads (`readBlob`, `readBlobByObjectId`, `readQuiltPatch`, `readBlobRef`). |
237
239
  | `HttpPublisherWriteAdapter.fromConfig({ publisherUrl, ownerAddress })` | Walrus uploads via a publisher HTTP service (operator pays storage; 1 popup for upload + addEntry). |
@@ -314,8 +316,42 @@ Always construct readers and seal adapters via `fromMorseConfig` (e.g. `RpcPubli
314
316
  | Passkey | Supported (decoder) | - | Accepts raw 33-byte key and `0x06 \|\| 33 raw`. WebAuthn signing inside the wallet; `Signer` surface unchanged. |
315
317
  | ZkLogin | Decoder ships, E2E unverified | - | Variable-length `[1 iss-len][iss][32 addressSeed]` identifier (auto-detects modern vs legacy address derivation). Walrus and Seal `SessionKey` flows have not been smoke-tested with zkLogin signatures; fall back to a keypair account if you see errors. |
316
318
  | MultiSig | Refused | - | Variable-length aggregation of multiple keys; signing semantics differ from `Signer` and have not been wired up. Implement a custom `Signer` subclass if you need it. |
319
+ | Phantom (Sui) | Supported via `fromAccountAsync` | 2026-05-21 | Phantom returns a 59-byte non-canonical blob in `account.publicKey`. `fromAccount` rejects it; `fromAccountAsync` recovers the real Ed25519 key from a probe signature. See subsection below. |
317
320
 
318
- Refused schemes throw `ConfigurationError` at construction time. Surface the message to your user as "this wallet account isn't supported yet" rather than letting the page crash inside Walrus or Seal later.
321
+ Refused schemes throw `UnsupportedWalletSchemeError` (a `ConfigurationError` subclass) at construction time. The error carries the raw `publicKeyBytes`, the reported `address`, and an optional `walletName`, so consumer dapps can render a wallet-specific CTA without parsing message strings.
322
+
323
+ ### Wallets with non-canonical `publicKey` (Phantom)
324
+
325
+ Phantom's Sui adapter returns a 59-byte opaque blob in `account.publicKey` instead of the canonical 32 / 33-byte form mandated by wallet-standard. This is a documented Phantom quirk (see the Sui developer forum thread from August 2025), not an SDK gap.
326
+
327
+ For Phantom-class wallets, use `WalletStandardSigner.fromAccountAsync` instead of `fromAccount`, and pass a `PubkeyCache` to avoid re-prompting on every page reload:
328
+
329
+ ```ts
330
+ import {
331
+ WalletStandardSigner,
332
+ BrowserStoragePubkeyCache,
333
+ UnsupportedWalletSchemeError,
334
+ } from "@arcadiasystems/morse-sdk";
335
+
336
+ try {
337
+ const signer = await WalletStandardSigner.fromAccountAsync(account, callbacks, {
338
+ pubkeyCache: new BrowserStoragePubkeyCache(),
339
+ });
340
+ } catch (err) {
341
+ if (err instanceof UnsupportedWalletSchemeError) {
342
+ // Render: "Your wallet uses an unsupported scheme. Try Slush or Suiet."
343
+ // err.code, err.publicKeyBytes, err.address, err.walletName available.
344
+ }
345
+ }
346
+ ```
347
+
348
+ `fromAccountAsync` tries the sync decoder first (no extra IO for compliant wallets), and on failure recovers the real Ed25519 public key by asking the wallet to sign a domain-separated probe message. Sui's canonical signature is `flag || sig || pk` (97 bytes for Ed25519); the last 32 bytes are the raw key. The recovered key is verified to derive to `account.address` before the signer is constructed.
349
+
350
+ Without a cache, the probe popup fires every session (every page reload, every component remount). With a `BrowserStoragePubkeyCache`, the popup fires once per address; subsequent sessions read from `localStorage` and skip the probe. The cached pubkey is still verified to derive to `account.address` on every load, so stale entries (wallet switch, planted bytes) heal automatically: the SDK calls `cache.clear?.(address)` and re-probes.
351
+
352
+ For non-browser contexts (SSR, Node, native), implement the `PubkeyCache` interface against IndexedDB, Redis, or any KV store. Methods may be sync or async.
353
+
354
+ The probe message is `"morse-sdk:wallet-pubkey-recovery:" + address`, wrapped by Sui's `signPersonalMessage` `"Sui Message:"` prefix, so it cannot collide with a real transaction. Compliant wallets pay no extra cost; they take the sync `fromAccount` path inside `fromAccountAsync` and skip both the probe and the cache.
319
355
 
320
356
  ## Error taxonomy
321
357
 
@@ -330,6 +366,7 @@ All errors extend `MorseError`. Narrow by class:
330
366
  | `SealError` | `code` (`no-access` / `decrypt-failed` / `session-expired` / `rate-limited`) | Seal authorization or decryption failed. |
331
367
  | `TransportError` | `operation?` (e.g. `sui.getObject`, `walrus.publisher.uploadBlob`, `seal.decrypt`) | RPC, network, or response-parsing failure. |
332
368
  | `ConfigurationError` | - | SDK config gap (e.g. unsupported network). |
369
+ | `UnsupportedWalletSchemeError` | `code` (`non-canonical-pubkey` / `malformed-zklogin` / `recovery-sig-length` / `recovery-non-ed25519` / `recovery-address-mismatch`), `publicKeyBytes`, `address`, optional `walletName` | `WalletStandardSigner.fromAccount` rejected the account's `publicKey` shape, or the async recovery flow could not extract a key that derives to `account.address`. |
333
370
  | `UncertifiedBlobError` | `blobObjectId`, `blobId` | `addEntryFromBytes` upload succeeded but the combined certify+add_entry tx failed; the blob is uploaded but uncertified. |
334
371
 
335
372
  ```ts
package/dist/errors.d.ts CHANGED
@@ -51,6 +51,37 @@ export declare class TransportError extends MorseError {
51
51
  /** SDK configuration gap (e.g. asking for a network with no canonical deployment). */
52
52
  export declare class ConfigurationError extends MorseError {
53
53
  }
54
+ /**
55
+ * Discriminator for `UnsupportedWalletSchemeError`. `non-canonical-pubkey`
56
+ * means `account.publicKey` did not decode at construction time; the rest
57
+ * mean the async recovery flow failed for a specific reason. Consumers
58
+ * branch on `code` rather than message strings, and `fromAccountAsync`
59
+ * only attempts recovery when `code === "non-canonical-pubkey"`.
60
+ */
61
+ export type UnsupportedWalletSchemeCode = "non-canonical-pubkey" | "malformed-zklogin" | "recovery-sig-length" | "recovery-non-ed25519" | "recovery-address-mismatch";
62
+ /**
63
+ * Raised by `WalletStandardSigner.fromAccount` and `fromAccountAsync` when
64
+ * the account's public key cannot be resolved to a verified Ed25519/Secp/
65
+ * Passkey/ZkLogin key matching `account.address`. Narrow on `code` to
66
+ * distinguish the failure mode; carries the raw bytes and reported address
67
+ * for support telemetry and CTA copy. Phantom's Sui adapter is the known
68
+ * source: it returns a 59-byte opaque blob in `account.publicKey`, which
69
+ * surfaces as `code: "non-canonical-pubkey"`.
70
+ */
71
+ export declare class UnsupportedWalletSchemeError extends ConfigurationError {
72
+ readonly code: UnsupportedWalletSchemeCode;
73
+ readonly publicKeyBytes: Readonly<Uint8Array>;
74
+ readonly address: string;
75
+ readonly walletName?: string;
76
+ constructor(message: string, fields: {
77
+ code: UnsupportedWalletSchemeCode;
78
+ publicKeyBytes: Uint8Array;
79
+ address: string;
80
+ walletName?: string;
81
+ }, options?: {
82
+ cause?: unknown;
83
+ });
84
+ }
54
85
  /**
55
86
  * Thrown by `addEntryFromBytes` / `addEncryptedEntryFromBytes` when the
56
87
  * register-and-upload step succeeded (the user already paid for storage and
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/errors.js CHANGED
@@ -61,6 +61,30 @@ export class TransportError extends MorseError {
61
61
  /** SDK configuration gap (e.g. asking for a network with no canonical deployment). */
62
62
  export class ConfigurationError extends MorseError {
63
63
  }
64
+ /**
65
+ * Raised by `WalletStandardSigner.fromAccount` and `fromAccountAsync` when
66
+ * the account's public key cannot be resolved to a verified Ed25519/Secp/
67
+ * Passkey/ZkLogin key matching `account.address`. Narrow on `code` to
68
+ * distinguish the failure mode; carries the raw bytes and reported address
69
+ * for support telemetry and CTA copy. Phantom's Sui adapter is the known
70
+ * source: it returns a 59-byte opaque blob in `account.publicKey`, which
71
+ * surfaces as `code: "non-canonical-pubkey"`.
72
+ */
73
+ export class UnsupportedWalletSchemeError extends ConfigurationError {
74
+ code;
75
+ publicKeyBytes;
76
+ address;
77
+ walletName;
78
+ constructor(message, fields, options) {
79
+ super(message, options);
80
+ this.code = fields.code;
81
+ this.publicKeyBytes = fields.publicKeyBytes;
82
+ this.address = fields.address;
83
+ if (fields.walletName !== undefined) {
84
+ this.walletName = fields.walletName;
85
+ }
86
+ }
87
+ }
64
88
  // Uncertified blob
65
89
  /**
66
90
  * Thrown by `addEntryFromBytes` / `addEncryptedEntryFromBytes` when the
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,11 +6,11 @@ export { accessPolicyFromU8, accessPolicyToU8, storageModeFromU8, storageModeToU
6
6
  export { TESTED_SUBSTRATE } from "./compatibility.js";
7
7
  export { DEFAULT_RPC_URLS, type MorseConfigOptions, type MorsePackageConfig, morseConfig, Network, type NetworkConfig, type WalrusEndpoints, } from "./config.js";
8
8
  export { type FormattedError, formatUserMessage, } from "./errors.format.js";
9
- export { ABORT_CODES, type AbortEntry, type AbortModule, ConfigurationError, ContractAbortError, MorseError, NotFoundError, type NotFoundResource, SealError, type SealErrorCode, TransportError, UNKNOWN_ABORT_NAME, UnauthorizedError, UncertifiedBlobError, ValidationError, } from "./errors.js";
9
+ export { ABORT_CODES, type AbortEntry, type AbortModule, ConfigurationError, ContractAbortError, MorseError, NotFoundError, type NotFoundResource, SealError, type SealErrorCode, TransportError, UNKNOWN_ABORT_NAME, UnauthorizedError, UncertifiedBlobError, type UnsupportedWalletSchemeCode, UnsupportedWalletSchemeError, ValidationError, } from "./errors.js";
10
10
  export { type AddEncryptedEntryArgs, type AddEncryptedEntryFromBytesArgs, type AddEntryArgs, type AddEntryFromBytesArgs, type AddEntryFromBytesResult, type AddEntryResult, type AppendDraftRevisionArgs, type AppendEncryptedDraftRevisionArgs, addEncryptedEntry, addEncryptedEntryFromBytes, addEntry, addEntryFromBytes, appendDraftRevision, appendEncryptedDraftRevision, type CreateCollectionArgs, type CreateCollectionResult, type CreatePublicationArgs, type CreatePublicationResult, createCollection, createPublication, type DeleteCollectionArgs, type DeleteCollectionResult, type DeleteEntryArgs, type DeleteEntryResult, type DeletePublicationArgs, type DeletePublicationResult, type DestroyPublisherCapArgs, type DestroyPublisherCapResult, deleteCollection, deleteEntry, deletePublication, destroyPublisherCap, type IssuePublisherCapArgs, type IssuePublisherCapResult, issuePublisherCap, type ProgressCallback, type ProgressEvent, type PublicationConfig, type PublishDirectArgs, type PublishFromDraftArgs, publishDirect, publishFromDraft, type RevisionAppendResult, type RevokePublisherCapArgs, type RevokePublisherCapResult, revokePublisherCap, type TransferOwnershipArgs, type TransferOwnershipResult, type TransferPublisherCapArgs, type TransferPublisherCapResult, transferOwnership, transferPublisherCap, } from "./ops/index.js";
11
11
  export { type EntryListPage, type ListEntriesOptions, type ListPublicationsOptions, type ListPublisherCapsOptions, type OwnedPublication, type PublicationListPage, type PublicationReader, type PublisherCapListPage, RpcPublicationReader, type ScanEntriesOptions, } from "./read/index.js";
12
12
  export { buildPublisherSealId, DefaultSealAdapter, decodePublisherSealId, type SealAdapter, type SealAdapterConfig, type SealDecryptOptions, type SealEncryptOptions, type SealEncryptResult, type SealIdParts, } from "./seal/index.js";
13
13
  export { AccessPolicy, type BlobObjectId, type BlobRef, type Collection, type Entry, type OwnerCap, type OwnerCapId, type PackageId, type Publication, type PublicationId, type PublisherCap, type PublisherCapId, QUILT_PATCH_ID_LENGTH, type QuiltPatchId, type RegistryId, type Revision, type SealId, SealPolicyTag, StorageMode, type SuiAddress, type SuiObjectId, type TxCreatedObject, type TxDeletedObject, type TxReceipt, type WalrusBlobId, } from "./types.js";
14
- export { KeypairAdapter, type SimulationReturnValues, type WalletAdapter, type WalletSignPersonalMessage, type WalletSignTransaction, type WalletStandardAccount, WalletStandardSigner, type WalletStandardSignerCallbacks, type WalletStandardSignerOptions, } from "./wallets/index.js";
14
+ export { type BrowserStorageLike, BrowserStoragePubkeyCache, type BrowserStoragePubkeyCacheOptions, KeypairAdapter, type PubkeyCache, type SimulationReturnValues, type WalletAdapter, type WalletSignPersonalMessage, type WalletSignTransaction, type WalletStandardAccount, WalletStandardSigner, type WalletStandardSignerCallbacks, type WalletStandardSignerOptions, } from "./wallets/index.js";
15
15
  export { DefaultWalrusReadAdapter, DefaultWalrusWriteAdapter, type DefaultWalrusWriteAdapterOptions, decodeQuiltPatchId, encodeQuiltPatchId, HttpAggregatorReadAdapter, type HttpAggregatorReadAdapterOptions, HttpPublisherWriteAdapter, type HttpPublisherWriteAdapterOptions, isWalrusFlowCapable, type ParsePublisherResponse, type QuiltPatchIdParts, type QuiltPatchInput, quiltPatchIdFromString, quiltPatchIdToString, type StartBlobUploadResult, type UploadBlobOptions, type UploadBlobResult, type UploadQuiltOptions, type UploadQuiltPatch, type UploadQuiltResult, type WalrusAdapterConfig, type WalrusBlobIntegrityCheck, type WalrusFlowCapable, type WalrusReadAdapter, type WalrusReadAdapterConfig, type WalrusReadOptions, type WalrusUploadCommonOptions, type WalrusWriteAdapter, } from "./walrus/index.js";
16
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -5,11 +5,11 @@ export { accessPolicyFromU8, accessPolicyToU8, storageModeFromU8, storageModeToU
5
5
  export { TESTED_SUBSTRATE } from "./compatibility.js";
6
6
  export { DEFAULT_RPC_URLS, morseConfig, Network, } from "./config.js";
7
7
  export { formatUserMessage, } from "./errors.format.js";
8
- export { ABORT_CODES, ConfigurationError, ContractAbortError, MorseError, NotFoundError, SealError, TransportError, UNKNOWN_ABORT_NAME, UnauthorizedError, UncertifiedBlobError, ValidationError, } from "./errors.js";
8
+ export { ABORT_CODES, ConfigurationError, ContractAbortError, MorseError, NotFoundError, SealError, TransportError, UNKNOWN_ABORT_NAME, UnauthorizedError, UncertifiedBlobError, UnsupportedWalletSchemeError, ValidationError, } from "./errors.js";
9
9
  export { addEncryptedEntry, addEncryptedEntryFromBytes, addEntry, addEntryFromBytes, appendDraftRevision, appendEncryptedDraftRevision, createCollection, createPublication, deleteCollection, deleteEntry, deletePublication, destroyPublisherCap, issuePublisherCap, publishDirect, publishFromDraft, revokePublisherCap, transferOwnership, transferPublisherCap, } from "./ops/index.js";
10
10
  export { RpcPublicationReader, } from "./read/index.js";
11
11
  export { buildPublisherSealId, DefaultSealAdapter, decodePublisherSealId, } from "./seal/index.js";
12
12
  export { AccessPolicy, QUILT_PATCH_ID_LENGTH, SealPolicyTag, StorageMode, } from "./types.js";
13
- export { KeypairAdapter, WalletStandardSigner, } from "./wallets/index.js";
13
+ export { BrowserStoragePubkeyCache, KeypairAdapter, WalletStandardSigner, } from "./wallets/index.js";
14
14
  export { DefaultWalrusReadAdapter, DefaultWalrusWriteAdapter, decodeQuiltPatchId, encodeQuiltPatchId, HttpAggregatorReadAdapter, HttpPublisherWriteAdapter, isWalrusFlowCapable, quiltPatchIdFromString, quiltPatchIdToString, } from "./walrus/index.js";
15
15
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACN,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACN,gBAAgB,EAGhB,WAAW,EACX,OAAO,GAGP,MAAM,aAAa,CAAC;AACrB,OAAO,EAEN,iBAAiB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,WAAW,EAGX,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,aAAa,EAEb,SAAS,EAET,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EASN,iBAAiB,EACjB,0BAA0B,EAC1B,QAAQ,EACR,iBAAiB,EACjB,mBAAmB,EACnB,4BAA4B,EAK5B,gBAAgB,EAChB,iBAAiB,EASjB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EAGnB,iBAAiB,EAMjB,aAAa,EACb,gBAAgB,EAIhB,kBAAkB,EAKlB,iBAAiB,EACjB,oBAAoB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EASN,oBAAoB,GAEpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,GAOrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,YAAY,EAYZ,qBAAqB,EAKrB,aAAa,EACb,WAAW,GAOX,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,cAAc,EAMd,oBAAoB,GAGpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,wBAAwB,EACxB,yBAAyB,EAEzB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EAEzB,yBAAyB,EAEzB,mBAAmB,EAInB,sBAAsB,EACtB,oBAAoB,GAepB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACN,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACN,gBAAgB,EAGhB,WAAW,EACX,OAAO,GAGP,MAAM,aAAa,CAAC;AACrB,OAAO,EAEN,iBAAiB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,WAAW,EAGX,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,aAAa,EAEb,SAAS,EAET,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EAEpB,4BAA4B,EAC5B,eAAe,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EASN,iBAAiB,EACjB,0BAA0B,EAC1B,QAAQ,EACR,iBAAiB,EACjB,mBAAmB,EACnB,4BAA4B,EAK5B,gBAAgB,EAChB,iBAAiB,EASjB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EAGnB,iBAAiB,EAMjB,aAAa,EACb,gBAAgB,EAIhB,kBAAkB,EAKlB,iBAAiB,EACjB,oBAAoB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EASN,oBAAoB,GAEpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,GAOrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,YAAY,EAYZ,qBAAqB,EAKrB,aAAa,EACb,WAAW,GAOX,MAAM,YAAY,CAAC;AACpB,OAAO,EAEN,yBAAyB,EAEzB,cAAc,EAOd,oBAAoB,GAGpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,wBAAwB,EACxB,yBAAyB,EAEzB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EAEzB,yBAAyB,EAEzB,mBAAmB,EAInB,sBAAsB,EACtB,oBAAoB,GAepB,MAAM,mBAAmB,CAAC"}
@@ -3,5 +3,5 @@
3
3
  */
4
4
  export type { SimulationReturnValues, WalletAdapter } from "./adapter.js";
5
5
  export { KeypairAdapter } from "./keypair-adapter.js";
6
- export { type WalletSignPersonalMessage, type WalletSignTransaction, type WalletStandardAccount, WalletStandardSigner, type WalletStandardSignerCallbacks, type WalletStandardSignerOptions, } from "./wallet-standard-signer.js";
6
+ export { type BrowserStorageLike, BrowserStoragePubkeyCache, type BrowserStoragePubkeyCacheOptions, type PubkeyCache, type WalletSignPersonalMessage, type WalletSignTransaction, type WalletStandardAccount, WalletStandardSigner, type WalletStandardSignerCallbacks, type WalletStandardSignerOptions, } from "./wallet-standard-signer.js";
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wallets/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACN,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,oBAAoB,EACpB,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,GAChC,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wallets/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACN,KAAK,kBAAkB,EACvB,yBAAyB,EACzB,KAAK,gCAAgC,EACrC,KAAK,WAAW,EAChB,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,oBAAoB,EACpB,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,GAChC,MAAM,6BAA6B,CAAC"}
@@ -2,5 +2,5 @@
2
2
  * Public barrel for the wallet adapter layer.
3
3
  */
4
4
  export { KeypairAdapter } from "./keypair-adapter.js";
5
- export { WalletStandardSigner, } from "./wallet-standard-signer.js";
5
+ export { BrowserStoragePubkeyCache, WalletStandardSigner, } from "./wallet-standard-signer.js";
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wallets/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAIN,oBAAoB,GAGpB,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wallets/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAEN,yBAAyB,EAMzB,oBAAoB,GAGpB,MAAM,6BAA6B,CAAC"}
@@ -90,10 +90,36 @@ export declare class WalletStandardSigner extends Signer {
90
90
  * Walrus signature errors on zkLogin accounts, fall back to a
91
91
  * keypair account.
92
92
  *
93
- * @throws {ConfigurationError} If the account uses multisig, or if no
94
- * candidate scheme produces an address matching `account.address`.
93
+ * @throws {UnsupportedWalletSchemeError} If the account uses multisig, or
94
+ * if no candidate scheme produces an address matching `account.address`.
95
+ * The error carries the raw `publicKeyBytes` and `address` so consumers
96
+ * can either fall back to `fromAccountAsync` (which recovers the real
97
+ * pubkey from a probe signature) or render a wallet-specific CTA.
95
98
  */
96
99
  static fromAccount(account: WalletStandardAccount, callbacks: WalletStandardSignerCallbacks): WalletStandardSigner;
100
+ /**
101
+ * Async variant of `fromAccount`. On `code === "non-canonical-pubkey"`,
102
+ * recovers the real Ed25519 key from a probe `signPersonalMessage` and
103
+ * verifies it derives to `account.address`. One extra wallet popup for
104
+ * Phantom-class wallets; compliant wallets pay no extra cost.
105
+ *
106
+ * Pass `options.pubkeyCache` to skip the probe on subsequent sessions:
107
+ * the SDK reads cached bytes, verifies they derive to `account.address`,
108
+ * and on mismatch calls `clear` (if defined) and re-probes. Successful
109
+ * probes write back via `set`. See `BrowserStoragePubkeyCache` for a
110
+ * `localStorage`-backed default.
111
+ *
112
+ * Recovery handles Ed25519 only; other schemes throw
113
+ * `UnsupportedWalletSchemeError` with `code: "recovery-non-ed25519"`.
114
+ *
115
+ * @throws {UnsupportedWalletSchemeError} On recovery failure (sig
116
+ * length, non-Ed25519 flag, address mismatch). Other failure modes
117
+ * from `fromAccount` (zkLogin shape mismatch, etc.) propagate
118
+ * verbatim without firing the probe.
119
+ */
120
+ static fromAccountAsync(account: WalletStandardAccount, callbacks: WalletStandardSignerCallbacks, options?: {
121
+ pubkeyCache?: PubkeyCache;
122
+ }): Promise<WalletStandardSigner>;
97
123
  getKeyScheme(): SignatureScheme;
98
124
  getPublicKey(): PublicKey;
99
125
  sign(_bytes: Uint8Array): Promise<Uint8Array<ArrayBuffer>>;
@@ -115,4 +141,46 @@ export declare class WalletStandardSigner extends Signer {
115
141
  effects: true;
116
142
  }>>;
117
143
  }
144
+ /**
145
+ * Pluggable storage for pubkeys recovered by `fromAccountAsync`. Used to
146
+ * skip the probe `signPersonalMessage` popup on subsequent sessions for
147
+ * wallets that return a non-canonical `account.publicKey` (Phantom).
148
+ * Methods may be sync or async to support browser `localStorage` (sync),
149
+ * `IndexedDB` (async), and server-side KV stores (async).
150
+ *
151
+ * Cache hits are still verified to derive to `account.address` before being
152
+ * trusted; on mismatch the SDK calls `clear` (if defined) and re-probes.
153
+ */
154
+ export interface PubkeyCache {
155
+ get(address: string): Uint8Array | null | Promise<Uint8Array | null>;
156
+ set(address: string, pubkey: Uint8Array): void | Promise<void>;
157
+ clear?(address: string): void | Promise<void>;
158
+ }
159
+ /** Subset of the DOM `Storage` interface that `BrowserStoragePubkeyCache` needs. */
160
+ export interface BrowserStorageLike {
161
+ getItem(key: string): string | null;
162
+ setItem(key: string, value: string): void;
163
+ removeItem(key: string): void;
164
+ }
165
+ export interface BrowserStoragePubkeyCacheOptions {
166
+ /** Defaults to `globalThis.localStorage`. Pass a custom backend for tests or `sessionStorage`. */
167
+ readonly storage?: BrowserStorageLike;
168
+ /** Key prefix to namespace inside the storage. Defaults to `"morse-sdk:wallet-pubkey:"`. */
169
+ readonly prefix?: string;
170
+ }
171
+ /**
172
+ * Sync `PubkeyCache` backed by browser `localStorage` (or any DOM
173
+ * `Storage`-like). Pubkeys are stored as base64 strings under
174
+ * `<prefix><address>`. Throws `ConfigurationError` on construction if
175
+ * `globalThis.localStorage` is unavailable and no `storage` was passed
176
+ * (e.g. SSR/Node without polyfill); inject a storage backend or use a
177
+ * different cache implementation in non-browser contexts.
178
+ */
179
+ export declare class BrowserStoragePubkeyCache implements PubkeyCache {
180
+ #private;
181
+ constructor(options?: BrowserStoragePubkeyCacheOptions);
182
+ get(address: string): Uint8Array | null;
183
+ set(address: string, pubkey: Uint8Array): void;
184
+ clear(address: string): void;
185
+ }
118
186
  //# sourceMappingURL=wallet-standard-signer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-standard-signer.d.ts","sourceRoot":"","sources":["../../src/wallets/wallet-standard-signer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EACN,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,MAAM,EACN,MAAM,0BAA0B,CAAC;AAKlC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAM5D;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE;IAC3C,WAAW,EAAE,WAAW,CAAC;CACzB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAElC;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE;IAC/C,OAAO,EAAE,UAAU,CAAC;CACpB,KAAK,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEpD,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC;IAChD,QAAQ,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;CACxD;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CACtC;AAED,8EAA8E;AAC9E,MAAM,WAAW,6BAA6B;IAC7C,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC;IAChD,QAAQ,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;CACxD;AAED;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,MAAM;;gBAMnC,OAAO,EAAE,2BAA2B;IAQhD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,MAAM,CAAC,WAAW,CACjB,OAAO,EAAE,qBAAqB,EAC9B,SAAS,EAAE,6BAA6B,GACtC,oBAAoB;IAUd,YAAY,IAAI,eAAe;IAI/B,YAAY,IAAI,SAAS;IAIzB,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAMpD,mBAAmB,CACjC,OAAO,EAAE,UAAU,GACjB,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAIhD;;;;;OAKG;IACY,yBAAyB,CAAC,EACxC,WAAW,EACX,MAAM,GACN,EAAE;QACF,WAAW,EAAE,WAAW,CAAC;QACzB,MAAM,EAAE,iBAAiB,CAAC;KAC1B,GAAG,OAAO,CACV,cAAc,CAAC,iBAAiB,CAAC;QAChC,WAAW,EAAE,IAAI,CAAC;QAClB,OAAO,EAAE,IAAI,CAAC;KACd,CAAC,CACF;CASD"}
1
+ {"version":3,"file":"wallet-standard-signer.d.ts","sourceRoot":"","sources":["../../src/wallets/wallet-standard-signer.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ import { Secp256k1PublicKey } from "@mysten/sui/keypairs/secp256k1";
24
24
  import { Secp256r1PublicKey } from "@mysten/sui/keypairs/secp256r1";
25
25
  import { normalizeSuiAddress } from "@mysten/sui/utils";
26
26
  import { ZkLoginPublicIdentifier } from "@mysten/sui/zklogin";
27
- import { ConfigurationError } from "../errors.js";
27
+ import { ConfigurationError, UnsupportedWalletSchemeError } from "../errors.js";
28
28
  /**
29
29
  * `Signer` backed by wallet-standard callbacks. Supplies methods Walrus and
30
30
  * Seal call; throws on raw-byte signing, which wallets do not expose.
@@ -64,8 +64,11 @@ export class WalletStandardSigner extends Signer {
64
64
  * Walrus signature errors on zkLogin accounts, fall back to a
65
65
  * keypair account.
66
66
  *
67
- * @throws {ConfigurationError} If the account uses multisig, or if no
68
- * candidate scheme produces an address matching `account.address`.
67
+ * @throws {UnsupportedWalletSchemeError} If the account uses multisig, or
68
+ * if no candidate scheme produces an address matching `account.address`.
69
+ * The error carries the raw `publicKeyBytes` and `address` so consumers
70
+ * can either fall back to `fromAccountAsync` (which recovers the real
71
+ * pubkey from a probe signature) or render a wallet-specific CTA.
69
72
  */
70
73
  static fromAccount(account, callbacks) {
71
74
  const { publicKey, keyScheme } = decodeAccountPublicKey(account);
@@ -76,6 +79,66 @@ export class WalletStandardSigner extends Signer {
76
79
  signPersonalMessage: callbacks.signPersonalMessage,
77
80
  });
78
81
  }
82
+ /**
83
+ * Async variant of `fromAccount`. On `code === "non-canonical-pubkey"`,
84
+ * recovers the real Ed25519 key from a probe `signPersonalMessage` and
85
+ * verifies it derives to `account.address`. One extra wallet popup for
86
+ * Phantom-class wallets; compliant wallets pay no extra cost.
87
+ *
88
+ * Pass `options.pubkeyCache` to skip the probe on subsequent sessions:
89
+ * the SDK reads cached bytes, verifies they derive to `account.address`,
90
+ * and on mismatch calls `clear` (if defined) and re-probes. Successful
91
+ * probes write back via `set`. See `BrowserStoragePubkeyCache` for a
92
+ * `localStorage`-backed default.
93
+ *
94
+ * Recovery handles Ed25519 only; other schemes throw
95
+ * `UnsupportedWalletSchemeError` with `code: "recovery-non-ed25519"`.
96
+ *
97
+ * @throws {UnsupportedWalletSchemeError} On recovery failure (sig
98
+ * length, non-Ed25519 flag, address mismatch). Other failure modes
99
+ * from `fromAccount` (zkLogin shape mismatch, etc.) propagate
100
+ * verbatim without firing the probe.
101
+ */
102
+ static async fromAccountAsync(account, callbacks, options) {
103
+ try {
104
+ return WalletStandardSigner.fromAccount(account, callbacks);
105
+ }
106
+ catch (error) {
107
+ if (!(error instanceof UnsupportedWalletSchemeError) ||
108
+ error.code !== "non-canonical-pubkey") {
109
+ throw error;
110
+ }
111
+ const cache = options?.pubkeyCache;
112
+ if (cache !== undefined) {
113
+ const cached = await cache.get(account.address);
114
+ if (cached !== null) {
115
+ const verified = verifyCachedEd25519PubKey(cached, account.address);
116
+ if (verified !== null) {
117
+ return new WalletStandardSigner({
118
+ publicKey: verified,
119
+ keyScheme: "ED25519",
120
+ signTransaction: callbacks.signTransaction,
121
+ signPersonalMessage: callbacks.signPersonalMessage,
122
+ });
123
+ }
124
+ // Cached bytes did not derive to account.address (stale entry,
125
+ // wallet switch, or planted bytes). Drop it and fall through
126
+ // to a fresh probe.
127
+ await cache.clear?.(account.address);
128
+ }
129
+ }
130
+ const recovered = await recoverEd25519PublicKeyFromSignature(account, callbacks.signPersonalMessage);
131
+ if (cache !== undefined) {
132
+ await cache.set(account.address, recovered.toRawBytes());
133
+ }
134
+ return new WalletStandardSigner({
135
+ publicKey: recovered,
136
+ keyScheme: "ED25519",
137
+ signTransaction: callbacks.signTransaction,
138
+ signPersonalMessage: callbacks.signPersonalMessage,
139
+ });
140
+ }
141
+ }
79
142
  getKeyScheme() {
80
143
  return this.#keyScheme;
81
144
  }
@@ -153,7 +216,83 @@ function decodeAccountPublicKey(account) {
153
216
  // Fall through.
154
217
  }
155
218
  }
156
- throw new ConfigurationError(`WalletStandardSigner: account.publicKey is ${bytes.length} bytes and matches neither a raw nor a flag-prefixed (Sui canonical) form of Ed25519, Secp256k1, Secp256r1, or Passkey, nor a zkLogin identifier, for address ${account.address}. This suggests a multisig or unknown signature scheme; implement a custom Signer.`);
219
+ // A 0x05-prefixed buffer longer than 33 bytes is shape-consistent with a
220
+ // zkLogin identifier; we already attempted decode above and it failed.
221
+ // Tag it distinctly so the async recovery flow does not fire a probe
222
+ // (zkLogin signs via ZK proof, not Ed25519 — the probe cannot succeed).
223
+ const looksLikeMalformedZkLogin = bytes.length > 33 && bytes[0] === 0x05;
224
+ throw new UnsupportedWalletSchemeError(looksLikeMalformedZkLogin
225
+ ? `WalletStandardSigner: account.publicKey is ${bytes.length} bytes with a zkLogin-shaped prefix but does not decode to a valid zkLogin identifier for address ${account.address}. The wallet may be misreporting its zkLogin identifier; signature-based recovery is not applicable (zkLogin signs via ZK proof, not Ed25519). Implement a custom Signer.`
226
+ : `WalletStandardSigner: account.publicKey is ${bytes.length} bytes and matches neither a raw nor a flag-prefixed (Sui canonical) form of Ed25519, Secp256k1, Secp256r1, or Passkey, nor a zkLogin identifier, for address ${account.address}. The wallet may be using a non-canonical publicKey encoding (e.g. Phantom's Sui adapter); retry with WalletStandardSigner.fromAccountAsync to recover the real key from a probe signature, or implement a custom Signer.`, {
227
+ code: looksLikeMalformedZkLogin
228
+ ? "malformed-zklogin"
229
+ : "non-canonical-pubkey",
230
+ publicKeyBytes: bytes,
231
+ address: account.address,
232
+ });
233
+ }
234
+ /**
235
+ * Length of a canonical Sui Ed25519 signature blob: 1-byte flag (0x00) +
236
+ * 64-byte signature + 32-byte raw pubkey.
237
+ */
238
+ const ED25519_SIGNATURE_BLOB_LENGTH = 97;
239
+ const ED25519_FLAG = 0x00;
240
+ const PROBE_MESSAGE_PREFIX = "morse-sdk:wallet-pubkey-recovery:";
241
+ /**
242
+ * Recover the Ed25519 public key by extracting it from a probe signature.
243
+ * Sui's signature blob is `flag || sig || pk` (97 bytes for Ed25519); the
244
+ * last 32 bytes are the raw key. The recovered key is verified to derive
245
+ * to `account.address` before being trusted.
246
+ */
247
+ async function recoverEd25519PublicKeyFromSignature(account, signPersonalMessage) {
248
+ const probe = new TextEncoder().encode(PROBE_MESSAGE_PREFIX + account.address);
249
+ const { signature } = await signPersonalMessage({ message: probe });
250
+ const sigBytes = fromBase64(signature);
251
+ if (sigBytes.length !== ED25519_SIGNATURE_BLOB_LENGTH) {
252
+ throw new UnsupportedWalletSchemeError(`Wallet returned a ${sigBytes.length}-byte signature; expected ${ED25519_SIGNATURE_BLOB_LENGTH} bytes (Ed25519 canonical: flag || sig || pk). Recovery from this signature shape is not supported.`, {
253
+ code: "recovery-sig-length",
254
+ publicKeyBytes: new Uint8Array(Array.from(account.publicKey)),
255
+ address: account.address,
256
+ });
257
+ }
258
+ if (sigBytes[0] !== ED25519_FLAG) {
259
+ throw new UnsupportedWalletSchemeError(`Wallet signed with non-Ed25519 scheme (signature flag 0x${sigBytes[0]?.toString(16).padStart(2, "0")}); recovery is only implemented for Ed25519.`, {
260
+ code: "recovery-non-ed25519",
261
+ publicKeyBytes: new Uint8Array(Array.from(account.publicKey)),
262
+ address: account.address,
263
+ });
264
+ }
265
+ const recoveredRaw = sigBytes.slice(65, 97);
266
+ const publicKey = new Ed25519PublicKey(recoveredRaw);
267
+ const derived = normalizeSuiAddress(publicKey.toSuiAddress());
268
+ const expected = normalizeSuiAddress(account.address);
269
+ if (derived !== expected) {
270
+ throw new UnsupportedWalletSchemeError(`Pubkey recovered from probe signature derives to ${derived}, which does not match account.address ${expected}. The wallet may have signed with a different key than it advertises.`, {
271
+ code: "recovery-address-mismatch",
272
+ publicKeyBytes: new Uint8Array(Array.from(account.publicKey)),
273
+ address: account.address,
274
+ });
275
+ }
276
+ return publicKey;
277
+ }
278
+ /**
279
+ * Validate cached pubkey bytes: must be exactly 32 bytes and must derive to
280
+ * the expected Sui address. Returns the constructed key on success, null
281
+ * on any failure so the caller can clear and re-probe.
282
+ */
283
+ function verifyCachedEd25519PubKey(bytes, expectedAddress) {
284
+ if (bytes.length !== 32) {
285
+ return null;
286
+ }
287
+ try {
288
+ const publicKey = new Ed25519PublicKey(bytes);
289
+ const derived = normalizeSuiAddress(publicKey.toSuiAddress());
290
+ const expected = normalizeSuiAddress(expectedAddress);
291
+ return derived === expected ? publicKey : null;
292
+ }
293
+ catch {
294
+ return null;
295
+ }
157
296
  }
158
297
  /**
159
298
  * Build the list of (scheme, public-key-constructor) pairs to try against
@@ -204,4 +343,52 @@ function candidateInterpretations(bytes) {
204
343
  }
205
344
  return list;
206
345
  }
346
+ /**
347
+ * Sync `PubkeyCache` backed by browser `localStorage` (or any DOM
348
+ * `Storage`-like). Pubkeys are stored as base64 strings under
349
+ * `<prefix><address>`. Throws `ConfigurationError` on construction if
350
+ * `globalThis.localStorage` is unavailable and no `storage` was passed
351
+ * (e.g. SSR/Node without polyfill); inject a storage backend or use a
352
+ * different cache implementation in non-browser contexts.
353
+ */
354
+ export class BrowserStoragePubkeyCache {
355
+ #storage;
356
+ #prefix;
357
+ constructor(options = {}) {
358
+ const storage = options.storage ?? globalThis.localStorage;
359
+ if (!storage) {
360
+ throw new ConfigurationError("BrowserStoragePubkeyCache: globalThis.localStorage is not available. In SSR / Node contexts, guard construction with `typeof localStorage !== 'undefined'`, defer to a client-only component, or pass an explicit `storage` backend (e.g. a Redis-backed PubkeyCache implementation).");
361
+ }
362
+ this.#storage = storage;
363
+ this.#prefix = options.prefix ?? "morse-sdk:wallet-pubkey:";
364
+ }
365
+ get(address) {
366
+ const value = this.#storage.getItem(this.#prefix + address);
367
+ // Some Storage shims (jsdom variants, RN AsyncStorage wrappers) return
368
+ // "" instead of null on a missing key; treat both as a miss.
369
+ if (!value) {
370
+ return null;
371
+ }
372
+ try {
373
+ return fromBase64(value);
374
+ }
375
+ catch {
376
+ // Corrupt entry; treat as miss. SDK will re-probe and overwrite.
377
+ return null;
378
+ }
379
+ }
380
+ set(address, pubkey) {
381
+ this.#storage.setItem(this.#prefix + address, toBase64(pubkey));
382
+ }
383
+ clear(address) {
384
+ this.#storage.removeItem(this.#prefix + address);
385
+ }
386
+ }
387
+ function toBase64(bytes) {
388
+ let binary = "";
389
+ for (let i = 0; i < bytes.length; i += 1) {
390
+ binary += String.fromCharCode(bytes[i] ?? 0);
391
+ }
392
+ return btoa(binary);
393
+ }
207
394
  //# sourceMappingURL=wallet-standard-signer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-standard-signer.js","sourceRoot":"","sources":["../../src/wallets/wallet-standard-signer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet-standard-signer.js","sourceRoot":"","sources":["../../src/wallets/wallet-standard-signer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcadiasystems/morse-sdk",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "TypeScript SDK for Morse dCMS on the Sui blockchain.",
5
5
  "license": "MIT",
6
6
  "type": "module",