@bsv/sdk 1.6.19 → 1.6.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/package.json +3 -3
- package/dist/cjs/src/primitives/ECDSA.js +43 -42
- package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
- package/dist/cjs/src/primitives/Point.js +70 -91
- package/dist/cjs/src/primitives/Point.js.map +1 -1
- package/dist/cjs/src/script/ScriptEvaluationError.js +27 -0
- package/dist/cjs/src/script/ScriptEvaluationError.js.map +1 -0
- package/dist/cjs/src/script/Spend.js +13 -7
- package/dist/cjs/src/script/Spend.js.map +1 -1
- package/dist/cjs/src/script/index.js +3 -1
- package/dist/cjs/src/script/index.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/primitives/ECDSA.js +43 -42
- package/dist/esm/src/primitives/ECDSA.js.map +1 -1
- package/dist/esm/src/primitives/Point.js +67 -90
- package/dist/esm/src/primitives/Point.js.map +1 -1
- package/dist/esm/src/script/ScriptEvaluationError.js +33 -0
- package/dist/esm/src/script/ScriptEvaluationError.js.map +1 -0
- package/dist/esm/src/script/Spend.js +14 -8
- package/dist/esm/src/script/Spend.js.map +1 -1
- package/dist/esm/src/script/index.js +1 -0
- package/dist/esm/src/script/index.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
- package/dist/types/src/primitives/Point.d.ts +3 -5
- package/dist/types/src/primitives/Point.d.ts.map +1 -1
- package/dist/types/src/script/ScriptEvaluationError.d.ts +24 -0
- package/dist/types/src/script/ScriptEvaluationError.d.ts.map +1 -0
- package/dist/types/src/script/Spend.d.ts.map +1 -1
- package/dist/types/src/script/index.d.ts +1 -0
- package/dist/types/src/script/index.d.ts.map +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/umd/bundle.js +5 -5
- package/dist/umd/bundle.js.map +1 -1
- package/package.json +3 -3
- package/src/primitives/ECDSA.ts +50 -49
- package/src/primitives/Point.ts +65 -99
- package/src/script/ScriptEvaluationError.ts +44 -0
- package/src/script/Spend.ts +14 -12
- package/src/script/index.ts +1 -0
package/dist/cjs/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bsv/sdk",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.20",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"description": "BSV Blockchain Software Development Kit",
|
|
6
6
|
"files": [
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@eslint/js": "^9.23.0",
|
|
47
47
|
"@jest/globals": "^29.7.0",
|
|
48
|
+
"@rspack/cli": "^1.4.9",
|
|
48
49
|
"@types/jest": "^29.5.14",
|
|
49
50
|
"@types/node": "^22.13.14",
|
|
50
51
|
"eslint": "^9.23.0",
|
|
@@ -57,8 +58,7 @@
|
|
|
57
58
|
"ts2md": "^0.2.8",
|
|
58
59
|
"tsconfig-to-dual-package": "^1.2.0",
|
|
59
60
|
"typescript": "5.1",
|
|
60
|
-
"typescript-eslint": "^8.29.0"
|
|
61
|
-
"@rspack/cli": "^0.4.4"
|
|
61
|
+
"typescript-eslint": "^8.29.0"
|
|
62
62
|
},
|
|
63
63
|
"ts-standard": {
|
|
64
64
|
"project": "tsconfig.eslint.json",
|
|
@@ -40,6 +40,10 @@ function truncateToN(msg, truncOnly, curve = new Curve_js_1.default()) {
|
|
|
40
40
|
return msg;
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
+
const curve = new Curve_js_1.default();
|
|
44
|
+
const bytes = curve.n.byteLength();
|
|
45
|
+
const ns1 = curve.n.subn(1);
|
|
46
|
+
const halfN = Point_js_1.N_BIGINT >> 1n;
|
|
43
47
|
/**
|
|
44
48
|
* Generates a digital signature for a given message.
|
|
45
49
|
*
|
|
@@ -56,71 +60,68 @@ function truncateToN(msg, truncOnly, curve = new Curve_js_1.default()) {
|
|
|
56
60
|
* const signature = sign(msg, key)
|
|
57
61
|
*/
|
|
58
62
|
const sign = (msg, key, forceLowS = false, customK) => {
|
|
59
|
-
|
|
63
|
+
// —— prepare inputs ────────────────────────────────────────────────────────
|
|
60
64
|
msg = truncateToN(msg);
|
|
61
|
-
|
|
62
|
-
const
|
|
65
|
+
const msgBig = BigInt('0x' + msg.toString(16));
|
|
66
|
+
const keyBig = BigInt('0x' + key.toString(16));
|
|
67
|
+
// DRBG seeding identical to previous implementation
|
|
63
68
|
const bkey = key.toArray('be', bytes);
|
|
64
|
-
// Zero-extend nonce to have the same byte size as N
|
|
65
69
|
const nonce = msg.toArray('be', bytes);
|
|
66
|
-
// Instantiate Hmac_DRBG
|
|
67
70
|
const drbg = new DRBG_js_1.default(bkey, nonce);
|
|
68
|
-
// Number of bytes to generate
|
|
69
|
-
const ns1 = curve.n.subn(1);
|
|
70
71
|
for (let iter = 0;; iter++) {
|
|
71
|
-
//
|
|
72
|
-
let
|
|
72
|
+
// —— k generation & basic validity checks ───────────────────────────────
|
|
73
|
+
let kBN = typeof customK === 'function'
|
|
73
74
|
? customK(iter)
|
|
74
75
|
: BigNumber_js_1.default.isBN(customK)
|
|
75
76
|
? customK
|
|
76
77
|
: new BigNumber_js_1.default(drbg.generate(bytes), 16);
|
|
77
|
-
if (
|
|
78
|
-
k = truncateToN(k, true);
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
78
|
+
if (kBN == null)
|
|
81
79
|
throw new Error('k is undefined');
|
|
82
|
-
|
|
83
|
-
if (
|
|
80
|
+
kBN = truncateToN(kBN, true);
|
|
81
|
+
if (kBN.cmpn(1) <= 0 || kBN.cmp(ns1) >= 0) {
|
|
84
82
|
if (BigNumber_js_1.default.isBN(customK)) {
|
|
85
|
-
throw new Error('Invalid fixed custom K value (must be
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
continue;
|
|
83
|
+
throw new Error('Invalid fixed custom K value (must be >1 and <N‑1)');
|
|
89
84
|
}
|
|
85
|
+
continue;
|
|
90
86
|
}
|
|
91
|
-
const
|
|
92
|
-
|
|
87
|
+
const kBig = BigInt('0x' + kBN.toString(16));
|
|
88
|
+
// —— R = k·G (Jacobian, window‑NAF) ──────────────────────────────────────
|
|
89
|
+
const R = (0, Point_js_1.scalarMultiplyWNAF)(kBig, { x: Point_js_1.GX_BIGINT, y: Point_js_1.GY_BIGINT });
|
|
90
|
+
if (R.Z === 0n) { // point at infinity – should never happen for valid k
|
|
93
91
|
if (BigNumber_js_1.default.isBN(customK)) {
|
|
94
|
-
throw new Error('Invalid fixed custom K value (
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
continue;
|
|
92
|
+
throw new Error('Invalid fixed custom K value (k·G at infinity)');
|
|
98
93
|
}
|
|
94
|
+
continue;
|
|
99
95
|
}
|
|
100
|
-
|
|
101
|
-
const
|
|
102
|
-
|
|
96
|
+
// affine X coordinate of R
|
|
97
|
+
const zInv = (0, Point_js_1.biModInv)(R.Z);
|
|
98
|
+
const zInv2 = (0, Point_js_1.biModMul)(zInv, zInv);
|
|
99
|
+
const xAff = (0, Point_js_1.biModMul)(R.X, zInv2);
|
|
100
|
+
const rBig = (0, Point_js_1.modN)(xAff);
|
|
101
|
+
if (rBig === 0n) {
|
|
103
102
|
if (BigNumber_js_1.default.isBN(customK)) {
|
|
104
|
-
throw new Error('Invalid fixed custom K value (
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
continue;
|
|
103
|
+
throw new Error('Invalid fixed custom K value (r == 0)');
|
|
108
104
|
}
|
|
105
|
+
continue;
|
|
109
106
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
107
|
+
// —— s = k⁻¹ · (msg + r·key) mod n ─────────────────────────────────────
|
|
108
|
+
const kInv = (0, Point_js_1.modInvN)(kBig);
|
|
109
|
+
const rTimesKey = (0, Point_js_1.modMulN)(rBig, keyBig);
|
|
110
|
+
const sum = (0, Point_js_1.modN)(msgBig + rTimesKey);
|
|
111
|
+
let sBig = (0, Point_js_1.modMulN)(kInv, sum);
|
|
112
|
+
if (sBig === 0n) {
|
|
113
113
|
if (BigNumber_js_1.default.isBN(customK)) {
|
|
114
|
-
throw new Error('Invalid fixed custom K value (
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
continue;
|
|
114
|
+
throw new Error('Invalid fixed custom K value (s == 0)');
|
|
118
115
|
}
|
|
116
|
+
continue;
|
|
119
117
|
}
|
|
120
|
-
//
|
|
121
|
-
if (forceLowS &&
|
|
122
|
-
|
|
118
|
+
// low‑S mitigation (BIP‑62/BIP‑340 style)
|
|
119
|
+
if (forceLowS && sBig > halfN) {
|
|
120
|
+
sBig = Point_js_1.N_BIGINT - sBig;
|
|
123
121
|
}
|
|
122
|
+
// —— convert back to BigNumber & return ─────────────────────────────────
|
|
123
|
+
const r = new BigNumber_js_1.default(rBig.toString(16), 16);
|
|
124
|
+
const s = new BigNumber_js_1.default(sBig.toString(16), 16);
|
|
124
125
|
return new Signature_js_1.default(r, s);
|
|
125
126
|
}
|
|
126
127
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ECDSA.js","sourceRoot":"","sources":["../../../../src/primitives/ECDSA.ts"],"names":[],"mappings":";;;;;;AAAA,kEAAsC;AACtC,kEAAsC;AACtC,0DAA8B;AAC9B,yCAAkJ;AAClJ,wDAA4B;AAE5B;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,WAAW,CAClB,GAAc,EACd,SAAmB,EACnB,KAAK,GAAG,IAAI,kBAAK,EAAE;IAEnB,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;IACxD,IAAI,KAAK,GAAG,CAAC,EAAE;QACb,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;KAClB;IACD,IAAI,SAAS,KAAK,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;QAC/C,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;KACxB;SAAM;QACL,OAAO,GAAG,CAAA;KACX;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACI,MAAM,IAAI,GAAG,CAClB,GAAc,EACd,GAAc,EACd,YAAqB,KAAK,EAC1B,OAAmD,EACxC,EAAE;IACb,
|
|
1
|
+
{"version":3,"file":"ECDSA.js","sourceRoot":"","sources":["../../../../src/primitives/ECDSA.ts"],"names":[],"mappings":";;;;;;AAAA,kEAAsC;AACtC,kEAAsC;AACtC,0DAA8B;AAC9B,yCAAkJ;AAClJ,wDAA4B;AAE5B;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,WAAW,CAClB,GAAc,EACd,SAAmB,EACnB,KAAK,GAAG,IAAI,kBAAK,EAAE;IAEnB,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;IACxD,IAAI,KAAK,GAAG,CAAC,EAAE;QACb,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;KAClB;IACD,IAAI,SAAS,KAAK,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;QAC/C,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;KACxB;SAAM;QACL,OAAO,GAAG,CAAA;KACX;AACH,CAAC;AAED,MAAM,KAAK,GAAG,IAAI,kBAAK,EAAE,CAAA;AACzB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;AAClC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAC3B,MAAM,KAAK,GAAG,mBAAQ,IAAI,EAAE,CAAA;AAE5B;;;;;;;;;;;;;;GAcG;AACI,MAAM,IAAI,GAAG,CAClB,GAAc,EACd,GAAc,EACd,YAAqB,KAAK,EAC1B,OAAmD,EACxC,EAAE;IACb,6EAA6E;IAC7E,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;IACtB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;IAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;IAE9C,oDAAoD;IACpD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACrC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACtC,MAAM,IAAI,GAAG,IAAI,iBAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAElC,KAAK,IAAI,IAAI,GAAG,CAAC,GAAI,IAAI,EAAE,EAAE;QAC3B,0EAA0E;QAC1E,IAAI,GAAG,GACL,OAAO,OAAO,KAAK,UAAU;YAC3B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;YACf,CAAC,CAAC,sBAAS,CAAC,IAAI,CAAC,OAAO,CAAC;gBACvB,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,IAAI,sBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;QAE/C,IAAI,GAAG,IAAI,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;QAClD,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAE5B,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACzC,IAAI,sBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBAC3B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;aACtE;YACD,SAAQ;SACT;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;QAE5C,2EAA2E;QAC3E,MAAM,CAAC,GAAG,IAAA,6BAAkB,EAAC,IAAI,EAAE,EAAE,CAAC,EAAE,oBAAS,EAAE,CAAC,EAAE,oBAAS,EAAE,CAAC,CAAA;QAClE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,sDAAsD;YACtE,IAAI,sBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBAC3B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;aAClE;YACD,SAAQ;SACT;QAED,2BAA2B;QAC3B,MAAM,IAAI,GAAG,IAAA,mBAAQ,EAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1B,MAAM,KAAK,GAAG,IAAA,mBAAQ,EAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAClC,MAAM,IAAI,GAAG,IAAA,mBAAQ,EAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACjC,MAAM,IAAI,GAAG,IAAA,eAAI,EAAC,IAAI,CAAC,CAAA;QAEvB,IAAI,IAAI,KAAK,EAAE,EAAE;YACf,IAAI,sBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBAC3B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;aACzD;YACD,SAAQ;SACT;QAED,0EAA0E;QAC1E,MAAM,IAAI,GAAG,IAAA,kBAAO,EAAC,IAAI,CAAC,CAAA;QAC1B,MAAM,SAAS,GAAG,IAAA,kBAAO,EAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACvC,MAAM,GAAG,GAAG,IAAA,eAAI,EAAC,MAAM,GAAG,SAAS,CAAC,CAAA;QACpC,IAAI,IAAI,GAAG,IAAA,kBAAO,EAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAE7B,IAAI,IAAI,KAAK,EAAE,EAAE;YACf,IAAI,sBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBAC3B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;aACzD;YACD,SAAQ;SACT;QAED,0CAA0C;QAC1C,IAAI,SAAS,IAAI,IAAI,GAAG,KAAK,EAAE;YAC7B,IAAI,GAAG,mBAAQ,GAAG,IAAI,CAAA;SACvB;QAED,0EAA0E;QAC1E,MAAM,CAAC,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;QAC9C,MAAM,CAAC,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;QAC9C,OAAO,IAAI,sBAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;KAC3B;AACH,CAAC,CAAA;AAlFY,QAAA,IAAI,QAkFhB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACI,MAAM,MAAM,GAAG,CAAC,GAAc,EAAE,GAAc,EAAE,GAAU,EAAW,EAAE;IAC9E,2BAA2B;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;IAC5C,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE;QACtC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;KAC5D;IAED,MAAM,SAAS,GAAG;QAChB,CAAC,EAAE,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC,EAAE,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;KACrC,CAAA;IACD,MAAM,SAAS,GAAG;QAChB,CAAC,EAAE,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC,EAAE,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;KACrC,CAAA;IAED,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAA;IAC1B,MAAM,CAAC,GAAG,IAAI,CAAA;IAEd,kCAAkC;IAClC,IAAI,CAAC,IAAI,kBAAO,IAAI,CAAC,IAAI,mBAAQ,IAAI,CAAC,IAAI,kBAAO,IAAI,CAAC,IAAI,mBAAQ,EAAE;QAClE,OAAO,KAAK,CAAA;KACb;IAED,6EAA6E;IAC7E,MAAM,CAAC,GAAG,IAAA,kBAAO,EAAC,CAAC,CAAC,CAAA,CAAC,YAAY;IACjC,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,KAAK,CAAA,CAAC,sBAAsB;IACjD,MAAM,EAAE,GAAG,IAAA,kBAAO,EAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACxB,MAAM,EAAE,GAAG,IAAA,kBAAO,EAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAExB,4EAA4E;IAC5E,MAAM,EAAE,GAAG,IAAA,6BAAkB,EAAC,EAAE,EAAE,EAAE,CAAC,EAAE,oBAAS,EAAE,CAAC,EAAE,oBAAS,EAAE,CAAC,CAAA;IACjE,MAAM,EAAE,GAAG,IAAA,6BAAkB,EAAC,EAAE,EAAE,SAAS,CAAC,CAAA;IAC5C,MAAM,CAAC,GAAG,IAAA,gBAAK,EAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACvB,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;QAAE,OAAO,KAAK,CAAA,CAAC,oBAAoB;IAEjD,6EAA6E;IAC7E,MAAM,IAAI,GAAG,IAAA,mBAAQ,EAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,cAAc;IACzC,MAAM,KAAK,GAAG,IAAA,mBAAQ,EAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC,MAAM;IACzC,MAAM,IAAI,GAAG,IAAA,mBAAQ,EAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA,CAAC,gBAAgB;IAElD,6EAA6E;IAC7E,MAAM,CAAC,GAAG,IAAA,eAAI,EAAC,IAAI,CAAC,CAAA;IACpB,OAAO,CAAC,KAAK,CAAC,CAAA;AAChB,CAAC,CAAA;AA5CY,QAAA,MAAM,UA4ClB"}
|
|
@@ -3,12 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.modInvN = exports.modMulN = exports.modN = exports.scalarMultiplyWNAF = exports.jpNeg = exports.jpAdd = exports.jpDouble = exports.GY_BIGINT = exports.GX_BIGINT = exports.biModSqr = exports.biModInv = exports.biModAdd = exports.biModMul = exports.biModSub = exports.biMod = exports.red = exports.MASK_256 = exports.N_BIGINT = exports.P_BIGINT = exports.BI_EIGHT = exports.BI_FOUR = exports.BI_THREE = exports.BI_TWO = exports.BI_ONE = exports.BI_ZERO = void 0;
|
|
6
|
+
exports.modInvN = exports.modMulN = exports.modN = exports.scalarMultiplyWNAF = exports.jpNeg = exports.jpAdd = exports.jpDouble = exports.GY_BIGINT = exports.GX_BIGINT = exports.biModSqrt = exports.P_PLUS1_DIV4 = exports.biModPow = exports.biModSqr = exports.biModInv = exports.biModAdd = exports.biModMul = exports.biModSub = exports.biMod = exports.red = exports.MASK_256 = exports.N_BIGINT = exports.P_BIGINT = exports.BI_EIGHT = exports.BI_FOUR = exports.BI_THREE = exports.BI_TWO = exports.BI_ONE = exports.BI_ZERO = void 0;
|
|
7
7
|
const BasePoint_js_1 = __importDefault(require("./BasePoint.js"));
|
|
8
8
|
const JacobianPoint_js_1 = __importDefault(require("./JacobianPoint.js"));
|
|
9
9
|
const BigNumber_js_1 = __importDefault(require("./BigNumber.js"));
|
|
10
10
|
const utils_js_1 = require("./utils.js");
|
|
11
|
-
const ReductionContext_js_1 = __importDefault(require("./ReductionContext.js"));
|
|
12
11
|
// -----------------------------------------------------------------------------
|
|
13
12
|
// BigInt helpers & constants (secp256k1) – hoisted so we don't recreate them on
|
|
14
13
|
// every Point.mul() call.
|
|
@@ -58,6 +57,34 @@ const biModInv = (a) => {
|
|
|
58
57
|
exports.biModInv = biModInv;
|
|
59
58
|
const biModSqr = (a) => (0, exports.biModMul)(a, a);
|
|
60
59
|
exports.biModSqr = biModSqr;
|
|
60
|
+
const biModPow = (base, exp) => {
|
|
61
|
+
let result = exports.BI_ONE;
|
|
62
|
+
base = (0, exports.biMod)(base);
|
|
63
|
+
let e = exp;
|
|
64
|
+
while (e > exports.BI_ZERO) {
|
|
65
|
+
if ((e & exports.BI_ONE) === exports.BI_ONE)
|
|
66
|
+
result = (0, exports.biModMul)(result, base);
|
|
67
|
+
base = (0, exports.biModMul)(base, base);
|
|
68
|
+
e >>= exports.BI_ONE;
|
|
69
|
+
}
|
|
70
|
+
return result;
|
|
71
|
+
};
|
|
72
|
+
exports.biModPow = biModPow;
|
|
73
|
+
exports.P_PLUS1_DIV4 = (exports.P_BIGINT + 1n) >> 2n;
|
|
74
|
+
const biModSqrt = (a) => {
|
|
75
|
+
const r = (0, exports.biModPow)(a, exports.P_PLUS1_DIV4);
|
|
76
|
+
return (0, exports.biModMul)(r, r) === (0, exports.biMod)(a) ? r : null;
|
|
77
|
+
};
|
|
78
|
+
exports.biModSqrt = biModSqrt;
|
|
79
|
+
const toBigInt = (x) => {
|
|
80
|
+
if (BigNumber_js_1.default.isBN(x))
|
|
81
|
+
return BigInt('0x' + x.toString(16));
|
|
82
|
+
if (typeof x === 'string')
|
|
83
|
+
return BigInt('0x' + x);
|
|
84
|
+
if (Array.isArray(x))
|
|
85
|
+
return BigInt('0x' + (0, utils_js_1.toHex)(x));
|
|
86
|
+
return BigInt(x);
|
|
87
|
+
};
|
|
61
88
|
// Generator point coordinates as bigint constants
|
|
62
89
|
exports.GX_BIGINT = BigInt('0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798');
|
|
63
90
|
exports.GY_BIGINT = BigInt('0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8');
|
|
@@ -260,12 +287,6 @@ class Point extends BasePoint_js_1.default {
|
|
|
260
287
|
const bytes = (0, utils_js_1.toArray)(str, 'hex');
|
|
261
288
|
return Point.fromDER(bytes);
|
|
262
289
|
}
|
|
263
|
-
static redSqrtOptimized(y2) {
|
|
264
|
-
const red = Point.red;
|
|
265
|
-
const p = red.m; // The modulus
|
|
266
|
-
const exponent = p.addn(1).iushrn(2); // (p + 1) / 4
|
|
267
|
-
return y2.redPow(exponent);
|
|
268
|
-
}
|
|
269
290
|
/**
|
|
270
291
|
* Generates a point from an x coordinate and a boolean indicating whether the corresponding
|
|
271
292
|
* y coordinate is odd.
|
|
@@ -282,62 +303,18 @@ class Point extends BasePoint_js_1.default {
|
|
|
282
303
|
* const point = Point.fromX(xCoordinate, true);
|
|
283
304
|
*/
|
|
284
305
|
static fromX(x, odd) {
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
base = mod(base, modulus);
|
|
291
|
-
while (exponent > BigInt(0)) {
|
|
292
|
-
if ((exponent & BigInt(1)) === BigInt(1)) {
|
|
293
|
-
result = mod(result * base, modulus);
|
|
294
|
-
}
|
|
295
|
-
exponent >>= BigInt(1);
|
|
296
|
-
base = mod(base * base, modulus);
|
|
297
|
-
}
|
|
298
|
-
return result;
|
|
299
|
-
}
|
|
300
|
-
function sqrtMod(a, p) {
|
|
301
|
-
const exponent = (p + BigInt(1)) >> BigInt(2);
|
|
302
|
-
const sqrtCandidate = modPow(a, exponent, p);
|
|
303
|
-
if (mod(sqrtCandidate * sqrtCandidate, p) === mod(a, p)) {
|
|
304
|
-
return sqrtCandidate;
|
|
305
|
-
}
|
|
306
|
-
else {
|
|
307
|
-
return null;
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
// Curve parameters for secp256k1
|
|
311
|
-
const p = BigInt('0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F');
|
|
312
|
-
const b = BigInt(7);
|
|
313
|
-
let xBigInt;
|
|
314
|
-
if (x instanceof BigNumber_js_1.default) {
|
|
315
|
-
xBigInt = BigInt('0x' + x.toString(16));
|
|
316
|
-
}
|
|
317
|
-
else if (typeof x === 'string') {
|
|
318
|
-
xBigInt = BigInt('0x' + x);
|
|
319
|
-
}
|
|
320
|
-
else if (Array.isArray(x)) {
|
|
321
|
-
xBigInt = BigInt('0x' + (0, utils_js_1.toHex)(x).padStart(64, '0'));
|
|
322
|
-
}
|
|
323
|
-
else if (typeof x === 'number') {
|
|
324
|
-
xBigInt = BigInt(x);
|
|
325
|
-
}
|
|
326
|
-
else {
|
|
327
|
-
throw new Error('Invalid x-coordinate type');
|
|
328
|
-
}
|
|
329
|
-
xBigInt = mod(xBigInt, p);
|
|
330
|
-
const y2 = mod(modPow(xBigInt, BigInt(3), p) + b, p);
|
|
331
|
-
let y = sqrtMod(y2, p);
|
|
332
|
-
if (y === null) {
|
|
306
|
+
let xBigInt = toBigInt(x);
|
|
307
|
+
xBigInt = (0, exports.biMod)(xBigInt);
|
|
308
|
+
const y2 = (0, exports.biModAdd)((0, exports.biModMul)((0, exports.biModSqr)(xBigInt), xBigInt), 7n);
|
|
309
|
+
const y = (0, exports.biModSqrt)(y2);
|
|
310
|
+
if (y === null)
|
|
333
311
|
throw new Error('Invalid point');
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
y = p - y;
|
|
312
|
+
let yBig = y;
|
|
313
|
+
if ((yBig & exports.BI_ONE) !== (odd ? exports.BI_ONE : exports.BI_ZERO)) {
|
|
314
|
+
yBig = (0, exports.biModSub)(exports.P_BIGINT, yBig);
|
|
338
315
|
}
|
|
339
316
|
const xBN = new BigNumber_js_1.default(xBigInt.toString(16), 16);
|
|
340
|
-
const yBN = new BigNumber_js_1.default(
|
|
317
|
+
const yBN = new BigNumber_js_1.default(yBig.toString(16), 16);
|
|
341
318
|
return new Point(xBN, yBN);
|
|
342
319
|
}
|
|
343
320
|
/**
|
|
@@ -579,24 +556,30 @@ class Point extends BasePoint_js_1.default {
|
|
|
579
556
|
}
|
|
580
557
|
// P + (-P) = O
|
|
581
558
|
if (this.neg().eq(p)) {
|
|
582
|
-
return new Point(
|
|
559
|
+
return new Point(null, null);
|
|
583
560
|
}
|
|
584
561
|
// P + Q = O
|
|
585
562
|
if (this.x?.cmp(p.x ?? new BigNumber_js_1.default(0)) === 0) {
|
|
586
|
-
return new Point(
|
|
563
|
+
return new Point(null, null);
|
|
587
564
|
}
|
|
588
|
-
const
|
|
589
|
-
|
|
590
|
-
|
|
565
|
+
const P1 = {
|
|
566
|
+
X: BigInt('0x' + this.x.fromRed().toString(16)),
|
|
567
|
+
Y: BigInt('0x' + this.y.fromRed().toString(16)),
|
|
568
|
+
Z: exports.BI_ONE
|
|
591
569
|
};
|
|
592
|
-
const
|
|
593
|
-
|
|
594
|
-
|
|
570
|
+
const Q1 = {
|
|
571
|
+
X: BigInt('0x' + p.x.fromRed().toString(16)),
|
|
572
|
+
Y: BigInt('0x' + p.y.fromRed().toString(16)),
|
|
573
|
+
Z: exports.BI_ONE
|
|
595
574
|
};
|
|
596
|
-
const
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
575
|
+
const R = (0, exports.jpAdd)(P1, Q1);
|
|
576
|
+
if (R.Z === exports.BI_ZERO)
|
|
577
|
+
return new Point(null, null);
|
|
578
|
+
const zInv = (0, exports.biModInv)(R.Z);
|
|
579
|
+
const zInv2 = (0, exports.biModMul)(zInv, zInv);
|
|
580
|
+
const xRes = (0, exports.biModMul)(R.X, zInv2);
|
|
581
|
+
const yRes = (0, exports.biModMul)(R.Y, (0, exports.biModMul)(zInv2, zInv));
|
|
582
|
+
return new Point(xRes.toString(16), yRes.toString(16));
|
|
600
583
|
}
|
|
601
584
|
/**
|
|
602
585
|
* Doubles the current point.
|
|
@@ -608,21 +591,21 @@ class Point extends BasePoint_js_1.default {
|
|
|
608
591
|
* const result = P.dbl();
|
|
609
592
|
* */
|
|
610
593
|
dbl() {
|
|
611
|
-
if (this.inf)
|
|
594
|
+
if (this.inf)
|
|
612
595
|
return this;
|
|
596
|
+
if (this.x === null || this.y === null) {
|
|
597
|
+
throw new Error('Point coordinates cannot be null');
|
|
613
598
|
}
|
|
614
|
-
|
|
615
|
-
const
|
|
616
|
-
if (
|
|
617
|
-
return new Point(
|
|
618
|
-
}
|
|
619
|
-
const
|
|
620
|
-
const
|
|
621
|
-
const
|
|
622
|
-
const
|
|
623
|
-
|
|
624
|
-
const ny = c.redMul((this.x ?? new BigNumber_js_1.default(0)).redSub(nx)).redISub(this.y ?? new BigNumber_js_1.default(0));
|
|
625
|
-
return new Point(nx, ny);
|
|
599
|
+
const X = BigInt('0x' + this.x.fromRed().toString(16));
|
|
600
|
+
const Y = BigInt('0x' + this.y.fromRed().toString(16));
|
|
601
|
+
if (Y === exports.BI_ZERO)
|
|
602
|
+
return new Point(null, null);
|
|
603
|
+
const R = (0, exports.jpDouble)({ X, Y, Z: exports.BI_ONE });
|
|
604
|
+
const zInv = (0, exports.biModInv)(R.Z);
|
|
605
|
+
const zInv2 = (0, exports.biModMul)(zInv, zInv);
|
|
606
|
+
const xRes = (0, exports.biModMul)(R.X, zInv2);
|
|
607
|
+
const yRes = (0, exports.biModMul)(R.Y, (0, exports.biModMul)(zInv2, zInv));
|
|
608
|
+
return new Point(xRes.toString(16), yRes.toString(16));
|
|
626
609
|
}
|
|
627
610
|
/**
|
|
628
611
|
* Returns X coordinate of point
|
|
@@ -1032,7 +1015,7 @@ class Point extends BasePoint_js_1.default {
|
|
|
1032
1015
|
for (i = 0; i < points.length; i++) {
|
|
1033
1016
|
const split = this.curve._endoSplit(coeffs[i]);
|
|
1034
1017
|
let p = points[i];
|
|
1035
|
-
let beta = p._getBeta() ?? new Point(
|
|
1018
|
+
let beta = p._getBeta() ?? new Point(null, null);
|
|
1036
1019
|
if (split.k1.negative !== 0) {
|
|
1037
1020
|
split.k1.ineg();
|
|
1038
1021
|
p = p.neg(true);
|
|
@@ -1106,9 +1089,5 @@ class Point extends BasePoint_js_1.default {
|
|
|
1106
1089
|
};
|
|
1107
1090
|
}
|
|
1108
1091
|
}
|
|
1109
|
-
Point.red = new ReductionContext_js_1.default('k256');
|
|
1110
|
-
Point.a = new BigNumber_js_1.default(0).toRed(Point.red);
|
|
1111
|
-
Point.b = new BigNumber_js_1.default(7).toRed(Point.red);
|
|
1112
|
-
Point.zero = new BigNumber_js_1.default(0).toRed(Point.red);
|
|
1113
1092
|
exports.default = Point;
|
|
1114
1093
|
//# sourceMappingURL=Point.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Point.js","sourceRoot":"","sources":["../../../../src/primitives/Point.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Point.js","sourceRoot":"","sources":["../../../../src/primitives/Point.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_js_1 = require("../primitives/utils.js");
|
|
4
|
+
class ScriptEvaluationError extends Error {
|
|
5
|
+
constructor(params) {
|
|
6
|
+
const stackHex = params.stackState.map(s => s != null && typeof s.length !== 'undefined' ? (0, utils_js_1.toHex)(s) : (s === null || s === undefined ? 'null/undef' : 'INVALID_STACK_ITEM')).join(', ');
|
|
7
|
+
const altStackHex = params.altStackState.map(s => s != null && typeof s.length !== 'undefined' ? (0, utils_js_1.toHex)(s) : (s === null || s === undefined ? 'null/undef' : 'INVALID_STACK_ITEM')).join(', ');
|
|
8
|
+
const pcInfo = `Context: ${params.context}, PC: ${params.programCounter}`;
|
|
9
|
+
const stackInfo = `Stack: [${stackHex}] (len: ${params.stackState.length}, mem: ${params.stackMem})`;
|
|
10
|
+
const altStackInfo = `AltStack: [${altStackHex}] (len: ${params.altStackState.length}, mem: ${params.altStackMem})`;
|
|
11
|
+
const ifStackInfo = `IfStack: [${params.ifStackState.join(', ')}]`;
|
|
12
|
+
const fullMessage = `Script evaluation error: ${params.message}\nTXID: ${params.txid}, OutputIdx: ${params.outputIndex}\n${pcInfo}\n${stackInfo}\n${altStackInfo}\n${ifStackInfo}`;
|
|
13
|
+
super(fullMessage);
|
|
14
|
+
this.name = this.constructor.name;
|
|
15
|
+
this.txid = params.txid;
|
|
16
|
+
this.outputIndex = params.outputIndex;
|
|
17
|
+
this.context = params.context;
|
|
18
|
+
this.programCounter = params.programCounter;
|
|
19
|
+
this.stackState = params.stackState.map(s => s.slice());
|
|
20
|
+
this.altStackState = params.altStackState.map(s => s.slice());
|
|
21
|
+
this.ifStackState = params.ifStackState.slice();
|
|
22
|
+
this.stackMem = params.stackMem;
|
|
23
|
+
this.altStackMem = params.altStackMem;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.default = ScriptEvaluationError;
|
|
27
|
+
//# sourceMappingURL=ScriptEvaluationError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScriptEvaluationError.js","sourceRoot":"","sources":["../../../../src/script/ScriptEvaluationError.ts"],"names":[],"mappings":";;AAAA,qDAA8C;AAC9C,MAAqB,qBAAsB,SAAQ,KAAK;IAWtD,YAAa,MAWZ;QACC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACvL,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7L,MAAM,MAAM,GAAG,YAAY,MAAM,CAAC,OAAO,SAAS,MAAM,CAAC,cAAc,EAAE,CAAA;QACzE,MAAM,SAAS,GAAG,WAAW,QAAQ,WAAW,MAAM,CAAC,UAAU,CAAC,MAAM,UAAU,MAAM,CAAC,QAAQ,GAAG,CAAA;QACpG,MAAM,YAAY,GAAG,cAAc,WAAW,WAAW,MAAM,CAAC,aAAa,CAAC,MAAM,UAAU,MAAM,CAAC,WAAW,GAAG,CAAA;QACnH,MAAM,WAAW,GAAG,aAAa,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;QAClE,MAAM,WAAW,GAAG,4BAA4B,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC,IAAI,gBAAgB,MAAM,CAAC,WAAW,KAAK,MAAM,KAAK,SAAS,KAAK,YAAY,KAAK,WAAW,EAAE,CAAA;QAClL,KAAK,CAAC,WAAW,CAAC,CAAA;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;QACjC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;QACvB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAA;QACrC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QAC7B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAA;QAC3C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;QACvD,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;QAC7D,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;QAC/C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;QAC/B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAA;IACvC,CAAC;CACF;AA1CD,wCA0CC"}
|