# -*- coding: utf-8 -*- """OLD Eddycoin testnet keys (generated from old_key_denylist.json, version 1, 28 pubkeys, 52 addresses). Public data only. On the new mainnet these wallets are refused; testnet mode is not affected.""" import hashlib class _HashedSet(object): """set of addresses stored only as SHA-256 hex digests; "addr in S" hashes the given address""" def __init__(self, hashes): self._h = frozenset(hashes) def __contains__(self, a): try: return hashlib.sha256(str(a).encode()).hexdigest() in self._h except Exception: return False def __len__(self): return len(self._h) def __bool__(self): return bool(self._h) PUBKEY_SHA256 = frozenset(['0560e21362352700d692245fb87cacff08902b38010a5283ffed0c0b8285c4d6', '1fea384a36839217b91853e31a7914c52780e3d6ad7ece983d8fbc4df5f10e47', '31ff3589424a13e3ee4c9e69cf352b5f8850470ad825ebd545c44856b96fc5f6', '46370f16b122ab798ac7dd45d01afec7f28441135a9c91fd144d133fd7299ad3', '5082519e80c1b1db7648c829ffde31614bcaafd14b27694c35560a6064880e2f', '5186a04e8c638a9324ab475d0518a6e0e50acd5585821f95cd134bf93491f617', '564592a025abd70303847ae9f359c48358bab47ce33a3ad47478fa6a77c8ce5f', '650751218a8aa875dc1e242f774da368dce12884205b39d1a95ea55729bad847', '879516fa3a6c987e30e10c9c2671409d133f5040166bd2e813a71645cd9f2e08', '8d12a7081ea58a3fa01910c2130cc6c34f43d8457894d6438f48d030a1a0dafb', '936148e5379072bcba116ca4ee4c2307fe566f779767c6428f735d2ec1876a43', 'a028899ab2c5d09d2009f8d49c68a951f88dd81df260d78dccc881bdce50b0d6', 'a485898c78b6eb536a0573417a9d62c62c5deed0ece1daef6f7d41bb135c140d', 'a640491248e456803914ce69e1a946f758bc050ed476c7141dcb9fb6c07bd153', 'ac9a838b0fac01f9d7d89ed36ae750b300193ae32048cdf92e1ee17dbc73b384', 'b64a86858aeb669d43d5dd3badd791d00fca8189cef64cd0bfbf329909c43fd5', 'b895f5c34a29c9c166bb884048dc931f1774d06dd99468a5e44276fc87003865', 'c1563c05204f458e59012a8a7d267dacf76b44ae46b2db0d3225eabde1facb3d', 'c3da00196960f91699cf65c1a282063286cb5b9cbb326e1b452402f4f21523c2', 'c7db748804ab076f6c419a65e1e2d6463519452ef2e3485628b067cf71c70935', 'cb13ad4fa44a3d0b2ca75d7e7d2c98a0ebdfe6ba1b8736d130e24193492d9fb2', 'eaff4b03e6371aed010d6ff232ea8c27c5384b17aadd0b761612ebc619c7ce89', 'ebfa51692e1076e4f353e98a3ec8b5b04658beaa5a715ded7af66658f02db199', 'ed63f5a516c4aff44a2122792030b3b4e9e28beccd02e7499554bf62d01abcb3', 'ee423a92b491da4a8299d3e4c32a405756772c972db4414f221e4cb672d9a40c', 'f251b01247017d04f098c2edff7f92667fca721d6674cbd62fd725d061770104', 'f56476daa0b8efec871fd32c9afa8a11b8a5affab459bd2207b6cd67c5695217', 'f8cf5e75f0284aa69167f318c52e3284786743935ff8fd37e1d347d4677340e0']) ADDRESSES = _HashedSet(['02e274afea51333eb10bc8278b646be577aa20b2f9ce76ffff71b476ff0ad979', '10b29eeb90899937d3f3f30391994a08d2b6352e8c9065b55923d7ba170b4493', '116824afa78434e50517fda6b500cf976779cc09675bda482254e596317ebd0b', '157dce13e155f78ee8681cd473703a02fb469b08122792767892b49a3ffd236e', '1635956dfeba6f14cd3e36ddd7d90b8f80ebe5f20a7ac038bb6101dbba16ff31', '1901f3386da27d2d5be5840ea7b815d7837c0d504ab4a596954a379f6cee2d3f', '1956034a65e37a39503e7319937d647bfed43772a584f66a20ebbd94c717506b', '1edb1db9df640b18f3ad2a644a0c67df02137ffd1b100a76bc5638dcd36860ec', '2129494af1918845041f14db75532329641dca7e53ca9697829afe16f6ee2883', '24ac4f77e9a2da7a8fc7327c8468808386995f471235bdb8fd922601efa3cef2', '27265b4a9e6c3f0d5f490bce8e74c1fc23e71da824794c43bd2df8d6c1faf063', '27e4bd35f26116b1fa7b40ee6a20d971bd46f9681f1a37a1430a651e453a8282', '3eb26191b59bf6557361a72ad17aa4fa1857be718da1735a806a372457144fbe', '3eb89b6fbea689484d1903114fb4b84f895a44001b7237b890bd587f6f0b0d2e', '555d7b79fec9d87e211a8b38d620dbeb8060dcd9245a810d06142d3ecdf8631c', '56cc4a844b52e51170558857a16263e37621d158b1d4ed40f591345c5db79bc5', '5898c66e15f5e4b36d8f0691b265e3845cf5bfe78ead9e00e63576c2cd0dc4fb', '5a61efa852a665fdfe23abcdd16e125eaca7dcd14fdd312ddb22173a23b03596', '5d9d2fe2707e040759265f08f9ae8c84b94320a97a6b8c27adb2e6b4b42dde49', '5eb13a98a5ae8fc99367bcf1d0c8c1d057b8920d2b0e3de04aa23a91b876fa02', '61167de5e69cc78821de8cf2c00c55c5843210e900b9447af208451a51ffb2a3', '64347072823e49c52b50a44eeada214be616934475c45bbedd8924bfcaf1b4b6', '666abb8ce19b82bcd3103aa0405855026d0c15117c68ef23fe9e82a3f4dc5739', '6dd287880317ebcea349a383fd07f909bef5c868bdec965edbad5287256fdd6a', '6e0de192da8d52cac774cd488dd2ea3f2b11e00703d841c00b5c418c04a54504', '7436176a485eda2d0ef69e35f369c7b2655d4c1cf75457502df55c1af8d4966c', '76e4398de77efdf3c9545760ffe3223167e390a3c11997e13155629b5e4951cc', '79534787256663dc9f1d8a9d76c4ccc09818227e3b14ad9b864b1e4792a0e25f', '7c48dc7c1092d4bc63f7c7e320d1419e8906e3af9dab6dbe48f8fb9bb8b3fa5c', '7db6c0498290fc7c8d3e1532d2eb8d245257ee1d74e0887068bfc53630d03996', '8ddf9765c2a27f015009e036645743317591b94f819b01cc83c6287bf0e3f119', '926ad9b06cf7ac920a197265149bb675ce542912f6fcd47a9e46e755cafd4800', '93d3dcc0b485fb93c5dbc18fc7a780273c216ed09040dd99b47550d9de0523ff', '96fd55139e8f60993638c1dc52ae972cdf83529da88f0e33accce89e0b9ecd0d', 'a7be2b0678195f103104ae6211332bc61074ab3d8a7dec4319cc2efa18f20fb6', 'b01e48a57a398bf3f4048f61c38cf60636ed2e2e471412e5b800baee7d3a9c9a', 'bca023717fa35af7ac217a79e71e48ada0174f4be9ea9382ca6817395fea415f', 'c0cf4e1725ead9da0fc9640e64c196440581937f716115e698394145bb30b693', 'c1c6601f8f31ae29a9aa466241ea7cf9646937d8c69b08a23317b7615d1f03bb', 'c29727f6afe47462e1445466deec6d5cf6c81370e02027cdaedbdb10c0a71312', 'c695a5a9f593586d84de72e63eb49b3ba1407c7c45428f7891c8717cc89641ff', 'cb81c253655d386dab633366190ec00c65a3fc286764b33071f46f3b8530de1d', 'cc80758511e654eccbfa3c55e83917aec1a614e6d2e702d4bc289b9b0e469945', 'cfa25cdcd54ad0279a18279c6f2a0f2774a2da9433f3829255dece9760162fd1', 'cfb3854ceeb1e3650e324d3fc7efed8fc66691863d2c59498c7ecea9ff325507', 'd03ee03b58f6a873cc790d4f39f762f45a05726d27281cb6160ce79af023537b', 'd2e3d70523a8fe58f74189b76d525d770492efe06c9fd9ed81fac46c66254790', 'd4c94e24a5da26136d089fac99e5d370c484ab9762b133638252c96bae0b1e92', 'dcd0a291eae6ea237fd6354dd77294fb7cd5bae7c6c68ffad06e0fa9a842b5df', 'dda517d4fec060552cb557a7abe26d85fa342d00f3a0da6e8f460cc084d31f38', 'edbb68129fd6d387bce1f23efce8e2b75c40920a42a04e01355cb7d377a19d10', 'f0bffdb81b7b786dbeccfb6df5ff6e60e1a8b8b3725a4aec6407348db27b8676']) # SHA-256 of the 52 addresses (no plain addresses in the program) # superseded v2 friend wallets (no recovery words; replaced by v3) - refused with their own message SUPERSEDED = _HashedSet(['157dce13e155f78ee8681cd473703a02fb469b08122792767892b49a3ffd236e', '1901f3386da27d2d5be5840ea7b815d7837c0d504ab4a596954a379f6cee2d3f', '1edb1db9df640b18f3ad2a644a0c67df02137ffd1b100a76bc5638dcd36860ec', '2129494af1918845041f14db75532329641dca7e53ca9697829afe16f6ee2883', '24ac4f77e9a2da7a8fc7327c8468808386995f471235bdb8fd922601efa3cef2', '56cc4a844b52e51170558857a16263e37621d158b1d4ed40f591345c5db79bc5', '5a61efa852a665fdfe23abcdd16e125eaca7dcd14fdd312ddb22173a23b03596', '666abb8ce19b82bcd3103aa0405855026d0c15117c68ef23fe9e82a3f4dc5739', '76e4398de77efdf3c9545760ffe3223167e390a3c11997e13155629b5e4951cc', '79534787256663dc9f1d8a9d76c4ccc09818227e3b14ad9b864b1e4792a0e25f', '7c48dc7c1092d4bc63f7c7e320d1419e8906e3af9dab6dbe48f8fb9bb8b3fa5c', '7db6c0498290fc7c8d3e1532d2eb8d245257ee1d74e0887068bfc53630d03996', '93d3dcc0b485fb93c5dbc18fc7a780273c216ed09040dd99b47550d9de0523ff', '96fd55139e8f60993638c1dc52ae972cdf83529da88f0e33accce89e0b9ecd0d', 'c1c6601f8f31ae29a9aa466241ea7cf9646937d8c69b08a23317b7615d1f03bb', 'd03ee03b58f6a873cc790d4f39f762f45a05726d27281cb6160ce79af023537b', 'd2e3d70523a8fe58f74189b76d525d770492efe06c9fd9ed81fac46c66254790', 'd4c94e24a5da26136d089fac99e5d370c484ab9762b133638252c96bae0b1e92', 'dcd0a291eae6ea237fd6354dd77294fb7cd5bae7c6c68ffad06e0fa9a842b5df', 'dda517d4fec060552cb557a7abe26d85fa342d00f3a0da6e8f460cc084d31f38']) # SHA-256 of the 20 addresses (no plain addresses in the program) def is_superseded(address=""): return bool(address) and address in SUPERSEDED def is_mainnet(network): return not str(network or "").startswith("eddycoin-testnet") def is_old(address="", pubkey_hex=""): if address and address in ADDRESSES: return True try: return bool(pubkey_hex) and hashlib.sha256(bytes.fromhex(pubkey_hex)).hexdigest() in PUBKEY_SHA256 except ValueError: return False