diff --git a/test/Rln.t.sol b/test/Rln.t.sol index ad64a53..d256ea1 100644 --- a/test/Rln.t.sol +++ b/test/Rln.t.sol @@ -219,100 +219,22 @@ contract RlnTest is Test { assertEq(rln.withdrawalBalance(to), 0); } - function test__kats__root() public { - uint256[] memory idCommitments = new uint256[](20); - idCommitments[0] = - 20_247_267_680_401_005_346_274_578_821_543_189_710_026_653_465_287_274_953_093_311_729_853_323_564_993; - idCommitments[1] = - 17_156_989_550_607_148_435_222_849_763_909_493_047_059_958_780_520_493_064_916_232_951_463_175_150_232; - idCommitments[2] = - 19_407_226_803_745_267_103_608_182_642_384_012_885_199_367_851_532_943_079_325_397_211_138_049_136_059; - idCommitments[3] = - 10_843_159_696_774_792_948_443_591_344_995_886_877_305_260_668_485_645_797_849_607_534_704_262_422_614; - idCommitments[4] = - 15_752_850_412_139_811_972_088_845_441_337_097_950_281_706_419_552_473_737_567_891_612_825_963_973_284; - idCommitments[5] = - 4_519_863_328_057_168_189_298_631_669_175_527_040_337_788_759_018_171_546_425_601_895_038_423_288_676; - idCommitments[6] = - 20_627_603_771_378_896_374_342_882_478_326_393_493_797_675_723_581_644_707_860_442_401_185_847_711_606; - idCommitments[7] = - 15_154_129_217_924_019_401_315_002_167_199_740_344_372_362_483_772_641_456_490_923_254_762_406_760_783; - idCommitments[8] = - 3_015_981_008_465_776_671_380_535_237_073_859_585_910_422_946_858_408_575_400_681_261_858_382_907_193; - idCommitments[9] = - 224_054_746_800_950_089_703_161_552_547_065_908_637_798_421_998_793_333_020_881_640_418_719_302_913; - idCommitments[10] = - 11_312_879_727_214_499_351_626_352_295_289_579_557_712_856_071_583_396_259_776_980_542_429_783_930_998; - idCommitments[11] = - 12_465_380_480_462_031_386_424_255_751_937_172_435_855_917_781_265_550_857_371_960_580_299_590_023_804; - idCommitments[12] = - 10_532_759_670_323_423_548_160_832_454_733_716_332_118_269_972_426_626_732_736_793_882_239_669_630_595; - idCommitments[13] = - 5_363_974_916_211_877_996_441_994_123_101_828_809_420_707_174_378_417_661_497_477_404_431_739_760_929; - idCommitments[14] = - 16_136_233_734_969_897_677_998_619_926_295_968_066_529_681_582_940_418_030_166_845_477_723_796_227_875; - idCommitments[15] = - 19_482_780_886_140_959_996_233_254_660_604_422_414_723_443_061_405_603_031_287_446_813_590_162_051_267; - idCommitments[16] = - 10_229_567_829_413_302_626_314_791_721_752_882_914_790_767_942_876_437_744_444_365_366_344_582_485_888; - idCommitments[17] = - 13_243_196_170_549_739_682_068_942_953_623_914_146_349_583_225_049_284_668_843_899_390_874_999_176_721; - idCommitments[18] = - 10_860_831_981_296_153_559_626_134_370_426_776_811_139_720_916_552_827_925_568_614_682_099_174_768_128; - idCommitments[19] = - 18_217_334_211_520_937_958_971_536_517_166_530_749_184_547_628_672_204_353_760_850_739_130_586_503_124; - + function test__subtreeRoot() public { vm.pauseGasMetering(); - // before we insert into the tree, the kats must pass - assertEq( - rln.root(0), - 12_413_880_268_183_407_374_852_357_075_976_609_371_175_688_755_676_981_206_018_884_971_008_854_919_922 - ); - for (uint256 i = 0; i < idCommitments.length; i++) { - // default 1 message limit - rln.register{ value: MEMBERSHIP_DEPOSIT }(idCommitments[i], 1); - } - vm.resumeGasMetering(); + rln.register{ value: MEMBERSHIP_DEPOSIT }(10, 1); + rln.register{ value: MEMBERSHIP_DEPOSIT }(20, 1); + rln.register{ value: MEMBERSHIP_DEPOSIT }(30, 1); - assertEq( - rln.root(0), - 2_435_591_050_584_562_785_273_516_085_683_091_349_247_653_357_522_297_485_884_387_709_399_190_797_862 - ); + uint256 expectedSubtreeRoot = + 17_424_862_670_140_480_877_998_532_811_050_196_939_288_692_320_297_833_372_090_184_339_457_611_465_301; + assertEq(rln.root(0), expectedSubtreeRoot); uint256[] memory roots = new uint256[](1024); - roots[0] = 2_435_591_050_584_562_785_273_516_085_683_091_349_247_653_357_522_297_485_884_387_709_399_190_797_862; - assertEq( - rln.fullRoot(roots), - 3_881_711_806_223_377_894_370_509_479_419_308_415_025_371_832_767_296_831_624_691_168_726_496_442_721 - ); - } - - function test__root() public { - vm.pauseGasMetering(); - - uint256[] memory commitments = new uint256[](1024); - - for (uint256 i = 0; i < 1024; i++) { - commitments[i] = i + 1; - } - - for (uint256 i = 0; i < 1024; i++) { - rln.register{ value: MEMBERSHIP_DEPOSIT }(commitments[i], 1); - } - + roots[0] = expectedSubtreeRoot; vm.resumeGasMetering(); assertEq( - rln.root(0), - 10_424_638_537_885_815_866_594_133_227_550_095_274_095_476_771_249_698_162_779_016_221_356_823_894_456 - ); - } - - function test__fullRoot() public { - uint256[] memory roots = new uint256[](1024); - assertEq( - // repeat 0 1024 times rln.fullRoot(roots), - 12_413_880_268_183_407_374_852_357_075_976_609_371_175_688_755_676_981_206_018_884_971_008_854_919_922 + 20_795_753_628_257_795_865_704_929_639_740_460_679_489_193_917_102_219_533_570_676_475_358_368_440_035 ); } }