Skip to content

Commit 09a67b5

Browse files
committed
bitcoinjs#1522 testing...
1 parent f704d4d commit 09a67b5

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

p2tr-witness.js

+10-9
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ const BN = require('bn.js'); // TODO: remove? see changelog bn.js
33
const ANNEX_PREFIX = 0x50;
44
const EC_P = Buffer.from('fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f', 'hex');
55
const P = new BN(EC_P);
6+
const P_REDUCTION = BN.red(P);
67
const P_QUADRATIC_RESIDUE = P.addn(1).divn(4);
78
const BN_3 = new BN(3);
89
const BN_7 = new BN(7);
@@ -54,15 +55,16 @@ const leafVersion = controlBlock[0] & 0xfe;
5455

5556

5657
function liftX(b) {
57-
console.log('liftX IN');
5858
// check if x instance of buffer and length 32
59-
const x = new BN(b);
59+
const x = new BN(b).toRed(P_REDUCTION);
6060
if (x.gte(P)) return null;
61-
const yy = x.pow(BN_3).add(BN_7).mod(P);
62-
// const y = yy.pow(P_QUADRATIC_RESIDUE).mod(P);
61+
const ySq = x.redPow(BN_3).add(BN_7).mod(P);
62+
const y = ySq.redPow(P_QUADRATIC_RESIDUE).mod(P);
6363

64-
console.log('liftX OUT');
65-
return yy;
64+
console.log('ySq', ySq.toJSON());
65+
console.log('y2', y.redPow(new BN(2)).mod(P).toJSON());
66+
console.log('y', y.toJSON());
67+
return y;
6668
}
6769

6870

@@ -77,12 +79,11 @@ function liftX(b) {
7779
// if (x >= p) return null;
7880
// const yy = (x ** 3n + 7n) % p;
7981
// // const y = (yy ** q) % p;
80-
82+
8183

8284
// console.log('liftX OUT');
8385
// return yy;
8486
// }
8587

8688
const x = '0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798';
87-
const y = liftX(x);
88-
console.log('y', y.toJSON());
89+
const y = liftX(x);

0 commit comments

Comments
 (0)