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,112 +0,0 @@
|
|
1
|
-
import random
|
2
|
-
|
3
|
-
from loguru import logger
|
4
|
-
from sybil_engine.contract.erc20contract import Erc20Contract
|
5
|
-
from sybil_engine.contract.send import Send
|
6
|
-
from sybil_engine.data.contracts import get_contracts_for_chain
|
7
|
-
from sybil_engine.data.networks import get_chain_instance
|
8
|
-
from sybil_engine.data.tokens import get_tokens_for_chain
|
9
|
-
from sybil_engine.domain.balance.balance import NotEnoughNativeBalance
|
10
|
-
from sybil_engine.domain.balance.balance_utils import interval_to_erc20_balance, \
|
11
|
-
interval_to_native_balance, verify_balance
|
12
|
-
from sybil_engine.utils.utils import ConfigurationException
|
13
|
-
from sybil_engine.utils.web3_utils import init_web3
|
14
|
-
|
15
|
-
from web3_wizzard_lib.core.contract.orbiter_starknet import OrbiterStarknet
|
16
|
-
from web3_wizzard_lib.core.modules.bridge.bridge import Bridge
|
17
|
-
|
18
|
-
bridge_codes = {
|
19
|
-
"ETH": 9001,
|
20
|
-
"ARBITRUM": 9002,
|
21
|
-
"POLYGON": 9006,
|
22
|
-
"OPTIMISM": 9007,
|
23
|
-
"BSC": 9015,
|
24
|
-
"ARBITRUM_NOVA": 9016,
|
25
|
-
"ZKSYNC": 9014,
|
26
|
-
"POLYGON_ZK": 9017,
|
27
|
-
"BASE": 9021,
|
28
|
-
"LINEA": 9023,
|
29
|
-
"SCROLL": 9019,
|
30
|
-
#"X_LAYER": 9027, DONT USE
|
31
|
-
"ZORA": 9030,
|
32
|
-
"MANTA": 9031,
|
33
|
-
"ZKFAIR": 9038
|
34
|
-
}
|
35
|
-
|
36
|
-
|
37
|
-
class OrbiterSubModule(Bridge):
|
38
|
-
supported_tokens = ['NATIVE', 'USDC', 'USDT', 'WETH']
|
39
|
-
|
40
|
-
def execute(self, bridge_amount_interval, from_chain, to_chain, token, min_native_balance, account):
|
41
|
-
from_chain_instance = get_chain_instance(from_chain)
|
42
|
-
web3 = init_web3(from_chain_instance, account.proxy)
|
43
|
-
|
44
|
-
if isinstance(to_chain, list):
|
45
|
-
to_chain = random.choice(to_chain)
|
46
|
-
if to_chain not in bridge_codes:
|
47
|
-
raise ConfigurationException(f"{to_chain} not supported in orbiter")
|
48
|
-
|
49
|
-
amount = self.__calculate_bridge_amount(account, bridge_amount_interval, from_chain_instance, to_chain, token,
|
50
|
-
min_native_balance, web3)
|
51
|
-
|
52
|
-
logger.info(f"Bridge {from_chain} –> {to_chain} | {amount}")
|
53
|
-
self.__perform_bridge(account, amount, from_chain, to_chain, token, web3)
|
54
|
-
|
55
|
-
def __perform_bridge(self, account, amount, from_chain, to_chain, token, web3):
|
56
|
-
if token == 'NATIVE':
|
57
|
-
self.__bridge_native(account, amount, from_chain, to_chain, web3)
|
58
|
-
else:
|
59
|
-
self.__bridge_token(account, amount, from_chain, web3)
|
60
|
-
|
61
|
-
def __calculate_bridge_amount(self, account, bridge_amount_interval, from_chain_instance, to_chain, token,
|
62
|
-
min_native_balance, web3):
|
63
|
-
if token == 'NATIVE':
|
64
|
-
native_without_min = verify_balance(min_native_balance, from_chain_instance, account, web3)
|
65
|
-
|
66
|
-
amount = interval_to_native_balance(bridge_amount_interval, account, from_chain_instance['chain'], web3)
|
67
|
-
if amount.wei > native_without_min.wei:
|
68
|
-
if bridge_amount_interval == 'all_balance':
|
69
|
-
amount = native_without_min
|
70
|
-
else:
|
71
|
-
raise NotEnoughNativeBalance(
|
72
|
-
f"The account balance ({native_without_min}) < bridging amount ({amount}).")
|
73
|
-
else:
|
74
|
-
amount = interval_to_erc20_balance(bridge_amount_interval, account, token, from_chain_instance['chain'],
|
75
|
-
web3)
|
76
|
-
if bridge_amount_interval == 'all_balance':
|
77
|
-
amount.wei = amount.wei - 10 ** 5
|
78
|
-
|
79
|
-
amount.wei = self.__adjust_amount_by_bridge_code(amount.wei, to_chain)
|
80
|
-
|
81
|
-
return amount
|
82
|
-
|
83
|
-
def __adjust_amount_by_bridge_code(self, wei_amount, to_chain):
|
84
|
-
bridge_code = bridge_codes.get(to_chain)
|
85
|
-
if not bridge_code:
|
86
|
-
raise ConfigurationException(f"No bridge code found for {to_chain}")
|
87
|
-
return int(f"{wei_amount // 10 ** 4}{bridge_code}")
|
88
|
-
|
89
|
-
def __bridge_native(self, account, amount, from_chain, to_chain, web3):
|
90
|
-
if to_chain == 'STARKNET':
|
91
|
-
if amount.readable() <= 0.0065 or amount.readable() >= 5:
|
92
|
-
raise NotEnoughNativeBalance(f"Limit range amount for starknet 0.0065 – 5 ETH | {amount}")
|
93
|
-
|
94
|
-
if from_chain != 'ZKSYNC':
|
95
|
-
raise ConfigurationException("only ZKSYNC can bridge to STARKNET")
|
96
|
-
|
97
|
-
orbiter_wallet = get_contracts_for_chain(from_chain)['ORBITER_STARKNET']
|
98
|
-
orbiter_starknet = OrbiterStarknet(orbiter_wallet, web3)
|
99
|
-
orbiter_starknet.bridge(account, amount)
|
100
|
-
else:
|
101
|
-
orbiter_wallet = get_contracts_for_chain(from_chain)['ORBITER']
|
102
|
-
send = Send(orbiter_wallet, web3)
|
103
|
-
send.send_to_wallet(account, orbiter_wallet, amount)
|
104
|
-
|
105
|
-
def __bridge_token(self, account, amount, from_chain, web3):
|
106
|
-
contracts = get_contracts_for_chain(from_chain)
|
107
|
-
|
108
|
-
if 'ORBITER_ERC20' not in contracts:
|
109
|
-
raise ConfigurationException(f"ERC20 is not supported for {from_chain}")
|
110
|
-
|
111
|
-
erc20 = Erc20Contract(get_tokens_for_chain(from_chain)[amount.token], web3)
|
112
|
-
erc20.transfer(account, amount, contracts['ORBITER_ERC20'])
|
@@ -1,42 +0,0 @@
|
|
1
|
-
from sybil_engine.utils.utils import ConfigurationException
|
2
|
-
|
3
|
-
from web3_wizzard_lib.core.modules.bridge.bridge import Bridge
|
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 NotEnoughNativeBalance
|
7
|
-
from sybil_engine.domain.balance.balance_utils import interval_to_native_balance, verify_balance
|
8
|
-
|
9
|
-
from sybil_engine.utils.web3_utils import init_web3
|
10
|
-
|
11
|
-
from web3_wizzard_lib.core.contract.eth_scroll_bridge_contract import EthScrollBridgeContract
|
12
|
-
from web3_wizzard_lib.core.contract.scroll_bridge_contract import ScrollBridgeContract
|
13
|
-
from web3_wizzard_lib.core.contract.scroll_oracle import ScrollOracle
|
14
|
-
|
15
|
-
class ScrollBridgeSubModule(Bridge):
|
16
|
-
|
17
|
-
def execute(self, bridge_amount_interval, from_chain, to_chain, token, min_native_balance, account):
|
18
|
-
from_chain_instance = get_chain_instance(from_chain)
|
19
|
-
web3 = init_web3(from_chain_instance, account.proxy)
|
20
|
-
native_without_min = verify_balance(min_native_balance, from_chain_instance, account, web3)
|
21
|
-
amount = interval_to_native_balance(bridge_amount_interval, account, from_chain_instance['chain'], web3)
|
22
|
-
if amount.wei > native_without_min.wei:
|
23
|
-
if bridge_amount_interval == 'all_balance':
|
24
|
-
amount = native_without_min
|
25
|
-
else:
|
26
|
-
raise NotEnoughNativeBalance(
|
27
|
-
f"The account balance ({native_without_min}) < bridging amount ({amount}).")
|
28
|
-
if from_chain == 'ETH_MAINNET':
|
29
|
-
contract_oracle = get_contracts_for_chain(from_chain)["SCROLL_ORACLE"]
|
30
|
-
fee = ScrollOracle(contract_oracle, web3).estimateCrossDomainMessageFee()
|
31
|
-
|
32
|
-
scroll_bridge_contract_address = get_contracts_for_chain(from_chain)["SCROLL_BRIDGE"]
|
33
|
-
scroll_bridge = EthScrollBridgeContract(scroll_bridge_contract_address, web3)
|
34
|
-
|
35
|
-
scroll_bridge.sendMessage(account, amount.wei, fee)
|
36
|
-
elif from_chain == 'SCROLL':
|
37
|
-
scroll_bridge_contract_address = get_contracts_for_chain(from_chain)["SCROLL_BRIDGE"]
|
38
|
-
scroll_bridge = ScrollBridgeContract(scroll_bridge_contract_address, web3)
|
39
|
-
|
40
|
-
scroll_bridge.withdraw(account, amount.wei)
|
41
|
-
else:
|
42
|
-
raise ConfigurationException(f"{from_chain} chain is unsupported, only ETH_MAINNET and SCROLL allowed")
|
@@ -1,74 +0,0 @@
|
|
1
|
-
from loguru import logger
|
2
|
-
from sybil_engine.data.contracts import get_contracts_for_chain
|
3
|
-
from sybil_engine.data.networks import get_chain_instance
|
4
|
-
from sybil_engine.domain.balance.balance import NotEnoughNativeBalance
|
5
|
-
from sybil_engine.domain.balance.balance_utils import interval_to_native_balance, verify_balance
|
6
|
-
from sybil_engine.utils.utils import ConfigurationException
|
7
|
-
from sybil_engine.utils.web3_utils import init_web3
|
8
|
-
|
9
|
-
from web3_wizzard_lib.core.contract.stargate_v2_contract import StargateV2Contract
|
10
|
-
from web3_wizzard_lib.core.modules.bridge.bridge import Bridge
|
11
|
-
|
12
|
-
chain_ids = {
|
13
|
-
'LINEA': 30183,
|
14
|
-
'SCROLL': 30214,
|
15
|
-
'OPTIMISM': 30111,
|
16
|
-
'ARBITRUM': 30110,
|
17
|
-
'BASE': 30184
|
18
|
-
}
|
19
|
-
|
20
|
-
|
21
|
-
class StargateV2SubModule(Bridge):
|
22
|
-
supported_tokens = ['NATIVE']
|
23
|
-
|
24
|
-
def execute(self, bridge_amount_interval, from_chain, to_chain, token, min_native_balance, account):
|
25
|
-
if token != 'NATIVE':
|
26
|
-
raise ConfigurationException('Currently only native token bridge is supported by Stargate V2')
|
27
|
-
|
28
|
-
from_chain_instance = get_chain_instance(from_chain)
|
29
|
-
web3 = init_web3(from_chain_instance, account.proxy)
|
30
|
-
stargate_v2_contract = get_contracts_for_chain(from_chain)['STARGATE_V2']
|
31
|
-
|
32
|
-
amount = self.__calculate_bridge_amount(
|
33
|
-
account,
|
34
|
-
bridge_amount_interval,
|
35
|
-
from_chain_instance,
|
36
|
-
min_native_balance,
|
37
|
-
web3
|
38
|
-
)
|
39
|
-
|
40
|
-
logger.info(f"Bridge {from_chain} –> {to_chain} | {amount}")
|
41
|
-
|
42
|
-
send_params = (
|
43
|
-
chain_ids[to_chain],
|
44
|
-
f'0x000000000000000000000000{account.address[2:]}',
|
45
|
-
amount.wei, # amountLD,
|
46
|
-
int(amount.wei * 0.995), # minAmountLd,
|
47
|
-
b'',
|
48
|
-
b'',
|
49
|
-
b'\x01',
|
50
|
-
)
|
51
|
-
|
52
|
-
stargate_v2 = StargateV2Contract(stargate_v2_contract, web3)
|
53
|
-
|
54
|
-
stargate_fee = stargate_v2.quote_send(send_params)
|
55
|
-
|
56
|
-
stargate_v2.send(
|
57
|
-
account,
|
58
|
-
amount.wei + stargate_fee[0],
|
59
|
-
send_params,
|
60
|
-
stargate_fee,
|
61
|
-
account.address
|
62
|
-
)
|
63
|
-
|
64
|
-
def __calculate_bridge_amount(self, account, bridge_amount_interval, from_chain_instance, min_native_balance, web3):
|
65
|
-
native_without_min = verify_balance(min_native_balance, from_chain_instance, account, web3)
|
66
|
-
|
67
|
-
amount = interval_to_native_balance(bridge_amount_interval, account, from_chain_instance['chain'], web3)
|
68
|
-
if amount.wei > native_without_min.wei:
|
69
|
-
if bridge_amount_interval == 'all_balance':
|
70
|
-
amount = native_without_min
|
71
|
-
else:
|
72
|
-
raise NotEnoughNativeBalance(
|
73
|
-
f"The account balance ({native_without_min}) < bridging amount ({amount}).")
|
74
|
-
return amount
|
@@ -1,47 +0,0 @@
|
|
1
|
-
from sybil_engine.module.module import Module
|
2
|
-
from sybil_engine.utils.utils import ConfigurationException
|
3
|
-
from sybil_engine.utils.validation_utils import validate_amount_interval, validate_chain
|
4
|
-
|
5
|
-
from web3_wizzard_lib.core.modules.bridge.coredao_bridge_sub import CoreDaoBridgeSubModule
|
6
|
-
from web3_wizzard_lib.core.modules.bridge.orbiter_sub import OrbiterSubModule
|
7
|
-
from web3_wizzard_lib.core.modules.bridge.scroll_bridge_sub import ScrollBridgeSubModule
|
8
|
-
from web3_wizzard_lib.core.modules.bridge.stargate_v2_sub import StargateV2SubModule
|
9
|
-
|
10
|
-
|
11
|
-
class BridgeModule(Module):
|
12
|
-
module_name = 'BRIDGE'
|
13
|
-
module_config = 'bridge_module'
|
14
|
-
|
15
|
-
supported_tokens = ['NATIVE', 'USDC', 'USDT', 'WETH']
|
16
|
-
|
17
|
-
def execute(self, bridge, bridge_amount_interval, from_chain, to_chain, token, account):
|
18
|
-
if bridge == 'ORBITER':
|
19
|
-
module = OrbiterSubModule()
|
20
|
-
elif bridge == 'STARGATE_V2':
|
21
|
-
module = StargateV2SubModule()
|
22
|
-
elif bridge == 'COREDAO':
|
23
|
-
module = CoreDaoBridgeSubModule()
|
24
|
-
elif bridge == 'SCROLL':
|
25
|
-
module = ScrollBridgeSubModule()
|
26
|
-
else:
|
27
|
-
raise ConfigurationException(f'Bridge {bridge} is not supported')
|
28
|
-
|
29
|
-
module.execute(bridge_amount_interval, from_chain, to_chain, token, self.min_native_balance, account)
|
30
|
-
|
31
|
-
def log(self):
|
32
|
-
return "BRIDGE"
|
33
|
-
|
34
|
-
def parse_params(self, module_params):
|
35
|
-
validate_amount_interval(module_params['bridge_amount_interval'])
|
36
|
-
validate_chain(module_params['from_chain'])
|
37
|
-
|
38
|
-
if 'token' not in module_params:
|
39
|
-
module_params['token'] = 'NATIVE'
|
40
|
-
|
41
|
-
if module_params['token'] not in self.supported_tokens:
|
42
|
-
raise ConfigurationException(
|
43
|
-
f"{module_params['token']} not supported in orbiter. Supported options: {self.supported_tokens}")
|
44
|
-
|
45
|
-
return module_params['bridge'], module_params['bridge_amount_interval'], module_params['from_chain'], \
|
46
|
-
module_params['to_chain'], \
|
47
|
-
module_params['token']
|
@@ -1,109 +0,0 @@
|
|
1
|
-
from typing import Union
|
2
|
-
|
3
|
-
import requests
|
4
|
-
from loguru import logger
|
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_utils import get_native_balance, interval_to_eth_balance, from_wei_to_eth
|
8
|
-
from sybil_engine.module.module import Module
|
9
|
-
from sybil_engine.utils.utils import ConfigurationException
|
10
|
-
from sybil_engine.utils.validation_utils import validate_chain, validate_refuel_interval
|
11
|
-
from sybil_engine.utils.web3_utils import init_web3
|
12
|
-
|
13
|
-
from web3_wizzard_lib.core.contract.bungee import bungee_chain_ids, Bungee
|
14
|
-
|
15
|
-
|
16
|
-
class BungeeRefuel(Module):
|
17
|
-
module_name = 'BUNGEE'
|
18
|
-
module_config = 'bungee_config'
|
19
|
-
|
20
|
-
def execute(self, refuel_amount_interval, from_chain, to_chain, account):
|
21
|
-
from_chain_instance = get_chain_instance(from_chain)
|
22
|
-
web3 = init_web3(from_chain_instance, account.proxy)
|
23
|
-
|
24
|
-
bungee_contract = get_contracts_for_chain(from_chain)['BUNGEE']
|
25
|
-
bungee = Bungee(bungee_contract, web3)
|
26
|
-
|
27
|
-
try:
|
28
|
-
limits = self.get_bungee_limits(from_chain)
|
29
|
-
|
30
|
-
to_chain_limits = [
|
31
|
-
chain for chain in limits if chain["chainId"] == bungee_chain_ids[to_chain] and chain["isEnabled"]
|
32
|
-
]
|
33
|
-
|
34
|
-
if to_chain_limits:
|
35
|
-
min_amount = float(from_wei_to_eth(int(to_chain_limits[0]["minAmount"])))
|
36
|
-
max_amount = float(from_wei_to_eth(int(to_chain_limits[0]["maxAmount"])))
|
37
|
-
|
38
|
-
if refuel_amount_interval == 'max':
|
39
|
-
refuel_amount_interval = {'from': max_amount * 0.9, 'to': max_amount * 0.98}
|
40
|
-
|
41
|
-
if refuel_amount_interval == '':
|
42
|
-
refuel_amount_interval = {'from': min_amount, 'to': max_amount}
|
43
|
-
|
44
|
-
if refuel_amount_interval['from'] < min_amount:
|
45
|
-
raise ConfigurationException(
|
46
|
-
f'Min refuel amount for {from_chain} is {min_amount} < {refuel_amount_interval["from"]}')
|
47
|
-
|
48
|
-
if refuel_amount_interval['to'] > max_amount:
|
49
|
-
raise ConfigurationException(
|
50
|
-
f'Max refuel amount for {from_chain} is {max_amount} > {refuel_amount_interval["to"]}')
|
51
|
-
|
52
|
-
native_without_min = get_native_balance(account, web3, from_chain_instance).minus(
|
53
|
-
self.min_native_balance)
|
54
|
-
|
55
|
-
amount = interval_to_eth_balance(refuel_amount_interval, account, from_chain, web3)
|
56
|
-
|
57
|
-
if amount.wei > native_without_min.wei:
|
58
|
-
amount = native_without_min
|
59
|
-
|
60
|
-
logger.info(f"Refuel {from_chain.title()} > {to_chain.title()} | {amount}")
|
61
|
-
|
62
|
-
bungee.refuel(account, to_chain, amount.wei)
|
63
|
-
else:
|
64
|
-
logger.info("skip")
|
65
|
-
except Exception as e:
|
66
|
-
logger.error(f"Bungee refuel error | error {e}")
|
67
|
-
|
68
|
-
def get_bungee_limits(self, from_chain) -> Union[dict, bool]:
|
69
|
-
bungee_data = self.get_bungee_data()
|
70
|
-
|
71
|
-
try:
|
72
|
-
if from_chain == 'ZKSYNC':
|
73
|
-
limits = [chain_data for chain_data in bungee_data if chain_data["name"] == "zkSync"][0]["limits"]
|
74
|
-
elif from_chain == 'ARBITRUM':
|
75
|
-
limits = [chain_data for chain_data in bungee_data if chain_data["name"] == "Arbitrum"][0]["limits"]
|
76
|
-
elif from_chain == 'OPTIMISM':
|
77
|
-
limits = [chain_data for chain_data in bungee_data if chain_data["name"] == "Optimism"][0]["limits"]
|
78
|
-
elif from_chain == 'POLYGON':
|
79
|
-
limits = [chain_data for chain_data in bungee_data if chain_data["name"] == "Polygon"][0]["limits"]
|
80
|
-
elif from_chain == 'AVALANCHE':
|
81
|
-
limits = [chain_data for chain_data in bungee_data if chain_data["name"] == "Avalanche"][0]["limits"]
|
82
|
-
elif from_chain == 'BSC':
|
83
|
-
limits = [chain_data for chain_data in bungee_data if chain_data["name"] == "BSC"][0]["limits"]
|
84
|
-
elif from_chain == 'BASE':
|
85
|
-
limits = [chain_data for chain_data in bungee_data if chain_data["name"] == "Base"][0]["limits"]
|
86
|
-
else:
|
87
|
-
raise Exception("Not supported")
|
88
|
-
|
89
|
-
return limits
|
90
|
-
except Exception as e:
|
91
|
-
return False
|
92
|
-
|
93
|
-
def get_bungee_data(self):
|
94
|
-
url = "https://refuel.socket.tech/chains"
|
95
|
-
response = requests.get(url)
|
96
|
-
if response.status_code == 200:
|
97
|
-
data = response.json()["result"]
|
98
|
-
return data
|
99
|
-
return False
|
100
|
-
|
101
|
-
def log(self):
|
102
|
-
return "BUNGEE REFUEL"
|
103
|
-
|
104
|
-
def parse_params(self, module_params):
|
105
|
-
validate_chain(module_params['from_chain'])
|
106
|
-
validate_chain(module_params['to_chain'])
|
107
|
-
validate_refuel_interval(module_params['refuel_amount_interval'])
|
108
|
-
|
109
|
-
return module_params['refuel_amount_interval'], module_params['from_chain'], module_params['to_chain']
|
@@ -1,60 +0,0 @@
|
|
1
|
-
from loguru import logger
|
2
|
-
from sybil_engine.contract.send import Send
|
3
|
-
from sybil_engine.data.networks import get_chain_instance
|
4
|
-
from sybil_engine.domain.balance.balance_utils import interval_to_native_balance, interval_to_erc20_balance
|
5
|
-
from sybil_engine.domain.balance.tokens import Erc20Token
|
6
|
-
from sybil_engine.module.module import Module
|
7
|
-
from sybil_engine.utils.accumulator import add_accumulator_native_balance
|
8
|
-
from sybil_engine.utils.retry import retry
|
9
|
-
from sybil_engine.utils.validation_utils import validate_chain, validate_amount_interval
|
10
|
-
from sybil_engine.utils.web3_utils import init_web3
|
11
|
-
|
12
|
-
|
13
|
-
class SendToCex(Module):
|
14
|
-
module_name = 'SEND_TO_CEX'
|
15
|
-
module_config = 'send_to_cex_config'
|
16
|
-
supported_chains = ['USDC', 'USDT', 'ZK', 'ZRO', 'OBT']
|
17
|
-
|
18
|
-
def execute(self, chain, send_to_cex_amount_interval, token, account):
|
19
|
-
cex_address = account.cex_address
|
20
|
-
chain_instance = get_chain_instance(chain)
|
21
|
-
web3 = init_web3(chain_instance, account.proxy)
|
22
|
-
|
23
|
-
if token == 'NATIVE':
|
24
|
-
amount = interval_to_native_balance(send_to_cex_amount_interval, account, chain_instance['chain'], web3)
|
25
|
-
|
26
|
-
if send_to_cex_amount_interval == 'all_balance':
|
27
|
-
amount = amount.minus(self.min_native_balance)
|
28
|
-
elif token in self.supported_chains:
|
29
|
-
amount = interval_to_erc20_balance(send_to_cex_amount_interval, account, token, chain, web3)
|
30
|
-
else:
|
31
|
-
raise Exception(f"Token {token} not supported. Only NATIVE and USDC/USDT are supported.")
|
32
|
-
|
33
|
-
if amount.wei == 0 :
|
34
|
-
logger.info("Wallet is empty")
|
35
|
-
return
|
36
|
-
|
37
|
-
self.send_funds(account, amount, cex_address, chain, chain_instance, token, web3)
|
38
|
-
|
39
|
-
add_accumulator_native_balance("Total sent to cex", amount.wei)
|
40
|
-
|
41
|
-
@retry(max_attempts=5, retry_interval={'from': 60 * 2, 'to': 60 * 3})
|
42
|
-
def send_funds(self, account, amount, cex_address, chain, chain_instance, token, web3):
|
43
|
-
logger.info(f"Send {amount} to {cex_address} ({chain_instance['chain']})")
|
44
|
-
if token == 'NATIVE':
|
45
|
-
send = Send(None, web3)
|
46
|
-
send.send_to_wallet(account, cex_address, amount)
|
47
|
-
elif token in self.supported_chains:
|
48
|
-
erc20_token = Erc20Token(chain, token, web3)
|
49
|
-
erc20_token.transfer(amount, cex_address, account)
|
50
|
-
else:
|
51
|
-
raise Exception(f"Token {token} not supported. Only NATIVE and USDC/USDT are supported.")
|
52
|
-
|
53
|
-
def log(self):
|
54
|
-
return "SEND TO CEX"
|
55
|
-
|
56
|
-
def parse_params(self, module_params):
|
57
|
-
validate_chain(module_params['chain'])
|
58
|
-
validate_amount_interval(module_params['amount'])
|
59
|
-
|
60
|
-
return module_params['chain'], module_params['amount'], module_params['token']
|
@@ -1,34 +0,0 @@
|
|
1
|
-
from sybil_engine.config.app_config import get_cex_data, get_cex_conf
|
2
|
-
from sybil_engine.domain.cex.binance import Binance
|
3
|
-
from sybil_engine.domain.cex.okx import OKX
|
4
|
-
from sybil_engine.module.module import Module
|
5
|
-
from sybil_engine.utils.app_account_utils import AppAccount
|
6
|
-
from sybil_engine.utils.utils import ConfigurationException
|
7
|
-
|
8
|
-
|
9
|
-
class CEXSubAccountTransfer(Module):
|
10
|
-
module_name = 'CEX_SUB_ACCOUNT_TRANSFER'
|
11
|
-
module_config = 'cex_account_transfer_config'
|
12
|
-
|
13
|
-
def execute(self, cex, account: AppAccount):
|
14
|
-
password, cex_data = get_cex_data()
|
15
|
-
|
16
|
-
tokens = ['ETH', 'CORE', 'POL', 'USDC', 'USDT', 'OKB', 'ZRO']
|
17
|
-
|
18
|
-
if cex == 'okx':
|
19
|
-
cex_obj = OKX(cex_data[get_cex_conf()], password)
|
20
|
-
elif cex == 'binance':
|
21
|
-
cex_obj = Binance(cex_data[get_cex_conf()], password)
|
22
|
-
else:
|
23
|
-
raise ConfigurationException(f"{cex} is not")
|
24
|
-
|
25
|
-
cex_obj.transfer_from_sub_account(tokens)
|
26
|
-
|
27
|
-
def log(self):
|
28
|
-
return "CEX SUB ACCOUNT TRANSFER"
|
29
|
-
|
30
|
-
def parse_params(self, module_params):
|
31
|
-
if 'cex' not in module_params:
|
32
|
-
module_params['cex'] = 'okx'
|
33
|
-
|
34
|
-
return [module_params['cex']]
|
@@ -1,91 +0,0 @@
|
|
1
|
-
import random
|
2
|
-
|
3
|
-
from loguru import logger
|
4
|
-
from sybil_engine.config.app_config import get_cex_data, get_cex_conf
|
5
|
-
from sybil_engine.data.networks import get_chain_instance
|
6
|
-
from sybil_engine.domain.balance.balance_utils import get_native_balance, \
|
7
|
-
interval_to_native_balance, interval_to_erc20_balance
|
8
|
-
from sybil_engine.domain.balance.tokens import Erc20Token
|
9
|
-
from sybil_engine.domain.cex.binance import Binance
|
10
|
-
from sybil_engine.domain.cex.okx import OKX
|
11
|
-
from sybil_engine.module.module import Module
|
12
|
-
from sybil_engine.utils.app_account_utils import AppAccount
|
13
|
-
from sybil_engine.utils.utils import randomized_sleeping, ConfigurationException
|
14
|
-
from sybil_engine.utils.web3_utils import init_web3
|
15
|
-
|
16
|
-
|
17
|
-
class CEXWithdraw(Module):
|
18
|
-
module_name = 'CEX_WITHDRAW'
|
19
|
-
sleep_after_conf = True
|
20
|
-
module_config = 'cex_withdraw'
|
21
|
-
|
22
|
-
def execute(self, chain, withdraw_interval, min_auto_withdraw_interval, token, cex, account: AppAccount):
|
23
|
-
self.sleep_after_conf = True
|
24
|
-
chain_instance = get_chain_instance(chain)
|
25
|
-
web3 = init_web3(chain_instance, None)
|
26
|
-
|
27
|
-
balance, min_auto_withdraw, withdraw_token = self.balance(account, chain, chain_instance,
|
28
|
-
min_auto_withdraw_interval, token, web3)
|
29
|
-
logger.info(f"{chain}")
|
30
|
-
logger.info(f"Minimum balance should be {min_auto_withdraw}")
|
31
|
-
|
32
|
-
if min_auto_withdraw.wei < balance.wei:
|
33
|
-
self.sleep_after_conf = False
|
34
|
-
|
35
|
-
while min_auto_withdraw.wei > balance.wei:
|
36
|
-
logger.info(f"Actual balance: {balance}")
|
37
|
-
|
38
|
-
amount = round(random.uniform(withdraw_interval['from'], withdraw_interval['to']), 6)
|
39
|
-
logger.info(f"Withdraw {amount} {chain_instance['gas_token']} from {cex} to {account.address}")
|
40
|
-
|
41
|
-
password, cex_data = get_cex_data()
|
42
|
-
|
43
|
-
if cex == 'okx':
|
44
|
-
cex_obj = OKX(cex_data[get_cex_conf()], password)
|
45
|
-
elif cex == 'binance':
|
46
|
-
cex_obj = Binance(cex_data[get_cex_conf()], password)
|
47
|
-
else:
|
48
|
-
raise ConfigurationException(f"{cex} is not")
|
49
|
-
|
50
|
-
if withdraw_token == 'WETH':
|
51
|
-
withdraw_token = 'ETH'
|
52
|
-
|
53
|
-
cex_obj.withdrawal(account.address, chain, amount, withdraw_token)
|
54
|
-
|
55
|
-
randomized_sleeping({'from': 60 * 2, 'to': 60 * 4})
|
56
|
-
|
57
|
-
balance, _, _ = self.balance(account, chain, chain_instance, min_auto_withdraw_interval, token, web3)
|
58
|
-
|
59
|
-
def balance(self, account, chain, chain_instance, min_auto_withdraw_interval, token, web3):
|
60
|
-
if token == 'NATIVE':
|
61
|
-
min_auto_withdraw = interval_to_native_balance(min_auto_withdraw_interval, account, chain, web3)
|
62
|
-
balance = get_native_balance(account, web3, chain_instance)
|
63
|
-
withdraw_token = chain_instance['gas_token']
|
64
|
-
elif token in ['USDC', 'USDT', 'WETH', 'ETH']:
|
65
|
-
if token == 'ETH':
|
66
|
-
token = 'WETH'
|
67
|
-
min_auto_withdraw = interval_to_erc20_balance(min_auto_withdraw_interval, account, token, chain, web3)
|
68
|
-
erc20_token = Erc20Token(chain, token, web3)
|
69
|
-
balance = erc20_token.balance(account)
|
70
|
-
withdraw_token = token
|
71
|
-
else:
|
72
|
-
raise ConfigurationException(f"Unsupported token {token}, supported tokens are: NATIVE, USDC")
|
73
|
-
return balance, min_auto_withdraw, withdraw_token
|
74
|
-
|
75
|
-
def log(self):
|
76
|
-
return "CEX WITHDRAW"
|
77
|
-
|
78
|
-
def parse_params(self, module_params):
|
79
|
-
if 'cex' not in module_params:
|
80
|
-
module_params['cex'] = 'okx'
|
81
|
-
|
82
|
-
return [
|
83
|
-
module_params['chain'],
|
84
|
-
module_params['withdraw_interval'],
|
85
|
-
module_params['min_auto_withdraw_interval'],
|
86
|
-
module_params['token'],
|
87
|
-
module_params['cex']
|
88
|
-
]
|
89
|
-
|
90
|
-
def sleep_after(self):
|
91
|
-
return self.sleep_after_conf
|
@@ -1,45 +0,0 @@
|
|
1
|
-
from loguru import logger
|
2
|
-
from sybil_engine.data.networks import get_chain_instance
|
3
|
-
from sybil_engine.module.module import Module
|
4
|
-
from sybil_engine.utils.app_account_utils import AppAccount
|
5
|
-
from sybil_engine.utils.web3_utils import init_web3
|
6
|
-
|
7
|
-
from web3_wizzard_lib.core.modules.claims.layerzero_claimer import claimer_zro
|
8
|
-
from web3_wizzard_lib.core.modules.claims.rabby_claimer import claimer_rabby
|
9
|
-
|
10
|
-
native_prices = {
|
11
|
-
'ETH': 3700,
|
12
|
-
'USDT': 1
|
13
|
-
}
|
14
|
-
|
15
|
-
|
16
|
-
class Claimer(Module):
|
17
|
-
module_name = 'CLAIMER'
|
18
|
-
sleep_after_conf = True
|
19
|
-
module_config = 'claimer_config'
|
20
|
-
|
21
|
-
def execute(self, chain, layerzero_token, project, account: AppAccount):
|
22
|
-
logger.info(f"CLAIM L0 tokens for {account} on {chain}")
|
23
|
-
chain_instance = get_chain_instance(chain)
|
24
|
-
web3 = init_web3(chain_instance, None)
|
25
|
-
|
26
|
-
if project == 'ZRO':
|
27
|
-
claimer_zro(account, chain_instance, layerzero_token, web3)
|
28
|
-
else:
|
29
|
-
claimer_rabby(account, web3)
|
30
|
-
|
31
|
-
def log(self):
|
32
|
-
return "CLAIMER"
|
33
|
-
|
34
|
-
def parse_params(self, module_params):
|
35
|
-
if 'project' not in module_params:
|
36
|
-
module_params['project'] = 'ZRO'
|
37
|
-
|
38
|
-
return [
|
39
|
-
module_params['chain'],
|
40
|
-
module_params['token'],
|
41
|
-
module_params['project']
|
42
|
-
]
|
43
|
-
|
44
|
-
def sleep_after(self):
|
45
|
-
return self.sleep_after_conf
|
File without changes
|