@1sat/types 0.0.38 → 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,148 +112,95 @@ 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.
115
+ * Registered permission scheme ids. Each maps to one primary storage basket
116
+ * of the same name (except where a profile documents otherwise).
92
117
  */
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.
98
- */
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;
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;
131
136
  /**
132
- * Build `p 1sat intent <domain>.<verb>`.
137
+ * True if labels already route createAction to `scheme` (any well-formed
138
+ * `p <scheme> <payload>` label, including bare action dispatch).
133
139
  */
134
- export declare function buildIntentLabel(intent: string): string;
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}. */
144
+ export declare function hasP1SatDispatchLabel(labels: string[] | undefined): boolean;
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[];
135
149
  /**
136
- * First `p 1sat intent …` label payload, or undefined.
150
+ * Byte length of the zero-filled signature field carried by an unsealed
151
+ * `opns.register` lock. The action emits the complete PushDrop script with
152
+ * this field zeroed so the output is exactly the size it will be on chain;
153
+ * apply replaces it with the real DER signature. Sized to the longest DER
154
+ * signature so the estimate is never short.
137
155
  */
138
- export declare function parseIntentLabel(labels: string[] | undefined): string | undefined;
156
+ export declare const OPNS_REGISTER_SIG_PLACEHOLDER_LEN = 72;
139
157
  /**
140
- * Action-id label prefix. Payload is the hex actionId that also appears in
141
- * each basketed output's `id:<actionId>_<index>` tag.
158
+ * Build `p <scheme> input id <key>` for a held row.
142
159
  *
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>`.
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).
153
162
  */
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;
159
- /**
160
- * True if labels already route createAction to the 1Sat permission module
161
- * (bare action label or any intent label).
162
- */
163
- export declare function hasP1SatDispatchLabel(labels: string[] | undefined): boolean;
163
+ export declare function buildInputAssetLabel(basket: string, id: string): string;
164
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.
165
+ * Build `p <scheme> input <outpoint>` for an external (non-wallet) spend
166
+ * (outpoint is one of the action's beefed inputs).
168
167
  */
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 ";
168
+ export declare function buildExternalInputLabel(scheme: PermissionSchemeId, outpoint: string): string;
169
+ export interface ParsedInputAssetLabel {
170
+ scheme: PermissionSchemeId;
171
+ basket: string;
172
+ id: string;
173
+ }
184
174
  /**
185
- * Sized placeholder for `opns.register` PushDrop output before apply seals
186
- * the real field-sig script. ~142 bytes matches typical lock (33-byte pubkey
187
- * + CHECKSIG + identity field + DER sig + 2DROP).
175
+ * Parse held-row input labels (`p <scheme> input id <key>` only).
188
176
  */
189
- export declare const OPNS_REGISTER_LOCK_PLACEHOLDER_HEX: string;
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
+ };
190
188
  /**
191
- * Build a label that points the 1Sat permission module at a specific
192
- * input asset record in the wallet's storage.
193
- *
194
- * `id` is the per-output asset id assigned by `createTrackedAction`
195
- * (`id:<actionId>_<vout>`) — the value stored on the input's `id:` tag,
196
- * without the `id:` prefix. The module resolves the record via
197
- * `listOutputs({ basket, tags: [id:<id>], tagQueryMode: 'all' })` — a
198
- * single indexed lookup, not a basket scan.
189
+ * Parse a single `p <scheme> input …` label.
199
190
  *
200
- * Inputs without an `id:` tag (e.g. created before tracked-action ids
201
- * existed) can't be enriched; callers should skip emitting the label
202
- * for those rather than scanning by outpoint.
203
- *
204
- * The shared {@link P1SAT_BASKET_PREFIX} is stripped from the basket
205
- * before encoding so basket names with embedded spaces don't collide
206
- * with the basket↔id space delimiter. Non-P1Sat baskets pass through
207
- * unstripped — those won't resolve in the permission module and the
208
- * input simply drops from enrichment (graceful degradation to the
209
- * generic transaction approval UI).
210
- *
211
- * @param basket - Asset basket (typically a P1Sat basket constant).
212
- * @param id - The asset id, i.e. the `id:` tag value on the input.
191
+ * - Held: `p <scheme> input id <key>`
192
+ * - External: `p <scheme> input <outpoint>` (outpoint-shaped single token)
213
193
  */
214
- export declare function buildInputAssetLabel(basket: string, id: string): string;
194
+ export declare function parseOneInputLabel(label: string): ParsedInputLabel | undefined;
215
195
  /**
216
- * BRC-111 P-label prefix used to tag actions with a BSV21 token id so the
217
- * wallet can filter transaction history per token via
218
- * `wallet.listActions({ labels: [...] })`. As a `'p 1sat '`-prefixed label
219
- * it routes through the 1Sat permission module instead of triggering the
220
- * wallet-toolbox's per-label Protocol Permission prompt.
196
+ * BRC-111 P-label for BSV21 token history filtering via listActions.
197
+ * Routes through the `bsv21` permission scheme.
221
198
  */
222
- 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 ";
223
202
  /**
224
- * Build a BSV21 token label, e.g. `'p 1sat bsv21 <tokenId>'`.
203
+ * Build a BSV21 token history label, e.g. `'p bsv21 token <tokenId>'`.
225
204
  */
226
205
  export declare function buildTokenLabel(tokenId: string): string;
227
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":"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"}
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).
115
+ */
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.
87
126
  */
88
- export const P1SAT_PROTOCOL = [0, 'p 1sat'];
127
+ export const P1SAT_PROTOCOL = ONESAT_PROTOCOL;
89
128
  // ============================================================================
90
129
  // OpNS identity bind (PushDrop on name UTXO)
91
130
  // ============================================================================
@@ -137,190 +176,208 @@ 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
  }
203
+ /** Primary storage basket for a scheme (today: scheme id === basket name). */
204
+ export function basketForScheme(scheme) {
205
+ return scheme;
206
+ }
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;
211
+ }
212
+ /** Dispatch label: `p <scheme> action` — routes createAction when no input label. */
213
+ export function buildActionDispatchLabel(scheme) {
214
+ return `p ${scheme} action`;
215
+ }
216
+ /** @deprecated Prefer {@link buildActionDispatchLabel}(`1sat`). */
217
+ export const P1SAT_LABEL = buildActionDispatchLabel(PERMISSION_SCHEMES.ONESAT);
190
218
  /**
191
- * Build `p 1sat intent <domain>.<verb>`.
219
+ * True if labels already route createAction to `scheme` (any well-formed
220
+ * `p <scheme> <payload>` label, including bare action dispatch).
192
221
  */
193
- export function buildIntentLabel(intent) {
194
- return `${P1SAT_INTENT_LABEL_PREFIX}${intent}`;
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);
227
+ }
228
+ /** True if any known asset scheme is addressed by a P-label. */
229
+ export function hasAssetDispatchLabel(labels) {
230
+ if (!labels?.length)
231
+ return false;
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);
195
248
  }
196
249
  /**
197
- * First `p 1sat intent …` label payload, or undefined.
250
+ * Byte length of the zero-filled signature field carried by an unsealed
251
+ * `opns.register` lock. The action emits the complete PushDrop script with
252
+ * this field zeroed so the output is exactly the size it will be on chain;
253
+ * apply replaces it with the real DER signature. Sized to the longest DER
254
+ * signature so the estimate is never short.
198
255
  */
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;
210
- }
256
+ export const OPNS_REGISTER_SIG_PLACEHOLDER_LEN = 72;
211
257
  /**
212
- * Action-id label prefix. Payload is the hex actionId that also appears in
213
- * each basketed output's `id:<actionId>_<index>` tag.
258
+ * Build `p <scheme> input id <key>` for a held row.
214
259
  *
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.
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).
221
262
  */
222
- export const P1SAT_ACTION_ID_LABEL_PREFIX = 'p 1sat action-id ';
263
+ export function buildInputAssetLabel(basket, 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
+ }
223
277
  /**
224
- * Build `p 1sat action-id <actionId>`.
278
+ * Build `p <scheme> input <outpoint>` for an external (non-wallet) spend
279
+ * (outpoint is one of the action's beefed inputs).
225
280
  */
226
- export function buildActionIdLabel(actionId) {
227
- return `${P1SAT_ACTION_ID_LABEL_PREFIX}${actionId}`;
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}`;
228
290
  }
229
291
  /**
230
- * First `p 1sat action-id …` label payload, or undefined.
292
+ * Parse held-row input labels (`p <scheme> input id <key>` only).
231
293
  */
232
- export function parseActionIdLabel(labels) {
233
- if (!labels)
234
- return undefined;
294
+ export function parseInputAssetLabels(labels) {
295
+ if (!labels?.length)
296
+ return [];
297
+ const refs = [];
235
298
  for (const label of labels) {
236
- if (!label.startsWith(P1SAT_ACTION_ID_LABEL_PREFIX))
299
+ const parsed = parseOneInputLabel(label);
300
+ if (!parsed || parsed.kind !== 'id')
237
301
  continue;
238
- const actionId = label.slice(P1SAT_ACTION_ID_LABEL_PREFIX.length).trim();
239
- if (actionId)
240
- return actionId;
302
+ refs.push({
303
+ scheme: parsed.scheme,
304
+ basket: parsed.basket,
305
+ id: parsed.id,
306
+ });
241
307
  }
242
- return undefined;
308
+ return refs;
243
309
  }
244
310
  /**
245
- * True if labels already route createAction to the 1Sat permission module
246
- * (bare action label or any intent label).
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)
247
315
  */
248
- export function hasP1SatDispatchLabel(labels) {
249
- if (!labels?.length)
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)
250
356
  return false;
251
- if (labels.includes(P1SAT_LABEL))
252
- return true;
253
- return labels.some((l) => l.startsWith(P1SAT_INTENT_LABEL_PREFIX));
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);
254
363
  }
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
- /**
276
- * Sized placeholder for `opns.register` PushDrop output before apply seals
277
- * the real field-sig script. ~142 bytes matches typical lock (33-byte pubkey
278
- * + CHECKSIG + identity field + DER sig + 2DROP).
279
- */
280
- export const OPNS_REGISTER_LOCK_PLACEHOLDER_HEX = '00'.repeat(142);
281
- /**
282
- * Build a label that points the 1Sat permission module at a specific
283
- * input asset record in the wallet's storage.
284
- *
285
- * `id` is the per-output asset id assigned by `createTrackedAction`
286
- * (`id:<actionId>_<vout>`) — the value stored on the input's `id:` tag,
287
- * without the `id:` prefix. The module resolves the record via
288
- * `listOutputs({ basket, tags: [id:<id>], tagQueryMode: 'all' })` — a
289
- * single indexed lookup, not a basket scan.
290
- *
291
- * Inputs without an `id:` tag (e.g. created before tracked-action ids
292
- * existed) can't be enriched; callers should skip emitting the label
293
- * for those rather than scanning by outpoint.
294
- *
295
- * The shared {@link P1SAT_BASKET_PREFIX} is stripped from the basket
296
- * before encoding so basket names with embedded spaces don't collide
297
- * with the basket↔id space delimiter. Non-P1Sat baskets pass through
298
- * unstripped — those won't resolve in the permission module and the
299
- * input simply drops from enrichment (graceful degradation to the
300
- * generic transaction approval UI).
301
- *
302
- * @param basket - Asset basket (typically a P1Sat basket constant).
303
- * @param id - The asset id, i.e. the `id:` tag value on the input.
304
- */
305
- export function buildInputAssetLabel(basket, id) {
306
- const suffix = basket.startsWith(P1SAT_BASKET_PREFIX)
307
- ? basket.slice(P1SAT_BASKET_PREFIX.length)
308
- : basket;
309
- return `${P1SAT_INPUT_LABEL_PREFIX}${suffix} ${id}`;
364
+ function normalizeOutpointDot(s) {
365
+ if (s.length >= 66 && s[64] === '_')
366
+ return `${s.slice(0, 64)}.${s.slice(65)}`;
367
+ return s;
310
368
  }
311
369
  /**
312
- * BRC-111 P-label prefix used to tag actions with a BSV21 token id so the
313
- * wallet can filter transaction history per token via
314
- * `wallet.listActions({ labels: [...] })`. As a `'p 1sat '`-prefixed label
315
- * it routes through the 1Sat permission module instead of triggering the
316
- * 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.
317
372
  */
318
- 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;
319
376
  /**
320
- * Build a BSV21 token label, e.g. `'p 1sat bsv21 <tokenId>'`.
377
+ * Build a BSV21 token history label, e.g. `'p bsv21 token <tokenId>'`.
321
378
  */
322
379
  export function buildTokenLabel(tokenId) {
323
- return `${P1SAT_TOKEN_LABEL_PREFIX}${tokenId}`;
380
+ return `${BSV21_TOKEN_LABEL_PREFIX}${tokenId}`;
324
381
  }
325
382
  /**
326
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":"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"}
@@ -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.38",
3
+ "version": "0.0.40",
4
4
  "description": "Type definitions for 1Sat Ordinals SDK",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",