@inco/lightning 0.8.0-devnet-22 → 0.8.0-devnet-24

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.
Files changed (35) hide show
  1. package/package.json +1 -1
  2. package/src/Lib.alphanet.sol +5 -5
  3. package/src/Lib.demonet.sol +5 -5
  4. package/src/Lib.devnet.sol +5 -5
  5. package/src/Lib.sol +5 -5
  6. package/src/Lib.template.sol +5 -5
  7. package/src/Lib.testnet.sol +5 -5
  8. package/src/libs/incoLightning_alphanet_v0_297966649.sol +5 -5
  9. package/src/libs/incoLightning_alphanet_v1_725458969.sol +5 -5
  10. package/src/libs/incoLightning_alphanet_v2_976644394.sol +5 -5
  11. package/src/libs/incoLightning_demonet_v0_863421733.sol +5 -5
  12. package/src/libs/incoLightning_demonet_v2_467437523.sol +5 -5
  13. package/src/libs/incoLightning_devnet_v0_340846814.sol +5 -5
  14. package/src/libs/incoLightning_devnet_v1_904635675.sol +5 -5
  15. package/src/libs/incoLightning_devnet_v2_295237520.sol +5 -5
  16. package/src/libs/incoLightning_devnet_v3_976859633.sol +5 -5
  17. package/src/libs/incoLightning_devnet_v4_409204766.sol +5 -5
  18. package/src/libs/incoLightning_devnet_v5_203964628.sol +5 -5
  19. package/src/libs/incoLightning_devnet_v6_281949651.sol +5 -5
  20. package/src/libs/incoLightning_devnet_v7_24560427.sol +5 -5
  21. package/src/libs/incoLightning_devnet_v8_985328058.sol +5 -5
  22. package/src/libs/incoLightning_devnet_v9_269218568.sol +5 -5
  23. package/src/libs/incoLightning_testnet_v0_183408998.sol +5 -5
  24. package/src/libs/incoLightning_testnet_v2_889158349.sol +5 -5
  25. package/src/lightning-parts/EList.sol +9 -15
  26. package/src/lightning-parts/EncryptedOperations.sol +22 -12
  27. package/src/lightning-parts/TEELifecycle.sol +1 -1
  28. package/src/lightning-parts/interfaces/IEList.sol +1 -1
  29. package/src/lightning-parts/primitives/EListHandleMetadata.sol +9 -2
  30. package/src/lightning-parts/primitives/HandleMetadata.sol +10 -3
  31. package/src/lightning-parts/test/Elist.t.sol +12 -12
  32. package/src/lightning-parts/test/HandleMetadata.t.sol +7 -7
  33. package/src/test/EListTester.sol +3 -2
  34. package/src/test/TEELifecycle/TEELifecycleMockTest.t.sol +3 -0
  35. package/src/test/TestLib.t.sol +49 -44
@@ -13,6 +13,7 @@ import {
13
13
  UnsupportedListType,
14
14
  UnsupportedType
15
15
  } from "../Types.sol";
16
+ import {EncryptedOperations} from "../lightning-parts/EncryptedOperations.sol";
16
17
  import {DecryptionAttestation, ElementAttestationWithProof} from "../lightning-parts/DecryptionAttester.types.sol";
17
18
  import {AllowanceProof, AllowanceVoucher} from "../lightning-parts/AccessControl/AdvancedAccessControl.sol";
18
19
 
@@ -36,8 +37,8 @@ contract TestLib is IncoTest {
36
37
 
37
38
  // ============ ELIST FEE HELPERS ============
38
39
 
39
- function _listRange(uint16 start, uint16 end) internal returns (elist) {
40
- return inco.listRange{value: inco.getEListFee(end - start, ETypes.Uint256)}(start, end);
40
+ function _listRange(uint16 start, uint16 end, ETypes listType) internal returns (elist) {
41
+ return inco.listRange{value: inco.getEListFee(end - start, listType)}(start, end, listType);
41
42
  }
42
43
 
43
44
  function _newEList(bytes32[] memory handles, ETypes listType) internal returns (elist) {
@@ -759,15 +760,19 @@ contract TestLib is IncoTest {
759
760
  ebool.wrap(inco.eCast(ebool.unwrap(a), ETypes.Bool));
760
761
  }
761
762
 
762
- function testCastEuint256ToEuint256() public {
763
+ function testCastEuint256ToEuint256Revert() public {
763
764
  euint256 a = e.asEuint256(10);
764
765
  processAllOperations();
766
+ vm.expectRevert(abi.encodeWithSelector(EncryptedOperations.SameTypeCast.selector, ETypes.Uint256));
765
767
  euint256.wrap(inco.eCast(euint256.unwrap(a), ETypes.Uint256));
766
768
  }
767
769
 
768
- function testCastEaddressToEaddress() public {
770
+ function testCastEaddressToEaddressRevert() public {
769
771
  eaddress a = e.asEaddress(alice);
770
772
  processAllOperations();
773
+ vm.expectRevert(
774
+ abi.encodeWithSelector(EncryptedOperations.SameTypeCast.selector, ETypes.AddressOrUint160OrBytes20)
775
+ );
771
776
  eaddress.wrap(inco.eCast(eaddress.unwrap(a), ETypes.AddressOrUint160OrBytes20));
772
777
  }
773
778
 
@@ -924,7 +929,7 @@ contract TestLib is IncoTest {
924
929
  // Note: Most EList functions in Lib.sol are thin wrappers around inco.* calls.
925
930
 
926
931
  function testEList_ListTypeOf_Uint256() public {
927
- elist list = _listRange(0, 5);
932
+ elist list = _listRange(0, 5, ETypes.Uint256);
928
933
 
929
934
  // Test listTypeOf - this is a pure function that extracts type from handle
930
935
  ETypes listType = e.listTypeOf(list);
@@ -940,7 +945,7 @@ contract TestLib is IncoTest {
940
945
  }
941
946
 
942
947
  function testEList_Length_NonEmpty() public {
943
- elist list = _listRange(0, 5);
948
+ elist list = _listRange(0, 5, ETypes.Uint256);
944
949
 
945
950
  // Test length function
946
951
  uint16 len = e.length(list);
@@ -948,7 +953,7 @@ contract TestLib is IncoTest {
948
953
  }
949
954
 
950
955
  function testEList_Length_AfterAppend() public {
951
- elist list = _listRange(0, 3);
956
+ elist list = _listRange(0, 3, ETypes.Uint256);
952
957
 
953
958
  // Get a handle to append
954
959
  bytes32 valueHandle = inco.listGet(list, 0);
@@ -959,8 +964,8 @@ contract TestLib is IncoTest {
959
964
  }
960
965
 
961
966
  function testEList_Length_AfterConcat() public {
962
- elist list1 = _listRange(0, 3);
963
- elist list2 = _listRange(10, 15);
967
+ elist list1 = _listRange(0, 3, ETypes.Uint256);
968
+ elist list2 = _listRange(10, 15, ETypes.Uint256);
964
969
 
965
970
  elist combined = _listConcat(list1, list2);
966
971
 
@@ -969,7 +974,7 @@ contract TestLib is IncoTest {
969
974
 
970
975
  function testEList_Length_AfterReverse() public {
971
976
  // Create a list
972
- elist list = _listRange(0, 7);
977
+ elist list = _listRange(0, 7, ETypes.Uint256);
973
978
 
974
979
  // Reverse using inco directly
975
980
  elist reversed = _listReverse(list);
@@ -1006,7 +1011,7 @@ contract TestLib is IncoTest {
1006
1011
  function testEListWrapper_NewEListFromHandles() public {
1007
1012
  _setupEListHelper();
1008
1013
 
1009
- elist rangeList = _listRange(0, 3);
1014
+ elist rangeList = _listRange(0, 3, ETypes.Uint256);
1010
1015
  bytes32[] memory handles = new bytes32[](3);
1011
1016
  handles[0] = inco.listGet(rangeList, 0);
1012
1017
  handles[1] = inco.listGet(rangeList, 1);
@@ -1043,7 +1048,7 @@ contract TestLib is IncoTest {
1043
1048
  function testEListWrapper_AppendEuint256() public {
1044
1049
  _setupEListHelper();
1045
1050
  // Create a list and get a handle
1046
- elist list = _listRange(0, 3);
1051
+ elist list = _listRange(0, 3, ETypes.Uint256);
1047
1052
  bytes32 valueHandle = inco.listGet(list, 0);
1048
1053
  euint256 value = euint256.wrap(valueHandle);
1049
1054
  // Grant permissions
@@ -1056,7 +1061,7 @@ contract TestLib is IncoTest {
1056
1061
  function testEListWrapper_AppendEbool() public {
1057
1062
  _setupEListHelper();
1058
1063
  // Create a list and get a handle
1059
- elist list = _listRange(0, 3);
1064
+ elist list = _listRange(0, 3, ETypes.Uint256);
1060
1065
  bytes32 valueHandle = inco.listGet(list, 0);
1061
1066
  ebool value = ebool.wrap(valueHandle);
1062
1067
  // Grant permissions
@@ -1068,7 +1073,7 @@ contract TestLib is IncoTest {
1068
1073
 
1069
1074
  function testEListWrapper_SetHiddenIndexEuint256() public {
1070
1075
  _setupEListHelper();
1071
- elist list = _listRange(0, 3);
1076
+ elist list = _listRange(0, 3, ETypes.Uint256);
1072
1077
  _allowHelperForList(list);
1073
1078
  euint256 idx = euint256.wrap(inco.listGet(list, 0)); // Use element as index
1074
1079
  euint256 value = euint256.wrap(inco.listGet(list, 1));
@@ -1079,7 +1084,7 @@ contract TestLib is IncoTest {
1079
1084
 
1080
1085
  function testEListWrapper_SetHiddenIndexEbool() public {
1081
1086
  _setupEListHelper();
1082
- elist list = _listRange(0, 3);
1087
+ elist list = _listRange(0, 3, ETypes.Uint256);
1083
1088
  _allowHelperForList(list);
1084
1089
  euint256 idx = euint256.wrap(inco.listGet(list, 0));
1085
1090
  ebool value = ebool.wrap(inco.listGet(list, 1));
@@ -1090,7 +1095,7 @@ contract TestLib is IncoTest {
1090
1095
 
1091
1096
  function testEListWrapper_SetPlaintextIndexEuint256() public {
1092
1097
  _setupEListHelper();
1093
- elist list = _listRange(0, 3);
1098
+ elist list = _listRange(0, 3, ETypes.Uint256);
1094
1099
  _allowHelperForList(list);
1095
1100
  euint256 value = euint256.wrap(inco.listGet(list, 1));
1096
1101
 
@@ -1100,7 +1105,7 @@ contract TestLib is IncoTest {
1100
1105
 
1101
1106
  function testEListWrapper_SetPlaintextIndexEbool() public {
1102
1107
  _setupEListHelper();
1103
- elist list = _listRange(0, 3);
1108
+ elist list = _listRange(0, 3, ETypes.Uint256);
1104
1109
  _allowHelperForList(list);
1105
1110
  ebool value = ebool.wrap(inco.listGet(list, 1));
1106
1111
 
@@ -1110,7 +1115,7 @@ contract TestLib is IncoTest {
1110
1115
 
1111
1116
  function testEListWrapper_GetOrEuint256() public {
1112
1117
  _setupEListHelper();
1113
- elist list = _listRange(0, 5);
1118
+ elist list = _listRange(0, 5, ETypes.Uint256);
1114
1119
  _allowHelperForList(list);
1115
1120
  euint256 idx = euint256.wrap(inco.listGet(list, 1));
1116
1121
  euint256 defaultValue = euint256.wrap(inco.listGet(list, 0));
@@ -1121,7 +1126,7 @@ contract TestLib is IncoTest {
1121
1126
 
1122
1127
  function testEListWrapper_GetOrEbool() public {
1123
1128
  _setupEListHelper();
1124
- elist list = _listRange(0, 5);
1129
+ elist list = _listRange(0, 5, ETypes.Uint256);
1125
1130
  _allowHelperForList(list);
1126
1131
  euint256 idx = euint256.wrap(inco.listGet(list, 1));
1127
1132
  ebool defaultValue = ebool.wrap(inco.listGet(list, 0));
@@ -1132,7 +1137,7 @@ contract TestLib is IncoTest {
1132
1137
 
1133
1138
  function testEListWrapper_GetEuint256() public {
1134
1139
  _setupEListHelper();
1135
- elist list = _listRange(0, 5);
1140
+ elist list = _listRange(0, 5, ETypes.Uint256);
1136
1141
  _allowHelperForList(list);
1137
1142
 
1138
1143
  euint256 result = elistHelper.callGetEuint256(list, 2);
@@ -1141,7 +1146,7 @@ contract TestLib is IncoTest {
1141
1146
 
1142
1147
  function testEListWrapper_GetEbool() public {
1143
1148
  _setupEListHelper();
1144
- elist list = _listRange(0, 5);
1149
+ elist list = _listRange(0, 5, ETypes.Uint256);
1145
1150
  _allowHelperForList(list);
1146
1151
 
1147
1152
  ebool result = elistHelper.callGetEbool(list, 2);
@@ -1150,7 +1155,7 @@ contract TestLib is IncoTest {
1150
1155
 
1151
1156
  function testEListWrapper_InsertHiddenIndexEuint256() public {
1152
1157
  _setupEListHelper();
1153
- elist list = _listRange(0, 3);
1158
+ elist list = _listRange(0, 3, ETypes.Uint256);
1154
1159
  _allowHelperForList(list);
1155
1160
  euint256 idx = euint256.wrap(inco.listGet(list, 0));
1156
1161
  euint256 value = euint256.wrap(inco.listGet(list, 1));
@@ -1161,7 +1166,7 @@ contract TestLib is IncoTest {
1161
1166
 
1162
1167
  function testEListWrapper_InsertHiddenIndexEbool() public {
1163
1168
  _setupEListHelper();
1164
- elist list = _listRange(0, 3);
1169
+ elist list = _listRange(0, 3, ETypes.Uint256);
1165
1170
  _allowHelperForList(list);
1166
1171
  euint256 idx = euint256.wrap(inco.listGet(list, 0));
1167
1172
  ebool value = ebool.wrap(inco.listGet(list, 1));
@@ -1172,7 +1177,7 @@ contract TestLib is IncoTest {
1172
1177
 
1173
1178
  function testEListWrapper_InsertPlaintextIndexEuint256() public {
1174
1179
  _setupEListHelper();
1175
- elist list = _listRange(0, 3);
1180
+ elist list = _listRange(0, 3, ETypes.Uint256);
1176
1181
  _allowHelperForList(list);
1177
1182
  euint256 value = euint256.wrap(inco.listGet(list, 1));
1178
1183
 
@@ -1182,7 +1187,7 @@ contract TestLib is IncoTest {
1182
1187
 
1183
1188
  function testEListWrapper_InsertPlaintextIndexEbool() public {
1184
1189
  _setupEListHelper();
1185
- elist list = _listRange(0, 3);
1190
+ elist list = _listRange(0, 3, ETypes.Uint256);
1186
1191
  _allowHelperForList(list);
1187
1192
  ebool value = ebool.wrap(inco.listGet(list, 1));
1188
1193
 
@@ -1192,8 +1197,8 @@ contract TestLib is IncoTest {
1192
1197
 
1193
1198
  function testEListWrapper_Concat() public {
1194
1199
  _setupEListHelper();
1195
- elist list1 = _listRange(0, 3);
1196
- elist list2 = _listRange(10, 13);
1200
+ elist list1 = _listRange(0, 3, ETypes.Uint256);
1201
+ elist list2 = _listRange(10, 13, ETypes.Uint256);
1197
1202
  _allowHelperForList(list1);
1198
1203
  _allowHelperForList(list2);
1199
1204
 
@@ -1203,7 +1208,7 @@ contract TestLib is IncoTest {
1203
1208
 
1204
1209
  function testEListWrapper_Slice() public {
1205
1210
  _setupEListHelper();
1206
- elist list = _listRange(0, 10);
1211
+ elist list = _listRange(0, 10, ETypes.Uint256);
1207
1212
  _allowHelperForList(list);
1208
1213
 
1209
1214
  elist sliced = elistHelper.callSlice(list, 2, 7);
@@ -1212,7 +1217,7 @@ contract TestLib is IncoTest {
1212
1217
 
1213
1218
  function testEListWrapper_SliceLenEuint256() public {
1214
1219
  _setupEListHelper();
1215
- elist list = _listRange(0, 10);
1220
+ elist list = _listRange(0, 10, ETypes.Uint256);
1216
1221
  _allowHelperForList(list);
1217
1222
  euint256 start = euint256.wrap(inco.listGet(list, 1));
1218
1223
  euint256 defaultValue = euint256.wrap(inco.listGet(list, 0));
@@ -1223,7 +1228,7 @@ contract TestLib is IncoTest {
1223
1228
 
1224
1229
  function testEListWrapper_SliceLenEbool() public {
1225
1230
  _setupEListHelper();
1226
- elist list = _listRange(0, 10);
1231
+ elist list = _listRange(0, 10, ETypes.Uint256);
1227
1232
  _allowHelperForList(list);
1228
1233
  euint256 start = euint256.wrap(inco.listGet(list, 1));
1229
1234
  ebool defaultValue = ebool.wrap(inco.listGet(list, 0));
@@ -1240,7 +1245,7 @@ contract TestLib is IncoTest {
1240
1245
 
1241
1246
  function testEListWrapper_Reverse() public {
1242
1247
  _setupEListHelper();
1243
- elist list = _listRange(0, 5);
1248
+ elist list = _listRange(0, 5, ETypes.Uint256);
1244
1249
  _allowHelperForList(list);
1245
1250
 
1246
1251
  elist reversed = elistHelper.callReverse(list);
@@ -1249,7 +1254,7 @@ contract TestLib is IncoTest {
1249
1254
 
1250
1255
  function testEListWrapper_Shuffle() public {
1251
1256
  _setupEListHelper();
1252
- elist list = _listRange(0, 5);
1257
+ elist list = _listRange(0, 5, ETypes.Uint256);
1253
1258
  _allowHelperForList(list);
1254
1259
 
1255
1260
  elist shuffled = elistHelper.callShuffle(list);
@@ -1264,13 +1269,13 @@ contract TestLib is IncoTest {
1264
1269
 
1265
1270
  function testEListWrapper_Length() public {
1266
1271
  _setupEListHelper();
1267
- elist list = _listRange(0, 7);
1272
+ elist list = _listRange(0, 7, ETypes.Uint256);
1268
1273
  assertEq(elistHelper.callLength(list), 7);
1269
1274
  }
1270
1275
 
1271
1276
  function testEListWrapper_ListTypeOf() public {
1272
1277
  _setupEListHelper();
1273
- elist list = _listRange(0, 5);
1278
+ elist list = _listRange(0, 5, ETypes.Uint256);
1274
1279
  assertEq(uint8(elistHelper.callListTypeOf(list)), uint8(ETypes.Uint256));
1275
1280
  }
1276
1281
 
@@ -1278,7 +1283,7 @@ contract TestLib is IncoTest {
1278
1283
 
1279
1284
  function testEListWrapper_SetPlaintextIndexEuint256_RevertsOnOutOfRange() public {
1280
1285
  _setupEListHelper();
1281
- elist list = _listRange(0, 3); // length 3, valid indices 0-2
1286
+ elist list = _listRange(0, 3, ETypes.Uint256); // length 3, valid indices 0-2
1282
1287
  _allowHelperForList(list);
1283
1288
  euint256 value = euint256.wrap(inco.listGet(list, 0));
1284
1289
 
@@ -1289,7 +1294,7 @@ contract TestLib is IncoTest {
1289
1294
 
1290
1295
  function testEListWrapper_SetPlaintextIndexEbool_RevertsOnOutOfRange() public {
1291
1296
  _setupEListHelper();
1292
- elist list = _listRange(0, 3);
1297
+ elist list = _listRange(0, 3, ETypes.Uint256);
1293
1298
  _allowHelperForList(list);
1294
1299
  ebool value = ebool.wrap(inco.listGet(list, 0));
1295
1300
 
@@ -1299,7 +1304,7 @@ contract TestLib is IncoTest {
1299
1304
 
1300
1305
  function testEListWrapper_InsertPlaintextIndexEbool_RevertsOnOutOfRange() public {
1301
1306
  _setupEListHelper();
1302
- elist list = _listRange(0, 3);
1307
+ elist list = _listRange(0, 3, ETypes.Uint256);
1303
1308
  _allowHelperForList(list);
1304
1309
  ebool value = ebool.wrap(inco.listGet(list, 0));
1305
1310
 
@@ -1309,7 +1314,7 @@ contract TestLib is IncoTest {
1309
1314
 
1310
1315
  function testEListWrapper_InsertPlaintextIndexEuint256_RevertsOnOutOfRange() public {
1311
1316
  _setupEListHelper();
1312
- elist list = _listRange(0, 3);
1317
+ elist list = _listRange(0, 3, ETypes.Uint256);
1313
1318
  _allowHelperForList(list);
1314
1319
  euint256 value = euint256.wrap(inco.listGet(list, 0));
1315
1320
 
@@ -1319,7 +1324,7 @@ contract TestLib is IncoTest {
1319
1324
 
1320
1325
  function testEListWrapper_Slice_RevertsOnInvalidRange() public {
1321
1326
  _setupEListHelper();
1322
- elist list = _listRange(0, 10);
1327
+ elist list = _listRange(0, 10, ETypes.Uint256);
1323
1328
  _allowHelperForList(list);
1324
1329
 
1325
1330
  // end < start is invalid
@@ -1329,7 +1334,7 @@ contract TestLib is IncoTest {
1329
1334
 
1330
1335
  function testEListWrapper_Slice_RevertsOnEndOutOfRange() public {
1331
1336
  _setupEListHelper();
1332
- elist list = _listRange(0, 5); // length 5
1337
+ elist list = _listRange(0, 5, ETypes.Uint256); // length 5
1333
1338
  _allowHelperForList(list);
1334
1339
 
1335
1340
  // end > length is out of range
@@ -1339,7 +1344,7 @@ contract TestLib is IncoTest {
1339
1344
 
1340
1345
  function testEListWrapper_Slice_RevertsOnStartOutOfRange() public {
1341
1346
  _setupEListHelper();
1342
- elist list = _listRange(0, 5); // length 5
1347
+ elist list = _listRange(0, 5, ETypes.Uint256); // length 5
1343
1348
  _allowHelperForList(list);
1344
1349
 
1345
1350
  // start >= length is out of range
@@ -1400,7 +1405,7 @@ contract TestLib is IncoTest {
1400
1405
  function testEListWrapper_VerifyEListDecryption() public {
1401
1406
  _setupEListHelper();
1402
1407
 
1403
- elist list = _listRange(0, 3);
1408
+ elist list = _listRange(0, 3, ETypes.Uint256);
1404
1409
 
1405
1410
  // Create empty proof elements (for basic verification test)
1406
1411
  ElementAttestationWithProof[] memory proofElements = new ElementAttestationWithProof[](0);
@@ -1576,7 +1581,7 @@ contract LibEListHelper {
1576
1581
  }
1577
1582
 
1578
1583
  function callRange(uint16 start, uint16 end) external returns (elist) {
1579
- storedList = e.range(start, end);
1584
+ storedList = e.range(start, end, ETypes.Uint256);
1580
1585
  return storedList;
1581
1586
  }
1582
1587
 
@@ -1586,7 +1591,7 @@ contract LibEListHelper {
1586
1591
  }
1587
1592
 
1588
1593
  function callShuffledRange(uint16 start, uint16 end) external returns (elist) {
1589
- storedList = e.shuffledRange(start, end);
1594
+ storedList = e.shuffledRange(start, end, ETypes.Uint256);
1590
1595
  return storedList;
1591
1596
  }
1592
1597