@1sat/actions 0.0.221 → 0.0.223
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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/ordfs/dir.d.ts +99 -0
- package/dist/ordfs/dir.d.ts.map +1 -0
- package/dist/ordfs/dir.js +251 -0
- package/dist/ordfs/dir.js.map +1 -0
- package/dist/ordfs/index.d.ts +7 -1
- package/dist/ordfs/index.d.ts.map +1 -1
- package/dist/ordfs/index.js +5 -1
- package/dist/ordfs/index.js.map +1 -1
- package/dist/ordfs/outpoint.d.ts +11 -0
- package/dist/ordfs/outpoint.d.ts.map +1 -0
- package/dist/ordfs/outpoint.js +42 -0
- package/dist/ordfs/outpoint.js.map +1 -0
- package/dist/ordfs/outputs.d.ts +11 -0
- package/dist/ordfs/outputs.d.ts.map +1 -1
- package/dist/ordfs/outputs.js +23 -3
- package/dist/ordfs/outputs.js.map +1 -1
- package/dist/ordfs/patch.d.ts +34 -0
- package/dist/ordfs/patch.d.ts.map +1 -0
- package/dist/ordfs/patch.js +103 -0
- package/dist/ordfs/patch.js.map +1 -0
- package/dist/ordfs/vcdiff.d.ts +16 -0
- package/dist/ordfs/vcdiff.d.ts.map +1 -0
- package/dist/ordfs/vcdiff.js +87 -0
- package/dist/ordfs/vcdiff.js.map +1 -0
- package/dist/sync/addressSyncTask.d.ts +1 -1
- package/dist/sync/addressSyncTask.js +1 -1
- package/dist/sync/index.d.ts +1 -1
- package/dist/sync/index.js +2 -2
- package/dist/sync/index.js.map +1 -1
- package/dist/utils/pushdrop.d.ts +36 -0
- package/dist/utils/pushdrop.d.ts.map +1 -0
- package/dist/utils/pushdrop.js +56 -0
- package/dist/utils/pushdrop.js.map +1 -0
- package/package.json +6 -5
package/dist/index.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export * from './constants.js';
|
|
|
10
10
|
export { applyP1SatCreateAction, applyP1SatIntent, applyOpnsRegister, applyInscribeSigma, applyValidateOnly, prepareP1SatArgs, sigmaAnchorKeyId, stampScriptDerivedTags, P1SAT_APPLY_REGISTRY, type ApplyFn, } from './apply/index.js';
|
|
11
11
|
export { signP2PKHInput } from './utils/signP2PKH.js';
|
|
12
12
|
export { completeSignedAction, type CompleteSignedActionResult, type SigningCallback, } from './utils/completeSignedAction.js';
|
|
13
|
+
export { PUSHDROP_SIG_PLACEHOLDER_LEN, pushDropCustomInstructions, pushDropDecode, pushDropLock, pushDropSeal, type PushDropLockParams, } from './utils/pushdrop.js';
|
|
13
14
|
export { createTrackedAction, executeTrackedAction, randomActionId, stampManagedOutputIds, ensureP1SatDispatchLabel, ensureActionId, type TrackedActionOptions, } from './utils/createTrackedAction.js';
|
|
14
15
|
export { hasOneSatModule } from './utils/hasOneSatModule.js';
|
|
15
16
|
export type { PrepareP1SatOptions } from './apply/prepare.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ordfs/dir` — binary directory manifest codec.
|
|
3
|
+
*
|
|
4
|
+
* The binary sibling of the `ord-fs/json` manifest: same logical structure
|
|
5
|
+
* (a directory maps child names to outpoint references), encoded as a fixed
|
|
6
|
+
* byte layout so the encoding is canonical — same logical directory always
|
|
7
|
+
* produces byte-identical output, giving manifests a stable SHA-256.
|
|
8
|
+
*
|
|
9
|
+
* Layout (all integers big-endian; no varints; no padding):
|
|
10
|
+
*
|
|
11
|
+
* dir :=
|
|
12
|
+
* [1B version] 0x01
|
|
13
|
+
* [2B entry count] uint16
|
|
14
|
+
* [entries × N] sorted ascending by raw name bytes
|
|
15
|
+
*
|
|
16
|
+
* entry :=
|
|
17
|
+
* [1B flags]
|
|
18
|
+
* bit0 KIND 0 = file, 1 = directory
|
|
19
|
+
* bit1 EXEC executable (file)
|
|
20
|
+
* bit2 SYMLINK content = target path (file)
|
|
21
|
+
* bit3 REFTYPE 0 = same-tx output, 1 = full outpoint
|
|
22
|
+
* bits4–7 MUST be zero
|
|
23
|
+
* [1B name length] 1..255
|
|
24
|
+
* [NB name] raw UTF-8 path component; no 0x00, no '/'
|
|
25
|
+
* [target]
|
|
26
|
+
* REFTYPE 0: [1B vout] sibling output in the same tx
|
|
27
|
+
* REFTYPE 1: [32B txid][4B vout] exact Bitcoin outpoint bytes
|
|
28
|
+
* (txid internal order, vout LE)
|
|
29
|
+
*
|
|
30
|
+
* Spec: docs/plans/ordfs-formats.html in the gib repo. Writers MUST emit
|
|
31
|
+
* canonical form; readers MUST reject anything else.
|
|
32
|
+
*/
|
|
33
|
+
/** Content type written on `ordfs/dir` inscription outputs. */
|
|
34
|
+
export declare const DIR_CONTENT_TYPE = "ordfs/dir";
|
|
35
|
+
/** Legacy JSON manifest content type (read support only going forward). */
|
|
36
|
+
export declare const JSON_MANIFEST_CONTENT_TYPE_LEGACY = "ord-fs/json";
|
|
37
|
+
/** Current manifest format version. */
|
|
38
|
+
export declare const DIR_VERSION = 1;
|
|
39
|
+
/** Maximum number of entries in one manifest (uint16 entry count). */
|
|
40
|
+
export declare const MAX_DIR_ENTRIES = 65535;
|
|
41
|
+
/** A reference to another output in the same transaction (`_N` in JSON). */
|
|
42
|
+
export interface SameTxRef {
|
|
43
|
+
kind: 'same-tx';
|
|
44
|
+
vout: number;
|
|
45
|
+
}
|
|
46
|
+
/** A reference to an exact outpoint elsewhere (native Bitcoin serialization). */
|
|
47
|
+
export interface OutpointRef {
|
|
48
|
+
kind: 'outpoint';
|
|
49
|
+
txid: string;
|
|
50
|
+
vout: number;
|
|
51
|
+
}
|
|
52
|
+
export type DirRef = SameTxRef | OutpointRef;
|
|
53
|
+
/** One child entry in a directory manifest. */
|
|
54
|
+
export interface DirEntry {
|
|
55
|
+
/** Raw UTF-8 name bytes; a single path component (never contains '/'). */
|
|
56
|
+
name: Uint8Array;
|
|
57
|
+
/** Directory (true) vs file (false). */
|
|
58
|
+
isDir: boolean;
|
|
59
|
+
/** Executable file bit (git mode 100755). Files only. */
|
|
60
|
+
exec?: boolean;
|
|
61
|
+
/** Symlink: the leaf content is a relative target path. Files only. */
|
|
62
|
+
symlink?: boolean;
|
|
63
|
+
/** What this entry points at. */
|
|
64
|
+
ref: DirRef;
|
|
65
|
+
}
|
|
66
|
+
/** A decoded directory manifest. */
|
|
67
|
+
export interface DirManifest {
|
|
68
|
+
version: number;
|
|
69
|
+
entries: DirEntry[];
|
|
70
|
+
}
|
|
71
|
+
/** Thrown for any spec violation: malformed, non-canonical, or invalid input. */
|
|
72
|
+
export declare class DirFormatError extends Error {
|
|
73
|
+
constructor(message: string);
|
|
74
|
+
}
|
|
75
|
+
/** Sort key for canonical ordering: ascending by raw name bytes. */
|
|
76
|
+
export declare function dirEntryNameCompare(a: DirEntry, b: DirEntry): number;
|
|
77
|
+
/**
|
|
78
|
+
* Encode a directory manifest to canonical bytes.
|
|
79
|
+
*
|
|
80
|
+
* Entries are sorted by raw name bytes; duplicates are rejected. Throws
|
|
81
|
+
* {@link DirFormatError} on any spec violation.
|
|
82
|
+
*/
|
|
83
|
+
export declare function dirEncode(manifest: DirManifest): Uint8Array;
|
|
84
|
+
/**
|
|
85
|
+
* Decode `ordfs/dir` bytes. Validates strictly: known version, canonical
|
|
86
|
+
* sorted order, unique names, zero reserved bits, sane name bytes. Throws
|
|
87
|
+
* {@link DirFormatError} on anything else — including non-canonical input.
|
|
88
|
+
*/
|
|
89
|
+
export declare function dirDecode(bytes: Uint8Array): DirManifest;
|
|
90
|
+
/** Helper: UTF-8 encode an entry name. Validates component legality. */
|
|
91
|
+
export declare function dirName(name: string): Uint8Array;
|
|
92
|
+
/** Helper: UTF-8 decode an entry name. */
|
|
93
|
+
export declare function dirNameString(name: Uint8Array): string;
|
|
94
|
+
/**
|
|
95
|
+
* Default file for a directory with no remaining path: an entry named `.`,
|
|
96
|
+
* else `index.html`. Same convention as `ord-fs/json`.
|
|
97
|
+
*/
|
|
98
|
+
export declare function dirDefault(manifest: DirManifest): DirEntry | undefined;
|
|
99
|
+
//# sourceMappingURL=dir.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dir.d.ts","sourceRoot":"","sources":["../../src/ordfs/dir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAIH,+DAA+D;AAC/D,eAAO,MAAM,gBAAgB,cAAc,CAAA;AAE3C,2EAA2E;AAC3E,eAAO,MAAM,iCAAiC,gBAAgB,CAAA;AAE9D,uCAAuC;AACvC,eAAO,MAAM,WAAW,IAAI,CAAA;AAE5B,sEAAsE;AACtE,eAAO,MAAM,eAAe,QAAS,CAAA;AAErC,4EAA4E;AAC5E,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACZ;AAED,iFAAiF;AACjF,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,WAAW,CAAA;AAE5C,+CAA+C;AAC/C,MAAM,WAAW,QAAQ;IACxB,0EAA0E;IAC1E,IAAI,EAAE,UAAU,CAAA;IAChB,wCAAwC;IACxC,KAAK,EAAE,OAAO,CAAA;IACd,yDAAyD;IACzD,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAA;CACX;AAED,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,QAAQ,EAAE,CAAA;CACnB;AAQD,iFAAiF;AACjF,qBAAa,cAAe,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI3B;AAcD,oEAAoE;AACpE,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAEpE;AA+BD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,WAAW,GAAG,UAAU,CAsD3D;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAmExD;AAED,wEAAwE;AACxE,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAShD;AAED,0CAA0C;AAC1C,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEtD;AAKD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAOtE"}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ordfs/dir` — binary directory manifest codec.
|
|
3
|
+
*
|
|
4
|
+
* The binary sibling of the `ord-fs/json` manifest: same logical structure
|
|
5
|
+
* (a directory maps child names to outpoint references), encoded as a fixed
|
|
6
|
+
* byte layout so the encoding is canonical — same logical directory always
|
|
7
|
+
* produces byte-identical output, giving manifests a stable SHA-256.
|
|
8
|
+
*
|
|
9
|
+
* Layout (all integers big-endian; no varints; no padding):
|
|
10
|
+
*
|
|
11
|
+
* dir :=
|
|
12
|
+
* [1B version] 0x01
|
|
13
|
+
* [2B entry count] uint16
|
|
14
|
+
* [entries × N] sorted ascending by raw name bytes
|
|
15
|
+
*
|
|
16
|
+
* entry :=
|
|
17
|
+
* [1B flags]
|
|
18
|
+
* bit0 KIND 0 = file, 1 = directory
|
|
19
|
+
* bit1 EXEC executable (file)
|
|
20
|
+
* bit2 SYMLINK content = target path (file)
|
|
21
|
+
* bit3 REFTYPE 0 = same-tx output, 1 = full outpoint
|
|
22
|
+
* bits4–7 MUST be zero
|
|
23
|
+
* [1B name length] 1..255
|
|
24
|
+
* [NB name] raw UTF-8 path component; no 0x00, no '/'
|
|
25
|
+
* [target]
|
|
26
|
+
* REFTYPE 0: [1B vout] sibling output in the same tx
|
|
27
|
+
* REFTYPE 1: [32B txid][4B vout] exact Bitcoin outpoint bytes
|
|
28
|
+
* (txid internal order, vout LE)
|
|
29
|
+
*
|
|
30
|
+
* Spec: docs/plans/ordfs-formats.html in the gib repo. Writers MUST emit
|
|
31
|
+
* canonical form; readers MUST reject anything else.
|
|
32
|
+
*/
|
|
33
|
+
import { outpointFromWire, outpointToWire } from './outpoint.js';
|
|
34
|
+
/** Content type written on `ordfs/dir` inscription outputs. */
|
|
35
|
+
export const DIR_CONTENT_TYPE = 'ordfs/dir';
|
|
36
|
+
/** Legacy JSON manifest content type (read support only going forward). */
|
|
37
|
+
export const JSON_MANIFEST_CONTENT_TYPE_LEGACY = 'ord-fs/json';
|
|
38
|
+
/** Current manifest format version. */
|
|
39
|
+
export const DIR_VERSION = 1;
|
|
40
|
+
/** Maximum number of entries in one manifest (uint16 entry count). */
|
|
41
|
+
export const MAX_DIR_ENTRIES = 0xffff;
|
|
42
|
+
const FLAG_DIR = 0x01;
|
|
43
|
+
const FLAG_EXEC = 0x02;
|
|
44
|
+
const FLAG_SYMLINK = 0x04;
|
|
45
|
+
const FLAG_REFTYPE = 0x08;
|
|
46
|
+
const FLAGS_RESERVED = 0xf0;
|
|
47
|
+
/** Thrown for any spec violation: malformed, non-canonical, or invalid input. */
|
|
48
|
+
export class DirFormatError extends Error {
|
|
49
|
+
constructor(message) {
|
|
50
|
+
super(message);
|
|
51
|
+
this.name = 'DirFormatError';
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const utf8Encoder = new TextEncoder();
|
|
55
|
+
const utf8Decoder = new TextDecoder('utf-8', { fatal: false });
|
|
56
|
+
/** Compare two byte arrays lexicographically (unsigned bytes). Returns <0, 0, >0. */
|
|
57
|
+
function compareBytes(a, b) {
|
|
58
|
+
const n = Math.min(a.length, b.length);
|
|
59
|
+
for (let i = 0; i < n; i++) {
|
|
60
|
+
if (a[i] !== b[i])
|
|
61
|
+
return a[i] - b[i];
|
|
62
|
+
}
|
|
63
|
+
return a.length - b.length;
|
|
64
|
+
}
|
|
65
|
+
/** Sort key for canonical ordering: ascending by raw name bytes. */
|
|
66
|
+
export function dirEntryNameCompare(a, b) {
|
|
67
|
+
return compareBytes(a.name, b.name);
|
|
68
|
+
}
|
|
69
|
+
/** Validate a single entry (name bytes, flags, ref ranges). Throws DirFormatError. */
|
|
70
|
+
function validateEntry(e) {
|
|
71
|
+
if (e.name.length < 1 || e.name.length > 255) {
|
|
72
|
+
throw new DirFormatError(`entry name length ${e.name.length} out of range 1..255`);
|
|
73
|
+
}
|
|
74
|
+
if (e.name.includes(0x00) || e.name.includes(0x2f)) {
|
|
75
|
+
throw new DirFormatError('entry name must not contain NUL or "/"');
|
|
76
|
+
}
|
|
77
|
+
if (!e.isDir && e.symlink && e.exec) {
|
|
78
|
+
// git has no 111xxx mode; symlink+exec is not a real git state
|
|
79
|
+
throw new DirFormatError('entry cannot be both symlink and exec');
|
|
80
|
+
}
|
|
81
|
+
if (e.ref.kind === 'same-tx') {
|
|
82
|
+
if (!Number.isInteger(e.ref.vout) || e.ref.vout < 0 || e.ref.vout > 255) {
|
|
83
|
+
throw new DirFormatError(`same-tx vout ${e.ref.vout} out of range 0..255`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
if (!Number.isInteger(e.ref.vout) ||
|
|
88
|
+
e.ref.vout < 0 ||
|
|
89
|
+
e.ref.vout > 0xffffffff) {
|
|
90
|
+
throw new DirFormatError(`outpoint vout ${e.ref.vout} out of range`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Encode a directory manifest to canonical bytes.
|
|
96
|
+
*
|
|
97
|
+
* Entries are sorted by raw name bytes; duplicates are rejected. Throws
|
|
98
|
+
* {@link DirFormatError} on any spec violation.
|
|
99
|
+
*/
|
|
100
|
+
export function dirEncode(manifest) {
|
|
101
|
+
if (manifest.version !== DIR_VERSION) {
|
|
102
|
+
throw new DirFormatError(`unsupported dir version ${manifest.version}`);
|
|
103
|
+
}
|
|
104
|
+
const entries = [...manifest.entries];
|
|
105
|
+
if (entries.length > MAX_DIR_ENTRIES) {
|
|
106
|
+
throw new DirFormatError(`entry count ${entries.length} exceeds uint16`);
|
|
107
|
+
}
|
|
108
|
+
entries.sort(dirEntryNameCompare);
|
|
109
|
+
for (let i = 1; i < entries.length; i++) {
|
|
110
|
+
if (compareBytes(entries[i - 1].name, entries[i].name) === 0) {
|
|
111
|
+
const dup = utf8Decoder.decode(entries[i].name);
|
|
112
|
+
throw new DirFormatError(`duplicate entry name: ${dup}`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
const size = 3 +
|
|
116
|
+
entries.reduce((acc, e) => acc + 2 + e.name.length + (e.ref.kind === 'same-tx' ? 1 : 36), 0);
|
|
117
|
+
const out = new Uint8Array(size);
|
|
118
|
+
const view = new DataView(out.buffer);
|
|
119
|
+
let p = 0;
|
|
120
|
+
out[p++] = manifest.version;
|
|
121
|
+
view.setUint16(p, entries.length);
|
|
122
|
+
p += 2;
|
|
123
|
+
for (const e of entries) {
|
|
124
|
+
validateEntry(e);
|
|
125
|
+
let flags = 0;
|
|
126
|
+
if (e.isDir)
|
|
127
|
+
flags |= FLAG_DIR;
|
|
128
|
+
if (e.exec)
|
|
129
|
+
flags |= FLAG_EXEC;
|
|
130
|
+
if (e.symlink)
|
|
131
|
+
flags |= FLAG_SYMLINK;
|
|
132
|
+
if (e.ref.kind === 'outpoint')
|
|
133
|
+
flags |= FLAG_REFTYPE;
|
|
134
|
+
out[p++] = flags;
|
|
135
|
+
out[p++] = e.name.length;
|
|
136
|
+
out.set(e.name, p);
|
|
137
|
+
p += e.name.length;
|
|
138
|
+
if (e.ref.kind === 'same-tx') {
|
|
139
|
+
out[p++] = e.ref.vout;
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
try {
|
|
143
|
+
out.set(outpointToWire(e.ref.txid, e.ref.vout), p);
|
|
144
|
+
}
|
|
145
|
+
catch (err) {
|
|
146
|
+
throw new DirFormatError(err instanceof Error ? err.message : 'invalid outpoint');
|
|
147
|
+
}
|
|
148
|
+
p += 36;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return out;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Decode `ordfs/dir` bytes. Validates strictly: known version, canonical
|
|
155
|
+
* sorted order, unique names, zero reserved bits, sane name bytes. Throws
|
|
156
|
+
* {@link DirFormatError} on anything else — including non-canonical input.
|
|
157
|
+
*/
|
|
158
|
+
export function dirDecode(bytes) {
|
|
159
|
+
if (bytes.length < 3) {
|
|
160
|
+
throw new DirFormatError('dir manifest too short');
|
|
161
|
+
}
|
|
162
|
+
if (bytes[0] !== DIR_VERSION) {
|
|
163
|
+
throw new DirFormatError(`unsupported dir version ${bytes[0]}`);
|
|
164
|
+
}
|
|
165
|
+
const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
166
|
+
const count = view.getUint16(1);
|
|
167
|
+
const entries = [];
|
|
168
|
+
let p = 3;
|
|
169
|
+
for (let i = 0; i < count; i++) {
|
|
170
|
+
if (p + 2 > bytes.length) {
|
|
171
|
+
throw new DirFormatError('truncated dir manifest');
|
|
172
|
+
}
|
|
173
|
+
const flags = bytes[p++];
|
|
174
|
+
if ((flags & FLAGS_RESERVED) !== 0) {
|
|
175
|
+
throw new DirFormatError('reserved flag bits must be zero');
|
|
176
|
+
}
|
|
177
|
+
const nameLen = bytes[p++];
|
|
178
|
+
if (nameLen < 1 || p + nameLen > bytes.length) {
|
|
179
|
+
throw new DirFormatError('truncated or empty entry name');
|
|
180
|
+
}
|
|
181
|
+
const name = bytes.subarray(p, p + nameLen);
|
|
182
|
+
if (name.includes(0x00) || name.includes(0x2f)) {
|
|
183
|
+
throw new DirFormatError('entry name contains NUL or "/"');
|
|
184
|
+
}
|
|
185
|
+
p += nameLen;
|
|
186
|
+
if (i > 0 && compareBytes(entries[i - 1].name, name) >= 0) {
|
|
187
|
+
throw new DirFormatError('entries not in canonical sorted order (or duplicate name)');
|
|
188
|
+
}
|
|
189
|
+
let ref;
|
|
190
|
+
if ((flags & FLAG_REFTYPE) === 0) {
|
|
191
|
+
if (p + 1 > bytes.length)
|
|
192
|
+
throw new DirFormatError('truncated vout');
|
|
193
|
+
ref = { kind: 'same-tx', vout: bytes[p++] };
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
if (p + 36 > bytes.length)
|
|
197
|
+
throw new DirFormatError('truncated outpoint');
|
|
198
|
+
try {
|
|
199
|
+
const op = outpointFromWire(bytes.subarray(p, p + 36));
|
|
200
|
+
ref = { kind: 'outpoint', txid: op.txid, vout: op.vout };
|
|
201
|
+
}
|
|
202
|
+
catch (err) {
|
|
203
|
+
throw new DirFormatError(err instanceof Error ? err.message : 'invalid outpoint');
|
|
204
|
+
}
|
|
205
|
+
p += 36;
|
|
206
|
+
}
|
|
207
|
+
entries.push({
|
|
208
|
+
name,
|
|
209
|
+
isDir: (flags & FLAG_DIR) !== 0,
|
|
210
|
+
exec: (flags & FLAG_EXEC) !== 0,
|
|
211
|
+
symlink: (flags & FLAG_SYMLINK) !== 0,
|
|
212
|
+
ref,
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
if (p !== bytes.length) {
|
|
216
|
+
throw new DirFormatError(`trailing bytes after last entry (${bytes.length - p})`);
|
|
217
|
+
}
|
|
218
|
+
return { version: DIR_VERSION, entries };
|
|
219
|
+
}
|
|
220
|
+
/** Helper: UTF-8 encode an entry name. Validates component legality. */
|
|
221
|
+
export function dirName(name) {
|
|
222
|
+
const bytes = utf8Encoder.encode(name);
|
|
223
|
+
if (bytes.length < 1 || bytes.length > 255) {
|
|
224
|
+
throw new DirFormatError(`name "${name}" byte length out of range 1..255`);
|
|
225
|
+
}
|
|
226
|
+
if (name.includes('\0') || name.includes('/')) {
|
|
227
|
+
throw new DirFormatError(`name "${name}" must not contain NUL or "/"`);
|
|
228
|
+
}
|
|
229
|
+
return bytes;
|
|
230
|
+
}
|
|
231
|
+
/** Helper: UTF-8 decode an entry name. */
|
|
232
|
+
export function dirNameString(name) {
|
|
233
|
+
return utf8Decoder.decode(name);
|
|
234
|
+
}
|
|
235
|
+
const DOT = utf8Encoder.encode('.');
|
|
236
|
+
const INDEX_HTML = utf8Encoder.encode('index.html');
|
|
237
|
+
/**
|
|
238
|
+
* Default file for a directory with no remaining path: an entry named `.`,
|
|
239
|
+
* else `index.html`. Same convention as `ord-fs/json`.
|
|
240
|
+
*/
|
|
241
|
+
export function dirDefault(manifest) {
|
|
242
|
+
let index;
|
|
243
|
+
for (const e of manifest.entries) {
|
|
244
|
+
if (compareBytes(e.name, DOT) === 0)
|
|
245
|
+
return e;
|
|
246
|
+
if (!index && compareBytes(e.name, INDEX_HTML) === 0)
|
|
247
|
+
index = e;
|
|
248
|
+
}
|
|
249
|
+
return index;
|
|
250
|
+
}
|
|
251
|
+
//# sourceMappingURL=dir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dir.js","sourceRoot":"","sources":["../../src/ordfs/dir.ts"],"names":[],"mappings":"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"}
|
package/dist/ordfs/index.d.ts
CHANGED
|
@@ -34,8 +34,14 @@ import type { Action, ActionOptions } from '../types.js';
|
|
|
34
34
|
import type { OrdfsDirWriteMode } from './outputs.js';
|
|
35
35
|
export { buildOrdfsDirManifest, MAX_ORDFS_DIRECTORY_DEPTH } from './manifest.js';
|
|
36
36
|
export type { OrdfsDirManifest, OrdfsSubdirManifest, } from './manifest.js';
|
|
37
|
-
export { buildOrdFsDirOutputs } from './outputs.js';
|
|
37
|
+
export { buildDataScript, buildOrdFsDirOutputs } from './outputs.js';
|
|
38
38
|
export type { BuildOrdFsDirOutputsOptions, BuildOrdFsDirOutputsResult, OrdfsDirFile, OrdfsDirOutput, OrdfsDirWriteMode, OrdfsLocking, } from './outputs.js';
|
|
39
|
+
export { DIR_CONTENT_TYPE, DIR_VERSION, JSON_MANIFEST_CONTENT_TYPE_LEGACY, MAX_DIR_ENTRIES, DirFormatError, dirDefault, dirDecode, dirEncode, dirEntryNameCompare, dirName, dirNameString, } from './dir.js';
|
|
40
|
+
export type { DirEntry, DirManifest, DirRef, OutpointRef, SameTxRef, } from './dir.js';
|
|
41
|
+
export { assertPlainRfc, VcdiffError, vcdiffDecode, vcdiffEncode, vcdiffReady, } from './vcdiff.js';
|
|
42
|
+
export { PATCH_CONTENT_TYPE, PATCH_VERSION, PatchFormatError, patchApply, patchDecode, patchEncode, patchFromContent, } from './patch.js';
|
|
43
|
+
export type { PatchOutpoint, PatchRecord } from './patch.js';
|
|
44
|
+
export { outpointFromWire, outpointToWire, txidFromWire, txidToWire, } from './outpoint.js';
|
|
39
45
|
/**
|
|
40
46
|
* A file to publish, as accepted by the {@link deployOrdfsDir} action.
|
|
41
47
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ordfs/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAQH,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAiB,MAAM,aAAa,CAAA;AAIvE,OAAO,KAAK,EAAgB,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEnE,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAChF,YAAY,EACX,gBAAgB,EAChB,mBAAmB,GACnB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ordfs/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAQH,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAiB,MAAM,aAAa,CAAA;AAIvE,OAAO,KAAK,EAAgB,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEnE,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAChF,YAAY,EACX,gBAAgB,EAChB,mBAAmB,GACnB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACpE,YAAY,EACX,2BAA2B,EAC3B,0BAA0B,EAC1B,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,YAAY,GACZ,MAAM,cAAc,CAAA;AACrB,OAAO,EACN,gBAAgB,EAChB,WAAW,EACX,iCAAiC,EACjC,eAAe,EACf,cAAc,EACd,UAAU,EACV,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,OAAO,EACP,aAAa,GACb,MAAM,UAAU,CAAA;AACjB,YAAY,EACX,QAAQ,EACR,WAAW,EACX,MAAM,EACN,WAAW,EACX,SAAS,GACT,MAAM,UAAU,CAAA;AACjB,OAAO,EACN,cAAc,EACd,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,GACX,MAAM,aAAa,CAAA;AACpB,OAAO,EACN,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,WAAW,EACX,gBAAgB,GAChB,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EACN,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,UAAU,GACV,MAAM,eAAe,CAAA;AAMtB;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IAClC,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAA;IACZ,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAA;IACrB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC3D;;;OAGG;IACH,KAAK,EAAE,kBAAkB,EAAE,CAAA;IAC3B;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,iBAAiB,CAAA;IAC7B;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,sBAAsB;IACtC,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAClC,qBAAqB,EACrB,sBAAsB,CAqItB,CAAA;AA8GD,4DAA4D;AAC5D,eAAO,MAAM,YAAY,yDAAmB,CAAA"}
|
package/dist/ordfs/index.js
CHANGED
|
@@ -40,7 +40,11 @@ import { executeTrackedAction } from '../utils/createTrackedAction.js';
|
|
|
40
40
|
import { resolveDestination } from '../utils/resolveDestination.js';
|
|
41
41
|
import { buildOrdFsDirOutputs } from './outputs.js';
|
|
42
42
|
export { buildOrdfsDirManifest, MAX_ORDFS_DIRECTORY_DEPTH } from './manifest.js';
|
|
43
|
-
export { buildOrdFsDirOutputs } from './outputs.js';
|
|
43
|
+
export { buildDataScript, buildOrdFsDirOutputs } from './outputs.js';
|
|
44
|
+
export { DIR_CONTENT_TYPE, DIR_VERSION, JSON_MANIFEST_CONTENT_TYPE_LEGACY, MAX_DIR_ENTRIES, DirFormatError, dirDefault, dirDecode, dirEncode, dirEntryNameCompare, dirName, dirNameString, } from './dir.js';
|
|
45
|
+
export { assertPlainRfc, VcdiffError, vcdiffDecode, vcdiffEncode, vcdiffReady, } from './vcdiff.js';
|
|
46
|
+
export { PATCH_CONTENT_TYPE, PATCH_VERSION, PatchFormatError, patchApply, patchDecode, patchEncode, patchFromContent, } from './patch.js';
|
|
47
|
+
export { outpointFromWire, outpointToWire, txidFromWire, txidToWire, } from './outpoint.js';
|
|
44
48
|
// ============================================================================
|
|
45
49
|
// Action
|
|
46
50
|
// ============================================================================
|
package/dist/ordfs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ordfs/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAGnD,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAKhF,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ordfs/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Display-hex txid → 32-byte internal (tx-input) order. */
|
|
2
|
+
export declare function txidToWire(hex: string): Uint8Array;
|
|
3
|
+
/** 32-byte internal order → display-hex txid. */
|
|
4
|
+
export declare function txidFromWire(bytes: Uint8Array): string;
|
|
5
|
+
/** 36-byte outpoint: reversed txid + little-endian vout. */
|
|
6
|
+
export declare function outpointToWire(txid: string, vout: number): Uint8Array;
|
|
7
|
+
export declare function outpointFromWire(bytes: Uint8Array): {
|
|
8
|
+
txid: string;
|
|
9
|
+
vout: number;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=outpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outpoint.d.ts","sourceRoot":"","sources":["../../src/ordfs/outpoint.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CASlD;AAED,iDAAiD;AACjD,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAOtD;AAED,4DAA4D;AAC5D,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CASrE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG;IACpD,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACZ,CAOA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** Display-hex txid → 32-byte internal (tx-input) order. */
|
|
2
|
+
export function txidToWire(hex) {
|
|
3
|
+
if (!/^([0-9a-fA-F]{2})*$/.test(hex) || hex.length !== 64) {
|
|
4
|
+
throw new Error(`invalid txid hex: ${hex}`);
|
|
5
|
+
}
|
|
6
|
+
const out = new Uint8Array(32);
|
|
7
|
+
for (let i = 0; i < 32; i++) {
|
|
8
|
+
out[31 - i] = Number.parseInt(hex.slice(i * 2, i * 2 + 2), 16);
|
|
9
|
+
}
|
|
10
|
+
return out;
|
|
11
|
+
}
|
|
12
|
+
/** 32-byte internal order → display-hex txid. */
|
|
13
|
+
export function txidFromWire(bytes) {
|
|
14
|
+
if (bytes.length !== 32)
|
|
15
|
+
throw new Error('txid wire length must be 32');
|
|
16
|
+
let hex = '';
|
|
17
|
+
for (let i = 31; i >= 0; i--) {
|
|
18
|
+
hex += bytes[i].toString(16).padStart(2, '0');
|
|
19
|
+
}
|
|
20
|
+
return hex;
|
|
21
|
+
}
|
|
22
|
+
/** 36-byte outpoint: reversed txid + little-endian vout. */
|
|
23
|
+
export function outpointToWire(txid, vout) {
|
|
24
|
+
if (!Number.isInteger(vout) || vout < 0 || vout > 0xffffffff) {
|
|
25
|
+
throw new Error(`outpoint vout ${vout} out of range`);
|
|
26
|
+
}
|
|
27
|
+
const out = new Uint8Array(36);
|
|
28
|
+
out.set(txidToWire(txid), 0);
|
|
29
|
+
const view = new DataView(out.buffer);
|
|
30
|
+
view.setUint32(32, vout, true);
|
|
31
|
+
return out;
|
|
32
|
+
}
|
|
33
|
+
export function outpointFromWire(bytes) {
|
|
34
|
+
if (bytes.length !== 36)
|
|
35
|
+
throw new Error('outpoint wire length must be 36');
|
|
36
|
+
const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
37
|
+
return {
|
|
38
|
+
txid: txidFromWire(bytes.subarray(0, 32)),
|
|
39
|
+
vout: view.getUint32(32, true),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=outpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outpoint.js","sourceRoot":"","sources":["../../src/ordfs/outpoint.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,MAAM,UAAU,UAAU,CAAC,GAAW;IACrC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAA;IAC5C,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAA;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC/D,CAAC;IACD,OAAO,GAAG,CAAA;AACX,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,YAAY,CAAC,KAAiB;IAC7C,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;IACvE,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC9C,CAAC;IACD,OAAO,GAAG,CAAA;AACX,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,IAAY;IACxD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,UAAU,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,eAAe,CAAC,CAAA;IACtD,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAA;IAC9B,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IAC5B,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACrC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC9B,OAAO,GAAG,CAAA;AACX,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAiB;IAIjD,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;IAC3E,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;IAC3E,OAAO;QACN,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC;KAC9B,CAAA;AACF,CAAC"}
|
package/dist/ordfs/outputs.d.ts
CHANGED
|
@@ -120,6 +120,17 @@ export interface BuildOrdFsDirOutputsResult {
|
|
|
120
120
|
/** The computed directory tree layout, for callers that need the `_N` map. */
|
|
121
121
|
tree: OrdfsDirManifest;
|
|
122
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Standalone zero-sat B data output: `OP_FALSE OP_RETURN | B | data | type`.
|
|
125
|
+
*
|
|
126
|
+
* Post-Genesis only OP_FALSE OP_RETURN is provably unspendable, which a
|
|
127
|
+
* zero-satoshi output needs to be relayable and minable (otherwise miners
|
|
128
|
+
* treat it as dust). BitCom emits the bare OP_RETURN fragment because it is
|
|
129
|
+
* also appended to spendable scripts; standalone callers own the OP_FALSE
|
|
130
|
+
* prefix — same pattern as BSocial.lock(). Every writer of standalone data
|
|
131
|
+
* outputs (ordfs leaves and manifests, gib records) goes through here.
|
|
132
|
+
*/
|
|
133
|
+
export declare function buildDataScript(content: Uint8Array, contentType: string): Script;
|
|
123
134
|
/**
|
|
124
135
|
* Build the outputs that publish an ord-fs/json directory.
|
|
125
136
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outputs.d.ts","sourceRoot":"","sources":["../../src/ordfs/outputs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAYH,OAAO,EAAE,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"outputs.d.ts","sourceRoot":"","sources":["../../src/ordfs/outputs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAYH,OAAO,EAAE,KAAK,aAAa,EAAa,MAAM,EAAS,MAAM,UAAU,CAAA;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,KAAK,gBAAgB,EAAyB,MAAM,eAAe,CAAA;AAE5E;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC5B,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAA;IACZ,iCAAiC;IACjC,OAAO,EAAE,UAAU,CAAA;IACnB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,aAAa,GAAG,GAAG,CAAA;AAE7D;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACrB;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GACnB;IAAE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,CAAA;CAAE,CAAA;AAE/C;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC3C;;OAEG;IACH,SAAS,CAAC,EAAE,iBAAiB,CAAA;IAC7B;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B;;;;;OAKG;IACH,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CACrE;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,wFAAwF;IACxF,gBAAgB,EAAE,MAAM,CAAA;IACxB,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAA;IAChB,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAA;IACnB,2EAA2E;IAC3E,UAAU,EAAE,OAAO,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IAC1C;;;OAGG;IACH,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,uEAAuE;IACvE,YAAY,EAAE,MAAM,CAAA;IACpB,6EAA6E;IAC7E,cAAc,EAAE,MAAM,CAAA;IACtB,8EAA8E;IAC9E,IAAI,EAAE,gBAAgB,CAAA;CACtB;AA4BD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAKhF;AA+ED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,oBAAoB,CACzC,KAAK,EAAE,YAAY,EAAE,EACrB,IAAI,EAAE,2BAA2B,EACjC,GAAG,CAAC,EAAE,aAAa,GACjB,OAAO,CAAC,0BAA0B,CAAC,CA2FrC"}
|
package/dist/ordfs/outputs.js
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
* SIGMA needs a spending input that only exists during transaction building.
|
|
25
25
|
*/
|
|
26
26
|
import { B, B_PREFIX, BitCom, Encoding, Inscription, MAP, MAP_PREFIX, } from '@1sat/templates';
|
|
27
|
-
import { P2PKH, Script, Utils } from '@bsv/sdk';
|
|
27
|
+
import { OP, P2PKH, Script, Utils } from '@bsv/sdk';
|
|
28
28
|
import { buildOrdfsDirManifest } from './manifest.js';
|
|
29
29
|
/**
|
|
30
30
|
* Resolve the locking script for a given output index from the strategy.
|
|
@@ -50,6 +50,22 @@ function toProtocol(prefix, locked) {
|
|
|
50
50
|
pos: 0,
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Standalone zero-sat B data output: `OP_FALSE OP_RETURN | B | data | type`.
|
|
55
|
+
*
|
|
56
|
+
* Post-Genesis only OP_FALSE OP_RETURN is provably unspendable, which a
|
|
57
|
+
* zero-satoshi output needs to be relayable and minable (otherwise miners
|
|
58
|
+
* treat it as dust). BitCom emits the bare OP_RETURN fragment because it is
|
|
59
|
+
* also appended to spendable scripts; standalone callers own the OP_FALSE
|
|
60
|
+
* prefix — same pattern as BSocial.lock(). Every writer of standalone data
|
|
61
|
+
* outputs (ordfs leaves and manifests, gib records) goes through here.
|
|
62
|
+
*/
|
|
63
|
+
export function buildDataScript(content, contentType) {
|
|
64
|
+
return new Script([
|
|
65
|
+
{ op: OP.OP_FALSE },
|
|
66
|
+
...B.lock(content, contentType, Encoding.Binary).chunks,
|
|
67
|
+
]);
|
|
68
|
+
}
|
|
53
69
|
/**
|
|
54
70
|
* Build a single output's content script for the given write mode.
|
|
55
71
|
*
|
|
@@ -58,7 +74,7 @@ function toProtocol(prefix, locked) {
|
|
|
58
74
|
*/
|
|
59
75
|
function buildLeafScript(writeMode, content, contentType, locking, vout) {
|
|
60
76
|
if (writeMode === 'b') {
|
|
61
|
-
return
|
|
77
|
+
return buildDataScript(content, contentType);
|
|
62
78
|
}
|
|
63
79
|
if (!locking) {
|
|
64
80
|
throw new Error("buildOrdFsDirOutputs: 'locking' is required for ordinal outputs — it controls who can spend the UTXO");
|
|
@@ -88,7 +104,11 @@ function buildManifestScript(writeMode, manifestBytes, contentType, locking, vou
|
|
|
88
104
|
if (hasMap) {
|
|
89
105
|
protocols.push(toProtocol(MAP_PREFIX, MAP.set(map)));
|
|
90
106
|
}
|
|
91
|
-
|
|
107
|
+
// Standalone output — same OP_FALSE prefix rule as buildLeafScript.
|
|
108
|
+
return new Script([
|
|
109
|
+
{ op: OP.OP_FALSE },
|
|
110
|
+
...new BitCom(protocols).lock().chunks,
|
|
111
|
+
]);
|
|
92
112
|
}
|
|
93
113
|
if (!locking) {
|
|
94
114
|
throw new Error("buildOrdFsDirOutputs: 'locking' is required for the ordinal root — it controls who can spend the UTXO");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outputs.js","sourceRoot":"","sources":["../../src/ordfs/outputs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EACN,CAAC,EACD,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,WAAW,EACX,GAAG,EACH,UAAU,GACV,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAsB,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"outputs.js","sourceRoot":"","sources":["../../src/ordfs/outputs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** Content type written on `ordfs/patch` inscription outputs. */
|
|
2
|
+
export declare const PATCH_CONTENT_TYPE = "ordfs/patch";
|
|
3
|
+
/** Current patch envelope version. */
|
|
4
|
+
export declare const PATCH_VERSION = 0;
|
|
5
|
+
export declare class PatchFormatError extends Error {
|
|
6
|
+
constructor(message: string);
|
|
7
|
+
}
|
|
8
|
+
/** Display-hex txid + vout; wire form is internal-order txid + LE vout. */
|
|
9
|
+
export interface PatchOutpoint {
|
|
10
|
+
txid: string;
|
|
11
|
+
vout: number;
|
|
12
|
+
}
|
|
13
|
+
export interface PatchRecord {
|
|
14
|
+
version: number;
|
|
15
|
+
base: PatchOutpoint;
|
|
16
|
+
delta: Uint8Array;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Encode an `ordfs/patch` envelope:
|
|
20
|
+
* `[1B version][36B base outpoint][vcdiff delta]`.
|
|
21
|
+
*/
|
|
22
|
+
export declare function patchEncode(record: PatchRecord): Uint8Array;
|
|
23
|
+
export declare function patchDecode(bytes: Uint8Array): PatchRecord;
|
|
24
|
+
/**
|
|
25
|
+
* Build a patch from source/target bytes. Identical content must be a
|
|
26
|
+
* direct citation (manifest entry), never an empty/no-op patch.
|
|
27
|
+
*/
|
|
28
|
+
export declare function patchFromContent(opts: {
|
|
29
|
+
base: PatchOutpoint;
|
|
30
|
+
source: Uint8Array;
|
|
31
|
+
target: Uint8Array;
|
|
32
|
+
}): Promise<Uint8Array>;
|
|
33
|
+
export declare function patchApply(record: PatchRecord, source: Uint8Array): Promise<Uint8Array>;
|
|
34
|
+
//# sourceMappingURL=patch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../src/ordfs/patch.ts"],"names":[],"mappings":"AAQA,iEAAiE;AACjE,eAAO,MAAM,kBAAkB,gBAAgB,CAAA;AAE/C,sCAAsC;AACtC,eAAO,MAAM,aAAa,IAAI,CAAA;AAE9B,qBAAa,gBAAiB,SAAQ,KAAK;gBAC9B,OAAO,EAAE,MAAM;CAI3B;AAED,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,aAAa,CAAA;IACnB,KAAK,EAAE,UAAU,CAAA;CACjB;AAQD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CA+B3D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAwB1D;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC5C,IAAI,EAAE,aAAa,CAAA;IACnB,MAAM,EAAE,UAAU,CAAA;IAClB,MAAM,EAAE,UAAU,CAAA;CAClB,GAAG,OAAO,CAAC,UAAU,CAAC,CAYtB;AAED,wBAAsB,UAAU,CAC/B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,UAAU,GAChB,OAAO,CAAC,UAAU,CAAC,CASrB"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { outpointFromWire, outpointToWire } from './outpoint.js';
|
|
2
|
+
import { VcdiffError, assertPlainRfc, vcdiffDecode, vcdiffEncode, } from './vcdiff.js';
|
|
3
|
+
/** Content type written on `ordfs/patch` inscription outputs. */
|
|
4
|
+
export const PATCH_CONTENT_TYPE = 'ordfs/patch';
|
|
5
|
+
/** Current patch envelope version. */
|
|
6
|
+
export const PATCH_VERSION = 0;
|
|
7
|
+
export class PatchFormatError extends Error {
|
|
8
|
+
constructor(message) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = 'PatchFormatError';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
function bytesEqual(a, b) {
|
|
14
|
+
if (a.length !== b.length)
|
|
15
|
+
return false;
|
|
16
|
+
for (let i = 0; i < a.length; i++)
|
|
17
|
+
if (a[i] !== b[i])
|
|
18
|
+
return false;
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Encode an `ordfs/patch` envelope:
|
|
23
|
+
* `[1B version][36B base outpoint][vcdiff delta]`.
|
|
24
|
+
*/
|
|
25
|
+
export function patchEncode(record) {
|
|
26
|
+
if (record.version !== PATCH_VERSION) {
|
|
27
|
+
throw new PatchFormatError(`unsupported patch version ${record.version}`);
|
|
28
|
+
}
|
|
29
|
+
if (!Number.isInteger(record.base.vout) ||
|
|
30
|
+
record.base.vout < 0 ||
|
|
31
|
+
record.base.vout > 0xffffffff) {
|
|
32
|
+
throw new PatchFormatError(`outpoint vout ${record.base.vout} out of range`);
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
assertPlainRfc(record.delta);
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
throw new PatchFormatError(err instanceof Error ? err.message : 'invalid vcdiff delta');
|
|
39
|
+
}
|
|
40
|
+
let wire;
|
|
41
|
+
try {
|
|
42
|
+
wire = outpointToWire(record.base.txid, record.base.vout);
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
throw new PatchFormatError(err instanceof Error ? err.message : 'invalid outpoint');
|
|
46
|
+
}
|
|
47
|
+
const out = new Uint8Array(1 + 36 + record.delta.length);
|
|
48
|
+
out[0] = record.version;
|
|
49
|
+
out.set(wire, 1);
|
|
50
|
+
out.set(record.delta, 37);
|
|
51
|
+
return out;
|
|
52
|
+
}
|
|
53
|
+
export function patchDecode(bytes) {
|
|
54
|
+
if (bytes.length < 1 + 36 + 5) {
|
|
55
|
+
throw new PatchFormatError('patch too short');
|
|
56
|
+
}
|
|
57
|
+
if (bytes[0] !== PATCH_VERSION) {
|
|
58
|
+
throw new PatchFormatError(`unsupported patch version ${bytes[0]}`);
|
|
59
|
+
}
|
|
60
|
+
let base;
|
|
61
|
+
try {
|
|
62
|
+
base = outpointFromWire(bytes.subarray(1, 37));
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
throw new PatchFormatError(err instanceof Error ? err.message : 'invalid outpoint');
|
|
66
|
+
}
|
|
67
|
+
const delta = bytes.subarray(37);
|
|
68
|
+
if (delta.length < 5) {
|
|
69
|
+
throw new PatchFormatError('empty vcdiff delta is invalid');
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
version: PATCH_VERSION,
|
|
73
|
+
base,
|
|
74
|
+
delta,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Build a patch from source/target bytes. Identical content must be a
|
|
79
|
+
* direct citation (manifest entry), never an empty/no-op patch.
|
|
80
|
+
*/
|
|
81
|
+
export async function patchFromContent(opts) {
|
|
82
|
+
if (bytesEqual(opts.source, opts.target)) {
|
|
83
|
+
throw new PatchFormatError('identical content must be a direct citation, never a patch');
|
|
84
|
+
}
|
|
85
|
+
const delta = await vcdiffEncode(opts.target, opts.source);
|
|
86
|
+
return patchEncode({
|
|
87
|
+
version: PATCH_VERSION,
|
|
88
|
+
base: opts.base,
|
|
89
|
+
delta,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
export async function patchApply(record, source) {
|
|
93
|
+
try {
|
|
94
|
+
return await vcdiffDecode(record.delta, source);
|
|
95
|
+
}
|
|
96
|
+
catch (e) {
|
|
97
|
+
if (e instanceof VcdiffError) {
|
|
98
|
+
throw new PatchFormatError(e.message);
|
|
99
|
+
}
|
|
100
|
+
throw e;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=patch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/ordfs/patch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RFC 3284 VCDIFF encode/decode via xdelta3-wasm.
|
|
3
|
+
*
|
|
4
|
+
* Writer profile (must match xdelta3 CLI ` -e -n -S none -A `):
|
|
5
|
+
* header D6 C3 C4 00, Hdr_Indicator 0 (no secondary compression,
|
|
6
|
+
* no custom code table, no app header).
|
|
7
|
+
* Readers apply any delta the wasm decoder can handle.
|
|
8
|
+
*/
|
|
9
|
+
export declare class VcdiffError extends Error {
|
|
10
|
+
constructor(message: string);
|
|
11
|
+
}
|
|
12
|
+
export declare function vcdiffReady(): Promise<void>;
|
|
13
|
+
export declare function assertPlainRfc(delta: Uint8Array): void;
|
|
14
|
+
export declare function vcdiffEncode(target: Uint8Array, source?: Uint8Array): Promise<Uint8Array>;
|
|
15
|
+
export declare function vcdiffDecode(delta: Uint8Array, source?: Uint8Array): Promise<Uint8Array>;
|
|
16
|
+
//# sourceMappingURL=vcdiff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vcdiff.d.ts","sourceRoot":"","sources":["../../src/ordfs/vcdiff.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,qBAAa,WAAY,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAI3B;AAOD,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAQjD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAetD;AASD,wBAAsB,YAAY,CACjC,MAAM,EAAE,UAAU,EAClB,MAAM,GAAE,UAA8B,GACpC,OAAO,CAAC,UAAU,CAAC,CAsBrB;AAED,wBAAsB,YAAY,CACjC,KAAK,EAAE,UAAU,EACjB,MAAM,GAAE,UAA8B,GACpC,OAAO,CAAC,UAAU,CAAC,CAoBrB"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RFC 3284 VCDIFF encode/decode via xdelta3-wasm.
|
|
3
|
+
*
|
|
4
|
+
* Writer profile (must match xdelta3 CLI ` -e -n -S none -A `):
|
|
5
|
+
* header D6 C3 C4 00, Hdr_Indicator 0 (no secondary compression,
|
|
6
|
+
* no custom code table, no app header).
|
|
7
|
+
* Readers apply any delta the wasm decoder can handle.
|
|
8
|
+
*/
|
|
9
|
+
export class VcdiffError extends Error {
|
|
10
|
+
constructor(message) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.name = 'VcdiffError';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
let lib;
|
|
16
|
+
let ready;
|
|
17
|
+
export async function vcdiffReady() {
|
|
18
|
+
if (!ready) {
|
|
19
|
+
ready = (async () => {
|
|
20
|
+
lib = await import('xdelta3-wasm');
|
|
21
|
+
await lib.init();
|
|
22
|
+
})();
|
|
23
|
+
}
|
|
24
|
+
await ready;
|
|
25
|
+
}
|
|
26
|
+
export function assertPlainRfc(delta) {
|
|
27
|
+
if (delta.length < 5) {
|
|
28
|
+
throw new VcdiffError('vcdiff delta too short');
|
|
29
|
+
}
|
|
30
|
+
if (delta[0] !== 0xd6 || delta[1] !== 0xc3 || delta[2] !== 0xc4) {
|
|
31
|
+
throw new VcdiffError('bad vcdiff magic');
|
|
32
|
+
}
|
|
33
|
+
if (delta[3] !== 0x00) {
|
|
34
|
+
throw new VcdiffError(`unsupported vcdiff version ${delta[3]}`);
|
|
35
|
+
}
|
|
36
|
+
if (delta[4] !== 0x00) {
|
|
37
|
+
throw new VcdiffError(`vcdiff Hdr_Indicator ${delta[4]} must be 0 (no secondary compression, no app header)`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const PLAIN_MAX_GROW = 8;
|
|
41
|
+
function xd3() {
|
|
42
|
+
if (!lib)
|
|
43
|
+
throw new VcdiffError('vcdiff not initialized');
|
|
44
|
+
return lib;
|
|
45
|
+
}
|
|
46
|
+
export async function vcdiffEncode(target, source = new Uint8Array(0)) {
|
|
47
|
+
await vcdiffReady();
|
|
48
|
+
const { xd3_encode_memory, xd3_smatch_cfg, WASI_ERRNO } = xd3();
|
|
49
|
+
let max = Math.max(64, target.length + 1024);
|
|
50
|
+
for (let i = 0; i < PLAIN_MAX_GROW; i++) {
|
|
51
|
+
const r = xd3_encode_memory(target, source, max, xd3_smatch_cfg.DEFAULT);
|
|
52
|
+
if (r.ret === 0) {
|
|
53
|
+
assertPlainRfc(r.output);
|
|
54
|
+
return r.output;
|
|
55
|
+
}
|
|
56
|
+
if (r.ret === WASI_ERRNO.ENOSPC) {
|
|
57
|
+
max *= 2;
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (r.ret === WASI_ERRNO.ENOMEM || r.str === 'ENOMEM') {
|
|
61
|
+
throw new VcdiffError(`vcdiff encode failed: input too large for xdelta3-wasm memory (${target.length} target bytes)`);
|
|
62
|
+
}
|
|
63
|
+
throw new VcdiffError(`vcdiff encode failed: ${r.str} (${r.ret})`);
|
|
64
|
+
}
|
|
65
|
+
throw new VcdiffError('vcdiff encode failed: output too large');
|
|
66
|
+
}
|
|
67
|
+
export async function vcdiffDecode(delta, source = new Uint8Array(0)) {
|
|
68
|
+
await vcdiffReady();
|
|
69
|
+
assertPlainRfc(delta);
|
|
70
|
+
const { xd3_decode_memory, WASI_ERRNO } = xd3();
|
|
71
|
+
let max = Math.max(source.length * 2, 1 << 20);
|
|
72
|
+
for (let i = 0; i < PLAIN_MAX_GROW; i++) {
|
|
73
|
+
const r = xd3_decode_memory(delta, source, max);
|
|
74
|
+
if (r.ret === 0)
|
|
75
|
+
return r.output;
|
|
76
|
+
if (r.ret === WASI_ERRNO.ENOSPC) {
|
|
77
|
+
max *= 2;
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
if (r.ret === WASI_ERRNO.ENOMEM || r.str === 'ENOMEM') {
|
|
81
|
+
throw new VcdiffError('vcdiff decode failed: output too large for xdelta3-wasm memory');
|
|
82
|
+
}
|
|
83
|
+
throw new VcdiffError(`vcdiff decode failed: ${r.str} (${r.ret})`);
|
|
84
|
+
}
|
|
85
|
+
throw new VcdiffError('vcdiff decode failed: output too large');
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=vcdiff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vcdiff.js","sourceRoot":"","sources":["../../src/ordfs/vcdiff.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ export interface AddressSyncMonitorTask {
|
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
24
|
* Builds a monitor task that periodically internalizes payments to
|
|
25
|
-
*
|
|
25
|
+
* P1SAT deposit addresses. Add it after wallet create, then call
|
|
26
26
|
* `monitor.runOnce()` — the factory's boot `runOnce` runs before
|
|
27
27
|
* callers can `addTask`.
|
|
28
28
|
*
|
|
@@ -7,7 +7,7 @@ export const DEFAULT_ADDRESS_SYNC_INTERVAL_MS = 60_000;
|
|
|
7
7
|
export const ADDRESS_SYNC_TASK_NAME = 'AddressSync';
|
|
8
8
|
/**
|
|
9
9
|
* Builds a monitor task that periodically internalizes payments to
|
|
10
|
-
*
|
|
10
|
+
* P1SAT deposit addresses. Add it after wallet create, then call
|
|
11
11
|
* `monitor.runOnce()` — the factory's boot `runOnce` runs before
|
|
12
12
|
* callers can `addTask`.
|
|
13
13
|
*
|
package/dist/sync/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Address Sync Action
|
|
3
3
|
*
|
|
4
|
-
* Derives
|
|
4
|
+
* Derives P1SAT deposit addresses, fetches new outputs from the
|
|
5
5
|
* 1sat-stack indexer (triggering lazy indexing), classifies them
|
|
6
6
|
* with the indexer pipeline, and internalizes them into the wallet.
|
|
7
7
|
*/
|
package/dist/sync/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Address Sync Action
|
|
3
3
|
*
|
|
4
|
-
* Derives
|
|
4
|
+
* Derives P1SAT deposit addresses, fetches new outputs from the
|
|
5
5
|
* 1sat-stack indexer (triggering lazy indexing), classifies them
|
|
6
6
|
* with the indexer pipeline, and internalizes them into the wallet.
|
|
7
7
|
*/
|
|
@@ -45,7 +45,7 @@ async function openStore(identityKey, dataDir) {
|
|
|
45
45
|
export const syncAddresses = {
|
|
46
46
|
meta: {
|
|
47
47
|
name: 'syncAddresses',
|
|
48
|
-
description: 'Sync external payments to
|
|
48
|
+
description: 'Sync external payments to P1SAT deposit addresses into the wallet',
|
|
49
49
|
category: 'sync',
|
|
50
50
|
inputSchema: {
|
|
51
51
|
type: 'object',
|
package/dist/sync/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAEN,sBAAsB,EACtB,eAAe,GACf,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,SAAS,EAAuB,MAAM,UAAU,CAAA;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,OAAO,EAEN,eAAe,GACf,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,MAAM,gBAAgB,GAAG,CAAC,CAAA;AAI1B,MAAM,cAAc,GAAqB;IACxC,eAAe;IACf,sBAAsB;CACtB,CAAA;AAkCD,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,KAAK,UAAU,SAAS,CACvB,WAAmB,EACnB,OAAgB;IAEhB,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE,CAAC;QACtC,OAAO,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,GAAG,GAAG,SAAS,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAA;IAE3D,yEAAyE;IACzE,mEAAmE;IACnE,MAAM,IAAI,GACT,UACA,CAAC,OAAO,EAAE,gBAAgB,CAAA;IAC3B,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;IACrE,CAAC;IACD,MAAM,QAAQ,GAAG,CAChB,KAAK,IAAI,UAAU;QAClB,CAAC,CAAE,IAAI,CAAC,YAAY,CAA2B,CAAC,QAAQ;QACxD,CAAC,CAAE,IAAI,CAAC,aAAa,CAA+B,CAAC,YAAY,CACb,CAAA;IACtD,OAAO,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AACrD,CAAC;AAED,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E,MAAM,CAAC,MAAM,aAAa,GAAoD;IAC7E,IAAI,EAAE;QACL,IAAI,EAAE,eAAe;QACrB,WAAW,EACV,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { LockingScript, type PublicKey, type WalletCounterparty, type WalletInterface, type WalletProtocol } from '@bsv/sdk';
|
|
2
|
+
/** Worst-case DER length (70–72). Unsealed script is at most this long. */
|
|
3
|
+
export declare const PUSHDROP_SIG_PLACEHOLDER_LEN = 72;
|
|
4
|
+
export type PushDropLockParams = {
|
|
5
|
+
fields: number[][];
|
|
6
|
+
protocolID: WalletProtocol;
|
|
7
|
+
keyID: string;
|
|
8
|
+
counterparty?: WalletCounterparty;
|
|
9
|
+
forSelf?: boolean;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Mint a PushDrop lock. Default is unsealed (zeroed trailing signature field)
|
|
13
|
+
* so a permission-module apply pass can swap in the real signature without
|
|
14
|
+
* changing script length. Pass `includeSignature: true` to seal immediately.
|
|
15
|
+
*/
|
|
16
|
+
export declare function pushDropLock(wallet: WalletInterface, params: PushDropLockParams, opts?: {
|
|
17
|
+
includeSignature?: boolean;
|
|
18
|
+
placeholderLen?: number;
|
|
19
|
+
}): Promise<LockingScript>;
|
|
20
|
+
/**
|
|
21
|
+
* Replace a zeroed trailing signature field with a real PushDrop signature.
|
|
22
|
+
* No-op-throw if the last field is not all zeros (already sealed / not a
|
|
23
|
+
* placeholder). Callers that need idempotent seal should catch that.
|
|
24
|
+
*/
|
|
25
|
+
export declare function pushDropSeal(wallet: WalletInterface, lockingScript: LockingScript | string, params: Omit<PushDropLockParams, 'fields'>): Promise<LockingScript>;
|
|
26
|
+
export declare function pushDropDecode(lockingScript: LockingScript | string): {
|
|
27
|
+
fields: number[][];
|
|
28
|
+
lockingPublicKey: PublicKey;
|
|
29
|
+
};
|
|
30
|
+
/** Wallet customInstructions needed to spend a PushDrop we locked. */
|
|
31
|
+
export declare function pushDropCustomInstructions(params: {
|
|
32
|
+
protocolID: WalletProtocol;
|
|
33
|
+
keyID: string;
|
|
34
|
+
counterparty?: WalletCounterparty;
|
|
35
|
+
}): string;
|
|
36
|
+
//# sourceMappingURL=pushdrop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pushdrop.d.ts","sourceRoot":"","sources":["../../src/utils/pushdrop.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EACb,KAAK,SAAS,EAEd,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,MAAM,UAAU,CAAA;AAEjB,2EAA2E;AAC3E,eAAO,MAAM,4BAA4B,KAAK,CAAA;AAE9C,MAAM,MAAM,kBAAkB,GAAG;IAChC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAA;IAClB,UAAU,EAAE,cAAc,CAAA;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAMD;;;;GAIG;AACH,wBAAsB,YAAY,CACjC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,kBAAkB,EAC1B,IAAI,CAAC,EAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5D,OAAO,CAAC,aAAa,CAAC,CAgBxB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CACjC,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,aAAa,GAAG,MAAM,EACrC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,GACxC,OAAO,CAAC,aAAa,CAAC,CAkBxB;AAED,wBAAgB,cAAc,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,GAAG;IACtE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAA;IAClB,gBAAgB,EAAE,SAAS,CAAA;CAC3B,CAUA;AAED,sEAAsE;AACtE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IAClD,UAAU,EAAE,cAAc,CAAA;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,kBAAkB,CAAA;CACjC,GAAG,MAAM,CAMT"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { LockingScript, PushDrop, } from '@bsv/sdk';
|
|
2
|
+
/** Worst-case DER length (70–72). Unsealed script is at most this long. */
|
|
3
|
+
export const PUSHDROP_SIG_PLACEHOLDER_LEN = 72;
|
|
4
|
+
function counterpartyOf(params) {
|
|
5
|
+
return params.counterparty ?? 'anyone';
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Mint a PushDrop lock. Default is unsealed (zeroed trailing signature field)
|
|
9
|
+
* so a permission-module apply pass can swap in the real signature without
|
|
10
|
+
* changing script length. Pass `includeSignature: true` to seal immediately.
|
|
11
|
+
*/
|
|
12
|
+
export async function pushDropLock(wallet, params, opts) {
|
|
13
|
+
const includeSignature = opts?.includeSignature ?? false;
|
|
14
|
+
const fields = includeSignature
|
|
15
|
+
? [...params.fields]
|
|
16
|
+
: [
|
|
17
|
+
...params.fields,
|
|
18
|
+
new Array(opts?.placeholderLen ?? PUSHDROP_SIG_PLACEHOLDER_LEN).fill(0),
|
|
19
|
+
];
|
|
20
|
+
return new PushDrop(wallet).lock(fields, params.protocolID, params.keyID, counterpartyOf(params), params.forSelf ?? true, includeSignature);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Replace a zeroed trailing signature field with a real PushDrop signature.
|
|
24
|
+
* No-op-throw if the last field is not all zeros (already sealed / not a
|
|
25
|
+
* placeholder). Callers that need idempotent seal should catch that.
|
|
26
|
+
*/
|
|
27
|
+
export async function pushDropSeal(wallet, lockingScript, params) {
|
|
28
|
+
const script = typeof lockingScript === 'string'
|
|
29
|
+
? LockingScript.fromHex(lockingScript)
|
|
30
|
+
: lockingScript;
|
|
31
|
+
const fields = PushDrop.decode(script).fields.map((f) => [...f]);
|
|
32
|
+
const placeholder = fields.pop();
|
|
33
|
+
if (!placeholder?.length || placeholder.some((b) => b !== 0)) {
|
|
34
|
+
throw new Error('pushdrop seal: signature field is not zeroed');
|
|
35
|
+
}
|
|
36
|
+
return new PushDrop(wallet).lock(fields, params.protocolID, params.keyID, params.counterparty ?? 'anyone', params.forSelf ?? true, true);
|
|
37
|
+
}
|
|
38
|
+
export function pushDropDecode(lockingScript) {
|
|
39
|
+
const script = typeof lockingScript === 'string'
|
|
40
|
+
? LockingScript.fromHex(lockingScript)
|
|
41
|
+
: lockingScript;
|
|
42
|
+
const decoded = PushDrop.decode(script);
|
|
43
|
+
return {
|
|
44
|
+
fields: decoded.fields,
|
|
45
|
+
lockingPublicKey: decoded.lockingPublicKey,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/** Wallet customInstructions needed to spend a PushDrop we locked. */
|
|
49
|
+
export function pushDropCustomInstructions(params) {
|
|
50
|
+
return JSON.stringify({
|
|
51
|
+
protocolID: params.protocolID,
|
|
52
|
+
keyID: params.keyID,
|
|
53
|
+
counterparty: params.counterparty ?? 'anyone',
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=pushdrop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pushdrop.js","sourceRoot":"","sources":["../../src/utils/pushdrop.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EAEb,QAAQ,GAIR,MAAM,UAAU,CAAA;AAEjB,2EAA2E;AAC3E,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAA;AAU9C,SAAS,cAAc,CAAC,MAA0B;IACjD,OAAO,MAAM,CAAC,YAAY,IAAI,QAAQ,CAAA;AACvC,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CACjC,MAAuB,EACvB,MAA0B,EAC1B,IAA8D;IAE9D,MAAM,gBAAgB,GAAG,IAAI,EAAE,gBAAgB,IAAI,KAAK,CAAA;IACxD,MAAM,MAAM,GAAG,gBAAgB;QAC9B,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QACpB,CAAC,CAAC;YACA,GAAG,MAAM,CAAC,MAAM;YAChB,IAAI,KAAK,CAAC,IAAI,EAAE,cAAc,IAAI,4BAA4B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;SACvE,CAAA;IACH,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAC/B,MAAM,EACN,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,KAAK,EACZ,cAAc,CAAC,MAAM,CAAC,EACtB,MAAM,CAAC,OAAO,IAAI,IAAI,EACtB,gBAAgB,CAChB,CAAA;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CACjC,MAAuB,EACvB,aAAqC,EACrC,MAA0C;IAE1C,MAAM,MAAM,GACX,OAAO,aAAa,KAAK,QAAQ;QAChC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC;QACtC,CAAC,CAAC,aAAa,CAAA;IACjB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAChE,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,EAAE,CAAA;IAChC,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IAChE,CAAC;IACD,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAC/B,MAAM,EACN,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,YAAY,IAAI,QAAQ,EAC/B,MAAM,CAAC,OAAO,IAAI,IAAI,EACtB,IAAI,CACJ,CAAA;AACF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,aAAqC;IAInE,MAAM,MAAM,GACX,OAAO,aAAa,KAAK,QAAQ;QAChC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC;QACtC,CAAC,CAAC,aAAa,CAAA;IACjB,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACvC,OAAO;QACN,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;KAC1C,CAAA;AACF,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,0BAA0B,CAAC,MAI1C;IACA,OAAO,IAAI,CAAC,SAAS,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,QAAQ;KAC7C,CAAC,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@1sat/actions",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.223",
|
|
4
4
|
"description": "Action definitions for the 1Sat SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -30,17 +30,18 @@
|
|
|
30
30
|
"license": "MIT",
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@1sat/client": "0.0.55",
|
|
33
|
-
"@1sat/templates": "0.0.
|
|
33
|
+
"@1sat/templates": "0.0.38",
|
|
34
34
|
"@1sat/types": "0.0.48",
|
|
35
35
|
"@1sat/utils": "0.0.38",
|
|
36
|
-
"@1sat/wallet": "0.0.
|
|
37
|
-
"@bsv/message-box-client": "^2.5.0"
|
|
36
|
+
"@1sat/wallet": "0.0.111",
|
|
37
|
+
"@bsv/message-box-client": "^2.5.0",
|
|
38
|
+
"xdelta3-wasm": "^1.0.0"
|
|
38
39
|
},
|
|
39
40
|
"peerDependencies": {
|
|
40
41
|
"@bsv/sdk": "^2.6.0"
|
|
41
42
|
},
|
|
42
43
|
"devDependencies": {
|
|
43
|
-
"@1sat/wallet-remote": "0.0.
|
|
44
|
+
"@1sat/wallet-remote": "0.0.68",
|
|
44
45
|
"@bsv/sdk": "^2.6.0",
|
|
45
46
|
"typescript": "^5.9.3"
|
|
46
47
|
}
|