web3-wizzard-lib 0.0.2__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.
- core/__init__.py +1 -0
- core/contract/__init__.py +0 -0
- core/contract/aavecontract.py +36 -0
- core/contract/alienswap_contract.py +21 -0
- core/contract/arena_games_contract.py +16 -0
- core/contract/basiliskcontract.py +58 -0
- core/contract/bilinear_contract.py +22 -0
- core/contract/bungee.py +33 -0
- core/contract/coredao_contract.py +35 -0
- core/contract/coredao_from_contract.py +40 -0
- core/contract/dmail_send_mail.py +18 -0
- core/contract/empty_nft.py +18 -0
- core/contract/era_name.py +23 -0
- core/contract/eralendcontract.py +34 -0
- core/contract/eth_scroll_bridge_contract.py +25 -0
- core/contract/frog_war_contract.py +48 -0
- core/contract/horizondex_quoter.py +14 -0
- core/contract/horizondex_router.py +91 -0
- core/contract/imagine_contract.py +18 -0
- core/contract/izumi.py +63 -0
- core/contract/kreatorland_contract.py +21 -0
- core/contract/l0_claim.py +254 -0
- core/contract/l2_telegraph.py +21 -0
- core/contract/layerbank_price.py +18 -0
- core/contract/layerbank_token.py +29 -0
- core/contract/layerbankcontract.py +59 -0
- core/contract/linea_day_2_contract.py +19 -0
- core/contract/linea_day_3_contract.py +55 -0
- core/contract/linea_ens_names_contract.py +55 -0
- core/contract/lineaswaprouter.py +52 -0
- core/contract/maverick_multicall.py +52 -0
- core/contract/mendi_finance_contract.py +11 -0
- core/contract/mendi_token.py +25 -0
- core/contract/merkly_minter.py +47 -0
- core/contract/micro3_contract.py +18 -0
- core/contract/mute_router.py +93 -0
- core/contract/nidum_contract.py +44 -0
- core/contract/nile_contract.py +60 -0
- core/contract/nomis_attest_contract.py +40 -0
- core/contract/nomis_contract.py +40 -0
- core/contract/octomos.py +31 -0
- core/contract/odos.py +104 -0
- core/contract/omnisea.py +29 -0
- core/contract/orbiter_starknet.py +30 -0
- core/contract/pancake_pool.py +19 -0
- core/contract/pancake_quoter.py +20 -0
- core/contract/pancake_router.py +72 -0
- core/contract/rage_claim.py +24 -0
- core/contract/reactor_fusion_contract.py +78 -0
- core/contract/readon_contract.py +19 -0
- core/contract/rubyscore_contract.py +31 -0
- core/contract/satoshi_universe_contract.py +29 -0
- core/contract/scroll_bridge_contract.py +24 -0
- core/contract/scroll_canvas_mint_contract.py +26 -0
- core/contract/scroll_oracle.py +11 -0
- core/contract/snap_contract.py +16 -0
- core/contract/social_scan_contract.py +20 -0
- core/contract/stargate_farming.py +37 -0
- core/contract/stargate_router.py +84 -0
- core/contract/stargate_router_eth.py +41 -0
- core/contract/stargate_token_pool.py +46 -0
- core/contract/stargate_v2_contract.py +36 -0
- core/contract/syncswap_classic_pool.py +15 -0
- core/contract/syncswap_classic_pool_factory.py +15 -0
- core/contract/syncswap_pool.py +25 -0
- core/contract/syncswap_router.py +123 -0
- core/contract/tavaera_id.py +18 -0
- core/contract/tavaera_mint.py +17 -0
- core/contract/townstory_bonus_contract.py +19 -0
- core/contract/townstory_contract.py +21 -0
- core/contract/velocore_lens.py +44 -0
- core/contract/velocore_pool.py +198 -0
- core/contract/velocore_router.py +80 -0
- core/contract/woofi_swap.py +29 -0
- core/contract/xy_finance_contract.py +87 -0
- core/contract/yoddlo_contract.py +19 -0
- core/contract/yuliverse_contract.py +36 -0
- core/contract/zebra_contract.py +68 -0
- core/contract/zerolend_contract.py +34 -0
- core/contract/zerolend_liq_contract.py +20 -0
- core/contract/zkdx_contract.py +40 -0
- core/contract/zkdx_data.py +14 -0
- core/contract/zks.py +24 -0
- core/modules/__init__.py +0 -0
- core/modules/ads_import_proxy.py +52 -0
- core/modules/airdrop_printer.py +80 -0
- core/modules/bank/__init__.py +0 -0
- core/modules/bank/aave.py +25 -0
- core/modules/bank/bank.py +15 -0
- core/modules/bank/bank_module.py +99 -0
- core/modules/bank/basilisk.py +25 -0
- core/modules/bank/eralend.py +25 -0
- core/modules/bank/layerbank.py +116 -0
- core/modules/bank/mendi_finance.py +57 -0
- core/modules/bank/reactorfusion.py +25 -0
- core/modules/bank/zerolend.py +36 -0
- core/modules/bridge/__init__.py +0 -0
- core/modules/bridge/bridge.py +8 -0
- core/modules/bridge/coredao_bridge_sub.py +47 -0
- core/modules/bridge/orbiter_sub.py +112 -0
- core/modules/bridge/scroll_bridge_sub.py +42 -0
- core/modules/bridge/stargate_v2_sub.py +74 -0
- core/modules/bridge_module.py +47 -0
- core/modules/bungee.py +109 -0
- core/modules/cex_sender.py +60 -0
- core/modules/cex_subaccount_transfer.py +34 -0
- core/modules/cex_withdraw.py +91 -0
- core/modules/claimer.py +45 -0
- core/modules/claims/__init__.py +0 -0
- core/modules/claims/layerzero_claimer.py +64 -0
- core/modules/claims/rabby_claimer.py +81 -0
- core/modules/concrete_swap.py +97 -0
- core/modules/coredao_bridge.py +32 -0
- core/modules/coredao_bridge_auto.py +39 -0
- core/modules/debank_checker.py +90 -0
- core/modules/dmail.py +54 -0
- core/modules/erc20_balance.py +42 -0
- core/modules/intract/__init__.py +0 -0
- core/modules/intract/intract_api.py +212 -0
- core/modules/intract/utils.py +81 -0
- core/modules/intract_claim.py +104 -0
- core/modules/layer_2_20.py +65 -0
- core/modules/lending_module.py +134 -0
- core/modules/linea_appeal.py +70 -0
- core/modules/linea_poh_lxp.py +64 -0
- core/modules/liquidity/__init__.py +0 -0
- core/modules/liquidity/nile_pool.py +64 -0
- core/modules/liquidity/pool.py +16 -0
- core/modules/liquidity/syncswap_pool.py +61 -0
- core/modules/liquidity/velocore_pool.py +55 -0
- core/modules/liquidity/zerolend_liquidity.py +26 -0
- core/modules/liquidity_pool.py +60 -0
- core/modules/merkly_refuel.py +87 -0
- core/modules/modules.py +4 -0
- core/modules/nft/__init__.py +0 -0
- core/modules/nft/abbys_world.py +22 -0
- core/modules/nft/acg_worlds.py +25 -0
- core/modules/nft/alienswap_linea.py +22 -0
- core/modules/nft/arena_games.py +22 -0
- core/modules/nft/asmatch.py +22 -0
- core/modules/nft/battlemon.py +25 -0
- core/modules/nft/bilinear.py +22 -0
- core/modules/nft/bitavatar.py +25 -0
- core/modules/nft/culture_satoshi_universe.py +24 -0
- core/modules/nft/efrogs.py +26 -0
- core/modules/nft/empty_nft.py +22 -0
- core/modules/nft/era_domain.py +42 -0
- core/modules/nft/frog_war.py +22 -0
- core/modules/nft/frog_war_bonus.py +22 -0
- core/modules/nft/gamerboom.py +25 -0
- core/modules/nft/gamerboom_bonus.py +26 -0
- core/modules/nft/imagine.py +32 -0
- core/modules/nft/kreatorland_module.py +35 -0
- core/modules/nft/l2_telegraph_module.py +22 -0
- core/modules/nft/layer3_meta.py +25 -0
- core/modules/nft/linea_culture_2_2_linus.py +24 -0
- core/modules/nft/linea_culture_2_3_yooldo.py +24 -0
- core/modules/nft/linea_culture_2_4_frogwar.py +24 -0
- core/modules/nft/linea_culture_2_5_acg.py +25 -0
- core/modules/nft/linea_culture_2_6_ascend_the_end.py +25 -0
- core/modules/nft/linea_culture_3_1_ascend_the_end.py +25 -0
- core/modules/nft/linea_culture_3_2_sending_me.py +25 -0
- core/modules/nft/linea_culture_3_3_townstory.py +25 -0
- core/modules/nft/linea_culture_3_4_daniele.py +25 -0
- core/modules/nft/linea_culture_3_5_demmortal.py +25 -0
- core/modules/nft/linea_culture_3_6_foxy.py +25 -0
- core/modules/nft/linea_culture_4_1_coop_records.py +60 -0
- core/modules/nft/linea_culture_4_2_borja_moskv.py +65 -0
- core/modules/nft/linea_culture_4_2_borja_moskv_approve.py +27 -0
- core/modules/nft/linea_culture_4_3_fruit.py +66 -0
- core/modules/nft/linea_culture_4_4_fruit_crux.py +67 -0
- core/modules/nft/linea_culture_4_5_forbidden_fruit.py +67 -0
- core/modules/nft/linea_culture_4_6_laurent.py +67 -0
- core/modules/nft/linea_culture_day2.py +20 -0
- core/modules/nft/linea_culture_day3.py +20 -0
- core/modules/nft/linea_ens_names.py +107 -0
- core/modules/nft/lucky_cat.py +25 -0
- core/modules/nft/merkly_minter_module.py +22 -0
- core/modules/nft/micro3.py +23 -0
- core/modules/nft/mint_2048.py +28 -0
- core/modules/nft/nft_submodule.py +16 -0
- core/modules/nft/nidum.py +87 -0
- core/modules/nft/nidum_bonus.py +23 -0
- core/modules/nft/nomis.py +64 -0
- core/modules/nft/nomis_attest.py +66 -0
- core/modules/nft/nouns.py +27 -0
- core/modules/nft/octomos.py +32 -0
- core/modules/nft/omnisea.py +33 -0
- core/modules/nft/omnizone.py +25 -0
- core/modules/nft/orbiter_claim.py +87 -0
- core/modules/nft/readon.py +30 -0
- core/modules/nft/rubyscore.py +45 -0
- core/modules/nft/sarubol.py +22 -0
- core/modules/nft/satoshi_universe.py +22 -0
- core/modules/nft/scroll_canvas_attest_year_badge.py +35 -0
- core/modules/nft/scroll_canvas_mint.py +51 -0
- core/modules/nft/sign.py +32 -0
- core/modules/nft/snap.py +25 -0
- core/modules/nft/snap_bonus.py +31 -0
- core/modules/nft/social_scan.py +22 -0
- core/modules/nft/sub_module.py +8 -0
- core/modules/nft/tavaera.py +30 -0
- core/modules/nft/townstory.py +75 -0
- core/modules/nft/townstory_bonus.py +45 -0
- core/modules/nft/trusta_reputation.py +48 -0
- core/modules/nft/trustaa_poh.py +49 -0
- core/modules/nft/uber_poh.py +24 -0
- core/modules/nft/wizards_of_linea.py +26 -0
- core/modules/nft/yoddlo.py +22 -0
- core/modules/nft/yuliverse.py +22 -0
- core/modules/nft/zace.py +25 -0
- core/modules/nft/zks_domain.py +41 -0
- core/modules/nft_minter.py +107 -0
- core/modules/orbiter.py +39 -0
- core/modules/orbiter_checker.py +26 -0
- core/modules/rage.py +54 -0
- core/modules/scroll_bridge.py +45 -0
- core/modules/sell_all.py +51 -0
- core/modules/sleep_module.py +25 -0
- core/modules/smart_contract_deployment.py +37 -0
- core/modules/stargate/__init__.py +0 -0
- core/modules/stargate/auto_bridge.py +91 -0
- core/modules/stargate/bridge.py +38 -0
- core/modules/stargate/bridge_eth.py +59 -0
- core/modules/stargate/bridge_tokens.py +48 -0
- core/modules/stargate/classic_bridge.py +34 -0
- core/modules/stargate/farming.py +163 -0
- core/modules/stargate/l0_data.py +10 -0
- core/modules/stargate/pool.py +74 -0
- core/modules/stargate/stargate_balance_utils.py +25 -0
- core/modules/stargate/stargate_gas_checker.py +68 -0
- core/modules/swap/__init__.py +1 -0
- core/modules/swap/horizondex.py +38 -0
- core/modules/swap/izumi.py +41 -0
- core/modules/swap/lineaswap.py +34 -0
- core/modules/swap/maverick.py +66 -0
- core/modules/swap/mute.py +39 -0
- core/modules/swap/odos.py +58 -0
- core/modules/swap/one_inch.py +58 -0
- core/modules/swap/pancake.py +41 -0
- core/modules/swap/swap_facade.py +10 -0
- core/modules/swap/syncswap.py +62 -0
- core/modules/swap/velocore.py +40 -0
- core/modules/swap/woofi.py +38 -0
- core/modules/swap/xy_finance.py +43 -0
- core/modules/swap/zebra.py +32 -0
- core/modules/warm_up.py +98 -0
- core/modules/wrapping.py +74 -0
- core/modules/zkdx.py +63 -0
- data/__init__.py +0 -0
- data/config_default.py +52 -0
- data/module_config_default.py +209 -0
- tests/__init__.py +0 -0
- tests/core/__init__.py +0 -0
- tests/core/contracts/__init__.py +0 -0
- tests/core/contracts/test_horizondex_quoter.py +37 -0
- tests/core/contracts/test_uniswap_quoter.py +35 -0
- tests/core/contracts/test_velocore_lens.py +67 -0
- tests/core/contracts/test_velocore_pool.py +57 -0
- tests/core/modules/__init__.py +67 -0
- tests/core/modules/swap/__init__.py +0 -0
- tests/core/modules/swap/test_horizondex.py +37 -0
- tests/core/modules/swap/test_lineaswap.py +28 -0
- tests/core/modules/swap/test_maverick.py +31 -0
- tests/core/modules/swap/test_mute.py +29 -0
- tests/core/modules/swap/test_odos.py +36 -0
- tests/core/modules/swap/test_pancake.py +54 -0
- tests/core/modules/swap/test_syncswap.py +59 -0
- tests/core/modules/swap/test_velocore.py +33 -0
- tests/core/modules/swap/test_woofi.py +22 -0
- tests/core/modules/test_bungee.py +27 -0
- tests/core/modules/test_concrete_swap.py +62 -0
- tests/core/modules/test_dmail.py +41 -0
- tests/core/modules/test_lending.py +122 -0
- tests/core/modules/test_nft.py +32 -0
- tests/core/modules/test_nft_minter.py +30 -0
- tests/core/modules/test_orbiter.py +28 -0
- tests/core/modules/test_sellall.py +27 -0
- tests/core/modules/test_send_to_cex.py +27 -0
- tests/core/modules/test_stargate_auto_bridge.py +32 -0
- tests/core/modules/test_stargate_bridge.py +25 -0
- tests/core/modules/test_stargate_farming.py +108 -0
- tests/core/modules/test_warmup.py +78 -0
- tests/core/modules/test_wrapping.py +68 -0
- tests/core/scenario/__init__.py +0 -0
- tests/core/scenario/module_0_test_config.py +91 -0
- tests/core/test_app.py +19 -0
- tests/core/test_config.py +34 -0
- web3_wizzard_lib/__init__.py +0 -0
- web3_wizzard_lib/core/__init__.py +1 -0
- web3_wizzard_lib/core/contract/__init__.py +0 -0
- web3_wizzard_lib/core/contract/aavecontract.py +36 -0
- web3_wizzard_lib/core/contract/alienswap_contract.py +21 -0
- web3_wizzard_lib/core/contract/arena_games_contract.py +16 -0
- web3_wizzard_lib/core/contract/basiliskcontract.py +58 -0
- web3_wizzard_lib/core/contract/bilinear_contract.py +22 -0
- web3_wizzard_lib/core/contract/bungee.py +33 -0
- web3_wizzard_lib/core/contract/coredao_contract.py +35 -0
- web3_wizzard_lib/core/contract/coredao_from_contract.py +40 -0
- web3_wizzard_lib/core/contract/dmail_send_mail.py +18 -0
- web3_wizzard_lib/core/contract/empty_nft.py +18 -0
- web3_wizzard_lib/core/contract/era_name.py +23 -0
- web3_wizzard_lib/core/contract/eralendcontract.py +34 -0
- web3_wizzard_lib/core/contract/eth_scroll_bridge_contract.py +25 -0
- web3_wizzard_lib/core/contract/frog_war_contract.py +48 -0
- web3_wizzard_lib/core/contract/horizondex_quoter.py +14 -0
- web3_wizzard_lib/core/contract/horizondex_router.py +91 -0
- web3_wizzard_lib/core/contract/imagine_contract.py +18 -0
- web3_wizzard_lib/core/contract/izumi.py +63 -0
- web3_wizzard_lib/core/contract/kreatorland_contract.py +21 -0
- web3_wizzard_lib/core/contract/l0_claim.py +254 -0
- web3_wizzard_lib/core/contract/l2_telegraph.py +21 -0
- web3_wizzard_lib/core/contract/layerbank_price.py +18 -0
- web3_wizzard_lib/core/contract/layerbank_token.py +29 -0
- web3_wizzard_lib/core/contract/layerbankcontract.py +59 -0
- web3_wizzard_lib/core/contract/linea_day_2_contract.py +19 -0
- web3_wizzard_lib/core/contract/linea_day_3_contract.py +55 -0
- web3_wizzard_lib/core/contract/linea_ens_names_contract.py +55 -0
- web3_wizzard_lib/core/contract/lineaswaprouter.py +52 -0
- web3_wizzard_lib/core/contract/maverick_multicall.py +52 -0
- web3_wizzard_lib/core/contract/mendi_finance_contract.py +11 -0
- web3_wizzard_lib/core/contract/mendi_token.py +25 -0
- web3_wizzard_lib/core/contract/merkly_minter.py +47 -0
- web3_wizzard_lib/core/contract/micro3_contract.py +18 -0
- web3_wizzard_lib/core/contract/mute_router.py +93 -0
- web3_wizzard_lib/core/contract/nidum_contract.py +44 -0
- web3_wizzard_lib/core/contract/nile_contract.py +60 -0
- web3_wizzard_lib/core/contract/nomis_attest_contract.py +40 -0
- web3_wizzard_lib/core/contract/nomis_contract.py +40 -0
- web3_wizzard_lib/core/contract/octomos.py +31 -0
- web3_wizzard_lib/core/contract/odos.py +104 -0
- web3_wizzard_lib/core/contract/omnisea.py +29 -0
- web3_wizzard_lib/core/contract/orbiter_starknet.py +30 -0
- web3_wizzard_lib/core/contract/pancake_pool.py +19 -0
- web3_wizzard_lib/core/contract/pancake_quoter.py +20 -0
- web3_wizzard_lib/core/contract/pancake_router.py +72 -0
- web3_wizzard_lib/core/contract/rage_claim.py +24 -0
- web3_wizzard_lib/core/contract/reactor_fusion_contract.py +78 -0
- web3_wizzard_lib/core/contract/readon_contract.py +19 -0
- web3_wizzard_lib/core/contract/rubyscore_contract.py +31 -0
- web3_wizzard_lib/core/contract/satoshi_universe_contract.py +29 -0
- web3_wizzard_lib/core/contract/scroll_bridge_contract.py +24 -0
- web3_wizzard_lib/core/contract/scroll_canvas_mint_contract.py +26 -0
- web3_wizzard_lib/core/contract/scroll_oracle.py +11 -0
- web3_wizzard_lib/core/contract/snap_contract.py +16 -0
- web3_wizzard_lib/core/contract/social_scan_contract.py +20 -0
- web3_wizzard_lib/core/contract/stargate_farming.py +37 -0
- web3_wizzard_lib/core/contract/stargate_router.py +84 -0
- web3_wizzard_lib/core/contract/stargate_router_eth.py +41 -0
- web3_wizzard_lib/core/contract/stargate_token_pool.py +46 -0
- web3_wizzard_lib/core/contract/stargate_v2_contract.py +36 -0
- web3_wizzard_lib/core/contract/syncswap_classic_pool.py +15 -0
- web3_wizzard_lib/core/contract/syncswap_classic_pool_factory.py +15 -0
- web3_wizzard_lib/core/contract/syncswap_pool.py +25 -0
- web3_wizzard_lib/core/contract/syncswap_router.py +123 -0
- web3_wizzard_lib/core/contract/tavaera_id.py +18 -0
- web3_wizzard_lib/core/contract/tavaera_mint.py +17 -0
- web3_wizzard_lib/core/contract/townstory_bonus_contract.py +19 -0
- web3_wizzard_lib/core/contract/townstory_contract.py +21 -0
- web3_wizzard_lib/core/contract/velocore_lens.py +44 -0
- web3_wizzard_lib/core/contract/velocore_pool.py +198 -0
- web3_wizzard_lib/core/contract/velocore_router.py +80 -0
- web3_wizzard_lib/core/contract/woofi_swap.py +29 -0
- web3_wizzard_lib/core/contract/xy_finance_contract.py +87 -0
- web3_wizzard_lib/core/contract/yoddlo_contract.py +19 -0
- web3_wizzard_lib/core/contract/yuliverse_contract.py +36 -0
- web3_wizzard_lib/core/contract/zebra_contract.py +68 -0
- web3_wizzard_lib/core/contract/zerolend_contract.py +34 -0
- web3_wizzard_lib/core/contract/zerolend_liq_contract.py +20 -0
- web3_wizzard_lib/core/contract/zkdx_contract.py +40 -0
- web3_wizzard_lib/core/contract/zkdx_data.py +14 -0
- web3_wizzard_lib/core/contract/zks.py +24 -0
- web3_wizzard_lib/core/modules/__init__.py +0 -0
- web3_wizzard_lib/core/modules/ads_import_proxy.py +52 -0
- web3_wizzard_lib/core/modules/airdrop_printer.py +80 -0
- web3_wizzard_lib/core/modules/bank/__init__.py +0 -0
- web3_wizzard_lib/core/modules/bank/aave.py +25 -0
- web3_wizzard_lib/core/modules/bank/bank.py +15 -0
- web3_wizzard_lib/core/modules/bank/bank_module.py +99 -0
- web3_wizzard_lib/core/modules/bank/basilisk.py +25 -0
- web3_wizzard_lib/core/modules/bank/eralend.py +25 -0
- web3_wizzard_lib/core/modules/bank/layerbank.py +116 -0
- web3_wizzard_lib/core/modules/bank/mendi_finance.py +57 -0
- web3_wizzard_lib/core/modules/bank/reactorfusion.py +25 -0
- web3_wizzard_lib/core/modules/bank/zerolend.py +36 -0
- web3_wizzard_lib/core/modules/bridge/__init__.py +0 -0
- web3_wizzard_lib/core/modules/bridge/bridge.py +8 -0
- web3_wizzard_lib/core/modules/bridge/coredao_bridge_sub.py +47 -0
- web3_wizzard_lib/core/modules/bridge/orbiter_sub.py +112 -0
- web3_wizzard_lib/core/modules/bridge/scroll_bridge_sub.py +42 -0
- web3_wizzard_lib/core/modules/bridge/stargate_v2_sub.py +74 -0
- web3_wizzard_lib/core/modules/bridge_module.py +47 -0
- web3_wizzard_lib/core/modules/bungee.py +109 -0
- web3_wizzard_lib/core/modules/cex_sender.py +60 -0
- web3_wizzard_lib/core/modules/cex_subaccount_transfer.py +34 -0
- web3_wizzard_lib/core/modules/cex_withdraw.py +91 -0
- web3_wizzard_lib/core/modules/claimer.py +45 -0
- web3_wizzard_lib/core/modules/claims/__init__.py +0 -0
- web3_wizzard_lib/core/modules/claims/layerzero_claimer.py +64 -0
- web3_wizzard_lib/core/modules/claims/rabby_claimer.py +81 -0
- web3_wizzard_lib/core/modules/concrete_swap.py +97 -0
- web3_wizzard_lib/core/modules/coredao_bridge.py +32 -0
- web3_wizzard_lib/core/modules/coredao_bridge_auto.py +39 -0
- web3_wizzard_lib/core/modules/debank_checker.py +90 -0
- web3_wizzard_lib/core/modules/dmail.py +54 -0
- web3_wizzard_lib/core/modules/erc20_balance.py +42 -0
- web3_wizzard_lib/core/modules/intract/__init__.py +0 -0
- web3_wizzard_lib/core/modules/intract/intract_api.py +212 -0
- web3_wizzard_lib/core/modules/intract/utils.py +81 -0
- web3_wizzard_lib/core/modules/intract_claim.py +104 -0
- web3_wizzard_lib/core/modules/layer_2_20.py +65 -0
- web3_wizzard_lib/core/modules/lending_module.py +134 -0
- web3_wizzard_lib/core/modules/linea_appeal.py +70 -0
- web3_wizzard_lib/core/modules/linea_poh_lxp.py +64 -0
- web3_wizzard_lib/core/modules/liquidity/__init__.py +0 -0
- web3_wizzard_lib/core/modules/liquidity/nile_pool.py +64 -0
- web3_wizzard_lib/core/modules/liquidity/pool.py +16 -0
- web3_wizzard_lib/core/modules/liquidity/syncswap_pool.py +61 -0
- web3_wizzard_lib/core/modules/liquidity/velocore_pool.py +55 -0
- web3_wizzard_lib/core/modules/liquidity/zerolend_liquidity.py +26 -0
- web3_wizzard_lib/core/modules/liquidity_pool.py +60 -0
- web3_wizzard_lib/core/modules/merkly_refuel.py +87 -0
- web3_wizzard_lib/core/modules/modules.py +27 -0
- web3_wizzard_lib/core/modules/nft/__init__.py +0 -0
- web3_wizzard_lib/core/modules/nft/abbys_world.py +22 -0
- web3_wizzard_lib/core/modules/nft/acg_worlds.py +25 -0
- web3_wizzard_lib/core/modules/nft/alienswap_linea.py +22 -0
- web3_wizzard_lib/core/modules/nft/arena_games.py +22 -0
- web3_wizzard_lib/core/modules/nft/asmatch.py +22 -0
- web3_wizzard_lib/core/modules/nft/battlemon.py +25 -0
- web3_wizzard_lib/core/modules/nft/bilinear.py +22 -0
- web3_wizzard_lib/core/modules/nft/bitavatar.py +25 -0
- web3_wizzard_lib/core/modules/nft/culture_satoshi_universe.py +24 -0
- web3_wizzard_lib/core/modules/nft/efrogs.py +26 -0
- web3_wizzard_lib/core/modules/nft/empty_nft.py +22 -0
- web3_wizzard_lib/core/modules/nft/era_domain.py +42 -0
- web3_wizzard_lib/core/modules/nft/frog_war.py +22 -0
- web3_wizzard_lib/core/modules/nft/frog_war_bonus.py +22 -0
- web3_wizzard_lib/core/modules/nft/gamerboom.py +25 -0
- web3_wizzard_lib/core/modules/nft/gamerboom_bonus.py +26 -0
- web3_wizzard_lib/core/modules/nft/imagine.py +32 -0
- web3_wizzard_lib/core/modules/nft/kreatorland_module.py +35 -0
- web3_wizzard_lib/core/modules/nft/l2_telegraph_module.py +22 -0
- web3_wizzard_lib/core/modules/nft/layer3_meta.py +25 -0
- web3_wizzard_lib/core/modules/nft/linea_culture_2_2_linus.py +24 -0
- web3_wizzard_lib/core/modules/nft/linea_culture_2_3_yooldo.py +24 -0
- web3_wizzard_lib/core/modules/nft/linea_culture_2_4_frogwar.py +24 -0
- web3_wizzard_lib/core/modules/nft/linea_culture_2_5_acg.py +25 -0
- web3_wizzard_lib/core/modules/nft/linea_culture_2_6_ascend_the_end.py +25 -0
- web3_wizzard_lib/core/modules/nft/linea_culture_3_1_ascend_the_end.py +25 -0
- web3_wizzard_lib/core/modules/nft/linea_culture_3_2_sending_me.py +25 -0
- web3_wizzard_lib/core/modules/nft/linea_culture_3_3_townstory.py +25 -0
- web3_wizzard_lib/core/modules/nft/linea_culture_3_4_daniele.py +25 -0
- web3_wizzard_lib/core/modules/nft/linea_culture_3_5_demmortal.py +25 -0
- web3_wizzard_lib/core/modules/nft/linea_culture_3_6_foxy.py +25 -0
- web3_wizzard_lib/core/modules/nft/linea_culture_4_1_coop_records.py +60 -0
- web3_wizzard_lib/core/modules/nft/linea_culture_4_2_borja_moskv.py +65 -0
- web3_wizzard_lib/core/modules/nft/linea_culture_4_2_borja_moskv_approve.py +27 -0
- web3_wizzard_lib/core/modules/nft/linea_culture_4_3_fruit.py +66 -0
- web3_wizzard_lib/core/modules/nft/linea_culture_4_4_fruit_crux.py +67 -0
- web3_wizzard_lib/core/modules/nft/linea_culture_4_5_forbidden_fruit.py +67 -0
- web3_wizzard_lib/core/modules/nft/linea_culture_4_6_laurent.py +67 -0
- web3_wizzard_lib/core/modules/nft/linea_culture_day2.py +20 -0
- web3_wizzard_lib/core/modules/nft/linea_culture_day3.py +20 -0
- web3_wizzard_lib/core/modules/nft/linea_ens_names.py +107 -0
- web3_wizzard_lib/core/modules/nft/lucky_cat.py +25 -0
- web3_wizzard_lib/core/modules/nft/merkly_minter_module.py +22 -0
- web3_wizzard_lib/core/modules/nft/micro3.py +23 -0
- web3_wizzard_lib/core/modules/nft/mint_2048.py +28 -0
- web3_wizzard_lib/core/modules/nft/nft_submodule.py +16 -0
- web3_wizzard_lib/core/modules/nft/nidum.py +87 -0
- web3_wizzard_lib/core/modules/nft/nidum_bonus.py +23 -0
- web3_wizzard_lib/core/modules/nft/nomis.py +64 -0
- web3_wizzard_lib/core/modules/nft/nomis_attest.py +66 -0
- web3_wizzard_lib/core/modules/nft/nouns.py +27 -0
- web3_wizzard_lib/core/modules/nft/octomos.py +32 -0
- web3_wizzard_lib/core/modules/nft/omnisea.py +33 -0
- web3_wizzard_lib/core/modules/nft/omnizone.py +25 -0
- web3_wizzard_lib/core/modules/nft/orbiter_claim.py +87 -0
- web3_wizzard_lib/core/modules/nft/readon.py +30 -0
- web3_wizzard_lib/core/modules/nft/rubyscore.py +45 -0
- web3_wizzard_lib/core/modules/nft/sarubol.py +22 -0
- web3_wizzard_lib/core/modules/nft/satoshi_universe.py +22 -0
- web3_wizzard_lib/core/modules/nft/scroll_canvas_attest_year_badge.py +35 -0
- web3_wizzard_lib/core/modules/nft/scroll_canvas_mint.py +51 -0
- web3_wizzard_lib/core/modules/nft/sign.py +32 -0
- web3_wizzard_lib/core/modules/nft/snap.py +25 -0
- web3_wizzard_lib/core/modules/nft/snap_bonus.py +31 -0
- web3_wizzard_lib/core/modules/nft/social_scan.py +22 -0
- web3_wizzard_lib/core/modules/nft/sub_module.py +8 -0
- web3_wizzard_lib/core/modules/nft/tavaera.py +30 -0
- web3_wizzard_lib/core/modules/nft/townstory.py +75 -0
- web3_wizzard_lib/core/modules/nft/townstory_bonus.py +45 -0
- web3_wizzard_lib/core/modules/nft/trusta_reputation.py +48 -0
- web3_wizzard_lib/core/modules/nft/trustaa_poh.py +49 -0
- web3_wizzard_lib/core/modules/nft/uber_poh.py +24 -0
- web3_wizzard_lib/core/modules/nft/wizards_of_linea.py +26 -0
- web3_wizzard_lib/core/modules/nft/yoddlo.py +22 -0
- web3_wizzard_lib/core/modules/nft/yuliverse.py +22 -0
- web3_wizzard_lib/core/modules/nft/zace.py +25 -0
- web3_wizzard_lib/core/modules/nft/zks_domain.py +41 -0
- web3_wizzard_lib/core/modules/nft_minter.py +107 -0
- web3_wizzard_lib/core/modules/orbiter.py +39 -0
- web3_wizzard_lib/core/modules/orbiter_checker.py +26 -0
- web3_wizzard_lib/core/modules/rage.py +54 -0
- web3_wizzard_lib/core/modules/scroll_bridge.py +45 -0
- web3_wizzard_lib/core/modules/sell_all.py +51 -0
- web3_wizzard_lib/core/modules/sleep_module.py +25 -0
- web3_wizzard_lib/core/modules/smart_contract_deployment.py +37 -0
- web3_wizzard_lib/core/modules/stargate/__init__.py +0 -0
- web3_wizzard_lib/core/modules/stargate/auto_bridge.py +91 -0
- web3_wizzard_lib/core/modules/stargate/bridge.py +38 -0
- web3_wizzard_lib/core/modules/stargate/bridge_eth.py +59 -0
- web3_wizzard_lib/core/modules/stargate/bridge_tokens.py +48 -0
- web3_wizzard_lib/core/modules/stargate/classic_bridge.py +34 -0
- web3_wizzard_lib/core/modules/stargate/farming.py +163 -0
- web3_wizzard_lib/core/modules/stargate/l0_data.py +10 -0
- web3_wizzard_lib/core/modules/stargate/pool.py +74 -0
- web3_wizzard_lib/core/modules/stargate/stargate_balance_utils.py +25 -0
- web3_wizzard_lib/core/modules/stargate/stargate_gas_checker.py +68 -0
- web3_wizzard_lib/core/modules/swap/__init__.py +1 -0
- web3_wizzard_lib/core/modules/swap/horizondex.py +38 -0
- web3_wizzard_lib/core/modules/swap/izumi.py +41 -0
- web3_wizzard_lib/core/modules/swap/lineaswap.py +34 -0
- web3_wizzard_lib/core/modules/swap/maverick.py +66 -0
- web3_wizzard_lib/core/modules/swap/mute.py +39 -0
- web3_wizzard_lib/core/modules/swap/odos.py +58 -0
- web3_wizzard_lib/core/modules/swap/one_inch.py +58 -0
- web3_wizzard_lib/core/modules/swap/pancake.py +41 -0
- web3_wizzard_lib/core/modules/swap/swap_facade.py +10 -0
- web3_wizzard_lib/core/modules/swap/swap_list.py +10 -0
- web3_wizzard_lib/core/modules/swap/syncswap.py +62 -0
- web3_wizzard_lib/core/modules/swap/velocore.py +40 -0
- web3_wizzard_lib/core/modules/swap/woofi.py +38 -0
- web3_wizzard_lib/core/modules/swap/xy_finance.py +43 -0
- web3_wizzard_lib/core/modules/swap/zebra.py +32 -0
- web3_wizzard_lib/core/modules/warm_up.py +98 -0
- web3_wizzard_lib/core/modules/wrapping.py +74 -0
- web3_wizzard_lib/core/modules/zkdx.py +63 -0
- web3_wizzard_lib/core/utils/__init__.py +0 -0
- web3_wizzard_lib/core/utils/sub_module.py +8 -0
- web3_wizzard_lib/launcher.py +39 -0
- web3_wizzard_lib-0.0.2.data/data/requirements.txt +1 -0
- web3_wizzard_lib-0.0.2.dist-info/METADATA +10 -0
- web3_wizzard_lib-0.0.2.dist-info/RECORD +547 -0
- web3_wizzard_lib-0.0.2.dist-info/WHEEL +5 -0
- web3_wizzard_lib-0.0.2.dist-info/top_level.txt +3 -0
@@ -0,0 +1,87 @@
|
|
1
|
+
import requests
|
2
|
+
from eth_account import Account
|
3
|
+
from eth_account.messages import encode_defunct
|
4
|
+
from loguru import logger
|
5
|
+
from sybil_engine.contract.send import Send
|
6
|
+
from sybil_engine.data.networks import get_chain_instance
|
7
|
+
from sybil_engine.domain.balance.balance import NativeBalance
|
8
|
+
from sybil_engine.utils.web3_utils import init_web3
|
9
|
+
from web3_wizzard_lib.core.utils.sub_module import SubModule
|
10
|
+
|
11
|
+
|
12
|
+
class OrbiterClaim(SubModule):
|
13
|
+
module_name = 'ORBITER_CLAIM'
|
14
|
+
|
15
|
+
nft_address = "0x13dFDd3a9B39323F228Daf73B62C23F7017E4679"
|
16
|
+
|
17
|
+
def execute(self, account, chain='ARBITRUM'):
|
18
|
+
|
19
|
+
# message to sign Orbiter Airdrop
|
20
|
+
message_text = "Orbiter Airdrop"
|
21
|
+
text_hex = "0x" + message_text.encode('utf-8').hex()
|
22
|
+
text_encoded = encode_defunct(hexstr=text_hex)
|
23
|
+
signed_message = Account.sign_message(text_encoded, private_key=account.key)
|
24
|
+
|
25
|
+
signature = f'0x{signed_message.signature.hex()}'
|
26
|
+
headers = {
|
27
|
+
"token": signature
|
28
|
+
}
|
29
|
+
|
30
|
+
result = requests.post(
|
31
|
+
"https://airdrop-api.orbiter.finance/airdrop/snapshot",
|
32
|
+
headers=headers
|
33
|
+
).json()
|
34
|
+
|
35
|
+
chain_id = result['result']['chainId']
|
36
|
+
|
37
|
+
chain, data = self.form_data(chain, chain_id, result)
|
38
|
+
|
39
|
+
try:
|
40
|
+
self.send_transaction(account, chain, data)
|
41
|
+
except Exception as e:
|
42
|
+
self.send_transaction(account, chain, data.replace("0000000000000000014", "0000000000000000013"))
|
43
|
+
|
44
|
+
def form_data(self, chain, chain_id, result):
|
45
|
+
amount_str = result['result']['proof'][0]['amount']
|
46
|
+
logger.info(f"Orbiter Airdrop snapshot result: {amount_str}")
|
47
|
+
amount_int = int(amount_str.replace(".", ""))
|
48
|
+
logger.info(f"AMOUNT INT: {amount_int}")
|
49
|
+
hex_value = hex(amount_int)[2:]
|
50
|
+
logger.info(f"AMOUNT: {hex_value}")
|
51
|
+
logger.info(f"HEX {hex_value}")
|
52
|
+
if int(chain_id) == 42161:
|
53
|
+
chain = 'ARBITRUM'
|
54
|
+
data = "0xfa5c4e99071cbb2ff029ddaf4b691745b2ba185cbe9ca2f5fa9e7358bada8fbdce764291"
|
55
|
+
data += f"0000000000000000000000000000000000000000000000{hex_value}00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000014"
|
56
|
+
else:
|
57
|
+
data = "0xfa5c4e995d32ba2a988b8fa6c2ae96d3b5980c67e8d8cfbf0d4c89479b79c1e277843438"
|
58
|
+
data += f"000000000000000000000000000000000000000000000010b202b565eb37160000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000010"
|
59
|
+
chain = 'BASE'
|
60
|
+
for line_data in result['result']['proof'][0]['data']:
|
61
|
+
data += line_data[2:]
|
62
|
+
logger.info(data)
|
63
|
+
return chain, data
|
64
|
+
|
65
|
+
def send_transaction(self, account, chain, data):
|
66
|
+
chain_instance = get_chain_instance(chain)
|
67
|
+
web3 = init_web3(chain_instance, account.proxy)
|
68
|
+
Send(None, web3).send_to_wallet(
|
69
|
+
account,
|
70
|
+
self.nft_address,
|
71
|
+
NativeBalance(0, chain, "ETH"),
|
72
|
+
data
|
73
|
+
)
|
74
|
+
|
75
|
+
def log(self):
|
76
|
+
return "ORBITER NFT"
|
77
|
+
|
78
|
+
def round_to_custom_precision(number, precision):
|
79
|
+
# Find the rounding factor (10^precision)
|
80
|
+
factor = 10 ** precision
|
81
|
+
# Perform rounding
|
82
|
+
return round(number / factor) * factor
|
83
|
+
|
84
|
+
|
85
|
+
def truncate_to_decimal_places(value, decimals):
|
86
|
+
factor = 10 ** decimals
|
87
|
+
return int(float(int(value * factor)) / factor)
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import random
|
2
|
+
|
3
|
+
from sybil_engine.data.contracts import get_contracts_for_chain
|
4
|
+
from sybil_engine.data.networks import get_chain_instance
|
5
|
+
from sybil_engine.utils.web3_utils import init_web3
|
6
|
+
|
7
|
+
from web3_wizzard_lib.core.contract.readon_contract import ReadOnContract
|
8
|
+
from web3_wizzard_lib.core.utils.sub_module import SubModule
|
9
|
+
|
10
|
+
|
11
|
+
class ReadOn(SubModule):
|
12
|
+
module_name = 'READON'
|
13
|
+
|
14
|
+
def execute(self, account, chain='LINEA'):
|
15
|
+
chain_instance = get_chain_instance(chain)
|
16
|
+
web3 = init_web3(chain_instance, account.proxy)
|
17
|
+
|
18
|
+
contract_address = get_contracts_for_chain(chain)['READON']
|
19
|
+
readon_curate = ReadOnContract(contract_address, web3)
|
20
|
+
|
21
|
+
low = 1700890697805328281
|
22
|
+
high = 1709890697805328281
|
23
|
+
|
24
|
+
# Generate a random number within the given range
|
25
|
+
contentUrl = format(random.randint(low, high), 'x').zfill(64)
|
26
|
+
|
27
|
+
readon_curate.curate(account, contentUrl)
|
28
|
+
|
29
|
+
def log(self):
|
30
|
+
return "READON NFT"
|
@@ -0,0 +1,45 @@
|
|
1
|
+
import requests
|
2
|
+
from eth_account import Account
|
3
|
+
from eth_account.messages import encode_defunct
|
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.utils.web3_utils import init_web3
|
7
|
+
|
8
|
+
from web3_wizzard_lib.core.contract.rubyscore_contract import RubyscoreContract
|
9
|
+
from web3_wizzard_lib.core.utils.sub_module import SubModule
|
10
|
+
|
11
|
+
|
12
|
+
class Rubyscore(SubModule):
|
13
|
+
module_name = 'RUBYSCORE'
|
14
|
+
|
15
|
+
def execute(self, account, chain='LINEA'):
|
16
|
+
chain_instance = get_chain_instance(chain)
|
17
|
+
web3 = init_web3(chain_instance, account.proxy)
|
18
|
+
|
19
|
+
message = " A signature is required for authorization on the platform and does not pose a threat to users!"
|
20
|
+
|
21
|
+
message_encoded = encode_defunct(text=message)
|
22
|
+
signed_message = Account.sign_message(message_encoded, private_key=account.key).signature.hex()
|
23
|
+
|
24
|
+
login_request_url = f"https://rubyscore.io/api/auth/login?signature={signed_message}&message=+A+signature+is+required+for+authorization+on+the+platform+and+does+not+pose+a+threat+to+users!&wallet={account.address}"
|
25
|
+
|
26
|
+
login_token = requests.post(login_request_url).json()['result']['token']
|
27
|
+
|
28
|
+
request_signature_request = "https://rubyscore.io/api/attestation/claim?project=linea"
|
29
|
+
request_signature_response = requests.post(
|
30
|
+
request_signature_request,
|
31
|
+
headers={
|
32
|
+
'Authorization': f'Bearer {login_token}'
|
33
|
+
}
|
34
|
+
).json()['result']
|
35
|
+
|
36
|
+
schemaId = request_signature_response['attestationParams']['schemaId']
|
37
|
+
expirationDate = int(request_signature_response['attestationParams']['expirationDate'])
|
38
|
+
signature = request_signature_response['signature']
|
39
|
+
|
40
|
+
contract_address = get_contracts_for_chain(chain)['RUBYSCORE']
|
41
|
+
rubyscore = RubyscoreContract(contract_address, web3)
|
42
|
+
rubyscore.attest_rubyscore(account, signature, schemaId, expirationDate)
|
43
|
+
|
44
|
+
def log(self):
|
45
|
+
return "RUBYSCORE"
|
@@ -0,0 +1,22 @@
|
|
1
|
+
from sybil_engine.data.contracts import get_contracts_for_chain
|
2
|
+
from sybil_engine.data.networks import get_chain_instance
|
3
|
+
from sybil_engine.utils.web3_utils import init_web3
|
4
|
+
|
5
|
+
from web3_wizzard_lib.core.contract.alienswap_contract import AlienSwapContract
|
6
|
+
from web3_wizzard_lib.core.utils.sub_module import SubModule
|
7
|
+
|
8
|
+
|
9
|
+
class Sarubol(SubModule):
|
10
|
+
module_name = 'SARUBOL'
|
11
|
+
|
12
|
+
def execute(self, account, chain='LINEA'):
|
13
|
+
chain_instance = get_chain_instance(chain)
|
14
|
+
web3 = init_web3(chain_instance, account.proxy)
|
15
|
+
|
16
|
+
contract_address = get_contracts_for_chain(chain)['SARUBOL']
|
17
|
+
sarubol_nft = AlienSwapContract(contract_address, web3)
|
18
|
+
|
19
|
+
sarubol_nft.purchase(account, 1)
|
20
|
+
|
21
|
+
def log(self):
|
22
|
+
return "SARUBOL NFT"
|
@@ -0,0 +1,22 @@
|
|
1
|
+
from sybil_engine.data.contracts import get_contracts_for_chain
|
2
|
+
from sybil_engine.data.networks import get_chain_instance
|
3
|
+
from sybil_engine.utils.web3_utils import init_web3
|
4
|
+
|
5
|
+
from web3_wizzard_lib.core.contract.satoshi_universe_contract import SatoshiUniverseContract
|
6
|
+
from web3_wizzard_lib.core.utils.sub_module import SubModule
|
7
|
+
|
8
|
+
|
9
|
+
class SatoshiUniverse(SubModule):
|
10
|
+
module_name = 'SATOSHI_UNIVERSE'
|
11
|
+
|
12
|
+
def execute(self, account, chain='LINEA'):
|
13
|
+
chain_instance = get_chain_instance(chain)
|
14
|
+
web3 = init_web3(chain_instance, account.proxy)
|
15
|
+
|
16
|
+
contract_address = get_contracts_for_chain(chain)['SATOSHI_UNIVERSE']
|
17
|
+
satoshi_universe = SatoshiUniverseContract(contract_address, web3)
|
18
|
+
|
19
|
+
satoshi_universe.mint(account, 1)
|
20
|
+
|
21
|
+
def log(self):
|
22
|
+
return "SATOSHI UNIVERSE NFT"
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import requests
|
2
|
+
from sybil_engine.contract.send import Send
|
3
|
+
from sybil_engine.domain.balance.balance import NativeBalance
|
4
|
+
from sybil_engine.domain.balance.balance_utils import from_eth_to_wei
|
5
|
+
from sybil_engine.utils.app_account_utils import AppAccount
|
6
|
+
|
7
|
+
from web3_wizzard_lib.core.modules.nft.nft_submodule import NftSubmodule
|
8
|
+
|
9
|
+
|
10
|
+
class ScrollCanvas1YearBadge(NftSubmodule):
|
11
|
+
module_name = 'SCROLL_CANVAS_YEAR_BADGE'
|
12
|
+
nft_address = '0x3dacAd961e5e2de850F5E027c70b56b5Afa5DfeD'
|
13
|
+
|
14
|
+
def execute(self, account: AppAccount, chain='SCROLL', wei_cost=from_eth_to_wei(0)):
|
15
|
+
url = f"https://canvas.scroll.cat/badge/claim?badge={self.nft_address}&recipient={account.address}"
|
16
|
+
|
17
|
+
proxy = {
|
18
|
+
'http': account.proxy,
|
19
|
+
'https': account.proxy
|
20
|
+
}
|
21
|
+
|
22
|
+
result = requests.get(url, proxies=proxy).json()
|
23
|
+
|
24
|
+
Send(
|
25
|
+
None,
|
26
|
+
self.create_web3(account, chain)
|
27
|
+
).send_to_wallet(
|
28
|
+
account,
|
29
|
+
result['tx']['to'],
|
30
|
+
NativeBalance(wei_cost, chain, "ETH"),
|
31
|
+
result['tx']['data']
|
32
|
+
)
|
33
|
+
|
34
|
+
def log(self):
|
35
|
+
return "SCROLL CANVAS (1 YEAR BADGE)"
|
@@ -0,0 +1,51 @@
|
|
1
|
+
import random
|
2
|
+
import string
|
3
|
+
|
4
|
+
import requests
|
5
|
+
from loguru import logger
|
6
|
+
from sybil_engine.domain.balance.balance_utils import from_eth_to_wei
|
7
|
+
from sybil_engine.utils.app_account_utils import AppAccount
|
8
|
+
|
9
|
+
from web3_wizzard_lib.core.contract.scroll_canvas_mint_contract import ScrollCanvasMintContract
|
10
|
+
from web3_wizzard_lib.core.modules.nft.nft_submodule import NftSubmodule
|
11
|
+
|
12
|
+
|
13
|
+
class ScrollCanvasMint(NftSubmodule):
|
14
|
+
module_name = 'SCROLL_CANVAS_MINT'
|
15
|
+
nft_address = '0xB23AF8707c442f59BDfC368612Bd8DbCca8a7a5a'
|
16
|
+
|
17
|
+
def execute(self, account: AppAccount, wei_cost=from_eth_to_wei(0.0005), chain='SCROLL'):
|
18
|
+
contract = ScrollCanvasMintContract(
|
19
|
+
'0xB23AF8707c442f59BDfC368612Bd8DbCca8a7a5a',
|
20
|
+
self.create_web3(account, chain)
|
21
|
+
)
|
22
|
+
|
23
|
+
username = self.generate_username(random.randint(8, 12))
|
24
|
+
referral = random.choice(self.get_referrals())
|
25
|
+
|
26
|
+
logger.info(f"Mint Scroll Canvas with username {username} using ref {referral}")
|
27
|
+
|
28
|
+
contract.mint(
|
29
|
+
account,
|
30
|
+
username,
|
31
|
+
requests.get(f'https://canvas.scroll.cat/code/{referral}/sig/{account.address}').json()['signature'],
|
32
|
+
wei_cost
|
33
|
+
)
|
34
|
+
|
35
|
+
def log(self):
|
36
|
+
return "SCROLL CANVAS MINT"
|
37
|
+
|
38
|
+
def generate_username(self, length):
|
39
|
+
# Combine uppercase, lowercase letters and digits
|
40
|
+
characters = string.ascii_letters + string.digits
|
41
|
+
# Generate random string
|
42
|
+
random_string = ''.join(random.choice(characters) for _ in range(length))
|
43
|
+
return random_string
|
44
|
+
|
45
|
+
def get_referrals(self):
|
46
|
+
return [
|
47
|
+
'POPNK',
|
48
|
+
'GTNPB',
|
49
|
+
'KZFXI',
|
50
|
+
'MFWQ7'
|
51
|
+
]
|
@@ -0,0 +1,32 @@
|
|
1
|
+
from json import dumps
|
2
|
+
|
3
|
+
import requests
|
4
|
+
from eth_account.messages import encode_defunct
|
5
|
+
|
6
|
+
|
7
|
+
def sign_in_message(account, web3):
|
8
|
+
message_text = "Please sign this message to confirm you are the owner of this address and Sign in to TrustGo App"
|
9
|
+
signature = sign_msg(account, message_text, web3)
|
10
|
+
url = 'https://mp.trustalabs.ai/accounts/check_signed_message'
|
11
|
+
data = {
|
12
|
+
"mode": "evm", "address": account.address,
|
13
|
+
"message": message_text,
|
14
|
+
"signature": signature,
|
15
|
+
"invite_from": {"from": "0", "code": 'EPR0QD9W52I8'}}
|
16
|
+
headers = {'Authorization': f'TOKEN null', 'Accept': 'application/json'}
|
17
|
+
data_json = dumps(data)
|
18
|
+
r = requests.post(url, data=data_json, headers=headers)
|
19
|
+
if r.status_code == 200:
|
20
|
+
res = [r.json()]
|
21
|
+
if res[0]['code'] == 0:
|
22
|
+
token_auth = res[0]['data']['token']
|
23
|
+
return token_auth
|
24
|
+
return -1
|
25
|
+
|
26
|
+
|
27
|
+
def sign_msg(wallet, message_text, web3):
|
28
|
+
text_hex = "0x" + message_text.encode('utf-8').hex()
|
29
|
+
text_encoded = encode_defunct(hexstr=text_hex)
|
30
|
+
signed_message = web3.eth.account.sign_message(text_encoded, private_key=wallet.key)
|
31
|
+
signature = signed_message.signature
|
32
|
+
return signature.hex()
|
@@ -0,0 +1,25 @@
|
|
1
|
+
from sybil_engine.contract.send import Send
|
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 NativeBalance
|
5
|
+
from sybil_engine.utils.web3_utils import init_web3
|
6
|
+
|
7
|
+
from web3_wizzard_lib.core.utils.sub_module import SubModule
|
8
|
+
|
9
|
+
|
10
|
+
class Snap(SubModule):
|
11
|
+
module_name = 'SNAP'
|
12
|
+
|
13
|
+
def execute(self, account, chain='LINEA'):
|
14
|
+
chain_instance = get_chain_instance(chain)
|
15
|
+
web3 = init_web3(chain_instance, account.proxy)
|
16
|
+
|
17
|
+
contract_address = get_contracts_for_chain(chain)['SNAP']
|
18
|
+
|
19
|
+
send = Send(None, web3)
|
20
|
+
send.send_to_wallet(
|
21
|
+
account, contract_address, NativeBalance(0, chain, "ETH"), "0x14f710fe"
|
22
|
+
)
|
23
|
+
|
24
|
+
def log(self):
|
25
|
+
return "SNAP MINT NFT"
|
@@ -0,0 +1,31 @@
|
|
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.utils.web3_utils import init_web3
|
5
|
+
|
6
|
+
from web3_wizzard_lib.core.contract.snap_contract import SnapContract
|
7
|
+
from web3_wizzard_lib.core.utils.sub_module import SubModule
|
8
|
+
|
9
|
+
|
10
|
+
class SnapBonus(SubModule):
|
11
|
+
module_name = 'SNAP_BONUS'
|
12
|
+
allow_reuse_address = True
|
13
|
+
|
14
|
+
def execute(self, account, chain='LINEA'):
|
15
|
+
chain_instance = get_chain_instance(chain)
|
16
|
+
web3 = init_web3(chain_instance, account.proxy)
|
17
|
+
|
18
|
+
contract_address = get_contracts_for_chain(chain)['SNAP']
|
19
|
+
social_scan = SnapContract(contract_address, web3)
|
20
|
+
|
21
|
+
balance = social_scan.contract.functions.balanceOf(account.address).call()
|
22
|
+
token_id = social_scan.contract.functions.tokenOfOwnerByIndex(account.address, 0).call()
|
23
|
+
|
24
|
+
if balance == 0:
|
25
|
+
logger.error(f"[{account.app_id}][{account.address}] Not found NFT. Skip module")
|
26
|
+
return
|
27
|
+
|
28
|
+
social_scan.stake(account, token_id)
|
29
|
+
|
30
|
+
def log(self):
|
31
|
+
return "SNAP_BONUS MINT NFT"
|
@@ -0,0 +1,22 @@
|
|
1
|
+
from sybil_engine.data.contracts import get_contracts_for_chain
|
2
|
+
from sybil_engine.data.networks import get_chain_instance
|
3
|
+
from sybil_engine.utils.web3_utils import init_web3
|
4
|
+
|
5
|
+
from web3_wizzard_lib.core.contract.social_scan_contract import SocialScanContract
|
6
|
+
from web3_wizzard_lib.core.utils.sub_module import SubModule
|
7
|
+
|
8
|
+
|
9
|
+
class SocialScan(SubModule):
|
10
|
+
module_name = 'SOCIAL_SCAN'
|
11
|
+
|
12
|
+
def execute(self, account, chain='LINEA'):
|
13
|
+
chain_instance = get_chain_instance(chain)
|
14
|
+
web3 = init_web3(chain_instance, account.proxy)
|
15
|
+
|
16
|
+
contract_address = get_contracts_for_chain(chain)['SOCIAL_SCAN']
|
17
|
+
social_scan = SocialScanContract(contract_address, web3)
|
18
|
+
|
19
|
+
social_scan.set_approval_for_all(account, '0x0caB6977a9c70E04458b740476B498B214019641', True)
|
20
|
+
|
21
|
+
def log(self):
|
22
|
+
return "SOCIAL SCAN NFT"
|
@@ -0,0 +1,30 @@
|
|
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.utils.web3_utils import init_web3
|
5
|
+
|
6
|
+
from web3_wizzard_lib.core.contract.tavaera_id import TavaeraID
|
7
|
+
from web3_wizzard_lib.core.contract.tavaera_mint import Tavaera
|
8
|
+
from web3_wizzard_lib.core.utils.sub_module import SubModule
|
9
|
+
|
10
|
+
|
11
|
+
class TavaeraModule(SubModule):
|
12
|
+
module_name = 'TAVAERA'
|
13
|
+
|
14
|
+
def execute(self, account, chain='ZKSYNC'):
|
15
|
+
chain_instance = get_chain_instance(chain)
|
16
|
+
web3 = init_web3(chain_instance, account.proxy)
|
17
|
+
|
18
|
+
chain_contracts = get_contracts_for_chain(chain)
|
19
|
+
|
20
|
+
tavaera_id = TavaeraID(chain_contracts['TAVAERA_ID'], web3)
|
21
|
+
tavaera = Tavaera(chain_contracts['TAVAERA_MINT'], web3)
|
22
|
+
|
23
|
+
logger.info("Mint Tavaera ID")
|
24
|
+
tavaera_id.mint_citizen_id(account)
|
25
|
+
|
26
|
+
logger.info("Mint Tavaera NFT")
|
27
|
+
tavaera.mint(account)
|
28
|
+
|
29
|
+
def log(self):
|
30
|
+
return "CREATE TAVAERA ACCOUNT"
|
@@ -0,0 +1,75 @@
|
|
1
|
+
from json import dumps
|
2
|
+
from time import time
|
3
|
+
|
4
|
+
import requests
|
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.utils.web3_utils import init_web3
|
8
|
+
|
9
|
+
from web3_wizzard_lib.core.contract.townstory_contract import TownstoryContract
|
10
|
+
from web3_wizzard_lib.core.modules.nft.sign import sign_msg
|
11
|
+
from web3_wizzard_lib.core.utils.sub_module import SubModule
|
12
|
+
|
13
|
+
|
14
|
+
class Townstory(SubModule):
|
15
|
+
module_name = 'TOWNSTORY'
|
16
|
+
|
17
|
+
def execute(self, account, chain='LINEA'):
|
18
|
+
chain_instance = get_chain_instance(chain)
|
19
|
+
web3 = init_web3(chain_instance, account.proxy)
|
20
|
+
|
21
|
+
contract_address = get_contracts_for_chain(chain)['TOWNSTORY']
|
22
|
+
|
23
|
+
message_text = get_message(account)
|
24
|
+
message_signature = sign_msg(account, message_text, web3)
|
25
|
+
txn_signature, deadline = get_txn_signature(account, message_signature)
|
26
|
+
|
27
|
+
townstory_contract = TownstoryContract(contract_address, web3)
|
28
|
+
|
29
|
+
townstory_contract.create_account_sign(account, txn_signature, deadline)
|
30
|
+
|
31
|
+
def log(self):
|
32
|
+
return "CREATE TOWNSTORY ACOUNT"
|
33
|
+
|
34
|
+
|
35
|
+
def get_txn_signature(account, message_signature):
|
36
|
+
data = {"header": {"version": "1.0.1", "baseVersion": "1.0.0", "referer": ""},
|
37
|
+
"transaction": {"func": "register.loginByWallet",
|
38
|
+
"params": {"hall": 0, "wallet": "metamask", "chain": "linea",
|
39
|
+
"signature": message_signature, "address": account.address}}}
|
40
|
+
json_data = dumps(data)
|
41
|
+
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
|
42
|
+
url1 = 'https://aws-login.townstory.io/town-login/handler.php'
|
43
|
+
r = requests.get(url1, data=json_data, headers=headers)
|
44
|
+
response = r.json()
|
45
|
+
if response['result'] != 'failed':
|
46
|
+
txn_signature = r.json()['response']['signature']
|
47
|
+
deadline = r.json()['response']['deadline']
|
48
|
+
return txn_signature, deadline
|
49
|
+
|
50
|
+
|
51
|
+
def get_time_nonce():
|
52
|
+
time_nonce = int(time() / 86400)
|
53
|
+
return time_nonce
|
54
|
+
|
55
|
+
|
56
|
+
def get_address_line(address):
|
57
|
+
address_line = (address[:19] + '...' + address[-18:]).lower()
|
58
|
+
return address_line
|
59
|
+
|
60
|
+
|
61
|
+
def get_message(wallet):
|
62
|
+
nonce = get_time_nonce()
|
63
|
+
address_line = get_address_line(wallet.address)
|
64
|
+
message = ('Welcome to Town Story! \n\n'
|
65
|
+
'Click to sign in and accept the Town Story\n'
|
66
|
+
'Terms of Service:\n'
|
67
|
+
'https://townstory.io/\n\n'
|
68
|
+
'This request will not trigger a blockchain\n'
|
69
|
+
'transaction or cost any gas fees.\n\n'
|
70
|
+
'Your authentication status will reset after\n'
|
71
|
+
'each session.\n\n'
|
72
|
+
'Wallet address:\n'
|
73
|
+
f'{address_line}\n\n'
|
74
|
+
f'Nonce: {nonce}')
|
75
|
+
return message
|
@@ -0,0 +1,45 @@
|
|
1
|
+
import requests
|
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.utils.web3_utils import init_web3
|
5
|
+
|
6
|
+
from web3_wizzard_lib.core.contract.townstory_bonus_contract import TownstoryBonusContract
|
7
|
+
from web3_wizzard_lib.core.utils.sub_module import SubModule
|
8
|
+
|
9
|
+
|
10
|
+
class TownstoryBonus(SubModule):
|
11
|
+
module_name = 'TOWNSTORY_BONUS'
|
12
|
+
|
13
|
+
def execute(self, account, chain='LINEA'):
|
14
|
+
chain_instance = get_chain_instance(chain)
|
15
|
+
web3 = init_web3(chain_instance, account.proxy)
|
16
|
+
|
17
|
+
contract_address = get_contracts_for_chain(chain)['TOWNSTORY_BONUS']
|
18
|
+
|
19
|
+
townstory_bonus_contract = TownstoryBonusContract(contract_address, web3)
|
20
|
+
|
21
|
+
signature, deadline = get_travelbag_signature(account.address, account.proxy)
|
22
|
+
|
23
|
+
townstory_bonus_contract.claim_linea_travelbag(account, signature, deadline)
|
24
|
+
|
25
|
+
def log(self):
|
26
|
+
return "CREATE TOWNSTORY BONUS"
|
27
|
+
|
28
|
+
|
29
|
+
def get_travelbag_signature(wallet, proxy):
|
30
|
+
proxies = {'http': proxy,
|
31
|
+
'https': proxy}
|
32
|
+
url = 'https://townstory.io//api'
|
33
|
+
headers = {
|
34
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
35
|
+
"Content-Length": "70",
|
36
|
+
"Accept": "*/*",
|
37
|
+
"Origin": "https://townstory.io",
|
38
|
+
"Referer": "https://townstory.io/linea"
|
39
|
+
|
40
|
+
}
|
41
|
+
data = {"action": "getLineaSign", "address": f'{wallet.lower()}'}
|
42
|
+
|
43
|
+
r = requests.post(url, data=data, headers=headers, proxies=proxies)
|
44
|
+
res = r.json()
|
45
|
+
return res['signature'], res['deadline']
|
@@ -0,0 +1,48 @@
|
|
1
|
+
import requests
|
2
|
+
from sybil_engine.contract.send import Send
|
3
|
+
from sybil_engine.data.contracts import get_contracts_for_chain
|
4
|
+
from sybil_engine.data.networks import get_chain_instance
|
5
|
+
from sybil_engine.domain.balance.balance import NativeBalance
|
6
|
+
from sybil_engine.utils.web3_utils import init_web3
|
7
|
+
|
8
|
+
from web3_wizzard_lib.core.modules.nft.sign import sign_in_message
|
9
|
+
from web3_wizzard_lib.core.utils.sub_module import SubModule
|
10
|
+
|
11
|
+
|
12
|
+
class TrustaReputation(SubModule):
|
13
|
+
module_name = 'TRUSTA_REPUTATION'
|
14
|
+
|
15
|
+
def execute(self, account, chain='LINEA'):
|
16
|
+
chain_instance = get_chain_instance(chain)
|
17
|
+
web3 = init_web3(chain_instance, account.proxy)
|
18
|
+
|
19
|
+
contract_address = get_contracts_for_chain(chain)['TRUSTA_POH']
|
20
|
+
|
21
|
+
token_auth = sign_in_message(account, web3)
|
22
|
+
txn_calldata = get_attest_data_media(token_auth)
|
23
|
+
|
24
|
+
score = txn_calldata['message']['score']
|
25
|
+
if score < 20:
|
26
|
+
raise Exception(f'Score кошелька менее 20: score = {score}, аттестация не выполняется')
|
27
|
+
|
28
|
+
send = Send(contract_address, web3)
|
29
|
+
send.send_to_wallet(
|
30
|
+
account,
|
31
|
+
contract_address,
|
32
|
+
NativeBalance(txn_calldata['calldata']['value'], chain, 'ETH'),
|
33
|
+
txn_calldata['calldata']['data']
|
34
|
+
)
|
35
|
+
|
36
|
+
def log(self):
|
37
|
+
return "TRUSTA REPUTATION (Group B)"
|
38
|
+
|
39
|
+
|
40
|
+
def get_attest_data_media(token_auth):
|
41
|
+
url = 'https://mp.trustalabs.ai/accounts/attest_calldata?attest_type=media'
|
42
|
+
headers = {'Authorization': f'TOKEN {token_auth}', 'Accept': 'application/json'}
|
43
|
+
r = requests.get(url, headers=headers)
|
44
|
+
if r.status_code == 200:
|
45
|
+
res = [r.json()]
|
46
|
+
if res[0]['code'] == 0:
|
47
|
+
txn_calldata = res[0]['data']
|
48
|
+
return txn_calldata
|
@@ -0,0 +1,49 @@
|
|
1
|
+
import requests
|
2
|
+
from sybil_engine.contract.send import Send
|
3
|
+
from sybil_engine.data.contracts import get_contracts_for_chain
|
4
|
+
from sybil_engine.data.networks import get_chain_instance
|
5
|
+
from sybil_engine.domain.balance.balance import NativeBalance
|
6
|
+
from sybil_engine.utils.web3_utils import init_web3
|
7
|
+
|
8
|
+
from web3_wizzard_lib.core.modules.nft.sign import sign_in_message
|
9
|
+
from web3_wizzard_lib.core.utils.sub_module import SubModule
|
10
|
+
|
11
|
+
|
12
|
+
class TrustaPoh(SubModule):
|
13
|
+
module_name = 'TRUSTA_POH'
|
14
|
+
|
15
|
+
def execute(self, account, chain='LINEA'):
|
16
|
+
chain_instance = get_chain_instance(chain)
|
17
|
+
web3 = init_web3(chain_instance, account.proxy)
|
18
|
+
|
19
|
+
contract_address = get_contracts_for_chain(chain)['TRUSTA_POH']
|
20
|
+
|
21
|
+
token_auth = sign_in_message(account, web3)
|
22
|
+
txn_calldata = get_attest_data_humanity(token_auth)
|
23
|
+
|
24
|
+
score = txn_calldata['message']['score']
|
25
|
+
if score != -1:
|
26
|
+
raise Exception(f'Score кошелька равен {score}, аттестация не выполняется')
|
27
|
+
|
28
|
+
send = Send(contract_address, web3)
|
29
|
+
send.send_to_wallet(
|
30
|
+
account,
|
31
|
+
contract_address,
|
32
|
+
NativeBalance(txn_calldata['calldata']['value'], chain, 'ETH'),
|
33
|
+
txn_calldata['calldata']['data']
|
34
|
+
)
|
35
|
+
|
36
|
+
def log(self):
|
37
|
+
return "TRUSTA POH (Group A)"
|
38
|
+
|
39
|
+
|
40
|
+
def get_attest_data_humanity(token_auth):
|
41
|
+
url = 'https://mp.trustalabs.ai/accounts/attest_calldata?attest_type=humanity'
|
42
|
+
headers = {'Authorization': f'TOKEN {token_auth}', 'Accept': 'application/json'}
|
43
|
+
r = requests.get(url, headers=headers)
|
44
|
+
if r.status_code == 200:
|
45
|
+
res = [r.json()]
|
46
|
+
if res[0]['code'] == 0:
|
47
|
+
txn_calldata = res[0]['data']
|
48
|
+
return txn_calldata
|
49
|
+
|