@1sat/types 0.0.39 → 0.0.40

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.
@@ -6,22 +6,44 @@ export declare const MAP_PREFIX = "1PuQa7K62MiKCtssSLKy1kh56WWU7MtUR5";
6
6
  /** Ordinal inscription marker */
7
7
  export declare const ORD_PREFIX = "ord";
8
8
  export declare const FUNDING_BASKET = "default";
9
- export declare const ORDINALS_BASKET = "p 1sat ordinals";
10
- export declare const BSV21_BASKET = "p 1sat bsv21";
11
- export declare const BSV21_AUTH_BASKET = "p 1sat bsv21-auth";
12
- export declare const BSV21_DEPLOY_FUNDING_BASKET = "p 1sat bsv21-deploy-funding";
9
+ /**
10
+ * Preferred inventory baskets (BRC-147 collectables = `1sat`). Plain names —
11
+ * not P-baskets. Permission routing for createAction stays on `p 1sat …`
12
+ * **labels**; basket list/internalize uses the known-set check in the module
13
+ * when registered, else generic WPM basket access.
14
+ *
15
+ * Legacy `p 1sat …` baskets are not dual-read — migrate once via
16
+ * {@link LEGACY_P1SAT_BASKET_MIGRATIONS} / `moveBasketOutputs`.
17
+ */
18
+ /** Collectables / ordinals inventory (BRC-147). */
19
+ export declare const ONESAT_BASKET = "1sat";
20
+ /** @deprecated Prefer {@link ONESAT_BASKET}; same string. */
21
+ export declare const ORDINALS_BASKET = "1sat";
22
+ export declare const BSV21_BASKET = "bsv21";
23
+ /** @deprecated Auth UTXOs live in {@link BSV21_BASKET} with {@link BSV21_AUTH_TAG}. */
24
+ export declare const BSV21_AUTH_BASKET = "bsv21";
25
+ /** Tag on mint-authority BSV21 outputs (no amt). */
26
+ export declare const BSV21_AUTH_TAG = "bsv21:auth";
13
27
  /** Tag on a single-CA deploy output; tokenId is the outpoint (`txid_vout`). */
14
28
  export declare const BSV21_DEPLOY_TAG = "bsv21:deploy";
15
- export declare const OPNS_BASKET = "p 1sat opns";
29
+ export declare const OPNS_BASKET = "opns";
16
30
  /**
17
31
  * Host-wallet basket for subscription receipt dust (1 sat to host).
18
32
  * Customer identity is **not** in the locking script — only wallet-local tags.
19
33
  */
20
- export declare const HOSTING_BASKET = "p 1sat hosting";
21
- export declare const LOCK_BASKET = "p 1sat lock";
22
- export declare const SIGMA_BASKET = "p 1sat sigma";
23
- export declare const BSOCIAL_BASKET = "p 1sat bsocial";
34
+ export declare const HOSTING_BASKET = "hosting";
35
+ export declare const LOCK_BASKET = "lock";
36
+ export declare const SIGMA_BASKET = "sigma";
37
+ export declare const BSOCIAL_BASKET = "bsocial";
24
38
  export declare const BAP_BASKET = "bap";
39
+ /** All preferred 1Sat asset baskets (for module basket-access gating). */
40
+ export declare const ONESAT_ASSET_BASKETS: readonly string[];
41
+ /** Legacy P-basket → preferred basket. Migrate only; no dual-read. */
42
+ export declare const LEGACY_P1SAT_BASKET_MIGRATIONS: ReadonlyArray<{
43
+ from: string;
44
+ to: string;
45
+ }>;
46
+ export declare function isOneSatAssetBasket(basket: string): boolean;
25
47
  /**
26
48
  * Holding basket for plain BSV received at the user's P1SAT-derived
27
49
  * deposit address. UTXOs land here via `internalizeBeef` and stay until
@@ -55,10 +77,20 @@ export declare const ONESAT_MAINNET_CONTENT_URL = "https://api.1sat.app/content"
55
77
  /** 1Sat API content URL (testnet) */
56
78
  export declare const ONESAT_TESTNET_CONTENT_URL = "https://testnet.api.1sat.app/content";
57
79
  /**
58
- * 1Sat ecosystem signing protocol. All 1Sat asset operations (ordinals,
59
- * BSV21, locks, OPNS, cosign, MNEE, deposits) sign and derive under this
60
- * protocol. The `'p '` prefix routes calls to the registered 1Sat permission
61
- * module per BRC-0098.
80
+ * Preferred default key-derivation protocol for new 1Sat asset outputs.
81
+ * Plain name not a BRC-99 P-protocol. Spends always use whatever
82
+ * `protocolID` was recorded in customInstructions (including legacy
83
+ * `[0,'p 1sat']` rows).
84
+ */
85
+ export declare const ONESAT_PROTOCOL: [0 | 1 | 2, string];
86
+ /**
87
+ * BRC-98 / BRC-165 module probe protocol (`p <scheme> <rest>` → `p 1sat probe`).
88
+ * Used by {@link hasOneSatModule}. Not for inventory keys or spend unlock CI.
89
+ */
90
+ export declare const P1SAT_MODULE_PROTOCOL: [0 | 1 | 2, string];
91
+ /**
92
+ * @deprecated Prefer {@link ONESAT_PROTOCOL} for new keys.
93
+ * Module probe is {@link P1SAT_MODULE_PROTOCOL}. Same as ONESAT_PROTOCOL.
62
94
  */
63
95
  export declare const P1SAT_PROTOCOL: [0 | 1 | 2, string];
64
96
  /** customInstructions.template when the name is locked with signed PushDrop */
@@ -80,107 +112,40 @@ export declare function hostingExpTag(expiresAtUnix: number): string;
80
112
  export declare function readHostingPayer(tags: string[] | undefined): string | undefined;
81
113
  export declare function readHostingExp(tags: string[] | undefined): number | undefined;
82
114
  /**
83
- * Generic dispatch-trigger label. Added by `createTrackedAction` when no
84
- * asset-specific labels are present, so the module still gets a chance
85
- * to capture the hashOutputs commitment for any 1Sat-asset createAction.
86
- *
87
- * Asset-specific labels (built via {@link buildInputAssetLabel} /
88
- * {@link buildOutputAssetLabel}) carry per-asset lookup keys the module
89
- * uses to render the prompt with rich detail (ordinal name, token amount,
90
- * etc.). The wallet-toolbox enforces a `'p <scheme> <payload>'` shape, so
91
- * a bare `'p 1sat'` is invalid; we use `'p 1sat action'` as the fallback.
92
- */
93
- export declare const P1SAT_LABEL = "p 1sat action";
94
- /**
95
- * Intent label prefix. Payload is `<domain>.<verb>` (e.g. `opns.register`).
96
- * When present, replaces the need for bare {@link P1SAT_LABEL} as the
97
- * WPM dispatch trigger for createAction.
115
+ * Registered permission scheme ids. Each maps to one primary storage basket
116
+ * of the same name (except where a profile documents otherwise).
98
117
  */
99
- export declare const P1SAT_INTENT_LABEL_PREFIX = "p 1sat intent ";
100
- /** Well-known P1Sat createAction intents (permission apply dispatch keys). */
101
- export declare const P1SAT_INTENTS: {
102
- readonly OPNS_REGISTER: "opns.register";
103
- readonly OPNS_DEREGISTER: "opns.deregister";
104
- readonly OPNS_LIST: "opns.list";
105
- readonly OPNS_TRANSFER: "opns.transfer";
106
- readonly OPNS_CANCEL_LISTING: "opns.cancel-listing";
107
- readonly OPNS_PURCHASE: "opns.purchase";
108
- readonly ORDINAL_TRANSFER: "ordinal.transfer";
109
- readonly ORDINAL_LIST: "ordinal.list";
110
- readonly ORDINAL_CANCEL_LISTING: "ordinal.cancel-listing";
111
- readonly ORDINAL_PURCHASE: "ordinal.purchase";
112
- readonly ORDINAL_BURN: "ordinal.burn";
113
- readonly ORDINAL_INSCRIBE: "ordinal.inscribe";
114
- readonly ORDINAL_INSCRIBE_SIGMA: "ordinal.inscribe-sigma";
115
- readonly ORDINAL_MINT_COLLECTION: "ordinal.mint-collection";
116
- readonly ORDINAL_MINT_ITEM: "ordinal.mint-item";
117
- readonly LOCK_LOCK: "lock.lock";
118
- readonly LOCK_UNLOCK: "lock.unlock";
119
- readonly BSV21_TRANSFER: "bsv21.transfer";
120
- readonly BSV21_PURCHASE: "bsv21.purchase";
121
- readonly BSV21_MINT: "bsv21.mint";
122
- readonly BSV21_DEPLOY: "bsv21.deploy";
118
+ export declare const PERMISSION_SCHEMES: {
119
+ readonly ONESAT: "1sat";
120
+ readonly OPNS: "opns";
121
+ readonly BSV21: "bsv21";
122
+ readonly LOCK: "lock";
123
123
  };
124
- export type P1SatIntent = (typeof P1SAT_INTENTS)[keyof typeof P1SAT_INTENTS];
125
- /** All known intent id strings (for fail-closed checks). */
126
- export declare const P1SAT_INTENT_IDS: ReadonlySet<string>;
127
- /**
128
- * True if `intent` is a known P1Sat intent id.
129
- */
130
- export declare function isKnownP1SatIntent(intent: string): intent is P1SatIntent;
131
- /**
132
- * Build `p 1sat intent <domain>.<verb>`.
133
- */
134
- export declare function buildIntentLabel(intent: string): string;
135
- /**
136
- * First `p 1sat intent …` label payload, or undefined.
137
- */
138
- export declare function parseIntentLabel(labels: string[] | undefined): string | undefined;
139
- /**
140
- * Action-id label prefix. Payload is the hex actionId that also appears in
141
- * each basketed output's `id:<actionId>_<index>` tag.
142
- *
143
- * The actionId is the action's correlator: it is stamped before apply runs,
144
- * so both the action and apply can derive the same intermediate keyIDs
145
- * (e.g. the Sigma anchor) without passing anything between them. Nothing may
146
- * travel back from apply to the action — `WalletPermissionsManager` rebuilds
147
- * `labels` into a new array before the module sees the args, so writes there
148
- * are not visible to the caller.
149
- */
150
- export declare const P1SAT_ACTION_ID_LABEL_PREFIX = "p 1sat action-id ";
151
- /**
152
- * Build `p 1sat action-id <actionId>`.
153
- */
154
- export declare function buildActionIdLabel(actionId: string): string;
155
- /**
156
- * First `p 1sat action-id …` label payload, or undefined.
157
- */
158
- export declare function parseActionIdLabel(labels: string[] | undefined): string | undefined;
124
+ export type PermissionSchemeId = (typeof PERMISSION_SCHEMES)[keyof typeof PERMISSION_SCHEMES];
125
+ /** Scheme ids that ship with the shared permission-module toolkit. */
126
+ export declare const PERMISSION_SCHEME_IDS: readonly PermissionSchemeId[];
127
+ export declare function isPermissionSchemeId(s: string): s is PermissionSchemeId;
128
+ /** Primary storage basket for a scheme (today: scheme id === basket name). */
129
+ export declare function basketForScheme(scheme: PermissionSchemeId): string;
130
+ /** Scheme that owns a storage basket, if any. */
131
+ export declare function schemeForBasket(basket: string): PermissionSchemeId | undefined;
132
+ /** Dispatch label: `p <scheme> action` — routes createAction when no input label. */
133
+ export declare function buildActionDispatchLabel(scheme: PermissionSchemeId): string;
134
+ /** @deprecated Prefer {@link buildActionDispatchLabel}(`1sat`). */
135
+ export declare const P1SAT_LABEL: string;
159
136
  /**
160
- * True if labels already route createAction to the 1Sat permission module
161
- * (bare action label or any intent label).
137
+ * True if labels already route createAction to `scheme` (any well-formed
138
+ * `p <scheme> <payload>` label, including bare action dispatch).
162
139
  */
140
+ export declare function hasSchemeDispatchLabel(labels: string[] | undefined, scheme: PermissionSchemeId): boolean;
141
+ /** True if any known asset scheme is addressed by a P-label. */
142
+ export declare function hasAssetDispatchLabel(labels: string[] | undefined): boolean;
143
+ /** @deprecated Prefer {@link hasSchemeDispatchLabel} / {@link hasAssetDispatchLabel}. */
163
144
  export declare function hasP1SatDispatchLabel(labels: string[] | undefined): boolean;
164
- /**
165
- * Shared `'p 1sat '` prefix on every 1Sat asset basket. Used by the
166
- * WalletPermissionsManager to route basket-scoped calls (listOutputs,
167
- * internalizeAction, etc.) through the 1Sat permission module.
168
- */
169
- export declare const P1SAT_BASKET_PREFIX = "p 1sat ";
170
- /**
171
- * Label prefix recognized by the 1Sat permission module. Carries the
172
- * `'p 1sat'` dispatch trigger; payload is `'<basket-suffix> <id>'`
173
- * where `<basket-suffix>` is the asset basket name with the shared
174
- * `'p 1sat '` prefix stripped (e.g. `'ordinals'`, `'bsv21'`). Encoding
175
- * only the suffix keeps the payload space-free so the parser can split
176
- * cleanly on the boundary between basket and id.
177
- *
178
- * Outputs don't need a label: the SDK sets tags directly on
179
- * `args.outputs[i].tags` (unencrypted, visible to the module), and
180
- * `args.outputs[i].lockingScript` is cryptographically committed to
181
- * the final tx. The module reads both directly.
182
- */
183
- export declare const P1SAT_INPUT_LABEL_PREFIX = "p 1sat input ";
145
+ /** Ensure `p <scheme> action` is present (unless another payload label for that scheme exists). */
146
+ export declare function ensureSchemeActionLabel(labels: string[] | undefined, scheme: PermissionSchemeId): string[];
147
+ /** @deprecated Prefer {@link ensureSchemeActionLabel}(`labels`, `1sat`). */
148
+ export declare function ensureP1SatActionLabel(labels: string[] | undefined): string[];
184
149
  /**
185
150
  * Byte length of the zero-filled signature field carried by an unsealed
186
151
  * `opns.register` lock. The action emits the complete PushDrop script with
@@ -190,40 +155,52 @@ export declare const P1SAT_INPUT_LABEL_PREFIX = "p 1sat input ";
190
155
  */
191
156
  export declare const OPNS_REGISTER_SIG_PLACEHOLDER_LEN = 72;
192
157
  /**
193
- * Build a label that points the 1Sat permission module at a specific
194
- * input asset record in the wallet's storage.
195
- *
196
- * `id` is the per-output asset id assigned by `createTrackedAction`
197
- * (`id:<actionId>_<vout>`) — the value stored on the input's `id:` tag,
198
- * without the `id:` prefix. The module resolves the record via
199
- * `listOutputs({ basket, tags: [id:<id>], tagQueryMode: 'all' })` — a
200
- * single indexed lookup, not a basket scan.
201
- *
202
- * Inputs without an `id:` tag (e.g. created before tracked-action ids
203
- * existed) can't be enriched; callers should skip emitting the label
204
- * for those rather than scanning by outpoint.
158
+ * Build `p <scheme> input id <key>` for a held row.
205
159
  *
206
- * The shared {@link P1SAT_BASKET_PREFIX} is stripped from the basket
207
- * before encoding so basket names with embedded spaces don't collide
208
- * with the basket↔id space delimiter. Non-P1Sat baskets pass through
209
- * unstripped — those won't resolve in the permission module and the
210
- * input simply drops from enrichment (graceful degradation to the
211
- * generic transaction approval UI).
212
- *
213
- * @param basket - Asset basket (typically a P1Sat basket constant).
214
- * @param id - The asset id, i.e. the `id:` tag value on the input.
160
+ * `id` is the bare BRC-164 `id:` tag value (no `id:` prefix) and MUST NOT
161
+ * contain spaces. `basket` selects the scheme (scheme id === basket name).
215
162
  */
216
163
  export declare function buildInputAssetLabel(basket: string, id: string): string;
217
164
  /**
218
- * BRC-111 P-label prefix used to tag actions with a BSV21 token id so the
219
- * wallet can filter transaction history per token via
220
- * `wallet.listActions({ labels: [...] })`. As a `'p 1sat '`-prefixed label
221
- * it routes through the 1Sat permission module instead of triggering the
222
- * wallet-toolbox's per-label Protocol Permission prompt.
165
+ * Build `p <scheme> input <outpoint>` for an external (non-wallet) spend
166
+ * (outpoint is one of the action's beefed inputs).
167
+ */
168
+ export declare function buildExternalInputLabel(scheme: PermissionSchemeId, outpoint: string): string;
169
+ export interface ParsedInputAssetLabel {
170
+ scheme: PermissionSchemeId;
171
+ basket: string;
172
+ id: string;
173
+ }
174
+ /**
175
+ * Parse held-row input labels (`p <scheme> input id <key>` only).
176
+ */
177
+ export declare function parseInputAssetLabels(labels: string[] | undefined): ParsedInputAssetLabel[];
178
+ export type ParsedInputLabel = {
179
+ kind: 'id';
180
+ scheme: PermissionSchemeId;
181
+ basket: string;
182
+ id: string;
183
+ } | {
184
+ kind: 'outpoint';
185
+ scheme: PermissionSchemeId;
186
+ outpoint: string;
187
+ };
188
+ /**
189
+ * Parse a single `p <scheme> input …` label.
190
+ *
191
+ * - Held: `p <scheme> input id <key>`
192
+ * - External: `p <scheme> input <outpoint>` (outpoint-shaped single token)
193
+ */
194
+ export declare function parseOneInputLabel(label: string): ParsedInputLabel | undefined;
195
+ /**
196
+ * BRC-111 P-label for BSV21 token history filtering via listActions.
197
+ * Routes through the `bsv21` permission scheme.
223
198
  */
224
- export declare const P1SAT_TOKEN_LABEL_PREFIX = "p 1sat bsv21 ";
199
+ export declare const BSV21_TOKEN_LABEL_PREFIX = "p bsv21 token ";
200
+ /** @deprecated Prefer {@link BSV21_TOKEN_LABEL_PREFIX}. */
201
+ export declare const P1SAT_TOKEN_LABEL_PREFIX = "p bsv21 token ";
225
202
  /**
226
- * Build a BSV21 token label, e.g. `'p 1sat bsv21 <tokenId>'`.
203
+ * Build a BSV21 token history label, e.g. `'p bsv21 token <tokenId>'`.
227
204
  */
228
205
  export declare function buildTokenLabel(tokenId: string): string;
229
206
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,oDAAoD;AACpD,eAAO,MAAM,UAAU,uCAAuC,CAAA;AAE9D,iCAAiC;AACjC,eAAO,MAAM,UAAU,QAAQ,CAAA;AAM/B,eAAO,MAAM,cAAc,YAAY,CAAA;AACvC;;;;;;;;GAQG;AACH,mDAAmD;AACnD,eAAO,MAAM,aAAa,SAAS,CAAA;AACnC,6DAA6D;AAC7D,eAAO,MAAM,eAAe,SAAgB,CAAA;AAC5C,eAAO,MAAM,YAAY,UAAU,CAAA;AACnC,uFAAuF;AACvF,eAAO,MAAM,iBAAiB,UAAe,CAAA;AAC7C,oDAAoD;AACpD,eAAO,MAAM,cAAc,eAAe,CAAA;AAC1C,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,iBAAiB,CAAA;AAC9C,eAAO,MAAM,WAAW,SAAS,CAAA;AACjC;;;GAGG;AACH,eAAO,MAAM,cAAc,YAAY,CAAA;AACvC,eAAO,MAAM,WAAW,SAAS,CAAA;AACjC,eAAO,MAAM,YAAY,UAAU,CAAA;AACnC,eAAO,MAAM,cAAc,YAAY,CAAA;AACvC,eAAO,MAAM,UAAU,QAAQ,CAAA;AAE/B,0EAA0E;AAC1E,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EASjD,CAAA;AAED,sEAAsE;AACtE,eAAO,MAAM,8BAA8B,EAAE,aAAa,CAAC;IAC1D,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;CACV,CAQA,CAAA;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,iBAAiB,CAAA;AAM5C,gDAAgD;AAChD,eAAO,MAAM,kBAAkB,KAAK,CAAA;AAEpC,0DAA0D;AAC1D,eAAO,MAAM,UAAU,IAAI,CAAA;AAE3B,uCAAuC;AACvC,eAAO,MAAM,cAAc,OAAO,CAAA;AAMlC,8BAA8B;AAC9B,eAAO,MAAM,QAAQ,wCAAwC,CAAA;AAE7D,8BAA8B;AAC9B,eAAO,MAAM,gBAAgB,gDAAgD,CAAA;AAE7E,yCAAyC;AACzC,eAAO,MAAM,UAAU,0BAA0B,CAAA;AAEjD,sCAAsC;AACtC,eAAO,MAAM,eAAe,6CAA6C,CAAA;AAEzE,sCAAsC;AACtC,eAAO,MAAM,eAAe,6CAA6C,CAAA;AAEzE,kCAAkC;AAClC,eAAO,MAAM,kBAAkB,yBAAyB,CAAA;AAExD,kCAAkC;AAClC,eAAO,MAAM,kBAAkB,iCAAiC,CAAA;AAEhE,qCAAqC;AACrC,eAAO,MAAM,0BAA0B,iCAAiC,CAAA;AAExE,qCAAqC;AACrC,eAAO,MAAM,0BAA0B,yCAAyC,CAAA;AAMhF;;;;;GAKG;AAEH,eAAO,MAAM,eAAe,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAiB,CAAA;AAEjE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAuB,CAAA;AAE7E;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAmB,CAAA;AAMlE,+EAA+E;AAC/E,eAAO,MAAM,sBAAsB,aAAa,CAAA;AAEhD,0FAA0F;AAC1F,eAAO,MAAM,wBAAwB,UAAU,CAAA;AAE/C,6CAA6C;AAC7C,eAAO,MAAM,0BAA0B,EAAG,QAAiB,CAAA;AAE3D,kDAAkD;AAClD,eAAO,MAAM,kBAAkB,mBAAmB,CAAA;AAElD,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG1D;AAMD,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,WAAW,CAAA;AAEhD,uEAAuE;AACvE,eAAO,MAAM,sBAAsB,SAAS,CAAA;AAE5C,wBAAgB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAQ/E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAQ7E;AAMD;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;CAKrB,CAAA;AAEV,MAAM,MAAM,kBAAkB,GAC7B,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAA;AAE7D,sEAAsE;AACtE,eAAO,MAAM,qBAAqB,EAAE,SAAS,kBAAkB,EAK9D,CAAA;AAID,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,kBAAkB,CAEvE;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAElE;AAED,iDAAiD;AACjD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAG9E;AAED,qFAAqF;AACrF,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAE3E;AAED,mEAAmE;AACnE,eAAO,MAAM,WAAW,QAAsD,CAAA;AAE9E;;;GAGG;AACH,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAC5B,MAAM,EAAE,kBAAkB,GACxB,OAAO,CAIT;AAED,gEAAgE;AAChE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,OAAO,CAG3E;AAED,yFAAyF;AACzF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,OAAO,CAE3E;AAED,mGAAmG;AACnG,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAC5B,MAAM,EAAE,kBAAkB,GACxB,MAAM,EAAE,CAIV;AAED,4EAA4E;AAC5E,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAE7E;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,KAAK,CAAA;AAEnD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAYvE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,EAAE,MAAM,GACd,MAAM,CASR;AAED,MAAM,WAAW,qBAAqB;IACrC,MAAM,EAAE,kBAAkB,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;CACV;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,GAC1B,qBAAqB,EAAE,CAazB;AAED,MAAM,MAAM,gBAAgB,GACzB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAA;AAErE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAkC9E;AAgBD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,mBAAmB,CAAA;AAExD,2DAA2D;AAC3D,eAAO,MAAM,wBAAwB,mBAA2B,CAAA;AAEhE;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAM7E;AAED,eAAO,MAAM,wBAAwB,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAGxD,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAgB,CAAA;AAChE,eAAO,MAAM,UAAU,aAAa,CAAA;AACpC,eAAO,MAAM,kBAAkB,uCAAuC,CAAA;AAMtE,0CAA0C;AAC1C,eAAO,MAAM,eAAe,iNACmL,CAAA;AAE/M,0CAA0C;AAC1C,eAAO,MAAM,eAAe,i4CACm2C,CAAA;AAM/3C,eAAO,MAAM,WAAW,iNACuL,CAAA;AAC/M,eAAO,MAAM,WAAW,mlDACyjD,CAAA;AAMjlD;8CAC8C;AAC9C,eAAO,MAAM,aAAa,6gXACi/W,CAAA;AAE3gX;wBACwB;AACxB,eAAO,MAAM,YAAY,6EACkD,CAAA;AAE3E,+EAA+E;AAC/E,eAAO,MAAM,eAAe,KAAK,CAAA;AAMjC,qDAAqD;AACrD,eAAO,MAAM,cAAc,oHACuF,CAAA;AAElH,sCAAsC;AACtC,eAAO,MAAM,gBAAgB,wBAAwB,CAAA;AAMrD,8CAA8C;AAC9C,eAAO,MAAM,kBAAkB,uBAAuB,CAAA;AAEtD,8CAA8C;AAC9C,eAAO,MAAM,mBAAmB,kFAMtB,CAAA;AAMV,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAuB,CAAA;AAEzE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IACjC,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAA;IACf,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAA;IACb,+DAA+D;IAC/D,gBAAgB,EAAE,MAAM,CAAA;IACxB,iEAAiE;IACjE,gBAAgB,EAAE,MAAM,CAAA;IACxB,4CAA4C;IAC5C,iBAAiB,EAAE,MAAM,CAAA;IACzB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAA;CACjB;AAMD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAmB,CAAA;AACrD,eAAO,MAAM,uBAAuB,QAAgB,CAAA;AAMpD;;;GAGG;AACH,eAAO,MAAM,yBAAyB,QAAc,CAAA;AACpD,sDAAsD;AACtD,eAAO,MAAM,yBAAyB,iBAAiB,CAAA;AACvD,gFAAgF;AAChF,eAAO,MAAM,kBAAkB,iBAAiB,CAAA"}
package/dist/constants.js CHANGED
@@ -12,32 +12,60 @@ export const ORD_PREFIX = 'ord';
12
12
  // Basket Names
13
13
  // ============================================================================
14
14
  export const FUNDING_BASKET = 'default';
15
- // 1Sat asset baskets are P-prefixed so WalletPermissionsManager routes
16
- // listOutputs / internalizeAction / etc. for them through the 1Sat
17
- // permission module rather than through the generic basket-access flow.
18
- // This:
19
- // - lets the 1Sat module gate access with its own UX
20
- // - avoids the double-encryption bug WPM has when a non-P basket is
21
- // internalized alongside a P-label
22
- export const ORDINALS_BASKET = 'p 1sat ordinals';
23
- export const BSV21_BASKET = 'p 1sat bsv21';
24
- export const BSV21_AUTH_BASKET = 'p 1sat bsv21-auth';
25
- export const BSV21_DEPLOY_FUNDING_BASKET = 'p 1sat bsv21-deploy-funding';
15
+ /**
16
+ * Preferred inventory baskets (BRC-147 collectables = `1sat`). Plain names —
17
+ * not P-baskets. Permission routing for createAction stays on `p 1sat …`
18
+ * **labels**; basket list/internalize uses the known-set check in the module
19
+ * when registered, else generic WPM basket access.
20
+ *
21
+ * Legacy `p 1sat …` baskets are not dual-read — migrate once via
22
+ * {@link LEGACY_P1SAT_BASKET_MIGRATIONS} / `moveBasketOutputs`.
23
+ */
24
+ /** Collectables / ordinals inventory (BRC-147). */
25
+ export const ONESAT_BASKET = '1sat';
26
+ /** @deprecated Prefer {@link ONESAT_BASKET}; same string. */
27
+ export const ORDINALS_BASKET = ONESAT_BASKET;
28
+ export const BSV21_BASKET = 'bsv21';
29
+ /** @deprecated Auth UTXOs live in {@link BSV21_BASKET} with {@link BSV21_AUTH_TAG}. */
30
+ export const BSV21_AUTH_BASKET = BSV21_BASKET;
31
+ /** Tag on mint-authority BSV21 outputs (no amt). */
32
+ export const BSV21_AUTH_TAG = 'bsv21:auth';
26
33
  /** Tag on a single-CA deploy output; tokenId is the outpoint (`txid_vout`). */
27
34
  export const BSV21_DEPLOY_TAG = 'bsv21:deploy';
28
- export const OPNS_BASKET = 'p 1sat opns';
35
+ export const OPNS_BASKET = 'opns';
29
36
  /**
30
37
  * Host-wallet basket for subscription receipt dust (1 sat to host).
31
38
  * Customer identity is **not** in the locking script — only wallet-local tags.
32
39
  */
33
- export const HOSTING_BASKET = 'p 1sat hosting';
34
- export const LOCK_BASKET = 'p 1sat lock';
35
- export const SIGMA_BASKET = 'p 1sat sigma';
36
- export const BSOCIAL_BASKET = 'p 1sat bsocial';
37
- // BAP records are 0-sat data outputs (identity registry), never externally
38
- // spendable. They don't interact with the WPM double-encryption path so
39
- // they stay non-P.
40
+ export const HOSTING_BASKET = 'hosting';
41
+ export const LOCK_BASKET = 'lock';
42
+ export const SIGMA_BASKET = 'sigma';
43
+ export const BSOCIAL_BASKET = 'bsocial';
40
44
  export const BAP_BASKET = 'bap';
45
+ /** All preferred 1Sat asset baskets (for module basket-access gating). */
46
+ export const ONESAT_ASSET_BASKETS = [
47
+ ONESAT_BASKET,
48
+ BSV21_BASKET,
49
+ OPNS_BASKET,
50
+ HOSTING_BASKET,
51
+ LOCK_BASKET,
52
+ SIGMA_BASKET,
53
+ BSOCIAL_BASKET,
54
+ BAP_BASKET,
55
+ ];
56
+ /** Legacy P-basket → preferred basket. Migrate only; no dual-read. */
57
+ export const LEGACY_P1SAT_BASKET_MIGRATIONS = [
58
+ { from: 'p 1sat ordinals', to: ONESAT_BASKET },
59
+ { from: 'p 1sat bsv21', to: BSV21_BASKET },
60
+ { from: 'p 1sat opns', to: OPNS_BASKET },
61
+ { from: 'p 1sat hosting', to: HOSTING_BASKET },
62
+ { from: 'p 1sat lock', to: LOCK_BASKET },
63
+ { from: 'p 1sat sigma', to: SIGMA_BASKET },
64
+ { from: 'p 1sat bsocial', to: BSOCIAL_BASKET },
65
+ ];
66
+ export function isOneSatAssetBasket(basket) {
67
+ return ONESAT_ASSET_BASKETS.includes(basket);
68
+ }
41
69
  /**
42
70
  * Holding basket for plain BSV received at the user's P1SAT-derived
43
71
  * deposit address. UTXOs land here via `internalizeBeef` and stay until
@@ -80,12 +108,23 @@ export const ONESAT_TESTNET_CONTENT_URL = 'https://testnet.api.1sat.app/content'
80
108
  // Protocol IDs
81
109
  // ============================================================================
82
110
  /**
83
- * 1Sat ecosystem signing protocol. All 1Sat asset operations (ordinals,
84
- * BSV21, locks, OPNS, cosign, MNEE, deposits) sign and derive under this
85
- * protocol. The `'p '` prefix routes calls to the registered 1Sat permission
86
- * module per BRC-0098.
111
+ * Preferred default key-derivation protocol for new 1Sat asset outputs.
112
+ * Plain name not a BRC-99 P-protocol. Spends always use whatever
113
+ * `protocolID` was recorded in customInstructions (including legacy
114
+ * `[0,'p 1sat']` rows).
87
115
  */
88
- export const P1SAT_PROTOCOL = [0, 'p 1sat'];
116
+ // BRC-100 / wallet-toolbox require protocol names length ≥ 5 ("1sat" is 4).
117
+ export const ONESAT_PROTOCOL = [0, 'onesat'];
118
+ /**
119
+ * BRC-98 / BRC-165 module probe protocol (`p <scheme> <rest>` → `p 1sat probe`).
120
+ * Used by {@link hasOneSatModule}. Not for inventory keys or spend unlock CI.
121
+ */
122
+ export const P1SAT_MODULE_PROTOCOL = [0, 'p 1sat probe'];
123
+ /**
124
+ * @deprecated Prefer {@link ONESAT_PROTOCOL} for new keys.
125
+ * Module probe is {@link P1SAT_MODULE_PROTOCOL}. Same as ONESAT_PROTOCOL.
126
+ */
127
+ export const P1SAT_PROTOCOL = ONESAT_PROTOCOL;
89
128
  // ============================================================================
90
129
  // OpNS identity bind (PushDrop on name UTXO)
91
130
  // ============================================================================
@@ -137,141 +176,76 @@ export function readHostingExp(tags) {
137
176
  }
138
177
  return undefined;
139
178
  }
179
+ // ============================================================================
180
+ // Permission schemes (BRC-99) — one scheme id per asset class
181
+ // ============================================================================
140
182
  /**
141
- * Generic dispatch-trigger label. Added by `createTrackedAction` when no
142
- * asset-specific labels are present, so the module still gets a chance
143
- * to capture the hashOutputs commitment for any 1Sat-asset createAction.
144
- *
145
- * Asset-specific labels (built via {@link buildInputAssetLabel} /
146
- * {@link buildOutputAssetLabel}) carry per-asset lookup keys the module
147
- * uses to render the prompt with rich detail (ordinal name, token amount,
148
- * etc.). The wallet-toolbox enforces a `'p <scheme> <payload>'` shape, so
149
- * a bare `'p 1sat'` is invalid; we use `'p 1sat action'` as the fallback.
150
- */
151
- export const P1SAT_LABEL = 'p 1sat action';
152
- /**
153
- * Intent label prefix. Payload is `<domain>.<verb>` (e.g. `opns.register`).
154
- * When present, replaces the need for bare {@link P1SAT_LABEL} as the
155
- * WPM dispatch trigger for createAction.
183
+ * Registered permission scheme ids. Each maps to one primary storage basket
184
+ * of the same name (except where a profile documents otherwise).
156
185
  */
157
- export const P1SAT_INTENT_LABEL_PREFIX = 'p 1sat intent ';
158
- /** Well-known P1Sat createAction intents (permission apply dispatch keys). */
159
- export const P1SAT_INTENTS = {
160
- OPNS_REGISTER: 'opns.register',
161
- OPNS_DEREGISTER: 'opns.deregister',
162
- OPNS_LIST: 'opns.list',
163
- OPNS_TRANSFER: 'opns.transfer',
164
- OPNS_CANCEL_LISTING: 'opns.cancel-listing',
165
- OPNS_PURCHASE: 'opns.purchase',
166
- ORDINAL_TRANSFER: 'ordinal.transfer',
167
- ORDINAL_LIST: 'ordinal.list',
168
- ORDINAL_CANCEL_LISTING: 'ordinal.cancel-listing',
169
- ORDINAL_PURCHASE: 'ordinal.purchase',
170
- ORDINAL_BURN: 'ordinal.burn',
171
- ORDINAL_INSCRIBE: 'ordinal.inscribe',
172
- ORDINAL_INSCRIBE_SIGMA: 'ordinal.inscribe-sigma',
173
- ORDINAL_MINT_COLLECTION: 'ordinal.mint-collection',
174
- ORDINAL_MINT_ITEM: 'ordinal.mint-item',
175
- LOCK_LOCK: 'lock.lock',
176
- LOCK_UNLOCK: 'lock.unlock',
177
- BSV21_TRANSFER: 'bsv21.transfer',
178
- BSV21_PURCHASE: 'bsv21.purchase',
179
- BSV21_MINT: 'bsv21.mint',
180
- BSV21_DEPLOY: 'bsv21.deploy',
186
+ export const PERMISSION_SCHEMES = {
187
+ ONESAT: '1sat',
188
+ OPNS: 'opns',
189
+ BSV21: 'bsv21',
190
+ LOCK: 'lock',
181
191
  };
182
- /** All known intent id strings (for fail-closed checks). */
183
- export const P1SAT_INTENT_IDS = new Set(Object.values(P1SAT_INTENTS));
184
- /**
185
- * True if `intent` is a known P1Sat intent id.
186
- */
187
- export function isKnownP1SatIntent(intent) {
188
- return P1SAT_INTENT_IDS.has(intent);
192
+ /** Scheme ids that ship with the shared permission-module toolkit. */
193
+ export const PERMISSION_SCHEME_IDS = [
194
+ PERMISSION_SCHEMES.ONESAT,
195
+ PERMISSION_SCHEMES.OPNS,
196
+ PERMISSION_SCHEMES.BSV21,
197
+ PERMISSION_SCHEMES.LOCK,
198
+ ];
199
+ const PERMISSION_SCHEME_SET = new Set(PERMISSION_SCHEME_IDS);
200
+ export function isPermissionSchemeId(s) {
201
+ return PERMISSION_SCHEME_SET.has(s);
189
202
  }
190
- /**
191
- * Build `p 1sat intent <domain>.<verb>`.
192
- */
193
- export function buildIntentLabel(intent) {
194
- return `${P1SAT_INTENT_LABEL_PREFIX}${intent}`;
203
+ /** Primary storage basket for a scheme (today: scheme id === basket name). */
204
+ export function basketForScheme(scheme) {
205
+ return scheme;
195
206
  }
196
- /**
197
- * First `p 1sat intent …` label payload, or undefined.
198
- */
199
- export function parseIntentLabel(labels) {
200
- if (!labels)
201
- return undefined;
202
- for (const label of labels) {
203
- if (!label.startsWith(P1SAT_INTENT_LABEL_PREFIX))
204
- continue;
205
- const intent = label.slice(P1SAT_INTENT_LABEL_PREFIX.length).trim();
206
- if (intent)
207
- return intent;
208
- }
209
- return undefined;
207
+ /** Scheme that owns a storage basket, if any. */
208
+ export function schemeForBasket(basket) {
209
+ const b = basket.trim();
210
+ return isPermissionSchemeId(b) ? b : undefined;
210
211
  }
211
- /**
212
- * Action-id label prefix. Payload is the hex actionId that also appears in
213
- * each basketed output's `id:<actionId>_<index>` tag.
214
- *
215
- * The actionId is the action's correlator: it is stamped before apply runs,
216
- * so both the action and apply can derive the same intermediate keyIDs
217
- * (e.g. the Sigma anchor) without passing anything between them. Nothing may
218
- * travel back from apply to the action — `WalletPermissionsManager` rebuilds
219
- * `labels` into a new array before the module sees the args, so writes there
220
- * are not visible to the caller.
221
- */
222
- export const P1SAT_ACTION_ID_LABEL_PREFIX = 'p 1sat action-id ';
223
- /**
224
- * Build `p 1sat action-id <actionId>`.
225
- */
226
- export function buildActionIdLabel(actionId) {
227
- return `${P1SAT_ACTION_ID_LABEL_PREFIX}${actionId}`;
212
+ /** Dispatch label: `p <scheme> action` — routes createAction when no input label. */
213
+ export function buildActionDispatchLabel(scheme) {
214
+ return `p ${scheme} action`;
228
215
  }
216
+ /** @deprecated Prefer {@link buildActionDispatchLabel}(`1sat`). */
217
+ export const P1SAT_LABEL = buildActionDispatchLabel(PERMISSION_SCHEMES.ONESAT);
229
218
  /**
230
- * First `p 1sat action-id …` label payload, or undefined.
219
+ * True if labels already route createAction to `scheme` (any well-formed
220
+ * `p <scheme> <payload>` label, including bare action dispatch).
231
221
  */
232
- export function parseActionIdLabel(labels) {
233
- if (!labels)
234
- return undefined;
235
- for (const label of labels) {
236
- if (!label.startsWith(P1SAT_ACTION_ID_LABEL_PREFIX))
237
- continue;
238
- const actionId = label.slice(P1SAT_ACTION_ID_LABEL_PREFIX.length).trim();
239
- if (actionId)
240
- return actionId;
241
- }
242
- return undefined;
222
+ export function hasSchemeDispatchLabel(labels, scheme) {
223
+ if (!labels?.length)
224
+ return false;
225
+ const prefix = `p ${scheme} `;
226
+ return labels.some((l) => l.startsWith(prefix) && l.length > prefix.length);
243
227
  }
244
- /**
245
- * True if labels already route createAction to the 1Sat permission module
246
- * (bare action label or any intent label).
247
- */
248
- export function hasP1SatDispatchLabel(labels) {
228
+ /** True if any known asset scheme is addressed by a P-label. */
229
+ export function hasAssetDispatchLabel(labels) {
249
230
  if (!labels?.length)
250
231
  return false;
251
- if (labels.includes(P1SAT_LABEL))
252
- return true;
253
- return labels.some((l) => l.startsWith(P1SAT_INTENT_LABEL_PREFIX));
232
+ return PERMISSION_SCHEME_IDS.some((s) => hasSchemeDispatchLabel(labels, s));
233
+ }
234
+ /** @deprecated Prefer {@link hasSchemeDispatchLabel} / {@link hasAssetDispatchLabel}. */
235
+ export function hasP1SatDispatchLabel(labels) {
236
+ return hasSchemeDispatchLabel(labels, PERMISSION_SCHEMES.ONESAT);
237
+ }
238
+ /** Ensure `p <scheme> action` is present (unless another payload label for that scheme exists). */
239
+ export function ensureSchemeActionLabel(labels, scheme) {
240
+ const next = labels ?? [];
241
+ if (hasSchemeDispatchLabel(next, scheme))
242
+ return next;
243
+ return [...next, buildActionDispatchLabel(scheme)];
244
+ }
245
+ /** @deprecated Prefer {@link ensureSchemeActionLabel}(`labels`, `1sat`). */
246
+ export function ensureP1SatActionLabel(labels) {
247
+ return ensureSchemeActionLabel(labels, PERMISSION_SCHEMES.ONESAT);
254
248
  }
255
- /**
256
- * Shared `'p 1sat '` prefix on every 1Sat asset basket. Used by the
257
- * WalletPermissionsManager to route basket-scoped calls (listOutputs,
258
- * internalizeAction, etc.) through the 1Sat permission module.
259
- */
260
- export const P1SAT_BASKET_PREFIX = 'p 1sat ';
261
- /**
262
- * Label prefix recognized by the 1Sat permission module. Carries the
263
- * `'p 1sat'` dispatch trigger; payload is `'<basket-suffix> <id>'`
264
- * where `<basket-suffix>` is the asset basket name with the shared
265
- * `'p 1sat '` prefix stripped (e.g. `'ordinals'`, `'bsv21'`). Encoding
266
- * only the suffix keeps the payload space-free so the parser can split
267
- * cleanly on the boundary between basket and id.
268
- *
269
- * Outputs don't need a label: the SDK sets tags directly on
270
- * `args.outputs[i].tags` (unencrypted, visible to the module), and
271
- * `args.outputs[i].lockingScript` is cryptographically committed to
272
- * the final tx. The module reads both directly.
273
- */
274
- export const P1SAT_INPUT_LABEL_PREFIX = 'p 1sat input ';
275
249
  /**
276
250
  * Byte length of the zero-filled signature field carried by an unsealed
277
251
  * `opns.register` lock. The action emits the complete PushDrop script with
@@ -281,48 +255,129 @@ export const P1SAT_INPUT_LABEL_PREFIX = 'p 1sat input ';
281
255
  */
282
256
  export const OPNS_REGISTER_SIG_PLACEHOLDER_LEN = 72;
283
257
  /**
284
- * Build a label that points the 1Sat permission module at a specific
285
- * input asset record in the wallet's storage.
286
- *
287
- * `id` is the per-output asset id assigned by `createTrackedAction`
288
- * (`id:<actionId>_<vout>`) — the value stored on the input's `id:` tag,
289
- * without the `id:` prefix. The module resolves the record via
290
- * `listOutputs({ basket, tags: [id:<id>], tagQueryMode: 'all' })` — a
291
- * single indexed lookup, not a basket scan.
292
- *
293
- * Inputs without an `id:` tag (e.g. created before tracked-action ids
294
- * existed) can't be enriched; callers should skip emitting the label
295
- * for those rather than scanning by outpoint.
258
+ * Build `p <scheme> input id <key>` for a held row.
296
259
  *
297
- * The shared {@link P1SAT_BASKET_PREFIX} is stripped from the basket
298
- * before encoding so basket names with embedded spaces don't collide
299
- * with the basket↔id space delimiter. Non-P1Sat baskets pass through
300
- * unstripped — those won't resolve in the permission module and the
301
- * input simply drops from enrichment (graceful degradation to the
302
- * generic transaction approval UI).
303
- *
304
- * @param basket - Asset basket (typically a P1Sat basket constant).
305
- * @param id - The asset id, i.e. the `id:` tag value on the input.
260
+ * `id` is the bare BRC-164 `id:` tag value (no `id:` prefix) and MUST NOT
261
+ * contain spaces. `basket` selects the scheme (scheme id === basket name).
306
262
  */
307
263
  export function buildInputAssetLabel(basket, id) {
308
- const suffix = basket.startsWith(P1SAT_BASKET_PREFIX)
309
- ? basket.slice(P1SAT_BASKET_PREFIX.length)
310
- : basket;
311
- return `${P1SAT_INPUT_LABEL_PREFIX}${suffix} ${id}`;
264
+ const b = basket.trim();
265
+ const assetId = id.trim();
266
+ if (!b)
267
+ throw new Error('Input label requires a basket name');
268
+ if (!assetId || /\s/.test(assetId)) {
269
+ throw new Error('Input id must be a non-empty string without spaces');
270
+ }
271
+ const scheme = schemeForBasket(b);
272
+ if (!scheme) {
273
+ throw new Error(`No permission scheme for basket "${b}"`);
274
+ }
275
+ return `p ${scheme} input id ${assetId}`;
276
+ }
277
+ /**
278
+ * Build `p <scheme> input <outpoint>` for an external (non-wallet) spend
279
+ * (outpoint is one of the action's beefed inputs).
280
+ */
281
+ export function buildExternalInputLabel(scheme, outpoint) {
282
+ const op = outpoint.trim();
283
+ if (!op || /\s/.test(op)) {
284
+ throw new Error('External input outpoint must be a single token');
285
+ }
286
+ if (!isOutpointToken(op)) {
287
+ throw new Error('External input label requires an outpoint-shaped token');
288
+ }
289
+ return `p ${scheme} input ${op}`;
290
+ }
291
+ /**
292
+ * Parse held-row input labels (`p <scheme> input id <key>` only).
293
+ */
294
+ export function parseInputAssetLabels(labels) {
295
+ if (!labels?.length)
296
+ return [];
297
+ const refs = [];
298
+ for (const label of labels) {
299
+ const parsed = parseOneInputLabel(label);
300
+ if (!parsed || parsed.kind !== 'id')
301
+ continue;
302
+ refs.push({
303
+ scheme: parsed.scheme,
304
+ basket: parsed.basket,
305
+ id: parsed.id,
306
+ });
307
+ }
308
+ return refs;
309
+ }
310
+ /**
311
+ * Parse a single `p <scheme> input …` label.
312
+ *
313
+ * - Held: `p <scheme> input id <key>`
314
+ * - External: `p <scheme> input <outpoint>` (outpoint-shaped single token)
315
+ */
316
+ export function parseOneInputLabel(label) {
317
+ if (!label.startsWith('p '))
318
+ return undefined;
319
+ const rest = label.slice(2);
320
+ const sp = rest.indexOf(' ');
321
+ if (sp <= 0)
322
+ return undefined;
323
+ const schemeTok = rest.slice(0, sp);
324
+ if (!isPermissionSchemeId(schemeTok))
325
+ return undefined;
326
+ const afterScheme = rest.slice(sp + 1).trim();
327
+ if (!afterScheme.startsWith('input '))
328
+ return undefined;
329
+ const payload = afterScheme.slice('input '.length).trim();
330
+ if (!payload)
331
+ return undefined;
332
+ // Held: `input id <key>`
333
+ if (payload.startsWith('id ')) {
334
+ const key = payload.slice(3).trim();
335
+ if (!key || /\s/.test(key) || isOutpointToken(key))
336
+ return undefined;
337
+ return {
338
+ kind: 'id',
339
+ scheme: schemeTok,
340
+ basket: basketForScheme(schemeTok),
341
+ id: key,
342
+ };
343
+ }
344
+ // External: single outpoint-shaped token only
345
+ if (!payload.includes(' ') && isOutpointToken(payload)) {
346
+ return {
347
+ kind: 'outpoint',
348
+ scheme: schemeTok,
349
+ outpoint: normalizeOutpointDot(payload),
350
+ };
351
+ }
352
+ return undefined;
353
+ }
354
+ function isOutpointToken(s) {
355
+ if (s.length < 66)
356
+ return false;
357
+ const sep = s[64];
358
+ if (sep !== '.' && sep !== '_')
359
+ return false;
360
+ const txid = s.slice(0, 64);
361
+ const vout = s.slice(65);
362
+ return /^[0-9a-fA-F]{64}$/.test(txid) && /^\d+$/.test(vout);
363
+ }
364
+ function normalizeOutpointDot(s) {
365
+ if (s.length >= 66 && s[64] === '_')
366
+ return `${s.slice(0, 64)}.${s.slice(65)}`;
367
+ return s;
312
368
  }
313
369
  /**
314
- * BRC-111 P-label prefix used to tag actions with a BSV21 token id so the
315
- * wallet can filter transaction history per token via
316
- * `wallet.listActions({ labels: [...] })`. As a `'p 1sat '`-prefixed label
317
- * it routes through the 1Sat permission module instead of triggering the
318
- * wallet-toolbox's per-label Protocol Permission prompt.
370
+ * BRC-111 P-label for BSV21 token history filtering via listActions.
371
+ * Routes through the `bsv21` permission scheme.
319
372
  */
320
- export const P1SAT_TOKEN_LABEL_PREFIX = 'p 1sat bsv21 ';
373
+ export const BSV21_TOKEN_LABEL_PREFIX = 'p bsv21 token ';
374
+ /** @deprecated Prefer {@link BSV21_TOKEN_LABEL_PREFIX}. */
375
+ export const P1SAT_TOKEN_LABEL_PREFIX = BSV21_TOKEN_LABEL_PREFIX;
321
376
  /**
322
- * Build a BSV21 token label, e.g. `'p 1sat bsv21 <tokenId>'`.
377
+ * Build a BSV21 token history label, e.g. `'p bsv21 token <tokenId>'`.
323
378
  */
324
379
  export function buildTokenLabel(tokenId) {
325
- return `${P1SAT_TOKEN_LABEL_PREFIX}${tokenId}`;
380
+ return `${BSV21_TOKEN_LABEL_PREFIX}${tokenId}`;
326
381
  }
327
382
  /**
328
383
  * Read the asset id (the `id:` tag value) off a wallet output's tags.
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E,oDAAoD;AACpD,MAAM,CAAC,MAAM,UAAU,GAAG,oCAAoC,CAAA;AAE9D,iCAAiC;AACjC,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAA;AAE/B,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAA;AACvC;;;;;;;;GAQG;AACH,mDAAmD;AACnD,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAA;AACnC,6DAA6D;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAA;AAC5C,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAA;AACnC,uFAAuF;AACvF,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAA;AAC7C,oDAAoD;AACpD,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAA;AAC1C,+EAA+E;AAC/E,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAA;AAC9C,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAA;AACjC;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAA;AACvC,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAA;AACjC,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAA;AACnC,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAA;AACvC,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAA;AAE/B,0EAA0E;AAC1E,MAAM,CAAC,MAAM,oBAAoB,GAAsB;IACtD,aAAa;IACb,YAAY;IACZ,WAAW;IACX,cAAc;IACd,WAAW;IACX,YAAY;IACZ,cAAc;IACd,UAAU;CACV,CAAA;AAED,sEAAsE;AACtE,MAAM,CAAC,MAAM,8BAA8B,GAGtC;IACJ,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,aAAa,EAAE;IAC9C,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,YAAY,EAAE;IAC1C,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,WAAW,EAAE;IACxC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,cAAc,EAAE;IAC9C,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,WAAW,EAAE;IACxC,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,YAAY,EAAE;IAC1C,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,cAAc,EAAE;CAC9C,CAAA;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAc;IACjD,OAAO,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAC7C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAA;AAE5C,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,gDAAgD;AAChD,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAA;AAEpC,0DAA0D;AAC1D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAA;AAE3B,uCAAuC;AACvC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAA;AAElC,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,8BAA8B;AAC9B,MAAM,CAAC,MAAM,QAAQ,GAAG,qCAAqC,CAAA;AAE7D,8BAA8B;AAC9B,MAAM,CAAC,MAAM,gBAAgB,GAAG,6CAA6C,CAAA;AAE7E,yCAAyC;AACzC,MAAM,CAAC,MAAM,UAAU,GAAG,uBAAuB,CAAA;AAEjD,sCAAsC;AACtC,MAAM,CAAC,MAAM,eAAe,GAAG,0CAA0C,CAAA;AAEzE,sCAAsC;AACtC,MAAM,CAAC,MAAM,eAAe,GAAG,0CAA0C,CAAA;AAEzE,kCAAkC;AAClC,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAA;AAExD,kCAAkC;AAClC,MAAM,CAAC,MAAM,kBAAkB,GAAG,8BAA8B,CAAA;AAEhE,qCAAqC;AACrC,MAAM,CAAC,MAAM,0BAA0B,GAAG,8BAA8B,CAAA;AAExE,qCAAqC;AACrC,MAAM,CAAC,MAAM,0BAA0B,GAAG,sCAAsC,CAAA;AAEhF,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E;;;;;GAKG;AACH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,eAAe,GAAwB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;AAEjE;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAwB,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;AAE7E;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAwB,eAAe,CAAA;AAElE,+EAA+E;AAC/E,6CAA6C;AAC7C,+EAA+E;AAE/E,+EAA+E;AAC/E,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAA;AAEhD,0FAA0F;AAC1F,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAA;AAE/C,6CAA6C;AAC7C,MAAM,CAAC,MAAM,0BAA0B,GAAG,QAAiB,CAAA;AAE3D,kDAAkD;AAClD,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAA;AAElD,oFAAoF;AACpF,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IACjD,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACxC,OAAO,GAAG,wBAAwB,GAAG,IAAI,IAAI,IAAI,EAAE,CAAA;AACpD,CAAC;AAED,+EAA+E;AAC/E,8EAA8E;AAC9E,+EAA+E;AAE/E,4EAA4E;AAC5E,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAA;AAEhD,uEAAuE;AACvE,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAA;AAE5C,MAAM,UAAU,eAAe,CAAC,cAAsB;IACrD,OAAO,GAAG,wBAAwB,GAAG,cAAc,EAAE,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,aAAqB;IAClD,OAAO,GAAG,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAA;AAC/D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAA0B;IAC1D,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IAC3B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAA;QAChD,CAAC;IACF,CAAC;IACD,OAAO,SAAS,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAA0B;IACxD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IAC3B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,sBAAsB,CAAC;YAAE,SAAQ;QACnD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAA;QACxD,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,SAAS,CAAA;AACjB,CAAC;AAED,+EAA+E;AAC/E,8DAA8D;AAC9D,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;CACH,CAAA;AAKV,sEAAsE;AACtE,MAAM,CAAC,MAAM,qBAAqB,GAAkC;IACnE,kBAAkB,CAAC,MAAM;IACzB,kBAAkB,CAAC,IAAI;IACvB,kBAAkB,CAAC,KAAK;IACxB,kBAAkB,CAAC,IAAI;CACvB,CAAA;AAED,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAS,qBAAqB,CAAC,CAAA;AAEpE,MAAM,UAAU,oBAAoB,CAAC,CAAS;IAC7C,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACpC,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,eAAe,CAAC,MAA0B;IACzD,OAAO,MAAM,CAAA;AACd,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,eAAe,CAAC,MAAc;IAC7C,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;IACvB,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC/C,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,wBAAwB,CAAC,MAA0B;IAClE,OAAO,KAAK,MAAM,SAAS,CAAA;AAC5B,CAAC;AAED,mEAAmE;AACnE,MAAM,CAAC,MAAM,WAAW,GAAG,wBAAwB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;AAE9E;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACrC,MAA4B,EAC5B,MAA0B;IAE1B,IAAI,CAAC,MAAM,EAAE,MAAM;QAAE,OAAO,KAAK,CAAA;IACjC,MAAM,MAAM,GAAG,KAAK,MAAM,GAAG,CAAA;IAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;AAC5E,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,qBAAqB,CAAC,MAA4B;IACjE,IAAI,CAAC,MAAM,EAAE,MAAM;QAAE,OAAO,KAAK,CAAA;IACjC,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAA;AAC5E,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,qBAAqB,CAAC,MAA4B;IACjE,OAAO,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAA;AACjE,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,uBAAuB,CACtC,MAA4B,EAC5B,MAA0B;IAE1B,MAAM,IAAI,GAAG,MAAM,IAAI,EAAE,CAAA;IACzB,IAAI,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC;QAAE,OAAO,IAAI,CAAA;IACrD,OAAO,CAAC,GAAG,IAAI,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAA;AACnD,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,sBAAsB,CAAC,MAA4B;IAClE,OAAO,uBAAuB,CAAC,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAA;AAClE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,EAAE,CAAA;AAEnD;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,EAAU;IAC9D,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;IACvB,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,EAAE,CAAA;IACzB,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IAC7D,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;IACtE,CAAC;IACD,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;IACjC,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,GAAG,CAAC,CAAA;IAC1D,CAAC;IACD,OAAO,KAAK,MAAM,aAAa,OAAO,EAAE,CAAA;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACtC,MAA0B,EAC1B,QAAgB;IAEhB,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAA;IAC1B,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IAClE,CAAC;IACD,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;IAC1E,CAAC;IACD,OAAO,KAAK,MAAM,UAAU,EAAE,EAAE,CAAA;AACjC,CAAC;AAQD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACpC,MAA4B;IAE5B,IAAI,CAAC,MAAM,EAAE,MAAM;QAAE,OAAO,EAAE,CAAA;IAC9B,MAAM,IAAI,GAA4B,EAAE,CAAA;IACxC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;QACxC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI;YAAE,SAAQ;QAC7C,IAAI,CAAC,IAAI,CAAC;YACT,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,EAAE,EAAE,MAAM,CAAC,EAAE;SACb,CAAC,CAAA;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACZ,CAAC;AAMD;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC/C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAA;IAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC5B,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,SAAS,CAAA;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACnC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IACtD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC7C,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAA;IACvD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IACzD,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAA;IAE9B,yBAAyB;IACzB,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACnC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAA;QACpE,OAAO;YACN,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC;YAClC,EAAE,EAAE,GAAG;SACP,CAAA;IACF,CAAC;IAED,8CAA8C;IAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,OAAO;YACN,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,oBAAoB,CAAC,OAAO,CAAC;SACvC,CAAA;IACF,CAAC;IAED,OAAO,SAAS,CAAA;AACjB,CAAC;AAED,SAAS,eAAe,CAAC,CAAS;IACjC,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,KAAK,CAAA;IAC/B,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAA;IACjB,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG;QAAE,OAAO,KAAK,CAAA;IAC5C,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC3B,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACxB,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC5D,CAAC;AAED,SAAS,oBAAoB,CAAC,CAAS;IACtC,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG;QAAE,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAA;IAC9E,OAAO,CAAC,CAAA;AACT,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,gBAAgB,CAAA;AAExD,2DAA2D;AAC3D,MAAM,CAAC,MAAM,wBAAwB,GAAG,wBAAwB,CAAA;AAEhE;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC9C,OAAO,GAAG,wBAAwB,GAAG,OAAO,EAAE,CAAA;AAC/C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAA0B;IACxD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IAC3B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC3C,CAAC;IACD,OAAO,SAAS,CAAA;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAwB;IAC5D,CAAC;IACD,iBAAiB;CACjB,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAwB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;AAChE,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAA;AACpC,MAAM,CAAC,MAAM,kBAAkB,GAAG,oCAAoC,CAAA;AAEtE,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E,0CAA0C;AAC1C,MAAM,CAAC,MAAM,eAAe,GAC3B,8MAA8M,CAAA;AAE/M,0CAA0C;AAC1C,MAAM,CAAC,MAAM,eAAe,GAC3B,83CAA83C,CAAA;AAE/3C,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,WAAW,GACvB,8MAA8M,CAAA;AAC/M,MAAM,CAAC,MAAM,WAAW,GACvB,glDAAglD,CAAA;AAEjlD,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;8CAC8C;AAC9C,MAAM,CAAC,MAAM,aAAa,GACzB,0gXAA0gX,CAAA;AAE3gX;wBACwB;AACxB,MAAM,CAAC,MAAM,YAAY,GACxB,0EAA0E,CAAA;AAE3E,+EAA+E;AAC/E,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAA;AAEjC,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E,qDAAqD;AACrD,MAAM,CAAC,MAAM,cAAc,GAC1B,iHAAiH,CAAA;AAElH,sCAAsC;AACtC,MAAM,CAAC,MAAM,gBAAgB,GAAG,qBAAqB,CAAA;AAErD,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,8CAA8C;AAC9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAA;AAEtD,8CAA8C;AAC9C,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAClC,WAAW;IACX,YAAY;IACZ,WAAW;IACX,eAAe;IACf,YAAY;CACH,CAAA;AAEV,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E,iFAAiF;AACjF,MAAM,CAAC,MAAM,iBAAiB,GAAwB,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;AAqBzE,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AACrD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;AAEpD,+EAA+E;AAC/E,gDAAgD;AAChD,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,GAAG,IAAI,CAAA;AACpD,sDAAsD;AACtD,MAAM,CAAC,MAAM,yBAAyB,GAAG,cAAc,CAAA;AACvD,gFAAgF;AAChF,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAA"}
@@ -1,16 +1,59 @@
1
1
  import { describe, expect, test } from 'bun:test';
2
- import { P1SAT_INTENTS, P1SAT_INTENT_LABEL_PREFIX, P1SAT_LABEL, buildIntentLabel, hasP1SatDispatchLabel, parseIntentLabel, } from './constants';
3
- describe('intent labels', () => {
4
- test('build / parse round-trip', () => {
5
- const label = buildIntentLabel(P1SAT_INTENTS.OPNS_REGISTER);
6
- expect(label).toBe(`${P1SAT_INTENT_LABEL_PREFIX}opns.register`);
7
- expect(parseIntentLabel([label, 'other'])).toBe('opns.register');
2
+ import { P1SAT_LABEL, buildActionDispatchLabel, buildExternalInputLabel, buildInputAssetLabel, ensureSchemeActionLabel, hasAssetDispatchLabel, hasSchemeDispatchLabel, parseInputAssetLabels, parseOneInputLabel, } from './constants';
3
+ describe('scheme dispatch labels', () => {
4
+ test('buildActionDispatchLabel', () => {
5
+ expect(buildActionDispatchLabel('1sat')).toBe('p 1sat action');
6
+ expect(buildActionDispatchLabel('opns')).toBe('p opns action');
7
+ expect(P1SAT_LABEL).toBe('p 1sat action');
8
8
  });
9
- test('hasP1SatDispatchLabel accepts intent or bare action', () => {
10
- expect(hasP1SatDispatchLabel([P1SAT_LABEL])).toBe(true);
11
- expect(hasP1SatDispatchLabel([buildIntentLabel('opns.register')])).toBe(true);
12
- expect(hasP1SatDispatchLabel(['p 1sat input opns x'])).toBe(false);
13
- expect(hasP1SatDispatchLabel(undefined)).toBe(false);
9
+ test('hasSchemeDispatchLabel / hasAssetDispatchLabel', () => {
10
+ expect(hasSchemeDispatchLabel([P1SAT_LABEL], '1sat')).toBe(true);
11
+ expect(hasSchemeDispatchLabel(['p opns input id abc'], 'opns')).toBe(true);
12
+ expect(hasSchemeDispatchLabel(['p opns input id abc'], '1sat')).toBe(false);
13
+ expect(hasAssetDispatchLabel(['p bsv21 action'])).toBe(true);
14
+ expect(hasAssetDispatchLabel(['p 1sat'])).toBe(false);
15
+ expect(hasAssetDispatchLabel(undefined)).toBe(false);
16
+ });
17
+ test('ensureSchemeActionLabel', () => {
18
+ expect(ensureSchemeActionLabel(undefined, '1sat')).toEqual([P1SAT_LABEL]);
19
+ expect(ensureSchemeActionLabel(['other'], 'opns')).toEqual([
20
+ 'other',
21
+ 'p opns action',
22
+ ]);
23
+ expect(ensureSchemeActionLabel([P1SAT_LABEL], '1sat')).toEqual([
24
+ P1SAT_LABEL,
25
+ ]);
26
+ });
27
+ });
28
+ describe('input labels', () => {
29
+ test('held: p <scheme> input id <key>', () => {
30
+ const label = buildInputAssetLabel('1sat', 'id1');
31
+ expect(label).toBe('p 1sat input id id1');
32
+ expect(parseInputAssetLabels([label])).toEqual([
33
+ { scheme: '1sat', basket: '1sat', id: 'id1' },
34
+ ]);
35
+ });
36
+ test('opns / bsv21', () => {
37
+ expect(buildInputAssetLabel('opns', 'abc')).toBe('p opns input id abc');
38
+ expect(buildInputAssetLabel('bsv21', 'tok')).toBe('p bsv21 input id tok');
39
+ expect(parseInputAssetLabels(['p opns input id abc'])).toEqual([
40
+ { scheme: 'opns', basket: 'opns', id: 'abc' },
41
+ ]);
42
+ });
43
+ test('rejects legacy basket-middle and bare-key forms', () => {
44
+ expect(parseOneInputLabel('p 1sat input opns oldid')).toBeUndefined();
45
+ expect(parseOneInputLabel('p 1sat input barekey')).toBeUndefined();
46
+ expect(parseInputAssetLabels(['p 1sat input opns oldid'])).toEqual([]);
47
+ });
48
+ test('external: p <scheme> input <outpoint>', () => {
49
+ const op = `${'aa'.repeat(32)}.0`;
50
+ const label = buildExternalInputLabel('1sat', op);
51
+ expect(label).toBe(`p 1sat input ${op}`);
52
+ expect(parseOneInputLabel(label)).toEqual({
53
+ kind: 'outpoint',
54
+ scheme: '1sat',
55
+ outpoint: op,
56
+ });
14
57
  });
15
58
  });
16
59
  //# sourceMappingURL=intentLabel.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"intentLabel.test.js","sourceRoot":"","sources":["../src/intentLabel.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EACN,aAAa,EACb,yBAAyB,EACzB,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,GAChB,MAAM,aAAa,CAAA;AAEpB,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC9B,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACrC,MAAM,KAAK,GAAG,gBAAgB,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA;QAC3D,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,yBAAyB,eAAe,CAAC,CAAA;QAC/D,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACjE,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAChE,MAAM,CAAC,qBAAqB,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACvD,MAAM,CAAC,qBAAqB,CAAC,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CACtE,IAAI,CACJ,CAAA;QACD,MAAM,CAAC,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAClE,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"intentLabel.test.js","sourceRoot":"","sources":["../src/intentLabel.test.ts"],"names":[],"mappings":"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"}
@@ -1,38 +1,33 @@
1
1
  import type { OrdfsMetadata } from './services';
2
- /** Longest `name:` tag value we store. */
2
+ /** Longest display name we put in customInstructions (not tags). */
3
3
  export declare const MAX_NAME_TAG_LENGTH = 64;
4
4
  /**
5
- * Canonical identity tags for an ordinal, derived from ORDFS metadata.
6
- *
7
- * The single place that decides what tags an ordinal carries. Every path that
8
- * reads from ORDFS — `resolveOrdinalTags` in actions, the wallet's
9
- * `OriginIndexer`, the permission module's verification — must go through
10
- * here, so an asset is tagged identically whether it arrived by sync, by
11
- * purchase, or by transfer.
12
- *
13
- * Pure: callers fetch through their own services and pass the result in.
14
- *
15
- * Emits:
16
- * - `origin:<outpoint>` — the resolved genesis. **Omitted entirely when
17
- * unknown**; an empty `origin:` reads as a resolved value and is never
18
- * correct. The bare `origin` marker is a separate thing, set only on the
19
- * inscription transaction itself, where the output cannot know its own
20
- * outpoint.
21
- * - `type:<category>` **and** `type:<base>` — hierarchical, so callers can
22
- * query broadly (`type:image`) or exactly (`type:image/png`).
23
- * - `name:<name>` — from MAP `name`, else `subTypeData.name`, truncated.
5
+ * Ordinals / indexer outpoint form: `txid_vout`.
6
+ * Accepts dotted (BRC-100) or underscore input. Used for origin tags, CI
7
+ * origin, BSV21 tokenId-style ids, and OrdFS keys.
8
+ */
9
+ export declare function formatOrdinalOutpoint(outpoint: string): string;
10
+ /** @deprecated Use {@link formatOrdinalOutpoint} */
11
+ export declare const formatOriginOutpoint: typeof formatOrdinalOutpoint;
12
+ /**
13
+ * Canonical identity tags for an ordinal (BRC-147).
24
14
  *
25
- * @param metadata - ORDFS metadata, resolved at seq `-2`
26
- * @param fallbackOrigin - used only when metadata carries no origin
15
+ * Emits filter tags (lowercase-safe). Does **not** emit `name:` (→ CI `name`).
16
+ * Bare `origin` is only for the mint out itself (caller stamps that).
27
17
  */
28
18
  export declare function ordinalTagsFromMetadata(metadata: Partial<OrdfsMetadata> | undefined, fallbackOrigin?: string): string[];
29
19
  /**
30
- * Hierarchical `type:` tags for a content type.
31
- *
32
- * `image/png; charset=x` yields `type:image` and `type:image/png`. Returns
33
- * empty for a missing or blank content type — an empty `type:` is never useful.
20
+ * Single `type:<mime>` tag. Strips `;…` parameters. No category dual-tag.
21
+ */
22
+ export declare function contentTypeTag(contentType: string | undefined): string | undefined;
23
+ /**
24
+ * @deprecated Use {@link contentTypeTag}. Returns 0–1 tags for spread compat.
34
25
  */
35
26
  export declare function contentTypeTags(contentType: string | undefined): string[];
36
- /** MAP name, falling back to `subTypeData.name`. */
27
+ /** Parse MAP `subTypeData` (object or JSON string). */
28
+ export declare function parseMapSubTypeData(map: Record<string, unknown> | undefined): Record<string, unknown> | undefined;
29
+ /** MAP name, falling back to `subTypeData.name`. For CI `name`, not tags. */
37
30
  export declare function nameFromMap(map: Record<string, unknown> | undefined): string | undefined;
31
+ /** Truncate display name for CI. */
32
+ export declare function displayNameForCi(name: string | undefined): string | undefined;
38
33
  //# sourceMappingURL=ordinalTags.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ordinalTags.d.ts","sourceRoot":"","sources":["../src/ordinalTags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,0CAA0C;AAC1C,eAAO,MAAM,mBAAmB,KAAK,CAAA;AAErC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,uBAAuB,CACtC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,SAAS,EAC5C,cAAc,CAAC,EAAE,MAAM,GACrB,MAAM,EAAE,CAYV;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAQzE;AAED,oDAAoD;AACpD,wBAAgB,WAAW,CAC1B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACtC,MAAM,GAAG,SAAS,CAOpB"}
1
+ {"version":3,"file":"ordinalTags.d.ts","sourceRoot":"","sources":["../src/ordinalTags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,oEAAoE;AACpE,eAAO,MAAM,mBAAmB,KAAK,CAAA;AAErC;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAW9D;AAED,oDAAoD;AACpD,eAAO,MAAM,oBAAoB,8BAAwB,CAAA;AAEzD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACtC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,SAAS,EAC5C,cAAc,CAAC,EAAE,MAAM,GACrB,MAAM,EAAE,CAuCV;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC7B,WAAW,EAAE,MAAM,GAAG,SAAS,GAC7B,MAAM,GAAG,SAAS,CAIpB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAGzE;AAED,uDAAuD;AACvD,wBAAgB,mBAAmB,CAClC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACtC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAiBrC;AAED,6EAA6E;AAC7E,wBAAgB,WAAW,CAC1B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACtC,MAAM,GAAG,SAAS,CAOpB;AAED,oCAAoC;AACpC,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAG7E"}
@@ -1,64 +1,118 @@
1
- /** Longest `name:` tag value we store. */
1
+ /** Longest display name we put in customInstructions (not tags). */
2
2
  export const MAX_NAME_TAG_LENGTH = 64;
3
3
  /**
4
- * Canonical identity tags for an ordinal, derived from ORDFS metadata.
5
- *
6
- * The single place that decides what tags an ordinal carries. Every path that
7
- * reads from ORDFS — `resolveOrdinalTags` in actions, the wallet's
8
- * `OriginIndexer`, the permission module's verification — must go through
9
- * here, so an asset is tagged identically whether it arrived by sync, by
10
- * purchase, or by transfer.
11
- *
12
- * Pure: callers fetch through their own services and pass the result in.
13
- *
14
- * Emits:
15
- * - `origin:<outpoint>` — the resolved genesis. **Omitted entirely when
16
- * unknown**; an empty `origin:` reads as a resolved value and is never
17
- * correct. The bare `origin` marker is a separate thing, set only on the
18
- * inscription transaction itself, where the output cannot know its own
19
- * outpoint.
20
- * - `type:<category>` **and** `type:<base>` — hierarchical, so callers can
21
- * query broadly (`type:image`) or exactly (`type:image/png`).
22
- * - `name:<name>` — from MAP `name`, else `subTypeData.name`, truncated.
4
+ * Ordinals / indexer outpoint form: `txid_vout`.
5
+ * Accepts dotted (BRC-100) or underscore input. Used for origin tags, CI
6
+ * origin, BSV21 tokenId-style ids, and OrdFS keys.
7
+ */
8
+ export function formatOrdinalOutpoint(outpoint) {
9
+ const s = outpoint.trim();
10
+ if (s.length >= 66) {
11
+ const sep = s[64];
12
+ if (sep === '.' || sep === '_') {
13
+ return `${s.slice(0, 64)}_${s.slice(65)}`;
14
+ }
15
+ }
16
+ const dot = s.indexOf('.');
17
+ if (dot === 64)
18
+ return `${s.slice(0, 64)}_${s.slice(65)}`;
19
+ return s.replace('.', '_');
20
+ }
21
+ /** @deprecated Use {@link formatOrdinalOutpoint} */
22
+ export const formatOriginOutpoint = formatOrdinalOutpoint;
23
+ /**
24
+ * Canonical identity tags for an ordinal (BRC-147).
23
25
  *
24
- * @param metadata - ORDFS metadata, resolved at seq `-2`
25
- * @param fallbackOrigin - used only when metadata carries no origin
26
+ * Emits filter tags (lowercase-safe). Does **not** emit `name:` (→ CI `name`).
27
+ * Bare `origin` is only for the mint out itself (caller stamps that).
26
28
  */
27
29
  export function ordinalTagsFromMetadata(metadata, fallbackOrigin) {
28
30
  const tags = [];
29
31
  const origin = metadata?.origin || fallbackOrigin;
30
32
  if (origin)
31
- tags.push(`origin:${origin}`);
32
- for (const t of contentTypeTags(metadata?.contentType))
33
- tags.push(t);
34
- const name = nameFromMap(metadata?.map);
35
- if (name)
36
- tags.push(`name:${name.slice(0, MAX_NAME_TAG_LENGTH)}`);
33
+ tags.push(`origin:${formatOrdinalOutpoint(origin)}`);
34
+ const map = metadata?.map;
35
+ const subTypeData = parseMapSubTypeData(map);
36
+ // Display pointer when media is not at origin (e.g. OrdFS parent / MAP content)
37
+ const content = typeof map?.content === 'string'
38
+ ? map.content
39
+ : typeof metadata?.parent === 'string'
40
+ ? metadata.parent
41
+ : undefined;
42
+ if (content)
43
+ tags.push(`content:${formatOrdinalOutpoint(content)}`);
44
+ // collectionId is often nested: MAP subTypeData JSON (collection items)
45
+ const collectionId = typeof map?.collectionId === 'string'
46
+ ? map.collectionId
47
+ : typeof map?.collection === 'string'
48
+ ? map.collection
49
+ : typeof subTypeData?.collectionId === 'string'
50
+ ? subTypeData.collectionId
51
+ : typeof subTypeData?.collection === 'string'
52
+ ? subTypeData.collection
53
+ : undefined;
54
+ if (collectionId) {
55
+ tags.push(`collection:${formatOrdinalOutpoint(collectionId)}`);
56
+ }
57
+ const app = typeof map?.app === 'string' ? map.app : undefined;
58
+ if (app)
59
+ tags.push(`app:${app}`);
60
+ const typeTag = contentTypeTag(metadata?.contentType);
61
+ if (typeTag)
62
+ tags.push(typeTag);
37
63
  return tags;
38
64
  }
39
65
  /**
40
- * Hierarchical `type:` tags for a content type.
41
- *
42
- * `image/png; charset=x` yields `type:image` and `type:image/png`. Returns
43
- * empty for a missing or blank content type — an empty `type:` is never useful.
66
+ * Single `type:<mime>` tag. Strips `;…` parameters. No category dual-tag.
44
67
  */
45
- export function contentTypeTags(contentType) {
68
+ export function contentTypeTag(contentType) {
46
69
  const base = contentType?.split(';')[0]?.trim();
47
70
  if (!base)
48
- return [];
49
- const category = base.split('/')[0];
50
- return category && category !== base
51
- ? [`type:${category}`, `type:${base}`]
52
- : [`type:${base}`];
71
+ return undefined;
72
+ return `type:${base}`;
53
73
  }
54
- /** MAP name, falling back to `subTypeData.name`. */
74
+ /**
75
+ * @deprecated Use {@link contentTypeTag}. Returns 0–1 tags for spread compat.
76
+ */
77
+ export function contentTypeTags(contentType) {
78
+ const t = contentTypeTag(contentType);
79
+ return t ? [t] : [];
80
+ }
81
+ /** Parse MAP `subTypeData` (object or JSON string). */
82
+ export function parseMapSubTypeData(map) {
83
+ if (!map)
84
+ return undefined;
85
+ const raw = map.subTypeData;
86
+ if (raw && typeof raw === 'object' && !Array.isArray(raw)) {
87
+ return raw;
88
+ }
89
+ if (typeof raw === 'string' && raw.trim()) {
90
+ try {
91
+ const o = JSON.parse(raw);
92
+ if (o && typeof o === 'object' && !Array.isArray(o)) {
93
+ return o;
94
+ }
95
+ }
96
+ catch {
97
+ /* ignore */
98
+ }
99
+ }
100
+ return undefined;
101
+ }
102
+ /** MAP name, falling back to `subTypeData.name`. For CI `name`, not tags. */
55
103
  export function nameFromMap(map) {
56
104
  if (!map)
57
105
  return undefined;
58
106
  if (typeof map.name === 'string' && map.name)
59
107
  return map.name;
60
- const subTypeData = map.subTypeData;
108
+ const subTypeData = parseMapSubTypeData(map);
61
109
  const subName = subTypeData?.name;
62
110
  return typeof subName === 'string' && subName ? subName : undefined;
63
111
  }
112
+ /** Truncate display name for CI. */
113
+ export function displayNameForCi(name) {
114
+ if (!name?.trim())
115
+ return undefined;
116
+ return name.trim().slice(0, MAX_NAME_TAG_LENGTH);
117
+ }
64
118
  //# sourceMappingURL=ordinalTags.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ordinalTags.js","sourceRoot":"","sources":["../src/ordinalTags.ts"],"names":[],"mappings":"AAEA,0CAA0C;AAC1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAA;AAErC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,uBAAuB,CACtC,QAA4C,EAC5C,cAAuB;IAEvB,MAAM,IAAI,GAAa,EAAE,CAAA;IAEzB,MAAM,MAAM,GAAG,QAAQ,EAAE,MAAM,IAAI,cAAc,CAAA;IACjD,IAAI,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,UAAU,MAAM,EAAE,CAAC,CAAA;IAEzC,KAAK,MAAM,CAAC,IAAI,eAAe,CAAC,QAAQ,EAAE,WAAW,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAEpE,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IACvC,IAAI,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,EAAE,CAAC,CAAA;IAEjE,OAAO,IAAI,CAAA;AACZ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,WAA+B;IAC9D,MAAM,IAAI,GAAG,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAA;IAC/C,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACnC,OAAO,QAAQ,IAAI,QAAQ,KAAK,IAAI;QACnC,CAAC,CAAC,CAAC,QAAQ,QAAQ,EAAE,EAAE,QAAQ,IAAI,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;AACpB,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,WAAW,CAC1B,GAAwC;IAExC,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAA;IAC1B,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI;QAAE,OAAO,GAAG,CAAC,IAAI,CAAA;IAE7D,MAAM,WAAW,GAAG,GAAG,CAAC,WAAkD,CAAA;IAC1E,MAAM,OAAO,GAAG,WAAW,EAAE,IAAI,CAAA;IACjC,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;AACpE,CAAC"}
1
+ {"version":3,"file":"ordinalTags.js","sourceRoot":"","sources":["../src/ordinalTags.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1sat/types",
3
- "version": "0.0.39",
3
+ "version": "0.0.40",
4
4
  "description": "Type definitions for 1Sat Ordinals SDK",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",