xoonya 2.10.0 → 2.11.0
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/README.md +13 -13
- package/RELEASE_NOTES.md +7 -7
- package/XNYA_CONFORMANCE_MARK.md +3 -3
- package/XNYA_REFERENCE_IMPLEMENTATIONS.md +1 -1
- package/XOONYA_NATIVE_ATOM_SPEC.md +6 -6
- package/XOONYA_NATIVE_PROOF_FORMAT.md +28 -28
- package/XOONYA_NATIVE_STANDARD_GOVERNANCE.md +6 -6
- package/bin/xoonya-release.js +8 -8
- package/lib/release_history.js +13 -1
- package/package.json +1 -1
- package/proof_sdk.js +117 -117
- package/reference/python/xnya_reference.py +2 -2
- package/scripts/verify_all.js +45 -45
- package/scripts/verify_native_hybrid_design_gate.js +1 -1
- package/scripts/verify_reference_promotion_gate.js +7 -7
- package/scripts/verify_vectors.js +3 -3
- package/server.js +20 -20
- package/vectors/native-atom-vectors.json +2 -2
package/proof_sdk.js
CHANGED
|
@@ -74,19 +74,19 @@ const PROOF_VERIFICATION_METHODS = Object.freeze({
|
|
|
74
74
|
id: XOONYA_NATIVE_SHA256_METHOD,
|
|
75
75
|
family: "xoonya_native",
|
|
76
76
|
verification_posture: "native_deterministic_digest",
|
|
77
|
-
description: "Verifies
|
|
77
|
+
description: "Verifies xoonya's native deterministic receipt digest format for method-agnostic proof bundles."
|
|
78
78
|
}),
|
|
79
79
|
[XOONYA_NATIVE_SIGNED_METHOD]: Object.freeze({
|
|
80
80
|
id: XOONYA_NATIVE_SIGNED_METHOD,
|
|
81
81
|
family: "xoonya_native",
|
|
82
82
|
verification_posture: "native_signature_verified",
|
|
83
|
-
description: "Verifies
|
|
83
|
+
description: "Verifies xoonya's native signed proof envelope with explicit signature-suite and public-key binding."
|
|
84
84
|
}),
|
|
85
85
|
[XOONYA_NATIVE_ANCHORED_METHOD]: Object.freeze({
|
|
86
86
|
id: XOONYA_NATIVE_ANCHORED_METHOD,
|
|
87
87
|
family: "xoonya_native",
|
|
88
88
|
verification_posture: "native_anchor_binding_verified",
|
|
89
|
-
description: "Verifies
|
|
89
|
+
description: "Verifies xoonya's native anchor-binding proof envelope for chain, batch, finality, or external attestation references."
|
|
90
90
|
}),
|
|
91
91
|
[JWT_ASSERTION_METHOD]: Object.freeze({
|
|
92
92
|
id: JWT_ASSERTION_METHOD,
|
|
@@ -377,7 +377,7 @@ function normalizePayloadProfileFields(fields) {
|
|
|
377
377
|
return normalized;
|
|
378
378
|
}
|
|
379
379
|
|
|
380
|
-
function
|
|
380
|
+
function encodexoonyaNativePayloadProfileV1(input = {}) {
|
|
381
381
|
const schemaRef = normalizeString(input.schema_ref || input.schemaRef || "xoonya.payload.schema.generic.v1");
|
|
382
382
|
if (!schemaRef) {
|
|
383
383
|
throw new Error("payload profile schema_ref required");
|
|
@@ -416,7 +416,7 @@ function encodeXoonyaNativePayloadProfileV1(input = {}) {
|
|
|
416
416
|
};
|
|
417
417
|
}
|
|
418
418
|
|
|
419
|
-
function
|
|
419
|
+
function parsexoonyaNativePayloadProfileV1(canonicalBytesHex) {
|
|
420
420
|
const hex = assertVariableHex(canonicalBytesHex, "payload profile canonical bytes");
|
|
421
421
|
const buf = Buffer.from(hex, "hex");
|
|
422
422
|
if (buf.length < 38) {
|
|
@@ -497,9 +497,9 @@ function parseXoonyaNativePayloadProfileV1(canonicalBytesHex) {
|
|
|
497
497
|
};
|
|
498
498
|
}
|
|
499
499
|
|
|
500
|
-
function
|
|
500
|
+
function verifyxoonyaNativePayloadProfileV1(canonicalBytesHex, options = {}) {
|
|
501
501
|
try {
|
|
502
|
-
const parsed =
|
|
502
|
+
const parsed = parsexoonyaNativePayloadProfileV1(canonicalBytesHex);
|
|
503
503
|
const expectedHash = normalizeString(options.payload_hash_sha256 || options.expected_payload_hash_sha256).toLowerCase();
|
|
504
504
|
if (expectedHash && expectedHash !== parsed.payload_hash_sha256) {
|
|
505
505
|
return { valid: false, reason: "payload_profile_hash_mismatch", parsed };
|
|
@@ -642,11 +642,11 @@ function getNativeSignatureSuite(suiteId) {
|
|
|
642
642
|
return suite ? { ...suite } : null;
|
|
643
643
|
}
|
|
644
644
|
|
|
645
|
-
function
|
|
645
|
+
function listxoonyaNativeIdentityTypes() {
|
|
646
646
|
return Object.values(XOONYA_NATIVE_IDENTITY_TYPES).map((entry) => ({ ...entry }));
|
|
647
647
|
}
|
|
648
648
|
|
|
649
|
-
function
|
|
649
|
+
function getxoonyaNativeIdentityType(prefixHex) {
|
|
650
650
|
const normalized = normalizeString(prefixHex).toLowerCase();
|
|
651
651
|
const entry = XOONYA_NATIVE_IDENTITY_TYPES[normalized];
|
|
652
652
|
return entry ? { ...entry } : null;
|
|
@@ -1463,7 +1463,7 @@ function verifyReceiptV2(opreturnHex, payloadBytes) {
|
|
|
1463
1463
|
};
|
|
1464
1464
|
}
|
|
1465
1465
|
|
|
1466
|
-
function
|
|
1466
|
+
function normalizexoonyaNativeAtomType(typeHex = TYPE_REGISTER) {
|
|
1467
1467
|
const type = assertHex(typeHex, 2, "typeHex");
|
|
1468
1468
|
if (!VALID_TYPES.has(type)) {
|
|
1469
1469
|
throw new Error("typeHex must be 01, 02, or 03");
|
|
@@ -1477,7 +1477,7 @@ function atomValidationError(code, message) {
|
|
|
1477
1477
|
return error;
|
|
1478
1478
|
}
|
|
1479
1479
|
|
|
1480
|
-
function
|
|
1480
|
+
function normalizexoonyaNativeIdentityMaterial(identityMaterialHex) {
|
|
1481
1481
|
const materialHex = assertVariableHex(identityMaterialHex, "identityMaterialHex");
|
|
1482
1482
|
const typePrefix = materialHex.slice(0, 2);
|
|
1483
1483
|
if (!XOONYA_NATIVE_IDENTITY_TYPES[typePrefix]) {
|
|
@@ -1495,7 +1495,7 @@ function normalizeXoonyaNativeIdentityMaterial(identityMaterialHex) {
|
|
|
1495
1495
|
return materialHex;
|
|
1496
1496
|
}
|
|
1497
1497
|
|
|
1498
|
-
function
|
|
1498
|
+
function hashxoonyaNativePayload(payloadBytes, domainSeparator) {
|
|
1499
1499
|
if (!payloadBytes || payloadBytes.length === 0) {
|
|
1500
1500
|
return ZERO_HASH32;
|
|
1501
1501
|
}
|
|
@@ -1509,14 +1509,14 @@ function hashXoonyaNativePayload(payloadBytes, domainSeparator) {
|
|
|
1509
1509
|
return digest;
|
|
1510
1510
|
}
|
|
1511
1511
|
|
|
1512
|
-
function
|
|
1513
|
-
const materialHex =
|
|
1514
|
-
const type =
|
|
1512
|
+
function createxoonyaNativeAtomV1(identityMaterialHex, payloadBytes, typeHex = TYPE_REGISTER) {
|
|
1513
|
+
const materialHex = normalizexoonyaNativeIdentityMaterial(identityMaterialHex);
|
|
1514
|
+
const type = normalizexoonyaNativeAtomType(typeHex);
|
|
1515
1515
|
const agentId = hash160Hex(Buffer.concat([
|
|
1516
1516
|
Buffer.from(XNYA_DS_AGENT_V1, "utf8"),
|
|
1517
1517
|
Buffer.from(materialHex, "hex")
|
|
1518
1518
|
]));
|
|
1519
|
-
const payloadHash =
|
|
1519
|
+
const payloadHash = hashxoonyaNativePayload(payloadBytes, XNYA_DS_PAYLOAD_V1);
|
|
1520
1520
|
const atomHex = XOONYA_NATIVE_ATOM_MAGIC_HEX + VERSION_V1_HEX + type + agentId + payloadHash;
|
|
1521
1521
|
return {
|
|
1522
1522
|
atom_hex: atomHex,
|
|
@@ -1535,14 +1535,14 @@ function createXoonyaNativeAtomV1(identityMaterialHex, payloadBytes, typeHex = T
|
|
|
1535
1535
|
};
|
|
1536
1536
|
}
|
|
1537
1537
|
|
|
1538
|
-
function
|
|
1539
|
-
const materialHex =
|
|
1540
|
-
const type =
|
|
1538
|
+
function createxoonyaNativeAtomV2(identityMaterialHex, payloadBytes, typeHex = TYPE_REGISTER) {
|
|
1539
|
+
const materialHex = normalizexoonyaNativeIdentityMaterial(identityMaterialHex);
|
|
1540
|
+
const type = normalizexoonyaNativeAtomType(typeHex);
|
|
1541
1541
|
const agentId = sha256Hex(Buffer.concat([
|
|
1542
1542
|
Buffer.from(XNYA_DS_AGENT_V2, "utf8"),
|
|
1543
1543
|
Buffer.from(materialHex, "hex")
|
|
1544
1544
|
]));
|
|
1545
|
-
const payloadHash =
|
|
1545
|
+
const payloadHash = hashxoonyaNativePayload(payloadBytes, XNYA_DS_PAYLOAD_V2);
|
|
1546
1546
|
const atomHex = XOONYA_NATIVE_ATOM_MAGIC_HEX + VERSION_V2_HEX + type + agentId + payloadHash;
|
|
1547
1547
|
return {
|
|
1548
1548
|
atom_hex: atomHex,
|
|
@@ -1561,7 +1561,7 @@ function createXoonyaNativeAtomV2(identityMaterialHex, payloadBytes, typeHex = T
|
|
|
1561
1561
|
};
|
|
1562
1562
|
}
|
|
1563
1563
|
|
|
1564
|
-
function
|
|
1564
|
+
function parsexoonyaNativeAtom(atomHex) {
|
|
1565
1565
|
const hex = String(atomHex || "").trim().toLowerCase();
|
|
1566
1566
|
if (!/^[a-f0-9]+$/.test(hex)) {
|
|
1567
1567
|
throw atomValidationError(XNYA_NATIVE_ATOM_ERROR_CODES.ATOM_HEX_NOT_HEX, "atomHex must be hex");
|
|
@@ -1569,7 +1569,7 @@ function parseXoonyaNativeAtom(atomHex) {
|
|
|
1569
1569
|
if (hex.length !== 116 && hex.length !== 140) {
|
|
1570
1570
|
throw atomValidationError(
|
|
1571
1571
|
XNYA_NATIVE_ATOM_ERROR_CODES.ATOM_UNSUPPORTED_LENGTH,
|
|
1572
|
-
"atomHex must be a supported
|
|
1572
|
+
"atomHex must be a supported xoonya native atom"
|
|
1573
1573
|
);
|
|
1574
1574
|
}
|
|
1575
1575
|
const magic = hex.slice(0, 8);
|
|
@@ -1578,7 +1578,7 @@ function parseXoonyaNativeAtom(atomHex) {
|
|
|
1578
1578
|
if (magic !== XOONYA_NATIVE_ATOM_MAGIC_HEX.toLowerCase()) {
|
|
1579
1579
|
throw atomValidationError(
|
|
1580
1580
|
XNYA_NATIVE_ATOM_ERROR_CODES.ATOM_BAD_MAGIC,
|
|
1581
|
-
"atomHex has bad
|
|
1581
|
+
"atomHex has bad xoonya native atom magic"
|
|
1582
1582
|
);
|
|
1583
1583
|
}
|
|
1584
1584
|
if (!VALID_TYPES.has(recordType)) {
|
|
@@ -1621,12 +1621,12 @@ function parseXoonyaNativeAtom(atomHex) {
|
|
|
1621
1621
|
);
|
|
1622
1622
|
}
|
|
1623
1623
|
|
|
1624
|
-
function
|
|
1624
|
+
function verifyxoonyaNativeAtom(atomHex, options = {}) {
|
|
1625
1625
|
try {
|
|
1626
|
-
const parsed =
|
|
1626
|
+
const parsed = parsexoonyaNativeAtom(atomHex);
|
|
1627
1627
|
const hasIdentityMaterial = options.identity_material_hex != null;
|
|
1628
1628
|
if (hasIdentityMaterial) {
|
|
1629
|
-
const materialHex =
|
|
1629
|
+
const materialHex = normalizexoonyaNativeIdentityMaterial(options.identity_material_hex);
|
|
1630
1630
|
const expectedAgentId = parsed.spec_version === "v1"
|
|
1631
1631
|
? hash160Hex(Buffer.concat([Buffer.from(XNYA_DS_AGENT_V1, "utf8"), Buffer.from(materialHex, "hex")]))
|
|
1632
1632
|
: sha256Hex(Buffer.concat([Buffer.from(XNYA_DS_AGENT_V2, "utf8"), Buffer.from(materialHex, "hex")]));
|
|
@@ -1643,8 +1643,8 @@ function verifyXoonyaNativeAtom(atomHex, options = {}) {
|
|
|
1643
1643
|
const hasPayload = options.payload_bytes != null;
|
|
1644
1644
|
if (hasPayload) {
|
|
1645
1645
|
const payloadHash = parsed.spec_version === "v1"
|
|
1646
|
-
?
|
|
1647
|
-
:
|
|
1646
|
+
? hashxoonyaNativePayload(options.payload_bytes, XNYA_DS_PAYLOAD_V1)
|
|
1647
|
+
: hashxoonyaNativePayload(options.payload_bytes, XNYA_DS_PAYLOAD_V2);
|
|
1648
1648
|
if (payloadHash !== parsed.payload_hash_sha256) {
|
|
1649
1649
|
return {
|
|
1650
1650
|
valid: false,
|
|
@@ -1669,8 +1669,8 @@ function verifyXoonyaNativeAtom(atomHex, options = {}) {
|
|
|
1669
1669
|
}
|
|
1670
1670
|
}
|
|
1671
1671
|
|
|
1672
|
-
function
|
|
1673
|
-
const parsed =
|
|
1672
|
+
function createxoonyaNativeLineRateFrameV1(atomHex) {
|
|
1673
|
+
const parsed = parsexoonyaNativeAtom(atomHex);
|
|
1674
1674
|
const atomBytes = Buffer.from(parsed.atom_hex, "hex");
|
|
1675
1675
|
const checksumHex = lineRateFrameChecksum(atomBytes);
|
|
1676
1676
|
return {
|
|
@@ -1685,7 +1685,7 @@ function createXoonyaNativeLineRateFrameV1(atomHex) {
|
|
|
1685
1685
|
};
|
|
1686
1686
|
}
|
|
1687
1687
|
|
|
1688
|
-
function
|
|
1688
|
+
function parsexoonyaNativeLineRateFrameV1(frameHex) {
|
|
1689
1689
|
const hex = assertVariableHex(frameHex, "line-rate frame");
|
|
1690
1690
|
const byteLength = hex.length / 2;
|
|
1691
1691
|
if (![60, 72].includes(byteLength)) {
|
|
@@ -1693,7 +1693,7 @@ function parseXoonyaNativeLineRateFrameV1(frameHex) {
|
|
|
1693
1693
|
}
|
|
1694
1694
|
const atomHex = hex.slice(0, -4);
|
|
1695
1695
|
const checksumHex = hex.slice(-4);
|
|
1696
|
-
const parsedAtom =
|
|
1696
|
+
const parsedAtom = parsexoonyaNativeAtom(atomHex);
|
|
1697
1697
|
const expectedChecksum = lineRateFrameChecksum(Buffer.from(parsedAtom.atom_hex, "hex"));
|
|
1698
1698
|
return {
|
|
1699
1699
|
profile: XOONYA_NATIVE_LINE_RATE_FRAME_V1,
|
|
@@ -1708,13 +1708,13 @@ function parseXoonyaNativeLineRateFrameV1(frameHex) {
|
|
|
1708
1708
|
};
|
|
1709
1709
|
}
|
|
1710
1710
|
|
|
1711
|
-
function
|
|
1711
|
+
function verifyxoonyaNativeLineRateFrameV1(frameHex, options = {}) {
|
|
1712
1712
|
try {
|
|
1713
|
-
const parsedFrame =
|
|
1713
|
+
const parsedFrame = parsexoonyaNativeLineRateFrameV1(frameHex);
|
|
1714
1714
|
if (!parsedFrame.checksum_valid) {
|
|
1715
1715
|
return { valid: false, reason: "line_rate_frame_checksum_mismatch", parsed_frame: parsedFrame };
|
|
1716
1716
|
}
|
|
1717
|
-
const atomVerification =
|
|
1717
|
+
const atomVerification = verifyxoonyaNativeAtom(parsedFrame.atom_hex, options);
|
|
1718
1718
|
if (!atomVerification.valid) {
|
|
1719
1719
|
return { valid: false, reason: `line_rate_frame_atom_${atomVerification.reason}`, parsed_frame: parsedFrame, atom_verification: atomVerification };
|
|
1720
1720
|
}
|
|
@@ -1961,9 +1961,9 @@ function buildDefaultProofCenter() {
|
|
|
1961
1961
|
"verifyReceipt",
|
|
1962
1962
|
"createReceiptV2",
|
|
1963
1963
|
"verifyReceiptV2",
|
|
1964
|
-
"
|
|
1965
|
-
"
|
|
1966
|
-
"
|
|
1964
|
+
"createxoonyaNativeAtomV1",
|
|
1965
|
+
"createxoonyaNativeAtomV2",
|
|
1966
|
+
"verifyxoonyaNativeAtom",
|
|
1967
1967
|
"createProofEnvelopeV1",
|
|
1968
1968
|
"verifyProofEnvelopeV1",
|
|
1969
1969
|
"runExternalProofImport"
|
|
@@ -2410,7 +2410,7 @@ function summarizeExternalProofImportRun(input) {
|
|
|
2410
2410
|
};
|
|
2411
2411
|
}
|
|
2412
2412
|
|
|
2413
|
-
function
|
|
2413
|
+
function buildxoonyaNativeAtomSpec() {
|
|
2414
2414
|
return {
|
|
2415
2415
|
ok: true,
|
|
2416
2416
|
product: "xoonya",
|
|
@@ -2464,7 +2464,7 @@ function buildXoonyaNativeAtomSpec() {
|
|
|
2464
2464
|
"signatures_timestamps_prices_settlement_refs_and_runtime_metadata_are_forbidden_in_atom"
|
|
2465
2465
|
],
|
|
2466
2466
|
deterministic_error_codes: Object.values(XNYA_NATIVE_ATOM_ERROR_CODES),
|
|
2467
|
-
identity_type_registry:
|
|
2467
|
+
identity_type_registry: listxoonyaNativeIdentityTypes(),
|
|
2468
2468
|
linked_surfaces: {
|
|
2469
2469
|
native_standard_ref: "/v1/proof-center/native-standard",
|
|
2470
2470
|
native_atom_spec_summary_ref: "/v1/proof-center/native-atom-spec/summary",
|
|
@@ -2473,8 +2473,8 @@ function buildXoonyaNativeAtomSpec() {
|
|
|
2473
2473
|
};
|
|
2474
2474
|
}
|
|
2475
2475
|
|
|
2476
|
-
function
|
|
2477
|
-
const spec =
|
|
2476
|
+
function summarizexoonyaNativeAtomSpec() {
|
|
2477
|
+
const spec = buildxoonyaNativeAtomSpec();
|
|
2478
2478
|
return {
|
|
2479
2479
|
ok: true,
|
|
2480
2480
|
product: spec.product,
|
|
@@ -2491,8 +2491,8 @@ function summarizeXoonyaNativeAtomSpec() {
|
|
|
2491
2491
|
};
|
|
2492
2492
|
}
|
|
2493
2493
|
|
|
2494
|
-
function
|
|
2495
|
-
const spec =
|
|
2494
|
+
function buildxoonyaNativeAtomConformancePack() {
|
|
2495
|
+
const spec = buildxoonyaNativeAtomSpec();
|
|
2496
2496
|
return {
|
|
2497
2497
|
ok: true,
|
|
2498
2498
|
product: "xoonya",
|
|
@@ -2530,8 +2530,8 @@ function buildXoonyaNativeAtomConformancePack() {
|
|
|
2530
2530
|
"identity_missing_raw_bytes"
|
|
2531
2531
|
],
|
|
2532
2532
|
reference_vector_file: "vectors/native-atom-vectors.json",
|
|
2533
|
-
validator_entrypoint: "
|
|
2534
|
-
public_claim_boundary: "
|
|
2533
|
+
validator_entrypoint: "verifyxoonyaNativeAtom(atomHex, { identity_material_hex, payload_bytes })",
|
|
2534
|
+
public_claim_boundary: "xoonya Native atom compatibility requires exact XNYA bytes, exact version lengths, exact hash derivation, and stable reject codes.",
|
|
2535
2535
|
linked_surfaces: {
|
|
2536
2536
|
native_atom_spec_ref: "/v1/proof-center/native-atom-spec",
|
|
2537
2537
|
native_atom_spec_summary_ref: "/v1/proof-center/native-atom-spec/summary",
|
|
@@ -2540,8 +2540,8 @@ function buildXoonyaNativeAtomConformancePack() {
|
|
|
2540
2540
|
};
|
|
2541
2541
|
}
|
|
2542
2542
|
|
|
2543
|
-
function
|
|
2544
|
-
const pack =
|
|
2543
|
+
function summarizexoonyaNativeAtomConformancePack() {
|
|
2544
|
+
const pack = buildxoonyaNativeAtomConformancePack();
|
|
2545
2545
|
return {
|
|
2546
2546
|
ok: true,
|
|
2547
2547
|
product: pack.product,
|
|
@@ -2558,7 +2558,7 @@ function summarizeXoonyaNativeAtomConformancePack() {
|
|
|
2558
2558
|
};
|
|
2559
2559
|
}
|
|
2560
2560
|
|
|
2561
|
-
function
|
|
2561
|
+
function buildxoonyaNativeProofStandard() {
|
|
2562
2562
|
return {
|
|
2563
2563
|
ok: true,
|
|
2564
2564
|
product: "xoonya",
|
|
@@ -2660,7 +2660,7 @@ function buildXoonyaNativeProofStandard() {
|
|
|
2660
2660
|
canonical_magic: XOONYA_NATIVE_ATOM_MAGIC_ASCII,
|
|
2661
2661
|
canonical_magic_status: "XNYA_is_the_only_canonical_magic_for_xoonya_native_atoms",
|
|
2662
2662
|
repo_strategy: "ship_inside_xoonya_package_first_extract_to_standards_repo_only_after_external_adoption_pressure",
|
|
2663
|
-
identity_type_registry:
|
|
2663
|
+
identity_type_registry: listxoonyaNativeIdentityTypes()
|
|
2664
2664
|
},
|
|
2665
2665
|
object_model: [
|
|
2666
2666
|
{
|
|
@@ -2810,8 +2810,8 @@ function buildXoonyaNativeProofStandard() {
|
|
|
2810
2810
|
};
|
|
2811
2811
|
}
|
|
2812
2812
|
|
|
2813
|
-
function
|
|
2814
|
-
const standard =
|
|
2813
|
+
function summarizexoonyaNativeProofStandard() {
|
|
2814
|
+
const standard = buildxoonyaNativeProofStandard();
|
|
2815
2815
|
return {
|
|
2816
2816
|
ok: true,
|
|
2817
2817
|
product: standard.product,
|
|
@@ -2838,7 +2838,7 @@ function summarizeXoonyaNativeProofStandard() {
|
|
|
2838
2838
|
};
|
|
2839
2839
|
}
|
|
2840
2840
|
|
|
2841
|
-
function
|
|
2841
|
+
function buildxoonyaNativeHybridReadinessPack() {
|
|
2842
2842
|
return {
|
|
2843
2843
|
ok: true,
|
|
2844
2844
|
product: "xoonya",
|
|
@@ -2890,8 +2890,8 @@ function buildXoonyaNativeHybridReadinessPack() {
|
|
|
2890
2890
|
};
|
|
2891
2891
|
}
|
|
2892
2892
|
|
|
2893
|
-
function
|
|
2894
|
-
const pack =
|
|
2893
|
+
function summarizexoonyaNativeHybridReadinessPack() {
|
|
2894
|
+
const pack = buildxoonyaNativeHybridReadinessPack();
|
|
2895
2895
|
return {
|
|
2896
2896
|
ok: true,
|
|
2897
2897
|
product: pack.product,
|
|
@@ -2910,7 +2910,7 @@ function summarizeXoonyaNativeHybridReadinessPack() {
|
|
|
2910
2910
|
};
|
|
2911
2911
|
}
|
|
2912
2912
|
|
|
2913
|
-
function
|
|
2913
|
+
function buildxoonyaNativePayloadProfilePack() {
|
|
2914
2914
|
return {
|
|
2915
2915
|
ok: true,
|
|
2916
2916
|
product: "xoonya",
|
|
@@ -2942,7 +2942,7 @@ function buildXoonyaNativePayloadProfilePack() {
|
|
|
2942
2942
|
"schema_hash_sha256",
|
|
2943
2943
|
"field_count"
|
|
2944
2944
|
],
|
|
2945
|
-
example_profile:
|
|
2945
|
+
example_profile: encodexoonyaNativePayloadProfileV1({
|
|
2946
2946
|
schema_ref: "xoonya.payload.example.v1",
|
|
2947
2947
|
fields: [
|
|
2948
2948
|
{ field_id: 1, field_type: "bytes32", value_hex: "11".repeat(32) },
|
|
@@ -2959,8 +2959,8 @@ function buildXoonyaNativePayloadProfilePack() {
|
|
|
2959
2959
|
};
|
|
2960
2960
|
}
|
|
2961
2961
|
|
|
2962
|
-
function
|
|
2963
|
-
const pack =
|
|
2962
|
+
function summarizexoonyaNativePayloadProfilePack() {
|
|
2963
|
+
const pack = buildxoonyaNativePayloadProfilePack();
|
|
2964
2964
|
return {
|
|
2965
2965
|
ok: true,
|
|
2966
2966
|
product: pack.product,
|
|
@@ -2977,9 +2977,9 @@ function summarizeXoonyaNativePayloadProfilePack() {
|
|
|
2977
2977
|
};
|
|
2978
2978
|
}
|
|
2979
2979
|
|
|
2980
|
-
function
|
|
2981
|
-
const exampleAtom =
|
|
2982
|
-
const exampleFrame =
|
|
2980
|
+
function buildxoonyaNativeLineRateFramePack() {
|
|
2981
|
+
const exampleAtom = createxoonyaNativeAtomV1("01" + "22".repeat(33), Buffer.from("line-rate-example", "utf8"));
|
|
2982
|
+
const exampleFrame = createxoonyaNativeLineRateFrameV1(exampleAtom.atom_hex);
|
|
2983
2983
|
return {
|
|
2984
2984
|
ok: true,
|
|
2985
2985
|
product: "xoonya",
|
|
@@ -3008,8 +3008,8 @@ function buildXoonyaNativeLineRateFramePack() {
|
|
|
3008
3008
|
};
|
|
3009
3009
|
}
|
|
3010
3010
|
|
|
3011
|
-
function
|
|
3012
|
-
const pack =
|
|
3011
|
+
function summarizexoonyaNativeLineRateFramePack() {
|
|
3012
|
+
const pack = buildxoonyaNativeLineRateFramePack();
|
|
3013
3013
|
return {
|
|
3014
3014
|
ok: true,
|
|
3015
3015
|
product: pack.product,
|
|
@@ -3026,7 +3026,7 @@ function summarizeXoonyaNativeLineRateFramePack() {
|
|
|
3026
3026
|
};
|
|
3027
3027
|
}
|
|
3028
3028
|
|
|
3029
|
-
function
|
|
3029
|
+
function buildxoonyaNativeStandardizationPack() {
|
|
3030
3030
|
return {
|
|
3031
3031
|
ok: true,
|
|
3032
3032
|
product: "xoonya",
|
|
@@ -3096,8 +3096,8 @@ function buildXoonyaNativeStandardizationPack() {
|
|
|
3096
3096
|
};
|
|
3097
3097
|
}
|
|
3098
3098
|
|
|
3099
|
-
function
|
|
3100
|
-
const pack =
|
|
3099
|
+
function summarizexoonyaNativeStandardizationPack() {
|
|
3100
|
+
const pack = buildxoonyaNativeStandardizationPack();
|
|
3101
3101
|
return {
|
|
3102
3102
|
ok: true,
|
|
3103
3103
|
product: pack.product,
|
|
@@ -3162,10 +3162,10 @@ function containsReferencePromotionSecretMaterial(value) {
|
|
|
3162
3162
|
return false;
|
|
3163
3163
|
}
|
|
3164
3164
|
|
|
3165
|
-
function
|
|
3166
|
-
const conformanceMark =
|
|
3167
|
-
const atomConformance =
|
|
3168
|
-
const payloadProfile =
|
|
3165
|
+
function buildxoonyaNativeReferenceImplementationPack() {
|
|
3166
|
+
const conformanceMark = summarizexoonyaNativeConformanceMarkPack();
|
|
3167
|
+
const atomConformance = summarizexoonyaNativeAtomConformancePack();
|
|
3168
|
+
const payloadProfile = summarizexoonyaNativePayloadProfilePack();
|
|
3169
3169
|
return {
|
|
3170
3170
|
ok: true,
|
|
3171
3171
|
product: "xoonya",
|
|
@@ -3361,7 +3361,7 @@ function buildXoonyaNativeReferenceImplementationPack() {
|
|
|
3361
3361
|
};
|
|
3362
3362
|
}
|
|
3363
3363
|
|
|
3364
|
-
function
|
|
3364
|
+
function validatexoonyaNativeReferencePromotionEvidence(pack, evidence) {
|
|
3365
3365
|
const referencePack = pack || {};
|
|
3366
3366
|
const evidencePacket = evidence || {};
|
|
3367
3367
|
const language = normalizeReferencePromotionString(evidencePacket.language).toLowerCase();
|
|
@@ -3419,8 +3419,8 @@ function validateXoonyaNativeReferencePromotionEvidence(pack, evidence) {
|
|
|
3419
3419
|
};
|
|
3420
3420
|
}
|
|
3421
3421
|
|
|
3422
|
-
function
|
|
3423
|
-
const pack =
|
|
3422
|
+
function summarizexoonyaNativeReferenceImplementationPack() {
|
|
3423
|
+
const pack = buildxoonyaNativeReferenceImplementationPack();
|
|
3424
3424
|
return {
|
|
3425
3425
|
ok: true,
|
|
3426
3426
|
product: pack.product,
|
|
@@ -3442,11 +3442,11 @@ function summarizeXoonyaNativeReferenceImplementationPack() {
|
|
|
3442
3442
|
};
|
|
3443
3443
|
}
|
|
3444
3444
|
|
|
3445
|
-
function
|
|
3446
|
-
const standardization =
|
|
3447
|
-
const atomConformance =
|
|
3448
|
-
const nativeStandard =
|
|
3449
|
-
const hybridReadiness =
|
|
3445
|
+
function buildxoonyaNativeConformanceMarkPack() {
|
|
3446
|
+
const standardization = buildxoonyaNativeStandardizationPack();
|
|
3447
|
+
const atomConformance = summarizexoonyaNativeAtomConformancePack();
|
|
3448
|
+
const nativeStandard = summarizexoonyaNativeProofStandard();
|
|
3449
|
+
const hybridReadiness = summarizexoonyaNativeHybridReadinessPack();
|
|
3450
3450
|
return {
|
|
3451
3451
|
ok: true,
|
|
3452
3452
|
product: "xoonya",
|
|
@@ -3584,8 +3584,8 @@ function buildXoonyaNativeConformanceMarkPack() {
|
|
|
3584
3584
|
};
|
|
3585
3585
|
}
|
|
3586
3586
|
|
|
3587
|
-
function
|
|
3588
|
-
const pack =
|
|
3587
|
+
function summarizexoonyaNativeConformanceMarkPack() {
|
|
3588
|
+
const pack = buildxoonyaNativeConformanceMarkPack();
|
|
3589
3589
|
return {
|
|
3590
3590
|
ok: true,
|
|
3591
3591
|
product: pack.product,
|
|
@@ -3609,7 +3609,7 @@ function summarizeXoonyaNativeConformanceMarkPack() {
|
|
|
3609
3609
|
};
|
|
3610
3610
|
}
|
|
3611
3611
|
|
|
3612
|
-
function
|
|
3612
|
+
function buildxoonyaNativeAnchorProfile() {
|
|
3613
3613
|
return {
|
|
3614
3614
|
ok: true,
|
|
3615
3615
|
product: "xoonya",
|
|
@@ -3675,8 +3675,8 @@ function buildXoonyaNativeAnchorProfile() {
|
|
|
3675
3675
|
};
|
|
3676
3676
|
}
|
|
3677
3677
|
|
|
3678
|
-
function
|
|
3679
|
-
const profile =
|
|
3678
|
+
function summarizexoonyaNativeAnchorProfile() {
|
|
3679
|
+
const profile = buildxoonyaNativeAnchorProfile();
|
|
3680
3680
|
return {
|
|
3681
3681
|
ok: true,
|
|
3682
3682
|
product: profile.product,
|
|
@@ -5800,17 +5800,17 @@ module.exports = {
|
|
|
5800
5800
|
buildDefaultProofLoopCatalog,
|
|
5801
5801
|
buildDefaultProofLoops,
|
|
5802
5802
|
buildExternalProofImportAdapterPack,
|
|
5803
|
-
|
|
5804
|
-
|
|
5805
|
-
|
|
5806
|
-
|
|
5807
|
-
|
|
5808
|
-
|
|
5809
|
-
|
|
5810
|
-
|
|
5811
|
-
|
|
5812
|
-
|
|
5813
|
-
|
|
5803
|
+
buildxoonyaNativeHybridReadinessPack,
|
|
5804
|
+
buildxoonyaNativeLineRateFramePack,
|
|
5805
|
+
buildxoonyaNativePayloadProfilePack,
|
|
5806
|
+
buildxoonyaNativeStandardizationPack,
|
|
5807
|
+
buildxoonyaNativeConformanceMarkPack,
|
|
5808
|
+
buildxoonyaNativeReferenceImplementationPack,
|
|
5809
|
+
validatexoonyaNativeReferencePromotionEvidence,
|
|
5810
|
+
buildxoonyaNativeAtomSpec,
|
|
5811
|
+
buildxoonyaNativeAtomConformancePack,
|
|
5812
|
+
buildxoonyaNativeProofStandard,
|
|
5813
|
+
buildxoonyaNativeAnchorProfile,
|
|
5814
5814
|
buildInteractionResultPackageHandoffCenter,
|
|
5815
5815
|
buildInteractionSpineProofHandoffCenter,
|
|
5816
5816
|
buildTransactionProofHandoffCenter,
|
|
@@ -5876,16 +5876,16 @@ module.exports = {
|
|
|
5876
5876
|
summarizeDefaultProofCenter,
|
|
5877
5877
|
summarizeDefaultProofLoops,
|
|
5878
5878
|
summarizeExternalProofImportAdapterPack,
|
|
5879
|
-
|
|
5880
|
-
|
|
5881
|
-
|
|
5882
|
-
|
|
5883
|
-
|
|
5884
|
-
|
|
5885
|
-
|
|
5886
|
-
|
|
5887
|
-
|
|
5888
|
-
|
|
5879
|
+
summarizexoonyaNativeHybridReadinessPack,
|
|
5880
|
+
summarizexoonyaNativeLineRateFramePack,
|
|
5881
|
+
summarizexoonyaNativePayloadProfilePack,
|
|
5882
|
+
summarizexoonyaNativeStandardizationPack,
|
|
5883
|
+
summarizexoonyaNativeConformanceMarkPack,
|
|
5884
|
+
summarizexoonyaNativeReferenceImplementationPack,
|
|
5885
|
+
summarizexoonyaNativeAtomSpec,
|
|
5886
|
+
summarizexoonyaNativeAtomConformancePack,
|
|
5887
|
+
summarizexoonyaNativeProofStandard,
|
|
5888
|
+
summarizexoonyaNativeAnchorProfile,
|
|
5889
5889
|
summarizeGuidedProofLoopBundle,
|
|
5890
5890
|
summarizeInteractionResultPackageHandoff,
|
|
5891
5891
|
summarizeInteractionResultPackageHandoffCenter,
|
|
@@ -5900,8 +5900,8 @@ module.exports = {
|
|
|
5900
5900
|
getProofVerificationMethod,
|
|
5901
5901
|
listNativeSignatureSuites,
|
|
5902
5902
|
getNativeSignatureSuite,
|
|
5903
|
-
|
|
5904
|
-
|
|
5903
|
+
listxoonyaNativeIdentityTypes,
|
|
5904
|
+
getxoonyaNativeIdentityType,
|
|
5905
5905
|
buildNativeReceiptSignature,
|
|
5906
5906
|
buildNativeSignedReceiptProof,
|
|
5907
5907
|
buildNativeAnchoredReceiptProof,
|
|
@@ -5910,16 +5910,16 @@ module.exports = {
|
|
|
5910
5910
|
parseReceipt,
|
|
5911
5911
|
makeIdentityMaterial,
|
|
5912
5912
|
createIdentity,
|
|
5913
|
-
|
|
5914
|
-
|
|
5915
|
-
|
|
5916
|
-
|
|
5917
|
-
|
|
5918
|
-
|
|
5919
|
-
|
|
5920
|
-
|
|
5921
|
-
|
|
5922
|
-
|
|
5913
|
+
createxoonyaNativeAtomV1,
|
|
5914
|
+
createxoonyaNativeAtomV2,
|
|
5915
|
+
parsexoonyaNativeAtom,
|
|
5916
|
+
verifyxoonyaNativeAtom,
|
|
5917
|
+
encodexoonyaNativePayloadProfileV1,
|
|
5918
|
+
parsexoonyaNativePayloadProfileV1,
|
|
5919
|
+
verifyxoonyaNativePayloadProfileV1,
|
|
5920
|
+
createxoonyaNativeLineRateFrameV1,
|
|
5921
|
+
parsexoonyaNativeLineRateFrameV1,
|
|
5922
|
+
verifyxoonyaNativeLineRateFrameV1,
|
|
5923
5923
|
createReceipt,
|
|
5924
5924
|
verifyReceipt,
|
|
5925
5925
|
createReceiptV2,
|
|
@@ -409,9 +409,9 @@ def parse_atom(atom_hex: str) -> ParsedAtom:
|
|
|
409
409
|
except ValueError as exc:
|
|
410
410
|
raise XnyaReferenceError("atom_hex_not_hex", "atomHex must be hex") from exc
|
|
411
411
|
if len(atom) not in (58, 70):
|
|
412
|
-
raise XnyaReferenceError("atom_unsupported_length", "atomHex must be a supported
|
|
412
|
+
raise XnyaReferenceError("atom_unsupported_length", "atomHex must be a supported xoonya native atom")
|
|
413
413
|
if atom[:4] != XNYA_MAGIC:
|
|
414
|
-
raise XnyaReferenceError("atom_bad_magic", "atomHex has bad
|
|
414
|
+
raise XnyaReferenceError("atom_bad_magic", "atomHex has bad xoonya native atom magic")
|
|
415
415
|
record_type = atom[5]
|
|
416
416
|
if record_type not in VALID_RECORD_TYPES:
|
|
417
417
|
raise XnyaReferenceError("atom_unsupported_record_type", "atomHex has unsupported record type")
|