@@ -984,6 +984,125 @@ export const fixtures: Fixture[] = [
984984 updatedAt : '' ,
985985 } ,
986986 } ,
987+ {
988+ fn : 'while_loop_basic.cash' ,
989+ artifact : {
990+ contractName : 'WhileLoopBasic' ,
991+ constructorInputs : [ ] ,
992+ abi : [ { name : 'spend' , inputs : [ ] } ] ,
993+ bytecode : 'OP_0 OP_DUP OP_3 OP_LESSTHAN OP_IF OP_BEGIN OP_DUP OP_1ADD OP_NIP OP_DUP OP_3 OP_GREATERTHANOREQUAL OP_UNTIL OP_ENDIF OP_3 OP_NUMEQUAL' ,
994+ debug : {
995+ bytecode : '0076539f6365768b777653a26668539c' ,
996+ sourceMap : '3:16:3:17;5:15:5:16;:19::20;:15:::1;:22:7:9:0;:8;6:16:6:17;:::21:1;:12::22;5:15:5:16:0;:19::20;:8:7:9:1;;:22;9:21:9:22:0;:8::24:1' ,
997+ logs : [ ] ,
998+ requires : [
999+ { ip : 16 , line : 9 } ,
1000+ ] ,
1001+ } ,
1002+ source : fs . readFileSync ( new URL ( '../valid-contract-files/while_loop_basic.cash' , import . meta. url ) , { encoding : 'utf-8' } ) ,
1003+ compiler : {
1004+ name : 'cashc' ,
1005+ version,
1006+ options : {
1007+ enforceFunctionParameterTypes : true ,
1008+ } ,
1009+ } ,
1010+ updatedAt : '' ,
1011+ } ,
1012+ } ,
1013+ {
1014+ fn : 'for_loop_basic.cash' ,
1015+ artifact : {
1016+ contractName : 'ForLoopBasic' ,
1017+ constructorInputs : [ ] ,
1018+ abi : [ { name : 'spend' , inputs : [ ] } ] ,
1019+ bytecode : 'OP_0 OP_0 OP_DUP OP_3 OP_LESSTHAN OP_IF OP_BEGIN OP_2DUP OP_ADD OP_ROT OP_DROP OP_SWAP OP_DUP OP_1ADD OP_NIP OP_DUP OP_3 OP_GREATERTHANOREQUAL OP_UNTIL OP_ENDIF OP_SWAP OP_3 OP_NUMEQUAL OP_NIP' ,
1020+ debug : {
1021+ bytecode : '000076539f63656e937b757c768b777653a266687c539c77' ,
1022+ sourceMap : '3:18:3:19;5:21:5:22;:24::25;:28::29;:24:::1;:42:7:9:0;:8;6:18:6:25;::::1;:12::26;;;5:35:5:36:0;:::40:1;:31;:24::25:0;:28::29;:8:7:9:1;;:42;9:16:9:19:0;:23::24;:8::26:1;2:4:10:5' ,
1023+ logs : [ ] ,
1024+ requires : [
1025+ { ip : 23 , line : 9 } ,
1026+ ] ,
1027+ } ,
1028+ source : fs . readFileSync ( new URL ( '../valid-contract-files/for_loop_basic.cash' , import . meta. url ) , { encoding : 'utf-8' } ) ,
1029+ compiler : {
1030+ name : 'cashc' ,
1031+ version,
1032+ options : {
1033+ enforceFunctionParameterTypes : true ,
1034+ } ,
1035+ } ,
1036+ updatedAt : '' ,
1037+ } ,
1038+ } ,
1039+ {
1040+ fn : 'for_while_nested.cash' ,
1041+ artifact : {
1042+ contractName : 'ForWhileNested' ,
1043+ constructorInputs : [ ] ,
1044+ abi : [ { name : 'spend' , inputs : [ ] } ] ,
1045+ bytecode : 'OP_0 OP_0 OP_DUP OP_2 OP_LESSTHAN OP_IF OP_BEGIN OP_0 OP_DUP OP_2 OP_LESSTHAN OP_IF OP_BEGIN OP_2 OP_PICK OP_2 OP_PICK OP_ADD OP_OVER OP_ADD OP_3 OP_ROLL OP_DROP OP_SWAP OP_TOALTSTACK OP_SWAP OP_FROMALTSTACK OP_DUP OP_1ADD OP_NIP OP_DUP OP_2 OP_GREATERTHANOREQUAL OP_UNTIL OP_ENDIF OP_OVER OP_1ADD OP_ROT OP_DROP OP_NIP OP_DUP OP_2 OP_GREATERTHANOREQUAL OP_UNTIL OP_ENDIF OP_SWAP OP_4 OP_NUMEQUAL OP_NIP' ,
1046+ debug : {
1047+ bytecode : '000076529f63650076529f636552795279937893537a757c6b7c6c768b777652a26668788b7b75777652a266687c549c77' ,
1048+ sourceMap : '3:18:3:19;5:21:5:22;:24::25;:28::29;:24:::1;:42:13:9:0;:8;6:20:6:21;8:19:8:20;:23::24;:19:::1;:26:12:13:0;:12;9:22:9:25;;:28::29;;:22:::1;:32::33:0;:22:::1;:16::34;;;;;;;10:20:10:21:0;:::25:1;:16::26;8:19:8:20:0;:23::24;:12:12:13:1;;:26;5:35:5:36:0;:::40:1;:31;;::13:9;:24:5:25:0;:28::29;:8:13:9:1;;:42;15:16:15:19:0;:23::24;:8::26:1;2:4:16:5' ,
1049+ logs : [
1050+ {
1051+ ip : 30 ,
1052+ line : 11 ,
1053+ data : [
1054+ 'sum:' ,
1055+ { stackIndex : 2 , type : 'int' , ip : 30 } ,
1056+ 'i:' ,
1057+ { stackIndex : 1 , type : 'int' , ip : 30 } ,
1058+ 'j:' ,
1059+ { stackIndex : 0 , type : 'int' , ip : 30 } ,
1060+ ] ,
1061+ } ,
1062+ ] ,
1063+ requires : [
1064+ { ip : 48 , line : 15 } ,
1065+ ] ,
1066+ } ,
1067+ source : fs . readFileSync ( new URL ( '../valid-contract-files/for_while_nested.cash' , import . meta. url ) , { encoding : 'utf-8' } ) ,
1068+ compiler : {
1069+ name : 'cashc' ,
1070+ version,
1071+ options : {
1072+ enforceFunctionParameterTypes : true ,
1073+ } ,
1074+ } ,
1075+ updatedAt : '' ,
1076+ } ,
1077+ } ,
1078+ {
1079+ fn : 'while_loop.cash' ,
1080+ artifact : {
1081+ contractName : 'Loopy' ,
1082+ constructorInputs : [ ] ,
1083+ abi : [ { name : 'doLoop' , inputs : [ ] } ] ,
1084+ bytecode : 'OP_0 OP_DUP OP_TXINPUTCOUNT OP_LESSTHAN OP_IF OP_BEGIN OP_DUP OP_1ADD OP_NIP OP_DUP OP_TXINPUTCOUNT OP_GREATERTHANOREQUAL OP_UNTIL OP_ENDIF OP_2 OP_GREATERTHAN' ,
1085+ debug : {
1086+ bytecode : '0076c39f6365768b7776c3a2666852a0' ,
1087+ sourceMap : '3:16:3:17;5:15:5:16;:19::35;:15:::1;:37:7:9:0;:8;6:16:6:17;:::21:1;:12::22;5:15:5:16:0;:19::35;:8:7:9:1;;:37;10:20:10:21:0;:8::23:1' ,
1088+ logs : [
1089+ { ip : 14 , line : 9 , data : [ { stackIndex : 0 , type : 'int' , ip : 14 } ] } ,
1090+ ] ,
1091+ requires : [
1092+ { ip : 16 , line : 10 } ,
1093+ ] ,
1094+ } ,
1095+ source : fs . readFileSync ( new URL ( '../valid-contract-files/while_loop.cash' , import . meta. url ) , { encoding : 'utf-8' } ) ,
1096+ compiler : {
1097+ name : 'cashc' ,
1098+ version,
1099+ options : {
1100+ enforceFunctionParameterTypes : true ,
1101+ } ,
1102+ } ,
1103+ updatedAt : '' ,
1104+ } ,
1105+ } ,
9871106 {
9881107 fn : 'complex_loop.cash' ,
9891108 artifact : {
0 commit comments