keep-core icon indicating copy to clipboard operation
keep-core copied to clipboard

Script to resolve stake owners from Keep TokenStaking contract

Open pdyraga opened this issue 4 years ago • 1 comments

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:

  1. Take all Keep TokenStaking delegations ever.
  2. Filter out undelegated operators.
  3. Filter out canceled delegations.
  4. Fetch grant stake information from TokenGrant for that operator to determine if we are dealing with grant delegation.
  5. Fetch grantee address from Keep TokenGrant contract.
  6. Check if we are dealing with ManagedGrant by looking for all created ManagedGrants and comparing their address against grantee address fetched from TokenGrant contract.

pdyraga avatar Nov 10 '21 17:11 pdyraga

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

pdyraga avatar Nov 11 '21 14:11 pdyraga