diff --git a/projects/binance/chains.json b/projects/binance/chains.json deleted file mode 100644 index aa860c53f..000000000 --- a/projects/binance/chains.json +++ /dev/null @@ -1,383 +0,0 @@ -{ - "algorand": [ - "MTCEM5YJJSYGW2RCXYXGE4SXLSPUUEJKQAWG2GUX6CNN72KQ3XPJCM6NOI", - "QYXDGS2XJJT7QNR6EJ2YHNZFONU6ROFM6BKTBNVT63ZXQ5OC6IYSPNDJ4U" - ], - "aptos": [ - "0x1d14ee0c332546658b13965a39faf5ec24ad195b722435d9fe23dc55487e67e3", - "0x292f853b48a28864755c971299ce8a73a3e32c19a0f7b8dbbf782482396e8ef3", - "0x33f91e694d40ca0a14cb84e1f27a4d03de5cf292b07ed75ed3286e4f243dab34", - "0x5bd7de5c56d5691f32ea86c973c73fec7b1445e59736c97158020018c080bb00", - "0x716666e019eb2cd1eea5ae29760e064f14984d8d6db2ff9ee56d0bd994e8c9b3", - "0x80174e0fe8cb2d32b038c6c888dd95c3e1560736f0d4a6e8bed6ae43b5c91f6f", - "0x9fbc354d59041b8b1b8368e3e7397ac943a3c7c6da3ffde3aa4f4d221a1d205d", - "0xae1a6f3d3daccaf77b55044cea133379934bba04a11b9d0bbd643eae5e6e9c70", - "0xbdb53eb583ba02ab0606bdfc71b59a191400f75fb62f9df124494ab877cdfe2a", - "0xd91c64b777e51395c6ea9dec562ed79a4afa0cd6dad5a87b187c37198a1f855a", - "0xed8c46bec9dbc2b23c60568f822b95b87ea395f7e3fdb5e3adc0a30c55c0a60e" - ], - "arbitrum": [ - "0x18e226459ccf0eec276514a4fd3b226d8961e4d1", - "0x1b5b4e441f5a22bfd91b7772c780463f66a74b35", - "0x25681ab599b4e2ceea31f8b498052c53fc2d74db", - "0x3931dab967c3e2dbb492fe12460a66d0fe4cc857", - "0x43684d03d81d3a4c70da68febdd61029d426f042", - "0x4aec0e98fc1fb55b9cc2faaa7a81acca42cb4e96", - "0x4ed6cf63bd9c009d247ee51224fc1c7041f517f1", - "0x5a52e96bacdabb82fd05763e25335261b270efcb", - "0x835678a611b28684005a5e2233695fb6cbbb0007", - "0x9dfb9014e88087fba78cc9309c64031d02be9a33", - "0xa7c0d36c4698981fab42a7d8c783674c6fe2592d", - "0xb38e8c17e38363af6ebdcb3dae12e0243582891d", - "0xee7ae85f2fe2239e27d9c1e23fffe168d63b4055", - "0xf92402bb795fd7cd08fb83839689db79099c8c9c", - "0xf977814e90da44bfa03b6295a0616a897441acec" - ], - "avax": [ - "0x3bce63c6c9abf7a47f52c9a3a7950867700b0158", - "0x43684d03d81d3a4c70da68febdd61029d426f042", - "0x45d3d68f14038099530b1c4448db8ecdd78179b1", - "0x4aefa39caeadd662ae31ab0ce7c8c2c9c0a013e8", - "0x5a52e96bacdabb82fd05763e25335261b270efcb", - "0x6d8be5cdf0d7dee1f04e25fd70b001ae3b907824", - "0x835678a611b28684005a5e2233695fb6cbbb0007", - "0x978b21a854dbefcd6d51dfd269875d158046240b", - "0x9f8c163cba728e99993abe7495f06c0a3c8ac8b9", - "0xa7c0d36c4698981fab42a7d8c783674c6fe2592d", - "0xaba2d404c5c41da5964453a368aff2604ae80a14", - "0xcddc5d0ebeb71a08fff26909aa6c0d4e256b4fe1", - "0xee7ae85f2fe2239e27d9c1e23fffe168d63b4055" - ], - "base": [ - "0x18e226459ccf0eec276514a4fd3b226d8961e4d1", - "0x3304e22ddaa22bcdc5fca2269b418046ae7b566a", - "0x4ed6cf63bd9c009d247ee51224fc1c7041f517f1", - "0x5a52e96bacdabb82fd05763e25335261b270efcb", - "0x835678a611b28684005a5e2233695fb6cbbb0007", - "0xa7c0d36c4698981fab42a7d8c783674c6fe2592d", - "0xd62e55b19135eb3c645573288ee4b6050f86ff54", - "0xee7ae85f2fe2239e27d9c1e23fffe168d63b4055", - "0xf977814e90da44bfa03b6295a0616a897441acec" - ], - "bsc": [ - "0x01c952174c24e1210d26961d456a77a39e1f0bb0", - "0x161ba15a5f335c9f06bb5bbb0a9ce14076fbb645", - "0x18e226459ccf0eec276514a4fd3b226d8961e4d1", - "0x1fbe2acee135d991592f167ac371f3dd893a508b", - "0x29bdfbf7d27462a2d115748ace2bd71a2646946c", - "0x3c783c21a0383057d128bae431894a5c19f9cf06", - "0x43684d03d81d3a4c70da68febdd61029d426f042", - "0x43839fe6bb18eae45c4228e5d6c8521a9ab57b6e", - "0x4aec0e98fc1fb55b9cc2faaa7a81acca42cb4e96", - "0x4ed6cf63bd9c009d247ee51224fc1c7041f517f1", - "0x4fdfe365436b5273a42f135c6a6244a20404271e", - "0x515b72ed8a97f42c568d6a143232775018f133c8", - "0x5a52e96bacdabb82fd05763e25335261b270efcb", - "0x631fc1ea2270e98fbd9d92658ece0f5a269aa161", - "0x73f5ebe90f27b46ea12e5795d16c4b408b19cc6f", - "0x835678a611b28684005a5e2233695fb6cbbb0007", - "0x8894e0a0c962cb723c1976a4421c95949be2d4e3", - "0xa180fe01b906a1be37be6c534a3300785b20d947", - "0xa7c0d36c4698981fab42a7d8c783674c6fe2592d", - "0xbd612a3f30dca67bf60a39fd0d35e39b7ab80774", - "0xbe0eb53f46cd790cd13851d5eff43d12404d33e8", - "0xbf83d18a46325acb7d8f40a462d23a92f467ed7a", - "0xdccf3b77da55107280bd850ea519df3705d1a75a", - "0xe2fc31f816a9b94326492132018c3aecc4a93ae1", - "0xeb2d2f1b8c558a40207669291fda468e50c8a0bb", - "0xf977814e90da44bfa03b6295a0616a897441acec" - ], - "bitcoin": [ - "1DEuKerATHWRfyB14s6QCt4LPkfCTx4zaW", - "1PJiGp2yDLvUgqeBsuZVCBADArNsk6XEiw", - "1PPWMe42cywnM61nVatkmiggwdRQYLiCyS", - "1Pzaqw98PeRfyHypfqyEgg5yycJRsENrE7", - "32BgTv3NSYbMsBTwDbNNN2GKZPCTJSkqDv", - "32KqbtrRVxC6GLUJgJhVQtFTaCdq4GrgBb", - "32bhzEniykYRFADVaRM5PYswsjC23cxtes", - "34HpHYiyQwg69gFmCq2BGHjF1DZnZnBeBP", - "34xp4vRoCGJym3xR7yCVPFHoCNxv4Twseo", - "36oiSkAi1VVuUpfdv8E2V5fZ2EarHRJpis", - "378GLcve92X2Q4UrCyoMFDL5k5QrzeG7JN", - "395vnFScKQ1ay695C6v7gf89UzoFpx3WuJ", - "39884E3j6KZj82FK4vcCrkUvWYL5MQaS3v", - "3AQ8bAh88TQU7JV1H3ovXrwsuV6s3zYZuN", - "3AeUiDpPPUrUBS377584sFCpx8KLfpX9Ry", - "3AtnehKDkFPC1bKvdrEVPSRGCtxQH8F1R8", - "3CySuFKbBS29M7rE5iJakZRNqb3msMeFoN", - "3E97AjYaCq9QYnfFMtBCYiCEsN956Rvpj2", - "3EVVc8e2rxwUuERtdJCduWig8DnpsUqyA6", - "3F9CGMu7JSJnMHA8jFM2KgxuH6hhxtvENP", - "3FHNBLobJnbCTFTVakh5TXmEneyf5PT61B", - "3HdGoUTbcztBnS7UzY4vSPYhwr424CiWAA", - "3HkgC2R5PhqyXy6RVFyemvxN1VuFbQiQ5V", - "3JFJPpH8Chwo7CDbyYQ4XcfgcjEP1FGRMJ", - "3JqPhvKkAPcFB3oLELBT7z2tQdjpnxuDi9", - "3LQUu4v9z6KNch71j7kbj8GPeAGUo1FW6a", - "3LcgLHzTvjLKBixBvkKGiadtiw2GBSKKqH", - "3M219KR5vEneNb47ewrPfWyb5jQ2DjxRP6", - "3M3EtJGx5Dy9nCATLDhyRCrKGc38QC9z2e", - "3NPL82eaehTFh4r3StpHqVQBTnZJFaGsyy", - "3NXCvmLGz9SxYi6TnjbBQfQMcwiZ1iQETa", - "3NjHh71XgjikBoTNYdWgXiNeZcLaKNThgb", - "3PXBET2GrTwCamkeDzKCx8DeGDyrbuGKoc", - "3QK5vQ9hucSg8ZC8Vizq83qEWeHFLAWMud", - "bc1q5n5dy7jgqhmpnmx44d3780qefzaphjreds0z9y", - "bc1q5qvs2dzzydqt4ygfn0k0ertjnv8ctytgcdz7l0", - "bc1q5rsc4uscnmemlwru8xsys26k3xgxewqfnf3k7j", - "bc1q7t9fxfaakmtk8pj7tdxjvwsng6y9x76czuaf5h", - "bc1qdtmav38lca8yu3rrcknnqx5242cckgxqws7m72", - "bc1qm34lsc65zpw79lxes69zkqmk6ee3ewf0j77s3h" - ], - "celo": [ - "0xef268b5c05452d63a17da12f562368e88a036ef1", - "0xf6436829cf96ea0f8bc49d300c536fcc4f84c4ed", - "0x2977aa854ac29251afccaa3935369483eb296a3b" - ], - "chz": [ - "0x43684d03d81d3a4c70da68febdd61029d426f042", - "0x4ed6cf63bd9c009d247ee51224fc1c7041f517f1", - "0x5a52e96bacdabb82fd05763e25335261b270efcb", - "0x87917d879ba83ce3ada6e02d49a10c1ec1988062", - "0xf977814e90da44bfa03b6295a0616a897441acec" - ], - "doge": [ - "D7BrtudMAdwz2U7vSGumVDuxZsZNibJuzw", - "D7D2f2WuEkwhTWqBkisZ5sM3JagaBcNWBs", - "D7bg2iUG3UiHuTWjRqcjdJiEjHrsFASsjw", - "DA9TU5Gtd4VM8petBvf8ecv9u13NSTYzzz", - "DAYthKnkrWUHRENvtBwjemi6kFzk4K9SMr", - "DCqD9gyq3qumbeEJZKc2Tm2R96JEd9dSDe", - "DD1h9ojoyAdAGLXaqgqZP3j86AtxZs6jCn", - "DD7W4ddD7wBeMVhJmyPAy9qcDp9ypwbxpD", - "DE5opaXjFgDhFBqL6tBDxTAQ56zkX6EToX", - "DEth4cF3doxmbcv9ofH3vm4j2NCozn8DL6", - "DFoQ1qrgDM7D9tAhF7Mahbp6zLv8CzK3XH", - "DGmd2jn1D7oLXpdpcGkLaGLDMbnRt4qkH3", - "DGmzv39riELTuigZCUD6sWoHEHPdSbxdUB", - "DJfU2p6woQ9GiBdiXsWZWJnJ9uDdZfSSNC", - "DKjcdPpQLoVfkZsN4wJr2RFuyFCoAVvoRe", - "DLqwvgk27ACJnHPEGxyDfspieHBVYJRZiC", - "DMURD7AGQwQhVLzz53QzQ8VsmmZShycpaz", - "DMcrq3jy8MVYTBM9tGCjFZerpKXpW91WXx", - "DPAMdZsSirVBGeDR9sE1LJXkwG6AQSNAMW", - "DPNqMsW1rotjhCzcbBEXzK3W73DiyzVLYc", - "DQYqMYmQCfL2eDLmMXV5uvCPkN6Vv4KtSx", - "DQkwksfYrAWAR9tRcqygA5pihmnURozxzo", - "DTGrjpvJXQU2zSpUDsnk9b4PAQW5Pwtg4K", - "DTSop4ycWkpmDqpncVZ3jwKp3z7B4kW4T3", - "DTXbttzfvPr4t6CPEAtKKUrHpm9hpfgahu", - "DTbG3RJRejnM99g8MSnhSbJxJVW8X7YXy9", - "DU8gPC5mh4KxWJARQRxoESFark2jAguBr5", - "DUMB7o1jqJvpriAAExmEFi1Y88s5q94fi9" - ], - "polkadot": [ - "15Vr65SvSXu83zcNEgzrR6oXYhC5Hnp7Hsfvbpes9rjUZchG", - "1663wmCKp7nAuvcVq8c1wFPpbSFUbZyrdwWj4jMEL9kTkGHL", - "169HLL5FwyoazAXyc8g7M6VRFCbpiLKTW6yQBVHBjRBUcFra", - "16ZL8yLyXv3V3L3z9ofR1ovFLziyXaN1DPq4yffMAZ9czzBD", - "1743nDTMZisPgBCYSAgkUn1kVG7MePc9rvMEjoRNf4ipVkF", - "1qnJN7FViy3HZaxZK9tGAA71zxHSBeUweirKqCaox4t8GT7" - ], - "ethereum": [ - "0x030e37ddd7df1b43db172b23916d523f1599c6cb", - "0x18e226459ccf0eec276514a4fd3b226d8961e4d1", - "0x1b46970cfe6a271e884f636663c257a5a571fb2c", - "0x21a31ee1afc51d94c2efccaa2092ad1028285549", - "0x28c6c06298d514db089934071355e5743bf21d60", - "0x308a2a0712570daeea77c8ba9c27a32cdc4000d4", - "0x38aaef3782910bdd9ea3566c839788af6ff9b200", - "0x43684d03d81d3a4c70da68febdd61029d426f042", - "0x4976a4a02f38326660d17bf34b431dc6e2eb2327", - "0x4aec0e98fc1fb55b9cc2faaa7a81acca42cb4e96", - "0x4aefa39caeadd662ae31ab0ce7c8c2c9c0a013e8", - "0x4ed6cf63bd9c009d247ee51224fc1c7041f517f1", - "0x4fdfe365436b5273a42f135c6a6244a20404271e", - "0x56eddb7aa87536c09ccc2793473599fd21a8b17f", - "0x5a52e96bacdabb82fd05763e25335261b270efcb", - "0x835678a611b28684005a5e2233695fb6cbbb0007", - "0x87433fec6f8d9df13d1e17c4b11364ecd2e93a51", - "0x9696f59e4d72e237be84ffd425dcad154bf96976", - "0x98adef6f2ac8572ec48965509d69a8dd5e8bba9d", - "0xa64b436964e7415c0e70b9989a53e1fb9a90e726", - "0xa7c0d36c4698981fab42a7d8c783674c6fe2592d", - "0xad354cfbaa4a8572dd6df021514a3931a8329ef5", - "0xbe0eb53f46cd790cd13851d5eff43d12404d33e8", - "0xc8daf809c7d7c27dd62d006196d8901ba57e5eae", - "0xdfd5293d8e347dfe59e90efd55b2956a1343963d", - "0xe1940f578743367f38d3f25c2d2d32d6636929b6", - "0xee7ae85f2fe2239e27d9c1e23fffe168d63b4055", - "0xf977814e90da44bfa03b6295a0616a897441acec" - ], - "hedera": [ - "0.0.1030878", - "0.0.4523906", - "0.0.652978", - "0.0.9933945" - ], - "litecoin": [ - "LXTras9zXwkUvmsAF15hUu86by2UdNLSWk", - "LZEjckteAtWrugbsy9zU8VHEZ4iUiXo9Nm", - "LbmGksLBwtwRXyxeazCZqKiAHX6cWN2AzN", - "LhcTcrMrheBqbthwfit43jkT9qnge5wSs1", - "LhzEoDXHXASi4hSMxrKeVoSGrED9QsBpPq", - "LiDY79SxUJfjE6fyqyxXxh9kBpfi4sRoKf", - "MB6LrCx4qjEFpU9U1WBrgPrntkfMR5GtCA", - "MLj1bgnNs8iAmNxhZNnrymQaAZNqnXXV3E", - "MQSs17ECe51kqhkFPQY98wiyPvGuK5iCB6", - "MQd1fJwqBJvwLuyhr17PhEFx1swiqDbPQS", - "MS56eJAupdvN5bYo6ythw784qahCpTzZ5V", - "MW87w56tHzzBYuHS4tfTQ1aYN7Kz6iuSra" - ], - "manta": [ - "0x18e226459ccf0eec276514a4fd3b226d8961e4d1", - "0x3cdfb47b0e910d9190ed788726cd72489bf10499", - "0x923fc76cb13a14e5a87843d309c9f401ec498e2d", - "0xf977814e90da44bfa03b6295a0616a897441acec" - ], - "polygon": [ - "0x082489a616ab4d46d1947ee3f912e080815b08da", - "0x18e226459ccf0eec276514a4fd3b226d8961e4d1", - "0x290275e3db66394c52272398959845170e4dcb88", - "0x43684d03d81d3a4c70da68febdd61029d426f042", - "0x4ed6cf63bd9c009d247ee51224fc1c7041f517f1", - "0x4fdfe365436b5273a42f135c6a6244a20404271e", - "0x505e71695e9bc45943c58adec1650577bca68fd9", - "0x5a52e96bacdabb82fd05763e25335261b270efcb", - "0x835678a611b28684005a5e2233695fb6cbbb0007", - "0xa7c0d36c4698981fab42a7d8c783674c6fe2592d", - "0xb75f972af41d6ff0bcc6b2613b832632de1e418b", - "0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245", - "0xee7ae85f2fe2239e27d9c1e23fffe168d63b4055", - "0xf977814e90da44bfa03b6295a0616a897441acec" - ], - "near": [ - "27ddc83845172d5ee380af7ba6bcc524145892ff0b91a6078e9ae6d26655e56a", - "451913e633c72fb951effe076d3bd2977e3f08083dcf6c87fa89992b0d437c5c", - "56203c5b21b828175fa9c1fd4161ecaca76de9a1f6008935eeb9b4d6dc821a22", - "5c33c6218d47e00ef229f60da78d0897e1ee9665312550b8afd5f9c7bc6957d2", - "7747991786f445efb658b69857eadc7a57b6b475beec26ed14da8bc35bb2b5b6", - "7e6e17fcb8e8e6a22ecd47bbd1b58b1af3582b97bbfd4a8d974bb9c266fa282b", - "9c484fa5d2d069569ba063fc555c34e621ccd88fdbb0295fc79bad232621c5c1", - "binance1.near", - "binancecold3.near", - "c6f10c6993a97c90e34ce60c5ea3ccb4915cf731daff0e7a2e5d93ebc879cc74", - "d04204b6591fefb973a8ed60929f8211af89ee38020da9faf905acdc7a320063", - "e1074e251c7350b8a4480816fffd897b727011df579e04cc19f890fd48fd8830", - "e1a70d1d2b8df95e0742c5aa18eb9089d84d5365fead073ac77d4c115cf3e264", - "e37e1cf6cd9c8601881799e531c958cd0ca01c734a6349aa88a23489c4258d05" - ], - "op_bnb": [ - "0x001ceb373c83ae75b9f5cf78fc2aba3e185d09e2", - "0xf977814e90da44bfa03b6295a0616a897441acec" - ], - "optimism": [ - "0x18e226459ccf0eec276514a4fd3b226d8961e4d1", - "0x4ed6cf63bd9c009d247ee51224fc1c7041f517f1", - "0x5a52e96bacdabb82fd05763e25335261b270efcb", - "0x8c991b8bb43859d2f3dff541eb43add2ce92505f", - "0xacd03d601e5bb1b275bb94076ff46ed9d753435a", - "0xee7ae85f2fe2239e27d9c1e23fffe168d63b4055", - "0xf977814e90da44bfa03b6295a0616a897441acec" - ], - "plasma": [ - "0x8741b106e9738a6971ad07dabcfe95ff66337b51", - "0xc8daf809c7d7c27dd62d006196d8901ba57e5eae" - ], - "ronin": [ - "0x030e37ddd7df1b43db172b23916d523f1599c6cb", - "0x5a52e96bacdabb82fd05763e25335261b270efcb", - "0xb32e9a84ae0b55b8ab715e4ac793a61b277bafa3" - ], - "scroll": [ - "0xf977814e90da44bfa03b6295a0616a897441acec" - ], - "solana": [ - "2ojv9BAiHUrvsm9gxDe7fJSzbNZSJcxZvf8dqmWGHG8S", - "3gd3dqgtJ4jWfBfLYTX67DALFetjc5iS72sCgRhCkW2u", - "3yFwqXBfZY4jBVUafQ1YEXw189y2dN3V5KQq9uzBDy1E", - "5tzFkiKscXHK5ZXCGbXZxdw7gTjjD1mBwuoFbhUvuAi9", - "6QJzieMYfp7yr3EdrePaQoG3Ghxs2wM98xSLRu8Xh56U", - "6oCa9Tz8VXVp63WiFyruE5PD6yXz3pCsv6oGzUGvg9TP", - "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM", - "EPauhjQjjTBCpeBtszS3xGRASLpEJFM1cspSiFRXZa9Z", - "G9RCBaYb8aBRxoe8QBC2ucGrVqjuZFysRhY8d56cnNT1", - "GBrURzmtWujJRTA3Bkvo7ZgWuZYLMMwPCwre7BejJXnK", - "GK35nWN6ZHSGZrRTf8kTQd8RkFCighChPEb41XwSFVAC", - "HXsKP7wrBWaQ8T2Vtjry3Nj3oUgwYcqq9vrHDM12G664", - "c5f9zfpkKMD9N8uLqJcFeJAAz7v12vDMnup9Y6EeQkk", - "H8BgJgae6qhMtf7BM2JtddywSQt11WdxHHxkGLNX5hss" - ], - "sonic": [ - "0x18e226459ccf0eec276514a4fd3b226d8961e4d1", - "0x4fdfe365436b5273a42f135c6a6244a20404271e", - "0x64de13c46f627d9c86212050d48756fb65c06d8a", - "0xa4e471dbfe8c95d4c44f520b19cee436c01c3267", - "0xab72bd3eb3b5cc90165fa39da85ad0d496330c00", - "0xf977814e90da44bfa03b6295a0616a897441acec" - ], - "starknet": [ - "0x00c1ce9c68f1c4a1b05e8d043b9b05784f41685d68e5009ffe379aa7f7c95ccf", - "0x0213c67ed78bc280887234fe5ed5e77272465317978ae86c25a71531d9332a2d", - "0x04164013f90b05d67f026779bf96e9c401c96f3485b645a786166e6935fba116" - ], - "sui": [ - "0x5be98f6812b102e8677cb9afa5644b35c4e6198be7330121dbda04ac2aedba44", - "0x5fdfcc18e0791862c107c49ea13a5bcf4965f00ac057f56ea04034ebb5ea45ad", - "0x7ab9a6a7109dcb9cb357a109f32dfcc78a7aa2d6029084eb924d95133fc71cec", - "0x8d4e8e88447f95a8509de759bf649a51876581f6a6338a9b3c68f82cfb6edd9b", - "0x935029ca5219502a47ac9b69f556ccf6e2198b5e7815cf50f68846f723739cbd", - "0x96ed379243830efc1adfe2c1359670f8289561c7f0d1b8810b3db28a827fbe51", - "0xac3034b15f40ea238c0f9f19f87b1692308219081e72d2798c65167693388082", - "0xac5bceec1b789ff840d7d4e6ce4ce61c90d190a7f8c4f4ddf0bff6ee2413c33c" - ], - "ton": [ - "UQD4uGNdB4a3f52mYOZf0x1nCmdd1DAvrLppL0a1cetTYCQx", - "UQDKHZ7e70CzqdvZCC83Z4WVR8POC_ZB0J1Y4zo88G-zCSRH" - ], - "tron": [ - "TAzsQ9Gx8eqFNFSKbeXrbi45CuVPHzA8wr", - "TCEn8ogRSiqdqv26UhsJmQQemrgJS56ZBD", - "TDqSquXBgUCLYvYC4XZgrprLK589dkhSCf", - "TJCo98saj6WND61g1uuKwJ9GMWMT9WkJFo", - "TJDENsfBJs4RFETt1X1W8wMDc8M5XnJhCe", - "TMuA6YqfCeX8EhbfYEg5y7S4DqzSJireY9", - "TMwf7KT8CCdUKuZfKNPTTjbYkFb3eGRbzY", - "TNXoiAJ3dct8Fjg4M9fkLFh9S2v9TXc32G", - "TQrY8tryqsYVCYS3MFbtffiPp2ccyn4STm", - "TRGCqsUXeynKTgynp2j9g3sg7Nux2KtB3u", - "TWd4WrZ9wn84f5x1hZhL4DHvk738ns5jwb", - "TYASr5UV6HEcXatwdFQfmLVUqQQQMUxHLS" - ], - "stellar": [ - "GBAIA5U6E3FSRUW55AXACIVGX2QR5JYAS74OWLED3S22EGXVYEHPLGPA", - "GC5LF63GRVIT5ZXXCXLPI3RX2YXKJQFZVBSAO6AUELN3YIMSWPD6Z6FH" - ], - "ripple": [ - "rBtttd61FExHC68vsZ8dqmS3DfjFEceA1A", - "rDAE53VfMvftPB4ogpWGWvzkQxfht6JPxr", - "rDNuKeiwTHWRCyBrh1aQUthLPkCUTxhz2W", - "rEbXa31msPbPDZgmLMKH7CaKaf7VipoLBo", - "rEy8TFcrAPvhpKrwyrscNYyqBGUkE9hKaJ", - "rGpxjNG7ovJTqNbahA6obUMyEfi7AnPax4", - "rJb5KsHsDHF1YS5B5DU6QCkH5NsPaKQTcy", - "rNU4eAowPuixS5ZCWaRL72UUeKgxcKExpK", - "rP3mUZyCDzZkTSd1VHoBbFt8HGm8fyq8qV", - "rPJ5GFpyDLv7gqeB1uZVUBwDwi41kaXN5A", - "rPPWMehpcyA8Mar8V2tkm5ggAdRQYL5UyS", - "rPz2qA93PeRCyHyFCqyNggnyycJR1N4iNf", - "rarG6FaeYhnzSKSS5EEPofo4gFsPn2bZKk", - "rfQ9EcLkU6WnNmkS3EwUkFeXeN47Rk8Cvi", - "rhWj9gaovwu2hZxYW7p388P8GRbuXFLQkK", - "rs8ZPbYqgecRcDzQpJYAMhSxSi5htsjnza", - "rwkbXMJQLQhVhcjZnnHV4zu39N7WcQXQKX" - ], - "era": [ - "0x43684d03d81d3a4c70da68febdd61029d426f042", - "0x4aec0e98fc1fb55b9cc2faaa7a81acca42cb4e96", - "0x4ed6cf63bd9c009d247ee51224fc1c7041f517f1", - "0x7aed074ca56f5050d5a2e512ecc5bf7103937d76", - "0xa84fd90d8640fa63d194601e0b2d1c9094297083", - "0xf977814e90da44bfa03b6295a0616a897441acec" - ] -} diff --git a/projects/binance/config.js b/projects/binance/config.js deleted file mode 100644 index 97225611d..000000000 --- a/projects/binance/config.js +++ /dev/null @@ -1,33 +0,0 @@ -const ADDRESSES = require('../helper/coreAssets.json') - - -const chains = require('./chains.json') - -const chainBlacklistedTokens = { - ethereum: [ - '0x9be89d2a4cd102d8fecc6bf9da793be995c22541', // BBTC - ADDRESSES.ethereum.BNB, // WBNB - ], - bsc: [ - // ADDRESSES.null, - ADDRESSES.bsc.BTCB, - ADDRESSES.bsc.TUSD - ], - solana: [ - // ADDRESSES.null, - "7XU84evF7TH4suTuL8pCXxA6V2jrE8jKA6qsbUpQyfCY", // conan - "CQvadZTR8vikRqqwyhvYV8YpdfCRjUCGyQwCuY4rxBQt" // conan https://prnt.sc/5rolZ0fF58q0 , broke the others field - ], -} -const cexConfig = { - bep2: {}, // for historical data -} - -Object.entries(chains).forEach(([chain, owners]) => { - cexConfig[chain] = { owners } - if (chainBlacklistedTokens[chain]) { - cexConfig[chain].blacklistedTokens = chainBlacklistedTokens[chain] - } -}) - -module.exports = cexConfig \ No newline at end of file diff --git a/projects/binance/genConfig.js b/projects/binance/genConfig.js deleted file mode 100644 index 47d0f1eb0..000000000 --- a/projects/binance/genConfig.js +++ /dev/null @@ -1,78 +0,0 @@ -const fs = require('fs') -const configFile = __dirname + '/chains.json' -const csvFile = __dirname + '/data.csv' - -const data = fs.readFileSync(csvFile, 'utf8') -const assetList = data.split('\n').map(i => i.split(',')).filter(i=> { - return !i[5] || i[5] === '""' // ignore address if it is a custodia -}) -assetList.pop() - -const networkAddresses = {} -const ignoredChainSet = new Set(['ENJ', 'BEP2', 'STATEMINT', 'BNB', 'MTL', 'WLD', 'BCH']) - -assetList.forEach(([_, network, address]) => { - if (ignoredChainSet.has(network)) return; - if (!networkAddresses[network]) { - networkAddresses[network] = [] - } - networkAddresses[network].push(address) -}) - -const chainMap = { - BTC: 'bitcoin', - ETH: 'ethereum', - BEP20: 'bsc', - BSC: 'bsc', - CELO: 'celo', - CHZ2: 'chz', - HBAR: 'hedera', - TRX: 'tron', - AVAX: 'avax', - ARB: 'arbitrum', - ARBITRUM: 'arbitrum', - AVAXC: 'avax', - LTC: 'litecoin', - MATIC: 'polygon', - OP: 'optimism', - OPTIMISM: 'optimism', - RON: 'ronin', - XRP: 'ripple', - SOL: 'solana', - DOT: 'polkadot', - ALGO: 'algorand', - APT: 'aptos', - FTM: 'fantom', - BASE: 'base', - ERA: 'era', - ZKSYNCERA: 'era', - MANTA: 'manta', - SUI: 'sui', - TON: 'ton', - STK: 'starknet', - STARKNET: 'starknet', - OPBNB: 'op_bnb', - NEAR: 'near', - DOGE: 'doge', - XLM: 'stellar', - SCROLL: "scroll", - SONIC: "sonic", - PLASMA: "plasma", -} - - -const chainData = {} -const key = Object.keys(networkAddresses).sort() - -key.forEach((network) => { - let addresses = networkAddresses[network] - const chain = chainMap[network] - if (chainData[chain]) addresses.push(...chainData[chain]) - if (!chain) throw new Error(`No chain mapping for ${network}`) - addresses = addresses.map(i => i.startsWith('0x') ? i.toLowerCase() : i) - addresses = [...new Set(addresses)] - addresses.sort() - chainData[chain] = addresses -}) - -fs.writeFileSync(configFile, JSON.stringify(chainData, null, 2)) \ No newline at end of file diff --git a/projects/binance/index.js b/projects/binance/index.js index 3a1da9f54..e19e463ee 100644 --- a/projects/binance/index.js +++ b/projects/binance/index.js @@ -1,6 +1,53 @@ -const config = require('./config') -const { cexExports } = require('../helper/cex') -const { mergeExports, getStakedEthTVL } = require("../helper/utils"); +const { defaultTokens } = require('../helper/cex') +const { sumTokensExport, sumTokens } = require('../helper/sumTokens') +const { nullAddress } = require('../helper/unwrapLPs') +const { getStakedEthTVL, mergeExports } = require('../helper/utils') +const ADDRESSES = require('../helper/coreAssets.json') +const { getConfig } = require('../helper/cache') +const bitcoinAddressBook = require('../helper/bitcoin-book/index.js') + +const ENDPOINT = "https://www.binance.com/bapi/apex/v1/public/apex/market/por/address" + +const binanceToDefillama = { + BTC: 'bitcoin', + ETH: 'ethereum', + BEP20: 'bsc', + BSC: 'bsc', + CELO: 'celo', + CHZ2: 'chz', + HBAR: 'hedera', + TRX: 'tron', + AVAX: 'avax', + ARB: 'arbitrum', + ARBITRUM: 'arbitrum', + AVAXC: 'avax', + LTC: 'litecoin', + MATIC: 'polygon', + OP: 'optimism', + OPTIMISM: 'optimism', + RON: 'ronin', + XRP: 'ripple', + SOL: 'solana', + DOT: 'polkadot', + ALGO: 'algorand', + APT: 'aptos', + FTM: 'fantom', + BASE: 'base', + ERA: 'era', + ZKSYNCERA: 'era', + MANTA: 'manta', + SUI: 'sui', + TON: 'ton', + STK: 'starknet', + STARKNET: 'starknet', + OPBNB: 'op_bnb', + NEAR: 'near', + DOGE: 'doge', + XLM: 'stellar', + SCROLL: "scroll", + SONIC: "sonic", + PLASMA: "plasma", +} const withdrawalAddresses = [ '0x6454ac71ca260f99cca99a3f4241dfda20cfa965', @@ -22,9 +69,71 @@ const withdrawalAddresses = [ '0x6357e4bdaff733dfe8f50d12d07c03b3bed0884b', ] -module.exports = mergeExports([ - cexExports(config), - { ethereum: { tvl: getStakedEthTVL({ withdrawalAddresses: withdrawalAddresses, size: 200, sleepTime: 20_000, proxy: true }) } }, -]) +const chainToNetworks = {} +for (const [network, chain] of Object.entries(binanceToDefillama)) { + const c = chain.toLowerCase() + const n = network.toUpperCase() + if (!chainToNetworks[c]) chainToNetworks[c] = [] + if (!chainToNetworks[c].includes(n)) chainToNetworks[c].push(n) +} -module.exports.methodology = 'We collect the wallets from this binance blog post https://www.binance.com/en/blog/community/our-commitment-to-transparency-2895840147147652626. We are not counting the Binance Recovery Fund wallet' \ No newline at end of file +const perChainConfig = { + ethereum: { blacklistedTokens: ['0x9be89d2a4cd102d8fecc6bf9da793be995c22541', ADDRESSES.ethereum.BNB] }, + bsc: { blacklistedTokens: [ADDRESSES.bsc.BTCB, ADDRESSES.bsc.TUSD] }, + solana: { blacklistedTokens: ['7XU84evF7TH4suTuL8pCXxA6V2jrE8jKA6qsbUpQyfCY', 'CQvadZTR8vikRqqwyhvYV8YpdfCRjUCGyQwCuY4rxBQt'] }, +} + +function buildConfig(chain, owners) { + const base = perChainConfig[chain] || {} + let { tokensAndOwners, tokens, blacklistedTokens, fungibleAssets } = base + + if (!tokensAndOwners && !tokens && chain !== 'solana') { + tokens = defaultTokens[chain] + if (!tokens) tokens = [nullAddress] + } + + const options = { ...base, owners, tokens, chain, blacklistedTokens } + + if (chain === 'ton') options.onlyWhitelistedTokens = true + if (chain === 'aptos' && Array.isArray(fungibleAssets)) options.fungibleAssets = fungibleAssets + if (chain === 'solana') { + options.solOwners = owners + delete options.owners + if (!options.blacklistedTokens) options.blacklistedTokens = [] + options.blacklistedTokens.push('rTCAfDDrTAiP2hxBdfRtqnVZ9SF9E9JaQn617oStvPF') + } + + return options +} + +const tvl = async (api) => { + const chain = api.chain.toLowerCase() + const networks = chainToNetworks[chain] + + const data = await getConfig('binance-cex/all-assets', ENDPOINT) + + const contracts = data.data + .filter(({ network }) => networks.includes(network.toUpperCase())) + .map(({ address }) => address) + .filter(Boolean) + + const owners = [...new Set(contracts)] + const options = buildConfig(chain, owners) + + return await sumTokensExport(options)(api) +} + +const chainExports = {} +const chains = new Set(Object.values(binanceToDefillama)) +chains.forEach((chain) => { chainExports[chain] = { tvl } }) + +const ethStakedExport = { ethereum: { tvl: getStakedEthTVL({ withdrawalAddresses, size: 200, sleepTime: 20_000, proxy: true }) } } + +module.exports = mergeExports([chainExports, ethStakedExport]) +module.exports.methodology = 'We collect the wallets from this Binance blog post https://www.binance.com/en/blog/community/our-commitment-to-transparency-2895840147147652626. We are not counting the Binance Recovery Fund wallet. On Ethereum, we also include staked ETH tracked via known withdrawal addresses.' + +module.exports.bitcoin = { tvl: bitcoinTvl } + +async function bitcoinTvl(api) { + return sumTokens({ api, owners: await bitcoinAddressBook.binanceFetcher() }) +} diff --git a/projects/helper/bitcoin-book/fetchers.js b/projects/helper/bitcoin-book/fetchers.js index aea5fd32f..ba76a8441 100644 --- a/projects/helper/bitcoin-book/fetchers.js +++ b/projects/helper/bitcoin-book/fetchers.js @@ -224,7 +224,7 @@ module.exports = { return data.map(address => address) } }) - + return Array.from(new Set(staticAddresses)) }, zeusZBTC: async () => { @@ -233,4 +233,13 @@ module.exports = { const list = data.result.map(item => item.address) return list }, + binanceFetcher: async () => { + const staticAddresses = await getConfig('binance-cex/btc', undefined, { + fetcher: async () => { + const { data } = await axios.get('https://www.binance.com/bapi/apex/v1/public/apex/market/por/address') + return data.data.filter(i => i.network === 'BTC').map(item => item.address) + } + }) + return Array.from(new Set(staticAddresses)) + }, } \ No newline at end of file