@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.
- package/dist/apply.d.ts +3 -0
- package/dist/apply.d.ts.map +1 -0
- package/dist/apply.js +9 -0
- package/dist/apply.js.map +1 -0
- package/dist/apply.test.d.ts +2 -0
- package/dist/apply.test.d.ts.map +1 -0
- package/dist/apply.test.js +150 -0
- package/dist/apply.test.js.map +1 -0
- package/dist/createOneSatPermissionModule.d.ts.map +1 -1
- package/dist/createOneSatPermissionModule.js +1 -0
- package/dist/createOneSatPermissionModule.js.map +1 -1
- package/dist/enrichIntent.d.ts +28 -0
- package/dist/enrichIntent.d.ts.map +1 -1
- package/dist/enrichIntent.js +158 -7
- package/dist/enrichIntent.js.map +1 -1
- package/dist/handlers.d.ts +9 -7
- package/dist/handlers.d.ts.map +1 -1
- package/dist/handlers.js +80 -56
- package/dist/handlers.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +52 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/verifyIntent.d.ts +33 -0
- package/dist/verifyIntent.d.ts.map +1 -0
- package/dist/verifyIntent.js +161 -0
- package/dist/verifyIntent.js.map +1 -0
- package/package.json +6 -5
package/dist/apply.d.ts
ADDED
|
@@ -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 @@
|
|
|
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,
|
|
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"}
|
|
@@ -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;
|
|
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"}
|
package/dist/enrichIntent.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/enrichIntent.js
CHANGED
|
@@ -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.
|
|
211
|
-
|
|
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
|
// ---------------------------------------------------------------------------
|
package/dist/enrichIntent.js.map
CHANGED
|
@@ -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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"}
|
package/dist/handlers.d.ts
CHANGED
|
@@ -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 {
|
|
4
|
-
import type {
|
|
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.
|
|
15
|
-
* 2.
|
|
16
|
-
*
|
|
17
|
-
*
|
|
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
|
/**
|
package/dist/handlers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"
|
|
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 {
|
|
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.
|
|
9
|
-
* 2.
|
|
10
|
-
*
|
|
11
|
-
*
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
|
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' &&
|
|
293
|
+
if (out.protocol === 'basket insertion' &&
|
|
294
|
+
out.insertionRemittance?.basket) {
|
|
271
295
|
baskets.push(out.insertionRemittance.basket);
|
|
272
296
|
}
|
|
273
297
|
}
|
package/dist/handlers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"
|
|
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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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
|
-
*
|
|
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
|
-
*
|
|
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
|
/**
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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
|
|
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.
|
|
4
|
-
"description": "1Sat permission module for WalletPermissionsManager
|
|
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/
|
|
33
|
-
"@1sat/
|
|
34
|
-
"@1sat/
|
|
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",
|