@@ -171,9 +171,8 @@ pub fn source_type(jet: Elements) -> Vec<AliasedType> {
171
171
vec ! [ U64 . into( ) , U64 . into( ) ]
172
172
}
173
173
Elements :: Eq256 => vec ! [ U256 . into( ) , U256 . into( ) ] ,
174
- // XXX: nonstandard tuples
175
- Elements :: Maj1 | Elements :: XorXor1 | Elements :: Ch1 => vec ! [ U1 . into( ) , tuple( [ U1 , U1 ] ) ] ,
176
- Elements :: Maj8 | Elements :: XorXor8 | Elements :: Ch8 => vec ! [ U8 . into( ) , tuple( [ U8 , U8 ] ) ] ,
174
+ Elements :: Maj1 | Elements :: XorXor1 | Elements :: Ch1 => vec ! [ U1 . into( ) , U1 . into( ) , U1 . into( ) ] ,
175
+ Elements :: Maj8 | Elements :: XorXor8 | Elements :: Ch8 => vec ! [ U8 . into( ) , U8 . into( ) , U8 . into( ) ] ,
177
176
Elements :: Maj16 | Elements :: XorXor16 | Elements :: Ch16 => {
178
177
vec ! [ U16 . into( ) , tuple( [ U16 , U16 ] ) ]
179
178
}
@@ -219,11 +218,18 @@ pub fn source_type(jet: Elements) -> Vec<AliasedType> {
219
218
Elements :: FullRightShift64_8 => vec ! [ U8 . into( ) , U64 . into( ) ] ,
220
219
Elements :: FullRightShift64_16 => vec ! [ U16 . into( ) , U64 . into( ) ] ,
221
220
Elements :: FullRightShift64_32 => vec ! [ U32 . into( ) , U64 . into( ) ] ,
222
- // XXX: nonstandard tuples
223
- Elements :: LeftShiftWith8 | Elements :: RightShiftWith8 => vec ! [ U1 . into( ) , tuple( [ U4 , U8 ] ) ] ,
224
- Elements :: LeftShiftWith16 | Elements :: RightShiftWith16 => vec ! [ U1 . into( ) , tuple( [ U4 , U16 ] ) ] ,
225
- Elements :: LeftShiftWith32 | Elements :: RightShiftWith32 => vec ! [ U1 . into( ) , tuple( [ U8 , U32 ] ) ] ,
226
- Elements :: LeftShiftWith64 | Elements :: RightShiftWith64 => vec ! [ U1 . into( ) , tuple( [ U8 , U64 ] ) ] ,
221
+ Elements :: LeftShiftWith8 | Elements :: RightShiftWith8 => {
222
+ vec ! [ U1 . into( ) , U4 . into( ) , U8 . into( ) ]
223
+ }
224
+ Elements :: LeftShiftWith16 | Elements :: RightShiftWith16 => {
225
+ vec ! [ U1 . into( ) , U4 . into( ) , U16 . into( ) ]
226
+ }
227
+ Elements :: LeftShiftWith32 | Elements :: RightShiftWith32 => {
228
+ vec ! [ U1 . into( ) , U8 . into( ) , U32 . into( ) ]
229
+ }
230
+ Elements :: LeftShiftWith64 | Elements :: RightShiftWith64 => {
231
+ vec ! [ U1 . into( ) , U8 . into( ) , U64 . into( ) ]
232
+ }
227
233
Elements :: LeftShift8
228
234
| Elements :: RightShift8
229
235
| Elements :: LeftRotate8
@@ -308,10 +314,10 @@ pub fn source_type(jet: Elements) -> Vec<AliasedType> {
308
314
| Elements :: Divide64
309
315
| Elements :: Modulo64
310
316
| Elements :: Divides64 => vec ! [ U64 . into( ) , U64 . into( ) ] ,
311
- Elements :: FullAdd8 | Elements :: FullSubtract8 => vec ! [ bool ( ) , tuple ( [ U8 , U8 ] ) ] ,
312
- Elements :: FullAdd16 | Elements :: FullSubtract16 => vec ! [ bool ( ) , tuple ( [ U16 , U16 ] ) ] ,
313
- Elements :: FullAdd32 | Elements :: FullSubtract32 => vec ! [ bool ( ) , tuple ( [ U32 , U32 ] ) ] ,
314
- Elements :: FullAdd64 | Elements :: FullSubtract64 => vec ! [ bool ( ) , tuple ( [ U64 , U64 ] ) ] ,
317
+ Elements :: FullAdd8 | Elements :: FullSubtract8 => vec ! [ bool ( ) , U8 . into ( ) , U8 . into ( ) ] ,
318
+ Elements :: FullAdd16 | Elements :: FullSubtract16 => vec ! [ bool ( ) , U16 . into ( ) , U16 . into ( ) ] ,
319
+ Elements :: FullAdd32 | Elements :: FullSubtract32 => vec ! [ bool ( ) , U32 . into ( ) , U32 . into ( ) ] ,
320
+ Elements :: FullAdd64 | Elements :: FullSubtract64 => vec ! [ bool ( ) , U64 . into ( ) , U64 . into ( ) ] ,
315
321
Elements :: FullIncrement8 | Elements :: FullDecrement8 => vec ! [ bool ( ) , U8 . into( ) ] ,
316
322
Elements :: FullIncrement16 | Elements :: FullDecrement16 => vec ! [ bool ( ) , U16 . into( ) ] ,
317
323
Elements :: FullIncrement32 | Elements :: FullDecrement32 => vec ! [ bool ( ) , U32 . into( ) ] ,
@@ -320,15 +326,15 @@ pub fn source_type(jet: Elements) -> Vec<AliasedType> {
320
326
Elements :: FullMultiply16 => vec ! [ tuple( [ U16 , U16 ] ) , tuple( [ U16 , U16 ] ) ] ,
321
327
Elements :: FullMultiply32 => vec ! [ tuple( [ U32 , U32 ] ) , tuple( [ U32 , U32 ] ) ] ,
322
328
Elements :: FullMultiply64 => vec ! [ tuple( [ U64 , U64 ] ) , tuple( [ U64 , U64 ] ) ] ,
323
- Elements :: Median8 => vec ! [ U8 . into( ) , tuple ( [ U8 , U8 ] ) ] ,
324
- Elements :: Median16 => vec ! [ U16 . into( ) , tuple ( [ U16 , U16 ] ) ] ,
325
- Elements :: Median32 => vec ! [ U32 . into( ) , tuple ( [ U32 , U32 ] ) ] ,
326
- Elements :: Median64 => vec ! [ U64 . into( ) , tuple ( [ U64 , U64 ] ) ] ,
329
+ Elements :: Median8 => vec ! [ U8 . into( ) , U8 . into ( ) , U8 . into ( ) ] ,
330
+ Elements :: Median16 => vec ! [ U16 . into( ) , U16 . into ( ) , U16 . into ( ) ] ,
331
+ Elements :: Median32 => vec ! [ U32 . into( ) , U32 . into ( ) , U32 . into ( ) ] ,
332
+ Elements :: Median64 => vec ! [ U64 . into( ) , U64 . into ( ) , U64 . into ( ) ] ,
327
333
/*
328
334
* Hash functions
329
335
*/
330
336
Elements :: Sha256Iv | Elements :: Sha256Ctx8Init => vec ! [ ] ,
331
- Elements :: Sha256Block => vec ! [ U256 . into( ) , tuple ( [ U256 , U256 ] ) ] ,
337
+ Elements :: Sha256Block => vec ! [ U256 . into( ) , U256 . into ( ) , U256 . into ( ) ] ,
332
338
Elements :: Sha256Ctx8Add1 => vec ! [ Ctx8 . into( ) , U8 . into( ) ] ,
333
339
Elements :: Sha256Ctx8Add2 => vec ! [ Ctx8 . into( ) , U16 . into( ) ] ,
334
340
Elements :: Sha256Ctx8Add4 => vec ! [ Ctx8 . into( ) , U32 . into( ) ] ,
@@ -345,11 +351,14 @@ pub fn source_type(jet: Elements) -> Vec<AliasedType> {
345
351
* Elliptic curve functions
346
352
*/
347
353
// XXX: Nonstandard tuple
348
- Elements :: PointVerify1 => vec ! [ tuple( [ Scalar , Point , Scalar ] ) , Point . into( ) ] ,
354
+ Elements :: PointVerify1 => {
355
+ vec ! [ tuple( [ tuple( [ Scalar , Point ] ) , Scalar . into( ) ] ) , Point . into( ) ]
356
+ }
349
357
Elements :: Decompress => vec ! [ Point . into( ) ] ,
350
358
// XXX: Nonstandard tuple
351
- Elements :: LinearVerify1 => vec ! [ tuple( [ Scalar , Ge , Scalar ] ) , Ge . into( ) ] ,
352
- Elements :: LinearCombination1 => vec ! [ Scalar . into( ) , Gej . into( ) , Scalar . into( ) ] ,
359
+ Elements :: LinearVerify1 => vec ! [ tuple( [ tuple( [ Scalar , Ge ] ) , Scalar . into( ) ] ) , Ge . into( ) ] ,
360
+ // XXX: Nonstandard tuple
361
+ Elements :: LinearCombination1 => vec ! [ tuple( [ Scalar , Gej ] ) , Scalar . into( ) ] ,
353
362
Elements :: Scale => vec ! [ Scalar . into( ) , Gej . into( ) ] ,
354
363
Elements :: Generate => vec ! [ Scalar . into( ) ] ,
355
364
Elements :: GejInfinity => vec ! [ ] ,
@@ -385,8 +394,10 @@ pub fn source_type(jet: Elements) -> Vec<AliasedType> {
385
394
/*
386
395
* Digital signatures
387
396
*/
388
- Elements :: CheckSigVerify => vec ! [ Pubkey . into( ) , Message64 . into( ) , Signature . into( ) ] ,
389
- Elements :: Bip0340Verify => vec ! [ Pubkey . into( ) , Message . into( ) , Signature . into( ) ] ,
397
+ // XXX: Nonstandard tuple
398
+ Elements :: CheckSigVerify => vec ! [ tuple( [ Pubkey , Message64 ] ) , Signature . into( ) ] ,
399
+ // XXX: Nonstandard tuple
400
+ Elements :: Bip0340Verify => vec ! [ tuple( [ Pubkey , Message ] ) , Signature . into( ) ] ,
390
401
/*
391
402
* Bitcoin (without primitives)
392
403
*/
@@ -422,10 +433,9 @@ pub fn source_type(jet: Elements) -> Vec<AliasedType> {
422
433
| Elements :: InputScriptsHash
423
434
| Elements :: TapleafHash
424
435
| Elements :: TappathHash => vec ! [ ] ,
425
- // XXX: Nonstandard tuples
426
- Elements :: OutpointHash => vec ! [ Ctx8 . into( ) , tuple( [ option( U256 ) , Outpoint . into( ) ] ) ] ,
436
+ Elements :: OutpointHash => vec ! [ Ctx8 . into( ) , option( U256 ) , Outpoint . into( ) ] ,
427
437
Elements :: AssetAmountHash => {
428
- vec ! [ Ctx8 . into( ) , tuple ( [ Asset1 , Amount1 ] ) ]
438
+ vec ! [ Ctx8 . into( ) , Asset1 . into ( ) , Amount1 . into ( ) ]
429
439
}
430
440
Elements :: NonceHash => vec ! [ Ctx8 . into( ) , option( Nonce ) ] ,
431
441
Elements :: AnnexHash => vec ! [ Ctx8 . into( ) , option( U256 ) ] ,
0 commit comments