@1sat/permission-module 0.0.43 → 0.0.45

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.
@@ -0,0 +1,3 @@
1
+ import type { CreateActionArgs, WalletInterface } from '@bsv/sdk';
2
+ export declare function applyCreateAction(baseWallet: WalletInterface, args: CreateActionArgs, intent?: string): Promise<void>;
3
+ //# sourceMappingURL=apply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../src/apply.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAEjE,wBAAsB,iBAAiB,CACtC,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,gBAAgB,EACtB,MAAM,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAEf"}
package/dist/apply.js ADDED
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Module-side apply entry. Crypto always uses the module's base wallet
3
+ * (never the gated WPM wrapper). Implementations live in @1sat/actions.
4
+ */
5
+ import { applyP1SatIntent } from '@1sat/actions';
6
+ export async function applyCreateAction(baseWallet, args, intent) {
7
+ await applyP1SatIntent(baseWallet, args, intent);
8
+ }
9
+ //# sourceMappingURL=apply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../src/apply.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAGhD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACtC,UAA2B,EAC3B,IAAsB,EACtB,MAAe;IAEf,MAAM,gBAAgB,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AACjD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=apply.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.test.d.ts","sourceRoot":"","sources":["../src/apply.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,150 @@
1
+ import { describe, expect, test } from 'bun:test';
2
+ import { OPNS_BASKET, OPNS_REGISTER_LOCK_PLACEHOLDER_HEX, P1SAT_INTENTS, buildIntentLabel, opnsRegisterKeyId, } from '@1sat/types';
3
+ import { PrivateKey } from '@bsv/sdk';
4
+ import { applyCreateAction } from './apply';
5
+ import { CommitmentCache } from './commitmentCache';
6
+ import { handleCreateActionRequest } from './handlers';
7
+ function mockBaseWallet() {
8
+ const key = PrivateKey.fromRandom();
9
+ const identity = key.toPublicKey().toString();
10
+ const protocolKey = PrivateKey.fromRandom().toPublicKey().toString();
11
+ return {
12
+ async getPublicKey(args) {
13
+ if (args.identityKey)
14
+ return { publicKey: identity };
15
+ return { publicKey: protocolKey };
16
+ },
17
+ async createSignature(_args) {
18
+ // 70-byte DER-ish stub — PushDrop only embeds the bytes
19
+ const sig = new Array(70).fill(0x30);
20
+ return { signature: sig };
21
+ },
22
+ };
23
+ }
24
+ function registerArgs(outpoint = `${'aa'.repeat(32)}.0`) {
25
+ return {
26
+ description: 'Publish OpNS',
27
+ labels: [
28
+ buildIntentLabel(P1SAT_INTENTS.OPNS_REGISTER),
29
+ 'p 1sat input opns test-id',
30
+ ],
31
+ inputs: [
32
+ {
33
+ outpoint,
34
+ inputDescription: 'OpNS name',
35
+ unlockingScriptLength: 108,
36
+ },
37
+ ],
38
+ outputs: [
39
+ {
40
+ lockingScript: OPNS_REGISTER_LOCK_PLACEHOLDER_HEX,
41
+ satoshis: 1,
42
+ outputDescription: 'bind',
43
+ basket: OPNS_BASKET,
44
+ tags: ['name:alice', 'opns:published'],
45
+ },
46
+ ],
47
+ };
48
+ }
49
+ describe('applyCreateAction / opns.register', () => {
50
+ test('seals PushDrop in place (same outputs array ref)', async () => {
51
+ const wallet = mockBaseWallet();
52
+ const args = registerArgs();
53
+ const outputsRef = args.outputs;
54
+ const out = outputsRef[0];
55
+ const before = out.lockingScript;
56
+ await applyCreateAction(wallet, args, P1SAT_INTENTS.OPNS_REGISTER);
57
+ expect(args.outputs).toBe(outputsRef);
58
+ expect(out.lockingScript).not.toBe(before);
59
+ expect(out.lockingScript.length).toBeGreaterThan(before.length / 2);
60
+ // PushDrop starts with locking pubkey push
61
+ expect(out.lockingScript.length % 2).toBe(0);
62
+ });
63
+ test('unknown intent fails closed', async () => {
64
+ const wallet = mockBaseWallet();
65
+ const args = registerArgs();
66
+ args.labels = [buildIntentLabel('nope.unknown')];
67
+ await expect(applyCreateAction(wallet, args)).rejects.toThrow(/unknown intent/);
68
+ });
69
+ test('validate-only intents leave lockingScript unchanged', async () => {
70
+ const wallet = mockBaseWallet();
71
+ const args = registerArgs();
72
+ args.labels = [buildIntentLabel(P1SAT_INTENTS.OPNS_DEREGISTER)];
73
+ const before = args.outputs[0].lockingScript;
74
+ await applyCreateAction(wallet, args, P1SAT_INTENTS.OPNS_DEREGISTER);
75
+ expect(args.outputs[0].lockingScript).toBe(before);
76
+ });
77
+ });
78
+ describe('handleCreateActionRequest admin vs dApp', () => {
79
+ test('admin applies without prompt', async () => {
80
+ const wallet = mockBaseWallet();
81
+ const args = registerArgs();
82
+ const before = args.outputs[0].lockingScript;
83
+ let prompted = false;
84
+ const promptHandler = async () => {
85
+ prompted = true;
86
+ return true;
87
+ };
88
+ const deps = {
89
+ wallet,
90
+ promptHandler,
91
+ cache: new CommitmentCache(60),
92
+ adminOriginator: 'admin.yours.org',
93
+ };
94
+ const next = await handleCreateActionRequest(deps, args, 'admin.yours.org');
95
+ expect(prompted).toBe(false);
96
+ expect(next.outputs[0].lockingScript).not.toBe(before);
97
+ });
98
+ test('dApp prompts then applies on approve', async () => {
99
+ const wallet = mockBaseWallet();
100
+ // enrichIntent listOutputs will fail → empty inputs; still applies
101
+ const listWallet = {
102
+ ...wallet,
103
+ async listOutputs() {
104
+ return { totalOutputs: 0, outputs: [] };
105
+ },
106
+ };
107
+ const args = registerArgs();
108
+ const before = args.outputs[0].lockingScript;
109
+ let promptSummary = '';
110
+ const promptHandler = async (req) => {
111
+ promptSummary = req.summary;
112
+ expect(req.intent.p1satIntent).toBe('opns.register');
113
+ return true;
114
+ };
115
+ const deps = {
116
+ wallet: listWallet,
117
+ promptHandler,
118
+ cache: new CommitmentCache(60),
119
+ adminOriginator: 'admin.yours.org',
120
+ };
121
+ const next = await handleCreateActionRequest(deps, args, 'https://dapp.example');
122
+ expect(promptSummary.toLowerCase()).toContain('publish');
123
+ expect(next.outputs[0].lockingScript).not.toBe(before);
124
+ });
125
+ test('dApp reject does not apply', async () => {
126
+ const wallet = mockBaseWallet();
127
+ const listWallet = {
128
+ ...wallet,
129
+ async listOutputs() {
130
+ return { totalOutputs: 0, outputs: [] };
131
+ },
132
+ };
133
+ const args = registerArgs();
134
+ const before = args.outputs[0].lockingScript;
135
+ const deps = {
136
+ wallet: listWallet,
137
+ promptHandler: async () => false,
138
+ cache: new CommitmentCache(60),
139
+ adminOriginator: 'admin.yours.org',
140
+ };
141
+ await expect(handleCreateActionRequest(deps, args, 'https://dapp.example')).rejects.toThrow(/rejected/);
142
+ expect(args.outputs[0].lockingScript).toBe(before);
143
+ });
144
+ });
145
+ describe('opnsRegisterKeyId binding', () => {
146
+ test('key id derived from spent outpoint', () => {
147
+ expect(opnsRegisterKeyId('abcd.1')).toBe('opns:abcd_1');
148
+ });
149
+ });
150
+ //# sourceMappingURL=apply.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.test.js","sourceRoot":"","sources":["../src/apply.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"createOneSatPermissionModule.d.ts","sourceRoot":"","sources":["../src/createOneSatPermissionModule.ts"],"names":[],"mappings":"AAiBA,OAAO,EACN,KAAK,gCAAgC,EAErC,MAAM,SAAS,CAAA;AAEhB;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IACjC,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,UAAU,EAAE,MAAM,CAAA;KAClB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC7B,UAAU,CACT,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAC7C,OAAO,CAAC,OAAO,CAAC,CAAA;CACnB;AAED,2EAA2E;AAC3E,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAChE,wCAAwC;IACxC,OAAO,IAAI,IAAI,CAAA;CACf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAC3C,IAAI,EAAE,gCAAgC,GACpC,sBAAsB,CA6ExB"}
1
+ {"version":3,"file":"createOneSatPermissionModule.d.ts","sourceRoot":"","sources":["../src/createOneSatPermissionModule.ts"],"names":[],"mappings":"AAiBA,OAAO,EACN,KAAK,gCAAgC,EAErC,MAAM,SAAS,CAAA;AAEhB;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IACjC,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,UAAU,EAAE,MAAM,CAAA;KAClB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC7B,UAAU,CACT,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAC7C,OAAO,CAAC,OAAO,CAAC,CAAA;CACnB;AAED,2EAA2E;AAC3E,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAChE,wCAAwC;IACxC,OAAO,IAAI,IAAI,CAAA;CACf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAC3C,IAAI,EAAE,gCAAgC,GACpC,sBAAsB,CA8ExB"}
@@ -21,6 +21,7 @@ export function createOneSatPermissionModule(args) {
21
21
  cache,
22
22
  adminOriginator: args.adminOriginator,
23
23
  permissionStore: args.permissionStore,
24
+ services: args.services,
24
25
  };
25
26
  return {
26
27
  async onRequest(req) {
@@ -1 +1 @@
1
- {"version":3,"file":"createOneSatPermissionModule.js","sourceRoot":"","sources":["../src/createOneSatPermissionModule.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EACN,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,yBAAyB,EACzB,8BAA8B,EAC9B,wBAAwB,GACxB,MAAM,YAAY,CAAA;AACnB,OAAO,EAEN,8BAA8B,GAC9B,MAAM,SAAS,CAAA;AA0BhB;;;;;;;;;;GAUG;AACH,MAAM,UAAU,4BAA4B,CAC3C,IAAsC;IAEtC,MAAM,KAAK,GAAG,IAAI,eAAe,CAChC,IAAI,CAAC,oBAAoB,IAAI,8BAA8B,CAC3D,CAAA;IACD,KAAK,CAAC,KAAK,EAAE,CAAA;IAEb,MAAM,IAAI,GAAG;QACZ,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,KAAK;QACL,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,eAAe,EAAE,IAAI,CAAC,eAAe;KACrC,CAAA;IAED,OAAO;QACN,KAAK,CAAC,SAAS,CAAC,GAAG;YAClB,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;gBACpB,KAAK,cAAc,CAAC,CAAC,CAAC;oBACrB,MAAM,IAAI,GAAG,MAAM,yBAAyB,CAC3C,IAAI,EACJ,GAAG,CAAC,IAAwB,EAC5B,GAAG,CAAC,UAAU,CACd,CAAA;oBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBACtB,CAAC;gBACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;oBACxB,MAAM,IAAI,GAAG,MAAM,4BAA4B,CAC9C,IAAI,EACJ,GAAG,CAAC,IAA2B,EAC/B,GAAG,CAAC,UAAU,CACd,CAAA;oBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBACtB,CAAC;gBACD,KAAK,cAAc,CAAC,CAAC,CAAC;oBACrB,MAAM,IAAI,GAAG,MAAM,yBAAyB,CAC3C,IAAI,EACJ,GAAG,CAAC,IAAwB,EAC5B,GAAG,CAAC,UAAU,CACd,CAAA;oBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBACtB,CAAC;gBACD,KAAK,aAAa,CAAC,CAAC,CAAC;oBACpB,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAC1C,IAAI,EACJ,GAAG,CAAC,IAAuB,EAC3B,GAAG,CAAC,UAAU,CACd,CAAA;oBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBACtB,CAAC;gBACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;oBAC1B,MAAM,IAAI,GAAG,MAAM,8BAA8B,CAChD,IAAI,EACJ,GAAG,CAAC,IAA6B,EACjC,GAAG,CAAC,UAAU,CACd,CAAA;oBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBACtB,CAAC;gBACD;oBACC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAA;YAC3B,CAAC;QACF,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO;YAC5B,IAAI,OAAO,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;gBACvC,OAAO,0BAA0B,CAChC,IAAI,EACJ,GAAyB,EACzB,OAAO,CAAC,UAAU,CAClB,CAAA;YACF,CAAC;YACD,OAAO,GAAG,CAAA;QACX,CAAC;QAED,OAAO;YACN,KAAK,CAAC,IAAI,EAAE,CAAA;QACb,CAAC;KACD,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"createOneSatPermissionModule.js","sourceRoot":"","sources":["../src/createOneSatPermissionModule.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EACN,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,yBAAyB,EACzB,8BAA8B,EAC9B,wBAAwB,GACxB,MAAM,YAAY,CAAA;AACnB,OAAO,EAEN,8BAA8B,GAC9B,MAAM,SAAS,CAAA;AA0BhB;;;;;;;;;;GAUG;AACH,MAAM,UAAU,4BAA4B,CAC3C,IAAsC;IAEtC,MAAM,KAAK,GAAG,IAAI,eAAe,CAChC,IAAI,CAAC,oBAAoB,IAAI,8BAA8B,CAC3D,CAAA;IACD,KAAK,CAAC,KAAK,EAAE,CAAA;IAEb,MAAM,IAAI,GAAG;QACZ,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,KAAK;QACL,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACvB,CAAA;IAED,OAAO;QACN,KAAK,CAAC,SAAS,CAAC,GAAG;YAClB,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;gBACpB,KAAK,cAAc,CAAC,CAAC,CAAC;oBACrB,MAAM,IAAI,GAAG,MAAM,yBAAyB,CAC3C,IAAI,EACJ,GAAG,CAAC,IAAwB,EAC5B,GAAG,CAAC,UAAU,CACd,CAAA;oBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBACtB,CAAC;gBACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;oBACxB,MAAM,IAAI,GAAG,MAAM,4BAA4B,CAC9C,IAAI,EACJ,GAAG,CAAC,IAA2B,EAC/B,GAAG,CAAC,UAAU,CACd,CAAA;oBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBACtB,CAAC;gBACD,KAAK,cAAc,CAAC,CAAC,CAAC;oBACrB,MAAM,IAAI,GAAG,MAAM,yBAAyB,CAC3C,IAAI,EACJ,GAAG,CAAC,IAAwB,EAC5B,GAAG,CAAC,UAAU,CACd,CAAA;oBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBACtB,CAAC;gBACD,KAAK,aAAa,CAAC,CAAC,CAAC;oBACpB,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAC1C,IAAI,EACJ,GAAG,CAAC,IAAuB,EAC3B,GAAG,CAAC,UAAU,CACd,CAAA;oBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBACtB,CAAC;gBACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;oBAC1B,MAAM,IAAI,GAAG,MAAM,8BAA8B,CAChD,IAAI,EACJ,GAAG,CAAC,IAA6B,EACjC,GAAG,CAAC,UAAU,CACd,CAAA;oBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBACtB,CAAC;gBACD;oBACC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAA;YAC3B,CAAC;QACF,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO;YAC5B,IAAI,OAAO,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;gBACvC,OAAO,0BAA0B,CAChC,IAAI,EACJ,GAAyB,EACzB,OAAO,CAAC,UAAU,CAClB,CAAA;YACF,CAAC;YACD,OAAO,GAAG,CAAA;QACX,CAAC;QAED,OAAO;YACN,KAAK,CAAC,IAAI,EAAE,CAAA;QACb,CAAC;KACD,CAAA;AACF,CAAC"}
@@ -36,9 +36,32 @@ export interface EnrichedOutput {
36
36
  tags: string[];
37
37
  /** Recipient address if the locking script is P2PKH (or P2PKH-suffixed). */
38
38
  recipient?: string;
39
+ /**
40
+ * Sale price decoded from an OrdLock locking script, in satoshis.
41
+ *
42
+ * Read this rather than the `price:` tag — the script is what the chain
43
+ * enforces, the tag is only what the caller asserted.
44
+ */
45
+ listingPriceSats?: number;
46
+ /** Seller payout address decoded from an OrdLock locking script. */
47
+ listingSeller?: string;
48
+ /**
49
+ * Block height decoded from a Lock locking script.
50
+ *
51
+ * Read this rather than the `until:` tag — the script is what the chain
52
+ * enforces, the tag is only what the caller asserted.
53
+ */
54
+ lockUntilHeight?: number;
55
+ }
56
+ export type TrustState = 'verified' | 'unverified' | 'mismatch';
57
+ export interface EnrichedTrust {
58
+ state: TrustState;
59
+ note?: string;
39
60
  }
40
61
  export interface EnrichedIntent {
41
62
  kind: EnrichedIntentKind;
63
+ /** Explicit `p 1sat intent <domain>.<verb>` when present. */
64
+ p1satIntent?: string;
42
65
  /** One entry per `'p 1sat input <basket> <id>'` label. */
43
66
  inputs: EnrichedAsset[];
44
67
  /** All raw outputs with recipient decoded from script. */
@@ -48,6 +71,11 @@ export interface EnrichedIntent {
48
71
  /** ORDFS or compatible content URL builder. */
49
72
  contentUrlForOrigin: (origin: string) => string;
50
73
  chain: 'mainnet' | 'testnet';
74
+ /** Purchase / hint-path trust after module re-resolve (from tags or default). */
75
+ trust?: EnrichedTrust;
76
+ /** Overlay processing fee (not miner/DSAP). */
77
+ indexerFeeSats?: number;
78
+ indexerFeeNote?: string;
51
79
  }
52
80
  interface EnrichOptions {
53
81
  chain?: 'mainnet' | 'testnet';
@@ -1 +1 @@
1
- {"version":3,"file":"enrichIntent.d.ts","sourceRoot":"","sources":["../src/enrichIntent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAeH,OAAO,KAAK,EACX,gBAAgB,EAEhB,eAAe,EAEf,MAAM,UAAU,CAAA;AAGjB,MAAM,MAAM,kBAAkB,GAC3B,kBAAkB,GAClB,gBAAgB,GAChB,MAAM,GACN,QAAQ,GACR,aAAa,GACb,SAAS,GACT,gBAAgB,GAChB,UAAU,GACV,aAAa,GACb,MAAM,GACN,SAAS,CAAA;AAEZ,qEAAqE;AACrE,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,kBAAkB,CAAA;IACxB,0DAA0D;IAC1D,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,0DAA0D;IAC1D,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,+CAA+C;IAC/C,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;IAC/C,KAAK,EAAE,SAAS,GAAG,SAAS,CAAA;CAC5B;AAaD,UAAU,aAAa;IACtB,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,wBAAsB,YAAY,CACjC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,gBAAgB,EACtB,IAAI,GAAE,aAAkB,GACtB,OAAO,CAAC,cAAc,CAAC,CA4BzB;AAgOD,wBAAgB,QAAQ,CACvB,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,EAC1B,GAAG,EAAE,MAAM,GACT,MAAM,GAAG,SAAS,CAOpB"}
1
+ {"version":3,"file":"enrichIntent.d.ts","sourceRoot":"","sources":["../src/enrichIntent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAiBH,OAAO,KAAK,EACX,gBAAgB,EAEhB,eAAe,EAEf,MAAM,UAAU,CAAA;AAGjB,MAAM,MAAM,kBAAkB,GAC3B,kBAAkB,GAClB,gBAAgB,GAChB,MAAM,GACN,QAAQ,GACR,aAAa,GACb,SAAS,GACT,gBAAgB,GAChB,UAAU,GACV,aAAa,GACb,MAAM,GACN,SAAS,CAAA;AAEZ,qEAAqE;AACrE,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,CAAA;AAE/D,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,UAAU,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,kBAAkB,CAAA;IACxB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,0DAA0D;IAC1D,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,0DAA0D;IAC1D,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,+CAA+C;IAC/C,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;IAC/C,KAAK,EAAE,SAAS,GAAG,SAAS,CAAA;IAC5B,iFAAiF;IACjF,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;CACvB;AAaD,UAAU,aAAa;IACtB,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,wBAAsB,YAAY,CACjC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,gBAAgB,EACtB,IAAI,GAAE,aAAkB,GACtB,OAAO,CAAC,cAAc,CAAC,CAkCzB;AAiYD,wBAAgB,QAAQ,CACvB,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,EAC1B,GAAG,EAAE,MAAM,GACT,MAAM,GAAG,SAAS,CAOpB"}
@@ -18,7 +18,8 @@
18
18
  * committed to the final tx). The dApp can't lie about what the user
19
19
  * is being asked to approve.
20
20
  */
21
- import { BAP_BASKET, BSOCIAL_BASKET, BSV21_AUTH_BASKET, BSV21_BASKET, LOCK_BASKET, OPNS_BASKET, ORDINALS_BASKET, P1SAT_BASKET_PREFIX, P1SAT_INPUT_LABEL_PREFIX, SIGMA_BASKET, } from '@1sat/types';
21
+ import { BAP_BASKET, BSOCIAL_BASKET, BSV21_AUTH_BASKET, BSV21_BASKET, LOCK_BASKET, OPNS_BASKET, ORDINALS_BASKET, P1SAT_BASKET_PREFIX, P1SAT_INPUT_LABEL_PREFIX, SIGMA_BASKET, parseIntentLabel, } from '@1sat/types';
22
+ import { Lock, OrdLock } from '@1sat/templates';
22
23
  import { parseAddress } from '@1sat/wallet';
23
24
  import { Script } from '@bsv/sdk';
24
25
  const ASSET_BASKETS = [
@@ -35,21 +36,82 @@ export async function enrichIntent(wallet, args, opts = {}) {
35
36
  const chain = opts.chain ?? 'mainnet';
36
37
  const contentHost = opts.contentHost ?? 'https://ordfs.network';
37
38
  const labels = args.labels ?? [];
39
+ const p1satIntent = parseIntentLabel(labels);
38
40
  const inputRefs = parseAssetLabels(labels, P1SAT_INPUT_LABEL_PREFIX);
39
41
  const inputs = (await Promise.all(inputRefs.map((ref) => lookupAsset(wallet, ref.basket, ref.id)))).filter((a) => a !== null);
40
42
  const outputs = (args.outputs ?? []).map((out, i) => decodeOutput(out, i, chain));
41
- const kind = detectKind(inputs, outputs);
42
- const summary = buildSummary(kind, inputs, outputs);
43
+ const kind = detectKind(inputs, outputs, p1satIntent);
44
+ const summary = buildSummary(kind, inputs, outputs, p1satIntent);
45
+ const trust = initialTrust(p1satIntent);
46
+ const fee = extractIndexerFee(args, outputs);
43
47
  return {
44
48
  kind,
49
+ p1satIntent,
45
50
  inputs,
46
51
  outputs,
47
52
  labels,
48
53
  summary,
49
54
  contentUrlForOrigin: (origin) => contentUrlFromOrigin(contentHost, origin),
50
55
  chain,
56
+ trust,
57
+ ...fee,
51
58
  };
52
59
  }
60
+ /**
61
+ * Trust is a property of a check performed *now*, never of the asset.
62
+ *
63
+ * A `trust:` tag can't be written truthfully at broadcast time — the overlay
64
+ * generally hasn't indexed the transaction yet — so any such tag in storage is
65
+ * meaningless or a lie, and outputs are dApp-authored besides. Nothing
66
+ * persisted may influence the badge.
67
+ *
68
+ * Every purchase therefore starts `unverified`; `verifyIntent` upgrades it if
69
+ * and when a service positively answers.
70
+ */
71
+ function initialTrust(p1satIntent) {
72
+ const isPurchase = p1satIntent === 'ordinal.purchase' ||
73
+ p1satIntent === 'opns.purchase' ||
74
+ p1satIntent === 'bsv21.purchase';
75
+ if (!isPurchase)
76
+ return undefined;
77
+ return { state: 'unverified' };
78
+ }
79
+ function extractIndexerFee(args, outputs) {
80
+ // Overlay fee outs: unbasketed, description-free (encrypted), typically
81
+ // modest fixed amounts. Prefer tag `fee:overlay` if present; else detect
82
+ // outputDescription is unavailable — use tag on args outputs if action set it.
83
+ const rawOuts = args.outputs ?? [];
84
+ let feeSats = 0;
85
+ let tokenOuts = 0;
86
+ for (let i = 0; i < rawOuts.length; i++) {
87
+ const tags = rawOuts[i].tags ?? [];
88
+ if (tags.some((t) => t === 'fee:overlay' || t.startsWith('indexer-fee'))) {
89
+ feeSats += rawOuts[i].satoshis ?? 0;
90
+ }
91
+ if (rawOuts[i].basket === BSV21_BASKET ||
92
+ tags.some((t) => t.startsWith('bsv21:'))) {
93
+ tokenOuts++;
94
+ }
95
+ }
96
+ // No fallback. The `fee:overlay` tag is a hint from the action; when it is
97
+ // absent we show nothing rather than guessing which output is the fee.
98
+ //
99
+ // The previous heuristic took the last unbasketed output under 50k sats and
100
+ // labelled it a fee. On a purchase that picks up the seller payment, so the
101
+ // same output rendered twice — once as Price, once as Indexer fee.
102
+ //
103
+ // The real check belongs on the verification promise: the overlay publishes
104
+ // `fee_address` and `fee_per_output` in `getTokenDetails`, and `decodeOutput`
105
+ // already resolves each output's recipient from its locking script, so fee
106
+ // outputs are the ones paying `fee_address`. Exact, not inferred.
107
+ if (!feeSats)
108
+ return {};
109
+ const note = tokenOuts > 0
110
+ ? `${feeSats.toLocaleString()} sats overlay fee` +
111
+ (tokenOuts > 1 ? ` (${tokenOuts} token outs)` : '')
112
+ : `${feeSats.toLocaleString()} sats overlay fee`;
113
+ return { indexerFeeSats: feeSats, indexerFeeNote: note };
114
+ }
53
115
  function parseAssetLabels(labels, prefix) {
54
116
  const refs = [];
55
117
  for (const label of labels) {
@@ -119,6 +181,15 @@ function decodeOutput(out, index, chain) {
119
181
  catch {
120
182
  return enriched;
121
183
  }
184
+ const ordLock = OrdLock.decode(script, chain === 'mainnet');
185
+ if (ordLock) {
186
+ enriched.listingPriceSats = Number(ordLock.price);
187
+ enriched.listingSeller = ordLock.seller;
188
+ }
189
+ const lock = Lock.decode(script, chain === 'mainnet');
190
+ if (lock) {
191
+ enriched.lockUntilHeight = lock.until;
192
+ }
122
193
  const recipient = parseAddress(script, 0, chain);
123
194
  if (recipient) {
124
195
  enriched.recipient = recipient;
@@ -140,7 +211,30 @@ function decodeOutput(out, index, chain) {
140
211
  function hasListingTags(tags) {
141
212
  return tags.some((t) => t === 'ordlock' || t.startsWith('price:'));
142
213
  }
143
- function detectKind(inputs, outputs) {
214
+ function detectKind(inputs, outputs, p1satIntent) {
215
+ // Prefer explicit intent labels over heuristics.
216
+ if (p1satIntent?.startsWith('opns.'))
217
+ return 'opns';
218
+ if (p1satIntent === 'ordinal.list' || p1satIntent === 'bsv21.list')
219
+ return 'listing';
220
+ if (p1satIntent === 'ordinal.cancel-listing' ||
221
+ p1satIntent === 'opns.cancel-listing')
222
+ return 'cancel-listing';
223
+ if (p1satIntent === 'ordinal.purchase' ||
224
+ p1satIntent === 'opns.purchase' ||
225
+ p1satIntent === 'bsv21.purchase')
226
+ return 'purchase';
227
+ if (p1satIntent === 'ordinal.transfer')
228
+ return 'ordinal-transfer';
229
+ if (p1satIntent === 'bsv21.transfer')
230
+ return 'token-transfer';
231
+ if (p1satIntent === 'lock.lock')
232
+ return 'lock';
233
+ if (p1satIntent === 'lock.unlock')
234
+ return 'unlock';
235
+ if (p1satIntent === 'ordinal.inscribe' ||
236
+ p1satIntent === 'ordinal.inscribe-sigma')
237
+ return 'inscription';
144
238
  // Cancel listing: spending an ordlock-tagged input back to a P2PKH owner.
145
239
  // Listings live in the basket of the listed asset (ordinals, opns, …),
146
240
  // so the ordlock/price tags are the marker, not the basket.
@@ -181,7 +275,12 @@ function detectKind(inputs, outputs) {
181
275
  return 'token-transfer';
182
276
  return 'unknown';
183
277
  }
184
- function buildSummary(kind, inputs, outputs) {
278
+ function buildSummary(kind, inputs, outputs, intentId) {
279
+ if (intentId) {
280
+ const named = summaryFromIntentId(intentId, inputs, outputs);
281
+ if (named)
282
+ return named;
283
+ }
185
284
  switch (kind) {
186
285
  case 'ordinal-transfer': {
187
286
  const recipient = outputs.find((o) => o.recipient)?.recipient;
@@ -207,8 +306,10 @@ function buildSummary(kind, inputs, outputs) {
207
306
  return ct ? `Inscribe ${ct}` : `Create inscription`;
208
307
  }
209
308
  case 'listing': {
210
- const out = outputs.find((o) => o.tags.some((t) => t.startsWith('price:')));
211
- const price = tagValue(out?.tags, 'price');
309
+ const out = outputs.find((o) => o.listingPriceSats !== undefined) ??
310
+ outputs.find((o) => o.tags.some((t) => t.startsWith('price:')));
311
+ // Script-decoded price only — the `price:` tag is caller-asserted.
312
+ const price = out?.listingPriceSats;
212
313
  // The listing output carries name/origin tags too — fall back to
213
314
  // them when no input label resolved.
214
315
  const name = tagValue(inputs[0]?.tags, 'name') ?? tagValue(out?.tags, 'name');
@@ -231,6 +332,56 @@ function buildSummary(kind, inputs, outputs) {
231
332
  return `Approve transaction`;
232
333
  }
233
334
  }
335
+ function summaryFromIntentId(intentId, inputs, outputs) {
336
+ const name = tagValue(inputs[0]?.tags, 'name') ??
337
+ tagValue(outputs.find((o) => o.basket === OPNS_BASKET)?.tags, 'name');
338
+ const what = name ? `“${name}”` : undefined;
339
+ switch (intentId) {
340
+ case 'opns.register':
341
+ return what ? `Publish name ${what}` : 'Publish OpNS name';
342
+ case 'opns.deregister':
343
+ return what ? `Unpublish name ${what}` : 'Unpublish OpNS name';
344
+ case 'opns.list':
345
+ return what ? `List name ${what} for sale` : 'List OpNS name for sale';
346
+ case 'opns.transfer':
347
+ return what ? `Transfer name ${what}` : 'Transfer OpNS name';
348
+ case 'opns.cancel-listing':
349
+ return what ? `Cancel listing of ${what}` : 'Cancel OpNS listing';
350
+ case 'opns.purchase':
351
+ return what ? `Buy name ${what}` : 'Buy OpNS name';
352
+ case 'ordinal.transfer':
353
+ return 'Send ordinal';
354
+ case 'ordinal.list':
355
+ return 'List ordinal for sale';
356
+ case 'ordinal.cancel-listing':
357
+ return 'Cancel ordinal listing';
358
+ case 'ordinal.purchase':
359
+ return 'Buy ordinal';
360
+ case 'ordinal.burn':
361
+ return 'Burn ordinal';
362
+ case 'ordinal.inscribe':
363
+ case 'ordinal.inscribe-sigma':
364
+ return 'Create inscription';
365
+ case 'ordinal.mint-collection':
366
+ return 'Mint collection';
367
+ case 'ordinal.mint-item':
368
+ return 'Mint collection item';
369
+ case 'lock.lock':
370
+ return 'Lock BSV';
371
+ case 'lock.unlock':
372
+ return 'Unlock BSV';
373
+ case 'bsv21.transfer':
374
+ return 'Send tokens';
375
+ case 'bsv21.purchase':
376
+ return 'Buy tokens';
377
+ case 'bsv21.mint':
378
+ return 'Mint tokens';
379
+ case 'bsv21.deploy':
380
+ return 'Deploy token';
381
+ default:
382
+ return undefined;
383
+ }
384
+ }
234
385
  // ---------------------------------------------------------------------------
235
386
  // Helpers
236
387
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"enrichIntent.js","sourceRoot":"","sources":["../src/enrichIntent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enrichIntent.js","sourceRoot":"","sources":["../src/enrichIntent.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,22 @@
1
- import type { CreateActionArgs, CreateActionResult, CreateSignatureArgs, GetPublicKeyArgs, InternalizeActionArgs, ListOutputsArgs, WalletInterface } from '@bsv/sdk';
2
1
  import type { IPermissionStore } from '@1sat/wallet';
3
- import { CommitmentCache } from './commitmentCache';
4
- import type { PromptHandler } from './types';
2
+ import type { CreateActionArgs, CreateActionResult, CreateSignatureArgs, GetPublicKeyArgs, InternalizeActionArgs, ListOutputsArgs, WalletInterface } from '@bsv/sdk';
3
+ import type { CommitmentCache } from './commitmentCache';
4
+ import type { PromptHandler, VerificationServices } from './types';
5
5
  interface HandlerDeps {
6
+ /** Base wallet — apply crypto never uses a gated wrapper. */
6
7
  wallet: WalletInterface;
7
8
  promptHandler: PromptHandler;
8
9
  cache: CommitmentCache;
9
10
  adminOriginator?: string;
10
11
  permissionStore?: IPermissionStore;
12
+ services?: VerificationServices;
11
13
  }
12
14
  /**
13
15
  * createAction onRequest:
14
- * 1. Admin originatorreturn args unchanged.
15
- * 2. Enrich the intent — look up input assets in the wallet by their
16
- * `'p 1sat input <basket> <id>'` labels (trusted records, not dApp-supplied).
17
- * 3. Prompt user with the structured intent. Reject throws.
16
+ * 1. dApp: enrich (wallet re-lookup) prompt reject throws.
17
+ * 2. Admin: no prompt.
18
+ * 3. Always apply on base wallet (admin silent; dApp after approve).
19
+ * Mutates args in place (PushDrop seal, etc.).
18
20
  */
19
21
  export declare function handleCreateActionRequest(deps: HandlerDeps, args: CreateActionArgs, originator: string): Promise<CreateActionArgs>;
20
22
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,gBAAgB,EAGhB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,MAAM,UAAU,CAAA;AAGjB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAInD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,UAAU,WAAW;IACpB,MAAM,EAAE,eAAe,CAAA;IACvB,aAAa,EAAE,aAAa,CAAA;IAC5B,KAAK,EAAE,eAAe,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,gBAAgB,CAAA;CAClC;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC9C,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,gBAAgB,EACtB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC,CA4B3B;AA0BD;;;;;;;;GAQG;AACH,wBAAsB,0BAA0B,CAC/C,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,kBAAkB,EACvB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,kBAAkB,CAAC,CAsB7B;AAED;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CACjD,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,mBAAmB,EACzB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,CAAC,CAuC9B;AAED;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC9C,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC,CAE3B;AAqCD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CACvC,IAAI,EAAE,WAAW,EACjB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GACvB,OAAO,CAAC,IAAI,CAAC,CAsDf;AAOD;;GAEG;AACH,wBAAsB,wBAAwB,CAC7C,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,eAAe,EACrB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,CAG1B;AAED;;;GAGG;AACH,wBAAsB,8BAA8B,CACnD,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,qBAAqB,EAC3B,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,qBAAqB,CAAC,CAShC"}
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EACX,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,MAAM,UAAU,CAAA;AAGjB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAIxD,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAGlE,UAAU,WAAW;IACpB,6DAA6D;IAC7D,MAAM,EAAE,eAAe,CAAA;IACvB,aAAa,EAAE,aAAa,CAAA;IAC5B,KAAK,EAAE,eAAe,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,gBAAgB,CAAA;IAClC,QAAQ,CAAC,EAAE,oBAAoB,CAAA;CAC/B;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC9C,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,gBAAgB,EACtB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC,CAsD3B;AAsDD;;;;;;;;GAQG;AACH,wBAAsB,0BAA0B,CAC/C,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,kBAAkB,EACvB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,kBAAkB,CAAC,CAsB7B;AAED;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CACjD,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,mBAAmB,EACzB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,CAAC,CA0C9B;AAED;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC9C,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC,CAE3B;AAcD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CACvC,IAAI,EAAE,WAAW,EACjB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GACvB,OAAO,CAAC,IAAI,CAAC,CAuDf;AAOD;;GAEG;AACH,wBAAsB,wBAAwB,CAC7C,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,eAAe,EACrB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,CAG1B;AAED;;;GAGG;AACH,wBAAsB,8BAA8B,CACnD,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,qBAAqB,EAC3B,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,qBAAqB,CAAC,CAYhC"}
package/dist/handlers.js CHANGED
@@ -1,40 +1,61 @@
1
+ import { P1SAT_BASKET_PREFIX, parseIntentLabel } from '@1sat/types';
1
2
  import { Transaction } from '@bsv/sdk';
2
- import { P1SAT_BASKET_PREFIX } from '@1sat/types';
3
+ import { applyCreateAction } from './apply';
3
4
  import { enrichIntent } from './enrichIntent';
4
5
  import { computeHashOutputs } from './hashOutputs';
5
6
  import { MIN_BIP143_PREIMAGE_BYTES, parsePreimage } from './sighashParser';
7
+ import { verifyIntent } from './verifyIntent';
6
8
  /**
7
9
  * createAction onRequest:
8
- * 1. Admin originatorreturn args unchanged.
9
- * 2. Enrich the intent — look up input assets in the wallet by their
10
- * `'p 1sat input <basket> <id>'` labels (trusted records, not dApp-supplied).
11
- * 3. Prompt user with the structured intent. Reject throws.
10
+ * 1. dApp: enrich (wallet re-lookup) prompt reject throws.
11
+ * 2. Admin: no prompt.
12
+ * 3. Always apply on base wallet (admin silent; dApp after approve).
13
+ * Mutates args in place (PushDrop seal, etc.).
12
14
  */
13
15
  export async function handleCreateActionRequest(deps, args, originator) {
14
- if (isAdmin(deps, originator))
15
- return args;
16
- const enriched = await enrichIntent(deps.wallet, args);
17
- const approved = await deps.promptHandler({
18
- kind: 'transaction',
19
- originator,
20
- intent: {
21
- kind: enriched.kind,
22
- inputs: enriched.inputs,
23
- outputs: enriched.outputs.map((o) => ({
24
- index: o.index,
25
- satoshis: o.satoshis,
26
- basket: o.basket,
27
- tags: o.tags,
28
- recipient: o.recipient,
29
- })),
30
- contentUrls: buildContentUrlMap(enriched),
31
- chain: enriched.chain,
32
- },
33
- summary: enriched.summary,
34
- });
35
- if (!approved) {
36
- throw new Error('1Sat permission module: user rejected the transaction.');
16
+ const p1satIntent = parseIntentLabel(args.labels);
17
+ const admin = isAdmin(deps, originator);
18
+ if (!admin) {
19
+ const enriched = await enrichIntent(deps.wallet, args);
20
+ const approved = await deps.promptHandler({
21
+ kind: 'transaction',
22
+ originator,
23
+ intent: {
24
+ kind: enriched.kind,
25
+ p1satIntent: enriched.p1satIntent,
26
+ inputs: enriched.inputs,
27
+ outputs: enriched.outputs.map((o) => ({
28
+ index: o.index,
29
+ satoshis: o.satoshis,
30
+ basket: o.basket,
31
+ tags: o.tags,
32
+ recipient: o.recipient,
33
+ listingPriceSats: o.listingPriceSats,
34
+ listingSeller: o.listingSeller,
35
+ lockUntilHeight: o.lockUntilHeight,
36
+ })),
37
+ contentUrls: buildContentUrlMap(enriched),
38
+ chain: enriched.chain,
39
+ ...(enriched.trust && { trust: enriched.trust }),
40
+ // Resolves once a service answers. The card renders immediately
41
+ // with `trust.state === 'unverified'` and upgrades in place — a
42
+ // slow or unreachable overlay delays the badge, never the prompt.
43
+ ...(enriched.trust && {
44
+ verification: verifyIntent(deps.services, enriched.p1satIntent, enriched.inputs, enriched.outputs, enriched.contentUrlForOrigin),
45
+ }),
46
+ ...(enriched.indexerFeeSats != null && {
47
+ indexerFeeSats: enriched.indexerFeeSats,
48
+ indexerFeeNote: enriched.indexerFeeNote,
49
+ }),
50
+ },
51
+ summary: enriched.summary,
52
+ });
53
+ if (!approved) {
54
+ throw new Error('1Sat permission module: user rejected the transaction.');
55
+ }
37
56
  }
57
+ // Admin and dApp both apply — seal ops must not bare-return on admin.
58
+ await applyCreateAction(deps.wallet, args, p1satIntent);
38
59
  return args;
39
60
  }
40
61
  /**
@@ -47,7 +68,7 @@ export async function handleCreateActionRequest(deps, args, originator) {
47
68
  */
48
69
  function buildContentUrlMap(enriched) {
49
70
  const out = {};
50
- const add = (tags) => {
71
+ const addOrigin = (tags) => {
51
72
  const tag = tags.find((t) => t.startsWith('origin:'));
52
73
  if (!tag)
53
74
  return;
@@ -56,10 +77,33 @@ function buildContentUrlMap(enriched) {
56
77
  return;
57
78
  out[value] = enriched.contentUrlForOrigin(value);
58
79
  };
59
- for (const asset of enriched.inputs)
60
- add(asset.tags);
61
- for (const output of enriched.outputs)
62
- add(output.tags);
80
+ const addIcon = (tags) => {
81
+ const icon = tags.find((t) => t.startsWith('icon:'))?.slice(5);
82
+ if (!icon || out[icon])
83
+ return;
84
+ if (icon.startsWith('_')) {
85
+ const bsv21 = tags.find((t) => t.startsWith('bsv21:') && t !== 'bsv21:deploy');
86
+ if (bsv21) {
87
+ const tokenId = bsv21.slice(6);
88
+ const txid = tokenId.split('_')[0];
89
+ const full = `${txid}${icon}`;
90
+ out[icon] = enriched.contentUrlForOrigin(full);
91
+ out[full] = out[icon];
92
+ return;
93
+ }
94
+ }
95
+ if (icon.includes('.') || icon.includes('_')) {
96
+ out[icon] = enriched.contentUrlForOrigin(icon.replace('_', '.'));
97
+ }
98
+ };
99
+ for (const asset of enriched.inputs) {
100
+ addOrigin(asset.tags);
101
+ addIcon(asset.tags);
102
+ }
103
+ for (const output of enriched.outputs) {
104
+ addOrigin(output.tags);
105
+ addIcon(output.tags);
106
+ }
63
107
  return out;
64
108
  }
65
109
  /**
@@ -114,7 +158,7 @@ export async function handleCreateSignatureRequest(deps, args, originator) {
114
158
  const parsed = parsePreimage(preimage);
115
159
  if (parsed) {
116
160
  const commitment = deps.cache.findByHashOutputs(originator, parsed.hashOutputs);
117
- if (commitment && commitment.authorizedOutpoints.has(parsed.outpoint)) {
161
+ if (commitment?.authorizedOutpoints.has(parsed.outpoint)) {
118
162
  return args;
119
163
  }
120
164
  if (commitment) {
@@ -156,27 +200,6 @@ export async function handleGetPublicKeyRequest(_deps, args, _originator) {
156
200
  function isAdmin(deps, originator) {
157
201
  return !!deps.adminOriginator && originator === deps.adminOriginator;
158
202
  }
159
- function stripInputForPrompt(input) {
160
- return {
161
- outpoint: input.outpoint,
162
- inputDescription: input.inputDescription,
163
- };
164
- }
165
- function stripOutputForPrompt(output) {
166
- return {
167
- satoshis: output.satoshis,
168
- outputDescription: output.outputDescription,
169
- basket: output.basket,
170
- lockingScriptLength: output.lockingScript.length / 2,
171
- };
172
- }
173
- function summarizeIntent(args) {
174
- if (args.description)
175
- return args.description;
176
- const ins = args.inputs?.length ?? 0;
177
- const outs = args.outputs?.length ?? 0;
178
- return `Transaction with ${ins} input(s) and ${outs} output(s)`;
179
- }
180
203
  // ---------------------------------------------------------------------------
181
204
  // Basket-access gating
182
205
  // ---------------------------------------------------------------------------
@@ -267,7 +290,8 @@ export async function handleListOutputsRequest(deps, args, originator) {
267
290
  export async function handleInternalizeActionRequest(deps, args, originator) {
268
291
  const baskets = [];
269
292
  for (const out of args.outputs ?? []) {
270
- if (out.protocol === 'basket insertion' && out.insertionRemittance?.basket) {
293
+ if (out.protocol === 'basket insertion' &&
294
+ out.insertionRemittance?.basket) {
271
295
  baskets.push(out.insertionRemittance.basket);
272
296
  }
273
297
  }
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { createOneSatPermissionModule, type OneSatPermissionModule, type PermissionsModule, } from './createOneSatPermissionModule';
2
+ export { applyCreateAction } from './apply';
2
3
  export { CommitmentCache } from './commitmentCache';
3
4
  export { computeHashOutputs } from './hashOutputs';
4
5
  export { MIN_BIP143_PREIMAGE_BYTES, parsePreimage, type ParsedPreimage, } from './sighashParser';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,4BAA4B,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,GACtB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EACN,yBAAyB,EACzB,aAAa,EACb,KAAK,cAAc,GACnB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACN,8BAA8B,EAC9B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,gCAAgC,EACrC,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,aAAa,GAClB,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,4BAA4B,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,GACtB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EACN,yBAAyB,EACzB,aAAa,EACb,KAAK,cAAc,GACnB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACN,8BAA8B,EAC9B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,gCAAgC,EACrC,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,aAAa,GAClB,MAAM,SAAS,CAAA"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export { createOneSatPermissionModule, } from './createOneSatPermissionModule';
2
+ export { applyCreateAction } from './apply';
2
3
  export { CommitmentCache } from './commitmentCache';
3
4
  export { computeHashOutputs } from './hashOutputs';
4
5
  export { MIN_BIP143_PREIMAGE_BYTES, parsePreimage, } from './sighashParser';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,4BAA4B,GAG5B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EACN,yBAAyB,EACzB,aAAa,GAEb,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACN,8BAA8B,GAO9B,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,4BAA4B,GAG5B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EACN,yBAAyB,EACzB,aAAa,GAEb,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACN,8BAA8B,GAO9B,MAAM,SAAS,CAAA"}
package/dist/types.d.ts CHANGED
@@ -33,11 +33,15 @@ export interface PromptRequest {
33
33
  kind: PromptKind;
34
34
  originator: string;
35
35
  /**
36
- * Free-form context payload describing the operation. Shape is
37
- * intentionally permissive so the SDK actions can ride additional
38
- * detail through to the prompt without locking the schema.
36
+ * Context payload for the host UI.
39
37
  *
40
- * For `kind: 'basketAccess'`, contains `{ baskets: BasketAccessRequest[] }`.
38
+ * Transaction kind (typical fields the UI consumes):
39
+ * - `p1satIntent` — e.g. `opns.register`, `ordinal.transfer`
40
+ * - `inputs` / `outputs` / `contentUrls` — assets, recipients, ORDFS/icon URLs
41
+ * - `trust?` — `{ state: 'verified'|'unverified'|'mismatch', note? }` purchases
42
+ * - `indexerFeeSats?` / `indexerFeeNote?` — overlay fee (not miner/DSAP)
43
+ *
44
+ * For `kind: 'basketAccess'`: `{ baskets: BasketAccessRequest[] }`.
41
45
  */
42
46
  intent: Record<string, unknown>;
43
47
  /** Short human-readable summary line. Filled in by the module. */
@@ -56,6 +60,41 @@ export interface BasketAccessRequest {
56
60
  * the user's decision.
57
61
  */
58
62
  export type PromptHandler = (request: PromptRequest) => Promise<boolean>;
63
+ /**
64
+ * The slice of `OneSatServices` the module uses to verify card facts.
65
+ *
66
+ * Structural rather than a direct `@1sat/client` import, so hosts can pass
67
+ * their real `OneSatServices` (which satisfies this) without the module taking
68
+ * a hard dependency on the client package. Every member is optional — a host
69
+ * may wire up only what it has.
70
+ */
71
+ export interface VerificationServices {
72
+ ordfs?: {
73
+ bulkMetadata?(outpoints: string[]): Promise<Record<string, {
74
+ contentType?: string;
75
+ contentLength?: number;
76
+ origin?: string;
77
+ map?: Record<string, unknown>;
78
+ } | null>>;
79
+ };
80
+ opns?: {
81
+ getOrigin?(name: string): Promise<{
82
+ name: string;
83
+ outpoint: string;
84
+ } | null>;
85
+ };
86
+ bsv21?: {
87
+ getTokenDetails?(tokenId: string): Promise<{
88
+ token?: {
89
+ sym?: string;
90
+ dec?: string | number;
91
+ };
92
+ status?: {
93
+ is_active?: boolean;
94
+ };
95
+ } | null>;
96
+ };
97
+ }
59
98
  /** Args accepted by `createOneSatPermissionModule`. */
60
99
  export interface CreateOneSatPermissionModuleArgs {
61
100
  /**
@@ -75,6 +114,15 @@ export interface CreateOneSatPermissionModuleArgs {
75
114
  * prompts on every basket-touching call.
76
115
  */
77
116
  permissionStore?: IPermissionStore;
117
+ /**
118
+ * Optional 1Sat services used to verify card facts against ORDFS and the
119
+ * overlays. Omit and every card renders exactly as it would otherwise,
120
+ * with trust left `unverified` — no verification path may block or break
121
+ * a prompt.
122
+ *
123
+ * Same `OneSatServices` handle the actions context takes.
124
+ */
125
+ services?: VerificationServices;
78
126
  /** Optional override for commitment cache TTL (seconds). */
79
127
  commitmentTtlSeconds?: number;
80
128
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,KAAK,CAAA;AAEhD,iEAAiE;AACjE,MAAM,WAAW,kBAAkB;IAClC,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAA;IACnB,+DAA+D;IAC/D,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAChC,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAA;IAClB,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAA;CACjB;AAED,gEAAgE;AAChE,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,cAAc,CAAA;AAElF;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,UAAU,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAExE,uDAAuD;AACvD,MAAM,WAAW,gCAAgC;IAChD;;;;OAIG;IACH,MAAM,EAAE,eAAe,CAAA;IACvB,0CAA0C;IAC1C,aAAa,EAAE,aAAa,CAAA;IAC5B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,gBAAgB,CAAA;IAClC,4DAA4D;IAC5D,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACxB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,KAAK,CAAA;AAEhD,iEAAiE;AACjE,MAAM,WAAW,kBAAkB;IAClC,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAA;IACnB,+DAA+D;IAC/D,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAChC,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAA;IAClB,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAA;CACjB;AAED,gEAAgE;AAChE,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,cAAc,CAAA;AAElF;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,UAAU,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;;;;;;OAUG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAExE;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACpC,KAAK,CAAC,EAAE;QACP,YAAY,CAAC,CACZ,SAAS,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;YAAE,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,aAAa,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,GAAG,IAAI,CAAC,CAAC,CAAA;KACnI,CAAA;IACD,IAAI,CAAC,EAAE;QACN,SAAS,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC,CAAA;KAC5E,CAAA;IACD,KAAK,CAAC,EAAE;QACP,eAAe,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;YAC1C,KAAK,CAAC,EAAE;gBAAE,GAAG,CAAC,EAAE,MAAM,CAAC;gBAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;aAAE,CAAA;YAC/C,MAAM,CAAC,EAAE;gBAAE,SAAS,CAAC,EAAE,OAAO,CAAA;aAAE,CAAA;SAChC,GAAG,IAAI,CAAC,CAAA;KACT,CAAA;CACD;AAED,uDAAuD;AACvD,MAAM,WAAW,gCAAgC;IAChD;;;;OAIG;IACH,MAAM,EAAE,eAAe,CAAA;IACvB,0CAA0C;IAC1C,aAAa,EAAE,aAAa,CAAA;IAC5B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,gBAAgB,CAAA;IAClC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,oBAAoB,CAAA;IAC/B,4DAA4D;IAC5D,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACxB"}
@@ -0,0 +1,33 @@
1
+ import type { EnrichedAsset, EnrichedOutput, TrustState } from './enrichIntent';
2
+ import type { VerificationServices } from './types';
3
+ /** How long any single verification lookup may take before it is abandoned. */
4
+ export declare const VERIFICATION_TIMEOUT_MS = 2000;
5
+ export interface VerificationResult {
6
+ state: TrustState;
7
+ /** Shown alongside a `mismatch`, describing what actually differs. */
8
+ note?: string;
9
+ /** Content type confirmed by ORDFS, when it answered. */
10
+ contentType?: string;
11
+ /** Content length in bytes confirmed by ORDFS, when it answered. */
12
+ contentLength?: number;
13
+ /**
14
+ * True origin as resolved by ORDFS.
15
+ *
16
+ * Distinct from whatever was tagged: for a listing the tagged value is the
17
+ * seller's OrdLock outpoint, not the asset's genesis. Prefer this on the
18
+ * card when present.
19
+ */
20
+ origin?: string;
21
+ /** Asset name from the inscription's MAP data, when present. */
22
+ name?: string;
23
+ /** Content URL for the resolved origin, so the card can show a preview. */
24
+ contentUrl?: string;
25
+ }
26
+ /**
27
+ * Verify the assets on a purchase intent.
28
+ *
29
+ * Returns `unverified` for anything we cannot positively confirm, including
30
+ * when no services are wired at all. Never throws.
31
+ */
32
+ export declare function verifyIntent(services: VerificationServices | undefined, p1satIntent: string | undefined, inputs: EnrichedAsset[], outputs: EnrichedOutput[], contentUrlForOrigin?: (origin: string) => string): Promise<VerificationResult>;
33
+ //# sourceMappingURL=verifyIntent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyIntent.d.ts","sourceRoot":"","sources":["../src/verifyIntent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAEnD,+EAA+E;AAC/E,eAAO,MAAM,uBAAuB,OAAO,CAAA;AAE3C,MAAM,WAAW,kBAAkB;IAClC,KAAK,EAAE,UAAU,CAAA;IACjB,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AA8HD;;;;;GAKG;AACH,wBAAsB,YAAY,CACjC,QAAQ,EAAE,oBAAoB,GAAG,SAAS,EAC1C,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,MAAM,EAAE,aAAa,EAAE,EACvB,OAAO,EAAE,cAAc,EAAE,EACzB,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAC9C,OAAO,CAAC,kBAAkB,CAAC,CA+C7B"}
@@ -0,0 +1,161 @@
1
+ /** How long any single verification lookup may take before it is abandoned. */
2
+ export const VERIFICATION_TIMEOUT_MS = 2000;
3
+ /**
4
+ * Resolve `promise` or give up after `ms`. Never rejects — verification must
5
+ * not be able to break a prompt.
6
+ */
7
+ async function withTimeout(promise, ms = VERIFICATION_TIMEOUT_MS) {
8
+ let timer;
9
+ try {
10
+ return await Promise.race([
11
+ promise.catch(() => undefined),
12
+ new Promise((resolve) => {
13
+ timer = setTimeout(() => resolve(undefined), ms);
14
+ }),
15
+ ]);
16
+ }
17
+ catch {
18
+ return undefined;
19
+ }
20
+ finally {
21
+ if (timer)
22
+ clearTimeout(timer);
23
+ }
24
+ }
25
+ function tagValue(tags, key) {
26
+ return tags?.find((t) => t.startsWith(`${key}:`))?.slice(key.length + 1);
27
+ }
28
+ /**
29
+ * Verify an ordinal against ORDFS by origin.
30
+ *
31
+ * A record that disagrees is a mismatch. **No record is `unverified`, never a
32
+ * mismatch** — we cannot tell "wrong" from "the overlay has not indexed it
33
+ * yet", and a backlog is normal.
34
+ */
35
+ async function verifyOrdinal(services, origin, claimedTypes = []) {
36
+ const ordfs = services.ordfs;
37
+ if (typeof ordfs?.bulkMetadata !== 'function')
38
+ return { state: 'unverified' };
39
+ // `:-2` resolves the outpoint to its origin before returning metadata.
40
+ // Querying the raw outpoint is wrong for anything already moved or listed —
41
+ // an OrdLock output carries no inscription, so ORDFS answers with an empty
42
+ // record rather than the asset.
43
+ const key = `${origin}:-2`;
44
+ // Called on the client, not detached — these are class methods that use `this`.
45
+ const res = await withTimeout(ordfs.bulkMetadata([key]));
46
+ const meta = res?.[key] ?? res?.[origin];
47
+ // An empty record means "nothing inscribed here", not a description of the
48
+ // asset — treat it as no answer rather than as evidence.
49
+ if (!meta?.contentType)
50
+ return { state: 'unverified' };
51
+ const resolved = {
52
+ contentType: meta.contentType,
53
+ contentLength: meta.contentLength,
54
+ // ORDFS resolves the true genesis; the tagged value is usually the
55
+ // seller's listing outpoint. Not treated as a mismatch — the claimed
56
+ // value is an outpoint by construction, not a competing assertion.
57
+ origin: meta.origin,
58
+ name: typeof meta.map?.name === 'string' ? meta.map.name : undefined,
59
+ };
60
+ // `type:` is hierarchical — `image` and `image/png` both describe the same
61
+ // asset. Only a *specific* claim can contradict, and only against the base
62
+ // type; a category-only claim can never disagree.
63
+ const specific = claimedTypes.find((t) => t.includes('/'));
64
+ if (specific && specific !== meta.contentType) {
65
+ return {
66
+ state: 'mismatch',
67
+ note: `Content type is ${meta.contentType}, not ${specific}`,
68
+ ...resolved,
69
+ };
70
+ }
71
+ return { state: 'verified', ...resolved };
72
+ }
73
+ /** Verify that an OpNS name still resolves to the origin being acquired. */
74
+ async function verifyOpns(services, name, origin) {
75
+ const opns = services.opns;
76
+ if (typeof opns?.getOrigin !== 'function')
77
+ return { state: 'unverified' };
78
+ const res = await withTimeout(opns.getOrigin(name));
79
+ if (!res?.outpoint)
80
+ return { state: 'unverified' };
81
+ if (res.outpoint !== origin) {
82
+ return {
83
+ state: 'mismatch',
84
+ note: `“${name}” currently resolves to a different output`,
85
+ };
86
+ }
87
+ return { state: 'verified' };
88
+ }
89
+ /** Verify a BSV21 token is active on the overlay. */
90
+ async function verifyBsv21(services, tokenId, claimedSym) {
91
+ const bsv21 = services.bsv21;
92
+ if (typeof bsv21?.getTokenDetails !== 'function')
93
+ return { state: 'unverified' };
94
+ const res = await withTimeout(bsv21.getTokenDetails(tokenId));
95
+ if (!res)
96
+ return { state: 'unverified' };
97
+ if (res.status?.is_active === false) {
98
+ return { state: 'mismatch', note: 'Token is not active on the overlay' };
99
+ }
100
+ const sym = res.token?.sym;
101
+ if (claimedSym && sym && claimedSym !== sym) {
102
+ return { state: 'mismatch', note: `Token symbol is ${sym}, not ${claimedSym}` };
103
+ }
104
+ return { state: 'verified' };
105
+ }
106
+ /**
107
+ * Verify the assets on a purchase intent.
108
+ *
109
+ * Returns `unverified` for anything we cannot positively confirm, including
110
+ * when no services are wired at all. Never throws.
111
+ */
112
+ export async function verifyIntent(services, p1satIntent, inputs, outputs, contentUrlForOrigin) {
113
+ if (!services || !p1satIntent)
114
+ return { state: 'unverified' };
115
+ try {
116
+ const allTags = [...inputs.map((i) => i.tags), ...outputs.map((o) => o.tags)];
117
+ const findAll = (key) => allTags.flatMap((tags) => tags
118
+ .filter((t) => t.startsWith(`${key}:`))
119
+ .map((t) => t.slice(key.length + 1)));
120
+ const find = (key) => {
121
+ for (const tags of allTags) {
122
+ const v = tagValue(tags, key);
123
+ if (v)
124
+ return v;
125
+ }
126
+ return undefined;
127
+ };
128
+ switch (p1satIntent) {
129
+ case 'ordinal.purchase': {
130
+ const origin = find('origin');
131
+ if (!origin)
132
+ return { state: 'unverified' };
133
+ const res = await verifyOrdinal(services, origin, findAll('type'));
134
+ // Preview URL follows the *resolved* origin, not the tagged one —
135
+ // a listing outpoint has no content to serve.
136
+ return res.origin && contentUrlForOrigin
137
+ ? { ...res, contentUrl: contentUrlForOrigin(res.origin) }
138
+ : res;
139
+ }
140
+ case 'opns.purchase': {
141
+ const name = find('name');
142
+ const origin = find('origin');
143
+ if (!name || !origin)
144
+ return { state: 'unverified' };
145
+ return await verifyOpns(services, name, origin);
146
+ }
147
+ case 'bsv21.purchase': {
148
+ const tokenId = find('bsv21');
149
+ if (!tokenId)
150
+ return { state: 'unverified' };
151
+ return await verifyBsv21(services, tokenId, find('sym'));
152
+ }
153
+ default:
154
+ return { state: 'unverified' };
155
+ }
156
+ }
157
+ catch {
158
+ return { state: 'unverified' };
159
+ }
160
+ }
161
+ //# sourceMappingURL=verifyIntent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyIntent.js","sourceRoot":"","sources":["../src/verifyIntent.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@1sat/permission-module",
3
- "version": "0.0.43",
4
- "description": "1Sat permission module for WalletPermissionsManager gates createSignature with hashOutputs commitments captured at createAction time",
3
+ "version": "0.0.45",
4
+ "description": "1Sat permission module for WalletPermissionsManager \u2014 gates createSignature with hashOutputs commitments captured at createAction time",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -29,9 +29,10 @@
29
29
  ],
30
30
  "license": "MIT",
31
31
  "dependencies": {
32
- "@1sat/types": "0.0.37",
33
- "@1sat/actions": "0.0.192",
34
- "@1sat/wallet": "0.0.98"
32
+ "@1sat/actions": "workspace:*",
33
+ "@1sat/templates": "workspace:*",
34
+ "@1sat/types": "workspace:*",
35
+ "@1sat/wallet": "workspace:*"
35
36
  },
36
37
  "peerDependencies": {
37
38
  "@bsv/sdk": "^2.1.9",