@smartledger/bsv 7.10.1 → 7.12.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/CHANGELOG.md +109 -0
- package/README.md +38 -38
- package/bsv-anchor.min.js +11 -17
- package/bsv-didweb.min.js +11 -17
- package/bsv-gdaf.min.js +69 -75
- package/bsv-ltp.min.js +55 -61
- package/bsv-mnemonic.min.js +11 -17
- package/bsv-shamir.min.js +11 -17
- package/bsv-smartcontract.min.js +1 -1
- package/bsv-statuslist.min.js +53 -59
- package/bsv-vcjwt.min.js +11 -17
- package/bsv.bundle.js +69 -75
- package/bsv.d.ts +15 -0
- package/bsv.min.js +69 -75
- package/build/esbuild/crypto-shim.js +35 -0
- package/build/esbuild.js +7 -3
- package/docs/AUDIT_SCOPE.md +199 -0
- package/docs/MODULE_REFERENCE_COMPLETE.md +27 -27
- package/docs/advanced/UTXO_MANAGER_GUIDE.md +1 -1
- package/docs/getting-started/INSTALLATION.md +23 -23
- package/docs/getting-started/QUICK_START.md +7 -7
- package/docs/migration/FROM_BSV_1_5_6.md +5 -5
- package/lib/script/interpreter.js +50 -0
- package/package.json +13 -2
- package/test/build/bundle_crypto_shim.js +104 -0
- package/test/build/bundle_externals.js +12 -3
- package/test/script/chronicle.js +40 -3
- package/version.js +1 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
// Minimal browser polyfill for Node's `crypto`, replacing `crypto-browserify`.
|
|
3
|
+
//
|
|
4
|
+
// crypto-browserify is a faithful shim for the whole of Node's crypto module, which
|
|
5
|
+
// means it drags AES, DES, Diffie-Hellman, RSA public-encrypt and an ASN.1 parser into
|
|
6
|
+
// every browser bundle. We call none of it. It also depends on browserify-sign and
|
|
7
|
+
// create-ecdh, whose `elliptic` carries an advisory with no patched version — the build
|
|
8
|
+
// already had to stub those two out by hand to keep elliptic out of the output.
|
|
9
|
+
//
|
|
10
|
+
// The bundles need exactly three entry points, established by reading the graph rather
|
|
11
|
+
// than by guessing:
|
|
12
|
+
//
|
|
13
|
+
// createHash lib/crypto/hash.node.js and the didweb / vcjwt / statuslist / anchor /
|
|
14
|
+
// gdaf modules, which require('crypto') unconditionally
|
|
15
|
+
// createHmac lib/mnemonic/pbkdf2.node.js
|
|
16
|
+
// randomBytes secrets.js-grempe's Shamir CSPRNG
|
|
17
|
+
//
|
|
18
|
+
// Deliberately NOT exported:
|
|
19
|
+
//
|
|
20
|
+
// getRandomValues secrets.js prefers it over randomBytes when present, so adding it
|
|
21
|
+
// would silently switch the Shamir CSPRNG to a different code path.
|
|
22
|
+
// crypto-browserify does not expose it either; omitting it keeps the
|
|
23
|
+
// selection identical to what shipped before.
|
|
24
|
+
// everything else an unimplemented member of Node's crypto surface should fail loudly
|
|
25
|
+
// at the call site rather than resolve to undefined. Modules that use
|
|
26
|
+
// createPublicKey / generateKeyPairSync / sign / verify are Node-only
|
|
27
|
+
// already: crypto-browserify never implemented those either, so this
|
|
28
|
+
// changes nothing for them.
|
|
29
|
+
//
|
|
30
|
+
// Note that lib/crypto/random.js does not come through here — its browser branch reads
|
|
31
|
+
// window.crypto directly.
|
|
32
|
+
|
|
33
|
+
exports.createHash = require('create-hash')
|
|
34
|
+
exports.createHmac = require('create-hmac')
|
|
35
|
+
exports.randomBytes = require('randombytes')
|
package/build/esbuild.js
CHANGED
|
@@ -18,8 +18,14 @@ const EMPTY = path.join(__dirname, 'esbuild/empty.js')
|
|
|
18
18
|
const BUILTIN = /^(crypto|stream|assert|util|zlib|vm|buffer|path|http|https|os|url|fs|net|tls|readline|child_process)$/
|
|
19
19
|
|
|
20
20
|
// full (bundlePolyfills): real browserify shims; unused server-only built-ins -> empty.
|
|
21
|
+
//
|
|
22
|
+
// `crypto` is our own three-function shim rather than crypto-browserify. The full shim
|
|
23
|
+
// pulled AES, DES, Diffie-Hellman, RSA and an ASN.1 parser into every bundle for code we
|
|
24
|
+
// never call, and depended on browserify-sign/create-ecdh, whose `elliptic` has an
|
|
25
|
+
// advisory with no fix — which is why this file used to stub those two by hand. That
|
|
26
|
+
// stub is gone; test/build/bundle_crypto_shim.js now asserts the graph stays clean.
|
|
21
27
|
const FULL_SHIM = {
|
|
22
|
-
crypto:
|
|
28
|
+
crypto: path.join(__dirname, 'esbuild/crypto-shim.js'),
|
|
23
29
|
stream: R('stream-browserify'),
|
|
24
30
|
assert: R('assert/'),
|
|
25
31
|
util: R('util/'),
|
|
@@ -38,8 +44,6 @@ function polyfillPlugin (mode) {
|
|
|
38
44
|
const shim = mode === 'stub' ? STUB_SHIM : FULL_SHIM
|
|
39
45
|
build.onResolve({ filter: BUILTIN }, (a) => ({ path: shim[a.path] || EMPTY }))
|
|
40
46
|
build.onResolve({ filter: /^process(\/browser)?$/ }, () => ({ path: R('process/browser') }))
|
|
41
|
-
// keep `elliptic` out of the bundle (webpack aliased browserify-sign / create-ecdh -> false)
|
|
42
|
-
build.onResolve({ filter: /^(browserify-sign|create-ecdh)(\/|$)/ }, () => ({ path: EMPTY }))
|
|
43
47
|
}
|
|
44
48
|
}
|
|
45
49
|
}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
# External security audit — scope and request for quote
|
|
2
|
+
|
|
3
|
+
This document scopes an independent security review of the `@smartledger/bsv`
|
|
4
|
+
cryptographic core, and carries the enquiry text to send to vendors. It exists so that
|
|
5
|
+
every vendor prices the *same* thing, and so that the reasoning behind the scope
|
|
6
|
+
boundary survives past the engagement that prompted it.
|
|
7
|
+
|
|
8
|
+
Measured against **v7.12.0**, 2026-08-10 (`lib/` is byte-identical to v7.11.0, where these
|
|
9
|
+
figures were first taken). Re-measure before sending if the version has
|
|
10
|
+
moved (`docs/AUDIT_SCOPE.md` is not covered by a drift gate).
|
|
11
|
+
|
|
12
|
+
## 1. The question we are asking
|
|
13
|
+
|
|
14
|
+
The core is inherited from bitcore via moneybutton and has only ever been fixed
|
|
15
|
+
reactively. Every hardening effort to date — the threat model, the conformance corpus,
|
|
16
|
+
the adversarial suites, the bundle and type-drift gates — has been applied **at the
|
|
17
|
+
boundary or to new code**. The inherited layer underneath has never been independently
|
|
18
|
+
reviewed.
|
|
19
|
+
|
|
20
|
+
So: *is it sound?*
|
|
21
|
+
|
|
22
|
+
The failure mode we most want examined is **code that reports a check as passed without
|
|
23
|
+
performing it**. Several of the defects found so far have had exactly that shape,
|
|
24
|
+
including assertions written by the maintainers that could not fail. See
|
|
25
|
+
`SECURITY.md` → 6.0.0 and `docs/THREAT_MODEL.md` for the fail-closed principle this is
|
|
26
|
+
testing.
|
|
27
|
+
|
|
28
|
+
## 2. Scope
|
|
29
|
+
|
|
30
|
+
Two tiers, to be **priced separately** so the boundary can be drawn against a number
|
|
31
|
+
rather than before seeing one.
|
|
32
|
+
|
|
33
|
+
### Tier 1 — core, 11,739 lines across 33 files
|
|
34
|
+
|
|
35
|
+
| Module | Lines | Why it matters |
|
|
36
|
+
| --- | ---: | --- |
|
|
37
|
+
| `lib/script/` | 3,375 | Consensus script interpreter. Divergence from the node means accepting a transaction the network rejects, or the reverse. |
|
|
38
|
+
| `lib/transaction/` | 2,767 | Sighash construction and signing — both BIP-143 and the Original Transaction Digest Algorithm. |
|
|
39
|
+
| `lib/crypto/` | 2,378 | ECDSA, nonce derivation, signature encoding, the script-number type. |
|
|
40
|
+
| `lib/hdprivatekey.js`, `lib/hdpublickey.js` | 1,168 | BIP-32 derivation, including hardened paths. |
|
|
41
|
+
| `lib/privatekey.js`, `lib/publickey.js` | 843 | Key construction, serialisation, WIF. Recent defects here produced a *different* key without error. |
|
|
42
|
+
| `lib/address.js` | 543 | Address derivation and network binding. |
|
|
43
|
+
| `lib/networks.js`, `lib/opcode.js` | 665 | Network parameters and the opcode table, which BSV upgrades have reassigned. |
|
|
44
|
+
|
|
45
|
+
### Tier 2 — optional, 1,496 lines
|
|
46
|
+
|
|
47
|
+
| Module | Lines | Why it may belong in scope |
|
|
48
|
+
| --- | ---: | --- |
|
|
49
|
+
| `lib/encoding/` | 644 | Base58Check, varint and buffer readers — the parsing surface untrusted bytes hit first. |
|
|
50
|
+
| `lib/mnemonic/` | 544 | BIP-39 seed derivation. Small, but a weakness here compromises every key beneath it. |
|
|
51
|
+
| `lib/ecies/` | 308 | Encryption built on audited primitives; the composition is ours. |
|
|
52
|
+
|
|
53
|
+
Tier 2 is cryptographic rather than application code, so excluding it is a **budget
|
|
54
|
+
decision, not a risk judgement**. Priced as an add-on it is cheap; discovered later it
|
|
55
|
+
is not.
|
|
56
|
+
|
|
57
|
+
## 3. Out of scope, and why
|
|
58
|
+
|
|
59
|
+
| Component | Status | Reason |
|
|
60
|
+
| --- | --- | --- |
|
|
61
|
+
| `@noble/curves`, `@noble/hashes`, `@noble/ciphers` | Already audited | The primitives come from the Noble libraries, which **Cure53 has audited and published on**. We do not implement curve or hash arithmetic ourselves. State this explicitly to vendors — otherwise they price work we do not need. |
|
|
62
|
+
| `lib/smart_contract/`, `lib/ltp/`, `lib/gdaf/`, `lib/ordinals/`, `lib/block/`, plus 9 further directories and 6 top-level files | Excluded | Application layer, 22,699 lines — 18,435 in the five named modules and 4,264 in the remainder. Written in-house and covered by adversarial tests. Worth a separate engagement; including it here would blur the question in §1. |
|
|
63
|
+
|
|
64
|
+
Totals reconcile against `lib/`, which is 35,934 lines across 122 files:
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
tier 1 11,739
|
|
68
|
+
tier 2 1,496
|
|
69
|
+
excluded 22,699
|
|
70
|
+
------
|
|
71
|
+
total 35,934
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Core + optional = 13,235.
|
|
75
|
+
|
|
76
|
+
## 4. What an auditor gets on day one
|
|
77
|
+
|
|
78
|
+
Each of these should *reduce* the quote — they remove discovery work.
|
|
79
|
+
|
|
80
|
+
- **`docs/THREAT_MODEL.md`** — every claimed security property mapped to the adversarial
|
|
81
|
+
test that proves it, with honest known limitations. Test paths are gate-checked by
|
|
82
|
+
`test/security/threat_model_coverage.js`, so the document cannot cite tests that no
|
|
83
|
+
longer exist. Scope that honestly: the gate asserts existence and a minimum citation
|
|
84
|
+
count, not that the cited tests still assert anything — a test gutted in place would
|
|
85
|
+
pass it.
|
|
86
|
+
- **`npm run conformance`** — 452 cases across 13 suites, freezing observable behaviour
|
|
87
|
+
so any change surfaces as a diff. A second, independently written implementation
|
|
88
|
+
(`smartledger-bsv-core`, the TypeScript port) agrees on all 452.
|
|
89
|
+
- **4,647 passing tests**, plus a reproducible-bundle gate, a require-cycle gate, and a
|
|
90
|
+
type-drift gate that parses the published types against the runtime.
|
|
91
|
+
- **`SECURITY.md`** — a published advisory (GHSA-gw63-x79h-mhjc) and a changelog of
|
|
92
|
+
security fixes with the reasoning for each.
|
|
93
|
+
- **`docs/BN_JS_V5_REVIEW.md`** — an 11,071-check differential review, included so a
|
|
94
|
+
reviewer can calibrate the depth we work at.
|
|
95
|
+
|
|
96
|
+
Known limitation worth disclosing up front: a frozen corpus detects a *change*, never a
|
|
97
|
+
pre-existing wrong assumption, and is silent on paths it does not cover. It is a
|
|
98
|
+
regression net, not a correctness oracle. Two independent implementations agreeing is
|
|
99
|
+
only evidence when they were derived independently — both this library and the TS port
|
|
100
|
+
guessed "fail closed" on the Chronicle shift opcodes, and both were wrong.
|
|
101
|
+
|
|
102
|
+
## 5. Vendors
|
|
103
|
+
|
|
104
|
+
| Vendor | Indicative | Rationale |
|
|
105
|
+
| --- | --- | --- |
|
|
106
|
+
| **Cure53** | €40–90k | Audited the Noble libraries we depend on, so they already know the layer beneath our core. Boutique, cryptography-literate, publishes its reports. Best fit on substance. |
|
|
107
|
+
| **NCC Group — Cryptography Services** | $60–150k | A dedicated cryptography team rather than a general pentest arm, with protocol and design review as a stated specialism. Good fit for the sighash and key-derivation portions. |
|
|
108
|
+
| **Trail of Bits** | $80–200k | Strongest name and an explicitly exploit-oriented methodology, which suits the §1 failure mode. Most expensive, and their blockchain practice leans toward smart contracts over wallet-library internals. |
|
|
109
|
+
|
|
110
|
+
Figures are published market ranges for an engagement of this size, **not offers**.
|
|
111
|
+
Expect re-audit of fixes to be quoted separately, typically 20–30% of the original.
|
|
112
|
+
|
|
113
|
+
Send to all three. The spread in how they scope it back is usually more informative than
|
|
114
|
+
any single number.
|
|
115
|
+
|
|
116
|
+
## 6. Enquiry text
|
|
117
|
+
|
|
118
|
+
```text
|
|
119
|
+
Subject: Audit enquiry — BSV cryptographic library core (~13k LOC JavaScript)
|
|
120
|
+
|
|
121
|
+
Hello,
|
|
122
|
+
|
|
123
|
+
We maintain @smartledger/bsv, a Bitcoin SV library published on npm. We are
|
|
124
|
+
seeking a quote for an independent security review of its cryptographic core.
|
|
125
|
+
|
|
126
|
+
Scope, and we would like these priced separately:
|
|
127
|
+
|
|
128
|
+
Tier 1 — 11,739 lines, 33 files. Script interpreter, sighash and signing,
|
|
129
|
+
ECDSA and signature encoding, BIP-32 derivation, key and address
|
|
130
|
+
construction.
|
|
131
|
+
|
|
132
|
+
Tier 2 — 1,496 lines. BIP-39 mnemonics, ECIES, and the Base58Check/varint
|
|
133
|
+
decoding surface.
|
|
134
|
+
|
|
135
|
+
JavaScript (CommonJS), Node >= 20.19. The code is public.
|
|
136
|
+
|
|
137
|
+
Explicitly out of scope: elliptic-curve and hash primitives, which are supplied
|
|
138
|
+
by the Noble libraries and already audited; and our 22,699-line application
|
|
139
|
+
layer (credentials, tokens, ordinals), which we would treat as a separate
|
|
140
|
+
engagement.
|
|
141
|
+
|
|
142
|
+
Context that should shorten discovery: the core is inherited from bitcore and
|
|
143
|
+
has been fixed reactively but never independently reviewed. We can provide a
|
|
144
|
+
test-backed threat model, a 452-case behavioural conformance corpus that a
|
|
145
|
+
second independent implementation agrees with, and a documented history of the
|
|
146
|
+
defects we have found ourselves.
|
|
147
|
+
|
|
148
|
+
The failure mode we most want examined is code that reports a check as passed
|
|
149
|
+
without performing it — several of our own findings have had that shape.
|
|
150
|
+
|
|
151
|
+
Could you indicate availability, an approximate cost range, and what you would
|
|
152
|
+
need from us to firm that up?
|
|
153
|
+
|
|
154
|
+
Repository: https://github.com/codenlighten/smartledger-bsv
|
|
155
|
+
Package: https://www.npmjs.com/package/@smartledger/bsv
|
|
156
|
+
|
|
157
|
+
Thank you,
|
|
158
|
+
SmartLedger Technology
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## 7. Reproducing the measurements
|
|
162
|
+
|
|
163
|
+
Every figure in this document, including the excluded total, must come out of this
|
|
164
|
+
script. **Derive the excluded count as the complement — never by subtracting tier 1
|
|
165
|
+
alone.** The first draft did exactly that, double-counted tier 2, and published parts
|
|
166
|
+
summing to 37,430 against a 35,934 whole; §7 could not catch it because it reproduced
|
|
167
|
+
every figure except the wrong one.
|
|
168
|
+
|
|
169
|
+
```sh
|
|
170
|
+
lines () { find "$@" -name '*.js' -exec cat {} + | wc -l; }
|
|
171
|
+
|
|
172
|
+
TIER1_DIRS="lib/crypto lib/transaction lib/script"
|
|
173
|
+
TIER1_FILES="lib/privatekey.js lib/publickey.js lib/address.js \
|
|
174
|
+
lib/hdprivatekey.js lib/hdpublickey.js lib/opcode.js lib/networks.js"
|
|
175
|
+
TIER2_DIRS="lib/encoding lib/mnemonic lib/ecies"
|
|
176
|
+
|
|
177
|
+
# Per-module breakdown for the scope tables
|
|
178
|
+
for d in $TIER1_DIRS $TIER2_DIRS; do
|
|
179
|
+
printf '%-18s %3s files %6s lines\n' "$d" \
|
|
180
|
+
"$(find $d -name '*.js' | wc -l)" "$(lines $d)"
|
|
181
|
+
done
|
|
182
|
+
wc -l $TIER1_FILES
|
|
183
|
+
|
|
184
|
+
# Totals, with the excluded count derived as the complement
|
|
185
|
+
TOTAL=$(lines lib)
|
|
186
|
+
T1=$(( $(lines $TIER1_DIRS) + $(cat $TIER1_FILES | wc -l) ))
|
|
187
|
+
T2=$(lines $TIER2_DIRS)
|
|
188
|
+
EXCLUDED=$(( TOTAL - T1 - T2 ))
|
|
189
|
+
|
|
190
|
+
printf 'tier 1 %6s\ntier 2 %6s\nexcluded %6s\n ------\ntotal %6s\n' \
|
|
191
|
+
"$T1" "$T2" "$EXCLUDED" "$TOTAL"
|
|
192
|
+
|
|
193
|
+
# Fails loudly if the three tiers stop reconciling. The non-zero check matters:
|
|
194
|
+
# run from the wrong directory every figure is 0, and 0+0+0 reconciles vacuously.
|
|
195
|
+
[ "$TOTAL" -gt 0 ] || echo "MISMATCH — run this from the repo root"
|
|
196
|
+
[ $(( T1 + T2 + EXCLUDED )) -eq "$TOTAL" ] || echo "MISMATCH — do not send"
|
|
197
|
+
|
|
198
|
+
find lib -name '*.js' | wc -l # file count
|
|
199
|
+
```
|
|
@@ -55,19 +55,19 @@ Three advanced modules totaling **~2.7MB** of functionality:
|
|
|
55
55
|
- **Purpose**: Threshold cryptography for secure secret distribution
|
|
56
56
|
- **Use Cases**: Backup keys, multi-party security, key recovery
|
|
57
57
|
- **Features**: Split secrets into N shares, require M to reconstruct
|
|
58
|
-
- **CDN**: `unpkg.com/@smartledger/bsv@7.
|
|
58
|
+
- **CDN**: `unpkg.com/@smartledger/bsv@7.12.0/bsv-shamir.min.js`
|
|
59
59
|
|
|
60
60
|
#### **🌐 Global Digital Attestation Framework - GDAF (1184KB)**
|
|
61
61
|
- **Purpose**: W3C Verifiable Credentials and decentralized identity
|
|
62
62
|
- **Use Cases**: Identity verification, attestations, zero-knowledge proofs
|
|
63
63
|
- **Features**: DID creation, credential issuance, selective disclosure
|
|
64
|
-
- **CDN**: `unpkg.com/@smartledger/bsv@7.
|
|
64
|
+
- **CDN**: `unpkg.com/@smartledger/bsv@7.12.0/bsv-gdaf.min.js`
|
|
65
65
|
|
|
66
66
|
#### **⚖️ Legal Token Protocol - LTP (1184KB)**
|
|
67
67
|
- **Purpose**: Legal compliance framework for tokenized assets
|
|
68
68
|
- **Use Cases**: Property rights, obligations, compliant tokenization
|
|
69
69
|
- **Features**: Legal primitives, compliance checking, attestation anchoring
|
|
70
|
-
- **CDN**: `unpkg.com/@smartledger/bsv@7.
|
|
70
|
+
- **CDN**: `unpkg.com/@smartledger/bsv@7.12.0/bsv-ltp.min.js`
|
|
71
71
|
|
|
72
72
|
### **2. Incorrect File Sizes in Documentation**
|
|
73
73
|
|
|
@@ -81,18 +81,18 @@ Three advanced modules totaling **~2.7MB** of functionality:
|
|
|
81
81
|
|
|
82
82
|
| Module | Size | Use Case | CDN Link |
|
|
83
83
|
|--------|------|----------|----------|
|
|
84
|
-
| **bsv.min.js** | 937KB | Core BSV + SmartContract | `unpkg.com/@smartledger/bsv@7.
|
|
85
|
-
| **bsv.bundle.js** | 937KB | Everything in one file | `unpkg.com/@smartledger/bsv@7.
|
|
86
|
-
| **bsv-smartcontract.min.js** | 937KB | Covenant development | `unpkg.com/@smartledger/bsv@7.
|
|
87
|
-
| **bsv-covenant.min.js** | 913KB | Covenant operations | `unpkg.com/@smartledger/bsv@7.
|
|
88
|
-
| **bsv-script-helper.min.js** | 26KB | Custom script tools | `unpkg.com/@smartledger/bsv@7.
|
|
89
|
-
| **bsv-security.min.js** | 26KB | Security enhancements (opt-in helpers — see README › Security) | `unpkg.com/@smartledger/bsv@7.
|
|
90
|
-
| **bsv-ecies.min.js** | 71KB | Encryption | `unpkg.com/@smartledger/bsv@7.
|
|
91
|
-
| **bsv-message.min.js** | 26KB | Message signing | `unpkg.com/@smartledger/bsv@7.
|
|
92
|
-
| **bsv-mnemonic.min.js** | 681KB | HD wallets | `unpkg.com/@smartledger/bsv@7.
|
|
93
|
-
| **🆕 bsv-shamir.min.js** | 432KB | **Secret sharing** | `unpkg.com/@smartledger/bsv@7.
|
|
94
|
-
| **🆕 bsv-gdaf.min.js** | 1184KB | **Digital attestation** | `unpkg.com/@smartledger/bsv@7.
|
|
95
|
-
| **🆕 bsv-ltp.min.js** | 1184KB | **Legal tokens** | `unpkg.com/@smartledger/bsv@7.
|
|
84
|
+
| **bsv.min.js** | 937KB | Core BSV + SmartContract | `unpkg.com/@smartledger/bsv@7.12.0/bsv.min.js` |
|
|
85
|
+
| **bsv.bundle.js** | 937KB | Everything in one file | `unpkg.com/@smartledger/bsv@7.12.0/bsv.bundle.js` |
|
|
86
|
+
| **bsv-smartcontract.min.js** | 937KB | Covenant development | `unpkg.com/@smartledger/bsv@7.12.0/bsv-smartcontract.min.js` |
|
|
87
|
+
| **bsv-covenant.min.js** | 913KB | Covenant operations | `unpkg.com/@smartledger/bsv@7.12.0/bsv-covenant.min.js` |
|
|
88
|
+
| **bsv-script-helper.min.js** | 26KB | Custom script tools | `unpkg.com/@smartledger/bsv@7.12.0/bsv-script-helper.min.js` |
|
|
89
|
+
| **bsv-security.min.js** | 26KB | Security enhancements (opt-in helpers — see README › Security) | `unpkg.com/@smartledger/bsv@7.12.0/bsv-security.min.js` |
|
|
90
|
+
| **bsv-ecies.min.js** | 71KB | Encryption | `unpkg.com/@smartledger/bsv@7.12.0/bsv-ecies.min.js` |
|
|
91
|
+
| **bsv-message.min.js** | 26KB | Message signing | `unpkg.com/@smartledger/bsv@7.12.0/bsv-message.min.js` |
|
|
92
|
+
| **bsv-mnemonic.min.js** | 681KB | HD wallets | `unpkg.com/@smartledger/bsv@7.12.0/bsv-mnemonic.min.js` |
|
|
93
|
+
| **🆕 bsv-shamir.min.js** | 432KB | **Secret sharing** | `unpkg.com/@smartledger/bsv@7.12.0/bsv-shamir.min.js` |
|
|
94
|
+
| **🆕 bsv-gdaf.min.js** | 1184KB | **Digital attestation** | `unpkg.com/@smartledger/bsv@7.12.0/bsv-gdaf.min.js` |
|
|
95
|
+
| **🆕 bsv-ltp.min.js** | 1184KB | **Legal tokens** | `unpkg.com/@smartledger/bsv@7.12.0/bsv-ltp.min.js` |
|
|
96
96
|
|
|
97
97
|
## 🎯 **Updated Usage Examples**
|
|
98
98
|
|
|
@@ -100,22 +100,22 @@ Three advanced modules totaling **~2.7MB** of functionality:
|
|
|
100
100
|
|
|
101
101
|
#### **1. Basic Development (~963KB)**
|
|
102
102
|
```html
|
|
103
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
104
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
103
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv.min.js"></script>
|
|
104
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv-script-helper.min.js"></script>
|
|
105
105
|
```
|
|
106
106
|
|
|
107
107
|
#### **2. Smart Contract Development (~2.7MB — each bundle re-embeds core BSV)**
|
|
108
108
|
```html
|
|
109
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
110
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
111
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
109
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv.min.js"></script>
|
|
110
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv-covenant.min.js"></script>
|
|
111
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv-smartcontract.min.js"></script>
|
|
112
112
|
```
|
|
113
113
|
|
|
114
114
|
#### **3. 🆕 Legal & Compliance Development (~3.2MB — each bundle re-embeds core BSV)**
|
|
115
115
|
```html
|
|
116
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
117
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
118
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
116
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv.min.js"></script>
|
|
117
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv-ltp.min.js"></script>
|
|
118
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv-gdaf.min.js"></script>
|
|
119
119
|
<script>
|
|
120
120
|
// Legal Token Protocol
|
|
121
121
|
const legalToken = bsv.createLegalToken({
|
|
@@ -132,9 +132,9 @@ Three advanced modules totaling **~2.7MB** of functionality:
|
|
|
132
132
|
|
|
133
133
|
#### **4. 🆕 Security & Cryptography (~1.4MB)**
|
|
134
134
|
```html
|
|
135
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
136
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
137
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
135
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv.min.js"></script>
|
|
136
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv-security.min.js"></script>
|
|
137
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv-shamir.min.js"></script>
|
|
138
138
|
<script>
|
|
139
139
|
// Shamir Secret Sharing
|
|
140
140
|
const shares = bsv.splitSecret('my_secret_key', 5, 3); // 5 shares, 3 needed
|
|
@@ -146,7 +146,7 @@ Three advanced modules totaling **~2.7MB** of functionality:
|
|
|
146
146
|
|
|
147
147
|
#### **5. Everything Bundle (937KB)**
|
|
148
148
|
```html
|
|
149
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
149
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv.bundle.js"></script>
|
|
150
150
|
<script>
|
|
151
151
|
// Everything available immediately
|
|
152
152
|
const shares = bsv.splitSecret('secret', 5, 3);
|
|
@@ -722,7 +722,7 @@ interface UTXO {
|
|
|
722
722
|
<html>
|
|
723
723
|
<head>
|
|
724
724
|
<title>UTXO Manager Demo</title>
|
|
725
|
-
<script src="https://cdn.jsdelivr.net/npm/@smartledger/bsv@7.
|
|
725
|
+
<script src="https://cdn.jsdelivr.net/npm/@smartledger/bsv@7.12.0/bsv.min.js"></script>
|
|
726
726
|
</head>
|
|
727
727
|
<body>
|
|
728
728
|
<script>
|
|
@@ -48,7 +48,7 @@ const tx: Transaction = new Transaction();
|
|
|
48
48
|
#### **Core Library Only (937KB)**
|
|
49
49
|
For basic Bitcoin SV operations:
|
|
50
50
|
```html
|
|
51
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
51
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv.min.js"></script>
|
|
52
52
|
<script>
|
|
53
53
|
const privateKey = new bsv.PrivateKey();
|
|
54
54
|
const address = privateKey.toAddress();
|
|
@@ -58,7 +58,7 @@ For basic Bitcoin SV operations:
|
|
|
58
58
|
#### **Complete Bundle (937KB)**
|
|
59
59
|
Everything in one file:
|
|
60
60
|
```html
|
|
61
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
61
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv.bundle.js"></script>
|
|
62
62
|
<script>
|
|
63
63
|
// All features available immediately
|
|
64
64
|
const shares = bsv.splitSecret('secret', 5, 3);
|
|
@@ -71,9 +71,9 @@ Everything in one file:
|
|
|
71
71
|
|
|
72
72
|
#### **Smart Contract Development (~2.7MB total — each bundle is self-contained and re-embeds core BSV)**
|
|
73
73
|
```html
|
|
74
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
75
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
76
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
74
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv.min.js"></script>
|
|
75
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv-covenant.min.js"></script>
|
|
76
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv-smartcontract.min.js"></script>
|
|
77
77
|
<script>
|
|
78
78
|
const covenant = bsv.SmartContract.createCovenantBuilder()
|
|
79
79
|
.extractField('amount').push(50000).greaterThanOrEqual().build();
|
|
@@ -82,9 +82,9 @@ Everything in one file:
|
|
|
82
82
|
|
|
83
83
|
#### **Legal & Identity Development (~3.2MB total — each bundle is self-contained and re-embeds core BSV)**
|
|
84
84
|
```html
|
|
85
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
86
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
87
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
85
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv.min.js"></script>
|
|
86
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv-ltp.min.js"></script>
|
|
87
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv-gdaf.min.js"></script>
|
|
88
88
|
<script>
|
|
89
89
|
// Legal Token Protocol
|
|
90
90
|
const propertyToken = bsv.createPropertyToken({
|
|
@@ -98,9 +98,9 @@ Everything in one file:
|
|
|
98
98
|
|
|
99
99
|
#### **Security & Cryptography (~1.4MB total — each bundle is self-contained and re-embeds core BSV)**
|
|
100
100
|
```html
|
|
101
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
102
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
103
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
101
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv.min.js"></script>
|
|
102
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv-security.min.js"></script>
|
|
103
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv-shamir.min.js"></script>
|
|
104
104
|
<script>
|
|
105
105
|
// Threshold Cryptography
|
|
106
106
|
const shares = bsv.splitSecret('my_secret_key', 5, 3);
|
|
@@ -114,18 +114,18 @@ Everything in one file:
|
|
|
114
114
|
|
|
115
115
|
| Module | Size | Purpose | CDN Link |
|
|
116
116
|
|--------|------|---------|----------|
|
|
117
|
-
| **bsv.min.js** | 937KB | Core BSV + SmartContract | `unpkg.com/@smartledger/bsv@7.
|
|
118
|
-
| **bsv.bundle.js** | 937KB | Everything in one file | `unpkg.com/@smartledger/bsv@7.
|
|
119
|
-
| **bsv-smartcontract.min.js** | 937KB | Complete covenant framework | `unpkg.com/@smartledger/bsv@7.
|
|
120
|
-
| **bsv-ltp.min.js** | 1184KB | **Legal Token Protocol** | `unpkg.com/@smartledger/bsv@7.
|
|
121
|
-
| **bsv-gdaf.min.js** | 1184KB | **Digital Identity & Attestation** | `unpkg.com/@smartledger/bsv@7.
|
|
122
|
-
| **bsv-shamir.min.js** | 432KB | **Threshold Cryptography** | `unpkg.com/@smartledger/bsv@7.
|
|
123
|
-
| **bsv-security.min.js** | 26KB | Security enhancements (opt-in helpers — see README › Security) | `unpkg.com/@smartledger/bsv@7.
|
|
124
|
-
| **bsv-mnemonic.min.js** | 681KB | HD wallets | `unpkg.com/@smartledger/bsv@7.
|
|
125
|
-
| **bsv-ecies.min.js** | 71KB | Encryption | `unpkg.com/@smartledger/bsv@7.
|
|
126
|
-
| **bsv-covenant.min.js** | 913KB | Covenant operations | `unpkg.com/@smartledger/bsv@7.
|
|
127
|
-
| **bsv-script-helper.min.js** | 26KB | Custom script tools | `unpkg.com/@smartledger/bsv@7.
|
|
128
|
-
| **bsv-message.min.js** | 26KB | Message signing | `unpkg.com/@smartledger/bsv@7.
|
|
117
|
+
| **bsv.min.js** | 937KB | Core BSV + SmartContract | `unpkg.com/@smartledger/bsv@7.12.0/bsv.min.js` |
|
|
118
|
+
| **bsv.bundle.js** | 937KB | Everything in one file | `unpkg.com/@smartledger/bsv@7.12.0/bsv.bundle.js` |
|
|
119
|
+
| **bsv-smartcontract.min.js** | 937KB | Complete covenant framework | `unpkg.com/@smartledger/bsv@7.12.0/bsv-smartcontract.min.js` |
|
|
120
|
+
| **bsv-ltp.min.js** | 1184KB | **Legal Token Protocol** | `unpkg.com/@smartledger/bsv@7.12.0/bsv-ltp.min.js` |
|
|
121
|
+
| **bsv-gdaf.min.js** | 1184KB | **Digital Identity & Attestation** | `unpkg.com/@smartledger/bsv@7.12.0/bsv-gdaf.min.js` |
|
|
122
|
+
| **bsv-shamir.min.js** | 432KB | **Threshold Cryptography** | `unpkg.com/@smartledger/bsv@7.12.0/bsv-shamir.min.js` |
|
|
123
|
+
| **bsv-security.min.js** | 26KB | Security enhancements (opt-in helpers — see README › Security) | `unpkg.com/@smartledger/bsv@7.12.0/bsv-security.min.js` |
|
|
124
|
+
| **bsv-mnemonic.min.js** | 681KB | HD wallets | `unpkg.com/@smartledger/bsv@7.12.0/bsv-mnemonic.min.js` |
|
|
125
|
+
| **bsv-ecies.min.js** | 71KB | Encryption | `unpkg.com/@smartledger/bsv@7.12.0/bsv-ecies.min.js` |
|
|
126
|
+
| **bsv-covenant.min.js** | 913KB | Covenant operations | `unpkg.com/@smartledger/bsv@7.12.0/bsv-covenant.min.js` |
|
|
127
|
+
| **bsv-script-helper.min.js** | 26KB | Custom script tools | `unpkg.com/@smartledger/bsv@7.12.0/bsv-script-helper.min.js` |
|
|
128
|
+
| **bsv-message.min.js** | 26KB | Message signing | `unpkg.com/@smartledger/bsv@7.12.0/bsv-message.min.js` |
|
|
129
129
|
|
|
130
130
|
## ⚙️ **Development Environment Setup**
|
|
131
131
|
|
|
@@ -14,10 +14,10 @@ npm install @smartledger/bsv
|
|
|
14
14
|
### Browser CDN (Instant)
|
|
15
15
|
```html
|
|
16
16
|
<!-- Core library (937KB) -->
|
|
17
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
17
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv.min.js"></script>
|
|
18
18
|
|
|
19
19
|
<!-- Everything included (937KB) -->
|
|
20
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
20
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv.bundle.js"></script>
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
## 💰 **Your First Transaction (60 seconds)**
|
|
@@ -127,19 +127,19 @@ SmartLedger-BSV offers 12 different loading options - use only what you need:
|
|
|
127
127
|
|
|
128
128
|
```html
|
|
129
129
|
<!-- Core BSV only (937KB) -->
|
|
130
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
130
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv.min.js"></script>
|
|
131
131
|
|
|
132
132
|
<!-- Smart contracts (937KB) -->
|
|
133
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
133
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv-smartcontract.min.js"></script>
|
|
134
134
|
|
|
135
135
|
<!-- Legal tokens (1.16MB) -->
|
|
136
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
136
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv-ltp.min.js"></script>
|
|
137
137
|
|
|
138
138
|
<!-- Digital identity (1.16MB) -->
|
|
139
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
139
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv-gdaf.min.js"></script>
|
|
140
140
|
|
|
141
141
|
<!-- Everything (937KB) -->
|
|
142
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
142
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv.bundle.js"></script>
|
|
143
143
|
```
|
|
144
144
|
|
|
145
145
|
## ⚡ **Key Advantages**
|
|
@@ -159,17 +159,17 @@ const recovered = bsv.reconstructSecret([shares[0], shares[2], shares[4]]);
|
|
|
159
159
|
### **New Modular Options**
|
|
160
160
|
```html
|
|
161
161
|
<!-- Core compatibility (same size as bsv@1.5.6) -->
|
|
162
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
162
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv.min.js"></script>
|
|
163
163
|
|
|
164
164
|
<!-- Add smart contracts when ready -->
|
|
165
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
165
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv-smartcontract.min.js"></script>
|
|
166
166
|
|
|
167
167
|
<!-- Add advanced features as needed -->
|
|
168
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
169
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
168
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv-ltp.min.js"></script>
|
|
169
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv-gdaf.min.js"></script>
|
|
170
170
|
|
|
171
171
|
<!-- Everything in one file -->
|
|
172
|
-
<script src="https://unpkg.com/@smartledger/bsv@7.
|
|
172
|
+
<script src="https://unpkg.com/@smartledger/bsv@7.12.0/bsv.bundle.js"></script>
|
|
173
173
|
```
|
|
174
174
|
|
|
175
175
|
## 🔍 **Testing Your Migration**
|
|
@@ -390,6 +390,56 @@ Interpreter.SCRIPT_ENABLE_MAGNETIC_OPCODES = (1 << 19)
|
|
|
390
390
|
// exactly like the Monolith and Magnetic flags above.
|
|
391
391
|
Interpreter.SCRIPT_ENABLE_CHRONICLE = (1 << 20)
|
|
392
392
|
|
|
393
|
+
/**
|
|
394
|
+
* Block height at which Chronicle activated on BSV mainnet (2026-04-07).
|
|
395
|
+
*
|
|
396
|
+
* Recorded because the node gates on it PER UTXO — `utxo_after_chronicle` — not
|
|
397
|
+
* globally. Whether Chronicle rules apply to a script depends on the output being
|
|
398
|
+
* spent, so this is a property of the input under validation, never a property of
|
|
399
|
+
* the library.
|
|
400
|
+
*/
|
|
401
|
+
Interpreter.CHRONICLE_ACTIVATION_HEIGHT = 943816
|
|
402
|
+
|
|
403
|
+
/**
|
|
404
|
+
* The script-verification flags matching BSV mainnet consensus.
|
|
405
|
+
*
|
|
406
|
+
* This library has no default flag set — `verify()` falls back to `0`, meaning no
|
|
407
|
+
* optional feature is enabled. That is deliberate and stays: a validator should state
|
|
408
|
+
* the consensus context it is validating against rather than inherit one. But leaving
|
|
409
|
+
* callers to assemble the set by hand invites getting it wrong, and "wrong" here means
|
|
410
|
+
* a verdict that disagrees with the network.
|
|
411
|
+
*
|
|
412
|
+
* `afterChronicle` defaults to TRUE because Chronicle activated at block 943,816 and
|
|
413
|
+
* every output created since is subject to it. Pass `false` to validate the spend of a
|
|
414
|
+
* pre-activation UTXO, which is exactly the distinction the node makes.
|
|
415
|
+
*
|
|
416
|
+
* NOTE: script-number and element-size limits are NOT flags — they are process-wide
|
|
417
|
+
* statics raised by `useGenesisLimits()`. A post-Genesis validator needs both this flag
|
|
418
|
+
* set and that call.
|
|
419
|
+
*
|
|
420
|
+
* @param {object} [opts]
|
|
421
|
+
* @param {boolean} [opts.afterChronicle=true] is the UTXO being spent post-activation
|
|
422
|
+
* @returns {number} the combined flags
|
|
423
|
+
*/
|
|
424
|
+
Interpreter.mainnetFlags = function (opts) {
|
|
425
|
+
opts = opts || {}
|
|
426
|
+
var flags = Interpreter.SCRIPT_VERIFY_P2SH |
|
|
427
|
+
Interpreter.SCRIPT_VERIFY_STRICTENC |
|
|
428
|
+
Interpreter.SCRIPT_VERIFY_DERSIG |
|
|
429
|
+
Interpreter.SCRIPT_VERIFY_LOW_S |
|
|
430
|
+
Interpreter.SCRIPT_VERIFY_NULLFAIL |
|
|
431
|
+
Interpreter.SCRIPT_VERIFY_MINIMALDATA |
|
|
432
|
+
Interpreter.SCRIPT_VERIFY_CHECKLOCKTIMEVERIFY |
|
|
433
|
+
Interpreter.SCRIPT_VERIFY_CHECKSEQUENCEVERIFY |
|
|
434
|
+
Interpreter.SCRIPT_ENABLE_SIGHASH_FORKID |
|
|
435
|
+
Interpreter.SCRIPT_ENABLE_MAGNETIC_OPCODES |
|
|
436
|
+
Interpreter.SCRIPT_ENABLE_MONOLITH_OPCODES
|
|
437
|
+
if (opts.afterChronicle !== false) {
|
|
438
|
+
flags |= Interpreter.SCRIPT_ENABLE_CHRONICLE
|
|
439
|
+
}
|
|
440
|
+
return flags
|
|
441
|
+
}
|
|
442
|
+
|
|
393
443
|
/* Below flags apply in the context of BIP 68 */
|
|
394
444
|
/**
|
|
395
445
|
* If this flag set, CTxIn::nSequence is NOT interpreted as a relative
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smartledger/bsv",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.12.0",
|
|
4
4
|
"description": "🚀 Complete Bitcoin SV development framework with legally-recognizable DID:web + W3C VC-JWT toolkit, Legal Token Protocol (LTP), Global Digital Attestation Framework (GDAF), StatusList2021 revocation, and 16 flexible loading options. Standards-based credentials with ES256/ES256K support, on-chain BSV anchoring, and comprehensive Bitcoin SV API. Perfect for legal tokens, verifiable credentials, DeFi, smart contracts, and secure Bitcoin applications.",
|
|
5
5
|
"author": "SmartLedger Technology <hello@smartledger.technology> (https://smartledger.technology)",
|
|
6
6
|
"homepage": "https://github.com/codenlighten/smartledger-bsv#readme",
|
|
@@ -243,7 +243,8 @@
|
|
|
243
243
|
"browserify-zlib": "^0.2.0",
|
|
244
244
|
"buffer": "^6.0.3",
|
|
245
245
|
"chai": "6.2.2",
|
|
246
|
-
"
|
|
246
|
+
"create-hash": "^1.2.0",
|
|
247
|
+
"create-hmac": "^1.1.7",
|
|
247
248
|
"esbuild": "^0.28.1",
|
|
248
249
|
"events": "^3.3.0",
|
|
249
250
|
"jose": "^5.10.0",
|
|
@@ -251,6 +252,7 @@
|
|
|
251
252
|
"nyc": "^18.0.0",
|
|
252
253
|
"path-browserify": "^1.0.1",
|
|
253
254
|
"process": "^0.11.10",
|
|
255
|
+
"randombytes": "^2.1.0",
|
|
254
256
|
"sinon": "22.1.0",
|
|
255
257
|
"standard": "12.0.1",
|
|
256
258
|
"stream-browserify": "^3.0.0",
|
|
@@ -258,6 +260,15 @@
|
|
|
258
260
|
"util": "^0.12.5",
|
|
259
261
|
"vm-browserify": "^1.1.2"
|
|
260
262
|
},
|
|
263
|
+
"overrides": {
|
|
264
|
+
"js-yaml@^3": "^3.15.1",
|
|
265
|
+
"js-yaml@^4": "^4.3.1",
|
|
266
|
+
"serialize-javascript": "^7.0.5",
|
|
267
|
+
"tmp": "^0.2.7",
|
|
268
|
+
"mocha": {
|
|
269
|
+
"diff": "^8.0.3"
|
|
270
|
+
}
|
|
271
|
+
},
|
|
261
272
|
"license": "MIT",
|
|
262
273
|
"standard": {
|
|
263
274
|
"globals": [
|