web3-wizzard-lib 1.6.10__py3-none-any.whl → 1.6.12__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- web3_wizzard_lib/resources/abi/aave.json +282 -0
- web3_wizzard_lib/resources/abi/abbysworld.json +1113 -0
- web3_wizzard_lib/resources/abi/arena_games.json +15 -0
- web3_wizzard_lib/resources/abi/asmatch.json +1113 -0
- web3_wizzard_lib/resources/abi/basiliks.json +1467 -0
- web3_wizzard_lib/resources/abi/bilinear.json +1375 -0
- web3_wizzard_lib/resources/abi/bungee.json +525 -0
- web3_wizzard_lib/resources/abi/coredao.json +1068 -0
- web3_wizzard_lib/resources/abi/coredao_bridge.json +1012 -0
- web3_wizzard_lib/resources/abi/dmail.json +964 -0
- web3_wizzard_lib/resources/abi/empty_nft.json +1131 -0
- web3_wizzard_lib/resources/abi/era_ns.json +878 -0
- web3_wizzard_lib/resources/abi/eralend.json +1221 -0
- web3_wizzard_lib/resources/abi/erc20.json +801 -0
- web3_wizzard_lib/resources/abi/erc20_test.json +337 -0
- web3_wizzard_lib/resources/abi/eth_scroll_bridge.json +675 -0
- web3_wizzard_lib/resources/abi/frog_war_contract.json +1943 -0
- web3_wizzard_lib/resources/abi/gmx_reward_router.json +749 -0
- web3_wizzard_lib/resources/abi/horizondex.json +413 -0
- web3_wizzard_lib/resources/abi/horizondex_quoter.json +273 -0
- web3_wizzard_lib/resources/abi/imagine.json +457 -0
- web3_wizzard_lib/resources/abi/izumi.json +532 -0
- web3_wizzard_lib/resources/abi/kreatorland.json +500 -0
- web3_wizzard_lib/resources/abi/layerbank.json +1240 -0
- web3_wizzard_lib/resources/abi/layerbank_price.json +354 -0
- web3_wizzard_lib/resources/abi/layerbank_token.json +1124 -0
- web3_wizzard_lib/resources/abi/linea_day_2.json +933 -0
- web3_wizzard_lib/resources/abi/linea_day_3.json +1804 -0
- web3_wizzard_lib/resources/abi/linea_ens_names.json +1000 -0
- web3_wizzard_lib/resources/abi/lineaswap_router.json +973 -0
- web3_wizzard_lib/resources/abi/maverick_ipool.json +942 -0
- web3_wizzard_lib/resources/abi/maverick_multicall.json +1082 -0
- web3_wizzard_lib/resources/abi/mendi_token.json +1690 -0
- web3_wizzard_lib/resources/abi/merkly.json +787 -0
- web3_wizzard_lib/resources/abi/micro3.json +1054 -0
- web3_wizzard_lib/resources/abi/mute_router.json +856 -0
- web3_wizzard_lib/resources/abi/new_rage_abi.json +1944 -0
- web3_wizzard_lib/resources/abi/nidus.json +1017 -0
- web3_wizzard_lib/resources/abi/nile_pool.json +1313 -0
- web3_wizzard_lib/resources/abi/nomis.json +1601 -0
- web3_wizzard_lib/resources/abi/nomis_attest.json +710 -0
- web3_wizzard_lib/resources/abi/octomos.json +408 -0
- web3_wizzard_lib/resources/abi/omnisea.json +175 -0
- web3_wizzard_lib/resources/abi/orbiter_starknet.json +48 -0
- web3_wizzard_lib/resources/abi/pancake/factory.json +450 -0
- web3_wizzard_lib/resources/abi/pancake/pool.json +713 -0
- web3_wizzard_lib/resources/abi/pancake/quoter.json +285 -0
- web3_wizzard_lib/resources/abi/pancake/router.json +1271 -0
- web3_wizzard_lib/resources/abi/rage_claim.json +218 -0
- web3_wizzard_lib/resources/abi/reactor_fusion.json +1479 -0
- web3_wizzard_lib/resources/abi/readon.json +71 -0
- web3_wizzard_lib/resources/abi/rubyscore.json +698 -0
- web3_wizzard_lib/resources/abi/satoshi_universe.json +301 -0
- web3_wizzard_lib/resources/abi/scroll_bridge.json +666 -0
- web3_wizzard_lib/resources/abi/scroll_canvas_mint.json +602 -0
- web3_wizzard_lib/resources/abi/scroll_oracle.json +714 -0
- web3_wizzard_lib/resources/abi/snap.json +622 -0
- web3_wizzard_lib/resources/abi/socialscan.json +884 -0
- web3_wizzard_lib/resources/abi/stargate_farming.json +494 -0
- web3_wizzard_lib/resources/abi/stargate_router.json +1341 -0
- web3_wizzard_lib/resources/abi/stargate_swapETH_abi.json +106 -0
- web3_wizzard_lib/resources/abi/stargate_token_pool.json +1940 -0
- web3_wizzard_lib/resources/abi/stargate_v2.json +1936 -0
- web3_wizzard_lib/resources/abi/syncswap_classic_pool.json +151 -0
- web3_wizzard_lib/resources/abi/syncswap_classic_pool_factory.json +151 -0
- web3_wizzard_lib/resources/abi/syncswap_pool.json +924 -0
- web3_wizzard_lib/resources/abi/syncswap_router.json +1178 -0
- web3_wizzard_lib/resources/abi/syncswap_stable_pool.json +950 -0
- web3_wizzard_lib/resources/abi/tavaera.json +586 -0
- web3_wizzard_lib/resources/abi/tavaera_id.json +724 -0
- web3_wizzard_lib/resources/abi/townstory.json +391 -0
- web3_wizzard_lib/resources/abi/townstory_bonus.json +279 -0
- web3_wizzard_lib/resources/abi/uniswap_abi.json +193 -0
- web3_wizzard_lib/resources/abi/velocore.json +1008 -0
- web3_wizzard_lib/resources/abi/velocore_lens.json +1030 -0
- web3_wizzard_lib/resources/abi/velocore_pool.json +490 -0
- web3_wizzard_lib/resources/abi/velocore_vault.json +1272 -0
- web3_wizzard_lib/resources/abi/weth.json +279 -0
- web3_wizzard_lib/resources/abi/woofi.json +400 -0
- web3_wizzard_lib/resources/abi/yoddlo.json +67 -0
- web3_wizzard_lib/resources/abi/zebra.json +1075 -0
- web3_wizzard_lib/resources/abi/zerolend.json +282 -0
- web3_wizzard_lib/resources/abi/zerolend_liquidity.json +1038 -0
- web3_wizzard_lib/resources/abi/zkdx_data.json +436 -0
- web3_wizzard_lib/resources/abi/zks.json +671 -0
- web3_wizzard_lib/resources/banner.txt +7 -0
- web3_wizzard_lib/resources/goerli/contracts.json +48 -0
- web3_wizzard_lib/resources/goerli/networks.json +139 -0
- web3_wizzard_lib/resources/goerli/pairs.json +113 -0
- web3_wizzard_lib/resources/goerli/tokens.json +40 -0
- web3_wizzard_lib/resources/local/contracts.json +150 -0
- web3_wizzard_lib/resources/local/networks.json +119 -0
- web3_wizzard_lib/resources/local/pairs.json +451 -0
- web3_wizzard_lib/resources/local/tokens.json +88 -0
- web3_wizzard_lib/resources/main/contracts.json +231 -0
- web3_wizzard_lib/resources/main/networks.json +272 -0
- web3_wizzard_lib/resources/main/pairs.json +516 -0
- web3_wizzard_lib/resources/main/tokens.json +119 -0
- web3_wizzard_lib/resources/verify_data.json +1243 -0
- web3_wizzard_lib-1.6.12.dist-info/METADATA +10 -0
- web3_wizzard_lib-1.6.12.dist-info/RECORD +107 -0
- web3_wizzard_lib-1.6.12.dist-info/top_level.txt +1 -0
- web3_wizzard_lib/core/__init__.py +0 -1
- web3_wizzard_lib/core/contract/__init__.py +0 -0
- web3_wizzard_lib/core/contract/aavecontract.py +0 -36
- web3_wizzard_lib/core/contract/alienswap_contract.py +0 -21
- web3_wizzard_lib/core/contract/arena_games_contract.py +0 -16
- web3_wizzard_lib/core/contract/basiliskcontract.py +0 -58
- web3_wizzard_lib/core/contract/bilinear_contract.py +0 -22
- web3_wizzard_lib/core/contract/bungee.py +0 -33
- web3_wizzard_lib/core/contract/coredao_contract.py +0 -34
- web3_wizzard_lib/core/contract/coredao_from_contract.py +0 -40
- web3_wizzard_lib/core/contract/dmail_send_mail.py +0 -18
- web3_wizzard_lib/core/contract/empty_nft.py +0 -18
- web3_wizzard_lib/core/contract/era_name.py +0 -23
- web3_wizzard_lib/core/contract/eralendcontract.py +0 -34
- web3_wizzard_lib/core/contract/eth_scroll_bridge_contract.py +0 -25
- web3_wizzard_lib/core/contract/frog_war_contract.py +0 -48
- web3_wizzard_lib/core/contract/gmx_reward_router.py +0 -22
- web3_wizzard_lib/core/contract/horizondex_quoter.py +0 -14
- web3_wizzard_lib/core/contract/horizondex_router.py +0 -91
- web3_wizzard_lib/core/contract/imagine_contract.py +0 -18
- web3_wizzard_lib/core/contract/izumi.py +0 -63
- web3_wizzard_lib/core/contract/kreatorland_contract.py +0 -21
- web3_wizzard_lib/core/contract/l0_claim.py +0 -254
- web3_wizzard_lib/core/contract/l2_telegraph.py +0 -21
- web3_wizzard_lib/core/contract/layerbank_price.py +0 -18
- web3_wizzard_lib/core/contract/layerbank_token.py +0 -29
- web3_wizzard_lib/core/contract/layerbankcontract.py +0 -59
- web3_wizzard_lib/core/contract/linea_day_2_contract.py +0 -19
- web3_wizzard_lib/core/contract/linea_day_3_contract.py +0 -55
- web3_wizzard_lib/core/contract/linea_ens_names_contract.py +0 -55
- web3_wizzard_lib/core/contract/lineaswaprouter.py +0 -52
- web3_wizzard_lib/core/contract/maverick_multicall.py +0 -52
- web3_wizzard_lib/core/contract/mendi_finance_contract.py +0 -11
- web3_wizzard_lib/core/contract/mendi_token.py +0 -25
- web3_wizzard_lib/core/contract/merkly_minter.py +0 -47
- web3_wizzard_lib/core/contract/micro3_contract.py +0 -18
- web3_wizzard_lib/core/contract/mute_router.py +0 -93
- web3_wizzard_lib/core/contract/new_rage_contract.py +0 -31
- web3_wizzard_lib/core/contract/nidum_contract.py +0 -44
- web3_wizzard_lib/core/contract/nile_contract.py +0 -60
- web3_wizzard_lib/core/contract/nomis_attest_contract.py +0 -40
- web3_wizzard_lib/core/contract/nomis_contract.py +0 -40
- web3_wizzard_lib/core/contract/octomos.py +0 -31
- web3_wizzard_lib/core/contract/odos.py +0 -104
- web3_wizzard_lib/core/contract/omnisea.py +0 -29
- web3_wizzard_lib/core/contract/orbiter_starknet.py +0 -30
- web3_wizzard_lib/core/contract/pancake_pool.py +0 -19
- web3_wizzard_lib/core/contract/pancake_quoter.py +0 -20
- web3_wizzard_lib/core/contract/pancake_router.py +0 -72
- web3_wizzard_lib/core/contract/rage_claim.py +0 -24
- web3_wizzard_lib/core/contract/reactor_fusion_contract.py +0 -78
- web3_wizzard_lib/core/contract/readon_contract.py +0 -19
- web3_wizzard_lib/core/contract/rubyscore_contract.py +0 -31
- web3_wizzard_lib/core/contract/satoshi_universe_contract.py +0 -29
- web3_wizzard_lib/core/contract/scroll_bridge_contract.py +0 -24
- web3_wizzard_lib/core/contract/scroll_canvas_mint_contract.py +0 -26
- web3_wizzard_lib/core/contract/scroll_oracle.py +0 -11
- web3_wizzard_lib/core/contract/snap_contract.py +0 -16
- web3_wizzard_lib/core/contract/social_scan_contract.py +0 -20
- web3_wizzard_lib/core/contract/stargate_farming.py +0 -37
- web3_wizzard_lib/core/contract/stargate_router.py +0 -84
- web3_wizzard_lib/core/contract/stargate_router_eth.py +0 -41
- web3_wizzard_lib/core/contract/stargate_token_pool.py +0 -45
- web3_wizzard_lib/core/contract/stargate_v2_contract.py +0 -36
- web3_wizzard_lib/core/contract/syncswap_classic_pool.py +0 -15
- web3_wizzard_lib/core/contract/syncswap_classic_pool_factory.py +0 -15
- web3_wizzard_lib/core/contract/syncswap_pool.py +0 -25
- web3_wizzard_lib/core/contract/syncswap_router.py +0 -123
- web3_wizzard_lib/core/contract/tavaera_id.py +0 -18
- web3_wizzard_lib/core/contract/tavaera_mint.py +0 -17
- web3_wizzard_lib/core/contract/townstory_bonus_contract.py +0 -19
- web3_wizzard_lib/core/contract/townstory_contract.py +0 -21
- web3_wizzard_lib/core/contract/velocore_lens.py +0 -44
- web3_wizzard_lib/core/contract/velocore_pool.py +0 -198
- web3_wizzard_lib/core/contract/velocore_router.py +0 -80
- web3_wizzard_lib/core/contract/woofi_swap.py +0 -29
- web3_wizzard_lib/core/contract/xy_finance_contract.py +0 -87
- web3_wizzard_lib/core/contract/yoddlo_contract.py +0 -19
- web3_wizzard_lib/core/contract/yuliverse_contract.py +0 -36
- web3_wizzard_lib/core/contract/zebra_contract.py +0 -68
- web3_wizzard_lib/core/contract/zerolend_contract.py +0 -34
- web3_wizzard_lib/core/contract/zerolend_liq_contract.py +0 -20
- web3_wizzard_lib/core/contract/zkdx_contract.py +0 -40
- web3_wizzard_lib/core/contract/zkdx_data.py +0 -14
- web3_wizzard_lib/core/contract/zks.py +0 -24
- web3_wizzard_lib/core/modules/__init__.py +0 -0
- web3_wizzard_lib/core/modules/ads_import_proxy.py +0 -52
- web3_wizzard_lib/core/modules/airdrop_printer.py +0 -81
- web3_wizzard_lib/core/modules/bank/__init__.py +0 -0
- web3_wizzard_lib/core/modules/bank/aave.py +0 -25
- web3_wizzard_lib/core/modules/bank/bank.py +0 -15
- web3_wizzard_lib/core/modules/bank/basilisk.py +0 -25
- web3_wizzard_lib/core/modules/bank/eralend.py +0 -25
- web3_wizzard_lib/core/modules/bank/layerbank.py +0 -116
- web3_wizzard_lib/core/modules/bank/mendi_finance.py +0 -57
- web3_wizzard_lib/core/modules/bank/reactorfusion.py +0 -25
- web3_wizzard_lib/core/modules/bank/zerolend.py +0 -36
- web3_wizzard_lib/core/modules/bank_module.py +0 -99
- web3_wizzard_lib/core/modules/bridge/__init__.py +0 -0
- web3_wizzard_lib/core/modules/bridge/bridge.py +0 -8
- web3_wizzard_lib/core/modules/bridge/coredao_bridge_sub.py +0 -47
- web3_wizzard_lib/core/modules/bridge/orbiter_sub.py +0 -112
- web3_wizzard_lib/core/modules/bridge/scroll_bridge_sub.py +0 -42
- web3_wizzard_lib/core/modules/bridge/stargate_v2_sub.py +0 -74
- web3_wizzard_lib/core/modules/bridge_module.py +0 -47
- web3_wizzard_lib/core/modules/bungee.py +0 -109
- web3_wizzard_lib/core/modules/cex_sender.py +0 -60
- web3_wizzard_lib/core/modules/cex_subaccount_transfer.py +0 -34
- web3_wizzard_lib/core/modules/cex_withdraw.py +0 -91
- web3_wizzard_lib/core/modules/claimer.py +0 -45
- web3_wizzard_lib/core/modules/claims/__init__.py +0 -0
- web3_wizzard_lib/core/modules/claims/layerzero_claimer.py +0 -64
- web3_wizzard_lib/core/modules/claims/rabby_claimer.py +0 -81
- web3_wizzard_lib/core/modules/concrete_swap.py +0 -108
- web3_wizzard_lib/core/modules/coredao_bridge.py +0 -32
- web3_wizzard_lib/core/modules/coredao_bridge_auto.py +0 -39
- web3_wizzard_lib/core/modules/debank_checker.py +0 -78
- web3_wizzard_lib/core/modules/dmail.py +0 -54
- web3_wizzard_lib/core/modules/erc20_balance.py +0 -42
- web3_wizzard_lib/core/modules/gmx_reward.py +0 -25
- web3_wizzard_lib/core/modules/intract/__init__.py +0 -0
- web3_wizzard_lib/core/modules/intract/intract_api.py +0 -212
- web3_wizzard_lib/core/modules/intract/utils.py +0 -81
- web3_wizzard_lib/core/modules/intract_claim.py +0 -101
- web3_wizzard_lib/core/modules/layer_2_20.py +0 -65
- web3_wizzard_lib/core/modules/lending_module.py +0 -134
- web3_wizzard_lib/core/modules/linea_appeal.py +0 -98
- web3_wizzard_lib/core/modules/linea_poh_lxp.py +0 -65
- web3_wizzard_lib/core/modules/liquidity/__init__.py +0 -0
- web3_wizzard_lib/core/modules/liquidity/nile_pool.py +0 -64
- web3_wizzard_lib/core/modules/liquidity/pool.py +0 -16
- web3_wizzard_lib/core/modules/liquidity/syncswap_pool.py +0 -61
- web3_wizzard_lib/core/modules/liquidity/velocore_pool.py +0 -55
- web3_wizzard_lib/core/modules/liquidity/zerolend_liquidity.py +0 -26
- web3_wizzard_lib/core/modules/liquidity_pool.py +0 -60
- web3_wizzard_lib/core/modules/merkly_refuel.py +0 -87
- web3_wizzard_lib/core/modules/new_rage_withdraw.py +0 -41
- web3_wizzard_lib/core/modules/nft/__init__.py +0 -0
- web3_wizzard_lib/core/modules/nft/abbys_world.py +0 -22
- web3_wizzard_lib/core/modules/nft/acg_worlds.py +0 -25
- web3_wizzard_lib/core/modules/nft/alienswap_linea.py +0 -22
- web3_wizzard_lib/core/modules/nft/arena_games.py +0 -22
- web3_wizzard_lib/core/modules/nft/asmatch.py +0 -22
- web3_wizzard_lib/core/modules/nft/battlemon.py +0 -25
- web3_wizzard_lib/core/modules/nft/bilinear.py +0 -22
- web3_wizzard_lib/core/modules/nft/bitavatar.py +0 -25
- web3_wizzard_lib/core/modules/nft/culture_satoshi_universe.py +0 -24
- web3_wizzard_lib/core/modules/nft/efrogs.py +0 -26
- web3_wizzard_lib/core/modules/nft/empty_nft.py +0 -22
- web3_wizzard_lib/core/modules/nft/era_domain.py +0 -42
- web3_wizzard_lib/core/modules/nft/frog_war.py +0 -22
- web3_wizzard_lib/core/modules/nft/frog_war_bonus.py +0 -22
- web3_wizzard_lib/core/modules/nft/gamerboom.py +0 -25
- web3_wizzard_lib/core/modules/nft/gamerboom_bonus.py +0 -26
- web3_wizzard_lib/core/modules/nft/imagine.py +0 -32
- web3_wizzard_lib/core/modules/nft/kreatorland_module.py +0 -35
- web3_wizzard_lib/core/modules/nft/l2_telegraph_module.py +0 -22
- web3_wizzard_lib/core/modules/nft/layer3_meta.py +0 -25
- web3_wizzard_lib/core/modules/nft/linea_culture_2_2_linus.py +0 -24
- web3_wizzard_lib/core/modules/nft/linea_culture_2_3_yooldo.py +0 -24
- web3_wizzard_lib/core/modules/nft/linea_culture_2_4_frogwar.py +0 -24
- web3_wizzard_lib/core/modules/nft/linea_culture_2_5_acg.py +0 -25
- web3_wizzard_lib/core/modules/nft/linea_culture_2_6_ascend_the_end.py +0 -25
- web3_wizzard_lib/core/modules/nft/linea_culture_3_1_ascend_the_end.py +0 -25
- web3_wizzard_lib/core/modules/nft/linea_culture_3_2_sending_me.py +0 -25
- web3_wizzard_lib/core/modules/nft/linea_culture_3_3_townstory.py +0 -25
- web3_wizzard_lib/core/modules/nft/linea_culture_3_4_daniele.py +0 -25
- web3_wizzard_lib/core/modules/nft/linea_culture_3_5_demmortal.py +0 -25
- web3_wizzard_lib/core/modules/nft/linea_culture_3_6_foxy.py +0 -25
- web3_wizzard_lib/core/modules/nft/linea_culture_4_1_coop_records.py +0 -60
- web3_wizzard_lib/core/modules/nft/linea_culture_4_2_borja_moskv.py +0 -65
- web3_wizzard_lib/core/modules/nft/linea_culture_4_2_borja_moskv_approve.py +0 -27
- web3_wizzard_lib/core/modules/nft/linea_culture_4_3_fruit.py +0 -66
- web3_wizzard_lib/core/modules/nft/linea_culture_4_4_fruit_crux.py +0 -67
- web3_wizzard_lib/core/modules/nft/linea_culture_4_5_forbidden_fruit.py +0 -67
- web3_wizzard_lib/core/modules/nft/linea_culture_4_6_laurent.py +0 -67
- web3_wizzard_lib/core/modules/nft/linea_culture_day2.py +0 -20
- web3_wizzard_lib/core/modules/nft/linea_culture_day3.py +0 -20
- web3_wizzard_lib/core/modules/nft/linea_ens_names.py +0 -107
- web3_wizzard_lib/core/modules/nft/lucky_cat.py +0 -25
- web3_wizzard_lib/core/modules/nft/merkly_minter_module.py +0 -22
- web3_wizzard_lib/core/modules/nft/micro3.py +0 -23
- web3_wizzard_lib/core/modules/nft/mint_2048.py +0 -28
- web3_wizzard_lib/core/modules/nft/nft_submodule.py +0 -16
- web3_wizzard_lib/core/modules/nft/nidum.py +0 -87
- web3_wizzard_lib/core/modules/nft/nidum_bonus.py +0 -23
- web3_wizzard_lib/core/modules/nft/nomis.py +0 -64
- web3_wizzard_lib/core/modules/nft/nomis_attest.py +0 -66
- web3_wizzard_lib/core/modules/nft/nouns.py +0 -27
- web3_wizzard_lib/core/modules/nft/octomos.py +0 -32
- web3_wizzard_lib/core/modules/nft/omnisea.py +0 -33
- web3_wizzard_lib/core/modules/nft/omnizone.py +0 -25
- web3_wizzard_lib/core/modules/nft/orbiter_claim.py +0 -87
- web3_wizzard_lib/core/modules/nft/readon.py +0 -30
- web3_wizzard_lib/core/modules/nft/rubyscore.py +0 -45
- web3_wizzard_lib/core/modules/nft/sarubol.py +0 -22
- web3_wizzard_lib/core/modules/nft/satoshi_universe.py +0 -22
- web3_wizzard_lib/core/modules/nft/scroll_canvas_attest_year_badge.py +0 -35
- web3_wizzard_lib/core/modules/nft/scroll_canvas_mint.py +0 -51
- web3_wizzard_lib/core/modules/nft/sign.py +0 -32
- web3_wizzard_lib/core/modules/nft/snap.py +0 -25
- web3_wizzard_lib/core/modules/nft/snap_bonus.py +0 -31
- web3_wizzard_lib/core/modules/nft/social_scan.py +0 -22
- web3_wizzard_lib/core/modules/nft/tavaera.py +0 -30
- web3_wizzard_lib/core/modules/nft/townstory.py +0 -75
- web3_wizzard_lib/core/modules/nft/townstory_bonus.py +0 -45
- web3_wizzard_lib/core/modules/nft/trusta_reputation.py +0 -48
- web3_wizzard_lib/core/modules/nft/trustaa_poh.py +0 -49
- web3_wizzard_lib/core/modules/nft/uber_poh.py +0 -24
- web3_wizzard_lib/core/modules/nft/wizards_of_linea.py +0 -26
- web3_wizzard_lib/core/modules/nft/yoddlo.py +0 -22
- web3_wizzard_lib/core/modules/nft/yuliverse.py +0 -22
- web3_wizzard_lib/core/modules/nft/zace.py +0 -25
- web3_wizzard_lib/core/modules/nft/zks_domain.py +0 -41
- web3_wizzard_lib/core/modules/nft_minter.py +0 -107
- web3_wizzard_lib/core/modules/orbiter.py +0 -39
- web3_wizzard_lib/core/modules/orbiter_checker.py +0 -26
- web3_wizzard_lib/core/modules/rage.py +0 -54
- web3_wizzard_lib/core/modules/scroll_bridge.py +0 -45
- web3_wizzard_lib/core/modules/sell_all.py +0 -51
- web3_wizzard_lib/core/modules/sleep_module.py +0 -25
- web3_wizzard_lib/core/modules/smart_contract_deployment.py +0 -37
- web3_wizzard_lib/core/modules/stargate/__init__.py +0 -0
- web3_wizzard_lib/core/modules/stargate/auto_bridge.py +0 -91
- web3_wizzard_lib/core/modules/stargate/bridge.py +0 -38
- web3_wizzard_lib/core/modules/stargate/bridge_eth.py +0 -59
- web3_wizzard_lib/core/modules/stargate/bridge_tokens.py +0 -48
- web3_wizzard_lib/core/modules/stargate/classic_bridge.py +0 -34
- web3_wizzard_lib/core/modules/stargate/farming.py +0 -163
- web3_wizzard_lib/core/modules/stargate/l0_data.py +0 -10
- web3_wizzard_lib/core/modules/stargate/pool.py +0 -74
- web3_wizzard_lib/core/modules/stargate/stargate_balance_utils.py +0 -25
- web3_wizzard_lib/core/modules/stargate/stargate_gas_checker.py +0 -68
- web3_wizzard_lib/core/modules/swap/__init__.py +0 -1
- web3_wizzard_lib/core/modules/swap/horizondex.py +0 -38
- web3_wizzard_lib/core/modules/swap/izumi.py +0 -41
- web3_wizzard_lib/core/modules/swap/lineaswap.py +0 -34
- web3_wizzard_lib/core/modules/swap/maverick.py +0 -66
- web3_wizzard_lib/core/modules/swap/mute.py +0 -39
- web3_wizzard_lib/core/modules/swap/odos.py +0 -58
- web3_wizzard_lib/core/modules/swap/one_inch.py +0 -58
- web3_wizzard_lib/core/modules/swap/pancake.py +0 -41
- web3_wizzard_lib/core/modules/swap/swap_list.py +0 -11
- web3_wizzard_lib/core/modules/swap/syncswap.py +0 -62
- web3_wizzard_lib/core/modules/swap/velocore.py +0 -40
- web3_wizzard_lib/core/modules/swap/woofi.py +0 -38
- web3_wizzard_lib/core/modules/swap/xy_finance.py +0 -43
- web3_wizzard_lib/core/modules/swap/zebra.py +0 -32
- web3_wizzard_lib/core/modules/warm_up.py +0 -98
- web3_wizzard_lib/core/modules/wrapping.py +0 -74
- web3_wizzard_lib/core/modules/zkdx.py +0 -63
- web3_wizzard_lib/core/utils/__init__.py +0 -0
- web3_wizzard_lib/core/utils/ai_utils.py +0 -45
- web3_wizzard_lib/core/utils/benchmark_utils.py +0 -12
- web3_wizzard_lib/core/utils/module_memory.py +0 -28
- web3_wizzard_lib/core/utils/statistic_utils.py +0 -150
- web3_wizzard_lib/core/utils/sub_module.py +0 -8
- web3_wizzard_lib/data/__init__.py +0 -0
- web3_wizzard_lib/data/config_default.py +0 -52
- web3_wizzard_lib/data/module_config_default.py +0 -209
- web3_wizzard_lib/utils/__init__.py +0 -0
- web3_wizzard_lib/utils/debank_utils.py +0 -19
- web3_wizzard_lib-1.6.10.data/data/requirements.txt +0 -1
- web3_wizzard_lib-1.6.10.dist-info/METADATA +0 -15
- web3_wizzard_lib-1.6.10.dist-info/RECORD +0 -271
- web3_wizzard_lib-1.6.10.dist-info/top_level.txt +0 -3
- /tests/__init__.py → /web3_wizzard_lib/resources/linea_appeal.txt +0 -0
- {web3_wizzard_lib-1.6.10.dist-info → web3_wizzard_lib-1.6.12.dist-info}/WHEEL +0 -0
@@ -1,212 +0,0 @@
|
|
1
|
-
from loguru import logger
|
2
|
-
#from pyuseragents import random as random_ua
|
3
|
-
from requests import Session
|
4
|
-
from sybil_engine.utils.retry import retry
|
5
|
-
|
6
|
-
|
7
|
-
class IntractAPI:
|
8
|
-
def __init__(self, account):
|
9
|
-
self.account = account
|
10
|
-
self.session = Session()
|
11
|
-
self.session.headers['user-agent'] = random_ua()
|
12
|
-
if account.proxy is not None and account.proxy != '':
|
13
|
-
self.session.proxies.update({'http': account.proxy, 'https': account.proxy})
|
14
|
-
else:
|
15
|
-
logger.warning('You are not using proxy')
|
16
|
-
|
17
|
-
@retry(max_attempts=10, retry_interval={'from': 10, 'to': 20})
|
18
|
-
def intract_get_nonce(self, address: str):
|
19
|
-
payload = {'walletAddress': address}
|
20
|
-
url = 'https://api.intract.io/api/qv1/auth/generate-nonce'
|
21
|
-
|
22
|
-
self.session.headers.clear()
|
23
|
-
r = self.session.post(url, json=payload)
|
24
|
-
|
25
|
-
if r.json().get('success') == True:
|
26
|
-
return r.json()['data']['nonce']
|
27
|
-
else:
|
28
|
-
logger.debug(f'nonce intract response: {r.status_code} {r.reason} | {r.text}')
|
29
|
-
raise Exception(f'Couldnt generate nonce for Intract')
|
30
|
-
|
31
|
-
@retry(max_attempts=10, retry_interval={'from': 10, 'to': 20})
|
32
|
-
def intract_login(self, address: str, signature: str):
|
33
|
-
payload = {
|
34
|
-
"signature": signature,
|
35
|
-
"userAddress": address,
|
36
|
-
"chain": {"id": 59144, "name": "Linea", "network": "Linea",
|
37
|
-
"nativeCurrency": {"decimals": 18, "name": "Ether", "symbol": "ETH"},
|
38
|
-
"rpcUrls": {"public": {"http": ["https://linea.drpc.org"]}, "default": {
|
39
|
-
"http": ["https://linea-mainnet.infura.io/v3/bfc263a4f3cf49998641d16c24fd0b46"]}},
|
40
|
-
"blockExplorers": {"etherscan": {"name": "Lineascan", "url": "https://lineascan.build/"},
|
41
|
-
"default": {"name": "Lineascan", "url": "https://lineascan.build/"}},
|
42
|
-
"unsupported": False},
|
43
|
-
"isTaskLogin": False,
|
44
|
-
"width": "590px",
|
45
|
-
"reAuth": False,
|
46
|
-
"connector": "metamask",
|
47
|
-
"referralCode": None,
|
48
|
-
"referralLink": None,
|
49
|
-
"referralSource": None
|
50
|
-
}
|
51
|
-
url = 'https://api.intract.io/api/qv1/auth/wallet'
|
52
|
-
|
53
|
-
r = self.session.post(url, json=payload)
|
54
|
-
|
55
|
-
if r.json().get('isEVMLoggedIn') == True:
|
56
|
-
self.user_id = self.get_user()['_id']
|
57
|
-
|
58
|
-
self.session.headers.update({
|
59
|
-
'Cookies': r.headers["Set-Cookie"].split(';')[0],
|
60
|
-
'Questuserid': self.user_id,
|
61
|
-
})
|
62
|
-
return True
|
63
|
-
else:
|
64
|
-
logger.debug(f'login intract response: {r.status_code} {r.reason} | {r.text}')
|
65
|
-
raise Exception(f'Couldnt login Intract')
|
66
|
-
|
67
|
-
@retry(max_attempts=10, retry_interval={'from': 10, 'to': 20})
|
68
|
-
def intract_get_tasks(self, compaignID):
|
69
|
-
self.active_tasks = []
|
70
|
-
|
71
|
-
url = f'https://api.intract.io/api/qv1/campaign/{compaignID}'
|
72
|
-
r = self.session.get(url)
|
73
|
-
|
74
|
-
wave = r.json()
|
75
|
-
# for wave in r.json():
|
76
|
-
if wave["status"] == 'ACTIVE' and wave.get('locked') != True: self.active_tasks.append(wave["name"])
|
77
|
-
|
78
|
-
@retry(max_attempts=10, retry_interval={'from': 10, 'to': 20})
|
79
|
-
def set_wallet(self, address: str):
|
80
|
-
try:
|
81
|
-
if self.get_user().get('lineaWalletAddress'):
|
82
|
-
return True
|
83
|
-
|
84
|
-
payload = {
|
85
|
-
"userId": self.user_id,
|
86
|
-
"lineaWalletAddress": address
|
87
|
-
}
|
88
|
-
url = 'https://api.intract.io/api/qv1/linea/user/set-wallet'
|
89
|
-
r = self.session.post(url, json=payload)
|
90
|
-
|
91
|
-
if r.json().get('message') == "Linea wallet address updated successfully":
|
92
|
-
logger.info(f'Wallet successfully linked')
|
93
|
-
return True
|
94
|
-
except Exception as err:
|
95
|
-
raise Exception(f'Couldnt set wallet: {err} | {r.text}')
|
96
|
-
|
97
|
-
@retry(max_attempts=10, retry_interval={'from': 10, 'to': 20})
|
98
|
-
def intract_streak(self):
|
99
|
-
try:
|
100
|
-
url = 'https://api.intract.io/api/qv1/linea/user/streak'
|
101
|
-
r = self.session.post(url, json={})
|
102
|
-
|
103
|
-
streakCount = r.json().get('streakCount')
|
104
|
-
isFirstTimeMarked = r.json().get('isFirstTimeMarked')
|
105
|
-
|
106
|
-
if streakCount:
|
107
|
-
logger.info(f'New GM streak: {streakCount + 1}')
|
108
|
-
elif isFirstTimeMarked:
|
109
|
-
logger.info(f'New GM streak: 1')
|
110
|
-
elif 'Linea streak already done for today' in r.text:
|
111
|
-
logger.info(f'New GM streak: already did streak today')
|
112
|
-
else:
|
113
|
-
raise Exception(f'bad response {r.status_code} {r.reason}')
|
114
|
-
except Exception as err:
|
115
|
-
if 'Internal server error' in r.text:
|
116
|
-
logger.error(f'Couldnt use GM streak')
|
117
|
-
else:
|
118
|
-
logger.error(f'Couldnt post streak: {err} | {r.text}')
|
119
|
-
|
120
|
-
@retry(max_attempts=10, retry_interval={'from': 10, 'to': 20})
|
121
|
-
def get_user(self):
|
122
|
-
try:
|
123
|
-
url = 'https://api.intract.io/api/qv1/auth/get-user?projectId=660c1fa77851c55d93a1c0e0'
|
124
|
-
r = self.session.get(url)
|
125
|
-
return r.json()
|
126
|
-
|
127
|
-
except Exception as err:
|
128
|
-
raise Exception(f'Couldnt get user: {err} | {r.text}')
|
129
|
-
|
130
|
-
@retry(max_attempts=10, retry_interval={'from': 10, 'to': 20})
|
131
|
-
def get_super_user(self):
|
132
|
-
try:
|
133
|
-
# self.intract_streak()
|
134
|
-
|
135
|
-
url = 'https://api.intract.io/api/qv1/auth/get-super-user'
|
136
|
-
r = self.session.get(url)
|
137
|
-
|
138
|
-
return {
|
139
|
-
'achieves': len(r.json().get('badges')),
|
140
|
-
'streak': r.json().get('gmStreak')['streakCount'],
|
141
|
-
'gems': r.json().get('totalGems'),
|
142
|
-
'xp': r.json().get('totalXp'),
|
143
|
-
'super_user_id': r.json().get('_id'),
|
144
|
-
}
|
145
|
-
|
146
|
-
except Exception as err:
|
147
|
-
raise Exception(f'Couldnt get super user: {err} | {r.text}')
|
148
|
-
|
149
|
-
@retry(max_attempts=10, retry_interval={'from': 10, 'to': 20})
|
150
|
-
def claim_achievements(self):
|
151
|
-
try:
|
152
|
-
url = 'https://api.intract.io/api/qv1/achievement/init'
|
153
|
-
r = self.session.post(url)
|
154
|
-
|
155
|
-
for achieve in r.json():
|
156
|
-
if achieve["isClaimed"] == False and achieve["isCompleted"] == True:
|
157
|
-
try:
|
158
|
-
payload = {
|
159
|
-
"achievementIds": [achieve["achievementId"]]
|
160
|
-
}
|
161
|
-
url = 'https://api.intract.io/api/qv1/achievement/claim'
|
162
|
-
r = self.session.post(url, json=payload)
|
163
|
-
|
164
|
-
if 'User achievement reward already claimed' in r.text or 'User achievement not found' in r.text:
|
165
|
-
pass
|
166
|
-
else:
|
167
|
-
logger.info(f'Claimed achievement: {r.json()[0]["name"]}')
|
168
|
-
except Exception as err:
|
169
|
-
logger.error(
|
170
|
-
f'Claim achievement {achieve["achievementId"]} {achieve["name"]} error: {err} | {r.text}')
|
171
|
-
|
172
|
-
except Exception as err:
|
173
|
-
logger.error(f'Couldnt fetch achievements: {err} | {r.text}')
|
174
|
-
|
175
|
-
@retry(max_attempts=10, retry_interval={'from': 10, 'to': 20})
|
176
|
-
def activate_journey(self, campaign_id: str):
|
177
|
-
url = f'https://api.intract.io/api/qv1/journey/fetch?campaignId={campaign_id}&channelCode=DEFAULT&referralCode=null'
|
178
|
-
|
179
|
-
r = self.session.get(url)
|
180
|
-
if r.json().get('isActive') != True:
|
181
|
-
logger.error(f'Activate journey error: {r.text}')
|
182
|
-
|
183
|
-
return r.json()
|
184
|
-
|
185
|
-
@retry(max_attempts=10, retry_interval={'from': 10, 'to': 20})
|
186
|
-
def verify_quest(self, task):
|
187
|
-
data = {
|
188
|
-
"campaignId": task['campaignId'],
|
189
|
-
"userInputs": {},
|
190
|
-
"userVerificationData": {},
|
191
|
-
"taskId": task['_id']
|
192
|
-
}
|
193
|
-
|
194
|
-
headers = {
|
195
|
-
'questuserid': self.session.headers['Questuserid'],
|
196
|
-
'authorization': f'Bearer {self.session.headers["Cookies"].split('=')[1]}'
|
197
|
-
}
|
198
|
-
|
199
|
-
url = 'https://api.intract.io/api/qv1/task/verify-v2'
|
200
|
-
r = self.session.post(url, json=data, headers=headers)
|
201
|
-
|
202
|
-
logger.info(r.json())
|
203
|
-
|
204
|
-
if r.json()['verified'] == 'False':
|
205
|
-
raise Exception("Quest wasn't verified")
|
206
|
-
|
207
|
-
return r.status_code
|
208
|
-
|
209
|
-
def set_primary_task_identity(self, account):
|
210
|
-
url = 'https://api.intract.io/api/qv1/auth/set-primary-task-identity'
|
211
|
-
payload = {"identity": account.address, "namespaceTag": "EVM"}
|
212
|
-
r = self.session.post(url, json=payload)
|
@@ -1,81 +0,0 @@
|
|
1
|
-
from inspect import getsourcefile
|
2
|
-
from random import randint
|
3
|
-
from requests import post
|
4
|
-
from loguru import logger
|
5
|
-
from time import sleep
|
6
|
-
from tqdm import tqdm
|
7
|
-
import sys
|
8
|
-
import ctypes
|
9
|
-
import os
|
10
|
-
sys.__stdout__ = sys.stdout
|
11
|
-
|
12
|
-
TG_BOT_TOKEN = '' # токен от тг бота (`12345:Abcde`) для уведомлений. если не нужно - оставляй пустым
|
13
|
-
TG_USER_ID = [] # тг айди куда должны приходить уведомления. [21957123] - для отправления уведомления только себе, [21957123, 103514123] - отправлять нескольким людями
|
14
|
-
|
15
|
-
windll = ctypes.windll if os.name == 'nt' else None # for Mac users
|
16
|
-
|
17
|
-
|
18
|
-
class WindowName:
|
19
|
-
def __init__(self):
|
20
|
-
try: self.path = os.path.abspath(getsourcefile(lambda: 0)).split("\\")[-2]
|
21
|
-
except: self.path = os.path.abspath(getsourcefile(lambda: 0)).split("/")[-2]
|
22
|
-
|
23
|
-
self.accs_done = 0
|
24
|
-
self.modules_amount = 0
|
25
|
-
self.modules_done = 0
|
26
|
-
|
27
|
-
def update_accs(self):
|
28
|
-
self.accs_done += 1
|
29
|
-
self.modules_amount = 0
|
30
|
-
self.modules_done = 0
|
31
|
-
|
32
|
-
def update_modules(self):
|
33
|
-
self.modules_done += 1
|
34
|
-
|
35
|
-
def set_modules(self, modules_amount: int):
|
36
|
-
self.modules_amount = modules_amount
|
37
|
-
|
38
|
-
|
39
|
-
class TgReport:
|
40
|
-
def __init__(self):
|
41
|
-
self.logs = ''
|
42
|
-
|
43
|
-
|
44
|
-
def update_logs(self, text: str):
|
45
|
-
self.logs += f'{text}\n'
|
46
|
-
|
47
|
-
|
48
|
-
def send_log(self, wallet, window_name, mode: str):
|
49
|
-
notification_text = f'[{window_name.accs_done}/{window_name.accs_amount}] <i>{wallet.address}</i>\n\n' \
|
50
|
-
f'{self.logs}\n'
|
51
|
-
if mode == 'Claim quests': notification_text += f'{wallet.stats.get("status")}'
|
52
|
-
|
53
|
-
texts = []
|
54
|
-
while len(notification_text) > 0:
|
55
|
-
texts.append(notification_text[:1900])
|
56
|
-
notification_text = notification_text[1900:]
|
57
|
-
|
58
|
-
if TG_BOT_TOKEN:
|
59
|
-
for tg_id in TG_USER_ID:
|
60
|
-
for text in texts:
|
61
|
-
try: post(f'https://api.telegram.org/bot{TG_BOT_TOKEN}/sendMessage?parse_mode=html&chat_id={tg_id}&text={text}')
|
62
|
-
except Exception as err: logger.error(f'[-] TG | Send Telegram message error to {tg_id}: {err}')
|
63
|
-
|
64
|
-
|
65
|
-
def sleeping(*timing):
|
66
|
-
if type(timing[0]) == list: timing = timing[0]
|
67
|
-
if len(timing) == 2: x = randint(timing[0], timing[1])
|
68
|
-
else: x = timing[0]
|
69
|
-
for _ in tqdm(range(x), desc='sleep ', bar_format='{desc}: {n_fmt}/{total_fmt}'):
|
70
|
-
sleep(1)
|
71
|
-
|
72
|
-
|
73
|
-
def make_text_border(text: str):
|
74
|
-
new_text = ''
|
75
|
-
max_len = max([len(string) for string in text.split('\n')])
|
76
|
-
|
77
|
-
new_text += '+' + '-' * (max_len + 8) + '+\n'
|
78
|
-
for string in text.split('\n'): new_text += f'\t{string}\n'
|
79
|
-
new_text += '+' + '-' * (max_len + 8) + '+\n'
|
80
|
-
|
81
|
-
return new_text
|
@@ -1,101 +0,0 @@
|
|
1
|
-
from eth_account.messages import encode_defunct
|
2
|
-
from loguru import logger
|
3
|
-
from sybil_engine.data.networks import get_chain_instance
|
4
|
-
from sybil_engine.module.module import Module
|
5
|
-
from sybil_engine.utils.file_loader import load_abi
|
6
|
-
from sybil_engine.utils.utils import AccountException
|
7
|
-
from sybil_engine.utils.web3_utils import init_web3
|
8
|
-
|
9
|
-
from web3_wizzard_lib.core.modules.intract.intract_api import IntractAPI
|
10
|
-
from web3_wizzard_lib.core.modules.intract.utils import TgReport, WindowName, make_text_border
|
11
|
-
|
12
|
-
VERIFY_DATA = load_abi("resources/verify_data.json")
|
13
|
-
|
14
|
-
class IntractClaim(Module):
|
15
|
-
module_name = 'INTRACT_CLAIM'
|
16
|
-
module_config = None
|
17
|
-
|
18
|
-
def execute(self, task_id, account, compaign_id='66bb5618c8ff56cba848ea8f', from_chain='LINEA'):
|
19
|
-
windowname = WindowName()
|
20
|
-
|
21
|
-
intract_api = IntractAPI(account)
|
22
|
-
tg_report = TgReport()
|
23
|
-
windowname.update_accs()
|
24
|
-
|
25
|
-
stats = {}
|
26
|
-
|
27
|
-
web3 = init_web3(get_chain_instance(from_chain), None)
|
28
|
-
|
29
|
-
self.authorize(intract_api, compaign_id, account, web3)
|
30
|
-
|
31
|
-
campaign_funcs = {
|
32
|
-
"Linea LXP Latest Rush": self.linea_lxp,
|
33
|
-
}
|
34
|
-
intract_api.set_primary_task_identity(account)
|
35
|
-
intract_api.activate_journey(compaign_id)
|
36
|
-
linea_xp = intract_api.get_user().get("totalXp") or "0"
|
37
|
-
|
38
|
-
if task_id == 'SKIP_CHECK':
|
39
|
-
if int(linea_xp) == 100:
|
40
|
-
raise AccountException("Skip account tasks where already claimed")
|
41
|
-
else:
|
42
|
-
return
|
43
|
-
|
44
|
-
for task in intract_api.active_tasks:
|
45
|
-
if task in list(campaign_funcs.keys()):
|
46
|
-
campaign_funcs[task](task, task_id, intract_api)
|
47
|
-
else:
|
48
|
-
logger.info(f' > Task "{task}" will appear soon...')
|
49
|
-
|
50
|
-
account_data = intract_api.get_super_user()
|
51
|
-
linea_xp = intract_api.get_user().get("totalXp") or "0"
|
52
|
-
|
53
|
-
logger.info('') # for clearly logs
|
54
|
-
tg_report.update_logs('<i>Statistics</i>')
|
55
|
-
logger.info('')
|
56
|
-
text = f'Achievements: {account_data["achieves"]}\n' \
|
57
|
-
f'GM Streak: {account_data["streak"]}\n' \
|
58
|
-
f'Gems: {account_data["gems"]}\n' \
|
59
|
-
f'XP: {account_data["xp"]}\n' \
|
60
|
-
f'Linea XP: {linea_xp}'
|
61
|
-
new_text = make_text_border(text=text)
|
62
|
-
for string in new_text.split('\n'): logger.success(string)
|
63
|
-
|
64
|
-
stats.update({
|
65
|
-
'linea_xp': linea_xp,
|
66
|
-
'xp': account_data["xp"],
|
67
|
-
'gm_streak': account_data["streak"],
|
68
|
-
'achievements': account_data["achieves"],
|
69
|
-
'gems': account_data["gems"],
|
70
|
-
})
|
71
|
-
|
72
|
-
def authorize(self, browser, compaign_id, account, web3):
|
73
|
-
nonce = browser.intract_get_nonce(address=account.address)
|
74
|
-
text = f'Nonce: {nonce}'
|
75
|
-
signature = f'0x{web3.eth.account.sign_message(encode_defunct(text=text), private_key=account.key).signature.hex()}'
|
76
|
-
browser.intract_login(address=account.address, signature=signature)
|
77
|
-
browser.intract_get_tasks(compaign_id)
|
78
|
-
|
79
|
-
browser.set_wallet(address=account.address)
|
80
|
-
#browser.claim_achievements()
|
81
|
-
|
82
|
-
def linea_lxp(self, task_name: str, task_id, intract_api, week=0):
|
83
|
-
logger.info(f' > Completing "{task_name}"...')
|
84
|
-
|
85
|
-
for task in VERIFY_DATA['campaigns'][str(week)]['quest']['tasks']:
|
86
|
-
if task_id is not None:
|
87
|
-
if task['_id'] == task_id:
|
88
|
-
intract_api.verify_quest(task)
|
89
|
-
else:
|
90
|
-
intract_api.verify_quest(task)
|
91
|
-
|
92
|
-
def log(self):
|
93
|
-
return "INTRACT CLAIM"
|
94
|
-
|
95
|
-
def parse_params(self, module_params):
|
96
|
-
if 'taskID' not in module_params:
|
97
|
-
module_params['taskID'] = None
|
98
|
-
|
99
|
-
return [
|
100
|
-
module_params['taskID']
|
101
|
-
]
|
@@ -1,65 +0,0 @@
|
|
1
|
-
import random
|
2
|
-
|
3
|
-
from loguru import logger
|
4
|
-
from sybil_engine.contract.send import Send
|
5
|
-
from sybil_engine.data.contracts import get_contracts_for_chain
|
6
|
-
from sybil_engine.data.networks import get_chain_instance
|
7
|
-
from sybil_engine.domain.balance.balance import NativeBalance
|
8
|
-
from sybil_engine.domain.balance.balance_utils import get_native_balance
|
9
|
-
from sybil_engine.module.module import Order, RepeatableModule
|
10
|
-
from sybil_engine.utils.utils import interval_to_int, ConfigurationException
|
11
|
-
from sybil_engine.utils.web3_utils import init_web3
|
12
|
-
|
13
|
-
from web3_wizzard_lib.core.modules.bridge.orbiter_sub import bridge_codes
|
14
|
-
|
15
|
-
|
16
|
-
class Layer2_20(RepeatableModule):
|
17
|
-
module_name = 'Layer2_20'
|
18
|
-
allowed_chains = ['ZKSYNC', 'OPTIMISM', 'BASE', 'LINEA', 'ARBITRUM', 'SCROLL']
|
19
|
-
random_order = Order.RANDOM
|
20
|
-
repeat_conf = 'repeats'
|
21
|
-
module_config = 'layer_2_20_config'
|
22
|
-
|
23
|
-
@RepeatableModule.repeatable_log
|
24
|
-
def execute(self, chains, to_chains, account):
|
25
|
-
chain = random.choice(chains)
|
26
|
-
chain_instance = get_chain_instance(chain)
|
27
|
-
web3 = init_web3(chain_instance, account.proxy)
|
28
|
-
|
29
|
-
temp_to_chains = [item for item in to_chains if item != chain]
|
30
|
-
if not temp_to_chains:
|
31
|
-
raise ConfigurationException("No chains to send to")
|
32
|
-
to_chain = random.choice(temp_to_chains)
|
33
|
-
|
34
|
-
layer2_20_contract_address = get_contracts_for_chain(chain)["LAYER2_20"]
|
35
|
-
|
36
|
-
send = Send(layer2_20_contract_address, web3)
|
37
|
-
|
38
|
-
amount_to_send = NativeBalance(
|
39
|
-
230000000000000 + bridge_codes[to_chain],
|
40
|
-
chain,
|
41
|
-
chain_instance['gas_token']
|
42
|
-
)
|
43
|
-
data = '0x646174613a2c7b2270223a226c61796572322d3230222c226f70223a22636c61696d222c227469636b223a22244c32222c22616d74223a2231303030227d'
|
44
|
-
|
45
|
-
native_balance = get_native_balance(account, web3, chain_instance)
|
46
|
-
|
47
|
-
logger.info(f"Native {chain} balance: " + str(native_balance))
|
48
|
-
logger.info(f"Inscription {chain} -> {to_chain} | {amount_to_send}")
|
49
|
-
|
50
|
-
send.send_to_wallet(account, layer2_20_contract_address, amount_to_send, data)
|
51
|
-
|
52
|
-
def log(self):
|
53
|
-
return "LAYER2_20"
|
54
|
-
|
55
|
-
def parse_params(self, module_params):
|
56
|
-
return module_params['chains'], module_params['to_chains']
|
57
|
-
|
58
|
-
def order(self):
|
59
|
-
return Order.RANDOM
|
60
|
-
|
61
|
-
def repeats(self, module_params):
|
62
|
-
if self.repeat_conf not in module_params:
|
63
|
-
return 1
|
64
|
-
else:
|
65
|
-
return range(interval_to_int(module_params[self.repeat_conf]))
|
@@ -1,134 +0,0 @@
|
|
1
|
-
import random
|
2
|
-
|
3
|
-
from loguru import logger
|
4
|
-
from sybil_engine.data.contracts import get_contracts_for_chain
|
5
|
-
from sybil_engine.data.networks import get_chain_instance
|
6
|
-
from sybil_engine.domain.balance.balance import NativeBalance
|
7
|
-
from sybil_engine.domain.balance.balance_utils import interval_to_eth_balance, from_eth_to_wei, verify_balance
|
8
|
-
from sybil_engine.module.module import Order, RepeatableModule
|
9
|
-
from sybil_engine.utils.app_account_utils import AppAccount
|
10
|
-
from sybil_engine.utils.utils import ConfigurationException, interval_to_round
|
11
|
-
from sybil_engine.utils.validation_utils import validate_amount_interval, validate_interval
|
12
|
-
from sybil_engine.utils.web3_utils import init_web3
|
13
|
-
|
14
|
-
from web3_wizzard_lib.core.contract.basiliskcontract import BasiliskContract
|
15
|
-
from web3_wizzard_lib.core.contract.eralendcontract import EraLendContract
|
16
|
-
from web3_wizzard_lib.core.contract.reactor_fusion_contract import ReactorFusionContract
|
17
|
-
from web3_wizzard_lib.core.modules.bank.layerbank import LayerBank
|
18
|
-
from web3_wizzard_lib.core.modules.bank.aave import Aave
|
19
|
-
|
20
|
-
|
21
|
-
class Lending(RepeatableModule):
|
22
|
-
module_name = 'LENDING'
|
23
|
-
module_config = 'lending_config'
|
24
|
-
random_order = Order.RANDOM
|
25
|
-
|
26
|
-
@RepeatableModule.repeatable_log
|
27
|
-
def execute(self, lending_apps, amount: float, action: str, withdraw_sleep_interval: dict, chain,
|
28
|
-
account: AppAccount):
|
29
|
-
chain_instance = get_chain_instance(chain)
|
30
|
-
web3 = init_web3(chain_instance, account.proxy)
|
31
|
-
|
32
|
-
lending_app_name = random.choice(lending_apps)
|
33
|
-
lending_app = self.get_lending_app(lending_app_name, chain, web3)
|
34
|
-
|
35
|
-
verify_balance(self.min_native_balance, chain_instance, account, web3)
|
36
|
-
|
37
|
-
if action == 'DEPOSIT':
|
38
|
-
self.deposit(account, amount, lending_app, lending_app_name, chain, web3)
|
39
|
-
elif action == 'WITHDRAW':
|
40
|
-
self.withdraw(account, amount, chain, lending_app, lending_app_name)
|
41
|
-
elif action == 'WITHDRAW_ALL':
|
42
|
-
for app_name, app in self.lending_apps_with_deposit(account, chain, web3):
|
43
|
-
self.withdraw(account, amount, chain, app, app_name)
|
44
|
-
else:
|
45
|
-
raise ConfigurationException("Unsupported action")
|
46
|
-
|
47
|
-
def deposit(self, account, amount, lending_app, lending_app_name, chain, web3):
|
48
|
-
amount_balance = interval_to_eth_balance(amount, account, chain, web3)
|
49
|
-
|
50
|
-
if amount == 'all_balance':
|
51
|
-
amount_balance = amount_balance.minus(self.min_native_balance)
|
52
|
-
|
53
|
-
logger.info(f"Make deposit on {lending_app_name} | {amount_balance}")
|
54
|
-
|
55
|
-
lending_app.mint(account, amount_balance.wei)
|
56
|
-
|
57
|
-
def withdraw(self, account, amount, chain, lending_app, lending_app_name):
|
58
|
-
deposit_balance = NativeBalance(lending_app.get_deposit_amount(account), chain, 'ETH')
|
59
|
-
|
60
|
-
if deposit_balance.wei < 1000000000000:
|
61
|
-
raise EmptyDepositException(f"[{account.address}] Deposit balance is 0, skip")
|
62
|
-
|
63
|
-
logger.info(f"Deposit balance: {deposit_balance}")
|
64
|
-
|
65
|
-
if amount == 'all_balance':
|
66
|
-
withdraw_wei = deposit_balance.wei
|
67
|
-
else:
|
68
|
-
balance = NativeBalance(from_eth_to_wei(interval_to_round(amount)), chain, 'ETH')
|
69
|
-
amount_balance = NativeBalance(int(balance.wei // 10000) * 10000, chain, balance.token)
|
70
|
-
withdraw_wei = amount_balance.wei
|
71
|
-
|
72
|
-
if deposit_balance.wei < withdraw_wei:
|
73
|
-
logger.info(
|
74
|
-
f"Deposit {deposit_balance} < withdraw amount {amount_balance}"
|
75
|
-
f", withdrawing all deposit")
|
76
|
-
withdraw_wei = deposit_balance.wei
|
77
|
-
|
78
|
-
logger.info(f"Withdraw from {lending_app_name} | {deposit_balance}")
|
79
|
-
|
80
|
-
lending_app.redeem_underlying(account, withdraw_wei)
|
81
|
-
|
82
|
-
def get_lending_app(self, lending_app, chain, web3):
|
83
|
-
lending_apps = self.get_lending_apps(chain, web3)
|
84
|
-
|
85
|
-
if lending_app not in lending_apps.keys():
|
86
|
-
raise ConfigurationException(f"{lending_app} not supported in {chain}. Supported lending: {list(lending_apps.keys())} supported")
|
87
|
-
|
88
|
-
return lending_apps[lending_app]
|
89
|
-
|
90
|
-
def get_lending_apps(self, chain, web3):
|
91
|
-
contracts = get_contracts_for_chain(chain)
|
92
|
-
|
93
|
-
apps = {
|
94
|
-
'BASILISK_LANDING': BasiliskContract,
|
95
|
-
'REACTORFUSION_LANDING': ReactorFusionContract,
|
96
|
-
'ERALEND': EraLendContract,
|
97
|
-
'AAVE': Aave,
|
98
|
-
'LAYERBANK': LayerBank
|
99
|
-
}
|
100
|
-
|
101
|
-
return {k: v(contracts[k], web3) for k, v in apps.items() if k in contracts}
|
102
|
-
|
103
|
-
def lending_apps_with_deposit(self, account, chain, web3):
|
104
|
-
with_deposit = []
|
105
|
-
|
106
|
-
for lending_app_name, lending_app in self.get_lending_apps(chain, web3).items():
|
107
|
-
if lending_app.get_deposit_amount(account) > 1000000000000:
|
108
|
-
with_deposit.append((lending_app_name, lending_app))
|
109
|
-
|
110
|
-
return with_deposit
|
111
|
-
|
112
|
-
def log(self):
|
113
|
-
return "LENDING"
|
114
|
-
|
115
|
-
def parse_params(self, module_params):
|
116
|
-
validate_amount_interval(module_params['amount'])
|
117
|
-
validate_interval(module_params['withdraw_sleep_interval'])
|
118
|
-
|
119
|
-
if 'chain' not in module_params:
|
120
|
-
module_params['chain'] = 'ZKSYNC'
|
121
|
-
|
122
|
-
return [
|
123
|
-
module_params['lending_apps'],
|
124
|
-
module_params['amount'],
|
125
|
-
module_params['action'],
|
126
|
-
module_params['withdraw_sleep_interval'],
|
127
|
-
module_params['chain']
|
128
|
-
]
|
129
|
-
|
130
|
-
|
131
|
-
class EmptyDepositException(Exception):
|
132
|
-
def __init__(self, message):
|
133
|
-
self.message = message
|
134
|
-
super().__init__(self.message)
|