diff --git a/common/data/src/mock/validator.store.json b/common/data/src/mock/validator.store.json index 57de97bad..7834341b1 100644 --- a/common/data/src/mock/validator.store.json +++ b/common/data/src/mock/validator.store.json @@ -1,262 +1,222 @@ { - "1684356213848": { - "depositDataRoot": "0x0211d3ed43d9a5566930d4936c51ce62b023b840e5bb1636d0743be3dc568292", - "publicKey": "0x9526a90f15cab7042c23563ea581c28baecb64c1c92a6818e0fc4b1ba19126fdec247dbf72f788c16443bfa495435dab", + "1684509224373": { + "depositDataRoot": "0x229bd3661012d438aaa2ab03b2091cae4ddc68554c7ef14c97f59a1514df0eb4", + "publicKey": "0xafa0e91b0c37c7e94c347fab9b08d0812067a09f7796a0329ce6060a847b4ce3be43684932e1b98dad1286ee8b4a6147", "operatorIds": [ 1, 2, 3, 4 ], - "shares": "0x00c085daf774c63eebd61857388894bfaf6e95b11fb07b634d617243920d92d703a0cc5316bd54779c2521b07f0cf39e27a486d0652b7656f5c8c5d801bc054c79f433cb5b695d89ede42dfb71185a24e756dd6c3ad514c386262316d8f366bfee14a424e76bc75842ed3c9fe49ae4622a773118a4b0f7a31493acb05603b24f895071132515ffe4804ac2ca6ff55e1280bab7b1302a83939f4f262d57d8a59a40a92b00c9878b7b3879f578838f4ac29186ede0105dc04c2574c8079fc8b10bd5e6e767746dcedd7b87b671ae38d9fd3977cd7beb4ef5e9a75ce9b77a6f8d74dbde9f7346dbf7bedb6dc77b79bf356f7d1b71a6de778d3c7b575fe37d3871ad74d9f79fd7bd9af776b9d74d7773979ef5e75a73c7b46fcf1ef1f7f9db6777d1af1ee1c7f6f1b7bbd9d77beb87bad7addfeddf3af1aefbe9fd9cf74edfedbdfbf5be366f6e78f7b7387fc6bce347b8eb473aeb57b57b96ba6bcdddd1ad3bdbb7f4e1d7f66b7db97f869a736f5c777ef9d5a6ba7b6eb97f8d3679f6bbd5c77ae1d7f8efde37ebbe3cf1ad38f35d5ee1a6b5e34db77badf67b46b97b8db9eb4eb7e387dedf77776b9f35f77d9ed77ef5d7aeda6fbf1de5d77df3cd9b6f577d6bcef57f9e9fd3ad3877a69f7bad3cd1e75ee77f1d6bd7f4d1f7f77dbe3977cddfeb969eef7d397b7f78f5f6f877ad7bedff7bf7875c7796df7db75fddff1cef5db57bde376fa7f6775d75d3877c775d9bd34d35d79ebb6b47fbf36e7871b739f1fe79e767f7dda736f1de76efc7badf4d9f7dad37e1ce74f3a79cd1cf356b873cef5738d75d5ee1b77b6df77bdb8db9e3d73873bf5feb6efc7b8e3b7fbd7675dd3b77a79cd7c7f8e5b71f7387fadbcdf7d5cd3bf5ff74d1bf1c775d5d6b7d9bebbefcd1cd1a6db7fcd76d5ad7cd7b6fce3cefd6bb6bcf1deb8f74f38dfce76dbddb4f5aede6bbd5beb86f477df38dfa7f5df6e76e36f1a6f46b9df57fc7f769adddedfdfbd74e7c69d6b5f5c7b77fdf7ce757db79edb8edcedcefc71df75eb969c6f6f5bf1b6daf1a69d6f5f1df36d78d5c7387fcefaeb7e9bedee79d38d9bd3a79b6fc7b675cf747badf9dfcdfcd9be1fe7dd7b75d6f4e9df3cd5c7b4e9a6b5e3973c6b5e3dd74e1c6da7fb6b5d787766bae7dd357757bbe74dbd73be5ceb7e79d9a6bb79c69af5f6b4df8d35dbadfad75d77e3879ed5ae5fd7adfce1d776d76779e77ef5d5c6fa6da6dbdf8dfdf78e1d6bae39d3c73cd5d6bdf1fe9c6b6e7bd5cf37ef5d3c7f769fddbf77e34d78d3be3875af35edc6f7eb6d34d5ad1fdf97386bcd5bd1c6ba6dee7af5fedbe1de5fe767dbe1ed79d35ddfe39efaf1e69f71ed1eef473cdb4e3d6dcdb779ad37dbaf37d35d3ddf6ddbeb4e5b6b6df475fd367bddfa75b738e76e77d9f6db7fddf671dd1be1a6fce1be1adfdd5fddedfbe5bd1f7f4e3ce78eb8ebcd78f5c6ba7da7fcf776dfedbe7c6fb79ae9af5fd1cd75f396bc775e9ee5f6dcedadb675defaeb977471ff1d75dddcd5f71d79ff3bd3a6f869e7ddedf77cdb475f6f96b479b6b9ef46b46dfdbce79e5fd3a7f6e1cf5c7dff7ad34d34f76dbae1bdbbeb969d7dee5b71b7b96f8f1b7b8e35ebbd37736e3a79b69ae5ce38739d3debbf79e3ae34eb6eb6f3be37e7573dddcf5bebde7971ed7ad5a7f5e7a6bb7366b7e1be9af38f7ce1cdbb77be76d7aef6e9d69defae79e5fe1ee37d9ee3de35734ebdd1c7deef56dadb9736e1e7f7ddbf3ce5df75d74eb97746bcf76d1ce7bd75ef56dcddf6b67fde9cebc6b8e75dfcedad3c71b7def7dd9ce9bd7debce75db9d766b8f3c79af7b73d73a7f77baebdebadb469fdbdf347fcd9d71ff74e9fe366dfddbdde73bf38e5b73de7c7db6f7776d5cef7d5a6b7d3d6fb71fe9ddfb7dc737d9dd3775bd39e76f3869be5aef7e7a6fdefbe1ceb7edf73671ae3bd5be1e75b777e34db9d38d9be3569a6f7d3bf5cdf4f3d6b971ad9b77d75fddbd5cd5d735e7b6b56da69bd9b6daedef7c6f8edbe79e5a79cf3b7bddb77ddef8f3cd9e7f5f7777beb8d36ddee757f9ddbe5d7b673bf3a6b879d73af34e37f1cf7ad1aef8d1bf74f7c778e77ef56bbf3a6bad9edb67dfd9f7f8d1defa737d77e9cd1bddf7f8dbcddbe7bddc7ba71aeb9dbadf46dff1cf77d5cdf7dbad7a75a7376ddf75edce1aeb6d3bf377baebbd746b76b86b5d37f746f76f9f5dd34dba79ed7deb8f5de1de9b6bcf5c6f9df4f1be78e77e3aebd69c79ef78e74737e36eb4e38e5de9dd376f6d9ee7c6b96ded776def7d6dc7357df6f46db71be5fe5f71d6ba6b5ef8ebbd1c7f5d7675d7777756b5735df6f78f3771ed3769deba7fbd7d71cd38f796b56f4e9e774e7669ef1cd7975e6b96f5ef979fd1adb473adbc7dce9be5e73df5ed9eef8e1e73be1d69b7b9f3bddadbce7c737dfb69dd35e5ce9b735eb4e3a", + "shares": "0x00c0839973c79a95ceb6aa08cc3520583b96b8b0ccfcd419aad053904dbf6b8f4b655bdaf742a41e087b732623ef279bfa968b7fa56ab6e498f1b12c3968ee43e0813c6631389d15d39a1eb24b84d72d9a7726e33fe1be227994bc26f52340c74d45ab82dcf81da9ca0f81750b0f6c68d9971631b733c36d6bee654fd1a35e6d1719a68d656d4db5269765514a49a0c7a936a9566392aa7cb9632c6d22b985f87563c6397820b1d0fbb6c598c78dfad31bf8cbc43ccc80dd6aa303d7cceaf2e91e68ddde37f7df7769fe3479d7fad75d9e6ddf7ad7befb7b8735d38dbd7fbe3773a71ce75e3dd9a6fc75b7f6f5adf4d3d79cf74775ebcf1fd39ebb73477cdb8eb4f77dda77cd5fef86f6ef5f3a79fd3ae77d7ae1f737f7ae1d75deb7df8d9cdfbf5fe78e7a69ef79e7473bdfadf9f5a6de73b7b7d9c6b66b7d5e7fc777f3ce7d75dd1cd79eb4e9f7b5df76b7737e1c75ed1f7fdf5de3669b69ef5f69b7f57bad3bebc79aefb6b4ddddf9f7ae1adf57f5d77d77e34df8d3be7c7bdf1fd9dedb7f771cf5b7fb7b7ddee7b73c6f56df7777dbe3cd7b73c6b871f6b5eb8e3669f71adbd6f9edd75adb9eb669de76f5c7dfd3ad1b69a7bc6f9eb66bad5e77adbb73c6bae9de796fc75ce766f6d5be9bf35edc735d1c6dad37d5cdfae9fedde79e7b7b46fc6daf5f69f7fbe7ce9d71ad79f5aef4f35e9bf347dc73bd9ae776ddd78d7df35df573dd1cdb9d756da6dadf9df96f67ba7386ded1e69de77dfa774efbddf7bae77d7af5cd376fc71f7377fae1e7dc7fae3675a7f4d376bae3ad5e6b7e786ba6dddb8736f5dd1de1f7f4f3ae9e75e7df774e1b6b971c6b5f7bdb5dfde7771e6bcdb5f37d1defdf3cf3beda6bd71eef56bbef9edb6fcf36f1b6f9e7d6f973beb7efad1fe7c79cdf869b6b76ded7dd3cf3b6fde3875c7b5d9bf3d6fc6da75be5f79a6fdf7b71fd5fd386f569ae7b7bcf377baedf776f3971cefbdf4f75eddf7573a736dbae7c6dad34e3cf3bd34d1dd5af36d9a774d38ebaf7b7f7df8d5aebdf5b7b5ddb6fbf37dfa75cf5b71adf5d75eb873bd9cf746b6dbdf35f3cd5c6b5e9c79de3bedc71b736df47dde1de9debbedef36efcddfef5df77dbf38f37d9d79fe7d7da7776f8e3969be1fe3c6f6e5f77bf367b4e1fdf4f5f7fde5e7faddbf1ee1de397dfe9f7b479e6b6edb6b9e78ddb79bdfaddbf3dd9fd1b71f7b4f7ce5a71e73bdf8e77d1bedcf7ae9e7b46fadb9f5b77df3c736f3b7fd75adf5df8dbddda79ef38e347f579edbbd9dd5ae5cedeebcd5fe76f74eb7d3ae3671fd38e3deb6d9d7b7db67bd734edad77d9fd3a7dbe5ce3a73ae9b73be75eb96b7db5ef66fa7f5e34e7bef8f5b73d79c77b6dcd9c7f675c79fef9dbc71bdf9d35df8db8e1ee9deb4d9cdbde3dd1fe36e7defd7796b9ddcf1e7b969f7b8df5d5ee38e77779f5ad36dfc736d77f5fd9cddbd3adfb6b573ad7479fdf6db4778f79db7f1c6fde78f3adfdedbe5b69eedddb4ef4efde3677def4e5e7bcf1d6f8ebd739d36dbdd7d779e9a735e1a79df5fd9be36e77ebddddddbf1bdf8dfbd1b79bd9def67b67ba7b6edaddcf7beddd3cf7deb57b8f3a6dad3bf777bc7f8edfd9dd75e3b71c7dfe34d3bf766f87b87f4d757397f67dc6dbebbe5d6f47f9d5a6baf747bb6deef6df9f36f76e9bf5d6b5f1def4d76f1d7757f7d77f35d5bd9f71a7b6ddef1cd75e5bf3969df36e1a7dcd9ef3bd36d7871ff5cd9f7f5edff37d367b7f1c7dcd1af7cf7ad5b73573971edbc6b7dfdf5b6b675e77b71e7b4db4e1e7ba6fde79f39efc7daf1de7869feddd9cd9d7766f57f8d79df8d3677573dedcd5cd3df3ae9d73d734e3b7da7f4f1d79c75ad35ef971bdb4f5f7bbe5ceddd5e69fd7679eeda77769e7b4ef9d1de5ee1bd5f7377fc7fcdf66bbdddefdd5de1f71e6b6f76d75f5ce38df8774f5c7776dbe79ddf6fbedeedee7d7b7f1cf1fd7bd9fd7dd79d1e7dad5f6b9eb4edd6f6e3dddee9ce7b6b66b9dbcd7b73b79b71ef7ddb777af77df8eb7f74ebce1fdfcddcf78e3ce7769addef5ef3af7a6deedf7f469bf1cdb777cdbc7dddf7e35d9aefdef6e9edf8d37f1e7777bb6dfe9f7f8d356bbe3b7dff7cd1f75d75ff7debbddfd9fd1ddb56f6db7f1d6bcef7e9befcdb971f7b47746baf1af3cd757f6eb9eb6f38d5ee9e7dfd36edf7b5776e9e77dd5eddbd7775e75ee35e747dd75bdb76b6ddde3cf78ef76dd75ed7dd7dddad5ad9ff77ebce36d3cdbbeb8d367dbd37d9ad1be3473779ee746baef6d1a7b8d5d7dd79dd3c75ae3ae7c6f57fdd75dfd73d77bf7d77c7dee9de5fddad5e71f6fce74f1ddbaedfd7b6fbf7be5cddeedad7c75de1beba71af77f1cf1c7bd73a73473dd7b7dadfcebcdbcf1b71fefc7f76b7df7dbd75cf7defad7ad78d3de35dba71ddb679a79e69cddfe35f1bebbe5ad1de75e79", "cluster": { "validatorCount": 0, "networkFeeIndex": 0, "index": 0, "balance": 0, - "active": false + "active": true }, - "signature": "0x86a81495d27683ff098c1bb1096b9b2f10c24a6e512a67e2a53701bd4beec0db40f7db0a0df989c1c59a786f82baa78716b14b78e331c1328f3d66080e83829c4e745633f2e6d9480d6451d9448cd653ecdfc02620054b7d71e5856bf0a92402", + "signature": "0x8c8c903b56917a6f08d8070edc7db7f8babbb25a7f053d99c83a5cb714a2072090d38c133d467a0e23c13e946348c9010a49965812b4bee59d9ba07449f5c76542b3cbd975907b4d2cf192a5ab05f9bee2bc1932ee95040d2bd2a4880b33c872", "withdrawalCredentials": "0x01000000000000000000000007E05700CB4E946BA50244e27f01805354cD8eF0" }, - "1684356578112": { - "depositDataRoot": "0x5304d296562a22bda92a2b411155e403c06fa79008895b186041c6a31c29bc9f", - "publicKey": "0x886bf7502e43c2bd5e883be3261b8547bf11da628e202b4b0abccfbbd4491e7a8c240242c53346640709b49aabdf4907", + "1684509253158": { + "depositDataRoot": "0x6aa44799022e541c3efd9dc29da2f4e3de2449b8e31c064099a0fc6bee4302af", + "publicKey": "0x898e8a3508f8f2fda73cc57bdb03e1fa957d1507700caedf5dcde6933c282b2585ba0e9fdfcd957ee89caa83309aada4", "operatorIds": [ 1, 2, 3, 4 ], - "shares": "0x00c08b9d8ed8f89734251e4b308e8a4d9796a5226c7f7236f58b7ab4149fc5910722cc1425fb9f068278ad2a79e389553093a54821b839f249440d3e89e223fd6ba0b407421a3196b403ac5fa1ec39768b7db17b2a9226859e8a0ea74a493c57e82d8fb83483fdd54d756c9c90fc3ffbb178852e25467644911981552a7b6222a91a48a4cc0a19abcd67fa615a0505f63484868b95fb29a708f0cde44eab92de8a16ee6688dc9f6f3ec88cb486a8d95c54c273bad05dac014b3bcb935c0e5ec6df126b4ede69f736ef877befd79ed1de5cf5cd75734db6eb975d69a6dc778eb575fd9b6da71fd766b773a69b75cd5d75b69dd1de34ddf75df7c7bcddd75bedde3b7bcf37ef975a71ae39d9cf7be9cdb6d7a735f7dd1eeb5f75edc778e3b75f75a6fddfadbbe3477773675fe38d1df3cf7bd9dd1bdfb69cf7d7b679cefb69cdbb7b6e5eeb5dfbede7bdd7a6f679e77ad38f1d7fcddee36d3871cd9c77c7bb734f37f78ddbf36f7a7776f7f1df5b6f8d9b6f6db86f8e76d3ce1cf1f7f8e78d786f46f573577ad3775ce796ba71a69eef6f5f6b4efce75e7b6f971a7fb778e34e9adddd1bd1f6f477971d7bce34d7d6bad7de3cf34d9ee79d5ed1ce9bf5d739d9bdb67787bdf39e9cf3c6f9d7477875c6dfebbd5c735777d7cf1f79cd9eddef7af3ce76edceb8f1c77d7fd6b66bd7b4d7d7dc6b8dbd7386fc7fae9fd3c7ddef7e1ad9feb4ef879bd1e7f7f3775ddbde1fe38f1d79edbdefdd9c777f1ee9b79be38f1e75de3ddbde9bebcd3be3bf367f57f4e3be9b77769df3ce1dd38dbc6f4d76e5fdb4f3879fe387f4ef46fdeded367766f6f3de5ef367dce5dd9fef4e7d69a7da73a736e9a7bad9af5bddd6dde9e75ed79eb771aef4e75f75f39f3b71cd5ed35db9d7d737e78e3c6fcebbddfdb5eb5d5e7f9f3c69cd76df8f1eddddf671fe5addd777d3be376ded357faf5cedf7fd7dfd5ff3b75dedd7f66b7f1fe366f4ddf6bad5ee35d9be3ae77f1ae3973af5ef79d9ae5beb97377b46ddefbdb8efc7bd7bc6b47b7d7bf7677d75af5ce5befc7db7dd7347bb7da6b869cf79df5d76ef86dcd74ebce77e5ee386f871e71be7ad37e7d73cedbdb8df4d7af1bf5aefddbbf35eb6d1ef7cdf4f3471cef5ef4dbbd1a79f6b8d9bf346f679e7fcf1df7873dd1a6b4e7b7b4e76f35f36f1e6dad9ae5f739734d746bad3df7a6fde35e34eb7db671cf7469c73873df3a739d756b4d1fefcdfa7dd7ddf5cd5d7dad1e71f75cf3a7de6fd6b66b9f1d7f6f39edfe377bdd35df4edd73a77c6dcf3de39ef76bde9d7fb77ceb673d77b71a6fa79fdf6d1af7adf6e5de7b6badfa7f777d77bd1bdfad5a7dae3af1c6f56bde7875ed79d5ae3bd7bdf77b5ddcdf569a6de774eb979d71cedbe7cdf9ebc7dc75ce74f5dd3bd3c6daedde7b7f9d7879d6dde7bdfae5d77af35d7c7b86fb7357dc73adfb7b9d3679af7ad1ee35f5fd3b69ae9bdbcd767f87756fa6fbeda7badb8ddae9bf3575af3873a6f87bddb7d9de5d79ee5c75dd7d7def38e1ee5a73ddfbeb5d5f6faeb9d76db479adf871ee9cdf9eb573673cdb5e5c71cf37ef8e9af37f1cf5c77ae1b77bedfeb9734e7a7f977873cf7bf1ee1bd367db7f76b6f1d7f87fbe3dedaefa7f7f5f69fd9cd75d77e9cd5b71ce39e1ce79db5f3b75b7dbeb7736dda71c69b7fcdf47bcd9af7c7f777b71ed9ed39f7d75dd3bf37d5f6dc75f7b4f3adfdf37edeebaddbe9b79de7a6b775edb97fcf5ce3677c734ddfd74e75f1ff7777c7bcf1adda6b86f4eb5f3dd7cd1dedbf357daf36d3be7bd1a6b86f6efb6b9d7df7d71ed5a7347ded7dedbe3bf3d7b57786bcef87f9ef67dee5ad9ed9de1edb5f5bf5cd77e35f1ed3cdfaeb8f75d5ee796b5ebde9dd9e6fa7f5d7679dd5bedb7b5776d1feb97ddedc7bd6f8d1df74e36efadb56dcf5d73c7767f46ba6b977a6b66df7f969ae9a6bd69dd1bd9d79be79db5e9edb769fe9ed787b8f5c7b671b71ed37f5b69edfad7a7bd6bcefb7bd7b6df779dd9a69d79ed9f6b87b9ef57daf397f4ddd75ad34eb9dbd79e6dc7b5f5cd7a75f739dfbf3b776db67df6b8f1cdbb75a7fddb8f5a71cf77f3b6b871bf5ad9beb5e776deddf79af3ad34739e77f5e777e1fe7a6fceb4f5de79d9c77bd38db4e9f776d3475a73875e69d75aebbe9be1b7bdf76d7569ae3b7767786fc6b6d7b7bb69bdb6779f347fce777f4779f3671dd3877cdf7775f356fa79dd78775dbdeb773ce9ff1eeba7b8dfbf1ef3cf376f9d1de5bd5be1e71a6b675e69fe3cefdf79f3af1bd5f71d6bceb4d346fde7bddfe1af776dde9b77df5a73c6fbf78df6e78f3cdf979fdb5eb6d1b77b7757dc7f96b8e9bf5ff5a6fcf7dd3b7b5dba7f6ef9ef5e34f1bf39d7c7dd7f8d7ce346fddf46b87dde5c6b479ef1deb4edbf5bd1a7fdd3c7f4d1f69edbce76d777f6f3b", + "shares": "0x00c0811bcbe8200ba25f4e2ceb0b5e0820c718ef3ce5b8e1d8aa2535e07f255224eafb87c4b3200e808305a222da21c94ea198ee871e7c02ad940cb8a3e4b66423eb8d74f055939e0828fbc60c0105d130bdf64d246225b4b8680fc354ea5ff7bf9db94822974d99c03369b756f37803549f0431d8899c574b1593fa1cd8562b3cedee3293c080e2db5d7806cfef4fea14aeb8dbfd7d68d22c4c4ee13bb99e557e9502ba9537963a64db79ff41db9e8d9d9f94d8864d850874948881490e7797a7fcd7b73cebce1b69af1ce776b4d1bddddb66fb73a777e74e5c7dae3dd9cd9de7973d7fbe5d6fb73d7f9ddf6b5f5be1adfbe5cf3bdb97f875f7b773b775e7ae9f79ae74df975d6fce9cd7ce1be5bddad1e734db8d9defa73671adf6db675ddb9d757ddefad35dbbf7d79ff1f6f5f78ebb776d75d7973cd1ce7a7dfe7b77873b7f869b7b5f5ad346b475ff3af786f4dbdd5cdfc69ee3b6b7e7b7f97ba73bdb5d5ef5e79befcd797daeba7b86bc69cefbe3471aef6f1ff5edb9e1eef4df7e7c73ae34eb47bd7f66b96faedddf6d1ef1ed376f8d9fe797bdf5cf7adba7b7e7871f7b9dbc79ef3475ff387dee1ff3cd7c777e3a7dcefcdb5d9e7bce1fef76de77aef4df8d9cd3b7b8ebce5be3cf76dbaf387b67f5e7ae75db6f3469ad1a73be7ae3469ee5ff5cf5ce9adb8f7bd1e7b86baf5bdbc6de6b8e3d6f76fbd39df4dbc6db7dbe9ed36df869b71d71cdf7f74736edadf9774ef97bdf5f79bf5b7dff74d3b6de6bae78f36e7de5e75cd377f6d9c7b7e5cf74e5e7ded9ae79d7df1f71ef1f6f7eda6b675ef3bd9cd9c737e9a778d5f7397bdd3cedbf3aefddbbd9bebce1df5de7673ddbd79fd77e3bf7879ce5d69bd5a73b7f87de6bbe5a7f7f796da7f67346fbd38dfbe5cebbd5ef7cdbb7b5d9f7b9e3769bf3671f6fbe36d9c6f9e747396f9d9cd7469fdbb6b5d7b7fbe9bd1e6fddfa7b97dff1d71c6b7d7dd5f7f5dbcdda6b4f1cf5df5f75d77ae9b77975df5c6dfdb77767f5d1e6b6f1c79cd7dd5d7db75ae34f5aeb4e9cef9ddce77e7bd1bf746b97b8db86fd6f7e3bef5e5ed1ae35eb4e1f75de5bd74efcdf7779dbc71f739f3af5e6bae36d77735f5ce3bef76dfe777f5dfa71fd1eef6f3cf3d73bd1bdf9e3ad9de78f7873cd5a736edfdf6dbde7a7f571e7dae77d1fd76edadbde5ef75db8edcd9cf347b7df5efdf1e7daf7675c779f7b79fe74e38ef4f5ee5c7fcddae7cf1fd1fdfc79df1c6b8dbaf3defd75d75d7dce7b75b7dbdb4d77eb7e79f5e79a69fd1be1a6f5edfe5ae1cddb69ef75d7d75deb7db5f3c7ddf37ebcd1aef66dbd1bf7a75d778d39e757f5d3dedee5cdbdf7bdb8ebb69d79fd74e9fd1c77df37dded5bedddb4eb5ddb7fb6faebd7deebaf78edc6fcd9ef78f77df7f1ed5f71e6b57f5d76d5be1ee9cf38e39d3779dd79efcd357fcd5be3cf1dd1cd9de1fdb77dfd5ed9fd777f477ceb9f38d7975a79f71e738d36e1d6dfd9bd7d77addeefbdf86dbedcebdefde5feb4df971ef7d77a77ddbbe75e76df9e7bf36efbeb8e5ff3aeb9e9a7fdd357b9e3de75dbc69bdddeb46b87b56ded34778e3ddbd77469f734d5fd5f6fae79f7d777e3cd37e34778e1addcefdd35ef87796fcf797dc75ef38d3b6f6f3dd7a7baf3669f7bcd5deb775c7b7d3beb6d1c7f777adb5d3bef9f3d774d1f77979adf67bce3a6dc6f569fedd7f977c69d7fd6dae387377f6d1de9bd5eef87f9dba69dd39d78f7d77475fe5f6b97b4d7a7bae76f7775df5e73ce1cddd6f9ddcedee1ad3b69d6f57b7f79df47dadbc6f77f66f771fdb7f5e6b8e757f5e7869b7b669b776d7bdda73d7f5f7cd3ce77e7cd1fe747dc79bf1f6dbf7669c79e736f1bf3673c71fd1d7fcd386df6dfeb6db77bcf38e1d69addfe3ae1ed79d5b774dfcf346de7397bc6b6df9f7873ad9f6b777ad76d5de39db8d35d5ee9af3cd1bf37db57f5db8e1bd7cedfd9edf7eb96fbe7ad5e7bb6b4d756f57ddd1ee1bebdd9ae74ef4d5ad9fddbd9c79ddbcdfbddaf5cd7c6b5d9b7f571e77bddae5ff5e6fd7db7dad9af3d738d1de5ce9cef8d5fd3ae1f7fde77e36d9c6b6f34f3dd7779cdbad5b6ddd74d5d6fbe5b775e346b5735e5bddddfde756dc73ae7a6dbe7cd37ef97ded9fd767bb69a69e7746b77f9d5fd1fef7f34eddedd7b6e3ad1bd36e7ae39e7de9ddf4d5e71a6dd6f8d39d5cf7bd9d7357f4e756fc77af7471bf77e787f5d5edbbebd73d79edb46f76fadb9efbd1ae5ed3d6f5738774d37776d7873cd5ce9de757b8db6e1b735e9a6f67b56fbdf97badbb778d1fefddbdf3b7f4ef67bbd9cf3c71ce5dedd6f8774f5dd1ef1e7376da7bde3ad1af7b7bae1bf5e7bce5f7f66f9ef6ebde75eb5e5f7dc69d7dbe5fd38edaeb469febae3b69aef7d1f7fbeb9e9eedcd796f96b8778f1ed3addde3b7fc6bbf5c7ba", "cluster": { "validatorCount": 0, "networkFeeIndex": 0, "index": 0, "balance": 0, - "active": false + "active": true }, - "signature": "0x84500b9d90568f788be589ce104c40ba1e24d68878713276f578fa6db56decd7551597aacabcd26385d60069b125daa0115a16547ea8c9de8a1f460585eb8904d0d83c6aa4ee682e14b8a7f2e1589ec4be63bb0073e394e94fa5e7da7178143b", + "signature": "0x9538f13d3a51611cf73b32854027dafa7d999c53355b94aadb117502e635fdfcda1275c0dc50a9afd229b11e07085301020af941ea0b61d2597c0fef2ccda8d6cd6288970d3705f24d9c76e505a384302299829f817c759e8cf03f6c73c86b0a", "withdrawalCredentials": "0x01000000000000000000000007E05700CB4E946BA50244e27f01805354cD8eF0" }, - "1684356840468": { - "depositDataRoot": "0x4a35d79522d6f744f949956269e78df53517f613570745dc30d99d4b963422a4", - "publicKey": "0x8ab7b66615bd961d10634ca287e63a6101894e7a2f16ff32ecd3fd0563391cfbd6c19631c9c18a4043f3f511419f7afb", + "1684509268115": { + "depositDataRoot": "0xe6d9327fb55c33ea1c0d14240e89d1f09aceca759a6e5cd75859f23a485bf35c", + "publicKey": "0x95a57ffe410d67e281df9b64ef58ee6dfc8813932042e9d7be09b2e6ac316182f352c56b033acbe192722002278dbeac", "operatorIds": [ 1, 2, 3, 4 ], - "shares": "0x00c0b20286d5625a6a6f8368d16ab50838d89ea522ce7d837c69544d8f34e345e49b898858a54062987612b78bcda45e6d57b528c45523e5f3759c06a7dd4c016d7c23eb9262287fac18a2bdb2dd097d40c9ccfb7fd9ad583e29cde85dd09dd1bc02a21146423e7e047adb311d40cf20245c7d794d2d7befc2d5539bb4190f5a282935027cd73e240d1a1e213097a571e359a3861281c0ef9960ddc0aec4b1e6e1508ba73aec0849360fa5cdf3096ba675f65e3e516c6d1e582d07c396d3492e1848f3adb7ddfef7eb6f3bf7a7756b5e5ed9e7b5db7ddc71bd9bf1d736f3dd1bf1a736dbd6b66dcdf4e79d5f71f73c738df46def5feb4e9fd5ae5a71defddf773debd79bdfa7b77f5f5d777edc6ded5ed9cdb46bd79f69af78e78dfcf38ebb6f479befd6ba77d6b87bb6db6b97f5e38775f3be3ce3779c6f86fa6bdf38df771ae7dedee75dfdf34774efbe37e1fdfddb4efae5dd3c6dcd376f67fcf5aedeeb7e79e3af7cd396f7737f7cf7469c69dddc6b87fdeb9e39f776f6d75779e3b77be5b7daef4eb4dfae74db47b7d9fe76db6d796b6ede6dfe5debce9bd3dd7cd5eddfdfc6b4737d35efbddcf5beb57f475f75be5ce35d38edc73975ff78d5e79af3c775ddcd7973c69fdfdf7b75ed3ce1ed9d7dce74f74d35e39e38f76e1ee9ed1cf5cd9d7b97f6e9df1ce7df3dd1ed78f38efd73ceb57dfd39eb6ef4d3cf78e34778f3cf5cf77e5fedcd1cddbd766f9dbcf346f479de1ce38e5ad37ddcf1eef5dbaef87f971f6b6f7aeda71cd9d7b9f3c7f77f57bcddee3ce36e79d36dfcdb67f5e7b7faeb96f4e1befde38d9ad9d6dde1a6b8d9d7797f8777779ef8777eb97fa7dee9f75e73df77778ef4d36f1bdf4f5f6bce5de5eebc6b5ddee1fd1ae7573a6f9e3d6b675e79d7f9e9a7f4db66b873669c73a69feb46bd79ad3ad35d9ce35db5d787dd736f76e5b75ae9de9edb9db86b471d6b979aeb7eb4e1dd9d69aeba71fe1bd5bf1a7fbd35774d9ef5cd1bd9bd9e6dcef77f57347fbd5ad5fd36ddee3de5adbc6dedbcd3ae1d69ef3d6b975cf1e7787f67bb6dedf67b7edcefbe35f5e7f5f34e7de37d9c6fa6dbd3469e75cdf7dda77cf7a776f7befad5bef7db9ebdd75e1ddb579b6dc7f8737f5ee3be7af1ef3ad3571a6deddce7571eeb9f397b6ddc7b76bbdb86bc69df5f6fb69ad7979cef86f5f787fcefb6fae7bd1de78e5a6da6bd7b8f1cedce77d1aef9e9edfc6b5df777ae3573671ee9d7386ddd1ce9bdfde9f7796b577d6fbf5b73cd1d73877d6dff747fcf5b7ddd1af79db5e37d9e69af777def1b69fedaeb86fd69a6f9dfbe3de7b71ed3ae3de776deef5eb879a7fc7dc7b4e5d6f569b737774db7736f377fde7677bf78d1eef6d74e38d78df8e7b7ddeb5d3af3aef7d9ee39dbb75dd7ce3be767fa79d73b69eeb97f9d74774735f1ef1b6bdf1ed3dd75f5adfce5c73ddba6b7d3c79e7786df736d9dd3979ddf47fbdb871bd9ff77f1b75b69f7fcedfe376f87bbdf5d3a7bd73a71aedc6b5f78efce3c778dfad1adf9d5ce39f1e69c77af77eb7d7dd35f35efd6fbe34ddcd7b778ef9d796fcd5c75f77adb8d38e9ce5cd3ce38d78e5edda735eb975adb7777ddc7b7f3cd3be5ff347f6eb579f79c6f4f766ba6f9efcf377f8eb7d9ad5ddf769ef1e7746bbd7bd36d75e7ad7de1ae1cf1d6f87f46f87f7d7879f71aefbe1b7b5df76df7bd7f8f3ad79d3bd39f7cf5fdbdf3a737e9e7367bddfdd9d79e7f7f77db8f786b9ddee5b7bbe9a6b473cdf8e9c6ddf34f7c6b673a73d69d79ef7cdf77baf7d75aef57f6d7b7347da6b8df8e7b6db6fdf38d34df6f1b7daf1defde5df1d6f673bd75df87bbe9f71b73c71ae9d69cef8e9fd79ef7d9ee5cf35f3bd7be9bd7bf3d75cdfcdb8739f7dd76e77e3771d69d77cf5bf3aedbef7f5d7f8e3769b6b6ebd75ed5cf397dfe5ff5fd3cdf4e9f6bc77bd76db7ebc6deddde1b71ff1fd3def8f75e37d9be1dd34ef7db66f4d7671c6b8edaf356bae1fdb5e5befd6b571fe1b6f9db6d1b7fadfb6f4edcd3d6f4d1e79de39d3c736d9ee7cdf875cf5a73a6f76fcd7969e7fa7f87b5ebd6bd77869fedadb5f1d75d73ceb8f1ee3ae1edfdef5d5e71ee7aef4d1def7d9b69f71bddee5ad3775d69cf766dcf1be39d797f7efd778d9eefde9c6b57da7756b6d9d7fbf35dbde1fdb5db6ef9f38e1eeb4d78f78d9bede6b8d5d6ddebb6bae78738eb4f3bf1cdf7e5c6f9e9ae356b5df777ae9dddae1a7f7e7dd75dda6b779ae38df6d76f75f1ed9a7b8df9f1df757f56fdd1a7dbdf477af7ceb6778d7c6dd7bbefad37dfde1bdf9e5a79df74f5de1d75bd3d7bbd9c69fe3b69fef8d1cf38f1e7dddf7dbadddf3ad9bd76e747b6e1dd1d6f6eb5e79d7cefb6b8ddee9e7ba6ddd3d6f9ddaf7771f6b577ae776bb77d7fb777e38ef8edb7b5d5c71a75adbd", + "shares": "0x00c096e7b88e81aba5ac3ce38cd593a49686c21b526525178c52d490b3c8c0cdf79176b37c2e51fe3164ee520a85eb9658189074fc1dc57ddcbd2ca68aa2b44fe549855f64c0e5fab9327921d7ed53e0fc932610960dd8f45d4b25b62166202c3a65ad993702bbb7b573adf6b0936837cbd282b89f8e82ba4766a41b38d3e9c6be84905f0c691db8b79ec1c521321b5474a4946b2ffe57b5027d7c5fc6e1194c2452935351d1057db98ff3c6196eda1c55bc18bb25846f353bb8cfdd72f1c6bae184dfd7fbe9b6fd6deeb873c7b6f78734e5edbc6b5e9eebbf5ee5edfae74f1b7f8d7dd37735d3de5ff3de3d71df1beb9d36d3bef7dfce5ceb5779d1dedaeb8e5fefad7d6ddef679ddfaeda7faf1e7dc7dfeb6eb4777e7d7b8d1dd9bd1d69ed397b9edf6dc6da6dff1e77bd1dd1bf77dfdd9bdfc73de1cedfe5ff3cdbaf1f75e79e75c77adf7735e5e77777b71fe7cd39f7defa75e7fc6dde36f1df1af797db6b5d7771b6fd7f9dde7f7ebd6fbd5e7f8ef5f39ef6ddef1bd39df577cd796bbe5ad1ed7aefb7fbd1cd76d1e7dcedef1cd3cf1d79de9cedfdbddf5e3cd3c6b6efaf39e7bd78d3b69f6dcf38e5ad5b75df1f69b73b7dde746faef4e35d35738efbdfa7bde1a6f67dd7fad1b7bbe3d7bd71ce36d77e7669eedee5ee7b71a6bcd9df5fe1ef35f1fdbddf5e1a6dfd78d1ae9ee35e5d7b6f3975cf1bef4f3c777d9e77a7dff347777b571de9def7f5e7db6dce78e39f7cefc774e5a7ba7fdeda73c69ad1a6b5d9d7fb77cdb7dfd73d79dd9fd76dda69ee7a71ce1e69defcdda6bbebaf5deb8d37db769fedfdfdddfd77db6e5ce757dcd78db8735e5d6fae78d7a7dff76db67f4e3c73cdf973ad38738d7a6fcdb5e3bdf5734d9b7dc7dc7ded5ef5ed74eb56fa734d34737d9ff34f1aedcdf9d9d6fb7b9ebdd7bd1ef3bd9f7da6b9d7adf5e356fc7f4e3b7776f97b9e1bdfaf77dbb7f66b47def36db6ef56fd75cdbdf3971fd1defbf77f38e5cf35d1a6bcefddf66daefc69ee5cddd79fe9be3b7f6e9af77ef7734e3dd3de7ce5d6dbe357b877cf1cf3775b7f96fd69bf39d1edf4eb7ef47fcef87b475addf77a71e69af5cd5cf386f875d6bbeb47f879be77d5ee37d5ad7bf5bf757f9e7dd1a7fd77dd9be77edbf777766f773673defb6f4e36f3675b69c73c7fc734f7ce1e7bc77d77df5ee38e9be3de7a7ddf34efaef6f3ad3de9addf779e38ef677679fd7a7fb6f5e36e36e9fe746dce5bd5cebd7fc75f6fd6dbd377baf1ae9dd38db7739db9774e1df79f5d69e734edae9ed9de9c7b9f74e7cdb9d9e6f9f5e6ba71b735dbc69ed5b6f873975fe37f3575e7dff3b776f1a7fad78d1e7fde3cd9ae5b7bc7b8e9ce7adf5f7979c69b6bbef469edf6d39e746df7b5d34e3deb9e5bd1ae3bd9e6bae36dfce5be1ce9ff3ad39e7ae78e3be3af5b75d7366fd6b56b9ef96f46f6efd7f9efd7ba71d6fce3a7f4f5ef75e9ed74eb6ef46faf5c7fc6bddfaf1bd5fedf7387dedf979e6b769cedcd5de346b7d5ed37ddbf5d7ddd9ae347f671fdfc6b6e9adf9d1be5be5fe7cd3475d75d7dc79df3b73a6bde7aedb777f3adf4e5befdeb9f7ce37d9f71e73bd5d6f67ded9c75a7dce3969bf7cd3471c6f47baef5d3cd5f6faf767746f9e3c7bbedbd1fddeddcd3df79d78e5cdb77bbdf9d1fd5edded3869dd3a736df971dd75eb8df479cdbd7dddf8eb5e5d7ba77bdfce9a6f56b7d357b4dfde3c6b9e34f756fbdbbd3571ee3be1e6f777bd7cf5e7dfe5de38f7979aeb6ddce7aeddd9a7db6fb79a6fbe9ef3ae7971a79aef6f5defdeda7797776f5f3b6da6f87da7dbd5feded5adb6dbcd9a71de1fd1d75beb4eb877ce76ede69b7ddf5c7f4f5c7dceb67dc6b5ef7e9ce9e7f4dfa6dfdfbd7af34f78e9fd7defa6ddd34ebdf1b7fbf5d7b46b7df6f39d9def87fadf97f47f7edc7f4df5776db7e5eedcdf66b9e1fd35f5d776e79d3d6f4db6d9de1fe5cddde1e7dcd5bd3975b6f7f5fef6d7df757347bbdb5d376bd6f47dbdb76f6e1f7b4edc6bb79fedfe1ee9deb7e5dede7b6d9a7b4f37db5d36d1ff37ef5e79e1de7b6dddf777ad9a6dff1ee7bef6e7bef9ef6d39eb47fbf36dfae5edfd6fbe76eb87f5ddde1be9bf1e7dadb87de7797b7e1bdb4eb67f569ef1ad9e6f87fb79de79f366ba7f6dbce1ae38e9ae7def47f9df47da7bd777d5ed79df873477adddd1ee37f7a6f5f39d78e3975d7bbe1b73471cf1ce3ce5eebdd7aef8735ef57dcf7b7fcd9e79cd1a69aefceb5ef573b7f5d7b71ee1df3ae7a7b6778f1fe756f7ef66da6fce356fcdde7bce9ae1fe1c6b77dfe7af1cefb7b66b4db6e1eefd79a6b47dce5b779f3469a6daefc7b871e71fddddba7f96fce9bf7de1fd767f5e7bd78dbb77b7bcdba779f1e7b86daf39edaf7dd3b79e7f777775c6db79c75adb4d1fddcdb6e35f3bf38df8", "cluster": { "validatorCount": 0, "networkFeeIndex": 0, "index": 0, "balance": 0, - "active": false + "active": true }, - "signature": "0x92fb481663e91793f8320a5607fd8b8afecd9b557d67ca4d59cf0382944256a8f9a7f2276e5be613cd5a455e87c6eb8f092ccebc3fab9da500d78e5a8e560be6457ec48de1d604b87a20eb5a96f9a96a2c155c934f1199ba0ed4e62b1d3eceb8", + "signature": "0x8333cd81f27293828ca7e3a29b45f9489befcae41a3afc611ed67bc0636700db1153e38c88a48a9a15e6d4bae193decc0bac5264a29c936211d2212e4086fb92b037b08760a6c6fb4e50b9812116c62923d2f1e85e25afe54e662c96ca55c8e9", "withdrawalCredentials": "0x01000000000000000000000007E05700CB4E946BA50244e27f01805354cD8eF0" }, - "1684356962052": { - "depositDataRoot": "0x8008fb8977a6bec6c649ca42fcfe80b3806614b638f332a267f71a9b587b8a3e", - "publicKey": "0x8dbc75d8e9ecd3b427953943df362e16045d35270f53ee78b1f408f51e77c05f64d99ab9835ea421b006b8193251d6da", + "1684509291313": { + "depositDataRoot": "0xc51ea3a91b77186b53429d907eedf8a00a94606c9536e8a49ec6cf46216d78fd", + "publicKey": "0xb539b00532b0ec5475290e1144441463803476e136ed1fc2988cca5687623ca9fee42efd4043f009e9765fd266297497", "operatorIds": [ 1, 2, 3, 4 ], - "shares": "0x00c09937ee2bad85a51bdd0f8c641d3350e2bf0f1357844614bc72b68d53b355926785039b903a54da08851cd8d1b335e454a3399cf7525110ec359a71d00510758be2e7c6d8018e6aaf0623a02f8675aa668bcb8aefc2a05a05d88f3a35ff5247d6aa67d9ee8d9b731beebeb7bc3dc7ce683f08ea79bd5ce364a93cb7d0047f104ad96fbe5b17a8a47271643808239ac706826335a0faa76606f3d54f0088b4b0ab1b3fb0fb5c4953ab8190ea9421b9ced0b1158b09390e2a1db901be4643582729e7d77ae347f4e1ad37d367f677aeb8f3777b6b66dfdfcf37e7bd3ddf471cf1ee9bf3be78d1adbbd5c6fce9af5ad37d74777df775ed7ad75ddfd9d77571c75ce1e69ce9deb9ddb69ed1c6b86f57f9e3aef57f5f78dbbd39734e7df75eb9e7575b75ff3af7adf7f777f9f5defaddff7979d6fdd346fbd767dcef9e9cd9e6fd7b8738f1e6f4e9b775e7c7fb775efd69c7f86bcddde9beb5db4efaeb76bcd36f5f75ad3cef8e5b6daef9eb6ddcf38f38d1f69a6f575ce9debc69e79a7f8e5fe357de6f7db87787f9f5b73d75de77edbd7df39dda79bf3addff396df71f6bdd1bddcd3771de3871de3c7b4e746dfeba7bcd3b69cefcdf6db7ddc73473ddb9e7de5f75c7b5774d3ce3a6f9edbe1c6f5d74d376f76fd6b473ce77f3aeb8dded9d738e35d1e73b779d5fd3bf5d75bdb6d3469a71b6b96b6e5f6bcebaf3ce7b75d6b7ede75a7fc69ff5d75a75fe39e39e78efd7bcd1fe5e79bf387b8db573de5fd36d1b734db977977b79f7bbf1bdf96da75addce3769f7b5eb6e3af1af78e1bd7bf77efdefc79fd356b6e5bdbddbad9ce74edfdfaef775ce3ce7adf4ef471fe5c6bcddbd9ad1df1ff5cf5f7b8e5cdf8f34738e9cddc7df7db79e6b7e1fd1b73de9eedf6fbdf9f5ed5ee9c774f7dedd775edb7f6f1c7dcf39734738777ef8f5aebb77addfef7d7c75e7daf7be7bf3c739f3af36e1bdfbf3c75ddbae7ae7aefde5f71ad9bd35f5d6f7d9ad5fef5e7c73cd3ad1ce37e7ddbbf5adb6efd7bc77aede73969a71de9bdfcdba7dce766bce5c7dfeb8e39d1d7b871b6dfdbddba6b8d75dbb7776bc6b9f1af3dd3b73aeb7f3a739e5ee75e5ce7a75b6bcd36efdefdf7c7f6df7eb96f8e5ad38e38d1b6daf376dadba71ad5edb8eb47ba7baedc71a71cf1b7b57db7f9e1de37d36efc6df734df569cddfe756f4f7c75a6f46b477ceb8f7af76db671d69f71fe75efae3ddb9df76f4d1be5cedf69b6dbe1cedcebc738d1c79a6db7f6e1ce767796b4eb5d7979c77d6fadddd77f1bdddf7a6b9779db8df8dbd77ceb7f1e737779d1fd36f1fd9fdfbe77e9cf1aeb5d1ff1c6fbdbaf5e7f7e746bcdf6f5ddf97fbd9ad35e3ad7af5f6deefdd7ae1de7b75eedd6b8df9efc7df7b8e5ddf4e5ae36dba6b9f1bf7873b7bbd7b7f67ded5de1ff78e396daf38e1adf8d3ce5bd9dd3added9d735edc7357f56dae7b6f573875fe9d6f8e5dd3b73477af75f3c73cefbdf5edfeba75c69fe9e6bbf77efa7bbd3c6f4d7b71ce9cd35f7d6f76fad9fef9e1f75cf3be1d6f4f3b6f5e9debbe39e756f96fadf6d7c7dbe1aeb4f37f34e386dbf5ed1e79e6fa7f7eb479af7d75edf6d797bae1be1f7bdddee777bdf1bdf9edadf5dfce39eb8ddcd77d3bd39eb8e35eb5f74e5e69ff767347386ba6b56fde1febdf5cddfe1b79e777f78e1ae5a735e75eda75e79cef87b6d5a7347bcf37edaefbdf4d5de3775f71cdf4d776bc6f6f78edcd7b6f6d7bd5ad9ddf4d5df1bd3cdde6f66b4e75eb4d38e77737e35d76f5e6dfdfd79dddedfc6dbe74dbbe5d6de71ce7af3d6b7d1aeb76faeb7f1b79e7387bbe1ef7cf37dda79e6df735f39d9cdda73bdfad7677675aebbdb873d7dc737d1be7bd9a7f679adb9edaddae3c7b77def5bd3c6b977b6db6b77b871d7bbe346dd735d1aedb6b5d5d6fc7fcd1cd7771ff7df7bdfaef57b769bef6d35d5fe7969af7cefc77cf76d74df8eb4e5def779d7dc73be3579af7969af7bd3579dedef7b6bbd5ff1ce1df3a79bf7be1fd7cd5b7ddf3cf1adfbe5c6bb6b9ef8d34e3471b6fd7b8df6d9ad5ae5d6f9d9c6b46f975ddfdf7573cf366def1d6f6edbf1c71bd1ce376fcddd6b977bf3ceb86f5777f1cebaddd6f8f78edee9cddfeb4e1dd3cdb46bcd9d71ddbbe1fe78f5de5de357b5e1a6dbd7de75e7a779d1f71eeb7db5f1deb77f569ceda69de5e7ba6def7a7dd7bcd3a69d73af3adb97ba6bb69dd1bddc6b9d5fe9a776d9d69aebce9b71c6b769fdbb7dedfadbdedf777ddad386f4df6db6dbd7f469d79ad7df7c73df5ddf46f6f3be1e77979a7fae1ee75dfd6fce9ee78dfddbad5cf5befcf1df757b5e5dd1ce5ff3af74e9c69d77a7f4d796dff79e36db9eb4e3c69d6fbe9d69bd37e35d38ef471aef8e5d6dadfdeb773df7d6fdf79ef8f5df397f6d5ce7673671ef3cf397b6f3a", + "shares": "0x00c088d3e2dfaf24b91a8e9053e9ffe21997daccabbbb675aaabfe6e8f3380b7bf8707f90857dba6fb4fd44fbff510b71999a819d88d70390b6d9a185514019a55b6be28aef717aa96eb1a0add499b3b6b097f1b05fc816d5dcdc9b234d9c8bf6f368a7e2d9a229169cce07bd605f055375798197b8266911054b336f5e5cea9fff9b3838b54e915955240515eade4e589b2a4336829629280e901f279108aebdf3bec26e5426c95b920716c9c9c0a1e82f076ecda96c831a43b64b2c735de8ebcbdf5c73bdfde3c7bbf5a7dd69cd1deb46de75df5d7f877df78ddfe357db6df7bce796f4e1ae38d7be5d71ef3c79f7dff79eb869f6b879bebd71edddf5a7b5e1ae39d7777bdb9d1a71c7bbd357bbd37778778f7dd3b6db79df3ad1ae3c735d9cd35e796bd77ceb9d766fbe1ddf4ef7ef6dbd79f71b7bc71e71fe1bf38ebc71ae1e77cf5fdfce3df5d6dee9c75fd1cd36f3befcef6efc736f7a7db7fbf7a7f97766f5eb96f6e74d5bd376f97db7b66dfdba7b7f397f4edaf74f36dded3571f69ee1a6b7e9b7b97766f97da7b8eb6774ddeebae34f1ce746b6e74f38d1deba6fde9a69cebcd1e6b4d1d77c7b5e9a69e71bf75e1dd7b6dff7be78df877cf346bb6b76b4f7bddbd9c69fefdd5fdf7f5ef5ee5df1ad77f3777bdb9e3777577469bf5cf3adde69be78db8db9d9c736ebdd79f1fe1dd9b7f6e74734d5f69cebde35df8d9dd9cd3dd3bd5b6deddae37ef8f3475ae5df5cebd73cd9eeb4efc6f4d7969a77addd6b47777b5d35d5e7dd6f7d35d36f5eeb56da7f8d1ef35f1f79ed7cedc6f6d376fb79ae3cd7a6dff7a75f6da735777774f34e357fa79b6b47ddd36ebdd7bf78e3a73aebaedae7977ddf969ed767b877c7b777869f69a75fe74778ddd7f8f747bbf7df5d6ba79fedf79c7dbd5ee9e777ef5f76f1fd77d34f75df6db66da71ddf8d38d5b69a7b5d3d6bb6fdedaef5f78e36d9ff1bd757dcdfbe38ddae5a6ba7fce9cdb6e7dd9f6ba6fc71e7dc6b973d69a7b6f1f73a7f8edfd7d7fbedb69bd3de3bf5ed7bdb4737774ddad7cd34d7dd7479e73d777dbbd387dbefbf3ae74f5adbb6b5dfd7dc7f77fb71a79f75a6b4734ebd7dbf7475ae9ae36eb4f75d35778d767fd69bd7c73bd34e5de9ad1af5f7bddb775a6f4d7dd3adbb6b67fdebbd7bd1b69c7fbdfbe7de3b6db6fde1bd7a69ee5af76d5c6f8eb57dadf4f79e3cf37f746bb6fc7bdd35d1ae3a77c77d7dbe75ef6d7ce9de1bddbeb5d3b735eb6d9bd1fefbd3771bd35e1bedc71ee1f7bcd3dd35f1af5de9a7f7dfbd35eba7f5ef9e1e7dbdfd77779b7f9d5c69df787f4779e9de3b75ae1cd35ddddb9d78779dfadbc69ed36db4efbdb4e3d79be9ae1af1a7bce3969ae3575feb9d76ebde1c75ed9c77ddde7747f97bc75ddf5d9d7b86fadf6f79eb571d7b76dee1df3a69df5af35edf71f77c7faf367f979af35d5ce7bf7cf5fef671beb9d7b71ad1be757b5734e34f5adbdebb775eb7f1ddbb77b73bdfceb4edfd75e3d7b4f7ce37d9cdb7e7d6b4f75eddf38d1cdda7faef469a7ded9ed7aeb7dba75bf5befbd38774d797fbd1e7b87baf7c7fa77569f79af7cd786b6f3779b73bf35736f5ddf9f3d75ee3df3ce9ff7a7f47bde5dd3575adfdd1de1df3577871c7b9d3adbcd9ef34d3cddd779d1ce9d6f46f5f1af1adb7f7be34efbd9ee9f7f4d7b6b7f7cf377dce75d1cd7b6f67b6e1bef8dbaef7f79738d76df5d3a69ce757da735f1af3b69af5a69edf87366dedf8d9cdb4df873569d75ad7a75f6b5737eb8f5df7cef6e356dae3ae9e6faede6dfd7769edfd71c77969f7fc7b9778ebcf39df7eb7ede75cf3beb5d1bdf96da6dff37e37d5e7796ddf1cd1bf5e7b9dfd6f4d5d77aedbd5f6f977de7dddcef87b76deddad3ceb573ce39e9e775d1ae1b7db71fe1cd76f1dd9ce76dbd71b71d6bae5bdfcf7af3be1eedbdb8e74dddf5ed76dde7def1fd7979c73bd9df1b6ddf36e5bddcedf75e6f9d7be9a7dfdf97f5f3d6fbd9d69d71fdf47dbdbc6bb6fcd1fe9ed3cd1f77cdf8e79774f3a73c6dc6b56b4e38dbd6dff5fe9dd9cebbd1f6f4f1cd776fcd7675bede6badb57b8f1ed78df57b7eb8e76d5c6daeb7d76d5ddfb7bd77bededba735ebbdb5e76f1bd9d6bde7b6f5db7e3de1e7f569bedbedbd38eba7f4d7d79ce39dfde1bd5fdfc71c7bcdf8dfbef4d39e397b6e76e39db76f76f6df67b5f3df786df7f5dddeb9d3c6f77f56fcebaf7975e73cebd71de1ee3b6bdf3bd1bf1be7879ad9eebb734ebc7f8d3ce1a79d7366db7bb6bae76efad3679b6f4d5af5ce5edb4e1fefce3975be5b79f77bf34e1ddb6d9b75d75d776f1cf7b73875ed36f786dfddfe9ddb96f4738f79e35edad7ae74f39edb75ae1de9a6dbf3d75a779e1bd9fd1beb6e5ce9fddbedfeb4f3875ed77e5adf7e797ba75be5be1cd3ae9cf1c71b", "cluster": { "validatorCount": 0, "networkFeeIndex": 0, "index": 0, "balance": 0, - "active": false + "active": true }, - "signature": "0xaad2571c0e8d0f3e0c7095265bbb558daf9d07189bded28d3a9c6c77637cfdc4e3d97f8d38a65d786369b1e786110e2607e07fd6c3aacb876910c90b616db77cf34f9285ba494f9d9ad472d567dd0bf9488eb32c249b52486a51ea72b4d07baa", + "signature": "0xaf89192dfb733d0ce75d2f9dbf899dcb181cd4f082b78b16d6827761583ad8afba8e4dd964de6dc72562b0811e700e2c042f8b8bd9c94e8bf3c64852509221fda6fb6d63b41bbd755b87b66cc8d27f6d2119443665b267cd9a2411bb31e1b7d1", "withdrawalCredentials": "0x01000000000000000000000007E05700CB4E946BA50244e27f01805354cD8eF0" }, - "1684357828972": { - "depositDataRoot": "0xb98e9b4e411d83d956191d44d1b5faa6552d9f38c42f6d98379ca3b131c17a28", - "publicKey": "0xabb52e0c9a1af639ec05c2fb4daaf74be7b4ffd6c188828e56de78d3264e4128d02301dc3e04bcaf1c8663be4e2e2b0f", + "1684509306139": { + "depositDataRoot": "0x3427ad6afb3352f0b7b066b238422301c344c5c3a0387a0c99f9345503ff0a49", + "publicKey": "0xb52c33f4dae58f49acfe760a89d1232db1acf61a70474c1a39fa2826c8c4ab71c61fc0952bfddc3fba665e8c975bfa5b", "operatorIds": [ 1, 2, 3, 4 ], - "shares": "0x00c0817f81709352cf1e57a7e125aa83402aaf708eea8046d16ae35c27ed0038f0a39cc46cf91c99157a1792a439b065fce894da28ce786435658cda7abc79197f35055e3e69240747ffb8f2e1a7c1fbef8899ad52b5712bd13c4dc3f07de0297c0085556c139ff909077f92591105efc928dc3a8c383ef0e53f820bbfbed00182ab82405d5038504266f30e74d7c7a5bf1990d172a723e3b066400a1388cacbb924c4b9c74848f4a0811006b8ed52bbd92a00018abe3147730a19335c3da51c9813e9ae3c79be5df1e6dfe76e5fd5adbaf3777871df5f7f47ddd39f366db6b6db8d9ce3bf397f4ef979e6de75bdf67b8f1c69fd797dce7be1e7fdd347b4dbad5d71fdf7d9de7df3ad1dd78f3777579bd7679ad9deb5778ddee9b774e5df79f7c79be7cefd7f7d39edf6b7edddb7d7969eefc7daddcd5ad3ae76e9e7f5df979e6fc6f775fe37f5ce39e39f1cf1ff7cf3579c71cd5eef771cefd71de78f7cf5de38e38f76d1bf78d356b8f7577a6dcd5ee1c71ff3ddfaef66fd77b69ad1a6dcef66dfd7adb6f766f5e1de3c71e7f4d9bdf9e7a7bd7fcf1b71cf1d79ee5addae1d777e1bd5ddf5d3be3673d75c7bcedbddbe1fe1d75a79febce9c7f4e37f38e7969c69df78d7a774d34df6ef7f7b7da7767f9e9d69a69dddf7747da7767f9d75d5e77c6b9f77edfddaf75dfde9ad9defc71d7b7eded3aeda69bd7dd9ad5ee3cd1eddfd1deb479bdb9d1addfdf9e1f75a73df5cd7bf3969fe3adfa7b9db471cdb6d9fe5deb9e74f347fd7bb73469def77f9dfb73cd356f7f5bdfb6dc7f5e9e7b46f56dfd7ce3779be78e767757b87dbe3477d6f9dba7747747b6eb473de3ae9a6b779b7fcf5eef7dde7ba6fd6dee747b7e9bdde7b6d9a6f873defd6b975b79ae5df7beb6edfdb4d5f7b4eb86bbe7ae76e9af36f7cd776dbdb8eb469df1cd1ad3b6b479ae3bdb7d7ae3dd9cf3ae7a7bddf7e74d3d7b971be1ed1d69dd5a6bb6da6b7efa7bcdf46dee34e9fe74d9ce1ff767b67b6e1fd5d7b8d3ad3be34f5b79febce3be9edb7ef4d77e7ce7575ef36e9ddf679fe5d7fc6b575e7fbede6dddbd6f5e5feb66dde7de1a7fcd1f73bdb473ddf5efc7b7f77eb769ad7cf5cf36d9e7f475b6ddf37e36ebdd9c7da734db573b6fcd1ff1b69ddf6ebbd3c7746b875fede7dbedceb5f35f3c7f97bcd9aeb6d9c7767b875fef7f3c7bd6bbe3d7f86fb6dd775f3b69b7bb71fd5ed5bf1cef6f1c7356de79be5bd5e7bc69aefc7f6e5dd74d77ebce39f75ef7db86db7dd75bd1c7dfdb47dfd5af1feb5775e5e71bf1cdbbe9de1beb7d786fcef675f7bce5bd7d69c7dbe347daebadf8db96f5ddfe76d5f7dfddbd35e7be9edb9db9ef5dde6fcedfdf87756fdf7575f71fd5f69dd9ef1b6b777ae9ad3df3dd7969cebbebaefd7b47bdd9a6b5df6d9ae1bebb73dd5ddbae78edbebbddadf7f376bce5bd386b7dfc7f67746f9dfb79f7fde3be1e77871edddf35e796de7fae9bd78d74db96ddd9ed1dd9af5ddbd79cdb8f1f69b739f1de1ad5dedd7b471af7669ad9feb76ba79fdfbe5b6dd7ddf35d5cf5befaf79e3c7377dee79d79ddde37f78d35f1fe1d75ad3af78e79dda6dde1fdb57f471df3a7f8edae397bc777f7ddf6e36eb9e5ed5bdbd7fcd74f347f7e5d6dcd7471ae9bf1d7757366dff3d776efd7b6edf6b8e7a75a6b5db6e76d35d1ae1bd9df7971f6bae7969bf7af357fdedbef771f75e7b873aef9ebb71cedbf5aefc6bb79ce1e7faf1b6f9e1c776e5bdfb7dadb979eef871fe1fdb571f7dce1e77773c6b66fbf7a7baf5b776ebdf3877ce3bd3c7f8dde73ddf8d3c6bb79e75a69d71fdf6db4779dfb6f5d39e7a7b569b738e76ebd774f78f1e6daf1ff5feb97b77db6f7779d35774f7ce356dbefc77a6fad9d7f6d7c7f5d5fd9a73b6dfefc738f1a6dc7f87f7ddf776e5fef8eb6736f3477571cdfb6f679ff37e9dd1f6bce3b6dbf1e69cd387f869e777778ef6ddfdfae1aebcf38d7d71e6de6bdf5fd5feddf5c71a7b8f3be746dceb969ce3dd756b469d73971d7b67fddfce1f779dfdf5ff5bd9b7f4ebde37d746fdd7dd1fe3ce9eef76b76b5db973869f79ae1d776f5ce7869eef8779e7c69c75c774f35ddfe397747b5f35db8f1fe38d1fd34f77d7dd38d5ee1aebadf9e3befc6b76badb7eb67396faf1af78e7aededf9edb6ba6dae5fe5ee37df6d5ee9be1ed77ef979ad7771e777efbdf5f1eedbefaf5fdde69f77b75e7f5ef469edbddf6efc7dd6faf7af7471ce9adfdd1cf7ce1ee1af786f669eeb76def357bad7775de39d77ddd69ceb9edd7b769ce5cedd6f8d5ff1ddf569f6dbe5fe1bf1de35dda7b6f7aefd6da7faef9e1af5e69ed78f777b4d1cd1ce78e5edfcef7d38e3c69fedcddc71cf347fdd1dd3977471ad5a7f571d75cd7cdb5f776f579ee9ef5f69d7bc7deeb8d9b7dcf39e5cd77", + "shares": "0x00c0ac8d77561564e4b72f7ab129202f71c80f164eb2d4950ed106a441bd371f8274ee35bdb795b859c5b244d578f486fd2192fe9794452e31ed7327d749e628b0b37c768477b0c02692768bc56462e882d6d76cb57efd4ac6b59dd31bd0250d5a4b90112d1e96c0b067e24c2ce7145d334ab1b55486b7330662e74365e29086acad8df1eed3381803b522db303f9f9d3457b5290443d47f727e5f83646d3156dc07569b97b86df6992aab63f5359d7f43433228e6c85ccf3d11e675c53c9b181193dbdeb9d5c69e7b479e6ddf797fcf3def4df9f7bef8f5ef7ce3b7dde3dd1def8d3ae35e1b73a6bad5ae1ad5be5bf3671fe5b6f6778d5ef74d1ef377dcdfaedfd74e9e69bdfcd74d7b79af78df4d7a6dd7fce7673bdfc73669b69b777d38f37f37f5adb4efad7aeb4ef473577971e6b671fdf86bdf3af38e78f34e5ce3af7beb57b76def7a75e7ddd1e7dde5ae7deb673df3ae7b6dddda73dd3bd386f4e9adfddbce1e7b9eb9e5a7de7b9e5d6dde9cf76e9f6fbe5c75af77f75f7d69fe5be1cd5c6b86f9e7bedf6f6f7b775f37e74df46daeb5ede7fce797f975a69d6f9d9c7b5f796de7f4f3adfcf1def4d9e6fae9d7bb75fe9f7bbf1be9be34d5b69a6fbd39ddbdb7eb67fa7f86b7df87b9f34e5eebbebdddbebce1cdda79a71ee1fd5b7fbf5bd1eedae37e3669fd7ad3773dedde77df5d3d6f6d1f738df4f1deb9f1ad7cedd7ded3de7dd5a75eebb6f9f3ce1ad36edad3af5af7aede7bbd39738d5cef777875f73dd74776e9fd75f7cdf7ef4dbcebc71d71e79c73577ae5f7bdf1ee3b6fae9befa6daddddbdf76edd7f6e356bb6f8d5ed396f7f37ebaf76d7d6db79e69a73d75f79d71ad5fddad347346b6e39ef46b9f5af787357f8e9c6bbdf6f3de7d7f6dbcdde69fedb7bad9a79fd7c69bdb5f1be1de39d7bddb6bc79ff3d75ff34f79f5be36ddcdf8e1bdb57bbe36e1e6fcef7dfdd74ddb79ae5e7b679ad7cdb7e9ff5b7dae9bf1dedf7f86dbf1bd3a71be35d9bf7be5ee75f5e69fdb7d1e7357f4f1de3de5ad5ee5ad38edde1b79adf4ebb6bd73569ae5a75d79e775d397baf34e1adf87bcedd79ce1ef3aedbe3df7cd3aefa6f86f86b96b46b96f477773dd5bf79dfdd1fd1ed3cf396f9e1d6bcd3d7f8df9ef4e74e3bf7bedce1adbce3b7f7778e7ae7adfcdbbf3575a79e69df3ce38efaf3777dddfebc7b8d38dfd734db4ddd6b471cedcef4ebce1a79d737ebdd9ee7a776ef4d9ff76edad9a6dee9e737f34d7579e77c6baef4db77f9f3ceb46f769ee7a7fb71cd5bdf475aefbf35d5cf79d5ae1ad9c69c7dcefddf4e3c6f7ebce77f75f39d3ddfc6b9735d3b6b875fdf6f76d1a6b8e7ad5fd1f7faf747b76bbe5d734d5bd5fd39eb9d5ce3b7b9df97dce7df3475c6fb73dd9bedbef669dd9ddb46bde1c79eedce9ee3bdbaf39f5a7ba737d35eb97fde5cf5d7daddcd34eb6f1d7de6dad1dd1e6f8d1b6b7edadbcf3ce5b7357f4739e9f736d3ae5a71b7fdd75d3773d6dfefadf9777e5f7b87f4f5fd1d7bbdbbdb7e9b6f6d3cdf8e9ef7af3bd76f76df8d3cd9b737d5e7367f8f1adf8d1ee776b8f5d7fcf3bef8d3b7f9d36f38dfde77ef77f6d7769dd36dfb7fad757dce7a6f8d9ddded37d5cdfbdfd73af7d71fddaedd7f877d774f5cf7b6da6dd7f5ef977d71ae9ae75d36d1ce5ad9ad9ee9cdfc6ddefa7dee34d7bdfb7b86b7f7b79bf79dbb71bf35f1be5bd7ddb9f5c71cd7cd5ad5c777e3973775ad38d5ae5de74db6e75d796f775bdbd7b46b5e7ad3bd7ad1f75e6f6d9ae7cd5f77579e6bde5bd3d77979e7ded1be9e7366fbedeefb6b5d74f5bdb9dba7b471df5ce5d6b5f78d1bf3c69f7b4dfdef8e38eb673ad7c75af7a7f579af3be9d71c735dbaf5cedae5b6faefb79fef5e1c7bd7b56b57b87366bd6b871cf3bdbdd1c77475cf3ae9bdbc6dc779e7ce5f778e5f6f5eb9f3aebb75eeb4dfaef677bf74edbefddf8d7c777dbaeb4778eba7bdf1d7f4e1c6f9dfcedae5ff756b675c77befc778e9bdb7e9a77beb4d3c77ce34edbe3ad1ddbc7fb6f9df6d78f5a69d75cf3a7faedfe77db76baedd6fa6dfd3a71ef76e1f73677ae79778eda7356b5eb8d5bd1d73aedcdb6d376bdefc79dd38e7d7bdd38db87796f4d1f6fd71cf1bd387f5df86b9dfc79dd1b71ee5bf5b7b9f5c7daefd71c6dbd3b73be7a6fae78edaebb7fc6b5ebbe7cd75f5aeb9e7779d71b7fa73dede79bf37ddf7bdef5d777b76b6e5e73a7b677c75aefcef8edcd757757b4734e3dedfef76b96b8eb57bcdf9d7af39d3be7cf36e9de38dde6b7d3bf1cefa7f773de1ff3bf76dbdef4dfb6f6f3775bf36f1ee5aef9e9edf969e71a7fa6dc6f6db5777f1cf7ddf6f746bb6dbebdf767f8ebcf3979ddb669df36e5ddfa75ce77774d39db7dfcd387bcf746bbddae3b7b6774db7e9dd7bd74e7d71df5ff34", "cluster": { "validatorCount": 0, "networkFeeIndex": 0, "index": 0, "balance": 0, - "active": false + "active": true }, - "signature": "0xb44570059680e4397e8f278c872d0e0d05e53cccebf8acdd36fbda7c4ec4fecb89b4527f5a51ec9f05a66a56d85b413114a785dffd8847cd3aab2c2a1c401fff80a783c9d55fe2341c4aed6e2cce10074f58db382fb205db56a950ebe69d3e7b", + "signature": "0x8022c8a7dc07fa36fed97e619651943498b842591b58b1fc4f6374a46c819102061e39cec391b4ad02fd3be6b022c7ec0764721c32fbcb0053f09f0104f1ebf3c14959df77362526d83e65a08ad9f9d9b5b9b27b74ec0d69bea34afb2edbaf9b", "withdrawalCredentials": "0x01000000000000000000000007E05700CB4E946BA50244e27f01805354cD8eF0" }, - "1684357854098": { - "depositDataRoot": "0x84dc9f76f32c0911b9be490d35a0544e297c5e3b2b1a7ac2e2f43bbbfab4f8a1", - "publicKey": "0xb8775dfa2e6247097b2e78b0f33df1576fba9bfe16af946820ac9b7fe1b5fe86d051d1703888e1925d0ed29926358940", + "1684510150493": { + "depositDataRoot": "0x54b8d6089ae41ff84f4c06822d79059840d9189af67013a0d26ca59614dfa64a", + "publicKey": "0xb4eb5f3d63a54af41cbb7d950ff4b24ead3d55246ef18bd526806038479a0606b8492ded433320fe911a3298c8d5fdb4", "operatorIds": [ 1, 2, 3, 4 ], - "shares": "0x00c09226b242dd4a336f8a42779b5b5f4464c0715f69e5c1b874ed8f8fd9f9406e04862187d6e6f038b1e14085254f59a42f81f029164a1c0a1ddb4c9f02ab9ad7bca8d15ef3b067fbed0afa97a4ea4aab96325daf3d1fde415ec0a2782e9537a382908a4833986209aa13dd74dc5a5de80c1e7765da9c48970117dbf66342c4e2aa1a7740cfd53334d663691a497470979388310aaf111c758b2cf5c07d3d9b47cad4c853d7ebac3405f9c102023f3bcb3d440d85cf5e8d2995453152dee8fce69bdb7ddeedb69cebcdfaddcf1fef67fb6f87bde9ae9cdfd776d1a77b6f8d9b69cdfc777f1fe787dbd9c77569fef6d396dd779df5dba6b8db5ddae9eeb7ebaf1ce3dedbddb6df6dfd38d9e7376b9d3775eddbd3b79a7357bcf766b5776f76eb977775b7f6d5a69dd5cf377ded7979ae5f79d6daf79f7c7bbf39ef6e77f3a79c7bd7f66fd7f9d7ad5af5bd9f79d75bd9a73cddedbad1fe5a75eddef36d1ed5de79dbbd1b73ceb577979ae7d69c79c6bb7b9e5deba7fb6b877c6dce35f7879fdb8f36f1fd1ed397bbdb4e9f69ff347bad376dceb8e5eedf7de6bd6f9ebc69edb875d71fdfde7cedef1e6b87fbe35d9fef87f4dfd7b7779d9f6bbdf6edcf7cd766fa737db5f39eb9ef86f7d5f77bf77d1cf34e9cf38eddd7ce78f7b734eb7e7871ed5bf3c7dcd3ae1bd1c7bb7fcdf9739d74d79f1e6bcf3677677779be3b79fd5f774efa73b71b77c7fddb4f7a7b6e5bdb67dc7386b9d1c7f86dce3be5c7bdddd6f9e766f671c77669feb9d397bae1befbf5a7b8e7aef9e74dba79ee7ad9ed5cddc75fd1aef66b57b7efbddd6b6e35dbadba7dee77f36efbd5e69d7da736d9af787bbdf5f38edad1c775d9beb877c75b7dc77cf347bd75d6f9db9db7e9fdbaedef1d71ed77db5f3c7dd79ce74d3befbdb8ef5f7b774f3ae77e9c6fd7dbe39eddd37e38ef67b9e3ad797bd69ff7a777db4ebaf1eef7777edf7f7f1bf75ef56ded3d7f471bebddb8f387f66dc75b7dcefad9bdbc69bf5be9e6dfe5df1fe3c79bd387ddd5e7df71bf77f7d778d1d79a7dc75cddbd1ef3d79ef5d7f57faf767b76bdf7ad77f386b8e1bf5e71eedc7f7d1bf79f37df5efbe7a7bcf77d34e39dde7bcd766f9e9d7f8d9c6b4eb46daeb4775f1e7b67b5edddf47dadddf1f7fbd3ce9ae3ddfa77dd39e1fdb5d34d7669c6dd7b76df7f771df37ebae5de3ae9def5db5f1cd5cd38edc6f56b7e357dfdfceba7b66b8efae79eda71d776f5d6dfe76f5ae38ebbf7b71ad78ef6d1fef46db7f8eb96fadde73b7776b7d3475ce3dd79edc75c69a6f871dddc77579adf9f1cdbcf39e7cdfb79b7fcd9fdb471df397ded5ef796bb7dcd5bdb9f5e77b75adbad757b8e9fe7871cebbeb6e3defaddaeded7877adb9e3dd7bf79f5fef77fa7b6efdd9f77cd1fd5b6f8dfcddf69a7f86fbef67dd737778f1d7dbe5be1de5ce1b79ff3c79cd1ad767346bd73adbb6b5eb6ef57bbdde6de77aebb7bb6f879eefaef57baf38e5ce1deb5df569bd1d75eef7dfa7fb71cedfd5bf746f975bd77f1ce9f77769a6bcd357bc734d7cd1af7df757f877a7fbd9cf5c6dd6deededf9dfd6ddd7dd9defd7b47346b7e386ded7de5de9be797bbedef1ddf8e5b6de6b56dff5df5dd74f7b7dcf1b75ed5e73dd1dd7ddb4d5be1b6f4ef7dfb6bbebc734f78d5ae5ee3bf5cf1fdbbf7b7dbebaedad3dd777f6d5fefb71e6fd7df7bde3cdf67f6e76ef7e37f1ce357f579c7dad78eb5edfd34e3def9dfa73871ce5bdfadb8d79d3d69ce79f3ce3dd7bd1b6fbd3873ae9f75edbb73cdbaf7d6bc6bbd787377b8d36e79eb8f7cebd6b4d37edae5dd5ff5e7fbddb69ae9bef8dbbdb97bae3af1ad7ae9ed7cef8d3c7dadb871edbcef8ede7796f479b7bdd75d1bd37d9eebd6b7d3cf3cef5e5fefb69d7fad35df8736ebd79be5ce37e5cf5c6bdeda69a75eeba6b4eddd9be1eef56f86b4e9cd77ebbebb7f6d9e7bce5d6b7dfc79ed1bd9bd787b573de9af7dd3bf37e9bf5e776736ddae5c7b7e3c75ee38eb8d9ee77e3d6fbdf5d3473b778f1de5fe5ad5df5e79ad9edba7f46b771a6bce7a7fcedaf1a7de6da7bce7bf1cdfdd9f7b675ae396fbe9bdf479bd3af5b6b5db773bd5a71aedc69a7f475c79aedd7347b5f7ce1b77bd357b67fad346f5e5b6b777d7f6efce36df4ef5f5ee3b7757faf1edfaf7a6dddb9e5f71fe3a6b97bbe3877cd37efa73af7cd9c6b8df9e1d6f679f6dfe5ae3dedef3df7b7b9e3be9ef3971ad3cf1b77b7bb79ae9df5edf4f1adfcf78f357de7fde7bf1b79bd346dfeb6efd7fce3cd74edef7cefaebb75f6df73cd76d7b735e78eb7e7dd39d5ce3ad1e69b69df356dc735ef5eba77977bebae9fd79ef9edfd9c7bae5a7b869e7f4e1f77871af3aebb737d1d7bce38d9f75ef3aebaf377397dd7db73971cd766dde3cd746f67baf7973875b", + "shares": "0x00c092e11b4523e99534fc2f5fa4ea26b83ba3527312734ee7eb52811d6f614b0c2eb7dcdd983f6113080b7bc08b1e2adfd78230a18189485c387c462ab54d0572008700d6acfaa0ababad372f07aaa37618e1552170fd57d83000c75a0981cae613adf1999c188d1997bb9c78168d85144d6cd45c514d1c94dd7ba2901dd52577a2abeaf10a851eef15a6218b96041be9aca620d5eb87e453383926887b710ee9723bd1fde5e9c49e8857bbef0e6069560fc003277ba93679a67653a0751d70eb5d6dfe9be9aebb6f971be7c7377bd6bd75eeb9f397fb7de7b4f1a71a7776f6e38d7be7df35d9ae38ef97db73ce9e71cddc6f4739f5adba7b5df8d77f7df76f1f6b5e7bd9cdb4d1f6f67f5f77d5d6fad35e5a7dcd9f6f8edaede7fd69ed3bd77e9d77cebcf3bdfa7da6bae1b7f9ef9e5a7dfe77d7dd7df7ad1ed79e5b6b4d1fd367f6f75df46b46fbebaebaf1beb879e6bb737db879ee5f73af5d7b8778db5f5fd76f1f6b6db6f356b671ce37e5a7f9e797f477c6f5d5fd5f7f8f3be3def5d5eddde9be7a7f4f1ce77efcd1be5d6de69fedf79bf7cd396b9d5af38db9d5ce79dfaedef7af5bd756fd7f4f1be1d7f7e5a6dc7fddf775af77ef679fddee9f71cd5a77dd3c75bd3ce79efcd9dddde9aef9eb8f7777ad7777d7767767fcdf7d7aef77db6dfeb5e3a7da6f9f38efae1febc6bbf39d7673af37f79eb4d9de9cef9db9f1de79df873bf7671df7cd77d5e69ddfddb6d1ed386dcededf671fd5c6bbef9e75f3a71e6fa79be1a75e6f9e5cd75d9ddbadb5f74e5defc7b6d5ed1b6dceb47baf35e3769bf377f8e7b6fae9d6b4e1c73addcf356f5f3b7b6e75d1eeddd3c6b66f8d5b7b4ef86b469f6f8df8d9ce3bef977979d73ddf66df71aedfd1cf7679ceb87bce9f7dbe9cd9bf5dd9e7dedf669c73b77beb87f5dfadf4ddb73ce3975fe9de9c7dc7367366f4d1a6f9db7d9fd5e6da7bb75c71ae9fe1f77df5b69f6bad387bc737ebbef569eedddbcf5bdde6f9f1e736738f796b9d9be1c6b9e377f5ef8f75d9e79e7dd6f771ff7ddb8e7bf5f77871e739f74f78f3dd5be77d1cdf675fd7ad3cd9ee7a7b87b8db973de35df6735ebae9a71ce1f73a6b5edaef571ee9ed386fbd5aeb4d3d6bd6dcddd77b7b7d3af7575ed9bef96fbef675adb8d78dfdf7de9cf36edce3c6fde3cdbd7bbd9c6bdd34dfb7f7eb6f377b6ebb6b679cef579e69e75ed1fdb8d9ddba7df69e73cefae9ff5e69cd3971d6dbf5d7346f571eedb7367b9e747f7f78df67fcdf5ef8e3cdb56df79bdb8e1ef3ce7be346bb6bd71b69d71fe77d39eb4e3cf1addc7f4779f5df1fdbbe1f6dcddc75de35ebbe7c79d79a69d73cd1de34eb6ddbf1fd9ef5ddb571beddf7575ee1ee9ee7c775e1cef97b97df79a6dbf5def8eb96fa71adbbd1de1de3a6b7f1edf6735e1ee7d7faf3bf1fddcf1be3c7bae1feb9db5f5c73d71fdbadbbf5cddf7bb6f8e1ee387fc73c79deba75a71ad3773ceb47fd71ff1ceba75fe78ddaf38edadf5edd79feb6ddfef7f1ae3ad5ff5ed756ded79e9af3669df1ed346b873b69dddce7bedfebbe1a6bad38e78f76f7777ad5e75ce75db9734775f7de3c69ddf9df77b8df7efcd366deebdf5d739d7ad9f79ff39e7b7baedc6fceddd3b6f4e5bdbc7fa75ed5ff34f3777769bdbc7f9e5a71ed3cf35d9a71dd74e5bf74d78e3cf36d1c6f9f34d1ff5f6ba7f4f36f3bef9e38e3bddcd9edb779bdb87fa7b9ef8edce3af1adbce767f8f1aef4f77dfa6b9dfa79dd5f778737e9c69f7b46b96db73777679beb46bcefad9bdf6f3575ee1a6f97fcdba69b7bdd36df8f1dd7d6bb77779adb96f679bddaebce3c75d7dd77af3ad3cd5ad9fe38db67fbd357dcf5e7f8d9bf75efbf367b8e78f1ee5b778edcedfe7aefb79edbbf3cd75e39db671cf1bdfa776f3de3bd39f78edce7dd9ff1fe1b739734f5ee1bf1f75f79a7b4eb9ef66f7d1f7b6e1dddbe1fef8d747b57f4e9d735e3def9f1b7b66baef773de9ad5dddad3577473bf1a6dae1d69af1ee786bbefa6dde78f1bf357387787f4f1a79c777f3c75f69ad3469fd1de7875bdfbebd79d7fcddceb4ebc6db79ad5df3d734f7bf1ad3ae5a75b73bef8ebde1af5ee1d7dedbaddd71df7ae3679df3475fe74739d7debceb5ddfeb47f879bd7def77fbf78e1f73879de3971ee1c7f9d34d3c7de6bbd1df7ad37d756f8e5c69df79d75d5b79fddee387fa69ceb67f9db4db6f77db6dbb7dfdfadbde7ce3573b7ddf7669d6fddfb77c7dfdbbf3bef4f1fd3df35ef8edde9e75f75ee37e356fbf74df4edceb8d1cd1ff767fd7f4df5e387faeb6ebcd3cdf4d7d7fd77c7b5d5c6f571a75df5ad9d734d38f7addaf7d6df6faddde9af3c774ddcf79d7677a7b9737df9e7c7bbe1cf1eef9e3ddf7e387fbe37d7473cd76dde6dae7cd1c71fd39f3ce9bf1deb56df7db", "cluster": { "validatorCount": 0, "networkFeeIndex": 0, "index": 0, "balance": 0, - "active": false + "active": true }, - "signature": "0xa039a78ab2b030fd9a9486b95f268e9bf4c29a7cf17d5778bde89cccb85ad1dcf5e7f4284d8dc9ef47b731d684a5d4bc134e0570a2a40a6cc97148992b5c49cf810b3a59094ea6f071a308ddaae644bd8954ff0d57eea5a2ab5a3755007267ba", + "signature": "0xa476ca15430a49ac63bc86679eac7c9617c32af2448db31e4353c0bbdfef24c1ad7aa8a981eb834dce58f183bef41654069af0861c188cbb7cbe82790f6a307cefe10da7408f9ca0cdabe27128d3287e75a508d68c7976d61a9ccb0f29dd5ca1", "withdrawalCredentials": "0x01000000000000000000000007E05700CB4E946BA50244e27f01805354cD8eF0" }, - "1684357867142": { - "depositDataRoot": "0xa3210c38e6081a61b91403d08242496fbfe178b0dc8c0710fd66554de0bcf7c9", - "publicKey": "0x94da8cd062b0138ac7ad33959902add168cc82a84a74f9f6c36ad4deb2fcc916259f0f55aba6f975ffdf726e0674cce3", + "1684510604996": { + "depositDataRoot": "0x9c9aeb5a7a2ec9abbfafb9cfb0be78abb8c05930f44df410180b326dfddca331", + "publicKey": "0xa146cf9f0f80de325b5b158f064580f5d7018507415d87fa34e8819d61e7483d8b38856409f8dc1330edb0d4e2a10eef", "operatorIds": [ 1, 2, 3, 4 ], - "shares": "0x00c087a63d79ed00d008cfd376a2dfcbb96cc80984d4e68539b58d0023f454396fd06caac537a871aa7d88dc7048a9fea6e9965a046de877c2cba8853867fdae1c22b1bdf621f9b6391dd8a4d1a597ffac0be79c7309885831554869ec7b8fc6e5e7a0356f461cd83ff19665f66f884c7381269fbacb0344988d483e670b95c2629799cddd3d7137245b30d00a3b18b745ab8907bcd3354635e463bb24fcbb10677aac5a227277c4e4ebe31767ec4e043ca43ff6dd761d4bcecdabab9557c6c2e390ef4d3beb5f38dddef879ed5aef67fb7b66f67f8f5dd7b79af1ad7671e6bce3c7baf1fe38d5bf1f79d6dbeb86fdd35d5be1adb575ae7af1fdf9e9cdbad1ed5c7deefa79bdf57bb73b7bdeb769b71bf347f7f37edad3773d7b9db7f5aedfe1be1adde77b6f5d1bef6ef9f7a7f5738e5cdfbf35f5dddb6ba7dcd77f74efbd78d756f9e7a69af5dd35eb4f787bae7777973d6dbd77f5bf5d6f7f78f7a6bce9cf3d7bbdbad367bc77adf4d3c7f9ebdefde79e37e346bcedd7b4ef47bb7fad1e7df7ba69a7766ddef9f1e7b573a7fbd7aede7b4f3ad5e7ba79b77c6b775c75edf97f9eb87da69df76f5e69c6fc6dc79ae5ddbde1cd5fef777a77573d69bdb97f97b7d78d7475c7daf3ce3bdfcf3def6f7b6b7d1ff796b97bdd9dedd6ddd9ef36d3af75f34d5b7bb6f67dcefd7fb6b7e3a79ff37d7d6ded1e7fdd1f7f5eb8ef7e3aefbd9f7ded1cd75f5f75f77577deb771cf5ae5fd1b69e77d7777b471ff75f3ceb6dbde367dc6b86b7d9a6f8dfde34e5d69f75ff74d397b47bbd3cd366f9f1fd757346fcdf66f569de5dd9bf1b75f75ddf679fd9be7bf3a71b7fdd1e75be1dd3471bd1fd5d6f6d74d7c6f5ebaf7579a69f6baf34db86b5efb6b8d74f78f78ebb73a7b9e36e1e79bebae3c7dc7fbddb69de5dd7dd37f7de1b7dadf57bd77bd3cd1c7b673cd78ef9e79ddf6bad1df7cf35e1bd9c73d73d6b8f3cd39d3c6b669d7dc77d6b9f3c71ef38d1d6b96b9e3bf5febddb9d7cd7de5fe1a7fd6b8e7873bdbcdb47dbef5efdddce37ef7f1aeb4f3ad3ae3de37e757756dbef4d9fe1af3bd7a73bebbe1eedde7adbaddd7fd6faf1ee7b6f9e3cdf47b6d9ce35f1ce7cedbd1c79ae7779f69d7db7fb6b879be1b7dc7b7d78e75735ef4f74d3cef8d76ebd7dcd3a69fe5eef7ebb7de7b96fad3bf757f9e75f3dd34ef7f5f71fe79d39dde69eede778ebc7f4df46fddfdd5e77a79b6fde5f7f6d7cd78db6d1ed3d77ceb7f7b6dcedfe75f1e73a7b9efc71de39f5cf1ad9d75e75dd7ddb6e1e6b7ddcf7671ee5e69bd1af3a6b477969ad34d1ee3adbdebd73bdb469deddeb7d7ae5ddb8eb7d1cd7adf6f37f3a7dde7cf7d6f9e777fcd3c77deb8db9f1b79ce1be9ce366f7f79738e756fa7dbef77deeb4d3571a6ddd5ceb771aeb675fd79f5e79d6bb776eddd78d1ddbc774d9c7b7f74ef4d3579a75ff5f71b75feddef8f3d69f6f8ef8e5a73c7ba6db6f5ebdef9734f7c71fdfd6bc71aefbdda6b7778edcf1cef8e396dee79db9eb469ad1c71bd74eb4db7d1ee777deedc7747766b679ee1fd7de3cf3ddbc6de734dbcd78736ebd6f7774e39d3ceda7fb7b9ebbe74f5e6f8f786db6fc7dfe35d7ad5fef6e3a75af7673addef5be1b6b777bd1af1fe78f5edf7edbe3ddf675ed9a6f4dde777737d1bf357bd737e1b6bc6f86fadf7d36db5dfce9fe5debbf7c738f5fd9cdf76f4e37ef9f3b739d76d77ddcf5ddf87f8d1cef5f1cedb79a69e7fdef7e7af76f75e9e69ef3c6f96dcf38d34dbd77569ed7477675ad1bd39d5d6de79fef479c6b9d5a7fd79a7b9f3d7f4e3ad1fefd6de6b4f756b7d9fe7d6b479aebad5fe76737f5ce5fe9d7f47f9f5e6ba75fe76db9d1b7387fae7bef7ef6ebd7dddf5f5fd9fdf4eb775beb77b679ce37dbd77b7fdefaf78735ef86bc6f7f776f9e3575d7dbeda7fde3c6f9e3b73bf5b79f6db77bd1af76f3ae9ad79e7ad38dbdd7a777e37ef66f86f46daf7be36f3bddae7d69c7b86fbede6dbd3d6fde35d3bf7b7b47f6edae9ed9fd3b6bc6fa73a6bbd7ad9fef57b86b67df69f7fa75a7b8df77dc7747bdf1a779e38ef6db96b7d78dddd1d6dad9c75debdedef5f6b4d397f6d5aefce39e5fdfa6bc73c7b76fbe5c7de6b677bdfb6f4f76eb6f1c7dad5ce3bd1eeb47bdeb7f3d6f577bd3bef87b4d5c79fe7cd7cf76735f5de7775aedae3b7dbf1f7bbe37dbbdb9d5de9d6bc77ae7ae7b73bd1e6dbdfb6bcdf573bdfaf5ef5b77b735e7c736df67bdf1cd76d386b5778f7a71f69e79bf1fe1c7f46b5e767bae5a77d7f9f74e9ee34f7b739f1ed35f1e6bbdbaf3b734d9fddcdb67bdf39eb76f57b8d5feddf77f3de9feb57fa7f571b7386f46fbddadfb6f9f7a73969be3df1b6bce1aeb57756b9ebb6f8e1a7fadb6ef9737d7bdbd6dc71ed1bd9dd1bf7deb9d3c7f56faefc", + "shares": "0x00c081caa6c16a272622918886db902f3228073fa00cc4c5e365ec806fa650d4242f42aca8447361e7851e3955edf2746b56ac73b09c2dd726d70ca5b2dbf3474c58a1a5499e59958c3fd65ee77781a7c293cc12446ad257fa0ac1ccd2ed25f1991d8f608071270bb693ba0e8e3185a3a4c61ae98a9db1484e3b3899b0700cc2040662342f65bab01e6d9adcd56df03f2490845f84659648401a4380f99b12c17da050e8ecdfb799040d6b0d1160ad473f62aed8bfe5c9fdc85ff46fb762f373f7d4e7bf5df3be1feb8f3d6bbdb477b7dee7bd3bd35e9bd5ff396daefaf1f7b6d7cd78ddbd9be9eef469dd9ae34db4d1cdb4e3adfad79776776df6d9d6f7f1e7fce9d6dae3c79ed3bddd71d7baf1eeb8f75f5ed7d71fef5d1a6b6e1cf1c7f7d1c7b577c7fbf3775bd5ed9c75c6b7e1cf5eedcd3579cf36e5fe9bf7ddfde77dbde7977af7a6b96dad5bddf69fdb7eb9dfbd3d69c77cd5dd7ad3bddfdfdd9cf1b79f7366ddeb5e3be3bdb8ededf7735f79e77f3de5be5f7db6bdedcd5edbb6db777ebcd5e7b47f873cd79e386b6edbe1bebceb8e9fe7475e71deddf77f75e9de5fd9a736f39e5c7f7e9adb5d3ae3cd9c7b9ebbf76d38ef669cdb8edaf37e7b77ae766fdf5fe1feb9eb8ddd7bd71feb4f76f5b69feb77b673adbc7f5ef8dded9fd9aeb5d7adbdd1cdbb6b471c79bdfdedf7b86fa7377b6edad9f6f5f746fce3bef7f5bf1feb9df9734f5e75febae5d73de7debcede7dc736d7bf5ff766b6db9edd75e7787b9e1b73cd9f71aedbe75e9ef7cdb971d75eeb577875edb875ef5ae5f6bcf3c6f96b4f5fe36f367f9ef6f1ed35f78d5ce7df5b7b67f9d7ad7d7fcd1ae9ad9ce34f1f69fddcd9de38d37edfd7befb79fdf4d38f75736d1fdfb7fde9b75b6db7fd69e6b5d7a69cf36f746f5f1f6fcd36779ebdf78efb7bd73c75dd1a77c6dde776f8eba71d6b6e9a71be75ef575b75ed9be79e366dedb469ad5fef47776dae9d7bb7f8dbb79a73ae5f71b6f5eb4f787f66dfd5a71e69eeb5eddd396fb6dbf347f8f5ee5cf36ef77bceb7e1aef6dbceb9e77f5bd37f1bd36d5b77a6fc6f96de6bce5bd9ef1b7f47f66fd778736d34f5c6b8e3c79ed5e6dcf7471b69e6df6baeb9f5d7f96badb4edf7f56fc75d7f46fcf1d6b9d1bedc6f8d3473971a6dd7bc6de77adb4d1fd9a69f71b73ce9ad79d3b77bdfde5edb5ddfd5e71c737ddeefb7dfe75df56fbf7a69fd75e1dd5b6fb7b9e3cddc7346fcddeebc7b7eb871a79cddaef6f5d75ee5ce357387ddf5cddcd7adf67bbe3bd1cd9cd9e7dc6f8e77d9a777d1ddfc7f5e377f979fefce1d69e6dbf3d6b47dfe9fe1cef97def5cf5ee9ee3c7f9d39e78ddb79ed1ed77edcd7575fe1adfcdb477cd1aedb7b4e7af3adbdd7a69ce35f75775db973d7b6e78734d3479a7bde7af786faf3cdfaf3a7357366f67ba6fadf67f8d1be5ee3ae346f46bbdb5ef97bdddad9ef7cf34ddfd347f4dbcf35f777b4d9bd7d7b575feb9e5ddf57f477cd37d5ad39e746b8e9e6b7efad76dbdddef7bd78e77eb979df34ebbf3473cf37f36ef7f7671ad1d6f9efa71be35d35f3d7b471bef6e7ae7c73df5e734d7dd5c6b4f5ff1cdfd73d73dd5de1ee5ff1cd5eeddeb67777b6d3bf76735ef66b9db5e3d79aefd77d79ed5d73cd39db4d3af346bc7f4e79ef9ef5e797df6fc6f5f1af5b7ded1adfcf79d9a79ef77d9cdbcf1c7fdd37ede6dfe1be1b6b4e3af37e36eb5f367b4edd69b6b7f3bd7ae1ad3be1f7dedf469feb6d7b7b4ede7bde3875ef5aef7d376dedf76ded7be7aede73d6b7e78f767787f86b4d5fef97f7e79ddd69bdb67f673bdfd71a77defc79be9d6ddf3475f6bbeb7d9dd34736d3dd5fe9ef7c6df77bdfcd1de1f7bde9cd1d6f4f1bf3cedc7dcefbd39db9e76d38dfae7cddd6f7edfd3d6f4ef9dfdd3df3bdb6d34f356b6d9bd5df75e7debd7b6f5bf35f5c7de7badb9f7b75dd747f67f4df9df4f1b69debcdfbf7cf3bd9c6fdf7af3ae5ee9ad9d75a7dbd1a75f779779edaef57dc6dbd5af39e5fe9dd1cf77e377f6d3ae35f78f1ee9ee9aef6f787fa77979af37dbde76db66b9d7969ed9fe3dd1dd75f1aebdd9fddc75b6dc7dfdb8e77db5d5d7bbe7ddddf7679edf7efbebb6dfd9d7faeb6db5d1ae9af36f1a75ee5b6b5f7969cdf9f75f1ef77e36ebaf1fd1a6f7ebbd1e6bbe7ce1eeb9d346daef879fd9ad76ef67dde34f1fef7e35ef56fc75be7673adbad76d5bd1f7dfe9fd9bd7b69e7bd71dedbd9de9feb66fb75ff7ae1ae3af3dd7c71cd5ce1d6fd6daf1d6b57dd6b6e74774dbc7f7f5f6bd7f471bd5af35ebc6ddf5a6b673cd3de35e1ee36d1c6bad74f39e7bef9dbcef479cdf4eb67f6ddfddde3775c6b86daf3bdf6d7ce5b7dc738db6775d37ef9e3d6dde79d7c7b87dd6f76b4f7c6b9e39774e79e5cdfbf1fe5aeb97baedd7b77b9", "cluster": { "validatorCount": 0, "networkFeeIndex": 0, "index": 0, "balance": 0, - "active": false + "active": true }, - "signature": "0xa1bd04fdeb5fdf27db1649f8ae12a932e38353523eba695adaa3612db59472792aeb309bb91e2862f89eb4c707aa565e19d9cb4db73bdb8155074c4d7d726da08ca05bc2ea06df4fb1ae5a81108a891e7d232a6f710bb24280401d79a744a7b4", + "signature": "0x8281218a5eaa9295e8e6ea7f65a6e140067d4490928616ba8b2ad2d3a0cfe9a22fe69295a794e11276bbfb04093d971c0470c01e5aa078c5f0acadd4b9b6da85813bb9fede0498712c0547b425994b8cc1ab36216754daa6b441b170bc792624", "withdrawalCredentials": "0x01000000000000000000000007E05700CB4E946BA50244e27f01805354cD8eF0" }, - "1684357880194": { - "depositDataRoot": "0xbbcd876c2748a255905093858276c9d64cb678bd499d8f3769560ccb9ed5d783", - "publicKey": "0x98f5be29757f3f5d032e8bb09818c4b9206a88a62f246865b2fa297ba234c835c48609e821649dc70f166199e8a292b0", + "1684510634604": { + "depositDataRoot": "0x88803f1f233c87184b09a2f32b01a45193a024a10ea90ea99c9276190222dab4", + "publicKey": "0x8c4d72f7b4cebaac60cf3ee369a963fc509e6ad902fe206be15faa79e8fc41cfc61aeb6a88cd011de7c67330b917d109", "operatorIds": [ 1, 2, 3, 4 ], - "shares": "0x00c099dacd9f678314dc9f5ad0fa26cabcf0276c111517f58b510407200aa8e9e7b79e573e7a8378cb59378a1c88a46ef4eab00d55a998612b92d8b75bf6f004424093469d17f091c3ff7b1cddc37673a76c302d346a9ea27b3475b11982bccc0e81b738400b0b575e503da66e365d5beec0f09e2b74e484c1c5eea7d318af143b15154725570c686cd7924240638e22cc57b77c3d86e275a572816b38e1efa3c7adf1d0bec4b201c4bb3b51457bdd671cb928432e84010e25ecf26a484b3dac90b6d5edde79cefdebd77adbddde6f7ef97f86f6f1aedef7dd5f6bddbadbcdbb7dcf1aef8f386b67f7d1df396f669ce3ce1de1adb7ddff75e9a7fb6b7e34efa6fddfaf1cf5e6b67dcf7577dd9aedef78e3cf36dfbf7c77bf5eefbe5d7bad9ee9b73dd1e6f4d9ae35d1dddfe7c7bdf7ae7ddfcddd6bbebbd9bd1fdf9f76f3cd7c7fbf1be1b79ddfcd3aeb5dddd1ee9f7fc75ceb977671adb9df46ddf7a77b79be1ad38f5fe76f5de9bd5af3cd3bd1fd3469bd9fe37d767ba774db87f4e787de73473debad1df78eb5dbdedceb579a79c7fb7767fce7869ddb4d7d77479b738e3d77bddc7f775bdbaeded5cf7bf7675bf1af367bd6b6ef4778e3975b7bae3de9de78df97bcf79df6f1e7ddef7d5adfadfd7f67bd75de74e1dedbd9de1d75fe74ddaeba73d69e75bd75dbcd3bd78f1d69cf3d6de6b47b46fbf77f78e3de35dbcd9fe5ae7af7cf5e6df7f9dbb73575e6f56ddf3ae9dedcd37f796b5db47bae5cf3c7dfdb86fa7bbd79d3b69af3df36e1b7f869eeb879fd3bd3ad5ed3de9b73d7b9f7be78ef969a7fb77d7b9e3ad5dedc7b4f5fe1bef8ddb6de6b5f1aeb7e3adbb6f7dde6b473adbd7fd7bb6fcd3cd1dd1ef76f5f7b7d7471dd7ce35e7bdfad74e7de7cf1ed797f46f46df6b7f5cf7a6fa69e7fdd3b7346daf5de5befd69ce1c75aebc7b877dd3ae9feb5d5b7f569ed9ae1fe5d6bbe3b7f9e9de766b6f7a69fef6e1ce74e5de9febbe756fd77defad7cdb97bdd7ad7be3cdbc7f4ebbd5c6b8d75e9aef6e9e6fbf3adddd37ef6f766fc739f36e1df1b77471bf3c6ba75fef9dbad9f75a77b75fdfa77ad3c71c774dba6fbf5d7ddf5d7fdd5c77b6f9f35df7ddce1c73579f7787ba774db8d79efd75ce767bc7f77fddb9ebdd5addf7bbebad7ce77e9e75a79ae75eb76b8f5fd9deb8d9fe9df5cd9fe5f71cd5fdb9d5bef969edf8d79ebb77c7b56b7f3adb7ebbe1ddfbdbceb8eb8e9cd1ff1ed3de34e7577569addd7b4d38e5d69a79ae9c6f66f86bb6f975fdf96da73b75ad357de7fce1dedbd75d747396b7eb56f8db9d1ce3c7bc7b7eb8d3def7d9cd5fdba6df77c71d776f74776e3bd9fd9ed1eef7edfd9fdfa779d1ddb9f5ae1e7376fd69e7bbefcedfddc6b6e776f4f77ebad7ad7973c77d7fbdbd75c7dbe9e75de5ce1f6dfe9df5c6dd79cdf7eb56de739f5e7b7f38f5debbe9e77b6f96fa79fdbaf1aedbddde77779e746dee1b6fbdb9e7af3bf38df7edb6f46b8e9a77cdb6d35e5ad74f7675f6b5edbe9e7746da6bbf38d3b73675def5e9dddb6f4e1cf777bbe7dddadfbe3d7b6dfc776d5c7bc69eeb479feda79a77bef9eb4e34dfcf78f7ad7aedbd5de34f38f35e347dfe7defdf3de5f7b66fadbc75ce797b5eb5d5bdf8d38dbc6db75d6fbe3ce38d9ee3af37d75db4dbb735f3673cdfceb86b5e1a7bd7b67f7d9b79c7f6d35f1b79deba73b69c6f8776efaf3969c734db6d39e3be77f7cd76737f1ee1ad3c7bae5bd7def9779e3be5cef56f5edbddd734739e1b7def3bd37d386b7db8d767376f57bad77ddcdf7e5ff3af7cdb4d1ddfce1dd39db5f5a6b4df8d9cdda69ce377b8f75e37f79e1e73cd9c7fdeb9f7c6dbd7d6bb75ae9cefb7fde1d7347b771c79f71b6dbf3c7ddd9ee1ff1b779dfadf9f1ef7b79fe34738f5cf75df9f1ae36f1e7bd7dde34f1f6badb875dd9b79ce3d75f7fbe396b66f8d5ed3b6dfe7b6b969aef7edcd76ddf7b8d9c6f5e74e5f75e6f8e367b675a7f879d69de5ae7df3c7f4e7ae9c738eb4776d1adb5e36ddc778e1a69d7f86b871bedd79d6bd6f479cdbdf79edaef9ddef7ae5a779d5de3dd76e7cd35f74e39f5ce5bf5a6fddb77dcd5ef356faf1f7bce9ed37e1e7ddefdd3cef8f74f39d5aefad5f77575ad3a6fd77ae75ddf71bd1ddb56dd778e9ee376b775be3b7f4f3d77769b69d7f77b46bc69ee36d9aeb5e1be3471cdb77dc7df6fdf79f1aebdf36f5e6b771bd75ddbd5be9b6bb6f7d37f5ee1f6b8e3ae36ef67daf1a7b56fadb9e9e779d1aef9ebd774f7a69ad1ff5bf5de5feb5f1bf1af7cd3779deb5ebad3975c71bd7ce5fef67fde39e1eefa7f7e7b7b4d9de3a6f77b4d1d6b8e7df3ae34dfd6deebce3477c7baf5fe9bdfc7fbd38d3dd3ce3a7366dcdf6f3ad38db7777f3b77dd1bddbf1d73971d6f5f79d9fd7d6f7dfdd7c7de", + "shares": "0x00c0a48c399da36abc5e0d3a36eb71c920ac130005c9bfc285ae10e85f77c75d1f8262ab2d152ed98545c2ac1ca8feff27e0a71d4ce6efce1201725f7bead50d7eef1f65be704d967d79ba62349f1cf41550b26211b1a93276d4e0ebeb37131f0b77b229afa84d4122f2656c9af0338150d4bd03e03b6a41947b6c8f7a3361b6276255ee552cfd8ff2a3b7b5793e9b09ba6d82a29fe65eddfb2f0ee28a959f48cbeb4693ff5d188dc48290dfd7e8ae79cd6d4d99498564979fb8d98823eb4c94fbe4dfaf1af1c6b7d7cdf8ef579b7dc6b8f78735d3adb673af5bedaef6f7d6ded9ff35df6df6d9a7b56bdd7bf36e386f77f8eb7e3a79f69ce9adb67bad9ce7677cd9e69ceb9ebde5af5a73be797bbd37dfce1fd3af1e7bde74e5ee9edb76bdd756fce3b7ba6f5e9bd9fd3af7b778df9df8f7969cf3c6fd79c7def7a775d75d3be5d6b4d9d778f5fe5aebcf3cf3d75f778dfbd1ad5b774f34dbbf7875cf746b4dfadfb6db75befc7dbf7ae9c75ae5e7f7d3671bf1cdb6e7671ceb47f7739e9fe7a6b5e5ed5ff5ef5cf1c6bad3d69ae9d75c6f8ebb6bce7dd7cefbe5be1d7b7e7bd387db6bbef9efc69f7b4dbcd1ed347746f86fcf3a7f7e1ceb479ad5fdbae5cf5ef34f5fe3de7de74db8db7f7adbbf7bd9f7b86daddcd1ed9c6deddc6b87756dfdb47bb7f9d7df3a7fcf7aeb46bb69c7f56fa7f9eb4d1be9cdda77bd9adf5d3de9e7bb69ce1b75ed7adbbeb9738e5c69ed3ad9feb7ef5d5f7fc7786f5d1f6fd77d736f5bef56b8e74d9ed35d5d7fad77d3be7bef4e797fa7b4f376fa7bae3cef87dde7a6f577c6bcefc6f973cf5fd36eb9ef875a6dbd7dd1f7f6f1f6f5e7ae79f5cf5ae5ae9b6f979b7dae1cf76d5c71ee7c6bcf7beb66b56fde7dddff1af5c7dbf1a777f78d5deb5ebb6b6d5af5fdfc7faeb46b871edb4f1ef5ed9fdf8d7c79bf7c7fbf7d73a7b6d9fe37db57f8dda736d5eef4dfcd1ddf5f7779ae5dd3adf6779dda77ae9df1ce9f779dfc779e5de37d1eef7f7bd9d75b7f96fc77af376fc77c6dc6f7737d7ceb6dbdef56da6fad1d6b76dce1ddbde7dd5df34f3679ad7869dedcd37dfd73c75bd1de75d35e3b6fadf4d1d69a7b6776f76ebc7f6ddddf87dd6dfe3771b6dcd3af1ae9aebc6b66b6e3deb9dfdf5eedeef469ee1ce5d6bb6ddef4e1a6f5d5ed9adfbd5bdf9ddce9ad9ceb5736d9b6dd737edc776db86f66b9f5f7fa7daddd79fedf7dee9e6b4dbaf3969ee3af77f5a69be78dfaef7df76b7d9fd9dd7aefc79e6f8f1edbbe38ef7f7ad3be7c7ba6b6e3ad39776e3bedcd38df6e3d6b4e39d9df1aef975f6b7e3df3c6bc69aef7df4dfaf34ddb73b7bc71b6bde79d5dedd738d5ad357b7f3ad3477571dd9fd3c7faf5cd1c79c6b4e3defdd7cdb9f7aef8e777df75e79de1d735f1b77cf35e1cf3a7fbd5a738d1c6b7e9be7bef47df6fce7ce7be78ebdf36ef9db9eb9d757db77cf39e7af37ef9efae766dae3a6b6dbbf1af1e7b9dfce1bd35e3c71de3869e6b6e3bdda7f6e3971c73ceda73dedfd75f3adfae7bf7d7f57ba73ce1b73bf1c7b5ef67fbe9ad75edce1cefdd5fe9aeb6e1fe76e9be75d1c7387b5e3bdfb6dd7f575ae5ff34d7ddb9f776b4e5fd3aef8eb8f39e7471ce1e6b6f5bef7e7def5db4e9e7fce9bf5de7475d7b6f3579ad7ce7d69cd3df1fd79e767dfe9d734f5be3de7bdf8edcd386dadf96f873ddf9ef46b5ddae76774d74d9a7786f769dd356dfebde397f5eb47b6f5fe9be5aef7e1ed9bd9aef47dbd9bf75f787fddfa7f6e9cd7cebcef47f8e3c779efdf5af5cdbb79a737e1d736d3ae7c7bb6bd6bdedcdb8d76dbad37f3a75aede6b5df67fdef9e1dd3c73c7fce38e9addf79ce5de7d6de738f7a6bce7c79bdf979de7ad786dbef5d9ce3de1def5ebcebc7b5e5debbf5b75f7bbf3c7df77de7669bebae39ddfd7bdb4f757b77f4dfad77d1ed37edc7badddf7d6b5f7cd77d5df74dda71ef757dedfbd5ce1ae1af1cefb738d36d7469fe9edb6e3be36d1a6fdedbd5af3ce7769df37ddfedee9f7f6e5ff5c7dfd5fd5dd1ed39ddddbdf74db8e3cddfddadf76f4efb6f76f569d6f8edaddeefaf3cd3d75c6b7d38db9e38d76e79e3c777d76f5fedaf7d6dfebce1c69dd3bd3bd5addcd9b75b75a7f97dbf1af7aeb8f3873bdfcf3aebb6b9f39efbe1ed5d6fc79e6dc6daef8e3d6bcefcf78efdd39d34f7bf3aeb77b9d5ddbaf1f75c73a6f9d35e387b6f74735edb6fbf1de9fd35e9df7d79edfcf5c6ddd796f5f74db66f9db7f1d73df35e7be7af3be76d7ceb9777e357bce7869ae5de9c7b573a6db79aef9f3cef6dfddfae1fef679e6f5e9ddf4e34d74ef9f5ae5beb677775cf3579ee796b4ef47f47f471fe7577cd34e3dd397b6f1f77cedeeb47b5e9dd7579be39dde6faf3cedfdddededfb73dd77d7cf39df6e5f7dae34d75edb7ba69a", "cluster": { "validatorCount": 0, "networkFeeIndex": 0, "index": 0, "balance": 0, - "active": false + "active": true }, - "signature": "0xaf3f43fee460de02410f7bbe2f3615b0126d88de9d61030901b751a1f76eeb4b842e2d57a346c39d7f6e00c33ba4ba1b0d76a5729238ad61de067ef379c8de0e8019a553d4a9bbd5a0f4392043cee2ea25efc44f3547145ca3b0154ef1601584", + "signature": "0x84b5a44818634ebc523a98acdabfa98ee40acdbfb9d553f33fc9e6cb46158a8ff81383d4d144ec08c2822587c733a866033a5046e4ca6e1dea1f7b7a5c02efea1ce54470aff6e35932a0e2ca68a0c00b279272a66f6181dd18083beab247eb55", "withdrawalCredentials": "0x01000000000000000000000007E05700CB4E946BA50244e27f01805354cD8eF0" }, - "1684357893150": { - "depositDataRoot": "0x0d632c7f52733ae2941c99ad8f604785de53d30fc7a4da61fbe80441ba4ebc8c", - "publicKey": "0xb113319f6159825ad0ba3ea44a3a9ca6a67a10e122ca4bcfb2b0d63596c6f14fecb43933a4169c14108d98f907672c5c", + "1684510649301": { + "depositDataRoot": "0xf4727f35ffe865e0eeca09b10673f9d15ca03e500490dd12fbf7c3dc4bf3e7e2", + "publicKey": "0x850c2153238347e5ee23f28676f1508a097f8e78d3e576391c5d9afeabd0cf4cb678dc299cdf91938f939724760db6af", "operatorIds": [ 1, 2, 3, 4 ], - "shares": "0x00c0a1162ec3924b9c31b87bf3d90f6c11725a59830145c64d2989d73973e9a74b1cfb9e65085621435d06351514dca78b2499ebf8e2ac9c896b5dcf067b6f18d4ace780f0d93f531599c9b2d8710d8bb0190ec5d8caaba56d334b9e361deb552a86a7c6be227fcbae53f2599b69ec4f2a468ef5f4e66270a99762a9ed39f2c46ede6a644f9c7daa85b69f4d080fa67a287d81c168bace70cc2b6cd1cbfc6b35fbe82a8670dfb650a8f4b22df078b37cd15c9339aa154f6ae265ec09e0a8e8f644dbd9ee5ae1cd1de9a7f577ad1bebb6fbdfdd1cf3c69d69a7fbe1aedd69f6bd6b677575c7f4e9ce5d7b56b56bd75ed5fd77e3a69be36e77f3cdb5e347f47376db7dd7f5dfddfbeb97dd7b66f4e7671de5eedd71a6b9db5e79e1ed9eedd77b6bdef66fdeb8e38edc778df67757db776e36f1cdb56fbe1cd9cdded1cef6e9bf38e5ed5af3ae5adf86b8d7c69e79d71c6f87f9e5d79b7f7e1ee9ce78dbcebc6bdf7ad3af5b71b69ddb77dbe9af5dd1a7fd6ddef5775e1c6f4d35d3ddf6d1cd7df776dd775e1fd3ddda6b675c6f6e7ad9a6f669c77b7b675ed9ad787b4d37776d3bf5d7747badbcf777f6f7cdf76b8734e79db7d1de1bd7d7dedb67f67f8ddff5c71b73a79b7ded5c7b66b5dfcd1e75c6dbf1af5ceded37778eb573de1c75bd9a7356b8df8e3be757db7da6df79bdfae3af75d1bdfa79eedde347ba7786f97f971b6dd6bbe5c69addd6dd75af1a7fbf3df7adbad377777f479c69bf3c7dde5dd1d71c7b66fdebbd77ebcddcf34d7477ce1fdbb6ddf38f1ae5ff3ae38e5c69cdb4e36f77db9efb75fe5ddfb7f4d7ce3c736f3c738e9ed9b6f5e3b7786bbe38d9adb6e38e9dd74d366def7cefaf5ae7a75d7ddd36d1a7fd79eebcf756b4efb77dd7cf5a6f96dd75dd5e6baf1ef74d5df397df73ad38e9ae3ae5fd9e7f471c738e5d7367f67db774d37f1af767b6ddfd3679bebddfc6bd79bd9d7dbd1e6bcd79efc779d35d5be5d7f87dfef46dfddbe77e5b7fbdb7f5adf4eb87b9f5eebdf1fdf9e3aefad5eef4f5e71be9ee7cf7479de5de5a6fa6b873b7f5ef96f8df6efadb8d3cf7adf4efbd3dd1b75e6f9f357b96f4e5a6bde767b4d74d3577977cf5aefadb7d3ddf5d1f6b4f79d77db5f1bdfaebc79be9ae3cefd735e76eb7eb5e387b9ddfe77dbbe3c75c734f1cf35d9fd74d5f75aedbd757f8ddae757ddd5eedd6f9db475fe9e77bf3d6f4d5e7bad9f7f57b8db47f6df5f1ef7bdfdf5ddfbd7c7bcf79d3cd1ddfd6df75de747bcf75d9fd34e35d1ad5e75bd3679b77ae5de7de34e5cf5af7469a71bf75774779dbadfc7747f8df8f7bebbeb9db76f9736df97b46df79ef7a6fc778df671ef5dd5ad3777af3c7f977cddd777e7def4efb71d77cd9dd37e3c775edbf7a71f73969f6dbe78e39edc75bf39e34f78d787fcefa7de7fdf78e1eddce796bb7f8e9bf78d7ad766bbeb477979b7dfd1dd39f3d7fbeb7f3571ce9be5a77b6dd7bde5eedbf3be9c6b46b9f3adf5f5ee34ef46bc7f47b4eb4e5a736e9de5c736d1c6b8dfb7347dd73c6f6f75f37d5f6b8e3dd78e1de9cd74f3bdbdd9fdf479beb6d5aeda75def979fdb6eda73cebc6dcd5b778f1e6dc6dff7ad3cd9f79a7bc75e77b6ba6fddbce77775e39e9ae5bd5c6db7b96b8774d7b6b9d357ddd9be5e71ddfbf5af1ce796fcede6bd6dc6ba79cf3cedcf797b7d3adb97fa7dd77579df1ad5bf78d7ae34776ef9df4dddd5d75e69e7f5d37eb679de9fddddf86b4e9be9fe39d5f7f5e5eeb8ddfd39d1e7b8dfd6b5e5af356f4d37db7f79d76e75e3d734eb6e7d6dc7dce9d6bbe78f3df78d3c6bcd75dbb69e73b6f5db5d7bf5cdbdd1cd9ef7bd9bf35e9fdbcd3bdbce3deb573973777b6f8e9aedbf1f73af77dfa71beb66fbdf76ded797f4f34eb6edf775f1b7b8e35f396df7b47dfedbedce76ef4d3befad35f357dfef97bdefa73be1ed74f5fdbde5f77673ae7869edb46f8e3b6f6dfcd346b4ebbd1beb7efb7ded39d1bf1ceddeb8eb9d36e1ddb86bde7ae356f8db56f8e9bdbadfbd3c7dce3bef9eb56f9d1fe5e6bd739e1eef67f5e7bef8736e5df1e79cd36ef975ef5ce3869c69e7dcdf8ebb69b7f4d9eefb75c75fe35d79dbcd9c69e776d9ae1ef366f969fd5f71ee7c737f39d1cf7c73cf7b71df35e1f775d9b7f4ddedbcf7d69e71fd767dcddad34ddddb5f76efcd376f6e7d79e7b4f776f5f746f777d79ff7adf86f5eb7e5d6de6bd6b8f7869cdbddde77af3ae9b7bcdf4df6ef9737dfc7b6edce386dddb6eddd5f734d1be9ae1af3c6f469e7de69deb67b5d5a7dbd766ddd3b73a77adfcf78df8d9f79ed7669ed35dfb77ad7d7fd6f76f8ef7ef8d76e1ef3a69bf5cf7b7776dd79dd3473869bd1e7dce797f879ad1aeb571c6dc75cef4ef7d9ad9ce5bf1edf871de3a69be1ae3d7787fbd9dddaf3a71fe7b6fc", + "shares": "0x00c08ce94cbefd894f2458feea399f12015802acec015ad10ca80e8c9238fdb0a014d0d2a69d7a31cdb6a7e4cf4b4f66e064afeab85efebcff66dcc2720d6d3357061253111790e0ea8ae6c33a9667b7d0b41c0e1e601fd9899de640b5a4d5900816a615fdb5827a54903a3aba58f6dd52c25965100de37637f1d631dfbd114b6f63a3aedee619bbf821d590dea0bf1cdc6a993db680ef96cf8772a82654ba1af3e43f4acbb35382bdf44f7e891593b13580f7d9b0728f2c74afedf2f0a113bebd79edee1b6fd79ed7d79ed1be5adf47f4d3471e6deddb77979bdf971ff3873bedce3beba6bce9d77befd7b96fcf5e77769ff7d6b56df7f769cd34d5c6dcef6ddee9a75b7b6f7c7dfdb971f6baf7d7bd69ff36ef5f5bf1cd1e71f7f96bd7baf797dc6dc79e6bc69bd76d9ed9e7fb7347fa75f73defc7387fcd5af1c7fad7df34ef569dd7873469d7fce796f4e5ef5cdbad5fd75df7e3c7dd6f56bc7f4f1befdf5dedcd5b7fd7f4eb97386fb6f4e747dd6dce786de6fbf7879e7b777cd1be9ed367fdeb5d9a6ba6f4dfbdb669f77ce9ae7ae9bedb77bdde6f7d1b7fc7f86ba7f5f377357b7f7ce5fd7cdb77b46b8e1cf1cef77347f9f7de5eef8e74d38e1e6fc7da6de777ddce3bd3deb67fcd77db9e9ef78f5f73cddef34d34eb67f969de346bddfae3569fd9bd9dd77d37edcd5d6b8ddb77cd1ceb7eded7ce5a77cf3bd5d77be38f5ee9fd7dd79e1fdbddfbdbc6bd77c6b96f5e5bdb5f5fe1ddbce5d7fc7ba79b6f9ddb6dfef5d1dd5eddb79ad3673cdb7d3aeddf757387f9e5eddb6b9d3cdbd7dad797fa7787dd7f6778dbad7ae34dfbf3cddfe35f3c71f774739db4ef9ef671fe9cebbf5fd1a737df675bdb475e71dd3a69ddfae5a6db6bb77ae9be9d7b8f3def6efae7a7f5e3479bdfcdf9e5af5a739734f3ad1a75cf5ee5de7cf7ae3475a7f7ebde7877dd74f1e75dd74e76f5cd9c6f97f5d79ddfdfbf75d79f1be1bd34f7b7deefaedc7f76fde3d73bd74ebd69a6fbe7679defb77dd7ce3873aedfd35d9de36e7479c7bd6f9d777786f57b5e7a6f6d1c737f79df6777d3479dd36f74d9ce5bd75d7bdfae36ddae5a75fe1f7f9f5c7deeb56dfd37d9cf3d7386faf5f69f79c777f39edd6b9f1ae1b7faf3bef477d7dcd75776d1fdfddf969d71be75d5cd1ff34e9e7dd69e6f8739f3de3dd1ad1def96fde3dd1ed1ff3ceddd347f77bd7dde9ad9d69fdbd71c739f38e9cefae1c734eb9d5af3a7db7357b87f7f1cf5fdde77de38d77e366fad5d69aefaf767b9d9ad9feb96ddeb6d35e3b6f6e5f7dde9d6fd6f7e9ef5af777bcd9b77473cd1e734d78edbd74d9fe9f6b6e3af3ae9bd7cd7a77cef5f3cd3a77b7b7d1feb86f5eb769c69bd1cebbe38df9d77f37d5fe3a7f76f86daf34f5bef6f78e7ddb6e1ddb7f346fb777dda75d79d69cd3addbf3675ff35e75d5ff36e76e9befde5e7bd7b87f5d7877c73ae5f6bdd5aeb97fa71fd3975ff1fdb4d3bdb47fcd77e3469b6dfd1e75ee5edf46df75de9ed3beb5db77f5db67b77b9ebbe75735ebce77d5ce3bedde9b7b5e387da7b9d5c7776f8ebcf3b7ddf1de78e9de5c73569c77b6fb7b4e5cd75d9adb4d9ee1ad37d76739d34db57bae5c6fa7db7bc7f86fbeb76f57f57f6db76fa7b9ef6db7eb4f1de7bdf87f9d5f7dcd77e9bd1eedde76e9eeb5d5df7bdb8d7b79af3cdfdd1dddad5b77aef4d7dd5ef1e71ff1adf7eb4f76e9cd1aebc71e69cd1ff78db577d6df6f87bcdba7f5779d1f79ae9ff5e6b9f34f1fd9bf1c7787f4f5ed39d7673beb77f877677be1fdbbdb56f8f7479f69df3c6fdef86ded7de5ae3c73ad7ad9ad7de77db8f7d71bd5def5f76df8efc6fad5f6fae9d6f5e37e7ceb6d3dedb6fae39dded1d6de6fad76777e1ee37dddd1bf5b7bcd5fe5ff3ae1ce9bf38f77e9ef5de5fdb6d5bf75774d9ce5a7fd7bbdb86b7e9edfb69a7b56dfe3b6bdd79d5d7db73b7f7df5ebce5b6f6f76d39f3bdf7eb86bce3cf1ef38edd6daefaf79f39eb6f5fd9ddb5f1dd756f4d1aeb5737f77efd71ceb471eedcdfbeb8e3d7dcdb97b6eb5738f1c774f5fd5a75edfbf78e1ad1e738db66b5f3ce9ef5fe3bedfe7d79fdb9df4d77f76e9a735e1edddd74f5a778774ef7d9df78d1de9ce1b6f4ef8eb9edf77bf1b7bde1eeb5e3d7dd7b569d776ef7d7c735ebcddd7786dfd9f79d7797b473ae39d38eddd7675bedbe35d5f6f677469e6b7eded5fd797dbdfb79a6dd6bcefa6b9e1d77d737ddd6b6e9adb6e3ae3d6b4efaf7b6b4db86fbe75eb479ff5feb469cef9e78e9a7376fad5b6fddf97b57db71a71ce3ce5de34ddbd74d7ce3be386f76f7dfae5b75af777b6f5c7dff1ae9a734dddedb737f5fd1ddf675fe3b7dfef87da77ce1cef56deddc6fde9fe5fd1cd9ee1de7bef9ddae5ae77db6f38efc75cf34efdf7af3c6dddb76ddd5a6b7", "cluster": { "validatorCount": 0, "networkFeeIndex": 0, "index": 0, "balance": 0, - "active": false + "active": true }, - "signature": "0x81a3a8a17153832df5096ef904cc2626b958d6ef9d6095f3fba1081c59fd9902c5c857de5a88984ff0a75c76e44079290598f172bfbe3e61639c1b8a35d16089e6fb4cd9df2dd817c3a19522d002023eb2485a77922ec466ffd15465f59b5422", + "signature": "0xacea71d27d0d06f377a068546622342923263002a631f94137138370259da0f540ebf62d1f28b7eb5885fad2faa6cf201535cf37b5d81cd35c6edcecb6401fd8a1857f46429643afd77c6dac261ec95dbec9dc3ab94adf8c17d695e7f212fbd5", "withdrawalCredentials": "0x01000000000000000000000007E05700CB4E946BA50244e27f01805354cD8eF0" }, - "1684357906265": { - "depositDataRoot": "0x69c653e233a0f57aa0ca4a69ebe3786f08366833350f3248e8c1dc5984ea1c35", - "publicKey": "0x9745c87e2ceb9fd55bf81d0974b325fab08a6294142da7996521697a17ce6379f8fe73155d8a6954231d7b8e4ffec34e", + "1684510672675": { + "depositDataRoot": "0x79aec076c2202b3193d166ed2e12e6d30a13059e695374b3fda7c25afa7e2192", + "publicKey": "0xb54899b76e74e0188d14f43d9cb67efdf941dc97334d6689071cb0bc903b2c57421067e5a7c1edb47f4d8039e71421d3", "operatorIds": [ 1, 2, 3, 4 ], - "shares": "0x00c098a0a043fcd3b5db59da3f53278d03ec486d67034890413169f03a979159dd55d54199812e45d07bab360e982d1fb57da39307046d3f17d832218fb37ede86a693e113a7ce0182ba5c051853825882ef2e62f1452a335326c0540ee2cd67f80a96dca2f210022aea4bca49be1eb81b119887f372c152752167587001d5d8c5c9df20d2303117c79892b6906d78e51e17909643b428ecc2b8a801ee21f172795a839d32c5ba6ace984273e85eba8aa532e463b5c4432fa9ef9ca990eed4ccd5d9db4f7df7ce7be1d7fbe35dfd7db6df73cddfdbc69cf39e1ef1f77bdde735f76ef77ba75f75bdf9f1bd9f734d79edb6b47bdd3d7b5d747f8d37df6db4f37779f1df1df3c69cdfd73be38774ddad9dd5b6b6ef7e5dd5cedbe9c71e6fcd7ce7b6bcebbd5cf3cf787356ded9ddf871f6bcef4d1b6dc69e71addde9d6bdd3c6b577773879cdb469df3bd5fdb57796f877ae77eb6e9cd1f7f4eb9d39db47fdd7be37db67fd6f5d3b71cf38edb7b77dbf1edbbe77ef879fdf57b6f37ebbf7b79d7bd738ef56fcebce367b7ebcf5ff38f37f5dd5cedee78dbd6f4f1addc6f56b6e7775e77adf67fddfcdbbf7679edb9f35ebbf74d1f75addc7ba6b973cdde79aedfd1d7dd79bd5c6bae5cd7bd38eb8e5cdda7fad9d736e5adda6dd7dbeb7d9adf87b7d786f9f1adfdd5e6b7efb79bf7cf5dedadf8d1fedf6b76f9f5d69fd7ad1be7bdfcd777b66bbef7edaf1cdfbedb79fd3be9e6b6e5dd3675f7b4e1dd5f6fcedfe79d7be36e767b4f1f6dedb4738e3bddaef8d1beb7e9e7fa71fedbef77baede71d73469b79f75fe5ee5af386f6ede779f7d7fb7db6fbf5fe9f69fd9ce1df1fd7cefbd7775bd7b6fddb977b7f7d75edc79b7b977af1deb971ef5c7b7f7b7fd7de71eefa7396b46fad5d75c79fd3dd5c6dae5cf3dd5be5e6da735d34e387f9edde37e79e757776b4e36dbdf76df4ddddb8734edae76776f5ef1e79f7b9f5addaf76e77e7ddfa6bae36ddaf1b73be3a778dbaddfdde778df7736d3af39e78dbddbd6bdeb7edadb8efd7b9ddcd1aefaf7969ae3ddb57b875c6dfdbde5befddfde36e1cf78e7d7dcebaf5cf1cdb475fe3dd5c6ded5c6fa6fbd3df3d73475de5c778dfbe9aedaf366db6df735d3969aef5ef571b776ebad1c6f56b6f5cd1ce5bd5cf76e74d7cf1de1c79ed9a71ce7ddfc79dd1cd3b7346dbdf7efb6bd75af1af1bef7d787daf38efdef4e9c6b47b96f469f7da69cd79f37efc7fde9f7dbeb4dbb75adf6e9ddfa779f5ed5dd9e7f76fd69d6fc6fcd9ce5bd7bdfad7d69fede73a7b7e7c6f5f3779c6fdef6e7a7b6dbdd3cd7dd1de3adbc79f7bcdb8ddc79c79eddeef8e77d1f69eebbd7a79bf7a6f7f1de1ad39efa734e9e7db7f97366da6f4f1bd3a75a7f4dfd6bd73a7756f57f5d9b7bbd5bd9dddcf7bd39db8d77db573cf1aef4d9e75be7ae39d5f7fce39e5fef6f34775f3c6b66def7873769fd7cd5ee78d76d1b7b6d7ddfce5d7ba77cd75ebadde6dbddd6bd75af1c7de77dd3debb6fd7fbe39d9dedd75d71e7766deddee75d9edbd69fefb6b9f1ae1a6b5e767dbf77f1b7347b56daef9ef9e1d75c71b6b879ce9e7ba71fd9fe5cf1f7fadb6d37e5a69de5dd356f879b7f4ef46da6bc7b56b4f38775d7c79feddd3cd376f869dd5c6da6f4ebbdf6d9bd7deb571fd1c71eef5db9e9ce7ae1ce1df5be7d71ff3d6f5e7adfcf7a77bd7de9dddedf673ce77edde3675a7b7e3577ce1ed5dd5def67dd7def34779f5de767756fae9fe1b6fb75e7fbef47bb6dce5bf7bd1df7cebad1f735d3df3b7b46dfedd73cedadb9ef979b79aefbe7d6dfd5aebbede79adf67b8e9fd366bbd9fe7c6b6e5c7bdebcefc69df1bdb66b9d9e6f4d3c6bdef66de6fdf7ae347b5f7aef9735db7dbae3d737e1ff36efd7bcef9d9cf79ef7d9c777ebbede7baeb46b5d77f78f7d7badfdf7bd3cf77f3cf5eddb7b8dbdf7d73be5c778d35e35ef9f3c75ddf5eb76dd6b66dee9f735d7b79ceb8ef4f7bedee1ef3873d7f9d1ef1ad747df6b4e9ae5af396bbef7dbaddf7367dfd3a73869e6da7b6ebbe1bd9c7fddf4dbbdb6e1edb5f79f776f979dd9b6b8d3d7b571fe34d1f7db77cd7469edf6e9ae5df1ff5ed39d1d7347dc75deb47f66b47b673c7ba71f79f6dfd5ed3aefc69fd75f3bd39e7d79fe76d35e9d69d6bdd1e775eb5f7777571e6b9df4f37eb7d1ae3673c71bdda7747dfe79d7573d7fbef46bcdfd6dc69ed1ff36d79db475e6b6e3cd5ee5df5e6b4e1de7ae78edef3871f735d7d7fc6b8d37e77d5dd7d6bce3d735f5def9d3cf5df7571cef6ddeeb66bd6f5735d5d6bdd5ed35d1e6b96f9d5de396f6d5eddfe1e71cefcdf6d9b71de7bd357f469cd3cebd77771be38738eddd5a6fcd1fd3d737f7bf1b69dd1ce7ddf76f87ba7b979c7f671a6b5eb4e9ce34d79ef47777f57dfd7aeb9", + "shares": "0x00c09063ce2dd7b555ca5560e58d2735d7c36c049bcdc2cb778f7ea9c2e351c0907f44039853ea8451d4051f37c7914b95eaaee84a2c92a623a3ba1d1562fa12a627d18eaca481491006f7e37ac31016938ea3df9383bdb1fa6400a02c3560b187a0894311db0f300f01b34e8258b9a222d0cf57aa2b337ee9c8c7aad172db9534b0f5c0e65bd7076e8bea6f4001373e420cb94ce9e8d98e26c778264e7f06b3dd67457ff39f414922336544ba11ad289f11195d600bc77526c8bab07ec56a0d4ab6e1dd3ddb6eda7b96fcf79f3bd36db77fc6f6d75ddb69ddbad7c73c6ba6f6d1a7fa79fe9bd3969c739f1bdb56fceb6ddad1de9ad75d77e9bebad78e35d9fe7b7f9ef8d3ce5e6dc6db73a77871d6b8777f5cf3af76e757fdf1d79eefcd1edfd7faddf6b6e7bdfa71bdbb79af76e1b7bb75aef8e1ad78df8f35d36e1a6bd6f86b6f79df66dde3af1bd79d5eeb5776d3d7377fd7b76b96b769ff5a77969ff386b673a71adbd6f7d79ebbefa75fd35f5dd5aedf6bae1a7fb79bf377b7e3c6f6f1feb96b5774ddbd7a739efcd3bdde7fd6f77fd6b46ddd1f7f573a77771c7b7dfbe9de9b6baeb869edf7eb86df71eeb975f7376dfdbcd5f6fd6b5ddae9bf39f7875aeb87fd6fc69def87b6e7c6f7e1a7fcefddb4f37f5c7bbf1addee9cd3973573d737eddebdedcd35efad7bedbe38e9c6bbe5de3aedcf75df97b7d9dd9a7b9e7df7b69d71d75d79f6b87757bbd9bf7c75e6ba7bde9a69bf7adf9d9ce9d77c738e7ad36778dfa6da6b7d9f7bd69e7fdd1ad36ddf7fcf5e71b7f67bb73a75ed35f75d3df7dd1a7faf37e77e1eefd6fbe3773b7fbe35db769a79de5dddf79b69bf5d71d7bbdbce1c7f6db6e5d71fd3ad37e7bdbcdbb6f87fdf1de3d7b5775d77d3a6ddedcd37ef9ef4dbbe3ae786da7f87df73969bf5cd777f4f3de5c737f37e797ddf78d38777edae9f75df376f96dd7797ded7ce1e6f8d347fb7fa69c7dbdbae3de37d3dd34ef87b97f7db7736d387fc7f7e9fdfc777e9bd796b9d1ae9eef679ddbc7b7e76f75f1b7b66f8e9f7396b6dda6ddd3aefd735d5c69dd34e9edb9d9be7a7fce3bedd7f7f7a69edbc6fbebae74f1f774f1c7796f87b5d9cf5f6f4d3673d779739db47f46b97f9e7873beb46bbf5def8e5fe9f735d3a6ba69fdde71ddf4ebcd5af74d5e75be39d1ce38d3ce5e6dcef8db8d39f35f1ed7bd74eb7e9adfddbbf1ad1c6fce5df35ef8d3bf36d1deb96fb7bbd1ef1d77adf77dce9f7357f8edaebaf78d9ee77f38734eb8efb71f774d38efdd5ee3b7f4f1cf3d69bedbe3b7f8e37d78f5ff1af7bd9f79ad5cf7cd74d39e1e779d1befa7b9ebde787ddede73b7bae5be1be1af346f8efb6b77777bde9dd766dcd3d7b7e7a75bf5c79ff3bd1e75de1e75ee3ad5cef47b96f96f7f1cefa7fa69bdfa7dde5fe7dd3dedd6f7d9b75a73ce74e36dfbe9a7b979a77d73bd1cd5cedde74d7675de1cd7b7dcd1fe5fe79d5d6fd6b4efc6b7e75d39ef7e5deb4e1f71f73a6dadddd3bf1d7bbf7cf1de776fb7f779ee1c736f3c6da73be1cefdd3adb8d1ef5ee5be36e9ed3c7f9d1fef5eb4d3cdf6d5ceb7d1be3cdddd9b79c6fb736d7b7f673a77ad7cdb8776dfd75ff3ad9c69a6ba7dbe5eeb6dfa6db69feb76f6f5cf5ee9c7bbdbcd36f397b4f39f1e73a736df9d78d1c69d7b8d7ad1eebddf4d3cd1eedb77773d735e38e3573b7b6e75d3cebc774f1bf1eefd6db7f56fc6f7f786f879b6b67dfeb4d5af79f39ef8db673c7dfef7e9e7b66bbd3ddfdd38ef5e3adf57357387bae35df46f6d5c7df75fddadf9d9edb87bce7b79cdf77bc7dcdb669de386dedbb7b5d5ee5ce777f571a6fce7cf3d7dae74dbdeb4d77df9db4d3ceda73af3d6f671bd36d3adbbe5b6def1f69f73d7376bde3a7f7f3c7b977879ceb4df9d7df35ef5f1adfdf787dc7f7e396b9e3479def96f57bc6fd79a737efbeded76df9eda776f7b7dd69cdf5f36ef56b5d9b6f5d1bd77d75e7ce7aeb5df5dfadfb6b6dfcedfd5ed767baef5eb9edfe5fdfbdb9f1a77579d7dcdf6f7ceb5e3ceb7db9f78f5dd797b6f7a79a79febcf37737d1b734eb8f3977cdb5d5c7b775b7fce7deb56f67346b9d5e6b4d39ebaf34eb9d74ddee5b71ceda7397b4d5ee74e1ed7c79edbcdde7bcf38f39e7c71af7de34f7bddae9bef5d5a7f6d1debcdbb71b6deefae1e7df79a71de5b79fe74d5d7df75af5d6bbe75f1ce3ae1de37e7be3d71d7da737d5f7ddf79d1fe37776f79d5bedf79cf5ae37d36db8ef975cf79e1c77b6b9f5ddba737eb479fdf8e3ce75f74edf75bd7b79feb5efc77ae3cf7cd78d9df1c6f575f6fd6b4ddcf797dd71d77af3bebdf7d69af1bf37e1cef87df7b7df471feb87fd6fad36f7673def8d5d71ef3c79ad1de366f4f38f5f7dad35ef4d5befbf1a71de7cd1f7f6d3ddb771be1ce5f7b9f1f73b", "cluster": { "validatorCount": 0, "networkFeeIndex": 0, "index": 0, "balance": 0, - "active": false + "active": true }, - "signature": "0x8c93d278bc2b1f9957171a28c0bdacdf0bec1519388d7ada76e7a5e80c3ebe73a3a57a3706e2cbc97440090c2b0971e2070e6eb2e1448cc425d2bea148b64aa2933d910f9140ef0f548cec419f4c9cd4fe135fdd4deb25fed14c0f93aa2f57dd", + "signature": "0xab0160e83c3d90ece97764030663b595fee1b1128a113f89268a631745c336042f30a7d2eeaa807e968fc2e863d55be80d9c080c503896b7126ef4a2a875f7a210b79339e3072d256b1cf357de593cdd09a7a5cc8c49d64a83bbcd9a87d5be02", "withdrawalCredentials": "0x01000000000000000000000007E05700CB4E946BA50244e27f01805354cD8eF0" }, - "1684357915429": { - "depositDataRoot": "0x18dc4906fcd6bf3e58e1b94acb39115335b695a8aadaa753093af14442dd141c", - "publicKey": "0x96be7df0a97ca5866509ef8d87110306398de6f079ed7adc1038db864ec6244834b80ddbc7844e60a963f5e9c2c0ff34", + "1684510685568": { + "depositDataRoot": "0x1cc49d12998c588270c0a4bb4310be0434c1591b97091e4aa202c581fe323541", + "publicKey": "0x88daef1daa709b61f5ad138625ffca5b749c679b35314712eb4d6d78cf95be26be64a9af1d5de8528ba062929da135c5", "operatorIds": [ 1, 2, 3, 4 ], - "shares": "0x00c0a51c9bebcf36d02505faacdc6cbdbbd877bc7f09827d867f0623303333057351b21beb8d865b2820128ce732c2cd456999d001a1c1c5675992ba5d89e31061a846d1a69e9c996ff730f1a24b8549b87815e8c4e88e7a45011e6110a9eebae2ccad34550d9d2d2cd79eba4765339bc120c7af37dda3fb4483a96f945f4c458534dbab1cd81c11947b610c4e7e56ef9226b38558ad495c8fa9116bfb17e160d38898c9deac635f104dce2c3f5c49b75f379e8054e4374dc1452b18836b643a7acceded9f6db69bdba75bdf773bd356da6bcd7c77a6bc6f6f3bedef3a6b66b6e75ef8df7d74f39ebb73c69dd9c774d38f7c6de75ed5ed3777cdf775f73b69ddb6dbdedbe5b6b8d387dbf5dd74f39d3a6df7bb73de3dededdbf5b6dbd5b7bd79fe1e71ce5e79ef1af1df1cf1a7dc7f4f7bf5dd3ae5edfbe1fe75eb7e36e5b7b6f1eedf71bdba6f77dff3a71b73dd37ef5eddf74ddcd5cdf9e5dd1ed5fdb56bdddc7bc79cf39f7cf3d71ae9cf1ceb7d3d7df7de71fd7971d75ee9f6faf38d78e756bd734f7cf7571e7b57bbf7975f7b9eb871d7ddd9f69cdb4eba77cf74d3deb9d77f7d71ddb5d7ae7cefcd9d7f9f5fef4d7673b75be3a7dae9ee3bef6d9d6b6efde7bf35ddfd77f1f6b677ddf8e5ce9bdbcf1fe37e79736ddd6bbef6f77f7973dd1a79aef7d7cdb66f8e1cd787bce5b6dcd5b779d74d74df6ebaeb4eddedadf579de797f7ef97dd7bb7dbd3c6bd6dbef6df773b7dd6dcebdf3c71a6fb6dce35d78e5cf1e7dfd78f3ae9dddee7b7dadf673477cdf76bb6fc71b7dadf4d78df4ef67db6bae7ce1be75e5a6b7f5b79e734737d5ed3df1cf3977d7f97f66fdef9d3bdfce9ef1b7dbdfb79a7baeb4e5f7f969a736e7675be1bddd6f7efa735f5ae9a77c779ebc7b87367fae39db4f7bd9cf7b7b8e5cd5d71f6fc75a69c7dcd35f3775edf6d7d6f5dfb7db75d6fc7b6efc75dd3b7dd6fde9fe5adf9f386fa7bb6b77b9e78f7869ddbbf7befb735e796fce797bb69ed7cf5ae9cedadfdf3bdf4f37e39ef4df7f7be5deda79ee7777875df5cd79eb873c71d6b7ede6f6d78f3cf1d7f479ef1edbc7f96f669aeb9f5edb475fdf87bbd747db6b5d79e3ad1ed38eb671cf36eb669f6b5f3be35d777f77746f9df8ef9ef7f3a77ae1ce34eb475bd1ed1c6fde7ceb46b76f7f1cd5ee79dbdddb69fd777767b469ee5ee9fe5bedbeb7776efb75bd1beba6dd71dd386b97f66b5d1b69b6b975f71c6bc6b97797bbdbb69f69b77aeddf7b71ce7b7397dcd9d73bedd69ff7dd9fe1ce5eedf6f56dad1edf96b6f38d7dd7869fe5ef3bf1d6b7d1c77c7f473cf7ce5e71ed38e3beb47b7db47bbf76ededb9f75d9a73deb6e9df7473973ad7473b77af7ae1be5d7de71eedd77af376bce7a75b7f7ddd7777b8f3c6faeb8db5db871af5fd3c7f7df46fbe7c77de7a79f7bad78d1f7dedb9ef9ede7fcd7bf1aedc7dfe5f7f4d74d74db86f5d786b7f35d397b879fd1c79d7dadfbd5f7dad38e9a7b4dfc7fde3bd5de9b775db8db877be7a6dee3deb9e5d71af76d9e79ee1edbc69df3cd7ddb8f79d7979bf767faf7bebad9e79dd7de1c777e5f6f7ddd71d7ddf5fd7ae9e7b76dee5ff1dd5d6ded3adb46f4eb4db7d3bd1a75d6f8e35e36e9a6b7db56bd71c69b79ed5ff767fcd5e7f8e5cdde77af7675e69c79b739e7deb4e3ae75e9d6dcf7c69c6def1ed9de1aef8d3adb7d9eeb77ded9de36db4ebdef475ff79e5a7fceba71d75ef1cf79edc7dae787dbddfdb5e34e5fd7869b6bbe7cddfdb86f8e35eddd78d9b6b569c7ba71b7f6dbbdf47dbe5fd36e3a73a7b97f5d3b7fde9ee9dd9dd5aef4db8f38e3af7df1adf47797db6f8d5a7fbd9ef7d6baf3d6de7f5e1ad76d346f8777e7bd9ae5a6b971be7ad776db7fcd7573dd5cdb96de77a7bb7fd77dedee3df5d75ad7c75cef7e397def5c7fd7bc7fc69a73671ee346b9d9f75e69fd9b6df6db7b8ebdf1bf7d77477b7f4e3ae7dddadf4efa7deeddf5cd5bd5bd3b6b6e39edde9d73de78e1ee34f79edb6f4e36d1d6b579dd1d6da7396f6edc75def5ef47bae5adb5f3479ddf9f75f3c71b7fd75c7f47b7d3cef5f3bdbae5f6da6b9f5fefcf1b79d6daef7d5de5cefd71fe1edbbd34f3df5bd9fd366dd7dee37df9df6f34738f5fd9fe3debdedee5ff5ed76d35d1edfde3ad9bf1af5dd7be39e1f6f4777e1ff1edbd6f9ebcf3c75bd7bd38d75d5b6f9e7bf79e5c69f7b67bde9e75b7fb75b7fc7bde1a6f4f79e36eb7e7869fdf8f7be5fdfdd387f6f5b77a6fc6dd71f77adbd75c7dfddbdbdd1bd79df47b77b9d5fefce757deeb8d357b9e5df35e1b71edf6d1d6bcddf77573a779d3a7b7f1dd5b6fad5beba77b7f5df5e7dd3471bd347dc6b97dc79dd1de7ce39e7c7fc6f5e78dbbeb8d5edb669dd5bd3de3bd3ae78df975e6bdf7873ae35e5ff7b71bdbd", + "shares": "0x00c0a79e38b0bdf57fd776177d08538ba5715e1c826906f776d38b5cc7f7e6b78d0bed1a385fe363ddbd5c870b2f914e63129325005d22886ad587f4f93a07fc2ebc93a72f77e622dfd3da824888db216cb68e1020f1569412201b6b4c5988c0db1fafa9a2eaf581380d7b421caf963995de8514335ce6cc265f90994d557baafb7a7cf1458bacdfd8d18b4248e4e93a2f1aaab3168118add9472ff8da3020c7415a04f8564104d4f68f96ffcbdbceadfa5e31b44f73325828fa308b7b7c613be7bedf7d35ef5df4f5bd757396f9f3a77adb471a7bcf1af3b6dceba7de6f7e7bd76e1fd3c6bde797fd79ad5ad74e5ce7d73c6b76dadfaebce3671be77d35d78d36ef8e1c7dcf1ff3b6f4e5c73ce76f1ce9c7b969f7397bcd34d9bef76f4d7c7b7ef471c71fdbce1fdf977adf4f5eedc735739777e3bef5ddfdfce5aedb7b5d7a7757dcf5ad5cef97dee7adbbf7cdfad7a7b47b479bf1ee5def9f5b77af1ae38d75d9b736778e3ce9af35eba7b975f6b9776e7d6dd6bdd79e76f7669ee9f775d78777df9d7ae5e71e79ce5fe5ddfc69de347dfe5f69d6fcefbf796dc73473c7def77f5f6fc73471bdb87b97fc777e9f71af37db87f6e5de79d1ee3c7b5efc736d9f75de5d79cf38db8f7d7b46daebde77d1ef356fae9ee9a6bae7b77cd7de357bc73b71fef4f1dd9ed7469be79e5e6b96fae3577573dedae376b7e5bef9d9cf7471ed5ef1bef579adbddf677bebbebd6dbd5fd38d7b75c7fc6fb7bae3bdb6f74ef7d5b6fc69ad5b7fdf7be5fdf9734e79ddae1fe5fd7deb5dbaf7779f7dedda6f779ee9fdf6f36dfbe9cf3771adf9736738f39e387f7e1ff1bd9ef35d7cf77e7c7faf1edbbf35e7b6b5d9f69e735d1fe5ef1f6b7d36f1e7dfd7adbcf5fdb8777d5d6f66bdd366bcd9ed5dd1ff1de77d5e7bdd5f73cd5d7ba7dbef9f5e79f7de6b7e3de78f3be1df34df7e7a6f4e1ee5e6dd7dc69a7b87b56b6d7677c7f475bdbb6f9db4d7ad9adb97bbf5ae3471d6bdf78e1cf34dba7b67796ba77bd7af7ae9ae5cdb569ee1b6f6e377387fb6fce5ff357f8e5d6b66fd69c69f7756f6efcf3df79dbb735e3cdf47dae5aeb9f5a736d1af1d7dadb8e797ddf797b8ef671ee347b7e1defc75ee9f79b69deb5e5ed5bd74f3bd5a71ee5ef3adfcdfbf37e3af78f1debc69ce5fdb775ddfdf5a6bd7b779fe34f7dd7ce35e1cf5e775f7bebbedc73d7f771bd9c7f579b6b8f766f5e7cf36d1af74e347376f669c7dff1c7ddedce34e75dfcebb69eefc7fadbbe36eb67b6dbcf7675c7f6ef8e377b977469a7f6d9c6f975de75d1e6b7d1df5f71df36edf6bcf376b4edd79bd78e77e36e9f69a75ee9f7f4ddde3be5edb8e747bc7f5ef9efc69f7fdd7d75a75bf1edfde3df1ad7b69ce5eef8e756bdebc779734ef8f7cd5ae1a6f575ae76e3a77d7fcedc6bdedd7f475ce5bef9d7cd1bddae777dfe757dadfbf3b6fdd9ee1a7f8d76d3ad75efd75bd5bedfdf6ef8edaebcf36d376f8d5fddb6bd7bdf3b7dcebcdfa77b6bcddd79ef76f376fbd3879df1ad37ebbd34e3cf74e5be75f3bd9ae76e9bdbc7dbe7a75fd5cef8e9c75bd9a69a7dbe9d6bdd356fcd9e7b969cf3de38db7d7d79cedde3ce1b69e69ed37e9e776e76db469ae3ce5ce35d5e6fadb4ef6739df4d34f75f5f7bd75d6dae9ef3adbbf1d7ba75e75cdbcd1a7b8e1bd3a69e776e7c7f5f5cd356f9f396dde79d79e1ed3d79f77de5beb8d1df7b6da7bbd5f79def969d6b76bdd3479c6da7dc77af35d9e7f67bb6b7dfbf756f9f5a6b8f3dd3971b6bce5ad367f66da69e79d79ef1cd9ae797bad5fe3d7df7b6f5c71dd75e5bef9efa79f7db735eb96f9dbae1f75cd756f7e34d5cef4f3cf5d6dd69de9bf1cd78e5f77ce7d69d6deef977669dd5a6f96da7f97dde1cf3de5fe3b73dd36f5e71ae34d1ff5ae37ef6e9e6f8e1deddedd7fddb5eb8d9adb873d75cedef3df7adbcd5f6de7dadf7d9f6dcefaefdd9e6dd7da7b6e1a6f575c73879cd34eb971beb5e34d1c77af1f738ef7e7df3c7b4e9e6bbd9be76f7475adb8d9cf1af79d77f1eedf6fde3bd5cf5ee5fd7af74f7dd5e6f77f47dc69cd37eb7e3571aedee5b7b575fe5a75fef6dbdd36777d3775d79de37d1be9e79de1e71f75d7f57f9d9a6dd71e69cf1d75de35e74f1be7cd7575c69bf5aedcd9b77ae367b86f87f47bce37eb5df7e38eb4734ef479d6f77dd75a75fe76e1bef7d3a7756f8d1ddf471ae1df3469de5cd3a6fdf3cf75f1bd9a734735e7975de3cd79efbebce9beb86db7b7eb57b57f96f9f1bd3475d7f7e7a7b57dbedeef5df87f9ef96dfdba71df3d7fdd1e6fd75c7bcf79778db86bae3b7fddba75aeb771bd5feb575fe367fcd7b69fdf6ef77b877b6deef6d1aedbd5ad3bd5ee746f96bae39ddef75e9d739e1ee9f75ee9f6fc6dfe5def7e35f74f3b6b56bdf77db5", "cluster": { "validatorCount": 0, "networkFeeIndex": 0, "index": 0, "balance": 0, - "active": false + "active": true }, - "signature": "0x91f45b18ad23067c19ff619303b9c134e99b4aa638747d667536376897309241ef2a9b7f888f4c3afabbd19189e9aa7c082e7f6a9cd5c3771723f27eabe621e7941e1bde80efce61ad19ff995be062b916a59e0742f66fd0551b6fa68548b8dc", - "withdrawalCredentials": "0x01000000000000000000000007E05700CB4E946BA50244e27f01805354cD8eF0" - }, - "1684358027067": { - "depositDataRoot": "0x8bee5c8e42f4300579a9ea807d127957d49e944147f3030f46b5767dcd3875a0", - "publicKey": "0xa1f382a1f9b4ff7e8d89b545bf6ede6452f6408dde63607d11cc65bff1e00590b8a07c02835e425cf355a4eb35e2016f", - "operatorIds": [ - 1, - 2, - 3, - 4 - ], - "shares": "0x00c0856f3c80d6f7419eefd43834802aea0d401932aa47fdc41325167809f2505fb2df74ac2fee166515cb8624e3ac3cfe0e90a0da3b474ff32daaeaadaafd313eb2731e49c3ad8bea4c50f66bc07d0997c974a25be950fe38c448b87d870c334fa68567d73f13dbcd04ce00c98a0076b81a4ab70c8558d6fc11a95981b5cfa745811538a0ef47cc50135477d43984da12bf908384d45e013f67776a423845b3e540406aaec25fb515a2ef51abc9a532b5f4e125381ec74d169061594a54b7e2730be1ceddd9bddfeb76fad396f7f7a775e5dd9bd5aeb4e78f37dda77ddb5739ebcefb71e71cd9eebbd1a7b4e747b4df66f4ef775fe7c7f4f34e5d77879df5a71dd1cd74eb8e76ef6e1f7df77c6f66df77475adbd7b8ef9d75e5fe5de36ef66deefb79ceddd9ee3be1befb775e5ff5af75d3b6b56b8f3adfd6f4f3c7bcd5dd76eb5d5ce3d7ddf3cefd6dd7376df6f66b9ebbe38e5fddae7de7675f7747f7edb71f734ddd69c6bbe7beb66ddddfdda7396b8d5de79df9dfcd3a69ad38ef4df5f1b7dedbcd7d6dcdfbf767b4dfcebd6db79aedf738d9d7f5d77f3be3a75c6b7f1ce7877dd7b69ae9cf38d7af5edbbefdf3cd5fdfceb8d1c735f1f79febcd76db8f74edd69cf7ae75d9f7df7b87fcf36e77d39734f1c6bae1cd3ceb671d734d39df8d74d7bf5bddfdf475be7dd3bd5d75aefc6dde1aef977d75c7b7db5777d1aeb77f771fddcf1d7f7e5a77ad5e7787b9f39eb8ef6f3de9edde79a7bb6db77d6b7f75eb975fe5d6faf36edd7dadbd734f37e9eddb6b779f75bd7dd9de7d6ded3ae7bebcddaf78e9af1adbddba7fcef6e1d739eb4775ef577773b734e5fef46baf7ce1eedde7dd5a73ad9cf79db97dcf1adfaddd73d6db73a7bd6f57b575ae7bdfa7b8e7bdbdd5e79ce9beb6e7ddf6e3bf3971d7b7f39774d3bedaef5db4d3977bf39d1de367f6f74db4dbb6ded38d34e9e6fad9a738e7dd5e69b7ded9c7b76f577d75bf74e36d776f5d5cf7aef5d346f87bd6fbe7cf7bdf669ee5ddfd6f76dedf76f7ebad3ae9b79f6b8f747b5e7bf5bd1c77d7f9ef7f1ddddef7d1e75cf7ad7679ff3aebd71e71ad3d6fb75ee77d5a7f679d75ed7cf75d78737739d9fe5b77a7dee77f77e9cef679be9adba71af78f356dfd9a75fdb57dbd7ae5feb5f397767f87f7d7a6f8f3a7f571ddf577df1d73973bdba77b7bde3cf3ae797de7fa7f5d9fe1be9f6fc75d69e7b7d5be9bdf6db5ebcd7bd1d6bdd1de7a73ce5f75eef675dd7b7b67f5d38ef8df8d1df786de774ddc775e7cf37eb66f475af76e34f34e3cdb9ebdd7dd5bdbae1e739dbb7fcdbc6dfd387fb77cdbb6b67786bcf1ed1f778739ef5d75ddf7377bceb4e1e6fad5e75af76e38ebbf7773979fdfcddbe1cf79f7869f7ded1fdb7e5fe5fd9bddbeda739df57b4e9d6f4e9c77477be79dde6b9e9dd5adf46f7efd73c7f47bb73beb77de7b5d5ed37f386dee9c75cd9df78778ef7735ddfdb8f78d1f7ba7fbe5ff5bd5ce37e39d9ee1ae1e6fae3b7dc774df871ddf7efdd39e78ef7dde6b6df8df673be76ef6f1f7756fc75d6dfe7473b71ad397f4e9cdfa79d6fbdf7ddee38f3ae9d7da69d71bdb7e367dfdfb6bbe75f797fadfddb569f71cdb96f76b479cd9ee5c79d7ba7f4ebb75cd9fe1d7fcf1ae7bd36f5df7df1b776d77734e1e6ba6bcf3be9fdf5f37e1d7bde1e6bae75d9af7979ce34ef5df6f5ddb9f38eb7f5d7deedad1bdbc71d7dff36dbdf5eebc735e38ddd75bd1bdf7d38eb6d7b7f4dda6f56fbd346b6f1fedb7b5d7ce7ad3473dd1fd3c71fd5bddff3b7da6f4e5cdb4dba6f9db6db67f9ddce9a69cdb6eda71cf38e3ae3ae3cd9e6f8dda75cd746f5d1d73c77cebcf37f7bf39f36e346f6f756bae7ae1be38e75e5ad5def4f39d9dd9a774d34df4d1cdbdeb5ef975bef8ef8edad1fe3bef4f3ad7d73dd9d7f6f7bf7dd75efae9ce1f73b7b5d36e9bddfe9c6df77b6bdd7bd3bf3bef8e36f1feb7d1e776d9cf1febd79c73df376bce5bd787b66b873c6f779c75dd7ce776fddba7b4d3b6f5e3a77b6f7e34efde5a6b5eb871d6f469dd7def9ddf6b869fe75f78f7d69dd34f75d5e69cdb86bad1e7fb6b66bcf1c7fb77ae3c6b7f7de5a6b8f34eb769a7b8edc6dc7fae1c7b6f5b6b8d757b8f7de7ae3b69e7fbd9bdb6f77d3ad38dbbef5e5ce3adbcede778d1cd1addef1e7f8738d9bd3dd9b736ededf4f7cd74f75df5779e3be9be9dddae37d3bd9c774f7aeb971fe1a6fce5ee37f5d77dd9fedd7df7396dde1b6fc7bcedeede6df7dee76e9feb97dff78d1bedaf7c69b7fbd79e9cd79f5bd5bd3dddef36e5ed9f6de7b6d1b7f7735db6d7bdf6f1cef5d9ce5dddfd7ce5ae7de347ba6bdebcdbdd5ae1cdf5d7cebbf3bd79e9dd77eb6e5be1ee1e7b56dbe7d6bce5a79d6da69e7deef86b66b6e39e7b79eddd71d79ceb87bc", - "cluster": { - "validatorCount": 0, - "networkFeeIndex": 0, - "index": 0, - "balance": 0, - "active": false - }, - "signature": "0xb1c168f4772b9a07746dc2f348e8e667b385f588693b7c5f1eb1c6a4b9995a0a5ef986b6ca8f18a775539e9eed3667ab179cf1d9014984a098f83a11af9c7bf6a165a0df1411493eebd73101426717917be1add753cad47e998d3414dd93627a", - "withdrawalCredentials": "0x01000000000000000000000007E05700CB4E946BA50244e27f01805354cD8eF0" - }, - "1684358234792": { - "depositDataRoot": "0x4b5e8d666cdf848732102ef685bc36c76b9d737ec1dda83ff14be7f45e854526", - "publicKey": "0x840cc5ef78bcf3d7ab29d348d2f85320bc79e2e4aed622b0594aff8658af1dbe1f606da52684ad07f6ed83b2e8faac17", - "operatorIds": [ - 1, - 2, - 3, - 4 - ], - "shares": "0x00c0b6adeee8452ff4d0f791b8d62c9d4b24fb8524a92a14fe61ba6fa25cdcb5aac2d3a001090bf5a565d4e9378f45d00327a51e45082e703cc0d706eb8920a48aa8cacfe32e8ed49758aec0cb8d7a99b5eb5cdff1ac799248fb651cb1f509ce0bd98e5cb8fd3c0081b586ae61fd6498281d12d7d99dd1646de704efa406547236db606f8b7855f671b4ae972353028666a88ae95ff58a2bc9155c893ff1ab9ea4ca4222922bfb52e2e28fd127a59e29b51a951b2a16632c4073b22c69c40f5ad56ce1dd756dd71d77de77eb9d9df1cd34e5ddfbd9cef4e1de1f7357b9f7cedcf1beb7edddf8e3beb7f1b73a71de7cd3cdf7e7d6f8f39f1e6bb6b869deb9f1df36d9ef5fd35f3d73ddf66fa77bf1b7377bd7baedce1f7b47dcd1adf4d7b7bbd38d77d7d6f86fbf3de7c6bc71fd1eeb9d1ae5f69c6b57bbf7cd78f3bd5dd5de7de5d73d69c7b4f5a6b775ae75d5cd746fbedf79b7767f7e7d6fb71edf971d6fbf1ce5ae3c7fdf75d7de35df87fcdf771c73a7f5d79edcf1cf3def4ef6e5ad1df37f7cdb9f1ee5b7786da7f873dd7a75d7df6bbd5d7bd6dbef6eb6d3a77be1ed7cd5df7ce1dedad1bf3df75f34f7b7f7efbf366fad9deb86df6fae34eb977b7b9f1ae9e73573be3de9aeb9e796f8d747fd7367fcf7c79a73a7dfd79ddc71be1bdb6ebaddcdf7e3cd9febdddb7bb6bb734d1fd5bd1ed366b875c75cd5cebc6f4d36e76e9fe5ceb4dfce76e7a6bae78db8f5e7ddf39efaf1cd9edb97f5738d3a7bad7b778e786bad5ad3c7bb6dfd9fefaf38e9ff5c73addf776dbd71ae1ff7c7f4e5debdf5a6f46bde9d6b7739d3cd9be77e7475cebddf4e5ad38ef4e5ae1a71deddf36df9eb7736ddeeb5f7ad1d7b46bcddef5f7bae5ad34d5ef5e6f4d5af34d7b7b8efdf1ddf473bef5779d9dede75ce9cddfd38dddf5cd1df7af3dedbf1b775778f36df7e3beb7d9aeb7d78edde7bd3a69f774dfa71cf3969f7f6d7aedae3b79fdb5edbdfae9febde7c69ce3aebdd347bc7dbd78d9f778df47b9df97796fad766dff78ddee1f6da69ae7ddbbd9dede71fe34edfe34e1ed1ad76dfd734edfd3ceb6d1bf75e78db7d9cd74dded3ad1e7fb7dde9edf87367da69eddc775f3ae34779d1d75fef5eb6d79f5ce35d34d5adb777bf7adfae387dcdba7f8e9b6fbeddedcf3bd1ae35d1ddbde5a7dfdbcdfbf35efbebcf3b7b675ff3b69fdb67fdf767f4d79efddddf76f3ae7c774e7ad356deedadb873bdfbeb475c7b6d5de75d75e9c7bae5ae1f6f77dcef4dba7b9d9eedcf5fd3573a69ae786f66fb7fa71dd7dd3dd7ddddd79e77d9a7b779bd35db67bbe3c71bef4f5dd3673be1c774e37e1be9cd746b8f5ee1bd5ff77f7cd756f8ef66f67367b8eb9e9d6b76f56dbe7bf356b9ef6e1c75af3b75c6f77fd75d7f8ddfef9d5a7387b4dfa7dc6fcdb9f7d69dd1a7b8d5b71defddbd7daedd6fd75f7fad9fe1e6fb71bd7cd5fd1a778df67dee7cf1c739d3cdfb69aeb4d5aebaeb6d37d1b6f56f6f5d69bdda6b8dbdd74f1f7ddf1de38e3ce7dd1eeddef7e777b6ddef347b8d767bce5d6f4dda6b569af3cf7cef5f1a75fedbe3cef4eb7e76e5f7f671dd3b6da7faf5f73dd1b7bc7ba6de7db7df7bc7367dedb67bad3d77969cdbcd3df77f74e367bc779f7debbef96f7d7de36dfa7dbdf56f9d9f7b6df4f757dee1debdeb7df575e7f6e3979fd5ed3a7f67f56fa7f7e1e75ddfbf1df37eb6e387f5e5bf1aef8f5a79fe9ceb9d9debb79df5addde1fe397bcd7cf5cedae5dd1dd5c6fc6ded7df1c77d69fd9cd1cebcd3bf1cf35d9ddf96bcdb579e6de79dd7bd747fcd35e3779ddf97fbe5be767b87fae5a79cf74d9a6db7bdeb5d5fdf671a69bd9fd76f78e9aefdef5f5ef78d3d6faf3c69c7da7dcd9a7dfd7a71b6dd7b9d5a7347fb7f66f6ddfddae75f36e37d75e5e6dddb6eb8e1cd5ee77e9fe7cf747f57796f86ddd74f1b71c6bb737d36ddaeb67fde79f74f5e6b6e9d7357b8ebad37f776f879bd1ce7475def875c71adb4f3a77a75a6f86faf7ceb871e6dbd38db8edbe34e5c6bd71a77ad39e3d75dddc6b6f1a7fad74e79eb4e5ddfa7bb6b6db9eb6f3bf5e6fbd5bddee77f7a75df3af5b69be75d3cd1befbdfd77b7b8d79779d1d6dce366da777d36d77ebcd5b7f8f74df57f66dbe366ddedfdbce3a777db579f71c7fddfae7a738e9b73d6ddddd75d69de3ae7479af3873b7b7f7adbae37edcf36ef8e1ff1a75f6bdf5debb6fdd9de756bc7f9edfe396fd7ddd1a6bb6b6e1bebbe7d7f469deb4e36f5cdb4f79ddc6f87f56b4eb4e1a7da77877479fd34e5bd34ef979b75fddeefc75ce9e71ff3b79aefcefad747b77f6e787f5d9a69e739dbae1d777d5befb6b6d7beb6d1ee1b73bdf7db4e1dd35d7a7faf75f5dddcf5ff5e6f57de69e77ae3c7bcedfddde7a6f5f34f38e7bd1df77efcdfaedadbc", - "cluster": { - "validatorCount": 0, - "networkFeeIndex": 0, - "index": 0, - "balance": 0, - "active": false - }, - "signature": "0x933b60910e53c116acff229ec961d9adca85a5dd7a51fe685091dab7e19ca3cadbf8e957cf8f20cbb63200444f73966602bd017c0892002b7edd15534fbf65fa5fa45a3c6998b62fa6e32fe14752b0b2789d6870e20b61da30b8e96f5ad8d4ac", + "signature": "0xad3cd22e20a0e4d6a12afcaa176fc238ee3105d1a056945363d386d749f535b633349a2d2d0709bf74c39fb14ed33f26147f8e583a53974648b64154a96e9ea6bbbaaa855f1a6b3d19f1a8c17d8be989390ccfd897fb84679349f14609026a41", "withdrawalCredentials": "0x01000000000000000000000007E05700CB4E946BA50244e27f01805354cD8eF0" } } \ No newline at end of file diff --git a/common/ssv/.gitignore b/common/ssv/.gitignore new file mode 100644 index 000000000..04c01ba7b --- /dev/null +++ b/common/ssv/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +dist/ \ No newline at end of file diff --git a/common/ssv/package.json b/common/ssv/package.json new file mode 100644 index 000000000..3abdf84fe --- /dev/null +++ b/common/ssv/package.json @@ -0,0 +1,16 @@ +{ + "name": "@casimir/ssv", + "private": "true", + "main": "src/index.ts", + "scripts": { + "build": "esbuild src/index.ts --bundle --minify --sourcemap --platform=node --target=esnext --outfile=dist/index.js", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "dependencies": { + "ethers": "^5.7.2" + }, + "devDependencies": { + "@types/node": "^17.0.38", + "esbuild": "^0.15.9" + } +} diff --git a/common/ssv/src/index.ts b/common/ssv/src/index.ts new file mode 100644 index 000000000..8839c7234 --- /dev/null +++ b/common/ssv/src/index.ts @@ -0,0 +1,3 @@ +import { getCluster } from './providers/clusters' + +export { getCluster } \ No newline at end of file diff --git a/services/dkg/src/interfaces/ClusterInput.ts b/common/ssv/src/interfaces/ClusterInput.ts similarity index 54% rename from services/dkg/src/interfaces/ClusterInput.ts rename to common/ssv/src/interfaces/ClusterInput.ts index 41824ac86..7f9cbb788 100644 --- a/services/dkg/src/interfaces/ClusterInput.ts +++ b/common/ssv/src/interfaces/ClusterInput.ts @@ -1,13 +1,12 @@ -import { ISSVNetwork } from '@casimir/ethereum/build/artifacts/types' import { ethers } from 'ethers' export interface ClusterInput { - /** SSV network contract */ - ssv: ISSVNetwork & ethers.Contract + /** SSV network address */ + networkAddress: string /** Operator IDs */ operatorIds: number[] /** JSON RPC node provider */ - provider: ethers.JsonRpcProvider + provider: ethers.providers.JsonRpcProvider /** Withdrawal address */ withdrawalAddress: string } \ No newline at end of file diff --git a/common/ssv/src/providers/clusters.ts b/common/ssv/src/providers/clusters.ts new file mode 100644 index 000000000..689bdbc94 --- /dev/null +++ b/common/ssv/src/providers/clusters.ts @@ -0,0 +1,95 @@ +import { ethers } from 'ethers' +import { Cluster } from '@casimir/types' +import ISSVNetworkJson from '@casimir/ethereum/build/artifacts/src/vendor/interfaces/ISSVNetwork.sol/ISSVNetwork.json' +import { ClusterInput } from '../interfaces/ClusterInput' + +/** + * Get cluster snapshot + * @param {ClusterInput} input - Operator IDs and withdrawal address + * @returns {Promise} Cluster snapshot + */ +export async function getCluster(input: ClusterInput): Promise { + const { provider, networkAddress, operatorIds, withdrawalAddress } = input + + const ssv = new ethers.Contract(networkAddress, ISSVNetworkJson.abi, provider) + + const DAY = 5400 + const WEEK = DAY * 7 + const MONTH = DAY * 30 + const latestBlockNumber = await provider.getBlockNumber() + let step = MONTH + let cluster: Cluster | undefined + let biggestBlockNumber = 0 + + const eventList = [ + 'ClusterDeposited', + 'ClusterWithdrawn', + 'ValidatorAdded', + 'ValidatorRemoved', + 'ClusterLiquidated', + 'ClusterReactivated' + ] + + // Todo create query filter for events + + let fromBlock = latestBlockNumber - step + let toBlock = latestBlockNumber + + while (!cluster && fromBlock > 0) { + try { + const result = await ssv.queryFilter('*', fromBlock, toBlock) + + for (const item of result) { + const { args, blockNumber, event } = item + + try { + const checkClusterEvent = eventList.map(e => e.split('(')[0]).includes(event as string) + if (!checkClusterEvent) continue + const checkOwner = args?.owner === withdrawalAddress + if (!checkOwner) continue + const checkOperators = JSON.stringify(args?.operatorIds.map((value: string) => Number(value))) === JSON.stringify(operatorIds) + if (!checkOperators) continue + const checkCluster = args?.cluster !== undefined + if (!checkCluster) continue + + if (blockNumber > biggestBlockNumber) { + biggestBlockNumber = blockNumber + const [ + validatorCount, + networkFeeIndex, + index, + balance, + active + ] = args.cluster + cluster = { + validatorCount, + networkFeeIndex, + index, + balance, + active + } + } + } catch (e) { + console.error('ERROR FILTERING CLUSTER EVENTS', e) + } + } + toBlock = fromBlock + } catch (e) { + console.error(e) + if (step === MONTH) { + step = WEEK + } else if (step === WEEK) { + step = DAY + } + } + fromBlock = toBlock - step + } + + return cluster || { + validatorCount: 0, + networkFeeIndex: 0, + index: 0, + balance: 0, + active: true + } +} \ No newline at end of file diff --git a/common/ssv/tsconfig.json b/common/ssv/tsconfig.json new file mode 100644 index 000000000..28ff0291b --- /dev/null +++ b/common/ssv/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ESNext", + "strict": true, + "preserveConstEnums": true, + "noEmit": true, + "sourceMap": false, + "module": "CommonJS", + "moduleResolution": "node", + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "isolatedModules": true, + "resolveJsonModule": true + }, + "include": [ + "./src/*" + ] + } \ No newline at end of file diff --git a/common/types/src/interfaces/Cluster.ts b/common/types/src/interfaces/Cluster.ts index 63bddb0c8..cbe10c873 100644 --- a/common/types/src/interfaces/Cluster.ts +++ b/common/types/src/interfaces/Cluster.ts @@ -1,7 +1,9 @@ +import { ethers } from 'ethers' + export interface Cluster { - validatorCount: number - networkFeeIndex: number - index: number - balance: number + validatorCount: number | ethers.BigNumber + networkFeeIndex: number | ethers.BigNumber + index: number | ethers.BigNumber + balance: number | ethers.BigNumber active: boolean } \ No newline at end of file diff --git a/contracts/ethereum/docs/index.md b/contracts/ethereum/docs/index.md index e7853f391..a5200917d 100644 --- a/contracts/ethereum/docs/index.md +++ b/contracts/ethereum/docs/index.md @@ -71,7 +71,7 @@ SSV fee percentage ### constructor ```solidity -constructor(address beaconDepositAddress, address _dkgOracleAddress, address functionsOracleAddress, uint64 functionsSubscriptionId, address linkTokenAddress, address ssvNetworkAddress, address ssvTokenAddress, address swapFactoryAddress, address swapRouterAddress, address wethTokenAddress) public +constructor(address beaconDepositAddress, address _dkgOracleAddress, address functionsOracleAddress, uint32 functionsSubscriptionId, address linkTokenAddress, address ssvNetworkAddress, address ssvTokenAddress, address swapFactoryAddress, address swapRouterAddress, address wethTokenAddress) public ``` Constructor @@ -83,7 +83,7 @@ Constructor | beaconDepositAddress | address | The Beacon deposit address | | _dkgOracleAddress | address | The DKG oracle address | | functionsOracleAddress | address | The Chainlink functions oracle address | -| functionsSubscriptionId | uint64 | The Chainlink functions subscription ID | +| functionsSubscriptionId | uint32 | The Chainlink functions subscription ID | | linkTokenAddress | address | The Chainlink token address | | ssvNetworkAddress | address | The SSV network address | | ssvTokenAddress | address | The SSV token address | @@ -162,7 +162,7 @@ Complete a given count of pending withdrawals ### initiatePoolDeposit ```solidity -function initiatePoolDeposit(bytes32 depositDataRoot, bytes publicKey, uint32[] operatorIds, bytes shares, bytes signature, bytes withdrawalCredentials, uint256 feeAmount) external +function initiatePoolDeposit(bytes32 depositDataRoot, bytes publicKey, uint64[] operatorIds, bytes shares, struct ISSVNetworkCore.Cluster cluster, bytes signature, bytes withdrawalCredentials, uint256 feeAmount) external ``` Initiate the next ready pool @@ -173,12 +173,19 @@ Initiate the next ready pool | ---- | ---- | ----------- | | depositDataRoot | bytes32 | The deposit data root | | publicKey | bytes | The validator public key | -| operatorIds | uint32[] | The operator IDs | +| operatorIds | uint64[] | The operator IDs | | shares | bytes | The operator shares | +| cluster | struct ISSVNetworkCore.Cluster | | | signature | bytes | The signature | | withdrawalCredentials | bytes | The withdrawal credentials | | feeAmount | uint256 | The fee amount | +### _getRevertMsg + +```solidity +function _getRevertMsg(bytes _returnData) internal pure returns (string) +``` + ### requestPoolExits ```solidity @@ -225,7 +232,7 @@ Register an operator with the pool manager ### resharePool ```solidity -function resharePool(uint32 poolId, uint32[] operatorIds, bytes shares) external +function resharePool(uint32 poolId, uint64[] operatorIds, bytes shares) external ``` Reshare a given pool's validator @@ -235,7 +242,7 @@ Reshare a given pool's validator | Name | Type | Description | | ---- | ---- | ----------- | | poolId | uint32 | The pool ID | -| operatorIds | uint32[] | The operator IDs | +| operatorIds | uint64[] | The operator IDs | | shares | bytes | The operator shares | ### setFeePercents @@ -813,7 +820,7 @@ struct Pool { uint256 reshareCount; bytes32 depositDataRoot; bytes publicKey; - uint32[] operatorIds; + uint64[] operatorIds; bytes shares; bytes signature; bytes withdrawalCredentials; @@ -949,7 +956,7 @@ function completePendingWithdrawals(uint256 count) external ### initiatePoolDeposit ```solidity -function initiatePoolDeposit(bytes32 depositDataRoot, bytes publicKey, uint32[] operatorIds, bytes shares, bytes signature, bytes withdrawalCredentials, uint256 feeAmount) external +function initiatePoolDeposit(bytes32 depositDataRoot, bytes publicKey, uint64[] operatorIds, bytes shares, struct ISSVNetworkCore.Cluster cluster, bytes signature, bytes withdrawalCredentials, uint256 feeAmount) external ``` ### requestPoolExits @@ -1505,7 +1512,7 @@ event FeeRecipientAddressUpdated(address owner, address recipientAddress) ### initialize ```solidity -function initialize(string initialVersion_, contract IERC20 token_, uint64 operatorMaxFeeIncrease_, uint64 declareOperatorFeePeriod_, uint64 executeOperatorFeePeriod_, uint64 minimumBlocksBeforeLiquidation_, uint256 minimumLiquidationCollateral_, uint32 validatorsPerOperatorLimit_) external +function initialize(string initialVersion_, contract IERC20 token_, uint64 operatorMaxFeeIncrease_, uint64 declareOperatorFeePeriod_, uint64 executeOperatorFeePeriod_, uint64 minimumBlocksBeforeLiquidation_, uint256 minimumLiquidationCollateral_) external ``` _Initializes the contract._ @@ -1521,7 +1528,6 @@ _Initializes the contract._ | executeOperatorFeePeriod_ | uint64 | The length of the period in which an operator can approve their fee. | | minimumBlocksBeforeLiquidation_ | uint64 | | | minimumLiquidationCollateral_ | uint256 | | -| validatorsPerOperatorLimit_ | uint32 | | ### registerOperator @@ -1591,7 +1597,7 @@ function setFeeRecipientAddress(address feeRecipientAddress) external ### registerValidator ```solidity -function registerValidator(bytes publicKey, uint64[] operatorIds, bytes shares, uint256 amount, struct ISSVNetworkCore.Cluster cluster) external +function registerValidator(bytes publicKey, uint64[] operatorIds, bytes sharesEncrypted, uint256 amount, struct ISSVNetworkCore.Cluster cluster) external ``` ### removeValidator @@ -1678,84 +1684,6 @@ function updateLiquidationThresholdPeriod(uint64 blocks) external function updateMinimumLiquidationCollateral(uint256 amount) external ``` -### validatorPKs - -```solidity -function validatorPKs(bytes32 validatorId) external view returns (address owner, bool active) -``` - -### clusters - -```solidity -function clusters(bytes32 clusterId) external view returns (bytes32 clusterData) -``` - -### operators - -```solidity -function operators(uint64 operatorId) external view returns (address operatorOwner, uint64 fee, uint32 validatorCount, struct ISSVNetworkCore.Snapshot snapshot) -``` - -### operatorFeeChangeRequests - -```solidity -function operatorFeeChangeRequests(uint64 operatorId) external view returns (uint64 fee, uint64 approvalBeginTime, uint64 approvalEndTime) -``` - -### operatorsWhitelist - -```solidity -function operatorsWhitelist(uint64 operatorId) external view returns (address whitelisted) -``` - -### network - -```solidity -function network() external view returns (uint64 networkFee, uint64 networkFeeIndex, uint64 networkFeeIndexBlockNumber) -``` - -### dao - -```solidity -function dao() external view returns (uint32 validatorCount, uint64 balance, uint64 block) -``` - -### minimumBlocksBeforeLiquidation - -```solidity -function minimumBlocksBeforeLiquidation() external view returns (uint64) -``` - -### minimumLiquidationCollateral - -```solidity -function minimumLiquidationCollateral() external view returns (uint64) -``` - -### operatorMaxFeeIncrease - -```solidity -function operatorMaxFeeIncrease() external view returns (uint64) -``` - -### executeOperatorFeePeriod - -```solidity -function executeOperatorFeePeriod() external view returns (uint64) -``` - -### declareOperatorFeePeriod - -```solidity -function declareOperatorFeePeriod() external view returns (uint64) -``` - -### version - -```solidity -function version() external view returns (bytes32) -``` - ## ISSVNetworkCore ### Validator @@ -1805,8 +1733,8 @@ struct Cluster { uint32 validatorCount; uint64 networkFeeIndex; uint64 index; - bool active; uint256 balance; + bool active; } ``` @@ -1854,10 +1782,10 @@ error FeeTooLow() error FeeExceedsIncreaseLimit() ``` -### NoFeeDeclared +### NoFeeDelcared ```solidity -error NoFeeDeclared() +error NoFeeDelcared() ``` ### ApprovalNotWithinTimeframe @@ -1974,24 +1902,6 @@ error SameFeeChangeNotAllowed() error FeeIncreaseNotAllowed() ``` -### NotAuthorized - -```solidity -error NotAuthorized() -``` - -### OperatorsListNotUnique - -```solidity -error OperatorsListNotUnique() -``` - -### OperatorAlreadyExists - -```solidity -error OperatorAlreadyExists() -``` - ## IWETH9 ### deposit @@ -2010,159 +1920,3 @@ function withdraw(uint256) external Withdraw wrapped ether to get ether -## MockFunctionsOracle - -### constructor - -```solidity -constructor() public -``` - -### getRegistry - -```solidity -function getRegistry() external view returns (address) -``` - -Returns the address of the registry contract - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| [0] | address | address The address of the registry contract | - -### sendRequest - -```solidity -function sendRequest(uint64 _subscriptionId, bytes _data, uint32 _gasLimit) external returns (bytes32 requestId) -``` - -Sends a request (encoded as data) using the provided subscriptionId - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| _subscriptionId | uint64 | A unique subscription ID allocated by billing system, a client can make requests from different contracts referencing the same subscription | -| _data | bytes | Encoded Chainlink Functions request data, use FunctionsClient API to encode a request | -| _gasLimit | uint32 | Gas limit for the fulfillment callback | - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| requestId | bytes32 | A unique request identifier (unique per DON) | - -## ISSVNetworkViews - -### initialize - -```solidity -function initialize(contract ISSVNetwork ssvNetwork_) external -``` - -_Initializes the contract._ - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| ssvNetwork_ | contract ISSVNetwork | The SSVNetwork contract. | - -### getValidator - -```solidity -function getValidator(bytes publicKey) external returns (address, bool) -``` - -### getOperatorFee - -```solidity -function getOperatorFee(uint64 operatorId) external returns (uint256) -``` - -### getOperatorDeclaredFee - -```solidity -function getOperatorDeclaredFee(uint64 operatorId) external returns (uint256, uint256, uint256) -``` - -### getOperatorById - -```solidity -function getOperatorById(uint64 operatorId) external view returns (address owner, uint256 fee, uint32 validatorCount, bool isPrivate, bool active) -``` - -### isLiquidatable - -```solidity -function isLiquidatable(address owner, uint64[] operatorIds, struct ISSVNetworkCore.Cluster cluster) external returns (bool) -``` - -### isLiquidated - -```solidity -function isLiquidated(address owner, uint64[] operatorIds, struct ISSVNetworkCore.Cluster cluster) external returns (bool) -``` - -### getBurnRate - -```solidity -function getBurnRate(address owner, uint64[] operatorIds, struct ISSVNetworkCore.Cluster cluster) external returns (uint256) -``` - -### getOperatorEarnings - -```solidity -function getOperatorEarnings(uint64 operatorId) external returns (uint256) -``` - -### getBalance - -```solidity -function getBalance(address owner, uint64[] operatorIds, struct ISSVNetworkCore.Cluster cluster) external returns (uint256) -``` - -### getNetworkFee - -```solidity -function getNetworkFee() external returns (uint256) -``` - -### getNetworkEarnings - -```solidity -function getNetworkEarnings() external returns (uint256) -``` - -### getOperatorFeeIncreaseLimit - -```solidity -function getOperatorFeeIncreaseLimit() external returns (uint64) -``` - -### getExecuteOperatorFeePeriod - -```solidity -function getExecuteOperatorFeePeriod() external returns (uint64) -``` - -### getDeclaredOperatorFeePeriod - -```solidity -function getDeclaredOperatorFeePeriod() external returns (uint64) -``` - -### getLiquidationThresholdPeriod - -```solidity -function getLiquidationThresholdPeriod() external returns (uint64) -``` - -### getMinimumLiquidationCollateral - -```solidity -function getMinimumLiquidationCollateral() external returns (uint256) -``` - diff --git a/contracts/ethereum/helpers/dkg.ts b/contracts/ethereum/helpers/dkg.ts index a5a3fe1e5..10574b829 100644 --- a/contracts/ethereum/helpers/dkg.ts +++ b/contracts/ethereum/helpers/dkg.ts @@ -3,20 +3,26 @@ import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' import { CasimirManager } from '../build/artifacts/types' import { validatorStore } from '@casimir/data' import { Validator } from '@casimir/types' +import { getCluster } from '@casimir/ssv' const mockValidators: Validator[] = Object.values(validatorStore) + const mockFee = 0.1 -export async function initiatePoolDeposit({ manager, signer, index }: { manager: CasimirManager, signer: SignerWithAddress, index: number }) { +export async function initiatePoolDepositHander({ manager, signer, index }: { manager: CasimirManager, signer: SignerWithAddress, index: number }) { const { depositDataRoot, publicKey, operatorIds, shares, - cluster, signature, withdrawalCredentials } = mockValidators[index] + + const networkAddress = await manager.getSSVNetworkAddress() + const withdrawalAddress = manager.address + const cluster = await getCluster({ provider: ethers.provider, networkAddress, operatorIds, withdrawalAddress }) + const initiatePool = await manager.connect(signer).initiatePoolDeposit( depositDataRoot, publicKey, diff --git a/contracts/ethereum/scripts/dev.ts b/contracts/ethereum/scripts/dev.ts index 087f2ede7..257be2760 100644 --- a/contracts/ethereum/scripts/dev.ts +++ b/contracts/ethereum/scripts/dev.ts @@ -64,12 +64,27 @@ void async function () { const manager = await ethers.getContractAt('CasimirManager', config.CasimirManager.address as string) as CasimirManager const upkeep = await ethers.getContractAt('CasimirUpkeep', await manager.getUpkeepAddress() as string) as CasimirUpkeep - + + /** Stake 160 from the fourth user */ + setTimeout(async () => { + const stakeAmount = 160 + const feePercent = await manager.getFeePercent() + const depositAmount = stakeAmount * ((100 + feePercent) / 100) + const stake = await manager.connect(fourthUser).depositStake({ value: ethers.utils.parseEther(depositAmount.toString()) }) + await stake?.wait() + }, 1000) + + /** Perform upkeep and fulfill dkg answer after each pool is initiated by the local oracle */ + for await (const event of on(manager as unknown as EventEmitter, 'PoolDepositInitiated')) { + const [id, details] = event + console.log(`Pool ${id} initiated at block number ${details.blockNumber}`) + } + /** Simulate rewards per staked validator */ const blocksPerReward = 50 const rewardPerValidator = 0.105 let lastRewardBlock = await ethers.provider.getBlockNumber() - ethers.provider.on('block', async (block) => { + for await (const block of on(ethers.provider as unknown as EventEmitter, 'block')) { if (block - blocksPerReward === lastRewardBlock) { lastRewardBlock = block const validatorCount = await manager.getValidatorPublicKeys() @@ -94,6 +109,13 @@ void async function () { const nextDepositedCount = (await manager.getPendingPoolIds()).length const nextExitedCount = 0 + console.log('Fulfilling before sweep:') + console.log('nextActiveBalanceAmount', nextActiveBalanceAmount) + console.log('nextSweptRewardsAmount', nextSweptRewardsAmount) + console.log('nextSweptExitsAmount', nextSweptExitsAmount) + console.log('nextDepositedCount', nextDepositedCount) + console.log('nextExitedCount', nextExitedCount) + await fulfillFunctionsRequest({ upkeep, keeper, nextActiveBalanceAmount, nextSweptRewardsAmount, nextSweptExitsAmount, nextDepositedCount, nextExitedCount }) } @@ -118,25 +140,17 @@ void async function () { const nextDepositedCount = (await manager.getPendingPoolIds()).length const nextExitedCount = 0 + console.log('Fulfilling after sweep:') + console.log('nextActiveBalanceAmount', nextActiveBalanceAmount) + console.log('nextSweptRewardsAmount', nextSweptRewardsAmount) + console.log('nextSweptExitsAmount', nextSweptExitsAmount) + console.log('nextDepositedCount', nextDepositedCount) + console.log('nextExitedCount', nextExitedCount) + await fulfillFunctionsRequest({ upkeep, keeper, nextActiveBalanceAmount, nextSweptRewardsAmount, nextSweptExitsAmount, nextDepositedCount, nextExitedCount }) } - + } } - }) - - /** Stake 64 from the fourth user */ - setTimeout(async () => { - const stakeAmount = 64 - const feePercent = await manager.getFeePercent() - const depositAmount = stakeAmount * ((100 + feePercent) / 100) - const stake = await manager?.connect(fourthUser).depositStake({ value: ethers.utils.parseEther(depositAmount.toString()) }) - await stake?.wait() - }, 1000) - - /** Perform upkeep and fulfill dkg answer after each pool is initiated by the local oracle */ - for await (const event of on(manager as unknown as EventEmitter, 'PoolDepositInitiated')) { - const [ id, details ] = event - console.log(`Pool ${id} initiated at block number ${details.blockNumber}`) } }() \ No newline at end of file diff --git a/contracts/ethereum/src/CasimirManager.sol b/contracts/ethereum/src/CasimirManager.sol index 826bc3427..be0798a55 100644 --- a/contracts/ethereum/src/CasimirManager.sol +++ b/contracts/ethereum/src/CasimirManager.sol @@ -912,6 +912,14 @@ contract CasimirManager is ICasimirManager, Ownable, ReentrancyGuard { return ssvFeePercent; } + /** + * @notice Get the SSV network address + * @return ssvNetworkAddress The SSV network address + */ + function getSSVNetworkAddress() external view returns (address ssvNetworkAddress) { + ssvNetworkAddress = address(ssvNetwork); + } + /** * @notice Get the upkeep address * @return upkeepAddress The upkeep address diff --git a/contracts/ethereum/test/fixtures/shared.ts b/contracts/ethereum/test/fixtures/shared.ts index fdfbdd1ad..1662ee91c 100644 --- a/contracts/ethereum/test/fixtures/shared.ts +++ b/contracts/ethereum/test/fixtures/shared.ts @@ -3,7 +3,7 @@ import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' import { deployContract } from '@casimir/ethereum/helpers/deploy' import { CasimirManager, CasimirUpkeep } from '@casimir/ethereum/build/artifacts/types' import { fulfillFunctionsRequest, runUpkeep } from '@casimir/ethereum/helpers/upkeep' -import { initiatePoolDeposit } from '@casimir/ethereum/helpers/dkg' +import { initiatePoolDepositHander } from '@casimir/ethereum/helpers/dkg' import { round } from '@casimir/ethereum/helpers/math' import { ContractConfig, DeploymentConfig } from '@casimir/types' @@ -108,7 +108,7 @@ export async function secondUserDepositFixture() { /** Initiate next ready pool */ const nextValidatorIndex = (await manager.getPendingPoolIds()).length + (await manager.getStakedPoolIds()).length - await initiatePoolDeposit({ manager, signer: dkg, index: nextValidatorIndex }) + await initiatePoolDepositHander({ manager, signer: dkg, index: nextValidatorIndex }) /** Run upkeep */ const ranUpkeep = await runUpkeep({ upkeep, keeper }) @@ -209,7 +209,7 @@ export async function thirdUserDepositFixture() { /** Initiate next ready pool */ const nextValidatorIndex = (await manager.getPendingPoolIds()).length + (await manager.getStakedPoolIds()).length - await initiatePoolDeposit({ manager, signer: dkg, index: nextValidatorIndex }) + await initiatePoolDepositHander({ manager, signer: dkg, index: nextValidatorIndex }) /** Run upkeep */ const ranUpkeep = await runUpkeep({ upkeep, keeper }) @@ -324,7 +324,7 @@ export async function fourthUserDepositFixture() { /** Initiate next ready pools (2) */ for (let i = 0; i < 2; i++) { const nextValidatorIndex = (await manager.getPendingPoolIds()).length + (await manager.getStakedPoolIds()).length - await initiatePoolDeposit({ manager, signer: dkg, index: nextValidatorIndex }) + await initiatePoolDepositHander({ manager, signer: dkg, index: nextValidatorIndex }) } /** Run upkeep */ diff --git a/package-lock.json b/package-lock.json index 9c8ca0ef5..5b7d4514f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -235,6 +235,53 @@ "@ledgerhq/hw-transport": "^6.27.10" } }, + "common/ssv": { + "name": "@casimir/ssv", + "dependencies": { + "ethers": "^5.7.2" + }, + "devDependencies": { + "@types/node": "^17.0.38", + "esbuild": "^0.15.9" + } + }, + "common/ssv/node_modules/esbuild": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", + "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.15.18", + "@esbuild/linux-loong64": "0.15.18", + "esbuild-android-64": "0.15.18", + "esbuild-android-arm64": "0.15.18", + "esbuild-darwin-64": "0.15.18", + "esbuild-darwin-arm64": "0.15.18", + "esbuild-freebsd-64": "0.15.18", + "esbuild-freebsd-arm64": "0.15.18", + "esbuild-linux-32": "0.15.18", + "esbuild-linux-64": "0.15.18", + "esbuild-linux-arm": "0.15.18", + "esbuild-linux-arm64": "0.15.18", + "esbuild-linux-mips64le": "0.15.18", + "esbuild-linux-ppc64le": "0.15.18", + "esbuild-linux-riscv64": "0.15.18", + "esbuild-linux-s390x": "0.15.18", + "esbuild-netbsd-64": "0.15.18", + "esbuild-openbsd-64": "0.15.18", + "esbuild-sunos-64": "0.15.18", + "esbuild-windows-32": "0.15.18", + "esbuild-windows-64": "0.15.18", + "esbuild-windows-arm64": "0.15.18" + } + }, "common/types": { "name": "@casimir/types" }, @@ -313,11 +360,6 @@ "constructs": "^10.0.0" } }, - "node_modules/@adraffy/ens-normalize": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.9.0.tgz", - "integrity": "sha512-iowxq3U30sghZotgl4s/oJRci6WPBfNO5YYgk2cIOMCHr3LeGPcsZjCEr+33Q4N+oV3OABDAtA+pyvWjbvBifQ==" - }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", @@ -343,9 +385,9 @@ } }, "node_modules/@aws-cdk/asset-awscli-v1": { - "version": "2.2.176", - "resolved": "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.176.tgz", - "integrity": "sha512-rAJ2KO0SK9uC9Wv6vAS1V2Eg88dK9nlojhm/HrEBWDsIPWcxvvT9EACkElrNXK9X6CF10i6W4UApCROERF1qjg==" + "version": "2.2.179", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.179.tgz", + "integrity": "sha512-IG4iaeYcKhBD+pmltWn/LH48MDDJYdkyuyCSM5GftfL9gkpv2zzlJGyEyOG2RU0ScJ5RcwH+KkUvkrOwadsDBA==" }, "node_modules/@aws-cdk/asset-kubectl-v20": { "version": "2.1.1", @@ -353,9 +395,9 @@ "integrity": "sha512-U1ntiX8XiMRRRH5J1IdC+1t5CE89015cwyt5U63Cpk0GnMlN5+h9WsWMlKlPXZR4rdq/m806JRlBMRpBUB2Dhw==" }, "node_modules/@aws-cdk/asset-node-proxy-agent-v5": { - "version": "2.0.147", - "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v5/-/asset-node-proxy-agent-v5-2.0.147.tgz", - "integrity": "sha512-CnRj0KQwF6bpoGl2kABRqSdkf9gyj6IdEcuReaWbExPGYKKk+Pc0aGr32SwcPftP2Z8754g3Msw+tBhfE3IYdg==" + "version": "2.0.150", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v5/-/asset-node-proxy-agent-v5-2.0.150.tgz", + "integrity": "sha512-xfLY3s5hi7wtpjUGGuI8Q9IPlIO3W957I+yekcHL1EOFFmPAHkkvC0DmQ1snDEqeqb5oekHZItkChf9uKPGihQ==" }, "node_modules/@aws-cdk/aws-glue-alpha": { "version": "2.33.0-alpha.0", @@ -458,15 +500,15 @@ } }, "node_modules/@aws-sdk/client-cognito-identity": { - "version": "3.332.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.332.0.tgz", - "integrity": "sha512-o2G3+w0Qm+jd5fnmG6+FF5KRu90PIv2Kd0mmMJIFmACVd+VtuWqsk85capX21YLcxizKe+okqaaD8/9vV7nvfw==", + "version": "3.335.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.335.0.tgz", + "integrity": "sha512-ghsAzb1K/CR70tQgJHiDzqy39az1zVmCW0AFwnUWIaK1sY+1pSQZ0Ey9BkywmzRIcBfbBxftexDdDX5nHg7oMA==", "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/client-sts": "3.332.0", + "@aws-sdk/client-sts": "3.335.0", "@aws-sdk/config-resolver": "3.329.0", - "@aws-sdk/credential-provider-node": "3.332.0", + "@aws-sdk/credential-provider-node": "3.335.0", "@aws-sdk/fetch-http-handler": "3.329.0", "@aws-sdk/hash-node": "3.329.0", "@aws-sdk/invalid-dependency": "3.329.0", @@ -482,7 +524,6 @@ "@aws-sdk/middleware-user-agent": "3.332.0", "@aws-sdk/node-config-provider": "3.329.0", "@aws-sdk/node-http-handler": "3.329.0", - "@aws-sdk/protocol-http": "3.329.0", "@aws-sdk/smithy-client": "3.329.0", "@aws-sdk/types": "3.329.0", "@aws-sdk/url-parser": "3.329.0", @@ -496,6 +537,8 @@ "@aws-sdk/util-user-agent-browser": "3.329.0", "@aws-sdk/util-user-agent-node": "3.329.0", "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", "tslib": "^2.5.0" }, "engines": { @@ -503,15 +546,15 @@ } }, "node_modules/@aws-sdk/client-secrets-manager": { - "version": "3.332.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.332.0.tgz", - "integrity": "sha512-xn8Ft+y+XggryvvPnKSEYhuidxWMMAXTfM4Dk1HAbzrpyAYRIuvYApt0a9nWa9DNM6Oi0yhcVvmsJW0/R+tvcA==", + "version": "3.335.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.335.0.tgz", + "integrity": "sha512-XgqOECIGZI8QfEBuYQJ+cek00raJz6UTkNun/zqYN8qCgFx+ukhnrB6g94kJITezz0Q51Rn2RM2nizE2hr3rVQ==", "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/client-sts": "3.332.0", + "@aws-sdk/client-sts": "3.335.0", "@aws-sdk/config-resolver": "3.329.0", - "@aws-sdk/credential-provider-node": "3.332.0", + "@aws-sdk/credential-provider-node": "3.335.0", "@aws-sdk/fetch-http-handler": "3.329.0", "@aws-sdk/hash-node": "3.329.0", "@aws-sdk/invalid-dependency": "3.329.0", @@ -527,7 +570,6 @@ "@aws-sdk/middleware-user-agent": "3.332.0", "@aws-sdk/node-config-provider": "3.329.0", "@aws-sdk/node-http-handler": "3.329.0", - "@aws-sdk/protocol-http": "3.329.0", "@aws-sdk/smithy-client": "3.329.0", "@aws-sdk/types": "3.329.0", "@aws-sdk/url-parser": "3.329.0", @@ -541,6 +583,8 @@ "@aws-sdk/util-user-agent-browser": "3.329.0", "@aws-sdk/util-user-agent-node": "3.329.0", "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", "tslib": "^2.5.0", "uuid": "^8.3.2" }, @@ -549,9 +593,9 @@ } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.332.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.332.0.tgz", - "integrity": "sha512-4q1Nko8M6YVANdEiLYvdv1qb00j4xN4ppE/6d4xpGp7DxHYlm0GA762h0/TR2dun+2I+SMnwj4Fv6BxOmzBaEw==", + "version": "3.335.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.335.0.tgz", + "integrity": "sha512-tMvOq366QeMzcrRTDhMwuCFirntANX25qi4U32NDl//ny/7V6+7WK8Hf8lRAHvWnY9eT4RdNklXESo2yxlPyUg==", "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", @@ -570,7 +614,6 @@ "@aws-sdk/middleware-user-agent": "3.332.0", "@aws-sdk/node-config-provider": "3.329.0", "@aws-sdk/node-http-handler": "3.329.0", - "@aws-sdk/protocol-http": "3.329.0", "@aws-sdk/smithy-client": "3.329.0", "@aws-sdk/types": "3.329.0", "@aws-sdk/url-parser": "3.329.0", @@ -584,6 +627,8 @@ "@aws-sdk/util-user-agent-browser": "3.329.0", "@aws-sdk/util-user-agent-node": "3.329.0", "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", "tslib": "^2.5.0" }, "engines": { @@ -591,9 +636,9 @@ } }, "node_modules/@aws-sdk/client-sso-oidc": { - "version": "3.332.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.332.0.tgz", - "integrity": "sha512-tz8k8Yqm4TScIfit0Tum2zWAq1md+gZKr747CSixd4Zwcp7Vwh75cRoL7Rz1ZHSEn1Yo983MWREevVez3SubLw==", + "version": "3.335.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.335.0.tgz", + "integrity": "sha512-szaMq6tDznGy4EuidxPqhZKqEnfGJfoPWUpoFlhXsgZXinZY/vJlJ4G5l6nikhnS3omq3C3WPGJXMKF1ejVXKg==", "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", @@ -612,7 +657,6 @@ "@aws-sdk/middleware-user-agent": "3.332.0", "@aws-sdk/node-config-provider": "3.329.0", "@aws-sdk/node-http-handler": "3.329.0", - "@aws-sdk/protocol-http": "3.329.0", "@aws-sdk/smithy-client": "3.329.0", "@aws-sdk/types": "3.329.0", "@aws-sdk/url-parser": "3.329.0", @@ -626,6 +670,8 @@ "@aws-sdk/util-user-agent-browser": "3.329.0", "@aws-sdk/util-user-agent-node": "3.329.0", "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", "tslib": "^2.5.0" }, "engines": { @@ -633,14 +679,14 @@ } }, "node_modules/@aws-sdk/client-sts": { - "version": "3.332.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.332.0.tgz", - "integrity": "sha512-uVobnXIzMcEhwBDyk6iOt36N/TRNI8hwq7MQugjYGj7Inma9g4vnR09hXJ24HxyKCoVUoIgMbEguQ43+/+uvDQ==", + "version": "3.335.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.335.0.tgz", + "integrity": "sha512-W+LW1b/3auvGg3EmFeJiraMyH/nxX7qIEBEPPWlJKphGSJAt0l08o8glL2O8s+o2oYWCB2DmgdWyOt1D6YRldQ==", "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", "@aws-sdk/config-resolver": "3.329.0", - "@aws-sdk/credential-provider-node": "3.332.0", + "@aws-sdk/credential-provider-node": "3.335.0", "@aws-sdk/fetch-http-handler": "3.329.0", "@aws-sdk/hash-node": "3.329.0", "@aws-sdk/invalid-dependency": "3.329.0", @@ -657,7 +703,6 @@ "@aws-sdk/middleware-user-agent": "3.332.0", "@aws-sdk/node-config-provider": "3.329.0", "@aws-sdk/node-http-handler": "3.329.0", - "@aws-sdk/protocol-http": "3.329.0", "@aws-sdk/smithy-client": "3.329.0", "@aws-sdk/types": "3.329.0", "@aws-sdk/url-parser": "3.329.0", @@ -671,6 +716,8 @@ "@aws-sdk/util-user-agent-browser": "3.329.0", "@aws-sdk/util-user-agent-node": "3.329.0", "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", "fast-xml-parser": "4.1.2", "tslib": "^2.5.0" }, @@ -693,11 +740,11 @@ } }, "node_modules/@aws-sdk/credential-provider-cognito-identity": { - "version": "3.332.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.332.0.tgz", - "integrity": "sha512-FJI936QVSFd49PWOgTlW7e8rKO/6Y8sMnkvTJ/APQ1K8em+jWkaAMFBl15NrpOo/jlZCzhkkQDatDHAlbSUXGw==", + "version": "3.335.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.335.0.tgz", + "integrity": "sha512-WMR9buxEbEMcghVITk/buVm1ev4rrlUCY8MR9Gg0QI6hUdDUSP6QfWz2Hn++Tfe96v6maHFANvkRLk9NNZQBeg==", "dependencies": { - "@aws-sdk/client-cognito-identity": "3.332.0", + "@aws-sdk/client-cognito-identity": "3.335.0", "@aws-sdk/property-provider": "3.329.0", "@aws-sdk/types": "3.329.0", "tslib": "^2.5.0" @@ -735,14 +782,14 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.332.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.332.0.tgz", - "integrity": "sha512-DTW6d6rcqizPVyvcIrwvxecQ7e5GONtVc5Wyf0RTfqf41sDOVZYmn6G+zEFSpBLW0975uZbJS0lyLWtJe2VujQ==", + "version": "3.335.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.335.0.tgz", + "integrity": "sha512-3AsKlpAnddLYGEZkfT8ZsAB+1WySSzbLA2eoJTW80nKWVUnvYV6gq/sNXEY43i7T2rOXmblJHbTuMAWA1ruMFg==", "dependencies": { "@aws-sdk/credential-provider-env": "3.329.0", "@aws-sdk/credential-provider-imds": "3.329.0", "@aws-sdk/credential-provider-process": "3.329.0", - "@aws-sdk/credential-provider-sso": "3.332.0", + "@aws-sdk/credential-provider-sso": "3.335.0", "@aws-sdk/credential-provider-web-identity": "3.329.0", "@aws-sdk/property-provider": "3.329.0", "@aws-sdk/shared-ini-file-loader": "3.329.0", @@ -754,15 +801,15 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.332.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.332.0.tgz", - "integrity": "sha512-KkBayS9k4WyJTvC86ngeRM+RmWxNCS1BHvudkR6PLXfnsNPDzxySDVY0UgxVhbNYDYsO561fXZt9ccpKyVWjgg==", + "version": "3.335.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.335.0.tgz", + "integrity": "sha512-aIelF8GBTbXuVntpeEdnbcajYtkO01OfSmXb08JxvtQ0tPCWY6SbLpNHUAIfBW1OVkm5E7SX+Hc1tawxq9IKAA==", "dependencies": { "@aws-sdk/credential-provider-env": "3.329.0", "@aws-sdk/credential-provider-imds": "3.329.0", - "@aws-sdk/credential-provider-ini": "3.332.0", + "@aws-sdk/credential-provider-ini": "3.335.0", "@aws-sdk/credential-provider-process": "3.329.0", - "@aws-sdk/credential-provider-sso": "3.332.0", + "@aws-sdk/credential-provider-sso": "3.335.0", "@aws-sdk/credential-provider-web-identity": "3.329.0", "@aws-sdk/property-provider": "3.329.0", "@aws-sdk/shared-ini-file-loader": "3.329.0", @@ -788,14 +835,14 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.332.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.332.0.tgz", - "integrity": "sha512-SaKXl48af3n6LRitcaEqbeg1YDXwQ0A5QziC1xQyYPraEIj3IZ/GyTjx04Lo2jxNYHuEOE8u4aTw1+IK1GDKbg==", + "version": "3.335.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.335.0.tgz", + "integrity": "sha512-omEF3m9Vy18QfuGuGx/48MaiKDOdvMZKZI9FKyQxFIwfqRyhmF2jzQ7070FD/E9YakscOZ0hSeYEPJ7nkJa8ww==", "dependencies": { - "@aws-sdk/client-sso": "3.332.0", + "@aws-sdk/client-sso": "3.335.0", "@aws-sdk/property-provider": "3.329.0", "@aws-sdk/shared-ini-file-loader": "3.329.0", - "@aws-sdk/token-providers": "3.332.0", + "@aws-sdk/token-providers": "3.335.0", "@aws-sdk/types": "3.329.0", "tslib": "^2.5.0" }, @@ -817,20 +864,20 @@ } }, "node_modules/@aws-sdk/credential-providers": { - "version": "3.332.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.332.0.tgz", - "integrity": "sha512-UZM8hCJqBBI4yEopVnfQ7HgUCuiYuWJziPFovQpbwvZKadibzo332/n6e5IsQbJxPjymqFLgTn3PQds/+1FOlQ==", - "dependencies": { - "@aws-sdk/client-cognito-identity": "3.332.0", - "@aws-sdk/client-sso": "3.332.0", - "@aws-sdk/client-sts": "3.332.0", - "@aws-sdk/credential-provider-cognito-identity": "3.332.0", + "version": "3.335.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.335.0.tgz", + "integrity": "sha512-KWZL+B+6BDj1PfP7+Bb3/A6yFWxYtjYR7vi2UgD6QrmB09iUQtheiwObZY3f30OAq10O03gOmhxC2N1o6+i0sQ==", + "dependencies": { + "@aws-sdk/client-cognito-identity": "3.335.0", + "@aws-sdk/client-sso": "3.335.0", + "@aws-sdk/client-sts": "3.335.0", + "@aws-sdk/credential-provider-cognito-identity": "3.335.0", "@aws-sdk/credential-provider-env": "3.329.0", "@aws-sdk/credential-provider-imds": "3.329.0", - "@aws-sdk/credential-provider-ini": "3.332.0", - "@aws-sdk/credential-provider-node": "3.332.0", + "@aws-sdk/credential-provider-ini": "3.335.0", + "@aws-sdk/credential-provider-node": "3.335.0", "@aws-sdk/credential-provider-process": "3.329.0", - "@aws-sdk/credential-provider-sso": "3.332.0", + "@aws-sdk/credential-provider-sso": "3.335.0", "@aws-sdk/credential-provider-web-identity": "3.329.0", "@aws-sdk/property-provider": "3.329.0", "@aws-sdk/types": "3.329.0", @@ -1164,11 +1211,11 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.332.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.332.0.tgz", - "integrity": "sha512-fccbg6OSl0l658pxl2p1MoU9gEePo5B361+JNaN0zfRMu7c5HBXCpdl4djlFxAHjltrX9f1+BKqfGHYgI3h8SQ==", + "version": "3.335.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.335.0.tgz", + "integrity": "sha512-2Hu62xH4/6V+N5JWsPuvxCCmaf/QUnxtz48ClpxzBKM/whrTTkLku8W2fh2MmnzGzAHtT+N97jkIsy2B+onqIg==", "dependencies": { - "@aws-sdk/client-sso-oidc": "3.332.0", + "@aws-sdk/client-sso-oidc": "3.335.0", "@aws-sdk/property-provider": "3.329.0", "@aws-sdk/shared-ini-file-loader": "3.329.0", "@aws-sdk/types": "3.329.0", @@ -2045,6 +2092,10 @@ "resolved": "common/speculos", "link": true }, + "node_modules/@casimir/ssv": { + "resolved": "common/ssv", + "link": true + }, "node_modules/@casimir/types": { "resolved": "common/types", "link": true @@ -4117,6 +4168,7 @@ "version": "1.7.1", "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "dev": true, "funding": [ { "type": "individual", @@ -4718,9 +4770,9 @@ } }, "node_modules/@octokit/core": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.0.tgz", - "integrity": "sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.1.tgz", + "integrity": "sha512-tEDxFx8E38zF3gT7sSMDrT1tGumDgsw5yPG6BBh/X+5ClIQfMH/Yqocxz1PnHx6CHyF6pxmovUTOfZAUvQ0Lvw==", "dev": true, "dependencies": { "@octokit/auth-token": "^3.0.0", @@ -4770,12 +4822,12 @@ "dev": true }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.0.tgz", - "integrity": "sha512-5T4iXjJdYCVA1rdWS1C+uZV9AvtZY9QgTG74kFiSFVj94dZXowyi/YK8f4SGjZaL69jZthGlBaDKRdCMCF9log==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.1.tgz", + "integrity": "sha512-64kiYiv//JIEk6XdEhysyWCmtKt+ranjUiCsokBKhTvmF+3WiH+vdlF+HSvD/6PmbVWRQ7BMoOC6nvDhblR18w==", "dev": true, "dependencies": { - "@octokit/types": "^9.2.2" + "@octokit/types": "^9.2.3" }, "engines": { "node": ">= 14" @@ -4794,12 +4846,12 @@ } }, "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.1.0.tgz", - "integrity": "sha512-SWwz/hc47GaKJR6BlJI4WIVRodbAFRvrR0QRPSoPMs7krb7anYPML3psg+ThEz/kcwOdSNh/oA8qThi/Wvs4Fw==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.1.2.tgz", + "integrity": "sha512-R0oJ7j6f/AdqPLtB9qRXLO+wjI9pctUn8Ka8UGfGaFCcCv3Otx14CshQ89K4E88pmyYZS8p0rNTiprML/81jig==", "dev": true, "dependencies": { - "@octokit/types": "^9.2.2", + "@octokit/types": "^9.2.3", "deprecation": "^2.3.1" }, "engines": { @@ -4810,9 +4862,9 @@ } }, "node_modules/@octokit/request": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.3.tgz", - "integrity": "sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA==", + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.5.tgz", + "integrity": "sha512-z83E8UIlPNaJUsXpjD8E0V5o/5f+vJJNbNcBwVZsX3/vC650U41cOkTLjq4PKk9BYonQGOnx7N17gvLyNjgGcQ==", "dev": true, "dependencies": { "@octokit/endpoint": "^7.0.0", @@ -4856,12 +4908,12 @@ } }, "node_modules/@octokit/types": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.2.2.tgz", - "integrity": "sha512-9BjDxjgQIvCjNWZsbqyH5QC2Yni16oaE6xL+8SUBMzcYPF4TGQBXGA97Cl3KceK9mwiNMb1mOYCz6FbCCLEL+g==", + "version": "9.2.3", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.2.3.tgz", + "integrity": "sha512-MMeLdHyFIALioycq+LFcA71v0S2xpQUX2cw6pPbHQjaibcHYwLnmK/kMZaWuGfGfjBJZ3wRUq+dOaWsvrPJVvA==", "dev": true, "dependencies": { - "@octokit/openapi-types": "^17.1.2" + "@octokit/openapi-types": "^17.2.0" } }, "node_modules/@openzeppelin/contracts": { @@ -5307,14 +5359,37 @@ } }, "node_modules/@sinonjs/fake-timers": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.1.0.tgz", - "integrity": "sha512-w1qd368vtrwttm1PRJWPW1QHlbmHrVDGs1eBH/jZvRPUFS4MNXV9Q33EQdjOdeAxZ7O8+3wM7zxztm2nfUSyKw==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.2.0.tgz", + "integrity": "sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg==", "dev": true, "dependencies": { "@sinonjs/commons": "^3.0.0" } }, + "node_modules/@smithy/protocol-http": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-1.0.1.tgz", + "integrity": "sha512-9OrEn0WfOVtBNYJUjUAn9AOiJ4lzERCJJ/JeZs8E6yajTGxBaFRxUnNBHiNqoDJVg076hY36UmEnPx7xXrvUSg==", + "dependencies": { + "@smithy/types": "^1.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/types": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-1.0.0.tgz", + "integrity": "sha512-kc1m5wPBHQCTixwuaOh9vnak/iJm21DrSf9UK6yDE5S3mQQ4u11pqAUiKWnlrZnYkeLfAI9UEHj9OaMT1v5Umg==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@solana/buffer-layout": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", @@ -5493,6 +5568,11 @@ "node-fetch": "^2.6.11" } }, + "node_modules/@trezor/connect/node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + }, "node_modules/@trezor/env-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@trezor/env-utils/-/env-utils-1.0.1.tgz", @@ -6392,36 +6472,36 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.2.tgz", - "integrity": "sha512-CKZWo1dzsQYTNTft7whzjL0HsrEpMfiK7pjZ2WFE3bC1NA7caUjWioHSK+49y/LK7Bsm4poJZzAMnvZMQ7OTeg==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz", + "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", "dependencies": { "@babel/parser": "^7.21.3", - "@vue/shared": "3.3.2", + "@vue/shared": "3.3.4", "estree-walker": "^2.0.2", "source-map-js": "^1.0.2" } }, "node_modules/@vue/compiler-dom": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.2.tgz", - "integrity": "sha512-6gS3auANuKXLw0XH6QxkWqyPYPunziS2xb6VRenM3JY7gVfZcJvkCBHkb5RuNY1FCbBO3lkIi0CdXUCW1c7SXw==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", + "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", "dependencies": { - "@vue/compiler-core": "3.3.2", - "@vue/shared": "3.3.2" + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.2.tgz", - "integrity": "sha512-jG4jQy28H4BqzEKsQqqW65BZgmo3vzdLHTBjF+35RwtDdlFE+Fk1VWJYUnDMMqkFBo6Ye1ltSKVOMPgkzYj7SQ==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", + "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", "dependencies": { "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.3.2", - "@vue/compiler-dom": "3.3.2", - "@vue/compiler-ssr": "3.3.2", - "@vue/reactivity-transform": "3.3.2", - "@vue/shared": "3.3.2", + "@vue/compiler-core": "3.3.4", + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-ssr": "3.3.4", + "@vue/reactivity-transform": "3.3.4", + "@vue/shared": "3.3.4", "estree-walker": "^2.0.2", "magic-string": "^0.30.0", "postcss": "^8.1.10", @@ -6440,12 +6520,12 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.2.tgz", - "integrity": "sha512-K8OfY5FQtZaSOJHHe8xhEfIfLrefL/Y9frv4k4NsyQL3+0lRKxr9QuJhfdBDjkl7Fhz8CzKh63mULvmOfx3l2w==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", + "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", "dependencies": { - "@vue/compiler-dom": "3.3.2", - "@vue/shared": "3.3.2" + "@vue/compiler-dom": "3.3.4", + "@vue/shared": "3.3.4" } }, "node_modules/@vue/devtools-api": { @@ -6472,21 +6552,21 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.2.tgz", - "integrity": "sha512-yX8C4uTgg2Tdj+512EEMnMKbLveoITl7YdQX35AYgx8vBvQGszKiiCN46g4RY6/deeo/5DLbeUUGxCq1qWMf5g==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", + "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", "dependencies": { - "@vue/shared": "3.3.2" + "@vue/shared": "3.3.4" } }, "node_modules/@vue/reactivity-transform": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.2.tgz", - "integrity": "sha512-iu2WaQvlJHdnONrsyv4ibIEnSsuKF+aHFngGj/y1lwpHQtalpVhKg9wsKMoiKXS9zPNjG9mNKzJS9vudvjzvyg==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", + "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", "dependencies": { "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.3.2", - "@vue/shared": "3.3.2", + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4", "estree-walker": "^2.0.2", "magic-string": "^0.30.0" } @@ -6503,40 +6583,40 @@ } }, "node_modules/@vue/runtime-core": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.2.tgz", - "integrity": "sha512-qSl95qj0BvKfcsO+hICqFEoLhJn6++HtsPxmTkkadFbuhe3uQfJ8HmQwvEr7xbxBd2rcJB6XOJg7nWAn/ymC5A==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz", + "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", "dependencies": { - "@vue/reactivity": "3.3.2", - "@vue/shared": "3.3.2" + "@vue/reactivity": "3.3.4", + "@vue/shared": "3.3.4" } }, "node_modules/@vue/runtime-dom": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.2.tgz", - "integrity": "sha512-+drStsJT+0mtgHdarT7cXZReCcTFfm6ptxMrz0kAW5hms6UNBd8Q1pi4JKlncAhu+Ld/TevsSp7pqAZxBBoGng==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", + "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", "dependencies": { - "@vue/runtime-core": "3.3.2", - "@vue/shared": "3.3.2", + "@vue/runtime-core": "3.3.4", + "@vue/shared": "3.3.4", "csstype": "^3.1.1" } }, "node_modules/@vue/server-renderer": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.2.tgz", - "integrity": "sha512-QCwh6OGwJg6GDLE0fbQhRTR6tnU+XDJ1iCsTYHXBiezCXAhqMygFRij7BiLF4ytvvHcg5kX9joX5R5vP85++wg==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz", + "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", "dependencies": { - "@vue/compiler-ssr": "3.3.2", - "@vue/shared": "3.3.2" + "@vue/compiler-ssr": "3.3.4", + "@vue/shared": "3.3.4" }, "peerDependencies": { - "vue": "3.3.2" + "vue": "3.3.4" } }, "node_modules/@vue/shared": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.2.tgz", - "integrity": "sha512-0rFu3h8JbclbnvvKrs7Fe5FNGV9/5X2rPD7KmOzhLSUAiQH5//Hq437Gv0fR5Mev3u/nbtvmLl8XgwCU20/ZfQ==" + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", + "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" }, "node_modules/@walletconnect/browser-utils": { "version": "1.8.0", @@ -6640,9 +6720,9 @@ } }, "node_modules/@walletconnect/jsonrpc-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.2.tgz", - "integrity": "sha512-CZe8tjJX73OWdHjrBHy7HtAapJ2tT0Q3TYhPBhRxi3643lwPIQWC9En45ldY14TZwgSewkbZ0FtGBZK0G7Bbyg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.3.tgz", + "integrity": "sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw==", "dependencies": { "keyvaluestorage-interface": "^1.0.0", "tslib": "1.14.1" @@ -6654,12 +6734,12 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@walletconnect/jsonrpc-utils": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.7.tgz", - "integrity": "sha512-zJziApzUF/Il4VcwabnaU+0yo1QI4eUkYX99zmCVTHJvZOf2l0zjADf/OpKqWyeNFC3Io56Z/8uJHVtcNVvyFA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz", + "integrity": "sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==", "dependencies": { "@walletconnect/environment": "^1.0.1", - "@walletconnect/jsonrpc-types": "^1.0.2", + "@walletconnect/jsonrpc-types": "^1.0.3", "tslib": "1.14.1" } }, @@ -7101,7 +7181,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -7110,7 +7189,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -7285,7 +7363,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, "engines": { "node": ">=8" } @@ -8895,9 +8972,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001487", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001487.tgz", - "integrity": "sha512-83564Z3yWGqXsh2vaH/mhXfEM0wX+NlBCm1jYHOb97TrTWJEmPTccZgeLTPBUUb0PNVo+oomb7wkimZBIERClA==", + "version": "1.0.30001488", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001488.tgz", + "integrity": "sha512-NORIQuuL4xGpIy6iCCQGN4iFjlBXtfKWIenlUuyZJumLRIindLb7wXM+GO8erEhb7vXfcnf4BAg2PrSDN5TNLQ==", "funding": [ { "type": "opencollective", @@ -8917,7 +8994,6 @@ "version": "1.6.3", "resolved": "https://registry.npmjs.org/case/-/case-1.6.3.tgz", "integrity": "sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==", - "dev": true, "engines": { "node": ">= 0.8.0" } @@ -9357,7 +9433,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -9368,8 +9443,7 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/colorette": { "version": "2.0.20", @@ -9615,9 +9689,9 @@ "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==" }, "node_modules/constructs": { - "version": "10.2.25", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.2.25.tgz", - "integrity": "sha512-hNhL7Lq+MZ/6QGaa5BWsuBMKmj30Wr81AjJaQfyGN5W9sZmJXAoI/ZEgRxTHCqkB6o5QB0bnlrZc2mwwnqFsSg==", + "version": "10.2.28", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.2.28.tgz", + "integrity": "sha512-qP0ryyp1ZVM0sbLgnGwa4aEOsJYQ1ghK4WA3WkPyft9JsSfbU/Wf8fMujWZWl+6txnyYyuvXabsCxiscjTyzMQ==", "engines": { "node": ">= 16.14.0" } @@ -10915,9 +10989,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.396", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.396.tgz", - "integrity": "sha512-pqKTdqp/c5vsrc0xUPYXTDBo9ixZuGY8es4ZOjjd6HD6bFYbu5QA09VoW3fkY4LF1T0zYk86lN6bZnNlBuOpdQ==" + "version": "1.4.402", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.402.tgz", + "integrity": "sha512-gWYvJSkohOiBE6ecVYXkrDgNaUjo47QEKK0kQzmWyhkH+yoYiG44bwuicTGNSIQRG3WDMsWVZJLRnJnLNkbWvA==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -13113,7 +13187,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -14851,7 +14924,6 @@ "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, "engines": { "node": ">= 4" } @@ -15317,9 +15389,9 @@ } }, "node_modules/is-core-module": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", - "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", "dependencies": { "has": "^1.0.3" }, @@ -17515,9 +17587,7 @@ "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true, - "peer": true + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==" }, "node_modules/lodash.uniqby": { "version": "4.7.0", @@ -19676,13 +19746,13 @@ } }, "node_modules/path-scurry": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.1.tgz", - "integrity": "sha512-UgmoiySyjFxP6tscZDgWGEAgsW5ok8W3F5CJDnnH2pozwSTGE6eH7vwTotMwATWA2r5xqdkKdxYPkwlJjAI/3g==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", + "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==", "dev": true, "dependencies": { "lru-cache": "^9.1.1", - "minipass": "^5.0.0 || ^6.0.0" + "minipass": "^5.0.0 || ^6.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -19701,9 +19771,9 @@ } }, "node_modules/path-scurry/node_modules/minipass": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.1.tgz", - "integrity": "sha512-Tenl5QPpgozlOGBiveNYHg2f6y+VpxsXRoIHFUVJuSmTonXRAE6q9b8Mp/O46762/2AlW4ye4Nkyvx0fgWDKbw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", + "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==", "dev": true, "engines": { "node": ">=16 || 14 >=14.17" @@ -21319,7 +21389,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -22778,7 +22847,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -23184,8 +23252,6 @@ "version": "6.8.1", "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", - "dev": true, - "peer": true, "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -23234,8 +23300,6 @@ "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -23250,16 +23314,12 @@ "node_modules/table/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "peer": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/table/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -23267,16 +23327,12 @@ "node_modules/table/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "peer": true + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/table/node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -23293,8 +23349,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -24944,9 +24998,9 @@ } }, "node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz", + "integrity": "sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==" }, "node_modules/tsort": { "version": "0.0.1", @@ -25020,9 +25074,9 @@ "dev": true }, "node_modules/twilio": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/twilio/-/twilio-4.11.0.tgz", - "integrity": "sha512-8ZTfl5+ByJ08c3ko+t9HQ0DYKn4D94GKvTl/N1IeXektaRbNZ81kYJJkdsx4XEz2p6Dv4qEx+0+SBCMwmAy79w==", + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/twilio/-/twilio-4.11.1.tgz", + "integrity": "sha512-gU1eZcCbXKz2ltYfpF4V9y7IRhSPvL4fIEpbU9nRDTYCnwVkKQiIhKjX3vqeYbP3H+UhshrH3sHHXN8f0zem4Q==", "dependencies": { "axios": "^0.26.1", "dayjs": "^1.8.29", @@ -26078,15 +26132,15 @@ } }, "node_modules/vue": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.2.tgz", - "integrity": "sha512-98hJcAhyDwZoOo2flAQBSPVYG/o0HA9ivIy2ktHshjE+6/q8IMQ+kvDKQzOZTFPxvnNMcGM+zS2A00xeZMA7tA==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", + "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", "dependencies": { - "@vue/compiler-dom": "3.3.2", - "@vue/compiler-sfc": "3.3.2", - "@vue/runtime-dom": "3.3.2", - "@vue/server-renderer": "3.3.2", - "@vue/shared": "3.3.2" + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-sfc": "3.3.4", + "@vue/runtime-dom": "3.3.4", + "@vue/server-renderer": "3.3.4", + "@vue/shared": "3.3.4" } }, "node_modules/vue-eslint-parser": { @@ -26139,9 +26193,9 @@ } }, "node_modules/vue-router": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.0.tgz", - "integrity": "sha512-c+usESa6ZoWsm4PPdzRSyenp5A4dsUtnDJnrI03fY1IpIihA9TK3x5ffgkFDpjhLJZewsXoKURapNLFdZjuqTg==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.1.tgz", + "integrity": "sha512-nW28EeifEp8Abc5AfmAShy5ZKGsGzjcnZ3L1yc2DYUo+MqbBClrRP9yda3dIekM4I50/KnEwo1wkBLf7kHH5Cw==", "dependencies": { "@vue/devtools-api": "^6.5.0" }, @@ -27162,7 +27216,6 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", - "dev": true, "engines": { "node": ">= 14" } @@ -27322,9 +27375,9 @@ } }, "node_modules/zx/node_modules/@types/node": { - "version": "18.16.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.10.tgz", - "integrity": "sha512-sMo3EngB6QkMBlB9rBe1lFdKSLqljyWPPWv6/FzSxh/IDlyVWSzE9RiF4eAuerQHybrWdqBgAGb03PM89qOasA==", + "version": "18.16.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.13.tgz", + "integrity": "sha512-uZRomboV1vBL61EBXneL4j9/hEn+1Yqa4LQdpGrKmXFyJmVfWc9JV9+yb2AlnOnuaDnb2PDO3hC6/LKmzJxP1A==", "dev": true }, "node_modules/zx/node_modules/chalk": { @@ -27451,7 +27504,7 @@ "name": "@casimir/dkg", "version": "0.0.1", "dependencies": { - "ethers": "^6.3.0" + "ethers": "^5.7.2" }, "devDependencies": { "@types/cors": "^2.8.12", @@ -27463,22 +27516,6 @@ "zx": "^7.1.1" } }, - "services/dkg/node_modules/@noble/hashes": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz", - "integrity": "sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "services/dkg/node_modules/aes-js": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.3.tgz", - "integrity": "sha512-/xJX0/VTPcbc5xQE2VUP91y1xN8q/rDfhEzLm+vLc3hYvb5+qHCnpJRuFcrKn63zumK/sCwYYzhG8HP78JYSTA==" - }, "services/dkg/node_modules/esbuild": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", @@ -27516,57 +27553,6 @@ "esbuild-windows-arm64": "0.15.18" } }, - "services/dkg/node_modules/ethers": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.3.0.tgz", - "integrity": "sha512-CKFYvTne1YT4S1glTiu7TgGsj0t6c6GAD7evrIk8zbeUb6nK8dcUPAiAWM8uDX/1NmRTvLM9+1Vnn49hwKtEzw==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/ethers-io/" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@adraffy/ens-normalize": "1.9.0", - "@noble/hashes": "1.1.2", - "@noble/secp256k1": "1.7.1", - "aes-js": "4.0.0-beta.3", - "tslib": "2.4.0", - "ws": "8.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "services/dkg/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "services/dkg/node_modules/ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "services/users": { "name": "@casimir/users", "version": "0.0.1", diff --git a/services/dkg/package.json b/services/dkg/package.json index c836c591c..ff89ae967 100644 --- a/services/dkg/package.json +++ b/services/dkg/package.json @@ -11,7 +11,7 @@ "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { - "ethers": "^6.3.0" + "ethers": "^5.7.2" }, "devDependencies": { "@types/cors": "^2.8.12", diff --git a/services/dkg/scripts/dev.ts b/services/dkg/scripts/dev.ts index eb27c0b83..10a6c9226 100644 --- a/services/dkg/scripts/dev.ts +++ b/services/dkg/scripts/dev.ts @@ -5,7 +5,6 @@ const resourcePath = 'scripts/resources/rockx-dkg-cli' void async function () { process.env.BIP39_PATH_INDEX = '6' process.env.MANAGER_ADDRESS = process.env.PUBLIC_MANAGER_ADDRESS - process.env.SSV_ADDRESS = '0xAfdb141Dd99b5a101065f40e3D7636262dce65b3' process.env.CLI_PATH = `./${resourcePath}/build/bin/rockx-dkg-cli` process.env.MESSENGER_SRV_ADDR = 'http://0.0.0.0:3000' process.env.USE_HARDCODED_OPERATORS = 'true' diff --git a/services/dkg/src/index.ts b/services/dkg/src/index.ts index 38596e036..7aa9c6b0b 100644 --- a/services/dkg/src/index.ts +++ b/services/dkg/src/index.ts @@ -8,19 +8,18 @@ const handlers = { PoolExitRequested: initiatePoolExitHandler } -;(async function () { - const { manager, ssv, provider, signer, cliPath, messengerUrl } = await config() +const { provider, signer, manager, cliPath, messengerUrl } = config() - const eventEmitter = await getEventEmitter({ manager, events: Object.keys(handlers) }) - for await (const event of eventEmitter) { +;(async function () { + const eventEmitter = getEventEmitter({ manager, events: Object.keys(handlers) }) + for await (const event of eventEmitter) { const [ id, details ] = event - const { filter } = details - console.log(`Event ${filter} received for pool ${Number(id)}`) + console.log(`Event ${details.event} received for pool ${id}`) - const handler = handlers[filter as keyof typeof handlers] - if (!handler) throw new Error(`No handler found for event ${filter}`) - await handler({ manager, ssv, provider, signer, cliPath, messengerUrl, id: Number(id) }) + const handler = handlers[details.event as keyof typeof handlers] + if (!handler) throw new Error(`No handler found for event ${details.event}`) + await handler({ provider, signer, manager, cliPath, messengerUrl, id: id }) } })() diff --git a/services/dkg/src/interfaces/CreateValidatorInput.ts b/services/dkg/src/interfaces/CreateValidatorInput.ts index dce846295..0c8ef3644 100644 --- a/services/dkg/src/interfaces/CreateValidatorInput.ts +++ b/services/dkg/src/interfaces/CreateValidatorInput.ts @@ -1,13 +1,13 @@ -import { ISSVNetwork } from '@casimir/ethereum/build/artifacts/types' +import { CasimirManager } from '@casimir/ethereum/build/artifacts/types' import { ethers } from 'ethers' export interface CreateValidatorInput { - /** SSV network contract */ - ssv: ISSVNetwork & ethers.Contract + /** JSON RPC provider */ + provider: ethers.providers.JsonRpcProvider + /** Manager contract */ + manager: ethers.Contract & CasimirManager /** Operator registry IDs */ operatorIds: number[] - /** JSON RPC provider */ - provider: ethers.JsonRpcProvider /** Validator withdrawal address */ withdrawalAddress: string } \ No newline at end of file diff --git a/services/dkg/src/interfaces/HandlerInput.ts b/services/dkg/src/interfaces/HandlerInput.ts index d0616796b..e2a4a8a91 100644 --- a/services/dkg/src/interfaces/HandlerInput.ts +++ b/services/dkg/src/interfaces/HandlerInput.ts @@ -1,15 +1,13 @@ import { ethers } from 'ethers' -import { CasimirManager, ISSVNetwork } from '@casimir/ethereum/build/artifacts/types' +import { CasimirManager } from '@casimir/ethereum/build/artifacts/types' export interface HandlerInput { - /** Manager contract */ - manager: CasimirManager & ethers.Contract - /** SSV network contract */ - ssv: ISSVNetwork & ethers.Contract /** JSON RPC node provider */ - provider: ethers.JsonRpcProvider + provider: ethers.providers.JsonRpcProvider /** Transaction signer */ signer: ethers.Signer + /** Manager contract */ + manager: CasimirManager & ethers.Contract /** DKG cli path */ cliPath: string /** DKG messenger service URL */ diff --git a/services/dkg/src/interfaces/ReshareValidatorInput.ts b/services/dkg/src/interfaces/ReshareValidatorInput.ts index f80fb9078..fd52d7e56 100644 --- a/services/dkg/src/interfaces/ReshareValidatorInput.ts +++ b/services/dkg/src/interfaces/ReshareValidatorInput.ts @@ -1,15 +1,15 @@ -import { ISSVNetwork } from '@casimir/ethereum/build/artifacts/types' +import { CasimirManager } from '@casimir/ethereum/build/artifacts/types' import { ethers } from 'ethers' export interface ReshareValidatorInput { - /** SSV network contract */ - ssv: ISSVNetwork & ethers.Contract /** JSON RPC provider */ - provider: ethers.JsonRpcProvider - /** Operator registry IDs */ - operatorIds: number[] + provider: ethers.providers.JsonRpcProvider + /** Manager contract */ + manager: ethers.Contract & CasimirManager /** Validator public key */ publicKey: string + /** Operator registry IDs */ + operatorIds: number[] /** Old operator registry IDs */ oldOperatorIds: number[] /** Validator withdrawal address */ diff --git a/services/dkg/src/providers/config.ts b/services/dkg/src/providers/config.ts index 6dea4cd97..599fc08e7 100644 --- a/services/dkg/src/providers/config.ts +++ b/services/dkg/src/providers/config.ts @@ -1,33 +1,32 @@ import { ethers } from 'ethers' import CasimirManagerJson from '@casimir/ethereum/build/artifacts/src/CasimirManager.sol/CasimirManager.json' -import SSVNetworkJson from '@casimir/ethereum/build/artifacts/src/vendor/interfaces/ISSVNetwork.sol/ISSVNetwork.json' -import { CasimirManager, ISSVNetwork } from '@casimir/ethereum/build/artifacts/types' +import { CasimirManager } from '@casimir/ethereum/build/artifacts/types' -export async function config() { +export function config() { + /** Get JSON RPC node provider */ const url = process.env.ETHEREUM_RPC_URL if (!url) throw new Error('No rpc url provided') - const provider = new ethers.JsonRpcProvider(url) + const provider = new ethers.providers.JsonRpcProvider(url) + /** Get transaction signer */ const mnemonic = process.env.BIP39_SEED - const pathIndex = process.env.BIP39_PATH_INDEX + // const pathIndex = process.env.BIP39_PATH_INDEX + // const path = `m/44'/60'/0'/0/${pathIndex || 0}` if (!mnemonic) throw new Error('No mnemonic provided') - ethers.Wallet.fromPhrase(mnemonic, provider) - const accounts = await provider.listAccounts() - const signer = accounts[Number(pathIndex || 0)] + const signer = ethers.Wallet.fromMnemonic(mnemonic, 'm/44\'/60\'/0\'/0/6').connect(provider) + /** Get manager contract */ const managerAddress = process.env.MANAGER_ADDRESS if (!managerAddress) throw new Error('No manager address provided') const manager = new ethers.Contract(managerAddress, CasimirManagerJson.abi, provider) as CasimirManager & ethers.Contract - - const ssvAddress = process.env.SSV_ADDRESS - if (!ssvAddress) throw new Error('No ssv address provided') - const ssv = new ethers.Contract(ssvAddress, SSVNetworkJson.abi, provider) as ISSVNetwork & ethers.Contract - + + /** Get DKG CLI path */ const cliPath = process.env.CLI_PATH if (!cliPath) throw new Error('No cli path provided') + /** Get DKG messenger service url */ const messengerUrl = process.env.MESSENGER_SRV_ADDR if (!messengerUrl) throw new Error('No messenger url provided') - return { manager, ssv, provider, signer, cliPath, messengerUrl } + return { provider, signer, manager, cliPath, messengerUrl } } diff --git a/services/dkg/src/providers/dkg.ts b/services/dkg/src/providers/dkg.ts index 485e67cd6..d6eade47c 100644 --- a/services/dkg/src/providers/dkg.ts +++ b/services/dkg/src/providers/dkg.ts @@ -5,14 +5,11 @@ import { DKGOptions } from '../interfaces/DKGOptions' import { ReshareInput } from '../interfaces/ReshareInput' import { getWithdrawalCredentials, runRetry } from '@casimir/helpers' import { CreateValidatorInput } from '../interfaces/CreateValidatorInput' -import { Validator, Cluster } from '@casimir/types' +import { Validator } from '@casimir/types' import { ReshareValidatorInput } from '../interfaces/ReshareValidatorInput' import { operatorStore } from '@casimir/data' -import { ClusterInput } from '../interfaces/ClusterInput' import { DepositDataInput } from '../interfaces/DepositDataInput' -import { ethers } from 'ethers' - -const lastPoolId = 0 +import { getCluster } from '@casimir/ssv' export class DKG { /** DKG CLI path */ @@ -31,7 +28,7 @@ export class DKG { * @returns {Promise} Validator with operator key shares and deposit data */ async createValidator(input: CreateValidatorInput): Promise { - const { provider, ssv, operatorIds, withdrawalAddress } = input + const { provider, manager, operatorIds, withdrawalAddress } = input const operators = this.getOperatorUrls(operatorIds) @@ -48,8 +45,11 @@ export class DKG { /** Get validator deposit data */ const { depositDataRoot, publicKey, signature, withdrawalCredentials } = await this.getDepositData({ ceremonyId, withdrawalAddress }) + /** Get SSV network address */ + const networkAddress = await manager.getSSVNetworkAddress() + /** Get SSV cluster snapshot */ - const cluster = await this.getCluster({ ssv, operatorIds, provider, withdrawalAddress }) + const cluster = await getCluster({ networkAddress, operatorIds, provider, withdrawalAddress }) /** Create validator */ const validator: Validator = { @@ -71,7 +71,7 @@ export class DKG { * @returns {Promise} Validator with operator key shares and deposit data */ async reshareValidator(input: ReshareValidatorInput): Promise { - const { ssv, provider, operatorIds, publicKey, oldOperatorIds, withdrawalAddress } = input + const { provider, manager, operatorIds, publicKey, oldOperatorIds, withdrawalAddress } = input const operators = this.getOperatorUrls(operatorIds) const oldOperators = this.getOperatorUrls(oldOperatorIds) @@ -85,8 +85,11 @@ export class DKG { /** Get validator deposit data */ const { depositDataRoot, signature, withdrawalCredentials } = await this.getDepositData({ ceremonyId, withdrawalAddress }) + /** Get SSV network address */ + const networkAddress = await manager.getSSVNetworkAddress() + /** Get SSV cluster snapshot */ - const cluster = await this.getCluster({ ssv, operatorIds, provider, withdrawalAddress }) + const cluster = await getCluster({ networkAddress, operatorIds, provider, withdrawalAddress }) /** Create validator */ const validator: Validator = { @@ -192,84 +195,4 @@ export class DKG { return group }, {}) } - - /** - * Get cluster snapshot - * @param {ClusterInput} input - Operator IDs and withdrawal address - * @returns {Promise} Cluster snapshot - */ - async getCluster(input: ClusterInput): Promise { - const { ssv, provider, operatorIds, withdrawalAddress } = input - - const DAY = 5400 - const WEEK = DAY * 7 - const MONTH = DAY * 30 - const latestBlockNumber = await provider.getBlockNumber() - let step = MONTH - let cluster - let biggestBlockNumber = 0 - - const eventList = [ - 'ClusterDeposited', - 'ClusterWithdrawn', - 'ValidatorAdded', - 'ValidatorRemoved', - 'ClusterLiquidated', - 'ClusterReactivated' - ] - - const topicFilter: ethers.TopicFilter = [] - for (const event of eventList) { - const topic = await ssv.filters[event](withdrawalAddress).getTopicFilter() - topicFilter.concat(topic) - } - - let fromBlock = latestBlockNumber - step - let toBlock = latestBlockNumber - - while (!cluster && fromBlock > 0) { - try { - const result = await provider.getLogs({ - address: await ssv.getAddress(), - fromBlock, - toBlock, - topics: topicFilter - }) - - for (const item of result) { - const { blockNumber, data, topics } = item - const log = ssv.interface.parseLog({ data, topics: topics as string[] }) - - const checkClusterEvent = eventList.includes(log.name) - const checkOwner = log.args.owner === withdrawalAddress - const checkOperators = JSON.stringify(log.args.operatorIds.map((value: string) => Number(value))) === JSON.stringify(operatorIds) - - if (checkClusterEvent && checkOwner && checkOperators) { - if (blockNumber > biggestBlockNumber) { - biggestBlockNumber = blockNumber - cluster = log.args.cluster - console.log('CLUSTER SNAPSHOT', cluster) - } - } - } - toBlock = fromBlock - } catch (e) { - console.error(e) - if (step === MONTH) { - step = WEEK - } else if (step === WEEK) { - step = DAY - } - } - fromBlock = toBlock - step - } - - return cluster || { - validatorCount: 0, - networkFeeIndex: 0, - index: 0, - balance: 0, - active: true - } - } } \ No newline at end of file diff --git a/services/dkg/src/providers/events.ts b/services/dkg/src/providers/events.ts index cd6856032..40bdf3bc5 100644 --- a/services/dkg/src/providers/events.ts +++ b/services/dkg/src/providers/events.ts @@ -2,17 +2,17 @@ import { ethers } from 'ethers' import { on, EventEmitter } from 'events' import { mergeAsyncIterables } from './iterables' -export async function getEventEmitter({ manager, events }: { manager: ethers.Contract, events: string[] }) { +export function getEventEmitter({ manager, events }: { manager: ethers.Contract, events: string[] }) { const iterables = [] for (const event of events) { - const iterable = await getEvent({ manager, event }) + const iterable = getEvent({ manager, event }) iterables.push(iterable) } return mergeAsyncIterables(iterables) } -async function getEvent({ manager, event }: { manager: ethers.Contract, event: string }) { - const emitter = new EventEmitter() - await manager.on(event, (...args) => emitter.emit(event, ...args)) - return on(emitter as EventEmitter, event) +function getEvent({ manager, event }: { manager: ethers.Contract, event: string }) { + const eventEmitter = new EventEmitter() + manager.on(event, (...args: any[]) => eventEmitter.emit(event, ...args)) + return on(eventEmitter, event) } \ No newline at end of file diff --git a/services/dkg/src/providers/handlers.ts b/services/dkg/src/providers/handlers.ts index 4a2d7a80f..b53142f71 100644 --- a/services/dkg/src/providers/handlers.ts +++ b/services/dkg/src/providers/handlers.ts @@ -5,15 +5,15 @@ import fs from 'fs' import { CasimirManager } from '@casimir/ethereum/build/artifacts/types' export async function initiatePoolDepositHandler(input: HandlerInput) { - const { manager, ssv, provider, signer, cliPath, messengerUrl } = input + const { provider, signer, manager, cliPath, messengerUrl } = input const newOperatorIds = [1, 2, 3, 4] // Todo get new group here const dkg = new DKG({ cliPath, messengerUrl }) const validator = await dkg.createValidator({ - ssv, - operatorIds: newOperatorIds, provider, - withdrawalAddress: await manager.getAddress() + manager, + operatorIds: newOperatorIds, + withdrawalAddress: manager.address }) // Save validator for mocks @@ -39,7 +39,7 @@ export async function initiatePoolDepositHandler(input: HandlerInput) { cluster, signature, withdrawalCredentials, - ethers.parseEther('0.1') // Mock fee amount estimate ~ 10 SSV + ethers.utils.parseEther('0.1') // Mock fee amount estimate ~ 10 SSV ) await initiatePoolDeposit.wait() } @@ -59,6 +59,8 @@ export async function initiatePoolReshareHandler(input: HandlerInput) { // Get operators to sign reshare const dkg = new DKG({ cliPath, messengerUrl }) // const validator = await dkg.reshareValidator({ + // provider, + // manager, // publicKey, // operatorIds: newOperatorGroup, // oldOperatorIds: operatorIds,