{"_id":"@chainvue/v402-test-vectors","_rev":"2-2dac9312f7905e6faa23b5ff53c40c14","name":"@chainvue/v402-test-vectors","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@chainvue/v402-test-vectors","version":"0.1.0","author":{"url":"chainvue","name":"Robert Lech"},"license":"CC-BY-4.0","_id":"@chainvue/v402-test-vectors@0.1.0","maintainers":[{"name":"devdudeio","email":"fLoAtivErImE@proton.me"}],"homepage":"https://github.com/chainvue/v402/tree/main/packages/test-vectors#readme","bugs":{"url":"https://github.com/chainvue/v402/issues"},"dist":{"shasum":"128087a9a0136ee731ab6993b38ed0d255b1eb5d","tarball":"https://registry.npmjs.org/@chainvue/v402-test-vectors/-/v402-test-vectors-0.1.0.tgz","fileCount":14,"integrity":"sha512-sztqn3B9SJJPQKVmVdGCdBNaoIXqQZOX2jtaSInsXlW1pla3L31ij9J/YW5J2UJl0mTJeFd64SAFUaU+c5Kg/w==","signatures":[{"sig":"MEUCIQCEyTVx2+wiUBoHSjzcBRWcBrAb6GxSqXkeyW2NGjhrGgIgFJ3S9DqO43qQdsm4rf+db8nG19K0r3basUB7akjWN0E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77245},"main":"./dist/index.js","type":"module","_from":"file:chainvue-v402-test-vectors-0.1.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./vectors/*":"./vectors/*"},"scripts":{"sync":"node scripts/sync-vectors.mjs","test":"vitest run","build":"pnpm run sync && tsc -p tsconfig.build.json","typecheck":"tsc -p tsconfig.json"},"_npmUser":{"name":"devdudeio","email":"fLoAtivErImE@proton.me"},"_resolved":"/private/var/folders/lc/_1dmy3kd06b9ryyyvv7pk9vw0000gn/T/8c7cbc62846d82d03a0cfccb7a113210/chainvue-v402-test-vectors-0.1.0.tgz","_integrity":"sha512-sztqn3B9SJJPQKVmVdGCdBNaoIXqQZOX2jtaSInsXlW1pla3L31ij9J/YW5J2UJl0mTJeFd64SAFUaU+c5Kg/w==","repository":{"url":"git+https://github.com/chainvue/v402.git","type":"git","directory":"packages/test-vectors"},"_npmVersion":"11.11.0","description":"Normative reference test vectors for the v402 payment protocol (verus-prepaid-sig/0.1). JSON fixtures for conformance-testing v402 implementations in any language.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/v402-test-vectors_0.1.0_1783727465655_0.13881609025873454","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@chainvue/v402-test-vectors","version":"0.1.1","description":"Normative reference test vectors for the v402 payment protocol (verus-prepaid-sig/0.1). JSON fixtures for conformance-testing v402 implementations in any language.","repository":{"type":"git","url":"git+https://github.com/chainvue/v402.git","directory":"packages/test-vectors"},"homepage":"https://github.com/chainvue/v402/tree/main/packages/test-vectors#readme","bugs":{"url":"https://github.com/chainvue/v402/issues"},"license":"CC-BY-4.0","author":{"name":"Robert Lech","url":"chainvue"},"type":"module","sideEffects":false,"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./vectors/*":"./vectors/*"},"publishConfig":{"access":"public"},"scripts":{"sync":"node scripts/sync-vectors.mjs","build":"pnpm run sync && tsc -p tsconfig.build.json","typecheck":"tsc -p tsconfig.json","test":"vitest run"},"_id":"@chainvue/v402-test-vectors@0.1.1","_integrity":"sha512-mMaemcCLj+Dh8ptYv9wfJZSn9WTma8TPhAnO8Xv6iiW1X2kOsvI+4+IxzWu52TPVy5CuqAIi6aq50hLim+GovA==","_resolved":"/tmp/2de63cf905fa7955edc39b4280c78cfa/chainvue-v402-test-vectors-0.1.1.tgz","_from":"file:chainvue-v402-test-vectors-0.1.1.tgz","_nodeVersion":"26.5.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-mMaemcCLj+Dh8ptYv9wfJZSn9WTma8TPhAnO8Xv6iiW1X2kOsvI+4+IxzWu52TPVy5CuqAIi6aq50hLim+GovA==","shasum":"73b9b07dc53f7f85039413dcc0f02acda731d318","tarball":"https://registry.npmjs.org/@chainvue/v402-test-vectors/-/v402-test-vectors-0.1.1.tgz","fileCount":14,"unpackedSize":77772,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chainvue%2fv402-test-vectors@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCTccKUODRsdg5flEbkghD48almwHlrZQEJTsuuU+B3BQIhANuOsZa9GErxF85LUq80EqsvF1u9Kuo7F8OhBIRhgNR7"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8b39c67a-699e-4e14-9050-cbbf781884a4"}},"directories":{},"maintainers":[{"name":"devdudeio","email":"fLoAtivErImE@proton.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/v402-test-vectors_0.1.1_1783765817923_0.9297754974180801"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-10T23:51:05.343Z","modified":"2026-07-11T10:30:18.370Z","0.1.0":"2026-07-10T23:51:05.798Z","0.1.1":"2026-07-11T10:30:18.063Z"},"bugs":{"url":"https://github.com/chainvue/v402/issues"},"author":{"name":"Robert Lech","url":"chainvue"},"license":"CC-BY-4.0","homepage":"https://github.com/chainvue/v402/tree/main/packages/test-vectors#readme","repository":{"type":"git","url":"git+https://github.com/chainvue/v402.git","directory":"packages/test-vectors"},"description":"Normative reference test vectors for the v402 payment protocol (verus-prepaid-sig/0.1). JSON fixtures for conformance-testing v402 implementations in any language.","maintainers":[{"name":"devdudeio","email":"fLoAtivErImE@proton.me"}],"readme":"# @chainvue/v402-test-vectors\n\nNormative reference test vectors for the [v402 payment protocol](https://github.com/chainvue/v402)\n(`verus-prepaid-sig/0.1`). An implementation in any language runs these and\neither passes or doesn't — passing all vectors is the baseline for claiming\nv402/0.1 conformance (the end-to-end conformance suite is separate, Etappe 1.5).\n\n**License: CC-BY-4.0** — these vectors are part of the v402 spec, not the\nApache-2.0 reference implementation. Reproduce, translate, embed freely with\nattribution.\n\n## Categories\n\n| File | Covers |\n|---|---|\n| `canonical.json` | payload → expected canonical byte-string (payment + balance-query) |\n| `extensions.json` | extension-block serialize/parse, sort order, accept/reject |\n| `boundary.json` | fail-closed canonicalization errors, amount conversion edges |\n| `wire-format.json` | 402 response, discovery document, `X-V402-*` header parsing |\n| `signing.json` | canonical string + key → expected signature |\n| `verification.json` | (signer, signature, message) → accept/reject |\n| `keys.json` | the published test keys (see below) |\n\n## Usage — JavaScript/TypeScript\n\n```typescript\nimport { loadVectors } from \"@chainvue/v402-test-vectors\";\n\nfor (const { name, input, expected } of loadVectors(\"canonical\").cases) {\n  const got = myCanonicalize(input.payload);\n  assert.strictEqual(got, expected.canonical, `case ${name} failed`);\n}\n```\n\n## Usage — any other language\n\nThe JSON files are the product; consume them directly from the npm tarball\n(`vectors/0.1/*.json`) or from the spec repo (`spec/0.1/test-vectors/`).\n\n```rust\n#[test]\nfn conformance_canonical() {\n    let file = load_json(\"vectors/0.1/canonical.json\");\n    for tc in file.cases {\n        assert_eq!(my_impl(tc.input), tc.expected, \"case {} failed\", tc.name);\n    }\n}\n```\n\nEvery case has the shape `{ name, spec, input, expected }`.\n\n## Signing vectors & test keys\n\nThe signing keys in `keys.json` are **deliberately public** and derived from\ndocumented seeds (`privkey = sha256(utf8(seed))`, WIF = base58check with\nprefix `0xBC`, compressed) — re-derivable without trusting this package.\n**Never fund the addresses.**\n\n- Cases with `\"assert\": \"signature-equal\"` are byte-reproducible: `verusd\n  signmessage` signs deterministically (confirmed against v1.2.17).\n- Cases with `\"assert\": \"verify-only\"` are VerusID signatures, which embed the\n  signing block height: validate them via `verifymessage` on VRSCTEST instead\n  of byte comparison.\n\n## Versioning\n\nVectors are versioned with the scheme spec (`vectors/0.1/`). New spec versions\nadd a directory; existing vectors are immutable per version. Source of truth\nis `spec/0.1/test-vectors/` in the monorepo — this package is a packaged copy\nkept in sync by its build.\n","readmeFilename":"README.md"}