diff --git a/backend/app/constants.py b/backend/app/constants.py index 1111fb002d..a30e418d9d 100644 --- a/backend/app/constants.py +++ b/backend/app/constants.py @@ -86,3 +86,483 @@ "0x843ea4d5b8b34e07a63d256785a1c9560f3ea2bc", "0xea809d3fb969d1d4de90c022c34b075b1fa5ec50", ] + +GUEST_LIST = set( + [ + "0x16f3f2f0ba34973937A1ebb989a295Ca106b67C7", + "0xBB5935dAaFbacAE82c8D2CA8377F16073D70061a", + "0xba84B5cA750b33DfAdDBFdD1B7C6887885a34977", + "0x4e9A05226993F094A56A3472C8c816F2599423A6", + "0x40DE3299Bd8a10D8Ac3f32C1A55DE40640cF9B75", + "0xC33F87697EF41e0E95e7a55d1ec8180F04088578", + "0xCBc924183Bc32D02746Fa8D38843B5Ce08662eB4", + "0xDc9C5e34959eC3643AF1e1D34A83D6b251AAb1eF", + "0x762BBc211990D0a356F35E4D500843F59d223C2e", + "0x55187a1165EBB441A1BF227fff1EB0D32a65bc46", + "0x7aE59f3F2B2E5f3842B50a15bCb5247c5De881Be", + "0x59072B3a3287F4a75cadfb36D671A2f0d1959B09", + "0x4A5da2a1D3258dF8FFb431Cf0110FE9b98ADeEbf", + "0x514A9771Af8Afe71057666b680238dFBeA578d65", + "0xE70055e9575f15A6f51F3068901D73ac63952adF", + "0x9e831B58001e2b69F70C892e4F8ce9d2118B7E00", + "0x51c1C7f1e168a36Bf1FaBFD91E98b43476a6B14D", + "0x33878e070db7f70D2953Fe0278Cd32aDf8104572", + "0x3df13B9bd79158f0cccDDd0833cF774178e3d2e9", + "0xB9573982875b83aaDc1296726E2ae77D13D9B98F", + "0xE862E2C1ca94eAcfEDe3c95a217c15EF0086a29D", + "0x0442A9aBbc93058a873c371F21CC366338254A88", + "0x0194325BF525Be0D4fBB0856894cEd74Da3B8356", + "0x399e0Ae23663F27181Ebb4e66Ec504b3AAB25541", + "0x9f729294b308f79243285348A7Be3f58ae5ED31A", + "0xb62E762Af637b49Eb4870BCe8fE21bffF189e495", + "0x5725a458b319d73B8Ec84c47de80620E7B191B0C", + "0x57Ccc081824b43B75986727875929AF3A6Ad721C", + "0xf13e477365B0FAa64130DA2FF663aAb20d32d929", + "0xFD868dB0696ef762351F8421535cC5f9F423B23C", + "0x30043aAbBCeBbD887437Ec4F0Cfe6d4c0eB5CC64", + "0xAa01DeC5307CF17F20881A3286dcaA062578cea7", + "0x3FFD0C300fa4a021364Ae7e85a7b0d3a02133f99", + "0xBEa26DE685Ef828b60cA53b40Ecc9Bab35645fDF", + "0x4103CFcb300599dFcB31dBc95d919592619B4EAc", + "0x22bAac1E95efC010E35D5eD643BB16c9dB254a11", + "0x686A484bc2E2bE79f358c7055e8539A69413A3Ed", + "0x073a360C372FD51Bd6E56B4a4d73790fDAec4641", + "0xdd0206010CA82fF22303b58863b3a6f3006C86C4", + "0x25FA68A4c340202737EDBC67fD1a2Ec8DE872dB6", + "0x5b655EDa7D101f98934392Cc3610BcB25b633789", + "0x32cEfb2dC869BBfe636f7547CDa43f561Bf88d5A", + "0xA4369e39e3ED13593Adb0142A1ea5d08AbdF99C4", + "0xA8F0048A0d1A04663Ca5010d0bEaC5BCAEeA0eef", + "0x65F632cfe8015B7ae6976e549645ed04cde60fe4", + "0xb35E0a0D00c640ab75fAD3cf3B83264bC64D23eC", + "0xafA3E6E29D99337b166b83fB24bA17b19764B49D", + "0x57DD1517c12659365E59F71129Fa9B1611Dd18AF", + "0x9120FfD5d04ca4B26AaBCe611989A8F026dc099a", + "0x2AC6A3561a43f06d62602eF9728C2B9eEc393326", + "0x297Aa50D0557c865F6C9B0AA0a91f41C26E55eE6", + "0x9Ff46343d0b652D6e766F85f9aE91653869349a5", + "0xEd36bf0b2b17768E782Db2ece6A327055b2f3e9C", + "0xC28D2fDFE6d5a482d32f855457Bb5F8cAcdB32b1", + "0x1d44404C1C53991Ec33095225da173d544Cd4Af3", + "0x5d9fbd984B9CeC714a4B14c38Ea83bBC82d06d69", + "0x5Bc0AEbdbab698e12FD33A2E133e6858fe6Cdd76", + "0x66805D8B82664Acab4CbE0C0498889dDE9aF7841", + "0xaF7610578F54c7De7563655AaF461E2CbeCB08C6", + "0x6c3F373Baec5D2d0Fb3C82C4f3Db5E48873ae363", + "0x015122A625b45f68E6D795C0Ab99fC7107e4c3B9", + "0x508A4F07B60BA0940283Cd4e32d5DEb0CC38AdF7", + "0xb150c9bEd10a8C62997d58a81c4e1fA75160643e", + "0x212647c56BA10ee429a838bc567dFb03A8D054Ba", + "0x73306dAb0D39A4D47df4972c7022CB2cac075D4e", + "0x914D5d84aAA064207C2c31014426227405edab41", + "0x3FBcEC42405391B1fb377664daA5AE7Bc9Ba7BF5", + "0x8c8296a0042E842Cb865DfFD94678c941fD24bAE", + "0xf5c2087877218AA979Dd0e2e5108837199aF44D2", + "0x529dc928E67D8A43133D10769B308F1D5A629401", + "0xF1bb436c29E46B1987bC825879ffc9c34Ab97f99", + "0xFDDE7aE208B3596f1982D66F6BAe4cDabF29244b", + "0x02e4Cc9ffF7566563618fb21B3BB10Eab4B3D726", + "0xd8821dbbcb8ea0c14Bd1F0aCbFBeBB3Fd984269b", + "0x31d23825aFbda5B6B1690Bbdbbb8117B5ea0f8E4", + "0x731022D6De647991864203a35dFaD1A192240d07", + "0xEb5e0B8e80FCe271c13F533fA728D7bB03cafa4c", + "0xFC967DE4e029fdcD16B418DaC2147d282C93085b", + "0x801a6d6dBC1e40466E131aA21D951629A9efAB4e", + "0x4892139De0e73141438D9E55D593171C0Cc6B143", + "0x8124eFC94c951cF41D4B0B42794C678458a00726", + "0x81cc36DdA894256aa95458F78B4029381b09BDfb", + "0x4Dcb2BCA3450B427F3d1b424C885259D05363080", + "0x7Dd8030F9d33Af4a40ee074f990892E825132e61", + "0x432C53218A11bEd08d238Cf84ff547CE4fe933ab", + "0xE77ad9c5af60332D24E5531B51A6B7f61D0B8703", + "0x0f792e55668AD78476d4B563E6EB1228D636a71e", + "0x583bBaDA56bb535BCBb31877A620A6ff2A25CeA5", + "0x5C0E777dC8F3De6b0911b44DbBDD8Bf71b2E8e38", + "0x8a4a50B13Fd2cb36FeB96c408CB98B4c9F2b8F25", + "0x1e55C85801a2C4F0beC57c84742a8eF3d72dE57B", + "0x26d3bE736aB6b5D8A3266fFCC0895dDc1bc19a38", + "0x809C9f8dd8CA93A41c3adca4972Fa234C28F7714", + "0xfB94f39B150Ae661F85762154c0CadC65E083791", + "0x4B7C0Da1C299Ce824f55A0190Efb13663442FA2c", + "0x77E64560Bd6C323c075F206a5AB9dD6850F31609", + "0x0F46540678c7e6D2eF983B382CC07Fa815AB148c", + "0x82073f802547fEeEc0fd49719a3D7697fB66076a", + "0xBAab83De8DbA764bF02a530cad33555bD23eba22", + "0x890a0047f8D573347872cB6C019F86552f2367d6", + "0x14D92832265eeAFDEF9e526356FEfc90105966c3", + "0x512B436cB2Ed6016e80d4F89ca578F99DBBccb61", + "0x696Ee4AE0b15feae8ED1AfC865930e0ea65b1f3F", + "0xbb4D885fD41c807e8eCC2dD9e6295a7F96Adb0EB", + "0xB1dE969883b1FdD90a43fF475A5171a3CfEfe76d", + "0x7DBF6820D32cFBd5D656bf9BFf0deF229B37cF0E", + "0xfE2e3cCEE9714b29Ab2FB4E940e52672194815fC", + "0x57fb3f4b027fbaDbd8d20Eb5E48feb1e2b02DF30", + "0x9AE494FBAc34682c122A1D4e3D6ae1Eb5404A469", + "0xb2b9300475aF157676C44eE64d39a5eB3C294DbD", + "0x01Bc28E036b6e75247Fe8F49f0a8b9410b19d851", + "0xcCE9A28b570946123f392Cf1DbfA6D2D5e636a1f", + "0xb2a3b5B9d2C0f07cBA328b58737147cfc172EB9f", + "0xCC3d7F9fE6946979215A901BbA385a88FdabBBf4", + "0x38f80f8f76B1C44B2beeFB63bb561F570fb6ddB6", + "0xd82803b7B9A5EB1D5FC558FD619afC6c031cd0B1", + "0x844AeeD1B294Ef9632c18E73F57ef77D0A23D0e2", + "0x9cD7D1981B3e15a2DEE4d512ac60E0579Ae18546", + "0xEBCd250474C27cBaD3C56f3F34e08F97b370AC2d", + "0xDA47bdcC48f26FB4709f90316341D9104cB1fb89", + "0x5cbB6ad79008908aA125667D1300558D9253B589", + "0x1078DaA844CDF1EDB51E5189c8b113B80a6A6957", + "0x8341c4106523b49fc247f84e412Bb2AF5597038f", + "0xCe57ebEd9aC38402DcAA44f65a1c9b04e26b8283", + "0x2dd2036C9Db2ADA2739509AF0047c00C8b9291EF", + "0xa77294828d42B538890fa6E97AdFfE9305536171", + "0x8dA48e5846c06B558970ACd42EDc7Da8799481E4", + "0x50418699cB44BfDa9c9afc9B7a0b0d244d8927D2", + "0x936d69AbCD9acdC89455EEFAf744044fFC1CA660", + "0x90C32e6B29794Fd7f5BbA2BBEE74e924078B3f9b", + "0x362B7e0599E950b921ca9D86336ca409208FFDEC", + "0xd98aD1Fd4aa0E1c876d91968D1385aa9E1Aa98df", + "0xD2602C7bDFC9F413974e944280BbFae275d1B1b6", + "0x731A2e51ebfAeBacF8477E992CDEB1E8eacf519C", + "0x072d63796C4FE69B306a23E1D01156d51F7B3e16", + "0x051010142A0B9de7F0Fd8fb31d085407287F6381", + "0x8498843f6D9046f7b59482978E152D61869203bC", + "0xB48ef8e4e7Bef79ddF64d4424151f003a59BfbfB", + "0xb423A138fD171c28d90A5883A01ec92fF3D63609", + "0xAfA3a2528E8baAd576a83ffC52dB9f100dEbe307", + "0x055fdA7Eb509cc338C898b0F698B7624387AB813", + "0x0B3BD83E857997b370FaDC8504fB712244F6786C", + "0x8D12A71Cb933A4222d42feCBb4ba9c15e455305b", + "0xDEF3D19ff35a42F5b8E3c706c8fD287De72e6D15", + "0x19a2BC678785BAD6A947A87494D480DAD57711c6", + "0x2c3E79D3DCE90FB0886C89Ec602E61757E589a94", + "0xe8aa836a597a66724D678860D105561c13E95bFa", + "0x3352a3277d2B74A773Fa6E68a625FcB18E4Fc282", + "0x2df292AF809Fd693D94C7D17E36BE352e15Bb98a", + "0x269Aa10398Aaa695259C3E8211ab27a15004110C", + "0x02d9c84a495986b8b3C3347Ad16849DCB1b9793e", + "0x8FDA1Daa6a674C1726d1896E3054B9a82d123F12", + "0x1021e61f2cDd8bB295b0e64A20eBB7D8ec3734bf", + "0x58d7d9c971A613117E493062bEC1A6A5484f2780", + "0x2bb96f44b9709b02189A50B377755edC30bc65C7", + "0x7bE20B02095944657275eD608615A39931d783F2", + "0x4AA51a723882ee676FeC444D4561c5eE16c339E9", + "0x1B243D42F53924118646EFaec5b3f6116b563960", + "0x01b7348EC3fb20Ab1f40b97Cc82df44aeD360768", + "0xbf4C0104dbfb028f3484CfAC17BB22aa15E5c7E2", + "0xCc3B817D4ABa7698EaafB4C68E7688CF61B0BF46", + "0x572E1b86471c900Cd16AFa9cBB7701862D0e70cB", + "0x602Ac8C3f61b351be325FEeb58842EF557431c2e", + "0x8d0CD1AB81EaDa4F92C7cb5c8DBc25C69cc296AD", + "0xAE2C7AB762317DB453317b70f1f40145755fAfb7", + "0x7bdae9AAbE238188c4882D48a3aEE21288A38eD0", + "0x96e4152f00894f677d860023b9784d578bC1c145", + "0xF572C9b11E757d3580C7C7310630cd488E8EA736", + "0x3769092DBfa6eb34434fB5B7cf0eB06E710728F3", + "0xCA72c93172BA6EfF168E59e7F17C3C7A8FeA9B62", + "0x1c0AcCc24e1549125b5b3c14D999D3a496Afbdb1", + "0x7fC80faD32Ec41fd5CfcC14EeE9C31953b6B4a8B", + "0x5d36a202687fD6Bd0f670545334bF0B4827Cc1E2", + "0xe64113140960528f6AF928d7cA4f45d192286a7a", + "0xf6B6F07862A02C85628B3A9688beae07fEA9C863", + "0xD779aFEE481e3Df5cd0544F0e4353Cf534FD99Db", + "0x183bDB344A07Ee3D27f07AC4799A56E4A2fE5439", + "0xA8cadC2268B01395f8573682fb9DD00Bd582E8A0", + "0x75535661Ab25a468Dfb3137320a7568FeCda4832", + "0xd37ED782323A82e5BD55A92500E48FF5eFcc415E", + "0x03bB5bC3c8fdAB212A6b2B347a049133DfCB3A47", + "0x61987699055394c65355F2797D3e4e589f7FaBf4", + "0x2bC12061C8912505978472C21d4a23dB43AF62aA", + "0xad7575AEFd4d64520c3269FD24eae1b0E13dbE7B", + "0x0D89421D6eec0A4385F95f410732186A2Ab45077", + "0x04c0cD38B8c203b14ef2b7B8d736D69B938AFF71", + "0x0CF30daf2Fb962Ed1d5D19C97F5f6651F3b691c1", + "0x6EEb37b9757DcA963120f61c7E0e0160469A44D3", + "0x616caD18642F45d3fa5FCaaD0a2d81764A9cBa84", + "0xdC1d963D21C9c1bFf7b6Bea6e10080dAa9b4fc51", + "0x8073639B11994C549eDa58fC3cd7132a72aaDF10", + "0xe52C39327FF7576bAEc3DBFeF0787bd62dB6d726", + "0x8f21bD39FcAeA3A729D46339A383081ecB7E84E0", + "0x8Fb7087336678F36E42313f6130567A109a8e73d", + "0x276E69CdD336001afEF07075859A93078496C3c1", + "0x954F716e6de059360d278B773138f8e046696721", + "0x997D410b26CdD17b0750F2c1751e59cBcfaE446f", + "0xE8b6b71f3b1E6d2ad406D2cf36B1f2C567342dF1", + "0x83108A0653a14EAeB8301E7b10a37CfAc39C82f6", + "0xF95D9549b3Ab9470d306a6413Aa45082e8B66043", + "0x82d92494f6fFFB17A1DDFfd9B7d88D1d0a360009", + "0xA19947DA8B916f64Ac6F362cEC9001D8BCBeEe93", + "0x7ef5e4062dcCaD29A6F8d5458590160536056C81", + "0x653d973b36137A5cB2fc304996E0af1F1afCC628", + "0x5F319CA6Ecf072A4d183edAa711Cd04dC225df19", + "0x4D32D90D6535bD4e7eaBaa27EE72932cB214BbfA", + "0x73b9f6a6e52aCE2797F0a6E52AAc530Ed1F2a2Af", + "0xaA3600788b72863ff51C8f0dB5F10bB65fbFeAB4", + "0xf93F0b770784602fC3079eb1D2fB1Ff488Bb02B0", + "0xC8Ddd59c496D04C4C060Ab5038d03d661DDC2617", + "0xc42c77b6B2A2B220b9502F357bBf51334Db3C93f", + "0x2615214F8200B526a7B1eACe03971F2672B48CF2", + "0x9d8d7220D060fd12Ca33336B7239688e366327dE", + "0x9e602c1920443F01Cb100a57A7F894df8Eb42f66", + "0x7e651F5f597436cD0fa941F5FF2cD45Ef3F2Fda8", + "0x8e30Dc2AEF957B1F7dd67B1b7bC651fFe7E17a06", + "0x597dC4159a4b85c086c3C679a0B6c8Fe2836886F", + "0x7fBdE8B27D2B4F164B66F2a9dc02bbD6697e5b19", + "0xf5819cC26F0481c9b86294B4c24027518a04BD5B", + "0x8e7D20638947132B0e6E1aFdE2da1B103aFF9280", + "0xCBA711BEF21496Cfd66323d9AEA8C8EFd0F43e9d", + "0xdfBaeeF21396BF205D4B7D23345155489072Cf9B", + "0x3B981fA5dD50237dAb6F96A417A6690B6f20FcC4", + "0x6C31212a23040998E1D1c157ACe3982aBDBE3154", + "0xCDdF772F8A3295C89DC37510E16e360ee2d29789", + "0x002B5dfB3C71E1dC97A2e5A0A7f69F3e7b83F269", + "0xAD7A185b2456d5AFD85838A50C7d8aCE3aB2f871", + "0x7993F18C91A9f68593d308C5846f380A2a374F46", + "0xc5d82775c9bc5272B1225DB8D62b7034e064BA91", + "0x8bfcF8cb383149D4Ef37e7A609cEc195CDCbE099", + "0xA515F7fB260095eebC860425493b8761B4FC9abd", + "0xaA95cA26c92b0634dF7a1A1504f579F13bFB7f9d", + "0xC2812325caD4C4C782CbbC1164e9373371D31dB2", + "0x4831DdB6502ca45dbEEDf58B47292061Cdb6050B", + "0x6733c60E6E02f9C8FA221Db1aeA018d80D949861", + "0xCaD3887923B39cD2b0B6d13538C4ecB7C5EE9825", + "0x4520cD8BC085B962eF8c0ec696ac9D3Ef1d8bf55", + "0x7D85fCbB505D48E6176483733b62b51704e0bF95", + "0x27259b0F4209e76f8C6Cf27106C9FF83BdC2E831", + "0xE04885c3f1419C6E8495C33bDCf5F8387cd88846", + "0x23ee51e614cBF138e4cAbA9EC5ed4fF7D27A8596", + "0x2cab4d881962D247218356B32aBc4AA5c46bA0d2", + "0x1c0A032954f20761E59138feE236204bECbb8bdb", + "0x701d0ECB3BA780De7b2b36789aEC4493A426010a", + "0x1Ec3C1f70E1D6bBDC84092ae86eAaDE495fdDB9b", + "0xB53b0255895c4F9E3a185E484e5B674bCCfbc076", + "0x770569f85346B971114e11E4Bb5F7aC776673469", + "0x8289432ACD5EB0214B1C2526A5EDB480Aa06A9ab", + "0xdca6F7CB3cF361C8dF8FDE119370F1b21b2fFf63", + "0x117e1EbB7D05545064850513021dF6ADe3C1690B", + "0x7fb43C99a26a9EA8ba841d58390BF1C2996EDFB0", + "0x84B5a60Df2d7e3397B3A4A3c6282f090304Aca26", + "0x72F434Fa010929656AeF58695dab85447E51Fbc6", + "0xA29b0D2F3b4555359A1bF684d700753b1b06cBc4", + "0x4318cC449b1cbE6d64dd82E16abE58C79E076C2B", + "0x8F48282e50B0210bd7c7DD69C54205E98b9Ef5D9", + "0xa305B293e44A82f3Cd489b5fB26084647bb5D8ae", + "0xd9e5De13eF1dBC4DFE0Ee1BB76276228b9B23d0f", + "0x4AcEEB7bF9ec8104CC2379f1E8D648Ee47249FCb", + "0x0743542070891051861f8D0a4550f97B43B0B89a", + "0x58aD805f26272C5Ba06D24Bd0E43c8a2d1c634D9", + "0xE6ED9C681967a4EA7Cef4486942b800139DfB000", + "0x51b9C1Df35B044b5c0099D1fD07EAb7cE38f325d", + "0x55DFFA17578e6bAcE42e4Bf8687A11A85cCfEF97", + "0x1FAE8f99E9F932BdBA910061590C2156eE512A91", + "0xA25207Bb8f8EC2423E2ddf2686A0CD2048352f3E", + "0x746bb7beFD31D9052BB8EbA7D5dD74C9aCf54C6d", + "0x38bc91AA6Aa434c4fae7E666F68C859292deEd95", + "0xA3aD5CFb4FF4B68e37A338Da200BA441C1850B5b", + "0x4bfb2c232F70c83136a3F206cd26Df2A0B605cEC", + "0xf5AB6B4a8d578807491ef59cE855982990932617", + "0x1Fdd220E14b59E26bf1888e8267C4C221983a0A6", + "0xE2D6AFF297b41881c1aEA9599F68AEDFAB38C651", + "0x7d547666209755FB833f9B37EebEa38eBF513Abb", + "0xb681B19bb1F7e9F3C2AE0EDeab368c2afaa4e590", + "0x7Eb84E42059F0D44269C50f4D3A280Fd307a6824", + "0x84f0620A547a4D14A7987770c4F5C25d488d6335", + "0x4Ae6a8A28c87b75e935a90D6128F2649C969c0D8", + "0xb79223E868871DBAc27E8E301f73734abd4Cc628", + "0x6F219Bd1167568aB67494A9067CbbB5679bf0022", + "0x9Ff548c1B3eA3dd123AFE39C759dDA548009B6C8", + "0x3085051F89666E7124e7Ab95b693Fc1E09770907", + "0xa25211B64D041F690C0c818183E32f28ba9647Dd", + "0x6166E1964447E0959bC7c8d543DB3ab82dB65044", + "0x76E059C6FF6bf9FFFD5f33AFdf4AB2FD511C9DF4", + "0x4CC9E6fABb800F083a2685501d1A30CdAbb4B2De", + "0x5f3371793285920351344a1EaaAA48d45e600652", + "0xAFE2b51592b89095A4cFb18da2B5914b528f4c01", + "0xe3F4F3aD70C1190EC480554bbc3Ed30285aE0610", + "0xE0D8926A51F9A1dD8E089D9a3DD88F88fFb2F1Dc", + "0xa6c366D97cb64708211f24310dFAd5363BC96a04", + "0xB7562F12E41C762CeCDA99d62Bd6EAC7b0C3B4c1", + "0x301605C95acbED7A1fD9C2c0DeEe964e2AFBd0C3", + "0x5d47e5D242a8F66a6286b0a2353868875F5d6068", + "0x0ea26051F7657d59418da186137141CeA90D0652", + "0x88f1706c20d94A4d1551C5F799C9E3380A24C3AC", + "0xFB40932271Fc9Db9DbF048E80697E2Da4AA57250", + "0x40Db8365d1252bcb06598927698238a99D39228E", + "0xaCf4C2950107eF9b1C37faA1F9a866C8F0da88b9", + "0x144c4E5027B69f7798B2B162D924BcAE5c149f15", + "0xeeE844540644b204f0005c063Ae95F244BF06a84", + "0x014607F2d6477bADD9d74bF2c5D6356e29a9b957", + "0x1E8eE48D0621289297693fC98914DA2EfDcE1477", + "0x4AdA1B9D9fe28aBd9585f58cfEeD2169A39e1c6b", + "0x31460f49EEA93Ef8255b42be019FB96F89Cf0c49", + "0x63A32F1595a68E811496D820680B74A5ccA303c5", + "0x022ca32d31da3Ef85922AAFD9aD29C5b2418172C", + "0x93B109C3c279bcBbB673Ed1ae1A8BB2dE8eEf9da", + "0x689476323Eb5e9A5DEd342F54B562fc2c156A522", + "0x1C9F765C579F94f6502aCd9fc356171d85a1F8D0", + "0xe0144FA05A0d32B5B1De10CcEe7211616B3E3EF0", + "0x6C965b656C450259a6D4d95A2E68Fb4319EecBc0", + "0xE36BD8C15a83b89E2E49806d7312846069755C63", + "0x59DDA36bD196Ec849838CE2163E6821f946b37Dc", + "0xDd31dB93082a3A71b98D37ba26230f8734Bd63C3", + "0x83c98211C50480e457a0dF930d2A56a891BC4d4b", + "0x11FA934f6754076AEb7Cf0A72a1c2D2518aA4C77", + "0x2B888954421b424C5D3D9Ce9bB67c9bD47537d12", + "0x2383A8b8cC8561a65871F1d2783B7C52e22B62c1", + "0xCED608Aa29bB92185D9b6340Adcbfa263DAe075b", + "0x841AD0AbAb2D33520ca236A2F5D8b038adDc12BA", + "0x76d2DDCe6b781e66c4B184C82Fbf4F94346Cfb0D", + "0xf21e38ac177B48fDE02dB7F2CA97466AE8Eae87D", + "0x7537Cb0AEe6a3483a7601ebf1084eD4df73166Ab", + "0x5f0bD06A71E038206ef3e5090eB448E9a9773772", + "0x3C0c7B44c1F9366271F5c491121a1F7d55d33eF5", + "0xa96a437eFb71bAF50A59027C340FA3362ef703F7", + "0x55bA9c90c37e3206570AC9dc872c0f053d155F77", + "0xC68bba423525576C7684e7ea25E7D5F079b1361E", + "0x78E87757861185Ec5e8C0EF6BF0C69Fa7832df6C", + "0xCb36F8580A36788A48518dEC95Ea458357E64E30", + "0x25854e2a49A6CDAeC7f0505b4179834509038549", + "0x639749b7b08aEe65039c21d8a411103C6ceBEBF0", + "0xF517529866d371F04780885923F739bc17694BFb", + "0xC728DEa8B2972E6e07493BE8DC2F0314F7dC3E98", + "0x33f6EE932cEa603Fafd6854827259bE172C91Da4", + "0x6D97d65aDfF6771b31671443a6b9512104312d3D", + "0xB7BaBe35CE543e2Cf2F615CB1c792a2025feb572", + "0x4D9e86a5AC368Aa4Df0473eF07e13Ec2Fbe04025", + "0xaa79B87DC8B046A5E4f7D03F1562D7fe5BF98737", + "0xE71FbB197BC8fD11090FA657C100d52Dbb407662", + "0xB22981bA3FE1De2325935c91a3B717168fB86714", + "0xf389dD1F828525b449D63D14157f2d3A25eE0a41", + "0x877B37D3E5467B4aAE7687Dd3480A46C8D3e16Be", + "0xf9e1D1e9F22c96752356AdFd377231528c7E851E", + "0x187089B33E5812310Ed32A57F53B3fAD0383a19D", + "0xF1659A2FD5007192314F9676e6a4a39FD1202160", + "0xFdd210ce1b829E837D9e034DAE0F0312F176cef6", + "0xaCE1f1c6c5c89AE3Fc3209ff92e7120fb74445aA", + "0x6Ceb397b68059Ca73049874D0a30c62500aE9877", + "0xC46c67Bb7E84490D7EbdD0b8ecDaca68Cf3823F4", + "0xbb2eb4c7eB36ECce7A3E6bc501590CE12c9c1050", + "0x9Cf251A782cE7310D5bec0fe0a1C2B826d962545", + "0x43930Ff04D18a5B59805151c1Eb403C55870641E", + "0xA270f5649A42feDfE66ddb3b0b50bebAe1e3DDB0", + "0xd3488EA0c1DC99a5d72F75c84004224f8b58694E", + "0x7aBa691D12D8eF8793F1643eBa66b69C70EC72f1", + "0x8558f502887a9a52c4B265d72327E0E529Ff790d", + "0xA906c85B7e809b79c5e69d485693B44d65B1B252", + "0x3abdC9ed5f5dE6A74CFeb42a82087C853E160E76", + "0x30C7F4F7504D6366916f669cd8E731ED4dF6C702", + "0xed8DB37778804A913670d9367aAf4F043AAd938b", + "0xc191a29203a83eec8e846c26340f828C68835715", + "0xa32aECda752cF4EF89956e83d60C04835d4FA867", + "0x059F7da59Ad1EB412B4d2fFc12E9B50Da91cFdb6", + "0x85BEad65c61dB8cF230b3ec30552B8b3E6388570", + "0xF3Ad97364bcCC3eA0582Ede58C363888f8C4ec85", + "0x3F87755E2974534888Ddb20A52dCE45Ef9f204AB", + "0x757CC91CcBB88cB0d78d6798D20051d39E5A7296", + "0xF553C8223cA8542Af9Db7b916Fe9dc7c28b73751", + "0x40f9bf922c23c43acdad71Ab4425280C0ffBD697", + "0x9600e2eE6377DAdad7299B120026661c336A5e6d", + "0x516fCA170bfE24BFC54e01F215EF85Fe9B5B798A", + "0x61C820e261717A5A0555488872F78ac7b9CE77Ec", + "0xEb263241eB948Cc0eB53A58bf743289D074F474F", + "0x841C11b14c428dd591093348B8Afa2652C863988", + "0x3c114973c0260290C2dbD40323327d996972FCeB", + "0x765a16ca391A6b9249cfA65bf2D14C38722198e3", + "0xC3268DDB8E38302763fFdC9191FCEbD4C948fe1b", + "0x6B92686c40747C85809a6772D0eda8e22a77C60c", + "0xc799bE8De03F20B2D3b101E6F6516D614e6fFe06", + "0x40Dc654af5cE40C122ffDC679fa8E8ca8b91556A", + "0xCE8D52c38d74B77a0aA361c48Fdce6b220A3370e", + "0xEfa4c696Ea2505ec038c9dDC849b1bf817d7f69d", + "0xf7253A0E87E39d2cD6365919D4a3D56D431D0041", + "0xcf79C7EaEC5BDC1A9e32D099C5D6BdF67E4cF6e8", + "0xff75E131c711e4310C045317779d39B3B4f718C4", + "0xdE2BE7C9C542c55a7a77489A3A7745493988947F", + "0xFeB3E0f50107f6cfB2EC8C2bC8287f2707E0E2Ea", + "0x6b759Bf480407D19c8903c16023c706868c29a2A", + "0x6E38911dA6Dd0379F1CaC396F74387c95A1f0D21", + "0x5a5D9aB7b1bD978F80909503EBb828879daCa9C3", + "0xe96056A9936C58e89D1703cF6bD97F134341EE44", + "0x4dD6720D2Bb8721A46bdF9a528704164578E03B9", + "0xE83B9A1B9056B21a01b85162E77AD76a42A1c64B", + "0xbeC48f1cCf82d8e4C983Ee00Ac2eC6B03B81d710", + "0xEFEdaf9c07E6eB56BB8F82f30018e4461B1c5F4c", + "0xB68da7fbF71383Afab240839287878539cFFf20b", + "0xfBDDB719cC7c795a1D9b7EA7aC11494A19b3231F", + "0x07506a5F48D71fDB34D3900fB086D43EF1B58FF9", + "0xa85cdd5478B7E525a808eF9707c3e33432cE1e7F", + "0xCf7C21DeD40f2Df85A564207A89b3379780d9CE3", + "0xd26b76e50f6510cdD4bf45d59279705f36946d23", + "0xdb7a41e39807E8C988859f150296Db92674b7dc7", + "0x719028736f10164c838Ef129936779eD739312f2", + "0xaBCdef0AbbA5D0106595174213156797bc0DB33E", + "0x3D2b8879f97e413b2609F9844A5fc8dB8FE4f6F8", + "0x81EbE8Ee7b51741fD5DaD31F6987E626A9bb8111", + "0x1D45c8fa65F6b18E7dAe04b2efEa332c55696DaA", + "0x978eB534b26CB8749D352a2C94EC21e659e4248d", + "0xa7CA400d49BBa87EB606ee05af93689BD21FaB99", + "0x65ad2BF7E09af2597C140dF6386a3003d0F5f8Ee", + "0x835918a3fBDf946364a9aee3114173865b712663", + "0x6073cFfc1D46b1eA57BA89A28074cA734aCD7003", + "0x2B13D52dFd33E2eBd13232866fDf96088e77d596", + "0x55F5601357f6e0B10a3386914c93916c6C9A368A", + "0xA1D5D2d931b532A0503e97f540f65ed256f374e6", + "0x6C9258895FFBE2178b3EdEfE09AF304a1e99bF2F", + "0x973375b099943cDdFd390022CeA90D4F1d0c493c", + "0x8A8C879D39A74fCE0593714956bB7Ed048A5c1BF", + "0x9c42B0c70D0dAF1211f3aab2A1E6EC5E717dE12a", + "0x81a6383041593c556d1c8e69e2749b35b5008F09", + "0xF41b98a4C32bB61468C8001E0C69Ef64ce6DEa57", + "0x8FaE81bb674c89cCDE35a386587333D074b57786", + "0xa8258ED271BB9be9d7E16c5818E45eF6F2577d92", + "0x1e90474D2E83e7B7dD45553156Beb316845E66A4", + "0x2cCbbC4c10F5d807FDd447219B57D0b883a28DC8", + "0x1bBeAc736875c5043486A8a4374E6B5616eC8883", + "0x95add3DfEF3AE0A832607Dc71C4A9C6A6C2D7Eb7", + "0x744c6Eed427aF293b0106B46700fdDD3C9f62Eef", + "0x743Ec55fc166D24D2FD0211fb6Ce53926D0Ff3b1", + "0xDd03d2434C02c6BfFb097b7130528F9568b6C70d", + "0x97C12EFA574923E3ee445370d2dE432332857110", + "0xB69951a0642b55CD5731535ed5B290Fa49D3454A", + "0xBA56878729540404dE2aa14561b451aE2350744a", + "0x8D247f4Fbbe81429d3D164a5c9Ae0063210edBdC", + "0x850a146D7478dAAa98Fc26Fd85e6A24e50846A9d", + "0xfE1552DA65FAcAaC5B50b73CEDa4C993e16d4694", + "0x9705FE3586a7D768Fee061aAfE9384b1D4B8F2D8", + "0x5554672e67bA866B9861701D0e0494AB324aD19A", + "0xacc5c1e73d70F7F9622De2d574885Ce8E6981033", + "0xbe9E7b0ed19526544B55b697107231f9467a805f", + "0x172DBab6f5E62A1FE7E2bA5eA1624ADB33e0aa14", + "0x96725Fa2F9A0b5bAf80fC36C20C2cA79d86424ed", + "0xa392cCadABFf735dbFF69dC93d7C13f34A30611b", + "0xEbF0e04E47F726D0f44801dFEC5e705aDcd6694b", + "0xC0891e8FCeA09680BFe9170809fad1BCCa10b96b", + "0xA21000E7A5A2A2Bd9329428A859f9d7dcE0f0961", + "0x9A387307F7508DE113092BaFC5CB4B3AE0706521", + "0xBA719E0197470A790726075fD98EDEF04E2467af", + "0xda08BE028304db1A73a13Bce7C943127C2E393dB", + "0xfB4a965A35603010FeAcC648cA022Cb6A12D33F5", + "0x3Aa73ed90e9f0CEd87ff99CB60cA79019279e6CE", + "0x150bB505A9259b0be44FFb15415C79199E83c445", + "0xB170A41F2523220A12F84f17A54bD31953D98027", + "0x2Fcd65d9c8078644adCf1CB0cd70A1b61F3F9C5b", + "0x73006C818880d07dD510e165C3De3E74F2407187", + "0x747e6ABc102222f1dF65C662540dDf471241a644", + "0xeeEe5D271A56Aa09C4F8862aF514ADD3E882857c", + "0x98Ad82AB467bc8c70e0CC183a5826d903751b7d8", + "0xC624434420f6CbE835D6358A8223b78432773cEd", + "0x848e313d4b25bC0B48CaFdB6A72391E892E6A247", + "0x0025Ab2d69F6c2C3Ffac32Ab6A16e18c807518B8", + "0x2efe744ecc4F6BD55538da57D09DAE895C95b223", + "0xBc6d82D8d6632938394905Bb0217Ad9c673015d1", + "0xe1555c6EE61366a3f90135Dc704Acd25C3247ACA", + "0x2f51E78ff8aeC6A941C4CEeeb26B4A1f03737c50", + ] +) + + +GUEST_LIST_STAMP_PROVIDERS = [ + "AllowList#OctantFinal", + "AllowList#OctantEpochTwo", + "AllowList#OctantEpochOne", + "AllowList#OctantEpochThree", +] diff --git a/backend/app/infrastructure/database/uniqueness_quotient.py b/backend/app/infrastructure/database/uniqueness_quotient.py index 842431d1bb..fb77a49342 100644 --- a/backend/app/infrastructure/database/uniqueness_quotient.py +++ b/backend/app/infrastructure/database/uniqueness_quotient.py @@ -1,5 +1,7 @@ from decimal import Decimal -from typing import Optional +from typing import List, Optional + +from sqlalchemy.orm import joinedload from app import db from app.infrastructure.database.models import UniquenessQuotient, User @@ -15,6 +17,12 @@ def get_uq_by_user(user: User, epoch: int) -> Optional[UniquenessQuotient]: return query.one_or_none() +def get_all_uqs_by_epoch(epoch: int) -> List[UniquenessQuotient]: + query = UniquenessQuotient.query.options(joinedload(UniquenessQuotient.user)) + query = query.filter(UniquenessQuotient.epoch == epoch) + return query.all() + + def get_uq_by_address(user_address: str, epoch: int) -> Optional[UniquenessQuotient]: user: User = get_user_by_address(user_address) diff --git a/backend/app/infrastructure/routes/user.py b/backend/app/infrastructure/routes/user.py index c83e213288..e43cfd2297 100644 --- a/backend/app/infrastructure/routes/user.py +++ b/backend/app/infrastructure/routes/user.py @@ -256,3 +256,49 @@ def get(self, user_address: str, epoch: int): app.logger.debug(f"Uniqueness quotient: {uq_score}") return {"uniquenessQuotient": uq_score} + + +user_uq_pair_model = api.model( + "UserUQPair", + { + "userAddress": fields.String( + required=True, description="User ethereum address" + ), + "uniquenessQuotient": fields.String( + required=True, description="Uniqueness quotient score" + ), + }, +) + +uq_pairs_model = api.model( + "ListUserUQPair", + { + "uqsInfo": fields.List(fields.Nested(user_uq_pair_model), required=True), + }, +) + + +@ns.route("/uq//all") +class AllUQScores(OctantResource): + @ns.doc( + description="Returns uniqueness quotient scores for all users for given epoch", + params={ + "epoch": "Epoch number", + }, + ) + @ns.marshal_with(uq_pairs_model) + @ns.response(200, "uniqueness quotients retrieved") + def get(self, epoch: int): + app.logger.debug(f"Getting uniqueness quotients for epoch {epoch}") + uq_scores = uq_controller.get_all_uqs(epoch) + app.logger.debug(f"Uniqueness quotient len: {len(uq_scores)}") + + return { + "uqsInfo": [ + { + "uniquenessQuotient": uq_score, + "userAddress": user_address, + } + for user_address, uq_score in uq_scores + ] + } diff --git a/backend/app/modules/uq/controller.py b/backend/app/modules/uq/controller.py index 81ba39f5ea..62657d0432 100644 --- a/backend/app/modules/uq/controller.py +++ b/backend/app/modules/uq/controller.py @@ -1,4 +1,5 @@ from decimal import Decimal +from typing import List, Tuple from app.context.epoch_state import EpochState from app.context.manager import epoch_context @@ -6,6 +7,7 @@ NotImplementedForGivenEpochState, ) from app.modules.registry import get_services +from app.modules.uq import core def get_uq(user_address: str, epoch_num: int) -> Decimal: @@ -19,3 +21,12 @@ def get_uq(user_address: str, epoch_num: int) -> Decimal: service = get_services(context.epoch_state).uniqueness_quotients return service.retrieve(context, user_address) + + +def get_all_uqs(epoch_num: int) -> List[Tuple[str, Decimal]]: + context = epoch_context(epoch_num) + + if context.epoch_state > EpochState.PENDING: + raise NotImplementedForGivenEpochState() + + return core.get_all_uqs(epoch_num) diff --git a/backend/app/modules/uq/core.py b/backend/app/modules/uq/core.py index c1c6b969f0..b5943ef9d4 100644 --- a/backend/app/modules/uq/core.py +++ b/backend/app/modules/uq/core.py @@ -1,6 +1,8 @@ from decimal import Decimal +from typing import List, Tuple from app.constants import LOW_UQ_SCORE, MAX_UQ_SCORE +from app.infrastructure.database.uniqueness_quotient import get_all_uqs_by_epoch def calculate_uq(gp_score: float, uq_threshold: int) -> Decimal: @@ -8,3 +10,8 @@ def calculate_uq(gp_score: float, uq_threshold: int) -> Decimal: return MAX_UQ_SCORE return LOW_UQ_SCORE + + +def get_all_uqs(epoch_num: int) -> List[Tuple[str, Decimal]]: + all_uqs = get_all_uqs_by_epoch(epoch_num) + return [(uq.user.address, uq.validated_score) for uq in all_uqs] diff --git a/backend/app/modules/user/antisybil/controller.py b/backend/app/modules/user/antisybil/controller.py index 7c797d0f03..34951e20e7 100644 --- a/backend/app/modules/user/antisybil/controller.py +++ b/backend/app/modules/user/antisybil/controller.py @@ -1,17 +1,18 @@ -import datetime +from datetime import datetime +from typing import Tuple from app.context.epoch_state import EpochState from app.context.manager import state_context from app.modules.registry import get_services -def get_user_antisybil_status(user_address: str) -> (int, datetime): +def get_user_antisybil_status(user_address: str) -> Tuple[int, datetime]: context = state_context(EpochState.CURRENT) service = get_services(context.epoch_state).user_antisybil_service return service.get_antisybil_status(context, user_address) -def update_user_antisybil_status(user_address: str) -> (int, datetime): +def update_user_antisybil_status(user_address: str) -> Tuple[int, datetime]: context = state_context(EpochState.CURRENT) service = get_services(context.epoch_state).user_antisybil_service @@ -21,4 +22,4 @@ def update_user_antisybil_status(user_address: str) -> (int, datetime): service.update_antisybil_status( context, user_address, score, expires_at, all_stamps ) - return score, expires_at + return service.get_antisybil_status(context, user_address) diff --git a/backend/app/modules/user/antisybil/service/guest_list.py b/backend/app/modules/user/antisybil/service/guest_list.py new file mode 100644 index 0000000000..6343a683e7 --- /dev/null +++ b/backend/app/modules/user/antisybil/service/guest_list.py @@ -0,0 +1,471 @@ +guest_list = set( + [ + "0x16f3f2f0ba34973937A1ebb989a295Ca106b67C7", + "0xBB5935dAaFbacAE82c8D2CA8377F16073D70061a", + "0xba84B5cA750b33DfAdDBFdD1B7C6887885a34977", + "0x4e9A05226993F094A56A3472C8c816F2599423A6", + "0x40DE3299Bd8a10D8Ac3f32C1A55DE40640cF9B75", + "0xC33F87697EF41e0E95e7a55d1ec8180F04088578", + "0xCBc924183Bc32D02746Fa8D38843B5Ce08662eB4", + "0xDc9C5e34959eC3643AF1e1D34A83D6b251AAb1eF", + "0x762BBc211990D0a356F35E4D500843F59d223C2e", + "0x55187a1165EBB441A1BF227fff1EB0D32a65bc46", + "0x7aE59f3F2B2E5f3842B50a15bCb5247c5De881Be", + "0x59072B3a3287F4a75cadfb36D671A2f0d1959B09", + "0x4A5da2a1D3258dF8FFb431Cf0110FE9b98ADeEbf", + "0x514A9771Af8Afe71057666b680238dFBeA578d65", + "0xE70055e9575f15A6f51F3068901D73ac63952adF", + "0x9e831B58001e2b69F70C892e4F8ce9d2118B7E00", + "0x51c1C7f1e168a36Bf1FaBFD91E98b43476a6B14D", + "0x33878e070db7f70D2953Fe0278Cd32aDf8104572", + "0x3df13B9bd79158f0cccDDd0833cF774178e3d2e9", + "0xB9573982875b83aaDc1296726E2ae77D13D9B98F", + "0xE862E2C1ca94eAcfEDe3c95a217c15EF0086a29D", + "0x0442A9aBbc93058a873c371F21CC366338254A88", + "0x0194325BF525Be0D4fBB0856894cEd74Da3B8356", + "0x399e0Ae23663F27181Ebb4e66Ec504b3AAB25541", + "0x9f729294b308f79243285348A7Be3f58ae5ED31A", + "0xb62E762Af637b49Eb4870BCe8fE21bffF189e495", + "0x5725a458b319d73B8Ec84c47de80620E7B191B0C", + "0x57Ccc081824b43B75986727875929AF3A6Ad721C", + "0xf13e477365B0FAa64130DA2FF663aAb20d32d929", + "0xFD868dB0696ef762351F8421535cC5f9F423B23C", + "0x30043aAbBCeBbD887437Ec4F0Cfe6d4c0eB5CC64", + "0xAa01DeC5307CF17F20881A3286dcaA062578cea7", + "0x3FFD0C300fa4a021364Ae7e85a7b0d3a02133f99", + "0xBEa26DE685Ef828b60cA53b40Ecc9Bab35645fDF", + "0x4103CFcb300599dFcB31dBc95d919592619B4EAc", + "0x22bAac1E95efC010E35D5eD643BB16c9dB254a11", + "0x686A484bc2E2bE79f358c7055e8539A69413A3Ed", + "0x073a360C372FD51Bd6E56B4a4d73790fDAec4641", + "0xdd0206010CA82fF22303b58863b3a6f3006C86C4", + "0x25FA68A4c340202737EDBC67fD1a2Ec8DE872dB6", + "0x5b655EDa7D101f98934392Cc3610BcB25b633789", + "0x32cEfb2dC869BBfe636f7547CDa43f561Bf88d5A", + "0xA4369e39e3ED13593Adb0142A1ea5d08AbdF99C4", + "0xA8F0048A0d1A04663Ca5010d0bEaC5BCAEeA0eef", + "0x65F632cfe8015B7ae6976e549645ed04cde60fe4", + "0xb35E0a0D00c640ab75fAD3cf3B83264bC64D23eC", + "0xafA3E6E29D99337b166b83fB24bA17b19764B49D", + "0x57DD1517c12659365E59F71129Fa9B1611Dd18AF", + "0x9120FfD5d04ca4B26AaBCe611989A8F026dc099a", + "0x2AC6A3561a43f06d62602eF9728C2B9eEc393326", + "0x297Aa50D0557c865F6C9B0AA0a91f41C26E55eE6", + "0x9Ff46343d0b652D6e766F85f9aE91653869349a5", + "0xEd36bf0b2b17768E782Db2ece6A327055b2f3e9C", + "0xC28D2fDFE6d5a482d32f855457Bb5F8cAcdB32b1", + "0x1d44404C1C53991Ec33095225da173d544Cd4Af3", + "0x5d9fbd984B9CeC714a4B14c38Ea83bBC82d06d69", + "0x5Bc0AEbdbab698e12FD33A2E133e6858fe6Cdd76", + "0x66805D8B82664Acab4CbE0C0498889dDE9aF7841", + "0xaF7610578F54c7De7563655AaF461E2CbeCB08C6", + "0x6c3F373Baec5D2d0Fb3C82C4f3Db5E48873ae363", + "0x015122A625b45f68E6D795C0Ab99fC7107e4c3B9", + "0x508A4F07B60BA0940283Cd4e32d5DEb0CC38AdF7", + "0xb150c9bEd10a8C62997d58a81c4e1fA75160643e", + "0x212647c56BA10ee429a838bc567dFb03A8D054Ba", + "0x73306dAb0D39A4D47df4972c7022CB2cac075D4e", + "0x914D5d84aAA064207C2c31014426227405edab41", + "0x3FBcEC42405391B1fb377664daA5AE7Bc9Ba7BF5", + "0x8c8296a0042E842Cb865DfFD94678c941fD24bAE", + "0xf5c2087877218AA979Dd0e2e5108837199aF44D2", + "0x529dc928E67D8A43133D10769B308F1D5A629401", + "0xF1bb436c29E46B1987bC825879ffc9c34Ab97f99", + "0xFDDE7aE208B3596f1982D66F6BAe4cDabF29244b", + "0x02e4Cc9ffF7566563618fb21B3BB10Eab4B3D726", + "0xd8821dbbcb8ea0c14Bd1F0aCbFBeBB3Fd984269b", + "0x31d23825aFbda5B6B1690Bbdbbb8117B5ea0f8E4", + "0x731022D6De647991864203a35dFaD1A192240d07", + "0xEb5e0B8e80FCe271c13F533fA728D7bB03cafa4c", + "0xFC967DE4e029fdcD16B418DaC2147d282C93085b", + "0x801a6d6dBC1e40466E131aA21D951629A9efAB4e", + "0x4892139De0e73141438D9E55D593171C0Cc6B143", + "0x8124eFC94c951cF41D4B0B42794C678458a00726", + "0x81cc36DdA894256aa95458F78B4029381b09BDfb", + "0x4Dcb2BCA3450B427F3d1b424C885259D05363080", + "0x7Dd8030F9d33Af4a40ee074f990892E825132e61", + "0x432C53218A11bEd08d238Cf84ff547CE4fe933ab", + "0xE77ad9c5af60332D24E5531B51A6B7f61D0B8703", + "0x0f792e55668AD78476d4B563E6EB1228D636a71e", + "0x583bBaDA56bb535BCBb31877A620A6ff2A25CeA5", + "0x5C0E777dC8F3De6b0911b44DbBDD8Bf71b2E8e38", + "0x8a4a50B13Fd2cb36FeB96c408CB98B4c9F2b8F25", + "0x1e55C85801a2C4F0beC57c84742a8eF3d72dE57B", + "0x26d3bE736aB6b5D8A3266fFCC0895dDc1bc19a38", + "0x809C9f8dd8CA93A41c3adca4972Fa234C28F7714", + "0xfB94f39B150Ae661F85762154c0CadC65E083791", + "0x4B7C0Da1C299Ce824f55A0190Efb13663442FA2c", + "0x77E64560Bd6C323c075F206a5AB9dD6850F31609", + "0x0F46540678c7e6D2eF983B382CC07Fa815AB148c", + "0x82073f802547fEeEc0fd49719a3D7697fB66076a", + "0xBAab83De8DbA764bF02a530cad33555bD23eba22", + "0x890a0047f8D573347872cB6C019F86552f2367d6", + "0x14D92832265eeAFDEF9e526356FEfc90105966c3", + "0x512B436cB2Ed6016e80d4F89ca578F99DBBccb61", + "0x696Ee4AE0b15feae8ED1AfC865930e0ea65b1f3F", + "0xbb4D885fD41c807e8eCC2dD9e6295a7F96Adb0EB", + "0xB1dE969883b1FdD90a43fF475A5171a3CfEfe76d", + "0x7DBF6820D32cFBd5D656bf9BFf0deF229B37cF0E", + "0xfE2e3cCEE9714b29Ab2FB4E940e52672194815fC", + "0x57fb3f4b027fbaDbd8d20Eb5E48feb1e2b02DF30", + "0x9AE494FBAc34682c122A1D4e3D6ae1Eb5404A469", + "0xb2b9300475aF157676C44eE64d39a5eB3C294DbD", + "0x01Bc28E036b6e75247Fe8F49f0a8b9410b19d851", + "0xcCE9A28b570946123f392Cf1DbfA6D2D5e636a1f", + "0xb2a3b5B9d2C0f07cBA328b58737147cfc172EB9f", + "0xCC3d7F9fE6946979215A901BbA385a88FdabBBf4", + "0x38f80f8f76B1C44B2beeFB63bb561F570fb6ddB6", + "0xd82803b7B9A5EB1D5FC558FD619afC6c031cd0B1", + "0x844AeeD1B294Ef9632c18E73F57ef77D0A23D0e2", + "0x9cD7D1981B3e15a2DEE4d512ac60E0579Ae18546", + "0xEBCd250474C27cBaD3C56f3F34e08F97b370AC2d", + "0xDA47bdcC48f26FB4709f90316341D9104cB1fb89", + "0x5cbB6ad79008908aA125667D1300558D9253B589", + "0x1078DaA844CDF1EDB51E5189c8b113B80a6A6957", + "0x8341c4106523b49fc247f84e412Bb2AF5597038f", + "0xCe57ebEd9aC38402DcAA44f65a1c9b04e26b8283", + "0x2dd2036C9Db2ADA2739509AF0047c00C8b9291EF", + "0xa77294828d42B538890fa6E97AdFfE9305536171", + "0x8dA48e5846c06B558970ACd42EDc7Da8799481E4", + "0x50418699cB44BfDa9c9afc9B7a0b0d244d8927D2", + "0x936d69AbCD9acdC89455EEFAf744044fFC1CA660", + "0x90C32e6B29794Fd7f5BbA2BBEE74e924078B3f9b", + "0x362B7e0599E950b921ca9D86336ca409208FFDEC", + "0xd98aD1Fd4aa0E1c876d91968D1385aa9E1Aa98df", + "0xD2602C7bDFC9F413974e944280BbFae275d1B1b6", + "0x731A2e51ebfAeBacF8477E992CDEB1E8eacf519C", + "0x072d63796C4FE69B306a23E1D01156d51F7B3e16", + "0x051010142A0B9de7F0Fd8fb31d085407287F6381", + "0x8498843f6D9046f7b59482978E152D61869203bC", + "0xB48ef8e4e7Bef79ddF64d4424151f003a59BfbfB", + "0xb423A138fD171c28d90A5883A01ec92fF3D63609", + "0xAfA3a2528E8baAd576a83ffC52dB9f100dEbe307", + "0x055fdA7Eb509cc338C898b0F698B7624387AB813", + "0x0B3BD83E857997b370FaDC8504fB712244F6786C", + "0x8D12A71Cb933A4222d42feCBb4ba9c15e455305b", + "0xDEF3D19ff35a42F5b8E3c706c8fD287De72e6D15", + "0x19a2BC678785BAD6A947A87494D480DAD57711c6", + "0x2c3E79D3DCE90FB0886C89Ec602E61757E589a94", + "0xe8aa836a597a66724D678860D105561c13E95bFa", + "0x3352a3277d2B74A773Fa6E68a625FcB18E4Fc282", + "0x2df292AF809Fd693D94C7D17E36BE352e15Bb98a", + "0x269Aa10398Aaa695259C3E8211ab27a15004110C", + "0x02d9c84a495986b8b3C3347Ad16849DCB1b9793e", + "0x8FDA1Daa6a674C1726d1896E3054B9a82d123F12", + "0x1021e61f2cDd8bB295b0e64A20eBB7D8ec3734bf", + "0x58d7d9c971A613117E493062bEC1A6A5484f2780", + "0x2bb96f44b9709b02189A50B377755edC30bc65C7", + "0x7bE20B02095944657275eD608615A39931d783F2", + "0x4AA51a723882ee676FeC444D4561c5eE16c339E9", + "0x1B243D42F53924118646EFaec5b3f6116b563960", + "0x01b7348EC3fb20Ab1f40b97Cc82df44aeD360768", + "0xbf4C0104dbfb028f3484CfAC17BB22aa15E5c7E2", + "0xCc3B817D4ABa7698EaafB4C68E7688CF61B0BF46", + "0x572E1b86471c900Cd16AFa9cBB7701862D0e70cB", + "0x602Ac8C3f61b351be325FEeb58842EF557431c2e", + "0x8d0CD1AB81EaDa4F92C7cb5c8DBc25C69cc296AD", + "0xAE2C7AB762317DB453317b70f1f40145755fAfb7", + "0x7bdae9AAbE238188c4882D48a3aEE21288A38eD0", + "0x96e4152f00894f677d860023b9784d578bC1c145", + "0xF572C9b11E757d3580C7C7310630cd488E8EA736", + "0x3769092DBfa6eb34434fB5B7cf0eB06E710728F3", + "0xCA72c93172BA6EfF168E59e7F17C3C7A8FeA9B62", + "0x1c0AcCc24e1549125b5b3c14D999D3a496Afbdb1", + "0x7fC80faD32Ec41fd5CfcC14EeE9C31953b6B4a8B", + "0x5d36a202687fD6Bd0f670545334bF0B4827Cc1E2", + "0xe64113140960528f6AF928d7cA4f45d192286a7a", + "0xf6B6F07862A02C85628B3A9688beae07fEA9C863", + "0xD779aFEE481e3Df5cd0544F0e4353Cf534FD99Db", + "0x183bDB344A07Ee3D27f07AC4799A56E4A2fE5439", + "0xA8cadC2268B01395f8573682fb9DD00Bd582E8A0", + "0x75535661Ab25a468Dfb3137320a7568FeCda4832", + "0xd37ED782323A82e5BD55A92500E48FF5eFcc415E", + "0x03bB5bC3c8fdAB212A6b2B347a049133DfCB3A47", + "0x61987699055394c65355F2797D3e4e589f7FaBf4", + "0x2bC12061C8912505978472C21d4a23dB43AF62aA", + "0xad7575AEFd4d64520c3269FD24eae1b0E13dbE7B", + "0x0D89421D6eec0A4385F95f410732186A2Ab45077", + "0x04c0cD38B8c203b14ef2b7B8d736D69B938AFF71", + "0x0CF30daf2Fb962Ed1d5D19C97F5f6651F3b691c1", + "0x6EEb37b9757DcA963120f61c7E0e0160469A44D3", + "0x616caD18642F45d3fa5FCaaD0a2d81764A9cBa84", + "0xdC1d963D21C9c1bFf7b6Bea6e10080dAa9b4fc51", + "0x8073639B11994C549eDa58fC3cd7132a72aaDF10", + "0xe52C39327FF7576bAEc3DBFeF0787bd62dB6d726", + "0x8f21bD39FcAeA3A729D46339A383081ecB7E84E0", + "0x8Fb7087336678F36E42313f6130567A109a8e73d", + "0x276E69CdD336001afEF07075859A93078496C3c1", + "0x954F716e6de059360d278B773138f8e046696721", + "0x997D410b26CdD17b0750F2c1751e59cBcfaE446f", + "0xE8b6b71f3b1E6d2ad406D2cf36B1f2C567342dF1", + "0x83108A0653a14EAeB8301E7b10a37CfAc39C82f6", + "0xF95D9549b3Ab9470d306a6413Aa45082e8B66043", + "0x82d92494f6fFFB17A1DDFfd9B7d88D1d0a360009", + "0xA19947DA8B916f64Ac6F362cEC9001D8BCBeEe93", + "0x7ef5e4062dcCaD29A6F8d5458590160536056C81", + "0x653d973b36137A5cB2fc304996E0af1F1afCC628", + "0x5F319CA6Ecf072A4d183edAa711Cd04dC225df19", + "0x4D32D90D6535bD4e7eaBaa27EE72932cB214BbfA", + "0x73b9f6a6e52aCE2797F0a6E52AAc530Ed1F2a2Af", + "0xaA3600788b72863ff51C8f0dB5F10bB65fbFeAB4", + "0xf93F0b770784602fC3079eb1D2fB1Ff488Bb02B0", + "0xC8Ddd59c496D04C4C060Ab5038d03d661DDC2617", + "0xc42c77b6B2A2B220b9502F357bBf51334Db3C93f", + "0x2615214F8200B526a7B1eACe03971F2672B48CF2", + "0x9d8d7220D060fd12Ca33336B7239688e366327dE", + "0x9e602c1920443F01Cb100a57A7F894df8Eb42f66", + "0x7e651F5f597436cD0fa941F5FF2cD45Ef3F2Fda8", + "0x8e30Dc2AEF957B1F7dd67B1b7bC651fFe7E17a06", + "0x597dC4159a4b85c086c3C679a0B6c8Fe2836886F", + "0x7fBdE8B27D2B4F164B66F2a9dc02bbD6697e5b19", + "0xf5819cC26F0481c9b86294B4c24027518a04BD5B", + "0x8e7D20638947132B0e6E1aFdE2da1B103aFF9280", + "0xCBA711BEF21496Cfd66323d9AEA8C8EFd0F43e9d", + "0xdfBaeeF21396BF205D4B7D23345155489072Cf9B", + "0x3B981fA5dD50237dAb6F96A417A6690B6f20FcC4", + "0x6C31212a23040998E1D1c157ACe3982aBDBE3154", + "0xCDdF772F8A3295C89DC37510E16e360ee2d29789", + "0x002B5dfB3C71E1dC97A2e5A0A7f69F3e7b83F269", + "0xAD7A185b2456d5AFD85838A50C7d8aCE3aB2f871", + "0x7993F18C91A9f68593d308C5846f380A2a374F46", + "0xc5d82775c9bc5272B1225DB8D62b7034e064BA91", + "0x8bfcF8cb383149D4Ef37e7A609cEc195CDCbE099", + "0xA515F7fB260095eebC860425493b8761B4FC9abd", + "0xaA95cA26c92b0634dF7a1A1504f579F13bFB7f9d", + "0xC2812325caD4C4C782CbbC1164e9373371D31dB2", + "0x4831DdB6502ca45dbEEDf58B47292061Cdb6050B", + "0x6733c60E6E02f9C8FA221Db1aeA018d80D949861", + "0xCaD3887923B39cD2b0B6d13538C4ecB7C5EE9825", + "0x4520cD8BC085B962eF8c0ec696ac9D3Ef1d8bf55", + "0x7D85fCbB505D48E6176483733b62b51704e0bF95", + "0x27259b0F4209e76f8C6Cf27106C9FF83BdC2E831", + "0xE04885c3f1419C6E8495C33bDCf5F8387cd88846", + "0x23ee51e614cBF138e4cAbA9EC5ed4fF7D27A8596", + "0x2cab4d881962D247218356B32aBc4AA5c46bA0d2", + "0x1c0A032954f20761E59138feE236204bECbb8bdb", + "0x701d0ECB3BA780De7b2b36789aEC4493A426010a", + "0x1Ec3C1f70E1D6bBDC84092ae86eAaDE495fdDB9b", + "0xB53b0255895c4F9E3a185E484e5B674bCCfbc076", + "0x770569f85346B971114e11E4Bb5F7aC776673469", + "0x8289432ACD5EB0214B1C2526A5EDB480Aa06A9ab", + "0xdca6F7CB3cF361C8dF8FDE119370F1b21b2fFf63", + "0x117e1EbB7D05545064850513021dF6ADe3C1690B", + "0x7fb43C99a26a9EA8ba841d58390BF1C2996EDFB0", + "0x84B5a60Df2d7e3397B3A4A3c6282f090304Aca26", + "0x72F434Fa010929656AeF58695dab85447E51Fbc6", + "0xA29b0D2F3b4555359A1bF684d700753b1b06cBc4", + "0x4318cC449b1cbE6d64dd82E16abE58C79E076C2B", + "0x8F48282e50B0210bd7c7DD69C54205E98b9Ef5D9", + "0xa305B293e44A82f3Cd489b5fB26084647bb5D8ae", + "0xd9e5De13eF1dBC4DFE0Ee1BB76276228b9B23d0f", + "0x4AcEEB7bF9ec8104CC2379f1E8D648Ee47249FCb", + "0x0743542070891051861f8D0a4550f97B43B0B89a", + "0x58aD805f26272C5Ba06D24Bd0E43c8a2d1c634D9", + "0xE6ED9C681967a4EA7Cef4486942b800139DfB000", + "0x51b9C1Df35B044b5c0099D1fD07EAb7cE38f325d", + "0x55DFFA17578e6bAcE42e4Bf8687A11A85cCfEF97", + "0x1FAE8f99E9F932BdBA910061590C2156eE512A91", + "0xA25207Bb8f8EC2423E2ddf2686A0CD2048352f3E", + "0x746bb7beFD31D9052BB8EbA7D5dD74C9aCf54C6d", + "0x38bc91AA6Aa434c4fae7E666F68C859292deEd95", + "0xA3aD5CFb4FF4B68e37A338Da200BA441C1850B5b", + "0x4bfb2c232F70c83136a3F206cd26Df2A0B605cEC", + "0xf5AB6B4a8d578807491ef59cE855982990932617", + "0x1Fdd220E14b59E26bf1888e8267C4C221983a0A6", + "0xE2D6AFF297b41881c1aEA9599F68AEDFAB38C651", + "0x7d547666209755FB833f9B37EebEa38eBF513Abb", + "0xb681B19bb1F7e9F3C2AE0EDeab368c2afaa4e590", + "0x7Eb84E42059F0D44269C50f4D3A280Fd307a6824", + "0x84f0620A547a4D14A7987770c4F5C25d488d6335", + "0x4Ae6a8A28c87b75e935a90D6128F2649C969c0D8", + "0xb79223E868871DBAc27E8E301f73734abd4Cc628", + "0x6F219Bd1167568aB67494A9067CbbB5679bf0022", + "0x9Ff548c1B3eA3dd123AFE39C759dDA548009B6C8", + "0x3085051F89666E7124e7Ab95b693Fc1E09770907", + "0xa25211B64D041F690C0c818183E32f28ba9647Dd", + "0x6166E1964447E0959bC7c8d543DB3ab82dB65044", + "0x76E059C6FF6bf9FFFD5f33AFdf4AB2FD511C9DF4", + "0x4CC9E6fABb800F083a2685501d1A30CdAbb4B2De", + "0x5f3371793285920351344a1EaaAA48d45e600652", + "0xAFE2b51592b89095A4cFb18da2B5914b528f4c01", + "0xe3F4F3aD70C1190EC480554bbc3Ed30285aE0610", + "0xE0D8926A51F9A1dD8E089D9a3DD88F88fFb2F1Dc", + "0xa6c366D97cb64708211f24310dFAd5363BC96a04", + "0xB7562F12E41C762CeCDA99d62Bd6EAC7b0C3B4c1", + "0x301605C95acbED7A1fD9C2c0DeEe964e2AFBd0C3", + "0x5d47e5D242a8F66a6286b0a2353868875F5d6068", + "0x0ea26051F7657d59418da186137141CeA90D0652", + "0x88f1706c20d94A4d1551C5F799C9E3380A24C3AC", + "0xFB40932271Fc9Db9DbF048E80697E2Da4AA57250", + "0x40Db8365d1252bcb06598927698238a99D39228E", + "0xaCf4C2950107eF9b1C37faA1F9a866C8F0da88b9", + "0x144c4E5027B69f7798B2B162D924BcAE5c149f15", + "0xeeE844540644b204f0005c063Ae95F244BF06a84", + "0x014607F2d6477bADD9d74bF2c5D6356e29a9b957", + "0x1E8eE48D0621289297693fC98914DA2EfDcE1477", + "0x4AdA1B9D9fe28aBd9585f58cfEeD2169A39e1c6b", + "0x31460f49EEA93Ef8255b42be019FB96F89Cf0c49", + "0x63A32F1595a68E811496D820680B74A5ccA303c5", + "0x022ca32d31da3Ef85922AAFD9aD29C5b2418172C", + "0x93B109C3c279bcBbB673Ed1ae1A8BB2dE8eEf9da", + "0x689476323Eb5e9A5DEd342F54B562fc2c156A522", + "0x1C9F765C579F94f6502aCd9fc356171d85a1F8D0", + "0xe0144FA05A0d32B5B1De10CcEe7211616B3E3EF0", + "0x6C965b656C450259a6D4d95A2E68Fb4319EecBc0", + "0xE36BD8C15a83b89E2E49806d7312846069755C63", + "0x59DDA36bD196Ec849838CE2163E6821f946b37Dc", + "0xDd31dB93082a3A71b98D37ba26230f8734Bd63C3", + "0x83c98211C50480e457a0dF930d2A56a891BC4d4b", + "0x11FA934f6754076AEb7Cf0A72a1c2D2518aA4C77", + "0x2B888954421b424C5D3D9Ce9bB67c9bD47537d12", + "0x2383A8b8cC8561a65871F1d2783B7C52e22B62c1", + "0xCED608Aa29bB92185D9b6340Adcbfa263DAe075b", + "0x841AD0AbAb2D33520ca236A2F5D8b038adDc12BA", + "0x76d2DDCe6b781e66c4B184C82Fbf4F94346Cfb0D", + "0xf21e38ac177B48fDE02dB7F2CA97466AE8Eae87D", + "0x7537Cb0AEe6a3483a7601ebf1084eD4df73166Ab", + "0x5f0bD06A71E038206ef3e5090eB448E9a9773772", + "0x3C0c7B44c1F9366271F5c491121a1F7d55d33eF5", + "0xa96a437eFb71bAF50A59027C340FA3362ef703F7", + "0x55bA9c90c37e3206570AC9dc872c0f053d155F77", + "0xC68bba423525576C7684e7ea25E7D5F079b1361E", + "0x78E87757861185Ec5e8C0EF6BF0C69Fa7832df6C", + "0xCb36F8580A36788A48518dEC95Ea458357E64E30", + "0x25854e2a49A6CDAeC7f0505b4179834509038549", + "0x639749b7b08aEe65039c21d8a411103C6ceBEBF0", + "0xF517529866d371F04780885923F739bc17694BFb", + "0xC728DEa8B2972E6e07493BE8DC2F0314F7dC3E98", + "0x33f6EE932cEa603Fafd6854827259bE172C91Da4", + "0x6D97d65aDfF6771b31671443a6b9512104312d3D", + "0xB7BaBe35CE543e2Cf2F615CB1c792a2025feb572", + "0x4D9e86a5AC368Aa4Df0473eF07e13Ec2Fbe04025", + "0xaa79B87DC8B046A5E4f7D03F1562D7fe5BF98737", + "0xE71FbB197BC8fD11090FA657C100d52Dbb407662", + "0xB22981bA3FE1De2325935c91a3B717168fB86714", + "0xf389dD1F828525b449D63D14157f2d3A25eE0a41", + "0x877B37D3E5467B4aAE7687Dd3480A46C8D3e16Be", + "0xf9e1D1e9F22c96752356AdFd377231528c7E851E", + "0x187089B33E5812310Ed32A57F53B3fAD0383a19D", + "0xF1659A2FD5007192314F9676e6a4a39FD1202160", + "0xFdd210ce1b829E837D9e034DAE0F0312F176cef6", + "0xaCE1f1c6c5c89AE3Fc3209ff92e7120fb74445aA", + "0x6Ceb397b68059Ca73049874D0a30c62500aE9877", + "0xC46c67Bb7E84490D7EbdD0b8ecDaca68Cf3823F4", + "0xbb2eb4c7eB36ECce7A3E6bc501590CE12c9c1050", + "0x9Cf251A782cE7310D5bec0fe0a1C2B826d962545", + "0x43930Ff04D18a5B59805151c1Eb403C55870641E", + "0xA270f5649A42feDfE66ddb3b0b50bebAe1e3DDB0", + "0xd3488EA0c1DC99a5d72F75c84004224f8b58694E", + "0x7aBa691D12D8eF8793F1643eBa66b69C70EC72f1", + "0x8558f502887a9a52c4B265d72327E0E529Ff790d", + "0xA906c85B7e809b79c5e69d485693B44d65B1B252", + "0x3abdC9ed5f5dE6A74CFeb42a82087C853E160E76", + "0x30C7F4F7504D6366916f669cd8E731ED4dF6C702", + "0xed8DB37778804A913670d9367aAf4F043AAd938b", + "0xc191a29203a83eec8e846c26340f828C68835715", + "0xa32aECda752cF4EF89956e83d60C04835d4FA867", + "0x059F7da59Ad1EB412B4d2fFc12E9B50Da91cFdb6", + "0x85BEad65c61dB8cF230b3ec30552B8b3E6388570", + "0xF3Ad97364bcCC3eA0582Ede58C363888f8C4ec85", + "0x3F87755E2974534888Ddb20A52dCE45Ef9f204AB", + "0x757CC91CcBB88cB0d78d6798D20051d39E5A7296", + "0xF553C8223cA8542Af9Db7b916Fe9dc7c28b73751", + "0x40f9bf922c23c43acdad71Ab4425280C0ffBD697", + "0x9600e2eE6377DAdad7299B120026661c336A5e6d", + "0x516fCA170bfE24BFC54e01F215EF85Fe9B5B798A", + "0x61C820e261717A5A0555488872F78ac7b9CE77Ec", + "0xEb263241eB948Cc0eB53A58bf743289D074F474F", + "0x841C11b14c428dd591093348B8Afa2652C863988", + "0x3c114973c0260290C2dbD40323327d996972FCeB", + "0x765a16ca391A6b9249cfA65bf2D14C38722198e3", + "0xC3268DDB8E38302763fFdC9191FCEbD4C948fe1b", + "0x6B92686c40747C85809a6772D0eda8e22a77C60c", + "0xc799bE8De03F20B2D3b101E6F6516D614e6fFe06", + "0x40Dc654af5cE40C122ffDC679fa8E8ca8b91556A", + "0xCE8D52c38d74B77a0aA361c48Fdce6b220A3370e", + "0xEfa4c696Ea2505ec038c9dDC849b1bf817d7f69d", + "0xf7253A0E87E39d2cD6365919D4a3D56D431D0041", + "0xcf79C7EaEC5BDC1A9e32D099C5D6BdF67E4cF6e8", + "0xff75E131c711e4310C045317779d39B3B4f718C4", + "0xdE2BE7C9C542c55a7a77489A3A7745493988947F", + "0xFeB3E0f50107f6cfB2EC8C2bC8287f2707E0E2Ea", + "0x6b759Bf480407D19c8903c16023c706868c29a2A", + "0x6E38911dA6Dd0379F1CaC396F74387c95A1f0D21", + "0x5a5D9aB7b1bD978F80909503EBb828879daCa9C3", + "0xe96056A9936C58e89D1703cF6bD97F134341EE44", + "0x4dD6720D2Bb8721A46bdF9a528704164578E03B9", + "0xE83B9A1B9056B21a01b85162E77AD76a42A1c64B", + "0xbeC48f1cCf82d8e4C983Ee00Ac2eC6B03B81d710", + "0xEFEdaf9c07E6eB56BB8F82f30018e4461B1c5F4c", + "0xB68da7fbF71383Afab240839287878539cFFf20b", + "0xfBDDB719cC7c795a1D9b7EA7aC11494A19b3231F", + "0x07506a5F48D71fDB34D3900fB086D43EF1B58FF9", + "0xa85cdd5478B7E525a808eF9707c3e33432cE1e7F", + "0xCf7C21DeD40f2Df85A564207A89b3379780d9CE3", + "0xd26b76e50f6510cdD4bf45d59279705f36946d23", + "0xdb7a41e39807E8C988859f150296Db92674b7dc7", + "0x719028736f10164c838Ef129936779eD739312f2", + "0xaBCdef0AbbA5D0106595174213156797bc0DB33E", + "0x3D2b8879f97e413b2609F9844A5fc8dB8FE4f6F8", + "0x81EbE8Ee7b51741fD5DaD31F6987E626A9bb8111", + "0x1D45c8fa65F6b18E7dAe04b2efEa332c55696DaA", + "0x978eB534b26CB8749D352a2C94EC21e659e4248d", + "0xa7CA400d49BBa87EB606ee05af93689BD21FaB99", + "0x65ad2BF7E09af2597C140dF6386a3003d0F5f8Ee", + "0x835918a3fBDf946364a9aee3114173865b712663", + "0x6073cFfc1D46b1eA57BA89A28074cA734aCD7003", + "0x2B13D52dFd33E2eBd13232866fDf96088e77d596", + "0x55F5601357f6e0B10a3386914c93916c6C9A368A", + "0xA1D5D2d931b532A0503e97f540f65ed256f374e6", + "0x6C9258895FFBE2178b3EdEfE09AF304a1e99bF2F", + "0x973375b099943cDdFd390022CeA90D4F1d0c493c", + "0x8A8C879D39A74fCE0593714956bB7Ed048A5c1BF", + "0x9c42B0c70D0dAF1211f3aab2A1E6EC5E717dE12a", + "0x81a6383041593c556d1c8e69e2749b35b5008F09", + "0xF41b98a4C32bB61468C8001E0C69Ef64ce6DEa57", + "0x8FaE81bb674c89cCDE35a386587333D074b57786", + "0xa8258ED271BB9be9d7E16c5818E45eF6F2577d92", + "0x1e90474D2E83e7B7dD45553156Beb316845E66A4", + "0x2cCbbC4c10F5d807FDd447219B57D0b883a28DC8", + "0x1bBeAc736875c5043486A8a4374E6B5616eC8883", + "0x95add3DfEF3AE0A832607Dc71C4A9C6A6C2D7Eb7", + "0x744c6Eed427aF293b0106B46700fdDD3C9f62Eef", + "0x743Ec55fc166D24D2FD0211fb6Ce53926D0Ff3b1", + "0xDd03d2434C02c6BfFb097b7130528F9568b6C70d", + "0x97C12EFA574923E3ee445370d2dE432332857110", + "0xB69951a0642b55CD5731535ed5B290Fa49D3454A", + "0xBA56878729540404dE2aa14561b451aE2350744a", + "0x8D247f4Fbbe81429d3D164a5c9Ae0063210edBdC", + "0x850a146D7478dAAa98Fc26Fd85e6A24e50846A9d", + "0xfE1552DA65FAcAaC5B50b73CEDa4C993e16d4694", + "0x9705FE3586a7D768Fee061aAfE9384b1D4B8F2D8", + "0x5554672e67bA866B9861701D0e0494AB324aD19A", + "0xacc5c1e73d70F7F9622De2d574885Ce8E6981033", + "0xbe9E7b0ed19526544B55b697107231f9467a805f", + "0x172DBab6f5E62A1FE7E2bA5eA1624ADB33e0aa14", + "0x96725Fa2F9A0b5bAf80fC36C20C2cA79d86424ed", + "0xa392cCadABFf735dbFF69dC93d7C13f34A30611b", + "0xEbF0e04E47F726D0f44801dFEC5e705aDcd6694b", + "0xC0891e8FCeA09680BFe9170809fad1BCCa10b96b", + "0xA21000E7A5A2A2Bd9329428A859f9d7dcE0f0961", + "0x9A387307F7508DE113092BaFC5CB4B3AE0706521", + "0xBA719E0197470A790726075fD98EDEF04E2467af", + "0xda08BE028304db1A73a13Bce7C943127C2E393dB", + "0xfB4a965A35603010FeAcC648cA022Cb6A12D33F5", + "0x3Aa73ed90e9f0CEd87ff99CB60cA79019279e6CE", + "0x150bB505A9259b0be44FFb15415C79199E83c445", + "0xB170A41F2523220A12F84f17A54bD31953D98027", + "0x2Fcd65d9c8078644adCf1CB0cd70A1b61F3F9C5b", + "0x73006C818880d07dD510e165C3De3E74F2407187", + "0x747e6ABc102222f1dF65C662540dDf471241a644", + "0xeeEe5D271A56Aa09C4F8862aF514ADD3E882857c", + "0x98Ad82AB467bc8c70e0CC183a5826d903751b7d8", + "0xC624434420f6CbE835D6358A8223b78432773cEd", + "0x848e313d4b25bC0B48CaFdB6A72391E892E6A247", + "0x0025Ab2d69F6c2C3Ffac32Ab6A16e18c807518B8", + "0x2efe744ecc4F6BD55538da57D09DAE895C95b223", + "0xBc6d82D8d6632938394905Bb0217Ad9c673015d1", + "0xe1555c6EE61366a3f90135Dc704Acd25C3247ACA", + "0x2f51E78ff8aeC6A941C4CEeeb26B4A1f03737c50", + ] +) diff --git a/backend/app/modules/user/antisybil/service/initial.py b/backend/app/modules/user/antisybil/service/initial.py index d74318630b..a9ed1f5a5a 100644 --- a/backend/app/modules/user/antisybil/service/initial.py +++ b/backend/app/modules/user/antisybil/service/initial.py @@ -1,10 +1,14 @@ from flask import current_app as app -from typing import Optional, Tuple +from eth_utils.address import to_checksum_address +from typing import Dict, Optional, Tuple + +import json from datetime import datetime from typing import List +from app.constants import GUEST_LIST, GUEST_LIST_STAMP_PROVIDERS from app.extensions import db from app.exceptions import ExternalApiException, UserNotFound, AddressAlreadyDelegated from app.context.manager import Context @@ -23,6 +27,7 @@ class GitcoinPassportAntisybil(Model): def get_antisybil_status( self, _: Context, user_address: str ) -> Optional[Tuple[float, datetime]]: + user_address = to_checksum_address(user_address) try: score = database.user_antisybil.get_score_by_address(user_address) except UserNotFound as ex: @@ -31,12 +36,14 @@ def get_antisybil_status( ) raise ex if score is not None: + if user_address in GUEST_LIST and not _has_guest_stamp_applied_by_gp(score): + score.score = score.score + 21.0 return score.score, score.expires_at return None def fetch_antisybil_status( self, _: Context, user_address: str - ) -> (float, datetime, any): + ) -> Tuple[float, datetime, any]: score = issue_address_for_scoring(user_address) def _retry_fetch(): @@ -45,7 +52,7 @@ def _retry_fetch(): raise ExternalApiException("GP: scoring is not completed yet", 503) if score["status"] != "DONE": - score = retry_request(self._retry_fetch, 200) + score = retry_request(_retry_fetch, 200) all_stamps = fetch_stamps(user_address)["items"] cutoff = datetime.now() @@ -76,6 +83,19 @@ def _verify_address_is_not_delegated(self, user_address: str): raise AddressAlreadyDelegated() +def _has_guest_stamp_applied_by_gp(score: Dict) -> bool: + def get_provider(stamp) -> str: + return stamp["credential"]["credentialSubject"]["provider"] + + all_stamps = json.loads(score.stamps) + stamps = [ + stamp + for stamp in all_stamps + if get_provider(stamp) in GUEST_LIST_STAMP_PROVIDERS + ] + return len(stamps) > 0 + + def _parse_expiration_date(timestamp_str: str) -> datetime: gp_api_formats = ["%Y-%m-%dT%H:%M:%S.%fZ", "%Y-%m-%dT%H:%M:%SZ"] for format_str in gp_api_formats: diff --git a/backend/migrations/versions/5d3bf271b78d_update_uq_score_for_guestlist.py b/backend/migrations/versions/5d3bf271b78d_update_uq_score_for_guestlist.py new file mode 100644 index 0000000000..464f5ae158 --- /dev/null +++ b/backend/migrations/versions/5d3bf271b78d_update_uq_score_for_guestlist.py @@ -0,0 +1,518 @@ +"""update uq score for guestlist + +Revision ID: 5d3bf271b78d +Revises: 19f6b4f5ce2e +Create Date: 2024-07-19 14:11:00.850135 + +""" +from alembic import op +import sqlalchemy as sa + +from eth_utils import to_checksum_address + +revision = "5d3bf271b78d" +down_revision = "19f6b4f5ce2e" +branch_labels = None +depends_on = None + + +def upgrade(): + # Guest-list is a list of stings that represent user addresses + # For all users in the Guest-list, if they have a UQ score, update it to 1.0 only for epoch 4 + query = f""" + UPDATE uniqueness_quotients + SET score = '1.0' + WHERE score = '0.2' AND epoch = 4 AND user_id IN ( + SELECT id FROM users WHERE address IN ( + {", ".join([f"'{address}'" for address in user_addresses])} + ) + ); + """ + op.execute(query) + + +def downgrade(): + query = f""" + UPDATE uniqueness_quotients + SET score = '0.2' + WHERE score = '1.0' AND epoch = 4 AND user_id IN ( + SELECT id FROM users WHERE address IN ( + {", ".join([f"'{address}'" for address in user_addresses])} + ) + ); + """ + op.execute(query) + + +raw_addresses = [ + "0x747e6ABc102222f1dF65C662540dDf471241a644", + "0x16f3f2f0ba34973937a1ebb989a295ca106b67c7", + "0xbb5935daafbacae82c8d2ca8377f16073d70061a", + "0xba84b5ca750b33dfaddbfdd1b7c6887885a34977", + "0x4e9a05226993f094a56a3472c8c816f2599423a6", + "0x40de3299bd8a10d8ac3f32c1a55de40640cf9b75", + "0xc33f87697ef41e0e95e7a55d1ec8180f04088578", + "0xcbc924183bc32d02746fa8d38843b5ce08662eb4", + "0xdc9c5e34959ec3643af1e1d34a83d6b251aab1ef", + "0x762bbc211990d0a356f35e4d500843f59d223c2e", + "0x55187a1165ebb441a1bf227fff1eb0d32a65bc46", + "0x7ae59f3f2b2e5f3842b50a15bcb5247c5de881be", + "0x59072b3a3287f4a75cadfb36d671a2f0d1959b09", + "0x4a5da2a1d3258df8ffb431cf0110fe9b98adeebf", + "0x514a9771af8afe71057666b680238dfbea578d65", + "0xe70055e9575f15a6f51f3068901d73ac63952adf", + "0x9e831b58001e2b69f70c892e4f8ce9d2118b7e00", + "0x51c1c7f1e168a36bf1fabfd91e98b43476a6b14d", + "0x33878e070db7f70d2953fe0278cd32adf8104572", + "0x3df13b9bd79158f0cccddd0833cf774178e3d2e9", + "0xb9573982875b83aadc1296726e2ae77d13d9b98f", + "0xe862e2c1ca94eacfede3c95a217c15ef0086a29d", + "0x0442a9abbc93058a873c371f21cc366338254a88", + "0x0194325bf525be0d4fbb0856894ced74da3b8356", + "0x399e0ae23663f27181ebb4e66ec504b3aab25541", + "0x9f729294b308f79243285348a7be3f58ae5ed31a", + "0xb62e762af637b49eb4870bce8fe21bfff189e495", + "0x5725a458b319d73b8ec84c47de80620e7b191b0c", + "0x57ccc081824b43b75986727875929af3a6ad721c", + "0xf13e477365b0faa64130da2ff663aab20d32d929", + "0xfd868db0696ef762351f8421535cc5f9f423b23c", + "0x30043aabbcebbd887437ec4f0cfe6d4c0eb5cc64", + "0xaa01dec5307cf17f20881a3286dcaa062578cea7", + "0x3ffd0c300fa4a021364ae7e85a7b0d3a02133f99", + "0xbea26de685ef828b60ca53b40ecc9bab35645fdf", + "0x4103cfcb300599dfcb31dbc95d919592619b4eac", + "0x22baac1e95efc010e35d5ed643bb16c9db254a11", + "0x686a484bc2e2be79f358c7055e8539a69413a3ed", + "0x073a360c372fd51bd6e56b4a4d73790fdaec4641", + "0xdd0206010ca82ff22303b58863b3a6f3006c86c4", + "0x25fa68a4c340202737edbc67fd1a2ec8de872db6", + "0x5b655eda7d101f98934392cc3610bcb25b633789", + "0x32cefb2dc869bbfe636f7547cda43f561bf88d5a", + "0xa4369e39e3ed13593adb0142a1ea5d08abdf99c4", + "0xa8f0048a0d1a04663ca5010d0beac5bcaeea0eef", + "0x65f632cfe8015b7ae6976e549645ed04cde60fe4", + "0xb35e0a0d00c640ab75fad3cf3b83264bc64d23ec", + "0xafa3e6e29d99337b166b83fb24ba17b19764b49d", + "0x57dd1517c12659365e59f71129fa9b1611dd18af", + "0x9120ffd5d04ca4b26aabce611989a8f026dc099a", + "0x2ac6a3561a43f06d62602ef9728c2b9eec393326", + "0x297aa50d0557c865f6c9b0aa0a91f41c26e55ee6", + "0x9ff46343d0b652d6e766f85f9ae91653869349a5", + "0xed36bf0b2b17768e782db2ece6a327055b2f3e9c", + "0xc28d2fdfe6d5a482d32f855457bb5f8cacdb32b1", + "0x1d44404c1c53991ec33095225da173d544cd4af3", + "0x5d9fbd984b9cec714a4b14c38ea83bbc82d06d69", + "0x5bc0aebdbab698e12fd33a2e133e6858fe6cdd76", + "0x66805d8b82664acab4cbe0c0498889dde9af7841", + "0xaf7610578f54c7de7563655aaf461e2cbecb08c6", + "0x6c3f373baec5d2d0fb3c82c4f3db5e48873ae363", + "0x015122a625b45f68e6d795c0ab99fc7107e4c3b9", + "0x508a4f07b60ba0940283cd4e32d5deb0cc38adf7", + "0xb150c9bed10a8c62997d58a81c4e1fa75160643e", + "0x212647c56ba10ee429a838bc567dfb03a8d054ba", + "0x73306dab0d39a4d47df4972c7022cb2cac075d4e", + "0x914d5d84aaa064207c2c31014426227405edab41", + "0x3fbcec42405391b1fb377664daa5ae7bc9ba7bf5", + "0x8c8296a0042e842cb865dffd94678c941fd24bae", + "0xf5c2087877218aa979dd0e2e5108837199af44d2", + "0x529dc928e67d8a43133d10769b308f1d5a629401", + "0xf1bb436c29e46b1987bc825879ffc9c34ab97f99", + "0xfdde7ae208b3596f1982d66f6bae4cdabf29244b", + "0x02e4cc9fff7566563618fb21b3bb10eab4b3d726", + "0xd8821dbbcb8ea0c14bd1f0acbfbebb3fd984269b", + "0x31d23825afbda5b6b1690bbdbbb8117b5ea0f8e4", + "0x731022d6de647991864203a35dfad1a192240d07", + "0xeb5e0b8e80fce271c13f533fa728d7bb03cafa4c", + "0xfc967de4e029fdcd16b418dac2147d282c93085b", + "0x801a6d6dbc1e40466e131aa21d951629a9efab4e", + "0x4892139de0e73141438d9e55d593171c0cc6b143", + "0x8124efc94c951cf41d4b0b42794c678458a00726", + "0x81cc36dda894256aa95458f78b4029381b09bdfb", + "0x4dcb2bca3450b427f3d1b424c885259d05363080", + "0x7dd8030f9d33af4a40ee074f990892e825132e61", + "0x432c53218a11bed08d238cf84ff547ce4fe933ab", + "0xe77ad9c5af60332d24e5531b51a6b7f61d0b8703", + "0x0f792e55668ad78476d4b563e6eb1228d636a71e", + "0x583bbada56bb535bcbb31877a620a6ff2a25cea5", + "0x5c0e777dc8f3de6b0911b44dbbdd8bf71b2e8e38", + "0x8a4a50b13fd2cb36feb96c408cb98b4c9f2b8f25", + "0x1e55c85801a2c4f0bec57c84742a8ef3d72de57b", + "0x26d3be736ab6b5d8a3266ffcc0895ddc1bc19a38", + "0x809c9f8dd8ca93a41c3adca4972fa234c28f7714", + "0xfb94f39b150ae661f85762154c0cadc65e083791", + "0x4b7c0da1c299ce824f55a0190efb13663442fa2c", + "0x77e64560bd6c323c075f206a5ab9dd6850f31609", + "0x0f46540678c7e6d2ef983b382cc07fa815ab148c", + "0x82073f802547feeec0fd49719a3d7697fb66076a", + "0xbaab83de8dba764bf02a530cad33555bd23eba22", + "0x890a0047f8d573347872cb6c019f86552f2367d6", + "0x14d92832265eeafdef9e526356fefc90105966c3", + "0x512b436cb2ed6016e80d4f89ca578f99dbbccb61", + "0x696ee4ae0b15feae8ed1afc865930e0ea65b1f3f", + "0xbb4d885fd41c807e8ecc2dd9e6295a7f96adb0eb", + "0xb1de969883b1fdd90a43ff475a5171a3cfefe76d", + "0x7dbf6820d32cfbd5d656bf9bff0def229b37cf0e", + "0xfe2e3ccee9714b29ab2fb4e940e52672194815fc", + "0x57fb3f4b027fbadbd8d20eb5e48feb1e2b02df30", + "0x9ae494fbac34682c122a1d4e3d6ae1eb5404a469", + "0xb2b9300475af157676c44ee64d39a5eb3c294dbd", + "0x01bc28e036b6e75247fe8f49f0a8b9410b19d851", + "0xcce9a28b570946123f392cf1dbfa6d2d5e636a1f", + "0xb2a3b5b9d2c0f07cba328b58737147cfc172eb9f", + "0xcc3d7f9fe6946979215a901bba385a88fdabbbf4", + "0x38f80f8f76b1c44b2beefb63bb561f570fb6ddb6", + "0xd82803b7b9a5eb1d5fc558fd619afc6c031cd0b1", + "0x844aeed1b294ef9632c18e73f57ef77d0a23d0e2", + "0x9cd7d1981b3e15a2dee4d512ac60e0579ae18546", + "0xebcd250474c27cbad3c56f3f34e08f97b370ac2d", + "0xda47bdcc48f26fb4709f90316341d9104cb1fb89", + "0x5cbb6ad79008908aa125667d1300558d9253b589", + "0x1078daa844cdf1edb51e5189c8b113b80a6a6957", + "0x8341c4106523b49fc247f84e412bb2af5597038f", + "0xce57ebed9ac38402dcaa44f65a1c9b04e26b8283", + "0x2dd2036c9db2ada2739509af0047c00c8b9291ef", + "0xa77294828d42b538890fa6e97adffe9305536171", + "0x8da48e5846c06b558970acd42edc7da8799481e4", + "0x50418699cb44bfda9c9afc9b7a0b0d244d8927d2", + "0x936d69abcd9acdc89455eefaf744044ffc1ca660", + "0x90c32e6b29794fd7f5bba2bbee74e924078b3f9b", + "0x362b7e0599e950b921ca9d86336ca409208ffdec", + "0xd98ad1fd4aa0e1c876d91968d1385aa9e1aa98df", + "0xd2602c7bdfc9f413974e944280bbfae275d1b1b6", + "0x731a2e51ebfaebacf8477e992cdeb1e8eacf519c", + "0x072d63796c4fe69b306a23e1d01156d51f7b3e16", + "0x051010142a0b9de7f0fd8fb31d085407287f6381", + "0x8498843f6d9046f7b59482978e152d61869203bc", + "0xb48ef8e4e7bef79ddf64d4424151f003a59bfbfb", + "0xb423a138fd171c28d90a5883a01ec92ff3d63609", + "0xafa3a2528e8baad576a83ffc52db9f100debe307", + "0x055fda7eb509cc338c898b0f698b7624387ab813", + "0x0b3bd83e857997b370fadc8504fb712244f6786c", + "0x8d12a71cb933a4222d42fecbb4ba9c15e455305b", + "0xdef3d19ff35a42f5b8e3c706c8fd287de72e6d15", + "0x19a2bc678785bad6a947a87494d480dad57711c6", + "0x2c3e79d3dce90fb0886c89ec602e61757e589a94", + "0xe8aa836a597a66724d678860d105561c13e95bfa", + "0x3352a3277d2b74a773fa6e68a625fcb18e4fc282", + "0x2df292af809fd693d94c7d17e36be352e15bb98a", + "0x269aa10398aaa695259c3e8211ab27a15004110c", + "0x02d9c84a495986b8b3c3347ad16849dcb1b9793e", + "0x8fda1daa6a674c1726d1896e3054b9a82d123f12", + "0x1021e61f2cdd8bb295b0e64a20ebb7d8ec3734bf", + "0x58d7d9c971a613117e493062bec1a6a5484f2780", + "0x2bb96f44b9709b02189a50b377755edc30bc65c7", + "0x7be20b02095944657275ed608615a39931d783f2", + "0x4aa51a723882ee676fec444d4561c5ee16c339e9", + "0x1b243d42f53924118646efaec5b3f6116b563960", + "0x01b7348ec3fb20ab1f40b97cc82df44aed360768", + "0xbf4c0104dbfb028f3484cfac17bb22aa15e5c7e2", + "0xcc3b817d4aba7698eaafb4c68e7688cf61b0bf46", + "0x572e1b86471c900cd16afa9cbb7701862d0e70cb", + "0x602ac8c3f61b351be325feeb58842ef557431c2e", + "0x8d0cd1ab81eada4f92c7cb5c8dbc25c69cc296ad", + "0xae2c7ab762317db453317b70f1f40145755fafb7", + "0x7bdae9aabe238188c4882d48a3aee21288a38ed0", + "0x96e4152f00894f677d860023b9784d578bc1c145", + "0xf572c9b11e757d3580c7c7310630cd488e8ea736", + "0x3769092dbfa6eb34434fb5b7cf0eb06e710728f3", + "0xca72c93172ba6eff168e59e7f17c3c7a8fea9b62", + "0x1c0accc24e1549125b5b3c14d999d3a496afbdb1", + "0x7fc80fad32ec41fd5cfcc14eee9c31953b6b4a8b", + "0x5d36a202687fd6bd0f670545334bf0b4827cc1e2", + "0xe64113140960528f6af928d7ca4f45d192286a7a", + "0xf6b6f07862a02c85628b3a9688beae07fea9c863", + "0xd779afee481e3df5cd0544f0e4353cf534fd99db", + "0x183bdb344a07ee3d27f07ac4799a56e4a2fe5439", + "0xa8cadc2268b01395f8573682fb9dd00bd582e8a0", + "0x75535661ab25a468dfb3137320a7568fecda4832", + "0xd37ed782323a82e5bd55a92500e48ff5efcc415e", + "0x03bb5bc3c8fdab212a6b2b347a049133dfcb3a47", + "0x61987699055394c65355f2797d3e4e589f7fabf4", + "0x2bc12061c8912505978472c21d4a23db43af62aa", + "0xad7575aefd4d64520c3269fd24eae1b0e13dbe7b", + "0x0d89421d6eec0a4385f95f410732186a2ab45077", + "0x04c0cd38b8c203b14ef2b7b8d736d69b938aff71", + "0x0cf30daf2fb962ed1d5d19c97f5f6651f3b691c1", + "0x6eeb37b9757dca963120f61c7e0e0160469a44d3", + "0x616cad18642f45d3fa5fcaad0a2d81764a9cba84", + "0xdc1d963d21c9c1bff7b6bea6e10080daa9b4fc51", + "0x8073639b11994c549eda58fc3cd7132a72aadf10", + "0xe52c39327ff7576baec3dbfef0787bd62db6d726", + "0x8f21bd39fcaea3a729d46339a383081ecb7e84e0", + "0x8fb7087336678f36e42313f6130567a109a8e73d", + "0x276e69cdd336001afef07075859a93078496c3c1", + "0x954f716e6de059360d278b773138f8e046696721", + "0x997d410b26cdd17b0750f2c1751e59cbcfae446f", + "0xe8b6b71f3b1e6d2ad406d2cf36b1f2c567342df1", + "0x83108a0653a14eaeb8301e7b10a37cfac39c82f6", + "0xf95d9549b3ab9470d306a6413aa45082e8b66043", + "0x82d92494f6fffb17a1ddffd9b7d88d1d0a360009", + "0xa19947da8b916f64ac6f362cec9001d8bcbeee93", + "0x7ef5e4062dccad29a6f8d5458590160536056c81", + "0x653d973b36137a5cb2fc304996e0af1f1afcc628", + "0x5f319ca6ecf072a4d183edaa711cd04dc225df19", + "0x4d32d90d6535bd4e7eabaa27ee72932cb214bbfa", + "0x73b9f6a6e52ace2797f0a6e52aac530ed1f2a2af", + "0xaa3600788b72863ff51c8f0db5f10bb65fbfeab4", + "0xf93f0b770784602fc3079eb1d2fb1ff488bb02b0", + "0xc8ddd59c496d04c4c060ab5038d03d661ddc2617", + "0xc42c77b6b2a2b220b9502f357bbf51334db3c93f", + "0x2615214f8200b526a7b1eace03971f2672b48cf2", + "0x9d8d7220d060fd12ca33336b7239688e366327de", + "0x9e602c1920443f01cb100a57a7f894df8eb42f66", + "0x7e651f5f597436cd0fa941f5ff2cd45ef3f2fda8", + "0x8e30dc2aef957b1f7dd67b1b7bc651ffe7e17a06", + "0x597dc4159a4b85c086c3c679a0b6c8fe2836886f", + "0x7fbde8b27d2b4f164b66f2a9dc02bbd6697e5b19", + "0xf5819cc26f0481c9b86294b4c24027518a04bd5b", + "0x8e7d20638947132b0e6e1afde2da1b103aff9280", + "0xcba711bef21496cfd66323d9aea8c8efd0f43e9d", + "0xdfbaeef21396bf205d4b7d23345155489072cf9b", + "0x3b981fa5dd50237dab6f96a417a6690b6f20fcc4", + "0x6c31212a23040998e1d1c157ace3982abdbe3154", + "0xcddf772f8a3295c89dc37510e16e360ee2d29789", + "0x002b5dfb3c71e1dc97a2e5a0a7f69f3e7b83f269", + "0xad7a185b2456d5afd85838a50c7d8ace3ab2f871", + "0x7993f18c91a9f68593d308c5846f380a2a374f46", + "0xc5d82775c9bc5272b1225db8d62b7034e064ba91", + "0x8bfcf8cb383149d4ef37e7a609cec195cdcbe099", + "0xa515f7fb260095eebc860425493b8761b4fc9abd", + "0xaa95ca26c92b0634df7a1a1504f579f13bfb7f9d", + "0xc2812325cad4c4c782cbbc1164e9373371d31db2", + "0x4831ddb6502ca45dbeedf58b47292061cdb6050b", + "0x6733c60e6e02f9c8fa221db1aea018d80d949861", + "0xcad3887923b39cd2b0b6d13538c4ecb7c5ee9825", + "0x4520cd8bc085b962ef8c0ec696ac9d3ef1d8bf55", + "0x7d85fcbb505d48e6176483733b62b51704e0bf95", + "0x27259b0f4209e76f8c6cf27106c9ff83bdc2e831", + "0xe04885c3f1419c6e8495c33bdcf5f8387cd88846", + "0x23ee51e614cbf138e4caba9ec5ed4ff7d27a8596", + "0x2cab4d881962d247218356b32abc4aa5c46ba0d2", + "0x1c0a032954f20761e59138fee236204becbb8bdb", + "0x701d0ecb3ba780de7b2b36789aec4493a426010a", + "0x1ec3c1f70e1d6bbdc84092ae86eaade495fddb9b", + "0xb53b0255895c4f9e3a185e484e5b674bccfbc076", + "0x770569f85346b971114e11e4bb5f7ac776673469", + "0x8289432acd5eb0214b1c2526a5edb480aa06a9ab", + "0xdca6f7cb3cf361c8df8fde119370f1b21b2fff63", + "0x117e1ebb7d05545064850513021df6ade3c1690b", + "0x7fb43c99a26a9ea8ba841d58390bf1c2996edfb0", + "0x84b5a60df2d7e3397b3a4a3c6282f090304aca26", + "0x72f434fa010929656aef58695dab85447e51fbc6", + "0xa29b0d2f3b4555359a1bf684d700753b1b06cbc4", + "0x4318cc449b1cbe6d64dd82e16abe58c79e076c2b", + "0x8f48282e50b0210bd7c7dd69c54205e98b9ef5d9", + "0xa305b293e44a82f3cd489b5fb26084647bb5d8ae", + "0xd9e5de13ef1dbc4dfe0ee1bb76276228b9b23d0f", + "0x4aceeb7bf9ec8104cc2379f1e8d648ee47249fcb", + "0x0743542070891051861f8d0a4550f97b43b0b89a", + "0x58ad805f26272c5ba06d24bd0e43c8a2d1c634d9", + "0xe6ed9c681967a4ea7cef4486942b800139dfb000", + "0x51b9c1df35b044b5c0099d1fd07eab7ce38f325d", + "0x55dffa17578e6bace42e4bf8687a11a85ccfef97", + "0x1fae8f99e9f932bdba910061590c2156ee512a91", + "0xa25207bb8f8ec2423e2ddf2686a0cd2048352f3e", + "0x746bb7befd31d9052bb8eba7d5dd74c9acf54c6d", + "0x38bc91aa6aa434c4fae7e666f68c859292deed95", + "0xa3ad5cfb4ff4b68e37a338da200ba441c1850b5b", + "0x4bfb2c232f70c83136a3f206cd26df2a0b605cec", + "0xf5ab6b4a8d578807491ef59ce855982990932617", + "0x1fdd220e14b59e26bf1888e8267c4c221983a0a6", + "0xe2d6aff297b41881c1aea9599f68aedfab38c651", + "0x7d547666209755fb833f9b37eebea38ebf513abb", + "0xb681b19bb1f7e9f3c2ae0edeab368c2afaa4e590", + "0x7eb84e42059f0d44269c50f4d3a280fd307a6824", + "0x84f0620a547a4d14a7987770c4f5c25d488d6335", + "0x4ae6a8a28c87b75e935a90d6128f2649c969c0d8", + "0xb79223e868871dbac27e8e301f73734abd4cc628", + "0x6f219bd1167568ab67494a9067cbbb5679bf0022", + "0x9ff548c1b3ea3dd123afe39c759dda548009b6c8", + "0x3085051f89666e7124e7ab95b693fc1e09770907", + "0xa25211b64d041f690c0c818183e32f28ba9647dd", + "0x6166e1964447e0959bc7c8d543db3ab82db65044", + "0x76e059c6ff6bf9fffd5f33afdf4ab2fd511c9df4", + "0x4cc9e6fabb800f083a2685501d1a30cdabb4b2de", + "0x5f3371793285920351344a1eaaaa48d45e600652", + "0xafe2b51592b89095a4cfb18da2b5914b528f4c01", + "0xe3f4f3ad70c1190ec480554bbc3ed30285ae0610", + "0xe0d8926a51f9a1dd8e089d9a3dd88f88ffb2f1dc", + "0xa6c366d97cb64708211f24310dfad5363bc96a04", + "0xb7562f12e41c762cecda99d62bd6eac7b0c3b4c1", + "0x301605c95acbed7a1fd9c2c0deee964e2afbd0c3", + "0x5d47e5d242a8f66a6286b0a2353868875f5d6068", + "0x0ea26051f7657d59418da186137141cea90d0652", + "0x88f1706c20d94a4d1551c5f799c9e3380a24c3ac", + "0xfb40932271fc9db9dbf048e80697e2da4aa57250", + "0x40db8365d1252bcb06598927698238a99d39228e", + "0xacf4c2950107ef9b1c37faa1f9a866c8f0da88b9", + "0x144c4e5027b69f7798b2b162d924bcae5c149f15", + "0xeee844540644b204f0005c063ae95f244bf06a84", + "0x014607f2d6477badd9d74bf2c5d6356e29a9b957", + "0x1e8ee48d0621289297693fc98914da2efdce1477", + "0x4ada1b9d9fe28abd9585f58cfeed2169a39e1c6b", + "0x31460f49eea93ef8255b42be019fb96f89cf0c49", + "0x63a32f1595a68e811496d820680b74a5cca303c5", + "0x022ca32d31da3ef85922aafd9ad29c5b2418172c", + "0x93b109c3c279bcbbb673ed1ae1a8bb2de8eef9da", + "0x689476323eb5e9a5ded342f54b562fc2c156a522", + "0x1c9f765c579f94f6502acd9fc356171d85a1f8d0", + "0xe0144fa05a0d32b5b1de10ccee7211616b3e3ef0", + "0x6c965b656c450259a6d4d95a2e68fb4319eecbc0", + "0xe36bd8c15a83b89e2e49806d7312846069755c63", + "0x59dda36bd196ec849838ce2163e6821f946b37dc", + "0xdd31db93082a3a71b98d37ba26230f8734bd63c3", + "0x83c98211c50480e457a0df930d2a56a891bc4d4b", + "0x11fa934f6754076aeb7cf0a72a1c2d2518aa4c77", + "0x2b888954421b424c5d3d9ce9bb67c9bd47537d12", + "0x2383a8b8cc8561a65871f1d2783b7c52e22b62c1", + "0xced608aa29bb92185d9b6340adcbfa263dae075b", + "0x841ad0abab2d33520ca236a2f5d8b038addc12ba", + "0x76d2ddce6b781e66c4b184c82fbf4f94346cfb0d", + "0xf21e38ac177b48fde02db7f2ca97466ae8eae87d", + "0x7537cb0aee6a3483a7601ebf1084ed4df73166ab", + "0x5f0bd06a71e038206ef3e5090eb448e9a9773772", + "0x3c0c7b44c1f9366271f5c491121a1f7d55d33ef5", + "0xa96a437efb71baf50a59027c340fa3362ef703f7", + "0x55ba9c90c37e3206570ac9dc872c0f053d155f77", + "0xc68bba423525576c7684e7ea25e7d5f079b1361e", + "0x78e87757861185ec5e8c0ef6bf0c69fa7832df6c", + "0xcb36f8580a36788a48518dec95ea458357e64e30", + "0x25854e2a49a6cdaec7f0505b4179834509038549", + "0x639749b7b08aee65039c21d8a411103c6cebebf0", + "0xf517529866d371f04780885923f739bc17694bfb", + "0xc728dea8b2972e6e07493be8dc2f0314f7dc3e98", + "0x33f6ee932cea603fafd6854827259be172c91da4", + "0x6d97d65adff6771b31671443a6b9512104312d3d", + "0xb7babe35ce543e2cf2f615cb1c792a2025feb572", + "0x4d9e86a5ac368aa4df0473ef07e13ec2fbe04025", + "0xaa79b87dc8b046a5e4f7d03f1562d7fe5bf98737", + "0xe71fbb197bc8fd11090fa657c100d52dbb407662", + "0xb22981ba3fe1de2325935c91a3b717168fb86714", + "0xf389dd1f828525b449d63d14157f2d3a25ee0a41", + "0x877b37d3e5467b4aae7687dd3480a46c8d3e16be", + "0xf9e1d1e9f22c96752356adfd377231528c7e851e", + "0x187089b33e5812310ed32a57f53b3fad0383a19d", + "0xf1659a2fd5007192314f9676e6a4a39fd1202160", + "0xfdd210ce1b829e837d9e034dae0f0312f176cef6", + "0xace1f1c6c5c89ae3fc3209ff92e7120fb74445aa", + "0x6ceb397b68059ca73049874d0a30c62500ae9877", + "0xc46c67bb7e84490d7ebdd0b8ecdaca68cf3823f4", + "0xbb2eb4c7eb36ecce7a3e6bc501590ce12c9c1050", + "0x9cf251a782ce7310d5bec0fe0a1c2b826d962545", + "0x43930ff04d18a5b59805151c1eb403c55870641e", + "0xa270f5649a42fedfe66ddb3b0b50bebae1e3ddb0", + "0xd3488ea0c1dc99a5d72f75c84004224f8b58694e", + "0x7aba691d12d8ef8793f1643eba66b69c70ec72f1", + "0x8558f502887a9a52c4b265d72327e0e529ff790d", + "0xa906c85b7e809b79c5e69d485693b44d65b1b252", + "0x3abdc9ed5f5de6a74cfeb42a82087c853e160e76", + "0x30c7f4f7504d6366916f669cd8e731ed4df6c702", + "0xed8db37778804a913670d9367aaf4f043aad938b", + "0xc191a29203a83eec8e846c26340f828c68835715", + "0xa32aecda752cf4ef89956e83d60c04835d4fa867", + "0x059f7da59ad1eb412b4d2ffc12e9b50da91cfdb6", + "0x85bead65c61db8cf230b3ec30552b8b3e6388570", + "0xf3ad97364bccc3ea0582ede58c363888f8c4ec85", + "0x3f87755e2974534888ddb20a52dce45ef9f204ab", + "0x757cc91ccbb88cb0d78d6798d20051d39e5a7296", + "0xf553c8223ca8542af9db7b916fe9dc7c28b73751", + "0x40f9bf922c23c43acdad71ab4425280c0ffbd697", + "0x9600e2ee6377dadad7299b120026661c336a5e6d", + "0x516fca170bfe24bfc54e01f215ef85fe9b5b798a", + "0x61c820e261717a5a0555488872f78ac7b9ce77ec", + "0xeb263241eb948cc0eb53a58bf743289d074f474f", + "0x841c11b14c428dd591093348b8afa2652c863988", + "0x3c114973c0260290c2dbd40323327d996972fceb", + "0x765a16ca391a6b9249cfa65bf2d14c38722198e3", + "0xc3268ddb8e38302763ffdc9191fcebd4c948fe1b", + "0x6b92686c40747c85809a6772d0eda8e22a77c60c", + "0xc799be8de03f20b2d3b101e6f6516d614e6ffe06", + "0x40dc654af5ce40c122ffdc679fa8e8ca8b91556a", + "0xce8d52c38d74b77a0aa361c48fdce6b220a3370e", + "0xefa4c696ea2505ec038c9ddc849b1bf817d7f69d", + "0xf7253a0e87e39d2cd6365919d4a3d56d431d0041", + "0xcf79c7eaec5bdc1a9e32d099c5d6bdf67e4cf6e8", + "0xff75e131c711e4310c045317779d39b3b4f718c4", + "0xde2be7c9c542c55a7a77489a3a7745493988947f", + "0xfeb3e0f50107f6cfb2ec8c2bc8287f2707e0e2ea", + "0x6b759bf480407d19c8903c16023c706868c29a2a", + "0x6e38911da6dd0379f1cac396f74387c95a1f0d21", + "0x5a5d9ab7b1bd978f80909503ebb828879daca9c3", + "0xe96056a9936c58e89d1703cf6bd97f134341ee44", + "0x4dd6720d2bb8721a46bdf9a528704164578e03b9", + "0xe83b9a1b9056b21a01b85162e77ad76a42a1c64b", + "0xbec48f1ccf82d8e4c983ee00ac2ec6b03b81d710", + "0xefedaf9c07e6eb56bb8f82f30018e4461b1c5f4c", + "0xb68da7fbf71383afab240839287878539cfff20b", + "0xfbddb719cc7c795a1d9b7ea7ac11494a19b3231f", + "0x07506a5f48d71fdb34d3900fb086d43ef1b58ff9", + "0xa85cdd5478b7e525a808ef9707c3e33432ce1e7f", + "0xcf7c21ded40f2df85a564207a89b3379780d9ce3", + "0xd26b76e50f6510cdd4bf45d59279705f36946d23", + "0xdb7a41e39807e8c988859f150296db92674b7dc7", + "0x719028736f10164c838ef129936779ed739312f2", + "0xabcdef0abba5d0106595174213156797bc0db33e", + "0x3d2b8879f97e413b2609f9844a5fc8db8fe4f6f8", + "0x81ebe8ee7b51741fd5dad31f6987e626a9bb8111", + "0x1d45c8fa65f6b18e7dae04b2efea332c55696daa", + "0x978eb534b26cb8749d352a2c94ec21e659e4248d", + "0xa7ca400d49bba87eb606ee05af93689bd21fab99", + "0x65ad2bf7e09af2597c140df6386a3003d0f5f8ee", + "0x835918a3fbdf946364a9aee3114173865b712663", + "0x6073cffc1d46b1ea57ba89a28074ca734acd7003", + "0x2b13d52dfd33e2ebd13232866fdf96088e77d596", + "0x55f5601357f6e0b10a3386914c93916c6c9a368a", + "0xa1d5d2d931b532a0503e97f540f65ed256f374e6", + "0x6c9258895ffbe2178b3edefe09af304a1e99bf2f", + "0x973375b099943cddfd390022cea90d4f1d0c493c", + "0x8a8c879d39a74fce0593714956bb7ed048a5c1bf", + "0x9c42b0c70d0daf1211f3aab2a1e6ec5e717de12a", + "0x81a6383041593c556d1c8e69e2749b35b5008f09", + "0xf41b98a4c32bb61468c8001e0c69ef64ce6dea57", + "0x8fae81bb674c89ccde35a386587333d074b57786", + "0xa8258ed271bb9be9d7e16c5818e45ef6f2577d92", + "0x1e90474d2e83e7b7dd45553156beb316845e66a4", + "0x2ccbbc4c10f5d807fdd447219b57d0b883a28dc8", + "0x1bbeac736875c5043486a8a4374e6b5616ec8883", + "0x95add3dfef3ae0a832607dc71c4a9c6a6c2d7eb7", + "0x744c6eed427af293b0106b46700fddd3c9f62eef", + "0x743ec55fc166d24d2fd0211fb6ce53926d0ff3b1", + "0xdd03d2434c02c6bffb097b7130528f9568b6c70d", + "0x97c12efa574923e3ee445370d2de432332857110", + "0xb69951a0642b55cd5731535ed5b290fa49d3454a", + "0xba56878729540404de2aa14561b451ae2350744a", + "0x8d247f4fbbe81429d3d164a5c9ae0063210edbdc", + "0x850a146d7478daaa98fc26fd85e6a24e50846a9d", + "0xfe1552da65facaac5b50b73ceda4c993e16d4694", + "0x9705fe3586a7d768fee061aafe9384b1d4b8f2d8", + "0x5554672e67ba866b9861701d0e0494ab324ad19a", + "0xacc5c1e73d70f7f9622de2d574885ce8e6981033", + "0xbe9e7b0ed19526544b55b697107231f9467a805f", + "0x172dbab6f5e62a1fe7e2ba5ea1624adb33e0aa14", + "0x96725fa2f9a0b5baf80fc36c20c2ca79d86424ed", + "0xa392ccadabff735dbff69dc93d7c13f34a30611b", + "0xebf0e04e47f726d0f44801dfec5e705adcd6694b", + "0xc0891e8fcea09680bfe9170809fad1bcca10b96b", + "0xa21000e7a5a2a2bd9329428a859f9d7dce0f0961", + "0x9a387307f7508de113092bafc5cb4b3ae0706521", + "0xba719e0197470a790726075fd98edef04e2467af", + "0xda08be028304db1a73a13bce7c943127c2e393db", + "0xfb4a965a35603010feacc648ca022cb6a12d33f5", + "0x3aa73ed90e9f0ced87ff99cb60ca79019279e6ce", + "0x150bb505a9259b0be44ffb15415c79199e83c445", + "0xb170a41f2523220a12f84f17a54bd31953d98027", + "0x2fcd65d9c8078644adcf1cb0cd70a1b61f3f9c5b", + "0x73006c818880d07dd510e165c3de3e74f2407187", + "0x747e6abc102222f1df65c662540ddf471241a644", + "0xeeee5d271a56aa09c4f8862af514add3e882857c", + "0x98ad82ab467bc8c70e0cc183a5826d903751b7d8", + "0xc624434420f6cbe835d6358a8223b78432773ced", + "0x848e313d4b25bc0b48cafdb6a72391e892e6a247", + "0x0025ab2d69f6c2c3ffac32ab6a16e18c807518b8", + "0x2efe744ecc4f6bd55538da57d09dae895c95b223", + "0xbc6d82d8d6632938394905bb0217ad9c673015d1", + "0xe1555c6ee61366a3f90135dc704acd25c3247aca", + "0x2f51e78ff8aec6a941c4ceeeb26b4a1f03737c50", +] + +user_addresses = [str(to_checksum_address(address)) for address in raw_addresses] diff --git a/backend/tests/conftest.py b/backend/tests/conftest.py index 5db8e4eaa8..10c211f099 100644 --- a/backend/tests/conftest.py +++ b/backend/tests/conftest.py @@ -112,6 +112,12 @@ def mock_gitcoin_passport_issue_address_for_scoring(*args, **kwargs): "githubAccountCreationGte#90": 0.0, }, } + elif args[0] == "0xBc6d82D8d6632938394905Bb0217Ad9c673015d1": + return { + "address": "0xBc6d82D8d6632938394905Bb0217Ad9c673015d1", + "score": "22.0", + "status": "DONE", + } else: return {"status": "DONE", "score": "0.0"} @@ -137,6 +143,12 @@ def mock_gitcoin_passport_fetch_score(*args, **kwargs): "githubAccountCreationGte#90": 0.0, }, } + elif args[0] == "0xBc6d82D8d6632938394905Bb0217Ad9c673015d1": + return { + "address": "0xBc6d82D8d6632938394905Bb0217Ad9c673015d1", + "score": "22.0", + "status": "DONE", + } else: return {"status": "DONE", "score": "0.0"} @@ -363,8 +375,20 @@ def mock_gitcoin_passport_fetch_stamps(*args, **kwargs): ], } + elif args[0] == "0xBc6d82D8d6632938394905Bb0217Ad9c673015d1": + return { + "items": [ + { + "version": "1.0.0", + "credential": { + "expirationDate": "2099-09-22T15:04:05.073Z", + "credentialSubject": {"provider": "AllowList#OctantEpochTwo"}, + }, + } + ] + } else: - return [] + return {"next": None, "prev": None, "items": []} def mock_etherscan_api_get_transactions(*args, **kwargs): diff --git a/backend/tests/modules/uq/test_preliminary_uq.py b/backend/tests/modules/uq/test_preliminary_uq.py index f86672ef1b..69bc81c767 100644 --- a/backend/tests/modules/uq/test_preliminary_uq.py +++ b/backend/tests/modules/uq/test_preliminary_uq.py @@ -6,6 +6,7 @@ from app.extensions import db from app.infrastructure import database +from app.modules.uq import core from tests.helpers.allocations import mock_request from tests.helpers.constants import USER1_ADDRESS, USER2_ADDRESS from tests.helpers.context import get_context @@ -46,3 +47,17 @@ def test_retrieve_uq_when_score_calculated_dynamically(context, service, mock_us result = service.retrieve(context, USER1_ADDRESS) assert result == Decimal("0.2") + + +def test_get_all_user_uq_pairs(context, service, mock_users_db): + alice, bob, _ = mock_users_db + + database.allocations.store_allocation_request(alice.address, 1, mock_request(0)) + database.allocations.store_allocation_request(bob.address, 1, mock_request(0)) + + result = service.retrieve(context, USER1_ADDRESS, should_save=True) + result = service.retrieve(context, USER2_ADDRESS, should_save=True) + db.session.commit() + + result = core.get_all_uqs(1) + assert result == [(alice.address, Decimal("0.2")), (bob.address, Decimal("0.2"))] diff --git a/backend/tests/modules/user/antisybil/test_antisybil.py b/backend/tests/modules/user/antisybil/test_antisybil.py index 9c86b8ff24..40a2f30838 100644 --- a/backend/tests/modules/user/antisybil/test_antisybil.py +++ b/backend/tests/modules/user/antisybil/test_antisybil.py @@ -43,6 +43,41 @@ def test_antisybil_service( assert score == 2.572 +def test_guest_stamp_score_bump_for_both_gp_and_octant_side_application( + patch_gitcoin_passport_issue_address_for_scoring, + patch_gitcoin_passport_fetch_score, + patch_gitcoin_passport_fetch_stamps, + mock_users_db, +): + context = get_context(4) + + service = GitcoinPassportAntisybil() + alice, _, _ = mock_users_db + + score, expires_at, stamps = service.fetch_antisybil_status(context, alice.address) + service.update_antisybil_status(context, alice.address, score, expires_at, stamps) + score, _ = service.get_antisybil_status(context, alice.address) + assert score == 2.572 # guest list score bonus not applied + + guest_address = "0x2f51E78ff8aeC6A941C4CEeeb26B4A1f03737c50" + database.user.add_user(guest_address) + score, expires_at, stamps = service.fetch_antisybil_status(context, guest_address) + service.update_antisybil_status(context, guest_address, score, expires_at, stamps) + score, _ = service.get_antisybil_status(context, guest_address) + assert (not stamps) and ( + score == 21.0 + ) # is on guest list, no stamps, applying 21 score bonus manually + + stamp_address = "0xBc6d82D8d6632938394905Bb0217Ad9c673015d1" + database.user.add_user(stamp_address) + score, expires_at, stamps = service.fetch_antisybil_status(context, stamp_address) + service.update_antisybil_status(context, stamp_address, score, expires_at, stamps) + score, _ = service.get_antisybil_status(context, stamp_address) + assert (stamps) and ( + score == 22.0 + ) # is on guest list, HAS GUEST LIST STAMP, score is from fetch + + def test_antisybil_cant_be_update_when_address_is_delegated(alice, bob): context = get_context(4) score = 2.572