@@ -1135,10 +1135,10 @@ mod tests {
1135
1135
. verify_schnorr ( & schnorr_sig. sig , & sighash, xpk)
1136
1136
. is_ok ( ) ,
1137
1137
} ;
1138
- let fixed_hash : & sha256:: Hash = & sha256:: Hash :: from_inner ( [ 34u8 ; 32 ] ) ;
1138
+ let txtmpl_hash : & sha256:: Hash = & sha256:: Hash :: from_inner ( [ 34u8 ; 32 ] ) ;
1139
1139
fn from_stack < ' txin , ' elem > (
1140
1140
verify_fn : Box < dyn FnMut ( & KeySigPair ) -> bool + ' elem > ,
1141
- fixed_hash : & ' elem sha256:: Hash ,
1141
+ txtmpl_hash : & ' elem sha256:: Hash ,
1142
1142
stack : Stack < ' txin > ,
1143
1143
ms : & ' elem Miniscript < BitcoinKey , NoChecks > ,
1144
1144
) -> Iter < ' elem , ' txin > {
@@ -1155,7 +1155,7 @@ mod tests {
1155
1155
height : 1002 ,
1156
1156
has_errored : false ,
1157
1157
// TODO: Replace with actual hash
1158
- txtemplate : & fixed_hash ,
1158
+ txtemplate : & txtmpl_hash ,
1159
1159
}
1160
1160
}
1161
1161
@@ -1177,10 +1177,11 @@ mod tests {
1177
1177
let hash160 = no_checks_ms ( & format ! ( "hash160({})" , hash160_hash) ) ;
1178
1178
let ripemd160_hash = ripemd160:: Hash :: hash ( & preimage) ;
1179
1179
let ripemd160 = no_checks_ms ( & format ! ( "ripemd160({})" , ripemd160_hash) ) ;
1180
+ let txtemplate = no_checks_ms ( & format ! ( "t:txtmpl({})" , txtmpl_hash) ) ;
1180
1181
1181
1182
let stack = Stack :: from ( vec ! [ stack:: Element :: Push ( & der_sigs[ 0 ] ) ] ) ;
1182
1183
let vfyfn = vfyfn_. clone ( ) ; // sigh rust 1.29...
1183
- let constraints = from_stack ( Box :: new ( vfyfn) , fixed_hash , stack, & pk) ;
1184
+ let constraints = from_stack ( Box :: new ( vfyfn) , txtmpl_hash , stack, & pk) ;
1184
1185
let pk_satisfied: Result < Vec < SatisfiedConstraint > , Error > = constraints. collect ( ) ;
1185
1186
assert_eq ! (
1186
1187
pk_satisfied. unwrap( ) ,
@@ -1192,7 +1193,7 @@ mod tests {
1192
1193
//Check Pk failure with wrong signature
1193
1194
let stack = Stack :: from ( vec ! [ stack:: Element :: Dissatisfied ] ) ;
1194
1195
let vfyfn = vfyfn_. clone ( ) ; // sigh rust 1.29...
1195
- let constraints = from_stack ( Box :: new ( vfyfn) , fixed_hash , stack, & pk) ;
1196
+ let constraints = from_stack ( Box :: new ( vfyfn) , txtmpl_hash , stack, & pk) ;
1196
1197
let pk_err: Result < Vec < SatisfiedConstraint > , Error > = constraints. collect ( ) ;
1197
1198
assert ! ( pk_err. is_err( ) ) ;
1198
1199
@@ -1203,7 +1204,7 @@ mod tests {
1203
1204
stack:: Element :: Push ( & pk_bytes) ,
1204
1205
] ) ;
1205
1206
let vfyfn = vfyfn_. clone ( ) ; // sigh rust 1.29...
1206
- let constraints = from_stack ( Box :: new ( vfyfn) , fixed_hash , stack, & pkh) ;
1207
+ let constraints = from_stack ( Box :: new ( vfyfn) , txtmpl_hash , stack, & pkh) ;
1207
1208
let pkh_satisfied: Result < Vec < SatisfiedConstraint > , Error > = constraints. collect ( ) ;
1208
1209
assert_eq ! (
1209
1210
pkh_satisfied. unwrap( ) ,
@@ -1216,7 +1217,7 @@ mod tests {
1216
1217
//Check After
1217
1218
let stack = Stack :: from ( vec ! [ ] ) ;
1218
1219
let vfyfn = vfyfn_. clone ( ) ; // sigh rust 1.29...
1219
- let constraints = from_stack ( Box :: new ( vfyfn) , fixed_hash , stack, & after) ;
1220
+ let constraints = from_stack ( Box :: new ( vfyfn) , txtmpl_hash , stack, & after) ;
1220
1221
let after_satisfied: Result < Vec < SatisfiedConstraint > , Error > = constraints. collect ( ) ;
1221
1222
assert_eq ! (
1222
1223
after_satisfied. unwrap( ) ,
@@ -1226,7 +1227,7 @@ mod tests {
1226
1227
//Check Older
1227
1228
let stack = Stack :: from ( vec ! [ ] ) ;
1228
1229
let vfyfn = vfyfn_. clone ( ) ; // sigh rust 1.29...
1229
- let constraints = from_stack ( Box :: new ( vfyfn) , fixed_hash , stack, & older) ;
1230
+ let constraints = from_stack ( Box :: new ( vfyfn) , txtmpl_hash , stack, & older) ;
1230
1231
let older_satisfied: Result < Vec < SatisfiedConstraint > , Error > = constraints. collect ( ) ;
1231
1232
assert_eq ! (
1232
1233
older_satisfied. unwrap( ) ,
@@ -1236,7 +1237,7 @@ mod tests {
1236
1237
//Check Sha256
1237
1238
let stack = Stack :: from ( vec ! [ stack:: Element :: Push ( & preimage) ] ) ;
1238
1239
let vfyfn = vfyfn_. clone ( ) ; // sigh rust 1.29...
1239
- let constraints = from_stack ( Box :: new ( vfyfn) , fixed_hash , stack, & sha256) ;
1240
+ let constraints = from_stack ( Box :: new ( vfyfn) , txtmpl_hash , stack, & sha256) ;
1240
1241
let sah256_satisfied: Result < Vec < SatisfiedConstraint > , Error > = constraints. collect ( ) ;
1241
1242
assert_eq ! (
1242
1243
sah256_satisfied. unwrap( ) ,
@@ -1249,7 +1250,7 @@ mod tests {
1249
1250
//Check Shad256
1250
1251
let stack = Stack :: from ( vec ! [ stack:: Element :: Push ( & preimage) ] ) ;
1251
1252
let vfyfn = vfyfn_. clone ( ) ; // sigh rust 1.29...
1252
- let constraints = from_stack ( Box :: new ( vfyfn) , fixed_hash , stack, & hash256) ;
1253
+ let constraints = from_stack ( Box :: new ( vfyfn) , txtmpl_hash , stack, & hash256) ;
1253
1254
let sha256d_satisfied: Result < Vec < SatisfiedConstraint > , Error > = constraints. collect ( ) ;
1254
1255
assert_eq ! (
1255
1256
sha256d_satisfied. unwrap( ) ,
@@ -1262,7 +1263,7 @@ mod tests {
1262
1263
//Check hash160
1263
1264
let stack = Stack :: from ( vec ! [ stack:: Element :: Push ( & preimage) ] ) ;
1264
1265
let vfyfn = vfyfn_. clone ( ) ; // sigh rust 1.29...
1265
- let constraints = from_stack ( Box :: new ( vfyfn) , fixed_hash , stack, & hash160) ;
1266
+ let constraints = from_stack ( Box :: new ( vfyfn) , txtmpl_hash , stack, & hash160) ;
1266
1267
let hash160_satisfied: Result < Vec < SatisfiedConstraint > , Error > = constraints. collect ( ) ;
1267
1268
assert_eq ! (
1268
1269
hash160_satisfied. unwrap( ) ,
@@ -1275,7 +1276,7 @@ mod tests {
1275
1276
//Check ripemd160
1276
1277
let stack = Stack :: from ( vec ! [ stack:: Element :: Push ( & preimage) ] ) ;
1277
1278
let vfyfn = vfyfn_. clone ( ) ; // sigh rust 1.29...
1278
- let constraints = from_stack ( Box :: new ( vfyfn) , fixed_hash , stack, & ripemd160) ;
1279
+ let constraints = from_stack ( Box :: new ( vfyfn) , txtmpl_hash , stack, & ripemd160) ;
1279
1280
let ripemd160_satisfied: Result < Vec < SatisfiedConstraint > , Error > = constraints. collect ( ) ;
1280
1281
assert_eq ! (
1281
1282
ripemd160_satisfied. unwrap( ) ,
@@ -1285,6 +1286,18 @@ mod tests {
1285
1286
} ]
1286
1287
) ;
1287
1288
1289
+ //Check txtemplate
1290
+ let stack = Stack :: from ( vec ! [ ] ) ;
1291
+ let vfyfn = vfyfn_. clone ( ) ; // sigh rust 1.29...
1292
+ let constraints = from_stack ( Box :: new ( vfyfn) , txtmpl_hash, stack, & txtemplate) ;
1293
+ let txtemplate_satisfied: Result < Vec < SatisfiedConstraint > , Error > = constraints. collect ( ) ;
1294
+ assert_eq ! (
1295
+ txtemplate_satisfied. unwrap( ) ,
1296
+ vec![ SatisfiedConstraint :: TxTemplate {
1297
+ hash: txtmpl_hash. clone( )
1298
+ } ]
1299
+ ) ;
1300
+
1288
1301
//Check AndV
1289
1302
let pk_bytes = pks[ 1 ] . to_public_key ( ) . to_bytes ( ) ;
1290
1303
let stack = Stack :: from ( vec ! [
@@ -1298,7 +1311,7 @@ mod tests {
1298
1311
pks[ 1 ] . to_pubkeyhash( )
1299
1312
) ) ;
1300
1313
let vfyfn = vfyfn_. clone ( ) ; // sigh rust 1.29...
1301
- let constraints = from_stack ( Box :: new ( vfyfn) , fixed_hash , stack, & elem) ;
1314
+ let constraints = from_stack ( Box :: new ( vfyfn) , txtmpl_hash , stack, & elem) ;
1302
1315
1303
1316
let and_v_satisfied: Result < Vec < SatisfiedConstraint > , Error > = constraints. collect ( ) ;
1304
1317
assert_eq ! (
@@ -1324,7 +1337,7 @@ mod tests {
1324
1337
pks[ 0 ] , sha256_hash
1325
1338
) ) ;
1326
1339
let vfyfn = vfyfn_. clone ( ) ; // sigh rust 1.29...
1327
- let constraints = from_stack ( Box :: new ( vfyfn) , fixed_hash , stack, & elem) ;
1340
+ let constraints = from_stack ( Box :: new ( vfyfn) , txtmpl_hash , stack, & elem) ;
1328
1341
1329
1342
let and_b_satisfied: Result < Vec < SatisfiedConstraint > , Error > = constraints. collect ( ) ;
1330
1343
assert_eq ! (
@@ -1352,7 +1365,7 @@ mod tests {
1352
1365
pks[ 1 ] . to_pubkeyhash( ) ,
1353
1366
) ) ;
1354
1367
let vfyfn = vfyfn_. clone ( ) ; // sigh rust 1.29...
1355
- let constraints = from_stack ( Box :: new ( vfyfn) , fixed_hash , stack, & elem) ;
1368
+ let constraints = from_stack ( Box :: new ( vfyfn) , txtmpl_hash , stack, & elem) ;
1356
1369
1357
1370
let and_or_satisfied: Result < Vec < SatisfiedConstraint > , Error > = constraints. collect ( ) ;
1358
1371
assert_eq ! (
@@ -1376,7 +1389,7 @@ mod tests {
1376
1389
stack:: Element :: Dissatisfied ,
1377
1390
] ) ;
1378
1391
let vfyfn = vfyfn_. clone ( ) ; // sigh rust 1.29...
1379
- let constraints = from_stack ( Box :: new ( vfyfn) , fixed_hash , stack, & elem) ;
1392
+ let constraints = from_stack ( Box :: new ( vfyfn) , txtmpl_hash , stack, & elem) ;
1380
1393
1381
1394
let and_or_satisfied: Result < Vec < SatisfiedConstraint > , Error > = constraints. collect ( ) ;
1382
1395
assert_eq ! (
@@ -1397,7 +1410,7 @@ mod tests {
1397
1410
pks[ 0 ] , sha256_hash
1398
1411
) ) ;
1399
1412
let vfyfn = vfyfn_. clone ( ) ; // sigh rust 1.29...
1400
- let constraints = from_stack ( Box :: new ( vfyfn) , fixed_hash , stack, & elem) ;
1413
+ let constraints = from_stack ( Box :: new ( vfyfn) , txtmpl_hash , stack, & elem) ;
1401
1414
1402
1415
let or_b_satisfied: Result < Vec < SatisfiedConstraint > , Error > = constraints. collect ( ) ;
1403
1416
assert_eq ! (
@@ -1415,7 +1428,7 @@ mod tests {
1415
1428
pks[ 0 ] , sha256_hash
1416
1429
) ) ;
1417
1430
let vfyfn = vfyfn_. clone ( ) ; // sigh rust 1.29...
1418
- let constraints = from_stack ( Box :: new ( vfyfn) , fixed_hash , stack, & elem) ;
1431
+ let constraints = from_stack ( Box :: new ( vfyfn) , txtmpl_hash , stack, & elem) ;
1419
1432
1420
1433
let or_d_satisfied: Result < Vec < SatisfiedConstraint > , Error > = constraints. collect ( ) ;
1421
1434
assert_eq ! (
@@ -1435,7 +1448,7 @@ mod tests {
1435
1448
sha256_hash, pks[ 0 ]
1436
1449
) ) ;
1437
1450
let vfyfn = vfyfn_. clone ( ) ; // sigh rust 1.29...
1438
- let constraints = from_stack ( Box :: new ( vfyfn) , fixed_hash , stack, & elem) ;
1451
+ let constraints = from_stack ( Box :: new ( vfyfn) , txtmpl_hash , stack, & elem) ;
1439
1452
1440
1453
let or_c_satisfied: Result < Vec < SatisfiedConstraint > , Error > = constraints. collect ( ) ;
1441
1454
assert_eq ! (
@@ -1455,7 +1468,7 @@ mod tests {
1455
1468
sha256_hash, pks[ 0 ]
1456
1469
) ) ;
1457
1470
let vfyfn = vfyfn_. clone ( ) ; // sigh rust 1.29...
1458
- let constraints = from_stack ( Box :: new ( vfyfn) , fixed_hash , stack, & elem) ;
1471
+ let constraints = from_stack ( Box :: new ( vfyfn) , txtmpl_hash , stack, & elem) ;
1459
1472
1460
1473
let or_i_satisfied: Result < Vec < SatisfiedConstraint > , Error > = constraints. collect ( ) ;
1461
1474
assert_eq ! (
@@ -1478,7 +1491,7 @@ mod tests {
1478
1491
pks[ 4 ] , pks[ 3 ] , pks[ 2 ] , pks[ 1 ] , pks[ 0 ] ,
1479
1492
) ) ;
1480
1493
let vfyfn = vfyfn_. clone ( ) ; // sigh rust 1.29...
1481
- let constraints = from_stack ( Box :: new ( vfyfn) , fixed_hash , stack, & elem) ;
1494
+ let constraints = from_stack ( Box :: new ( vfyfn) , txtmpl_hash , stack, & elem) ;
1482
1495
1483
1496
let thresh_satisfied: Result < Vec < SatisfiedConstraint > , Error > = constraints. collect ( ) ;
1484
1497
assert_eq ! (
@@ -1508,7 +1521,7 @@ mod tests {
1508
1521
pks[ 4 ] , pks[ 3 ] , pks[ 2 ] , pks[ 1 ] , pks[ 0 ] ,
1509
1522
) ) ;
1510
1523
let vfyfn = vfyfn_. clone ( ) ; // sigh rust 1.29...
1511
- let constraints = from_stack ( Box :: new ( vfyfn) , fixed_hash , stack, & elem) ;
1524
+ let constraints = from_stack ( Box :: new ( vfyfn) , txtmpl_hash , stack, & elem) ;
1512
1525
1513
1526
let multi_satisfied: Result < Vec < SatisfiedConstraint > , Error > = constraints. collect ( ) ;
1514
1527
assert_eq ! (
@@ -1538,7 +1551,7 @@ mod tests {
1538
1551
pks[ 4 ] , pks[ 3 ] , pks[ 2 ] , pks[ 1 ] , pks[ 0 ] ,
1539
1552
) ) ;
1540
1553
let vfyfn = vfyfn_. clone ( ) ; // sigh rust 1.29...
1541
- let constraints = from_stack ( Box :: new ( vfyfn) , fixed_hash , stack, & elem) ;
1554
+ let constraints = from_stack ( Box :: new ( vfyfn) , txtmpl_hash , stack, & elem) ;
1542
1555
1543
1556
let multi_error: Result < Vec < SatisfiedConstraint > , Error > = constraints. collect ( ) ;
1544
1557
assert ! ( multi_error. is_err( ) ) ;
0 commit comments