@bsv/dpp-core 0.3.0-beta.1

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.
Files changed (86) hide show
  1. package/LICENSE +58 -0
  2. package/README.md +95 -0
  3. package/dist/acceptance.d.ts +100 -0
  4. package/dist/acceptance.d.ts.map +1 -0
  5. package/dist/acceptance.js +202 -0
  6. package/dist/acceptance.js.map +1 -0
  7. package/dist/anchor.d.ts +66 -0
  8. package/dist/anchor.d.ts.map +1 -0
  9. package/dist/anchor.js +145 -0
  10. package/dist/anchor.js.map +1 -0
  11. package/dist/attestation.d.ts +40 -0
  12. package/dist/attestation.d.ts.map +1 -0
  13. package/dist/attestation.js +111 -0
  14. package/dist/attestation.js.map +1 -0
  15. package/dist/blob.d.ts +11 -0
  16. package/dist/blob.d.ts.map +1 -0
  17. package/dist/blob.js +16 -0
  18. package/dist/blob.js.map +1 -0
  19. package/dist/canonical.d.ts +32 -0
  20. package/dist/canonical.d.ts.map +1 -0
  21. package/dist/canonical.js +54 -0
  22. package/dist/canonical.js.map +1 -0
  23. package/dist/canonicalJson.d.ts +22 -0
  24. package/dist/canonicalJson.d.ts.map +1 -0
  25. package/dist/canonicalJson.js +60 -0
  26. package/dist/canonicalJson.js.map +1 -0
  27. package/dist/codec.d.ts +45 -0
  28. package/dist/codec.d.ts.map +1 -0
  29. package/dist/codec.js +459 -0
  30. package/dist/codec.js.map +1 -0
  31. package/dist/constants.d.ts +150 -0
  32. package/dist/constants.d.ts.map +1 -0
  33. package/dist/constants.js +179 -0
  34. package/dist/constants.js.map +1 -0
  35. package/dist/did.d.ts +37 -0
  36. package/dist/did.d.ts.map +1 -0
  37. package/dist/did.js +129 -0
  38. package/dist/did.js.map +1 -0
  39. package/dist/evidence.d.ts +224 -0
  40. package/dist/evidence.d.ts.map +1 -0
  41. package/dist/evidence.js +716 -0
  42. package/dist/evidence.js.map +1 -0
  43. package/dist/evidencePackage.d.ts +114 -0
  44. package/dist/evidencePackage.d.ts.map +1 -0
  45. package/dist/evidencePackage.js +164 -0
  46. package/dist/evidencePackage.js.map +1 -0
  47. package/dist/index.d.ts +31 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +31 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/owner.d.ts +135 -0
  52. package/dist/owner.d.ts.map +1 -0
  53. package/dist/owner.js +181 -0
  54. package/dist/owner.js.map +1 -0
  55. package/dist/publisherPolicy.d.ts +70 -0
  56. package/dist/publisherPolicy.d.ts.map +1 -0
  57. package/dist/publisherPolicy.js +186 -0
  58. package/dist/publisherPolicy.js.map +1 -0
  59. package/dist/signatures.d.ts +84 -0
  60. package/dist/signatures.d.ts.map +1 -0
  61. package/dist/signatures.js +137 -0
  62. package/dist/signatures.js.map +1 -0
  63. package/dist/transition.d.ts +29 -0
  64. package/dist/transition.d.ts.map +1 -0
  65. package/dist/transition.js +117 -0
  66. package/dist/transition.js.map +1 -0
  67. package/dist/types.d.ts +135 -0
  68. package/dist/types.d.ts.map +1 -0
  69. package/dist/types.js +2 -0
  70. package/dist/types.js.map +1 -0
  71. package/dist/verifyChain.d.ts +152 -0
  72. package/dist/verifyChain.d.ts.map +1 -0
  73. package/dist/verifyChain.js +314 -0
  74. package/dist/verifyChain.js.map +1 -0
  75. package/package.json +46 -0
  76. package/schemas/capabilities.schema.json +129 -0
  77. package/schemas/epcis-import.schema.json +212 -0
  78. package/schemas/evidence-export.schema.json +67 -0
  79. package/schemas/evidence-package.schema.json +307 -0
  80. package/schemas/native-evidence-extension.schema.json +66 -0
  81. package/schemas/paginated-history.schema.json +32 -0
  82. package/schemas/passport-projection.schema.json +151 -0
  83. package/schemas/passport-source.schema.json +370 -0
  84. package/schemas/profile-evidence.schema.json +706 -0
  85. package/schemas/publisher-policy.schema.json +173 -0
  86. package/schemas/verification-report.schema.json +397 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ export declare const EVIDENCE_PACKAGE_FORMAT = "dpp-evidence-package";
2
+ export declare const EVIDENCE_PACKAGE_VERSION = "1";
3
+ export declare const EVIDENCE_PACKAGE_MANIFEST_PATH = "manifest.json";
4
+ export type InventoryCategory = 'transactions' | 'proofs' | 'native-claims' | 'external-credentials' | 'evidence' | 'schemas' | 'authority' | 'status' | 'reports';
5
+ export declare const INVENTORY_CATEGORIES: readonly InventoryCategory[];
6
+ export type DisclosureScope = 'public' | 'public-and-owner' | 'public-and-legitimate' | 'public-and-authority' | 'all-tiers';
7
+ export interface InventoryEntry {
8
+ path: string;
9
+ category: InventoryCategory;
10
+ mediaType: string;
11
+ byteLength: number;
12
+ sha256: string;
13
+ encrypted?: boolean;
14
+ represents?: string;
15
+ representation?: string;
16
+ }
17
+ export interface SourceObservation {
18
+ id: string;
19
+ kind: 'overlay-lookup' | 'spend-status' | 'header-source' | 'registry' | 'other';
20
+ observedAt: string;
21
+ result: 'unspent' | 'spent' | 'not-found' | 'unavailable' | 'conflicting';
22
+ height?: number;
23
+ blockHash?: string;
24
+ }
25
+ export interface EvidencePackageManifest {
26
+ format: typeof EVIDENCE_PACKAGE_FORMAT;
27
+ version: typeof EVIDENCE_PACKAGE_VERSION;
28
+ passportId: string;
29
+ genesis?: {
30
+ txid: string;
31
+ outputIndex: number;
32
+ };
33
+ selectedTip?: {
34
+ txid: string;
35
+ outputIndex: number;
36
+ };
37
+ exportedAt: string;
38
+ exporter: {
39
+ id: string;
40
+ role: 'registry' | 'overlay' | 'writer' | 'reader' | 'other';
41
+ software?: string;
42
+ };
43
+ profiles?: string[];
44
+ policyId?: string;
45
+ disclosure: {
46
+ scope: DisclosureScope;
47
+ recipient?: string;
48
+ recoveryBackup: boolean;
49
+ };
50
+ completeness: {
51
+ snapshots: Array<{
52
+ source: string;
53
+ snapshotId: string;
54
+ completeForSnapshot: boolean;
55
+ scope?: string;
56
+ }>;
57
+ withheld: string[];
58
+ absent: string[];
59
+ };
60
+ sources: SourceObservation[];
61
+ inventory: InventoryEntry[];
62
+ signature: {
63
+ suite: 'bsv-ecdsa-der';
64
+ signer: string;
65
+ value: string;
66
+ };
67
+ }
68
+ export type UnsignedEvidenceManifest = Omit<EvidencePackageManifest, 'signature'> & {
69
+ signature: {
70
+ suite: 'bsv-ecdsa-der';
71
+ signer: string;
72
+ };
73
+ };
74
+ export interface PackageSigner {
75
+ /** DER-encoded ECDSA signature over the preimage; the key must be the manifest's `signature.signer`. */
76
+ sign(preimage: number[]): Promise<number[]> | number[];
77
+ }
78
+ export declare const sha256Hex: (bytes: number[]) => string;
79
+ /** An inventory entry for bytes about to be packaged, with the length and digest computed, never typed. */
80
+ export declare function inventoryEntry(path: string, category: InventoryCategory, mediaType: string, bytes: number[], extra?: Pick<InventoryEntry, 'encrypted' | 'represents' | 'representation'>): InventoryEntry;
81
+ /** Why a path is refused, or undefined when it is a plain relative path. */
82
+ export declare function pathProblem(path: string): string | undefined;
83
+ /** The bytes the exporter signs: the manifest without `signature.value`, in canonical JSON, UTF-8. */
84
+ export declare function manifestSigningPreimage(manifest: UnsignedEvidenceManifest | EvidencePackageManifest): number[];
85
+ export declare function signEvidenceManifest(unsigned: UnsignedEvidenceManifest, signer: PackageSigner): Promise<EvidencePackageManifest>;
86
+ export type PackageFailureReason = 'format' | 'path-invalid' | 'path-duplicate' | 'file-missing' | 'file-unlisted' | 'length-mismatch' | 'digest-mismatch' | 'signature-invalid' | 'signer-unexpected' | 'disclosure-contradiction' | 'passport-mismatch';
87
+ export interface PackageFailure {
88
+ reason: PackageFailureReason;
89
+ path?: string;
90
+ detail: string;
91
+ }
92
+ export interface PackageInspection {
93
+ /** The manifest has the declared shape and its declarations do not contradict each other. */
94
+ structureValid: boolean;
95
+ /** Every listed file is present with its length and digest, and no file is unlisted. Independent of the signature. */
96
+ inventoryVerified: boolean;
97
+ /** The exporter's signature over the manifest, or null when the manifest could not be canonicalised. Says who assembled the bytes, not that they are true or complete. */
98
+ signatureValid: boolean | null;
99
+ failures: PackageFailure[];
100
+ declaredWithheld: string[];
101
+ declaredAbsent: string[];
102
+ recoveryBackup: boolean;
103
+ }
104
+ /**
105
+ * Inspect a package: the manifest, the files by their inventory path (the
106
+ * manifest itself is not among them), and what the reader expects. The
107
+ * returned answers are separate on purpose; a caller that wants one word
108
+ * chooses it knowingly.
109
+ */
110
+ export declare function inspectEvidencePackage(manifest: EvidencePackageManifest, files: Map<string, number[]>, options?: {
111
+ expectedPassportId?: string;
112
+ expectedSigner?: string;
113
+ }): PackageInspection;
114
+ //# sourceMappingURL=evidencePackage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidencePackage.d.ts","sourceRoot":"","sources":["../src/evidencePackage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,164 @@
1
+ /**
2
+ * The evidence package (`spec/portable-evidence.md` §2,
3
+ * `contracts/evidence-package.schema.json`): a signed manifest over a
4
+ * content-addressed inventory. The signature says who assembled which bytes;
5
+ * `inspectEvidencePackage` therefore answers three separate questions, the
6
+ * manifest's structure, the inventory against the files, and the signature,
7
+ * and never folds them into one Boolean. A reader verifies every transaction,
8
+ * proof and claim inside independently of who signed the package.
9
+ */
10
+ import { Hash, PublicKey, Signature, Utils } from '@bsv/sdk';
11
+ import { canonicalJson, CanonicalJsonError } from './canonicalJson.js';
12
+ export const EVIDENCE_PACKAGE_FORMAT = 'dpp-evidence-package';
13
+ export const EVIDENCE_PACKAGE_VERSION = '1';
14
+ export const EVIDENCE_PACKAGE_MANIFEST_PATH = 'manifest.json';
15
+ export const INVENTORY_CATEGORIES = ['transactions', 'proofs', 'native-claims', 'external-credentials', 'evidence', 'schemas', 'authority', 'status', 'reports'];
16
+ const KEY = /^0[23][0-9a-f]{64}$/;
17
+ const HEX64 = /^[0-9a-f]{64}$/;
18
+ const TIME = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})$/;
19
+ export const sha256Hex = (bytes) => Utils.toHex(Hash.sha256(bytes));
20
+ /** An inventory entry for bytes about to be packaged, with the length and digest computed, never typed. */
21
+ export function inventoryEntry(path, category, mediaType, bytes, extra = {}) {
22
+ return { path, category, mediaType, byteLength: bytes.length, sha256: sha256Hex(bytes), ...extra };
23
+ }
24
+ /** Why a path is refused, or undefined when it is a plain relative path. */
25
+ export function pathProblem(path) {
26
+ if (typeof path !== 'string' || path.length === 0)
27
+ return 'empty';
28
+ if (path.includes('\u0000'))
29
+ return 'contains NUL';
30
+ if (path.includes('\\'))
31
+ return 'contains a backslash';
32
+ if (path.startsWith('/'))
33
+ return 'absolute';
34
+ if (/^[A-Za-z]:/.test(path))
35
+ return 'drive-qualified';
36
+ const segments = path.split('/');
37
+ if (segments.some((s) => s.length === 0))
38
+ return 'empty segment';
39
+ if (segments.some((s) => s === '..'))
40
+ return 'traverses upwards';
41
+ if (segments.some((s) => s === '.'))
42
+ return 'contains a current-directory segment';
43
+ if (path === EVIDENCE_PACKAGE_MANIFEST_PATH)
44
+ return 'names the manifest itself';
45
+ return undefined;
46
+ }
47
+ /** The bytes the exporter signs: the manifest without `signature.value`, in canonical JSON, UTF-8. */
48
+ export function manifestSigningPreimage(manifest) {
49
+ const { value: _value, ...signature } = manifest.signature;
50
+ return Utils.toArray(canonicalJson({ ...manifest, signature }), 'utf8');
51
+ }
52
+ export async function signEvidenceManifest(unsigned, signer) {
53
+ const der = await signer.sign(manifestSigningPreimage(unsigned));
54
+ return { ...unsigned, signature: { ...unsigned.signature, value: Utils.toHex(der) } };
55
+ }
56
+ function structure(manifest, failures, expectedPassportId) {
57
+ const fail = (reason, detail, path) => failures.push({ reason, detail, ...(path == null ? {} : { path }) });
58
+ if (manifest.format !== EVIDENCE_PACKAGE_FORMAT || manifest.version !== EVIDENCE_PACKAGE_VERSION)
59
+ fail('format', `format ${String(manifest.format)} version ${String(manifest.version)} is not ${EVIDENCE_PACKAGE_FORMAT}@${EVIDENCE_PACKAGE_VERSION}`);
60
+ if (typeof manifest.passportId !== 'string' || manifest.passportId.length === 0 || manifest.passportId.length > 512)
61
+ fail('format', 'passportId must be a string of at most 512 characters');
62
+ else if (expectedPassportId != null && manifest.passportId !== expectedPassportId)
63
+ fail('passport-mismatch', `the package is about ${manifest.passportId}, not ${expectedPassportId}`);
64
+ if (typeof manifest.exportedAt !== 'string' || !TIME.test(manifest.exportedAt))
65
+ fail('format', 'exportedAt must be a date-time');
66
+ for (const [name, outpoint] of [['genesis', manifest.genesis], ['selectedTip', manifest.selectedTip]]) {
67
+ if (outpoint != null && (!HEX64.test(outpoint.txid ?? '') || !Number.isInteger(outpoint.outputIndex) || outpoint.outputIndex < 0))
68
+ fail('format', `${name} is not an outpoint`);
69
+ }
70
+ if (manifest.exporter == null || typeof manifest.exporter.id !== 'string' || manifest.exporter.id.length === 0)
71
+ fail('format', 'exporter.id is required');
72
+ if (manifest.disclosure == null || typeof manifest.disclosure.recoveryBackup !== 'boolean')
73
+ fail('format', 'disclosure.recoveryBackup must be declared');
74
+ else if (manifest.disclosure.recoveryBackup && manifest.disclosure.scope !== 'all-tiers')
75
+ fail('disclosure-contradiction', `a ${manifest.disclosure.scope} package cannot be a recovery backup`);
76
+ if (manifest.completeness == null || !Array.isArray(manifest.completeness.snapshots) || !Array.isArray(manifest.completeness.withheld) || !Array.isArray(manifest.completeness.absent))
77
+ fail('format', 'completeness must declare snapshots, withheld and absent');
78
+ if (!Array.isArray(manifest.sources))
79
+ fail('format', 'sources must be an array');
80
+ if (manifest.signature == null || manifest.signature.suite !== 'bsv-ecdsa-der' || !KEY.test(manifest.signature.signer ?? '') || typeof manifest.signature.value !== 'string')
81
+ fail('format', 'signature needs the bsv-ecdsa-der suite, a compressed signer key and a value');
82
+ if (!Array.isArray(manifest.inventory) || manifest.inventory.length === 0) {
83
+ fail('format', 'inventory must list at least one file');
84
+ return;
85
+ }
86
+ const seen = new Set();
87
+ for (const entry of manifest.inventory) {
88
+ const problem = pathProblem(entry.path);
89
+ if (problem != null)
90
+ fail('path-invalid', `path ${JSON.stringify(entry.path)} is ${problem}`, typeof entry.path === 'string' ? entry.path : undefined);
91
+ if (seen.has(entry.path))
92
+ fail('path-duplicate', `path ${entry.path} is listed twice`, entry.path);
93
+ seen.add(entry.path);
94
+ if (!INVENTORY_CATEGORIES.includes(entry.category))
95
+ fail('format', `category ${String(entry.category)} is not one of the nine`, entry.path);
96
+ if (typeof entry.mediaType !== 'string' || entry.mediaType.length === 0)
97
+ fail('format', 'mediaType is required', entry.path);
98
+ if (!Number.isInteger(entry.byteLength) || entry.byteLength < 0)
99
+ fail('format', 'byteLength must be a non-negative integer', entry.path);
100
+ if (!HEX64.test(entry.sha256 ?? ''))
101
+ fail('format', 'sha256 must be 64 lowercase hex characters', entry.path);
102
+ }
103
+ }
104
+ /**
105
+ * Inspect a package: the manifest, the files by their inventory path (the
106
+ * manifest itself is not among them), and what the reader expects. The
107
+ * returned answers are separate on purpose; a caller that wants one word
108
+ * chooses it knowingly.
109
+ */
110
+ export function inspectEvidencePackage(manifest, files, options = {}) {
111
+ const failures = [];
112
+ structure(manifest, failures, options.expectedPassportId);
113
+ const structureValid = failures.length === 0;
114
+ let inventoryVerified = false;
115
+ if (Array.isArray(manifest.inventory)) {
116
+ const before = failures.length;
117
+ const listed = new Set();
118
+ for (const entry of manifest.inventory) {
119
+ if (typeof entry.path !== 'string')
120
+ continue;
121
+ listed.add(entry.path);
122
+ const bytes = files.get(entry.path);
123
+ if (bytes == null) {
124
+ failures.push({ reason: 'file-missing', path: entry.path, detail: `${entry.path} is listed and not present` });
125
+ continue;
126
+ }
127
+ if (bytes.length !== entry.byteLength)
128
+ failures.push({ reason: 'length-mismatch', path: entry.path, detail: `${entry.path} has ${bytes.length} bytes, not ${entry.byteLength}` });
129
+ if (sha256Hex(bytes) !== entry.sha256)
130
+ failures.push({ reason: 'digest-mismatch', path: entry.path, detail: `${entry.path} does not hash to its inventory digest` });
131
+ }
132
+ for (const path of files.keys()) {
133
+ if (!listed.has(path) && path !== EVIDENCE_PACKAGE_MANIFEST_PATH)
134
+ failures.push({ reason: 'file-unlisted', path, detail: `${path} is present and not in the inventory` });
135
+ }
136
+ inventoryVerified = failures.length === before && manifest.inventory.length > 0 && manifest.inventory.every((e) => pathProblem(e.path) == null);
137
+ }
138
+ let signatureValid = null;
139
+ if (manifest.signature != null && typeof manifest.signature.value === 'string' && KEY.test(manifest.signature.signer ?? '')) {
140
+ try {
141
+ const preimage = manifestSigningPreimage(manifest);
142
+ signatureValid = PublicKey.fromString(manifest.signature.signer).verify(preimage, Signature.fromDER(Utils.toArray(manifest.signature.value, 'hex')));
143
+ }
144
+ catch (error) {
145
+ signatureValid = error instanceof CanonicalJsonError ? null : false;
146
+ if (signatureValid === null)
147
+ failures.push({ reason: 'format', detail: error instanceof Error ? error.message : 'the manifest has no canonical form' });
148
+ }
149
+ if (signatureValid === false)
150
+ failures.push({ reason: 'signature-invalid', detail: `the manifest signature does not verify under ${manifest.signature.signer}` });
151
+ if (options.expectedSigner != null && manifest.signature.signer !== options.expectedSigner)
152
+ failures.push({ reason: 'signer-unexpected', detail: `signed by ${manifest.signature.signer}, not the expected ${options.expectedSigner}` });
153
+ }
154
+ return {
155
+ structureValid,
156
+ inventoryVerified,
157
+ signatureValid,
158
+ failures,
159
+ declaredWithheld: Array.isArray(manifest.completeness?.withheld) ? [...manifest.completeness.withheld] : [],
160
+ declaredAbsent: Array.isArray(manifest.completeness?.absent) ? [...manifest.completeness.absent] : [],
161
+ recoveryBackup: manifest.disclosure?.recoveryBackup === true,
162
+ };
163
+ }
164
+ //# sourceMappingURL=evidencePackage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidencePackage.js","sourceRoot":"","sources":["../src/evidencePackage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @bsv/dpp-core - DPP Token Standard v1 reference implementation.
3
+ *
4
+ * Single source of truth (build-guide hard rule 3) for:
5
+ * - field layout encode/decode (`spec/record-model.md` §2-§3)
6
+ * - the canonical signature preimage (§5)
7
+ * - chain verification incl. SPV (§6, §8)
8
+ * - owner-tier blob hash binding (§7)
9
+ * - did:key for identity keys, and the derivation a verifier needs (`spec/identity.md`)
10
+ * - the canonical bytes an attestation is signed and hashed over (`spec/rules.md` §4)
11
+ *
12
+ * Imported by the overlay topic manager and every consuming application.
13
+ */
14
+ export * from './constants.js';
15
+ export * from './types.js';
16
+ export * from './codec.js';
17
+ export * from './signatures.js';
18
+ export * from './transition.js';
19
+ export * from './verifyChain.js';
20
+ export * from './blob.js';
21
+ export * from './did.js';
22
+ export * from './owner.js';
23
+ export * from './canonical.js';
24
+ export * from './attestation.js';
25
+ export * from './anchor.js';
26
+ export * from './evidence.js';
27
+ export * from './canonicalJson.js';
28
+ export * from './publisherPolicy.js';
29
+ export * from './evidencePackage.js';
30
+ export * from './acceptance.js';
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @bsv/dpp-core - DPP Token Standard v1 reference implementation.
3
+ *
4
+ * Single source of truth (build-guide hard rule 3) for:
5
+ * - field layout encode/decode (`spec/record-model.md` §2-§3)
6
+ * - the canonical signature preimage (§5)
7
+ * - chain verification incl. SPV (§6, §8)
8
+ * - owner-tier blob hash binding (§7)
9
+ * - did:key for identity keys, and the derivation a verifier needs (`spec/identity.md`)
10
+ * - the canonical bytes an attestation is signed and hashed over (`spec/rules.md` §4)
11
+ *
12
+ * Imported by the overlay topic manager and every consuming application.
13
+ */
14
+ export * from './constants.js';
15
+ export * from './types.js';
16
+ export * from './codec.js';
17
+ export * from './signatures.js';
18
+ export * from './transition.js';
19
+ export * from './verifyChain.js';
20
+ export * from './blob.js';
21
+ export * from './did.js';
22
+ export * from './owner.js';
23
+ export * from './canonical.js';
24
+ export * from './attestation.js';
25
+ export * from './anchor.js';
26
+ export * from './evidence.js';
27
+ export * from './canonicalJson.js';
28
+ export * from './publisherPolicy.js';
29
+ export * from './evidencePackage.js';
30
+ export * from './acceptance.js';
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,135 @@
1
+ import { type KeyDeriverApi, type RevealSpecificKeyLinkageResult, type WalletProtocol } from '@bsv/sdk';
2
+ import type { DppStateData, DppStateDataV2 } from './types.js';
3
+ /**
4
+ * The owner key, the possession convention and the owner-signed transfer
5
+ * (`spec/custody.md` §2 to §4), in the four operations a BRC-100 wallet already
6
+ * has. Everything here is one derivation from a root and exports nothing, which
7
+ * is the constraint the standard imposes on itself (`spec/custody.md` §1): a rule
8
+ * that needed a deeper hierarchy could only be satisfied by software holding raw
9
+ * keys, and would make self-custody impossible while looking neutral.
10
+ *
11
+ * **Why the linkage scalar is safe to publish, and when it is not.** BRC-42
12
+ * derives a child as `parent + s·G`, where `s` is an HMAC keyed by a shared secret
13
+ * only the root can form. Publishing `s` for one passport proves that the root
14
+ * derived that owner key and nothing about any other passport. It also makes the
15
+ * derived private key and the root private key differ by a public number: a
16
+ * wallet that exported the derived key, the one that spends a tip under the
17
+ * possession convention, would hand its root to anyone who had read the chain.
18
+ * The no-export rule is therefore a security requirement of this design, and the
19
+ * helpers below never touch a private key.
20
+ *
21
+ * **The predicate runs in a fixed order.** Equality, then the transfer
22
+ * authorities, then linkage, so two readers cannot differ on one state; the
23
+ * property is read only when the first two do not settle it, and when read it has
24
+ * exactly one accepted spelling.
25
+ */
26
+ /** The slice of a BRC-100 wallet that produces field 6. ProtoWallet and WalletClient both fit. */
27
+ export interface OwnerKeyWallet {
28
+ getPublicKey: (args: {
29
+ protocolID: WalletProtocol;
30
+ keyID: string;
31
+ counterparty: string;
32
+ }) => Promise<{
33
+ publicKey: string;
34
+ }>;
35
+ }
36
+ /**
37
+ * Field 6 as `spec/record-model.md` §3 recommends: the wallet's root derived under
38
+ * OWNER_PROTOCOL_ID with keyID = passport_id and counterparty 'self'.
39
+ */
40
+ export declare function ownerKeyFor(passportId: string, wallet: OwnerKeyWallet): Promise<string>;
41
+ /** The same key straight from a key deriver (server-side custodians, tests). */
42
+ export declare function ownerKeyFromDeriver(passportId: string, deriver: KeyDeriverApi): string;
43
+ /**
44
+ * The BRC-69 specific key linkage of the owner key, as 64 lower-case hex: the
45
+ * scalar `s` with `ownerKey = identityKey + s·G`. From a deriver, for the side
46
+ * that holds the root outright.
47
+ */
48
+ export declare function ownerLinkageFromDeriver(passportId: string, deriver: KeyDeriverApi): string;
49
+ /** The slice of a BRC-100 wallet that reveals the linkage. */
50
+ export interface OwnerLinkageProver {
51
+ getPublicKey: (args: {
52
+ identityKey: true;
53
+ }) => Promise<{
54
+ publicKey: string;
55
+ }>;
56
+ revealSpecificKeyLinkage: (args: {
57
+ counterparty: string;
58
+ verifier: string;
59
+ protocolID: WalletProtocol;
60
+ keyID: string;
61
+ }) => Promise<RevealSpecificKeyLinkageResult>;
62
+ }
63
+ /**
64
+ * The BRC-100 path to the scalar: the owner's wallet reveals the linkage of its
65
+ * own owner key for this passport, encrypted to `verifierIdentityKey`. The
66
+ * counterparty is the wallet's own identity key, which is what 'self' means and
67
+ * is the spelling the BRC-100 wire accepts.
68
+ */
69
+ export declare function revealOwnerLinkage(passportId: string, wallet: OwnerLinkageProver, verifierIdentityKey: string): Promise<RevealSpecificKeyLinkageResult>;
70
+ /** The slice of a BRC-100 wallet that decrypts a revelation made to it. */
71
+ export interface OwnerLinkageVerifierWallet {
72
+ decrypt: (args: {
73
+ ciphertext: number[];
74
+ protocolID: WalletProtocol;
75
+ keyID: string;
76
+ counterparty: string;
77
+ }) => Promise<{
78
+ plaintext: number[];
79
+ }>;
80
+ }
81
+ /**
82
+ * The verifier's side of `revealOwnerLinkage`: the scalar as 64 lower-case hex,
83
+ * ready to carry in event_data. The writing application does this once and then
84
+ * publishes the scalar in the clear, because on chain the verifier is everyone.
85
+ */
86
+ export declare function decryptOwnerLinkage(revelation: Pick<RevealSpecificKeyLinkageResult, 'prover' | 'keyID' | 'encryptedLinkage'>, wallet: OwnerLinkageVerifierWallet): Promise<string>;
87
+ /**
88
+ * `previousOwnerKey == actorIdentityKey + s·G`, mirroring PublicKey.deriveChild
89
+ * exactly: the scalar is the HMAC bytes read big-endian, and Point.mul reduces it
90
+ * modulo the curve order as derivation itself does. Pure, never throws: a key
91
+ * that does not parse is a false, not an exception, because the caller has a
92
+ * reason string to return and this function has none to add.
93
+ */
94
+ export declare function verifyOwnerLinkage(actorIdentityKeyHex: string, previousOwnerKeyHex: string, linkageHex: string): boolean;
95
+ /** The three refusals of `spec/custody.md` §4, verbatim; fixtures pin these strings. */
96
+ export declare const OWNER_CONSENT_REFUSALS: {
97
+ readonly noLinkage: "TRANSFER actor is not the previous owner and event_data carries no owner_linkage";
98
+ readonly malformedLinkage: "owner_linkage must be 64 lower-case hex characters";
99
+ readonly notLinked: "owner_linkage does not link actor_identity_key to the previous owner_identity_key";
100
+ };
101
+ type ConsentFields = Pick<DppStateData, 'op' | 'actorIdentityKey' | 'ownerIdentityKey' | 'eventData'>;
102
+ /**
103
+ * The owner-signed transfer (`spec/custody.md` §4). Returns null when the state
104
+ * passes or the predicate does not apply (not a TRANSFER), otherwise the reason
105
+ * a conforming reader reports. `authorities` are the profile's transfer
106
+ * authorities, already canonical (see `normaliseTransferAuthorities`).
107
+ */
108
+ export declare function checkOwnerConsent(prev: Pick<ConsentFields, 'ownerIdentityKey'>, next: ConsentFields, authorities?: readonly string[]): string | null;
109
+ /**
110
+ * Transfer authorities as the predicate compares them: canonical compressed
111
+ * lower-case hex, the spelling fields 6 and 7 carry. Upper-case input is
112
+ * accepted and normalised; anything that is not a valid compressed key throws,
113
+ * because a misconfigured authority must fail at boot, not silently never match.
114
+ */
115
+ export declare function normaliseTransferAuthorities(keys: readonly string[]): string[];
116
+ /** The three refusals of `spec/record-model-v2.md` §6 (control), verbatim; fixtures pin these strings. */
117
+ export declare const CONTROL_REFUSALS: {
118
+ readonly notProven: "the actor is not the controller and control_linkage is empty";
119
+ readonly redundantLinkage: "control_linkage must be empty when the actor is the controller or a named authority";
120
+ readonly notLinked: "control_linkage does not link actor_identity_key to the previous controller_key";
121
+ };
122
+ type ControlFields = Pick<DppStateDataV2, 'op' | 'actorIdentityKey' | 'controlLinkage'>;
123
+ /**
124
+ * The control proof of a version 2 UPDATE, TRANSFER or RETIRE
125
+ * (`spec/record-model-v2.md` §6): the actor is the previous controller by
126
+ * equality (field 7 equals the previous field 6), or a named authority, or
127
+ * proves it by linkage (field 14 is the scalar with previous field 6 equal to
128
+ * field 7 plus the scalar times G). Evaluated in that order, and the linkage
129
+ * field has one accepted state under each branch: empty under equality and
130
+ * under an authority, the scalar otherwise. Returns null when the state
131
+ * passes or the rule does not apply (an ISSUE), otherwise the reason.
132
+ */
133
+ export declare function checkControl(prev: Pick<DppStateData, 'ownerIdentityKey'>, next: ControlFields, authorities?: readonly string[]): string | null;
134
+ export {};
135
+ //# sourceMappingURL=owner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owner.d.ts","sourceRoot":"","sources":["../src/owner.ts"],"names":[],"mappings":"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"}