Script to resolve stake owners from Keep TokenStaking contract
See https://github.com/threshold-network/solidity-contracts/pull/26 See https://github.com/threshold-network/solidity-contracts/pull/7
T staking contract supports existing KEEP stakes by allowing KEEP stakers
to use their stakes in T network and weights them based on KEEP<>T token
ratio. KEEP stake owner is cached in T staking contract and used to restrict
access to all onlyOwnerOrOperator functions. To cache KEEP staking contract
in T staking contract, we first need to resolve the owner. Resolving liquid
KEEP stake owner is easy - TokenStaking.ownerOf gives the answer immediately.
Resolving token grant stake owner is complicated and not possible to do on-chain
from an external contract. Keep TokenStaking knows the grant ID but does
not expose it externally. Going through TokenGrant may not always give the
right answer. Finally, we never know on-chain if we are dealing with
a ManagedGrant or not. Porting all this complexity to T staking contract does
not feel like the right choice.
It's time to make a tradeoff.
To solve this problem, we resolve all owners off-chain based on events and
hardcode them in KeepStake library. Worth noting, owner of a grant delegation
can never change in Keep TokenStaking contract and this is why hardcoding
should be acceptable.
Operator-owner pairs are resolved in the following way:
- Take all Keep
TokenStakingdelegations ever. - Filter out undelegated operators.
- Filter out canceled delegations.
- Fetch grant stake information from
TokenGrantfor that operator to determine if we are dealing with grant delegation. - Fetch grantee address from Keep
TokenGrantcontract. - Check if we are dealing with
ManagedGrantby looking for all createdManagedGrantsand comparing their address against grantee address fetched fromTokenGrantcontract.
For posterity's sake:
[LI], 0xbd7157F5Beb24525adD6C4c0559C5261b5E16742, 0xDcd4199e22d09248cA2583cBDD2759b2acD22381
[LI], 0xbd7157F5Beb24525adD6C4c0559C5261b5E16742, 0xfc97a906c715587b56c2c65a07ce731ba80339de
[LI], 0xbCdffff120C4e2f1199317A9448e99Eb02771496, 0xca70feA021359778daeC479b97D0cD2eFE1Ad099
[LI], 0xbCdffff120C4e2f1199317A9448e99Eb02771496, 0xaEa619D02dcF7299FB24dB2F60A08BFC8FB2dbcf
[LI], 0xbCdffff120C4e2f1199317A9448e99Eb02771496, 0xA4166C3E14cbDd6D4494945A99616f1C73aD9699
[LI], 0xf7d74a3E2295A860CDD88b901940B367737E8A8F, 0xe81C50802bF9dDf190ce493A6a76CF3d36dD8793
[LI], 0x7edc86E8F2e97009a38AeBED8F98A487b66f782f, 0xb822Ec4FaBf37B881397bd3425152AdBfe516174
[LI], 0x7edc86E8F2e97009a38AeBED8F98A487b66f782f, 0x438dEcAfa74CD174eBF71c6b4BD715D001f6FAB7
[LI], 0x7edc86E8F2e97009a38AeBED8F98A487b66f782f, 0x3712C6fED51CECA83cA953f6FF3458f2339436b4
[SG], 0x29cD6e32CCe87FA438c0009bBCc201C4c76E1c16, 0x1147ccFB4AEFc6e587a23b78724Ef20Ec6e474D4, 137, 0x1293a54e160D1cd7075487898d65266081A15458, 0x3FB49dA4375Ef9019f17990D04c6d5daD482D80a
[SG], 0x82E03f292e94d4d58fB1fA9e1c556175b3Ed6F7E, 0x4c21541f95a00C03C75F38C71DC220bd27cbbEd9, 151, 0x1293a54e160D1cd7075487898d65266081A15458, 0xC897cfeE43a8d827F76D4226994D5CE5EBBe2571
[LI], 0x3c3700C1B3ffE3e0a5AB42243fa0E3607f6E2D61, 0x00Cef852246b08B9215772c3f409D28408Bb21bD
[MG], 0xB3DF80844CAd1b4241F2bA560DaC249997c7f13E, 0x855A951162B1B93D70724484d5bdc9D00B56236B, 98, 0x1293a54e160D1cd7075487898d65266081A15458, 0xFADbF758307A054C57B365Db1De90acA71feaFE5
[MG], 0x871Bd4c441430Bdd97036Cd3fC2022991DCDfdcE, 0xF1De9490Bf7298b5F350cE74332Ad7cf8d5cB181, 68, 0x1293a54e160D1cd7075487898d65266081A15458, 0xAEd493Aaf3E76E83b29E151848b71eF4544f92f1
[LI], 0x1578eD833D986c1188D1a998aA5FEcD418beF5da, 0x1e5801DB6779b44A90104AE856602424D8853807
[LI], 0x2e6BCE584B7d56eC9A5108Bc552e80F3cBA08A85, 0x6dAfE16b14c95eB99c64e8d4E5435F7574B2825c
[SG], 0x1578eD833D986c1188D1a998aA5FEcD418beF5da, 0x7E6332d18719a5463d3867a1a892359509589a3d, 81, 0x6D1140a8c8e6Fac242652F0a5A8171b898c67600, 0x1578eD833D986c1188D1a998aA5FEcD418beF5da
[LI], 0x1578eD833D986c1188D1a998aA5FEcD418beF5da, 0x0d0271d1B2906Cc472A8e75148937967Be788F09
[MG], 0xFC02f88448Cd810acd277E63f2781A48fB112F31, 0x39d2aCBCD80d80080541C6eed7e9feBb8127B2Ab, 102, 0x1293a54e160D1cd7075487898d65266081A15458, 0xA2fa09D6f8C251422F5fde29a0BAd1C53dEfAe66
[LI], 0xE9E284277648fcdb09B8EfC1832c73c09b5Ecf59, 0x36C56A69c2aeA23879b59dB0e99D57eF2ff77f06
[LI], 0xE9E284277648fcdb09B8EfC1832c73c09b5Ecf59, 0xA543441313F7FA7F9215B84854E6DC8386B93383
[LI], 0xE9E284277648fcdb09B8EfC1832c73c09b5Ecf59, 0x81e1B56db174a935fe81E4b9839d6D92528090f4
[LI], 0xa69eb732230F041E62640Da3571F414a01413DB3, 0x8bA4359ee951944847abF81cdA84697C40fAB617
[SG], 0xE7A4f1F6A3Da8fEE0Ab98D8B5A0b8c6Ee062634E, 0x8Bd660A764Ca14155F3411a4526a028b6316CB3E, 37, 0x1293a54e160D1cd7075487898d65266081A15458, 0xf6f372DfAeCC1431186598c304e91B79Ce115766
[LI], 0xbF0904B1F5D14D50D09C2CB2DA204C58157e0A6c, 0x1c51aDbf71525002F42AbC6E859413a3FC163C4C
[MG], 0x0DeB4e85aD49255707cE126cD305C51C7a2AD45B, 0xd66cAE89FfBc6E50e6b019e45c1aEc93Dec54781, 116, 0x1293a54e160D1cd7075487898d65266081A15458, 0x306309f9d105F34132db0bFB3Ce3f5B0245Cd386
[MG], 0xfEa45eB8b3b1B3B0474628B56CF44b04b66B2C81, 0x2eBE08379f4fD866E871A9b9E1d5C695154C6A9F, 64, 0x1293a54e160D1cd7075487898d65266081A15458, 0xd00c0d43b747C33726B3f0ff4BDA4b72dc53c6E9
[MG], 0xc172730b5Db3de56A4d2e7fA4aC5422db8F1a8BD, 0xA97c34278162b556A527CFc01B53eb4DDeDFD223, 159, 0x1293a54e160D1cd7075487898d65266081A15458, 0xB3E967355c456B1Bd43cB0188A321592D410D096
[MG], 0x077F678c7Cde65291bdcDbF0EF7F2CF8EB8b10f2, 0x6C76d49322C9f8761A1623CEd89A31490cdB649d, 159, 0x1293a54e160D1cd7075487898d65266081A15458, 0xB3E967355c456B1Bd43cB0188A321592D410D096
[MG], 0x63cDe9e7bd74c11aAFc9672A630F0CD62047F580, 0x4a41c7a884d119eaaefE471D0B3a638226408382, 69, 0x1293a54e160D1cd7075487898d65266081A15458, 0xcdf3d216d82a463Ce82971F2F5DA3d8f9C5f093A
[LI], 0x2Ba43e1C79bF62312120D2e5F9Ba174A3119803c, 0xB7a764884a2fBcfC7177b5c53A7797EE7fF4Bb39
[LI], 0x1090258Dd4AF971adccf0b465bF770E3f0e0A940, 0xD52BfE62a163eB4eC8FC98f06eD3f02695ae491d
[LI], 0x1090258Dd4AF971adccf0b465bF770E3f0e0A940, 0x9Cc5Aee6170772654E455F2FFAB8c490E34197Ad
[LI], 0x1090258Dd4AF971adccf0b465bF770E3f0e0A940, 0xE0765F56DB12eBf996a8363004BaEeC61723B657
[LI], 0x8CAA45daFC5Eb7f337172e1178236587665ca9bf, 0xaaFab076DA8d1C885F492bad4e2C259F0b6448F8
[LI], 0xe295645876528569b3200b7A92B263982a6477e4, 0x49674CEB89cD175263106670a894c373cC286a28
[MG], 0xC3b17FD5C2e7a07391e89041bF010276a0a98771, 0x9c06Feb7Ebc8065ee11Cd5E8EEdaAFb2909A7087, 45, 0x1293a54e160D1cd7075487898d65266081A15458, 0x45119cd98d145283762BA9eBCAea75F72D188733
[MG], 0x721630abA78315F9Be317Ae76afd153690A3Ad0F, 0x9bD818Ab6ACC974f2Cf2BD2EBA7a250126Accb9F, 100, 0x1293a54e160D1cd7075487898d65266081A15458, 0x6E535043377067621954ee84065b0bd7357e7aBa
[MG], 0xb8ac5dBe62bF4b0f32B0E9641F7A067C43965Cb9, 0x1d803c89760F8B4057DB15BCb3B8929E0498D310, 159, 0x1293a54e160D1cd7075487898d65266081A15458, 0xB3E967355c456B1Bd43cB0188A321592D410D096
[LI], 0x73afab15701d4a66EB95Ee1407D4C421054221A7, 0x44f07be8D08a7Ec1b4BDB92685dA64C02622CFc5
[MG], 0xDa534b567099Ca481384133bC121D5843F681365, 0x3101927DEeC27A2bfA6c4a6316e3A221f631dB91, 164, 0x1293a54e160D1cd7075487898d65266081A15458, 0x178Bf1946feD0e2362fdF8bcD3f91F0701a012C6
[LI], 0x773a3210aa5E94bf2d713F67FB99A8e89D0782E2, 0x2BAF3650263348f3304c18900A674bB0BF830801
[MG], 0x36fd7AeE6385E25f41909546535CAEf7c4C6D9Ec, 0x9d9b187E478bC62694A7bED216Fc365de87F280C, 112, 0x1293a54e160D1cd7075487898d65266081A15458, 0xFBad17CFad6cb00D726c65501D69FdC13Ca5477c
[LI], 0xDa534b567099Ca481384133bC121D5843F681365, 0xf51Cf00b8C1c4f7e9B9d41b59dA920f20Cb7B93F
[LI], 0xdD08121f4C80182c4748D12140477376324E2c93, 0xe26E2d93Bbc8fde0e1E3B290Fc927Fb374E7e34e
[MG], 0xb4602CF0435e9A7886a475B15617D26B383B5A8a, 0xd977144724Bc77FaeFAe219F958AE3947205d0b5, 115, 0x1293a54e160D1cd7075487898d65266081A15458, 0x087B442BFd4E42675cf2df5fa566F87d7A96Fb12
[MG], 0x1043aAdB54B030b566c543A0395285E7a2C89Bf5, 0x045E511f53DeBF55c9C0B4522f14F602f7C7cA81, 113, 0x1293a54e160D1cd7075487898d65266081A15458, 0xFcfe8C036C414a15cF871071c483687095caF7D6
[MG], 0x7cb01089F195d2Ad371F311C81EE1D23FCb3A7b2, 0x3Dd301b3c96A282d8092E1e6f6846f24172D45C1, 127, 0x1293a54e160D1cd7075487898d65266081A15458, 0xb5Bdd2D9B3541fc8f581Af37430D26527e59aeF8
[MG], 0xAaD69AD75Ca6FD467cBc065ee45D3cFD7f1B5a94, 0x5d84DEB482E770479154028788Df79aA7C563aA4, 58, 0x1293a54e160D1cd7075487898d65266081A15458, 0x9D1a179c469a8BdD0b683A9f9250246cc47e8fBE
[MG], 0xaBeD3b75F5e2616Bf9ECC6b5Ac4FDEe7Cf59ae78, 0x1dF927B69A97E8140315536163C029d188e8573b, 127, 0x1293a54e160D1cd7075487898d65266081A15458, 0xb5Bdd2D9B3541fc8f581Af37430D26527e59aeF8
[MG], 0x253053f8BF952CD2A410f1576A4e26427B7a11De, 0x617daCE069Fbd41993491de211b4DfccdAcbd348, 127, 0x1293a54e160D1cd7075487898d65266081A15458, 0xb5Bdd2D9B3541fc8f581Af37430D26527e59aeF8
[LI], 0x2B3C7D1eF5FDfC0557934019c531d3E70D6200AE, 0x76cA4B2300A2abe46dCD736F71A207FfBcB3C5E8
[LI], 0x2B3C7D1eF5FDfC0557934019c531d3E70D6200AE, 0xf25796D81d6caaCA3616CE17ECc94966821D4F1d
[LI], 0xc0d6E904ADf6A55511B67907B0917D769F38c5Dd, 0x78c0eF874Df6cb2cD7E724bdF3Ce68f431b79748
[MG], 0x8A04a106B25a054Eb477237a3c43fA4ea4C42d12, 0x650A9eD18Df873cad98C88dcaC8170531cAD2399, 122, 0x1293a54e160D1cd7075487898d65266081A15458, 0x1Df7324A3aD20526DFa02Cc803eD2D97Cac81F3b
[MG], 0x8a9E2CCf85F0DD58BBB66F9EeAa3b7d3783dE0f6, 0x07C9a8f8264221906b7b8958951Ce4753D39628B, 108, 0x1293a54e160D1cd7075487898d65266081A15458, 0x305D12b4d70529Cd618dA7399F5520701E510041
[LI], 0x4A0A927043B01a7fB175BCa4F4837e3b817C5e6b, 0x3d7764aE9aC8259E5A5d224F5F56414f9749902a
[LI], 0x4A0A927043B01a7fB175BCa4F4837e3b817C5e6b, 0x64A8856cBD255765D16B901a0B899daefC78FB13
[SG], 0x34E62bE8eb357A720fC4B4dD71b21033B18Ca0F7, 0x4F4f0D0dfd93513B3f4Cb116Fe9d0A005466F725, 49, 0x1293a54e160D1cd7075487898d65266081A15458, 0x8b055ac1c4dd287E2a46D4a52d61FE76FB551bD0
[SG], 0x3b3A02e05c2Fae68Cc6694550328b417357066C7, 0x1DF0250027fEC876d8876d1ac7A392c9098F1a1e, 17, 0x1293a54e160D1cd7075487898d65266081A15458, 0xE408fFa969707Ce5d7aA3e5F8d44674Fa4b26219
[MG], 0x2c678A66b06844e22463194fF7a3D1b75AD21df9, 0x63eB4c3DD0751F9BE7070A01156513C227fa1eF6, 116, 0x1293a54e160D1cd7075487898d65266081A15458, 0x306309f9d105F34132db0bFB3Ce3f5B0245Cd386
[LI], 0x461aa63A98e6f8BdAa19CA3f2258670E794FFF34, 0x2222aa7722Aa77287E6Db2eBC66D0EfEB7e131b0
[LI], 0x461aa63A98e6f8BdAa19CA3f2258670E794FFF34, 0x0ae20e11a065a7E750482E6a7E9eB7eaB7A8137f
[LI], 0x461aa63A98e6f8BdAa19CA3f2258670E794FFF34, 0x428df09f1Ae54234B550518665FB75Dd4Bd60C50
[LI], 0x3d24D77bEC08549D7Ea86c4e9937204C11E153f1, 0xB8A3AE209d153560993BFd8178E60F09B1c682E8
[MG], 0x525BA85fdf5a9022f66aaEC13746E3058C3B7722, 0xc6349eEC31048787676b6297ba71721376A8DdcF, 99, 0x1293a54e160D1cd7075487898d65266081A15458, 0xac1a985E75C6a0b475b9c807Ad0705a988Be2D99
[MG], 0x0a057118EC25407b1F3D7188aEfa98f97ea33Bc0, 0x3B945f9C0C8737e44f8e887d4F04B5B3A491Ac4d, 92, 0x1293a54e160D1cd7075487898d65266081A15458, 0x82e17477726E8D9D2C237745cA9989631582eE98
[MG], 0x02FA42D4e02fC5328d5f2A2CF0f3362B1df42035, 0xF35343299a4f80Dd5D917bbe5ddd54eBB820eBd4, 130, 0x1293a54e160D1cd7075487898d65266081A15458, 0xCC88c15506251B62ccCeebA193e100d6bBC9a30D
[LI], 0xDa534b567099Ca481384133bC121D5843F681365, 0x7f746e790e97996AC9fE892d48eB8660DeE6786D
[LI], 0xDa534b567099Ca481384133bC121D5843F681365, 0xa39F6Ca62303229873D06395237307Cd59de806d
[SG], 0xFC1Ad51FB921650E759c61de7dC58c4299e546E7, 0x860EF3f83B6adFEF757F98345c3B8DdcFCA9d152, 168, 0x1293a54e160D1cd7075487898d65266081A15458, 0x08a3633AAb8f3E436DEA204288Ee26Fe094406b0
[LI], 0x537Ab7FeC05f7f6A9323EF1321Ef60927B1Bf826, 0xF2f5E0a3365c385A3ADCA4F614eD0984dFff52a3
[LI], 0x85f00Ec494D31409640630644b84ee04844a4658, 0x4bFa10B1538E8E765E995688D8EEc39C717B6797
[SG], 0xD8313343B02FC6Ab0EDd37ab3e6dC3D0841B328b, 0xe3a2d16dA142E6B190A5d9F7e0C07cc460B58A5F, 35, 0x1293a54e160D1cd7075487898d65266081A15458, 0x875f8fFCDDeD63B5d8Cf54be4E4b82FE6c6E249C
[LI], 0x0aBf38A836553552D2f064C1255b328a5ebBD5E4, 0x190059F25D91afFB092D145CEBb907817414bCf0
[SG], 0xE7251d18c684F597e91cfbc46BB469d48Bbb4127, 0xBDE07f1cA107Ef319b0Bb26eBF1d0a5b4c97ffc1, 81, 0x1293a54e160D1cd7075487898d65266081A15458, 0x1578eD833D986c1188D1a998aA5FEcD418beF5da
[LI], 0x8b055ac1c4dd287E2a46D4a52d61FE76FB551bD0, 0xc5795fa1EADF77FCDa0C6D9F9B340D634C2ba546
[LI], 0x8b055ac1c4dd287E2a46D4a52d61FE76FB551bD0, 0x9767795d399E86fCc0F600dB6F302F5C0692e0cF
[SG], 0xA1652Ab03fCeCFF61C985f2e73F74eaEe5d45168, 0xE86181D6b672d78D33e83029fF3D0ef4A601B4C4, 81, 0x1293a54e160D1cd7075487898d65266081A15458, 0x1578eD833D986c1188D1a998aA5FEcD418beF5da
[MG], 0xff616458e9C669D5771d481DD49749b274015B5b, 0x3B9e5ae72d068448bB96786989c0d86FBC0551D1, 116, 0x1293a54e160D1cd7075487898d65266081A15458, 0x306309f9d105F34132db0bFB3Ce3f5B0245Cd386
[MG], 0xe4C00ff6d47a35C9e636441Ca1467B315b196D3A, 0xB2D53Be158Cb8451dFc818bD969877038c1BdeA1, 88, 0x1293a54e160D1cd7075487898d65266081A15458, 0xaE55e3800f0A3feaFdcE535A8C0fab0fFdB90DEe
[SG], 0xA472D93765fAf45326398815631cfE3061cA837d, 0xb7c561e2069aCaE2c4480111B1606790BB4E13fE, 81, 0x1293a54e160D1cd7075487898d65266081A15458, 0x1578eD833D986c1188D1a998aA5FEcD418beF5da
[LI], 0x1578eD833D986c1188D1a998aA5FEcD418beF5da, 0xb034dE6226d765a343dc65932B6c114cB4e1a748
[LI], 0x9c8b0E6a059370a1bAfFd6C1957E1dD92C947Fb4, 0x1ef1a4A844697717BEcF66123a6df046b249355b
[SG], 0x03063B950e1166B1d757BB08E843B69915D57f8E, 0x526c013f8382B050d32d86e7090Ac84De22EdA4D, 183, 0x1293a54e160D1cd7075487898d65266081A15458, 0x61C6E5DDacded540CD08066C08cbc096d22D91f4
[LI], 0x8e5C1e26E4bcC57DEF3F0d7510F6a051c041Ff99, 0x6830CFE9e3a11df8D0aC5383cddE3d225AEB0dF0
[MG], 0xe60E53f5114587635fD70650c330Ed890946F0d9, 0xF6dbF7AFe05b8Bb6f198eC7e69333c98D3C4608C, 175, 0x1293a54e160D1cd7075487898d65266081A15458, 0xbb8D24a20c20625f86739824014C3cBAAAb26700
[MG], 0xaF866A0083F3B5b53eDDC362FcAE3AB8dBe443aE, 0xB62Fc1ADfFb2ab832041528C8178358338d85f76, 186, 0x1293a54e160D1cd7075487898d65266081A15458, 0x9ED98fD1C29018B9342CB8F57A3073B9695f0c02
[MG], 0xd419D04A808fA02B009B844bD9EdC5C5877FdC26, 0x9bC8d30d971C9e74298112803036C05db07D73e3, 188, 0x1293a54e160D1cd7075487898d65266081A15458, 0x66beda757939f8e505b5Eb883cd02C8d4a11Bca2