diff --git a/airdrops/1inch.csv.gz b/airdrops/1inch.csv.gz new file mode 100644 index 0000000..ce89f3c Binary files /dev/null and b/airdrops/1inch.csv.gz differ diff --git a/airdrops/convex_airdrop.csv.gz b/airdrops/convex_airdrop.csv.gz new file mode 100644 index 0000000..151d3cc Binary files /dev/null and b/airdrops/convex_airdrop.csv.gz differ diff --git a/airdrops/cornichon_airdrop.csv.gz b/airdrops/cornichon_airdrop.csv.gz new file mode 100644 index 0000000..579a7c8 Binary files /dev/null and b/airdrops/cornichon_airdrop.csv.gz differ diff --git a/airdrops/cow_gnosis.csv.gz b/airdrops/cow_gnosis.csv.gz new file mode 100644 index 0000000..fddb497 Binary files /dev/null and b/airdrops/cow_gnosis.csv.gz differ diff --git a/airdrops/cow_mainnet.csv.gz b/airdrops/cow_mainnet.csv.gz new file mode 100644 index 0000000..02738f6 Binary files /dev/null and b/airdrops/cow_mainnet.csv.gz differ diff --git a/airdrops/curve_airdrop.csv.gz b/airdrops/curve_airdrop.csv.gz new file mode 100644 index 0000000..b811e2a Binary files /dev/null and b/airdrops/curve_airdrop.csv.gz differ diff --git a/airdrops/debridge_1.csv.gz b/airdrops/debridge_1.csv.gz new file mode 100644 index 0000000..367028c Binary files /dev/null and b/airdrops/debridge_1.csv.gz differ diff --git a/airdrops/degen2_season1.csv.gz b/airdrops/degen2_season1.csv.gz new file mode 100644 index 0000000..ebdf19a Binary files /dev/null and b/airdrops/degen2_season1.csv.gz differ diff --git a/airdrops/degen2_season2.csv.gz b/airdrops/degen2_season2.csv.gz new file mode 100644 index 0000000..67987dd Binary files /dev/null and b/airdrops/degen2_season2.csv.gz differ diff --git a/airdrops/degen2_season3.csv.gz b/airdrops/degen2_season3.csv.gz new file mode 100644 index 0000000..1e961e1 Binary files /dev/null and b/airdrops/degen2_season3.csv.gz differ diff --git a/airdrops/degen2_season4.csv.gz b/airdrops/degen2_season4.csv.gz new file mode 100644 index 0000000..b3ff86f Binary files /dev/null and b/airdrops/degen2_season4.csv.gz differ diff --git a/airdrops/diva.csv.gz b/airdrops/diva.csv.gz new file mode 100644 index 0000000..9120e87 Binary files /dev/null and b/airdrops/diva.csv.gz differ diff --git a/airdrops/ens.csv.gz b/airdrops/ens.csv.gz new file mode 100644 index 0000000..6e45c54 Binary files /dev/null and b/airdrops/ens.csv.gz differ diff --git a/airdrops/furucombo_airdrop.csv.gz b/airdrops/furucombo_airdrop.csv.gz new file mode 100644 index 0000000..695b620 Binary files /dev/null and b/airdrops/furucombo_airdrop.csv.gz differ diff --git a/airdrops/grain_iou.csv.gz b/airdrops/grain_iou.csv.gz new file mode 100644 index 0000000..0bd1320 Binary files /dev/null and b/airdrops/grain_iou.csv.gz differ diff --git a/airdrops/index_v4.json b/airdrops/index_v4.json new file mode 100644 index 0000000..d09464b --- /dev/null +++ b/airdrops/index_v4.json @@ -0,0 +1,529 @@ +{ + "airdrops": { + "uniswap": { + "file_path": "airdrops/uniswap.csv.gz", + "file_hash": "2e72e0b9148c03ddfdb5a5bbfe22a656dbfe23463842e1883c4d80508b63bf0c", + "asset_identifier": "eip155:1/erc20:0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984", + "url": "https://app.uniswap.org/", + "name": "Uniswap", + "icon": "uniswap.svg" + }, + "1inch": { + "file_path": "airdrops/1inch.csv.gz", + "file_hash": "3b1c363fb5ea948073fa8daec3637b3e2e7a3f534f18710f357f8315bcc5513b", + "asset_identifier": "eip155:1/erc20:0x111111111117dC0aa78b770fA6A738034120C302", + "url": "https://1inch.exchange/", + "name": "1inch", + "icon": "1inch.svg" + }, + "tornado": { + "file_path": "airdrops/tornado.csv.gz", + "file_hash": "6ca7c778afb26d263f7a1b9c5101c89a00d79fe1c6beac44d30418597fffc385", + "asset_identifier": "eip155:1/erc20:0x77777FeDdddFfC19Ff86DB637967013e6C6A116C", + "url": "https://tornado.cash/", + "name": "Tornado Cash", + "icon": "tornado.svg", + "has_decoder": false + }, + "cornichon": { + "file_path": "airdrops/cornichon_airdrop.csv.gz", + "file_hash": "1dbb5f4508b1e88c74b0f45d792869a73c28fb20180318eee15cea2872e51169", + "asset_identifier": "eip155:1/erc20:0xa456b515303B2Ce344E9d2601f91270f8c2Fea5E", + "url": "https://cornichon.ape.tax/", + "name": "Cornichon", + "icon": "cornichon.svg" + }, + "grain": { + "file_path": "airdrops/grain_iou.csv.gz", + "file_hash": "16799ac2000d10639572f905c5af35fff6e980340940bb64fd6d1ed9d4dcb72a", + "asset_identifier": "eip155:1/erc20:0x6589fe1271A0F29346796C6bAf0cdF619e25e58e", + "url": "https://claim.harvest.finance/", + "name": "Grain", + "icon": "grain.png" + }, + "furucombo": { + "file_path": "airdrops/furucombo_airdrop.csv.gz", + "file_hash": "c528611321736d5af395da87bb2867f4bf09b6049279189001816bf72dcd90eb", + "asset_identifier": "eip155:1/erc20:0xfFffFffF2ba8F66D4e51811C5190992176930278", + "url": "https://furucombo.app/", + "name": "Furucombo", + "icon": "furucombo.png", + "has_decoder": false + }, + "lido": { + "file_path": "airdrops/lido_airdrop.csv.gz", + "file_hash": "697b309098721303c39f2cf451f70bb78d6b5847ddf1385ae9e064028060c564", + "asset_identifier": "eip155:1/erc20:0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32", + "url": "https://lido.fi/", + "name": "Lido", + "icon": "lido.svg", + "has_decoder": false + }, + "curve": { + "file_path": "airdrops/curve_airdrop.csv.gz", + "file_hash": "d485850c2727d88ee11226d6617f396e1be99a25f4335a56c143daaa8443097e", + "asset_identifier": "eip155:1/erc20:0xD533a949740bb3306d119CC777fa900bA034cd52", + "url": "https://www.curve.fi/", + "name": "Curve Finance", + "icon": "curve.png", + "has_decoder": false + }, + "convex": { + "file_path": "airdrops/convex_airdrop.csv.gz", + "file_hash": "3462378af5db04b67be7fc483fecad67b110adb16265655aec70fd7b85ce990b", + "asset_identifier": "eip155:1/erc20:0x4e3FBD56CD56c3e72c1403e103b45Db9da5B9D2B", + "url": "https://www.convexfinance.com/", + "name": "Convex", + "icon": "convex.jpeg" + }, + "shapeshift": { + "file_path": "airdrops/shapeshift.csv.gz", + "file_hash": "f9691501c7d362caf19e9333085b8995ed3186be1fae3465dbe273f2f2e80629", + "asset_identifier": "eip155:1/erc20:0xc770EEfAd204B5180dF6a14Ee197D99d808ee52d", + "url": "https://shapeshift.com/shapeshift-decentralize-airdrop", + "name": "ShapeShift", + "icon": "shapeshift.svg", + "cutoff_time": 1634050800 + }, + "ens": { + "file_path": "airdrops/ens.csv.gz", + "file_hash": "fbe9a188eb918f3bf55ec828e81e8b0b793fdb90393dd6141cf77d765d009251", + "asset_identifier": "eip155:1/erc20:0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72", + "url": "https://claim.ens.domains/", + "name": "ENS", + "icon": "ens.svg" + }, + "psp": { + "file_path": "airdrops/psp.csv.gz", + "file_hash": "bcf37571ce556404631f931323211cc699b0a98f7b09e6f776e418fec174691f", + "asset_identifier": "eip155:1/erc20:0xcAfE001067cDEF266AfB7Eb5A286dCFD277f3dE5", + "url": "https://paraswap.io/", + "name": "ParaSwap", + "icon": "paraswap.svg", + "has_decoder": false + }, + "sdl": { + "file_path": "airdrops/saddle_finance.csv.gz", + "file_hash": "fc80056e03f5f2492ce65302d60aaabc4b69bad141710871d395b2193fd159b0", + "asset_identifier": "eip155:1/erc20:0xf1Dc500FdE233A4055e25e5BbF516372BC4F6871", + "url": "https://saddle.exchange/#/", + "name": "SaddleFinance", + "icon": "saddle-finance.svg", + "has_decoder": false + }, + "cow_mainnet": { + "file_path": "airdrops/cow_mainnet.csv.gz", + "file_hash": "dcfda7d588904bf36a2387c3edf95b48cbce3e3f3fbef3f2f3c2684873ad232c", + "asset_identifier": "eip155:1/erc20:0xD057B63f5E69CF1B929b356b579Cba08D7688048", + "url": "https://cowswap.exchange/#/claim", + "name": "COW (ethereum)", + "icon": "cow.svg" + }, + "cow_gnosis": { + "file_path": "airdrops/cow_gnosis.csv.gz", + "file_hash": "616c7e0e7cefcc56cc8b7b666ad7bfc96a615e79bd052b8b9839e193ebf6a522", + "asset_identifier": "eip155:100/erc20:0xc20C9C13E853fc64d054b73fF21d3636B2d97eaB", + "url": "https://cowswap.exchange/#/claim", + "name": "COW (gnosis chain)", + "icon": "cow.svg" + }, + "diva": { + "file_path": "airdrops/diva.csv.gz", + "file_hash": "6ab404987555df438b96b20796f45f21d776cba3b545b16d0cfc4ccb9d4d80d1", + "asset_identifier": "eip155:1/erc20:0xBFAbdE619ed5C4311811cF422562709710DB587d", + "url": "https://claim.diva.community/", + "name": "DIVA", + "icon": "diva.svg" + }, + "shutter": { + "file_path": "airdrops/shutter.csv.gz", + "file_hash": "213575828bbe5e9ae531d34bc70dd5dac709fbc7b60331192b8104c61428fe3b", + "asset_identifier": "eip155:1/erc20:0xe485E2f1bab389C08721B291f6b59780feC83Fd7", + "url": "https://claim.shutter.network/", + "name": "SHU", + "icon": "shutter.png", + "cutoff_time": 1721000000, + "new_asset_data": { + "asset_type": "EVM_TOKEN", + "address": "0xe485E2f1bab389C08721B291f6b59780feC83Fd7", + "name": "Shutter", + "symbol": "SHU", + "chain_id": 1, + "decimals": 18 + } + }, + "starknet": { + "file_path": "airdrops/starknet.csv.gz", + "file_hash": "f25ed205578b398c175fdf4ec3f70502329ffe1143bd506e81c282850bc01597", + "asset_identifier": "eip155:1/erc20:0xCa14007Eff0dB1f8135f4C25B34De49AB0d42766", + "url": "https://provisions.starknet.io/", + "name": "STRK", + "icon": "starknet.svg", + "icon_path": "airdrops/icons/starknet.svg", + "cutoff_time": 1718841600, + "has_decoder": false, + "new_asset_data": { + "asset_type": "EVM_TOKEN", + "address": "0xCa14007Eff0dB1f8135f4C25B34De49AB0d42766", + "name": "Starknet", + "symbol": "STRK", + "chain_id": 1, + "decimals": 18, + "coingecko": "starknet" + } + }, + "optimism_4": { + "file_path": "airdrops/optimism_4.csv.gz", + "file_hash": "4269b4aa15e646bb901ea9547ad8b657ffe56b82bd0aa2f597b81a8d7f7596e4", + "asset_identifier": "eip155:10/erc20:0x4200000000000000000000000000000000000042", + "url": "https://app.optimism.io/airdrops/4", + "name": "OP airdrop 4", + "icon": "optimism.svg", + "icon_path": "airdrops/icons/optimism.svg", + "cutoff_time": 1739491200 + }, + "optimism_5": { + "file_path": "airdrops/op_airdrop_5.csv.gz", + "file_hash": "6e01489478e1ab327416069798485f9a91d5e85b4a2df6eb646fbcc3abdf0fc2", + "asset_identifier": "eip155:10/erc20:0x4200000000000000000000000000000000000042", + "url": "https://app.optimism.io/airdrops/5", + "name": "OP airdrop 5", + "icon": "optimism.svg", + "icon_path": "airdrops/icons/optimism.svg", + "cutoff_time": 1760054399 + }, + "degen2_season1": { + "file_path": "airdrops/degen2_season1.csv.gz", + "file_hash": "3f49ef6066d70ad8d519e7e65ea7e228aecd3d040eedf74c8d960cbf69775976", + "asset_identifier": "eip155:8453/erc20:0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed", + "url": "https://www.degen.tips/airdrop2/season1", + "name": "DEGEN", + "icon": "degen.svg", + "icon_path": "airdrops/icons/degen.svg", + "cutoff_time": 1711843200, + "new_asset_data": { + "asset_type": "EVM_TOKEN", + "address": "0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed", + "name": "Degen", + "symbol": "DEGEN", + "chain_id": 8453, + "decimals": 18 + } + }, + "omni": { + "file_path": "airdrops/omni.csv.gz", + "file_hash": "2e2eb6c8d9ca014c47400f3ead4c3273a6e0e90142501e1fd48f9d46ed293cc2", + "asset_identifier": "eip155:1/erc20:0x36E66fbBce51e4cD5bd3C62B637Eb411b18949D4", + "url": "https://claims.omni.network/", + "name": "OMNI", + "icon": "omni.svg", + "icon_path": "airdrops/icons/omni.svg", + "new_asset_data": { + "asset_type": "EVM_TOKEN", + "address": "0x36E66fbBce51e4cD5bd3C62B637Eb411b18949D4", + "name": "Omni Network", + "symbol": "OMNI", + "chain_id": 1, + "decimals": 18 + } + }, + "degen2_season2": { + "file_path": "airdrops/degen2_season2.csv.gz", + "file_hash": "fc956bf0458bc141a400da7f1a48f551fd81343b7ac4f0222736812a0558c52e", + "asset_identifier": "eip155:8453/erc20:0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed", + "url": "https://www.degen.tips/airdrop2/season2", + "name": "DEGEN", + "icon": "degen.svg", + "icon_path": "airdrops/icons/degen.svg", + "cutoff_time": 1714435200, + "new_asset_data": { + "asset_type": "EVM_TOKEN", + "address": "0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed", + "name": "Degen", + "symbol": "DEGEN", + "chain_id": 8453, + "decimals": 18 + } + }, + "degen2_season3": { + "file_path": "airdrops/degen2_season3.csv.gz", + "file_hash": "4a6108a330b793aa790f7525b74703c34e6eb6183b30b207f149e36aade72dee", + "asset_identifier": "eip155:8453/erc20:0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed", + "url": "https://www.degen.tips/airdrop2/season3", + "name": "DEGEN", + "icon": "degen.svg", + "icon_path": "airdrops/icons/degen.svg", + "cutoff_time": 1716940800, + "new_asset_data": { + "asset_type": "EVM_TOKEN", + "address": "0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed", + "name": "Degen", + "symbol": "DEGEN", + "chain_id": 8453, + "decimals": 18 + } + }, + "myso": { + "file_path": "airdrops/myso.csv.gz", + "file_hash": "0eb669a2c9dc08b0d49e754a8d5c66f2e4776e93bb403bae4bcfc4a2cb7e8730", + "asset_identifier": "eip155:1/erc20:0x5fDe99e121F3aC02e7d6ACb081dB1f89c1e93C17", + "url": "https://app.myso.finance/airdrop", + "name": "MYT", + "icon": "myso.svg", + "icon_path": "airdrops/icons/myso.jpg", + "cutoff_time": 1717145230, + "has_decoder": false, + "new_asset_data": { + "asset_type": "EVM_TOKEN", + "address": "0x5fDe99e121F3aC02e7d6ACb081dB1f89c1e93C17", + "name": "MYSO Token", + "symbol": "MYT", + "chain_id": 1, + "decimals": 18 + } + }, + "zk": { + "file_path": "airdrops/zk.csv.gz", + "file_hash": "9b1ad54be547f0629fb436c72708511dbfef713423be57cd8226d0150836025b", + "asset_identifier": "eip155:324/erc20:0x5A7d6b2F92C77FAD6CCaBd7EE0624E64907Eaf3E", + "url": "https://claim.zknation.io/", + "name": "ZK", + "icon": "zksync.jpg", + "cutoff_time": 1735862400, + "has_decoder": false, + "new_asset_data": { + "asset_type": "EVM_TOKEN", + "address": "0x5A7d6b2F92C77FAD6CCaBd7EE0624E64907Eaf3E", + "name": "ZKsync", + "symbol": "ZK", + "chain_id": 324, + "decimals": 18 + } + }, + "degen2_season4": { + "file_path": "airdrops/degen2_season4.csv.gz", + "file_hash": "04032582a08a1056946a160bda74adfae0c7eae219aac32d051a73bc03f21814", + "asset_identifier": "eip155:8453/erc20:0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed", + "url": "https://www.degen.tips/airdrop2/season4", + "name": "DEGEN", + "icon": "degen.svg", + "icon_path": "airdrops/icons/degen.svg", + "cutoff_time": 1719532800, + "new_asset_data": { + "asset_type": "EVM_TOKEN", + "address": "0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed", + "name": "Degen", + "symbol": "DEGEN", + "chain_id": 8453, + "decimals": 18 + } + }, + "debridge_1": { + "file_path": "airdrops/debridge_1.csv.gz", + "file_hash": "3422e738ae5b645193e53786bed7e77c805b675ca6d64e2488feb9ed14ea8db1", + "asset_identifier": "DBR", + "url": "https://debridge.foundation/", + "name": "DBR", + "icon": "debridge.svg", + "icon_path": "airdrops/icons/debridge.svg", + "new_asset_data": { + "asset_type": "SOLANA_TOKEN", + "name": "DeBridge", + "address": "DBRiDgJAMsM95moTzJs7M9LnkGErpbv9v6CUR1DXnUu5", + "symbol": "DBR", + "decimals": 6, + "coingecko": "debridge" + } + }, + "odos": { + "file_path": "airdrops/odos.csv.gz", + "file_hash": "fc6adb21e478de65affc4ab1312bd96f084544e255190cfdbd1796c170a4c516", + "asset_identifier": "eip155:8453/erc20:0xca73ed1815e5915489570014e024b7EbE65dE679", + "url": "https://app.odos.xyz/rewards", + "name": "Odos", + "icon": "odos.svg", + "has_decoder": true, + "new_asset_data": { + "asset_type": "EVM_TOKEN", + "address": "0xca73ed1815e5915489570014e024b7EbE65dE679", + "name": "Odos Token", + "symbol": "ODOS", + "chain_id": 8453, + "decimals": 18 + } + }, + "superfluid_s1": { + "file_path": "airdrops/superfluid_1.csv.gz", + "file_hash": "7fd8aaa7dca8813e4d724ce3120037fefb1fc81d22d6c1b27615bc3c21aee456", + "asset_identifier": "eip155:8453/erc20:0xa69f80524381275A7fFdb3AE01c54150644c8792", + "url": "https://claim.superfluid.org/", + "name": "Superfluid Season 1", + "icon": "superliquid.svg", + "icon_path": "airdrops/icons/sup.svg", + "has_decoder": true, + "new_asset_data": { + "asset_type": "EVM_TOKEN", + "address": "0xa69f80524381275A7fFdb3AE01c54150644c8792", + "name": "Superfluid Token", + "symbol": "SUP", + "chain_id": 8453, + "decimals": 18 + } + }, + "squill_airdrop_1": { + "file_path": "airdrops/squill_airdrop_1.csv.gz", + "file_hash": "682f6d3acad724585ea0351ad18bec632499adbe58652c34188f587de2c2556a", + "asset_identifier": "eip155:1/erc20:0x7ebAB7190d3d574ce82D29F2FA1422f18E29969C", + "url": "https://github.com/open-stablecoin-index/squill-drop/blob/main/README.md", + "name": "Squill airdrop 1", + "icon": "squill.png", + "icon_path": "airdrops/icons/squill.png", + "has_decoder": false, + "new_asset_data": { + "asset_type": "EVM_TOKEN", + "address": "0x7ebAB7190d3d574ce82D29F2FA1422f18E29969C", + "name": "Squill", + "symbol": "SQUILL", + "chain_id": 1, + "decimals": 18, + "coingecko": "squill" + } + }, + "squill_airdrop_2": { + "file_path": "airdrops/squill_airdrop_2.csv.gz", + "file_hash": "c34c3b516507bca4e279e1cf30db7afceb1b51b88573917eaaa2036fabbd4f28", + "asset_identifier": "eip155:1/erc20:0x7ebAB7190d3d574ce82D29F2FA1422f18E29969C", + "url": "https://github.com/open-stablecoin-index/squill-drop/blob/main/README.md", + "name": "Squill airdrop 2", + "icon": "squill.png", + "icon_path": "airdrops/icons/squill.png", + "has_decoder": false, + "new_asset_data": { + "asset_type": "EVM_TOKEN", + "address": "0x7ebAB7190d3d574ce82D29F2FA1422f18E29969C", + "name": "Squill", + "symbol": "SQUILL", + "chain_id": 1, + "decimals": 18, + "coingecko": "squill" + } + }, + "squill_airdrop_3": { + "file_path": "airdrops/squill_airdrop_3.csv.gz", + "file_hash": "37a1314e99225a1de1ba73ec3e9622e89435676642cc7b8e7af19c50c14e3324", + "asset_identifier": "eip155:1/erc20:0x7ebAB7190d3d574ce82D29F2FA1422f18E29969C", + "url": "https://github.com/open-stablecoin-index/squill-drop/blob/main/README.md", + "name": "Squill airdrop 3", + "icon": "squill.png", + "icon_path": "airdrops/icons/squill.png", + "has_decoder": false, + "new_asset_data": { + "asset_type": "EVM_TOKEN", + "address": "0x7ebAB7190d3d574ce82D29F2FA1422f18E29969C", + "name": "Squill", + "symbol": "SQUILL", + "chain_id": 1, + "decimals": 18, + "coingecko": "squill" + } + } + }, + "poap_airdrops": { + "aave_v2_pioneers": [ + "airdrops/poap/poap_aave_v2_pioneers.json", + "https://poap.delivery/aave-v2-pioneers", + "AAVE V2 Pioneers", + "3c93a244714a8b00cf9543668d93dcd42ba7fef79ced360624045a0f0cbee422" + ], + "beacon_chain_first_1024": [ + "airdrops/poap/poap_beacon_chain_first_1024.json", + "https://poap.delivery/beacon-chain-first-1024", + "Beacon Chain First 1024 Depositors and Proposers", + "5d9c3e0f2a0d66bd2c1464e11cab372630b663729f62a38412df8842e1fb98c1" + ], + "beacon_chain_first_32769": [ + "airdrops/poap/poap_beacon_chain_first_32769.json", + "https://poap.delivery/beacon-chain-first-32769", + "Beacon Chain First 32,769 Block Validators", + "89384405cc89a441c8149fc85e33ed96735298304f60fefb21a2d7bdae21f0fb" + ], + "coingecko_yield_farming": [ + "airdrops/poap/poap_coingecko_yield_farming.json", + "https://poap.delivery/coin-gecko", + "Coin Gecko Yield Farming", + "4eedd7ed7e18147d072cd579b6e7cc296236c6f308797a730e055d0dc28b4d89" + ], + "eth2_genesis": [ + "airdrops/poap/poap_eth2_genesis.json", + "https://poap.delivery/eth2-genesis/", + "Beacon Chain Genesis Depositor", + "dace95be8447daf5e41c09bac2bd6c9ebeda2a25cd75b3b08e1c1b4335463571" + ], + "half_rekt": [ + "airdrops/poap/poap_half_rekt.json", + "https://poap.delivery/half-rekt", + "Half Rekt", + "03cb853bb1461c6f0be85062a91e500569a15230df931d33d5f085e8209b4873" + ], + "keep_stakers": [ + "airdrops/poap/poap_keep_stakers.json", + "https://poap.delivery/keep-stakers", + "KEEP Network Mainnet Stakers", + "5164bbf3697943913d5fc21170633fb1b989dd4c9542d8b33f1432f8f61d692e" + ], + "lumberjackers": [ + "airdrops/poap/poap_lumberjackers.json", + "https://poap.delivery/lumberjackers", + "False Start Lumberjackers", + "1317292422bee793690f487a4c9353138a77346b2c6d1517adb193da798893b6" + ], + "medalla": [ + "airdrops/poap/poap_medalla.json", + "https://poap.delivery/medalla", + "Medalla Validator", + "25833c3439db18226c190b745e84b42404ad80cac5ab18cd78d5fd1210b53401" + ], + "muir_glacier": [ + "airdrops/poap/poap_muir_glacier.json", + "https://poap.delivery/muir-glacier", + "Muir Glacier", + "5870e1fb9daea0d72d6bec445eb9d9c1d4d9c2b0bae7c6803c4ebdb51a5bd21d" + ], + "proof_of_gucci": [ + "airdrops/poap/poap_proof_of_gucci.json", + "https://poap.delivery/proof-of-gucci", + "YFI - Proof of Gucci", + "59f3f664659705f7d4979db212683878a1db00d6752e28e1182c7facbed7fd0c" + ], + "proof_of_gucci_design_competition": [ + "airdrops/poap/poap_proof_of_gucci_design_competition.json", + "https://poap.delivery/proof-of-gucci-design", + "YFI - Proof of Gucci Design Competition", + "efc19106e9386b66d948f975224f18e0d78806f208c1e3795c3565ab1a75cd1c" + ], + "resuscitators": [ + "airdrops/poap/poap_resucitators.json", + "https://poap.delivery/medalla-resuscitator", + "Medalla Resuscitators", + "f414f159e4e3101eefc0641764480b62700fac08e51ad754ecc60e40e0be0bb8" + ], + "yam": [ + "airdrops/poap/poap_yam.json", + "https://poap.delivery/yam", + "Yam Heroes", + "c4a4e65fd36772a91c3ae4cc7315c81399f094a65d3b93d55317d0fc2459f271" + ], + "ycover": [ + "airdrops/poap/poap_ycover.json", + "https://poap.delivery/ycover", + "A New Face For yCover", + "2459489f09a3e8493e65249a4198f60fd1c0e163846312b89c449ef428e3072d" + ], + "yfi_og": [ + "airdrops/poap/poap_yfi_og.json", + "https://poap.delivery/yfi-og", + "I Played 4 YFI", + "d1aabcc0fb66fe04fd6a88e5e7225a8d88c21b512daa2ca0fda1fd0f929a3cb1" + ] + } +} diff --git a/airdrops/lido_airdrop.csv.gz b/airdrops/lido_airdrop.csv.gz new file mode 100644 index 0000000..8a89643 Binary files /dev/null and b/airdrops/lido_airdrop.csv.gz differ diff --git a/airdrops/myso.csv.gz b/airdrops/myso.csv.gz new file mode 100644 index 0000000..e24c17e Binary files /dev/null and b/airdrops/myso.csv.gz differ diff --git a/airdrops/odos.csv.gz b/airdrops/odos.csv.gz new file mode 100644 index 0000000..ed31fd4 Binary files /dev/null and b/airdrops/odos.csv.gz differ diff --git a/airdrops/omni.csv.gz b/airdrops/omni.csv.gz new file mode 100644 index 0000000..dd1aba6 Binary files /dev/null and b/airdrops/omni.csv.gz differ diff --git a/airdrops/op_airdrop_5.csv.gz b/airdrops/op_airdrop_5.csv.gz new file mode 100644 index 0000000..45f9309 Binary files /dev/null and b/airdrops/op_airdrop_5.csv.gz differ diff --git a/airdrops/optimism_4.csv.gz b/airdrops/optimism_4.csv.gz new file mode 100644 index 0000000..3447b63 Binary files /dev/null and b/airdrops/optimism_4.csv.gz differ diff --git a/airdrops/psp.csv.gz b/airdrops/psp.csv.gz new file mode 100644 index 0000000..f7797bf Binary files /dev/null and b/airdrops/psp.csv.gz differ diff --git a/airdrops/saddle_finance.csv.gz b/airdrops/saddle_finance.csv.gz new file mode 100644 index 0000000..dff3fff Binary files /dev/null and b/airdrops/saddle_finance.csv.gz differ diff --git a/airdrops/shapeshift.csv.gz b/airdrops/shapeshift.csv.gz new file mode 100644 index 0000000..a49d504 Binary files /dev/null and b/airdrops/shapeshift.csv.gz differ diff --git a/airdrops/shutter.csv.gz b/airdrops/shutter.csv.gz new file mode 100644 index 0000000..45091ac Binary files /dev/null and b/airdrops/shutter.csv.gz differ diff --git a/airdrops/squill_airdrop_1.csv.gz b/airdrops/squill_airdrop_1.csv.gz new file mode 100644 index 0000000..1481703 Binary files /dev/null and b/airdrops/squill_airdrop_1.csv.gz differ diff --git a/airdrops/squill_airdrop_2.csv.gz b/airdrops/squill_airdrop_2.csv.gz new file mode 100644 index 0000000..6e3f0ae Binary files /dev/null and b/airdrops/squill_airdrop_2.csv.gz differ diff --git a/airdrops/squill_airdrop_3.csv.gz b/airdrops/squill_airdrop_3.csv.gz new file mode 100644 index 0000000..dd5d841 Binary files /dev/null and b/airdrops/squill_airdrop_3.csv.gz differ diff --git a/airdrops/starknet.csv.gz b/airdrops/starknet.csv.gz new file mode 100644 index 0000000..580d425 Binary files /dev/null and b/airdrops/starknet.csv.gz differ diff --git a/airdrops/superfluid_1.csv.gz b/airdrops/superfluid_1.csv.gz new file mode 100644 index 0000000..b6e3692 Binary files /dev/null and b/airdrops/superfluid_1.csv.gz differ diff --git a/airdrops/tornado.csv.gz b/airdrops/tornado.csv.gz new file mode 100644 index 0000000..503efa4 Binary files /dev/null and b/airdrops/tornado.csv.gz differ diff --git a/airdrops/uniswap.csv.gz b/airdrops/uniswap.csv.gz new file mode 100644 index 0000000..814ad26 Binary files /dev/null and b/airdrops/uniswap.csv.gz differ diff --git a/airdrops/zk.csv.gz b/airdrops/zk.csv.gz new file mode 100644 index 0000000..861b54c Binary files /dev/null and b/airdrops/zk.csv.gz differ diff --git a/scripts/parquet_to_csv.py b/scripts/parquet_to_csv.py new file mode 100755 index 0000000..04d9ba2 --- /dev/null +++ b/scripts/parquet_to_csv.py @@ -0,0 +1,68 @@ +#!/usr/bin/env -S uv run +# /// script +# requires-python = ">=3.11" +# dependencies = [ +# "polars>=1.0", +# ] +# /// +"""Convert every Parquet file in a directory to a gzip-compressed CSV file.""" + +import argparse +import gzip +from pathlib import Path + +import polars as pl + + +DEFAULT_AIRDROPS_DIR = Path(__file__).resolve().parent.parent / "airdrops" + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "directory", + nargs="?", + type=Path, + default=DEFAULT_AIRDROPS_DIR, + help="directory containing Parquet files (default: repository airdrops directory)", + ) + return parser.parse_args() + + +def convert_file(parquet_path: Path) -> Path: + output_path = parquet_path.with_suffix(".csv.gz") + temporary_path = output_path.with_suffix(f"{output_path.suffix}.tmp") + + try: + dataframe = pl.read_parquet(parquet_path) + with temporary_path.open(mode="wb") as temporary_file: + with gzip.GzipFile( + filename="", + mode="wb", + fileobj=temporary_file, + mtime=0, + ) as compressed_file: + dataframe.write_csv(compressed_file) + temporary_path.replace(output_path) + finally: + temporary_path.unlink(missing_ok=True) + + return output_path + + +def main() -> None: + directory = parse_args().directory.expanduser().resolve() + if not directory.is_dir(): + raise SystemExit(f"Directory does not exist: {directory}") + + parquet_paths = sorted(directory.glob("*.parquet")) + if not parquet_paths: + raise SystemExit(f"No Parquet files found in: {directory}") + + for parquet_path in parquet_paths: + output_path = convert_file(parquet_path) + print(f"{parquet_path.name} -> {output_path.name}") + + +if __name__ == "__main__": + main()