web3-wizzard-lib 0.0.2__py3-none-any.whl → 0.0.3__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.
Files changed (295) hide show
  1. web3_wizzard_lib/core/modules/linea_appeal.py +12 -45
  2. web3_wizzard_lib/core/modules/stargate/farming.py +1 -1
  3. web3_wizzard_lib/core/utils/ai_utils.py +27 -0
  4. {web3_wizzard_lib-0.0.2.dist-info → web3_wizzard_lib-0.0.3.dist-info}/METADATA +8 -3
  5. {web3_wizzard_lib-0.0.2.dist-info → web3_wizzard_lib-0.0.3.dist-info}/RECORD +8 -294
  6. {web3_wizzard_lib-0.0.2.dist-info → web3_wizzard_lib-0.0.3.dist-info}/WHEEL +1 -1
  7. core/__init__.py +0 -1
  8. core/contract/__init__.py +0 -0
  9. core/contract/aavecontract.py +0 -36
  10. core/contract/alienswap_contract.py +0 -21
  11. core/contract/arena_games_contract.py +0 -16
  12. core/contract/basiliskcontract.py +0 -58
  13. core/contract/bilinear_contract.py +0 -22
  14. core/contract/bungee.py +0 -33
  15. core/contract/coredao_contract.py +0 -35
  16. core/contract/coredao_from_contract.py +0 -40
  17. core/contract/dmail_send_mail.py +0 -18
  18. core/contract/empty_nft.py +0 -18
  19. core/contract/era_name.py +0 -23
  20. core/contract/eralendcontract.py +0 -34
  21. core/contract/eth_scroll_bridge_contract.py +0 -25
  22. core/contract/frog_war_contract.py +0 -48
  23. core/contract/horizondex_quoter.py +0 -14
  24. core/contract/horizondex_router.py +0 -91
  25. core/contract/imagine_contract.py +0 -18
  26. core/contract/izumi.py +0 -63
  27. core/contract/kreatorland_contract.py +0 -21
  28. core/contract/l0_claim.py +0 -254
  29. core/contract/l2_telegraph.py +0 -21
  30. core/contract/layerbank_price.py +0 -18
  31. core/contract/layerbank_token.py +0 -29
  32. core/contract/layerbankcontract.py +0 -59
  33. core/contract/linea_day_2_contract.py +0 -19
  34. core/contract/linea_day_3_contract.py +0 -55
  35. core/contract/linea_ens_names_contract.py +0 -55
  36. core/contract/lineaswaprouter.py +0 -52
  37. core/contract/maverick_multicall.py +0 -52
  38. core/contract/mendi_finance_contract.py +0 -11
  39. core/contract/mendi_token.py +0 -25
  40. core/contract/merkly_minter.py +0 -47
  41. core/contract/micro3_contract.py +0 -18
  42. core/contract/mute_router.py +0 -93
  43. core/contract/nidum_contract.py +0 -44
  44. core/contract/nile_contract.py +0 -60
  45. core/contract/nomis_attest_contract.py +0 -40
  46. core/contract/nomis_contract.py +0 -40
  47. core/contract/octomos.py +0 -31
  48. core/contract/odos.py +0 -104
  49. core/contract/omnisea.py +0 -29
  50. core/contract/orbiter_starknet.py +0 -30
  51. core/contract/pancake_pool.py +0 -19
  52. core/contract/pancake_quoter.py +0 -20
  53. core/contract/pancake_router.py +0 -72
  54. core/contract/rage_claim.py +0 -24
  55. core/contract/reactor_fusion_contract.py +0 -78
  56. core/contract/readon_contract.py +0 -19
  57. core/contract/rubyscore_contract.py +0 -31
  58. core/contract/satoshi_universe_contract.py +0 -29
  59. core/contract/scroll_bridge_contract.py +0 -24
  60. core/contract/scroll_canvas_mint_contract.py +0 -26
  61. core/contract/scroll_oracle.py +0 -11
  62. core/contract/snap_contract.py +0 -16
  63. core/contract/social_scan_contract.py +0 -20
  64. core/contract/stargate_farming.py +0 -37
  65. core/contract/stargate_router.py +0 -84
  66. core/contract/stargate_router_eth.py +0 -41
  67. core/contract/stargate_token_pool.py +0 -46
  68. core/contract/stargate_v2_contract.py +0 -36
  69. core/contract/syncswap_classic_pool.py +0 -15
  70. core/contract/syncswap_classic_pool_factory.py +0 -15
  71. core/contract/syncswap_pool.py +0 -25
  72. core/contract/syncswap_router.py +0 -123
  73. core/contract/tavaera_id.py +0 -18
  74. core/contract/tavaera_mint.py +0 -17
  75. core/contract/townstory_bonus_contract.py +0 -19
  76. core/contract/townstory_contract.py +0 -21
  77. core/contract/velocore_lens.py +0 -44
  78. core/contract/velocore_pool.py +0 -198
  79. core/contract/velocore_router.py +0 -80
  80. core/contract/woofi_swap.py +0 -29
  81. core/contract/xy_finance_contract.py +0 -87
  82. core/contract/yoddlo_contract.py +0 -19
  83. core/contract/yuliverse_contract.py +0 -36
  84. core/contract/zebra_contract.py +0 -68
  85. core/contract/zerolend_contract.py +0 -34
  86. core/contract/zerolend_liq_contract.py +0 -20
  87. core/contract/zkdx_contract.py +0 -40
  88. core/contract/zkdx_data.py +0 -14
  89. core/contract/zks.py +0 -24
  90. core/modules/__init__.py +0 -0
  91. core/modules/ads_import_proxy.py +0 -52
  92. core/modules/airdrop_printer.py +0 -80
  93. core/modules/bank/__init__.py +0 -0
  94. core/modules/bank/aave.py +0 -25
  95. core/modules/bank/bank.py +0 -15
  96. core/modules/bank/bank_module.py +0 -99
  97. core/modules/bank/basilisk.py +0 -25
  98. core/modules/bank/eralend.py +0 -25
  99. core/modules/bank/layerbank.py +0 -116
  100. core/modules/bank/mendi_finance.py +0 -57
  101. core/modules/bank/reactorfusion.py +0 -25
  102. core/modules/bank/zerolend.py +0 -36
  103. core/modules/bridge/__init__.py +0 -0
  104. core/modules/bridge/bridge.py +0 -8
  105. core/modules/bridge/coredao_bridge_sub.py +0 -47
  106. core/modules/bridge/orbiter_sub.py +0 -112
  107. core/modules/bridge/scroll_bridge_sub.py +0 -42
  108. core/modules/bridge/stargate_v2_sub.py +0 -74
  109. core/modules/bridge_module.py +0 -47
  110. core/modules/bungee.py +0 -109
  111. core/modules/cex_sender.py +0 -60
  112. core/modules/cex_subaccount_transfer.py +0 -34
  113. core/modules/cex_withdraw.py +0 -91
  114. core/modules/claimer.py +0 -45
  115. core/modules/claims/__init__.py +0 -0
  116. core/modules/claims/layerzero_claimer.py +0 -64
  117. core/modules/claims/rabby_claimer.py +0 -81
  118. core/modules/concrete_swap.py +0 -97
  119. core/modules/coredao_bridge.py +0 -32
  120. core/modules/coredao_bridge_auto.py +0 -39
  121. core/modules/debank_checker.py +0 -90
  122. core/modules/dmail.py +0 -54
  123. core/modules/erc20_balance.py +0 -42
  124. core/modules/intract/__init__.py +0 -0
  125. core/modules/intract/intract_api.py +0 -212
  126. core/modules/intract/utils.py +0 -81
  127. core/modules/intract_claim.py +0 -104
  128. core/modules/layer_2_20.py +0 -65
  129. core/modules/lending_module.py +0 -134
  130. core/modules/linea_appeal.py +0 -70
  131. core/modules/linea_poh_lxp.py +0 -64
  132. core/modules/liquidity/__init__.py +0 -0
  133. core/modules/liquidity/nile_pool.py +0 -64
  134. core/modules/liquidity/pool.py +0 -16
  135. core/modules/liquidity/syncswap_pool.py +0 -61
  136. core/modules/liquidity/velocore_pool.py +0 -55
  137. core/modules/liquidity/zerolend_liquidity.py +0 -26
  138. core/modules/liquidity_pool.py +0 -60
  139. core/modules/merkly_refuel.py +0 -87
  140. core/modules/modules.py +0 -4
  141. core/modules/nft/__init__.py +0 -0
  142. core/modules/nft/abbys_world.py +0 -22
  143. core/modules/nft/acg_worlds.py +0 -25
  144. core/modules/nft/alienswap_linea.py +0 -22
  145. core/modules/nft/arena_games.py +0 -22
  146. core/modules/nft/asmatch.py +0 -22
  147. core/modules/nft/battlemon.py +0 -25
  148. core/modules/nft/bilinear.py +0 -22
  149. core/modules/nft/bitavatar.py +0 -25
  150. core/modules/nft/culture_satoshi_universe.py +0 -24
  151. core/modules/nft/efrogs.py +0 -26
  152. core/modules/nft/empty_nft.py +0 -22
  153. core/modules/nft/era_domain.py +0 -42
  154. core/modules/nft/frog_war.py +0 -22
  155. core/modules/nft/frog_war_bonus.py +0 -22
  156. core/modules/nft/gamerboom.py +0 -25
  157. core/modules/nft/gamerboom_bonus.py +0 -26
  158. core/modules/nft/imagine.py +0 -32
  159. core/modules/nft/kreatorland_module.py +0 -35
  160. core/modules/nft/l2_telegraph_module.py +0 -22
  161. core/modules/nft/layer3_meta.py +0 -25
  162. core/modules/nft/linea_culture_2_2_linus.py +0 -24
  163. core/modules/nft/linea_culture_2_3_yooldo.py +0 -24
  164. core/modules/nft/linea_culture_2_4_frogwar.py +0 -24
  165. core/modules/nft/linea_culture_2_5_acg.py +0 -25
  166. core/modules/nft/linea_culture_2_6_ascend_the_end.py +0 -25
  167. core/modules/nft/linea_culture_3_1_ascend_the_end.py +0 -25
  168. core/modules/nft/linea_culture_3_2_sending_me.py +0 -25
  169. core/modules/nft/linea_culture_3_3_townstory.py +0 -25
  170. core/modules/nft/linea_culture_3_4_daniele.py +0 -25
  171. core/modules/nft/linea_culture_3_5_demmortal.py +0 -25
  172. core/modules/nft/linea_culture_3_6_foxy.py +0 -25
  173. core/modules/nft/linea_culture_4_1_coop_records.py +0 -60
  174. core/modules/nft/linea_culture_4_2_borja_moskv.py +0 -65
  175. core/modules/nft/linea_culture_4_2_borja_moskv_approve.py +0 -27
  176. core/modules/nft/linea_culture_4_3_fruit.py +0 -66
  177. core/modules/nft/linea_culture_4_4_fruit_crux.py +0 -67
  178. core/modules/nft/linea_culture_4_5_forbidden_fruit.py +0 -67
  179. core/modules/nft/linea_culture_4_6_laurent.py +0 -67
  180. core/modules/nft/linea_culture_day2.py +0 -20
  181. core/modules/nft/linea_culture_day3.py +0 -20
  182. core/modules/nft/linea_ens_names.py +0 -107
  183. core/modules/nft/lucky_cat.py +0 -25
  184. core/modules/nft/merkly_minter_module.py +0 -22
  185. core/modules/nft/micro3.py +0 -23
  186. core/modules/nft/mint_2048.py +0 -28
  187. core/modules/nft/nft_submodule.py +0 -16
  188. core/modules/nft/nidum.py +0 -87
  189. core/modules/nft/nidum_bonus.py +0 -23
  190. core/modules/nft/nomis.py +0 -64
  191. core/modules/nft/nomis_attest.py +0 -66
  192. core/modules/nft/nouns.py +0 -27
  193. core/modules/nft/octomos.py +0 -32
  194. core/modules/nft/omnisea.py +0 -33
  195. core/modules/nft/omnizone.py +0 -25
  196. core/modules/nft/orbiter_claim.py +0 -87
  197. core/modules/nft/readon.py +0 -30
  198. core/modules/nft/rubyscore.py +0 -45
  199. core/modules/nft/sarubol.py +0 -22
  200. core/modules/nft/satoshi_universe.py +0 -22
  201. core/modules/nft/scroll_canvas_attest_year_badge.py +0 -35
  202. core/modules/nft/scroll_canvas_mint.py +0 -51
  203. core/modules/nft/sign.py +0 -32
  204. core/modules/nft/snap.py +0 -25
  205. core/modules/nft/snap_bonus.py +0 -31
  206. core/modules/nft/social_scan.py +0 -22
  207. core/modules/nft/sub_module.py +0 -8
  208. core/modules/nft/tavaera.py +0 -30
  209. core/modules/nft/townstory.py +0 -75
  210. core/modules/nft/townstory_bonus.py +0 -45
  211. core/modules/nft/trusta_reputation.py +0 -48
  212. core/modules/nft/trustaa_poh.py +0 -49
  213. core/modules/nft/uber_poh.py +0 -24
  214. core/modules/nft/wizards_of_linea.py +0 -26
  215. core/modules/nft/yoddlo.py +0 -22
  216. core/modules/nft/yuliverse.py +0 -22
  217. core/modules/nft/zace.py +0 -25
  218. core/modules/nft/zks_domain.py +0 -41
  219. core/modules/nft_minter.py +0 -107
  220. core/modules/orbiter.py +0 -39
  221. core/modules/orbiter_checker.py +0 -26
  222. core/modules/rage.py +0 -54
  223. core/modules/scroll_bridge.py +0 -45
  224. core/modules/sell_all.py +0 -51
  225. core/modules/sleep_module.py +0 -25
  226. core/modules/smart_contract_deployment.py +0 -37
  227. core/modules/stargate/__init__.py +0 -0
  228. core/modules/stargate/auto_bridge.py +0 -91
  229. core/modules/stargate/bridge.py +0 -38
  230. core/modules/stargate/bridge_eth.py +0 -59
  231. core/modules/stargate/bridge_tokens.py +0 -48
  232. core/modules/stargate/classic_bridge.py +0 -34
  233. core/modules/stargate/farming.py +0 -163
  234. core/modules/stargate/l0_data.py +0 -10
  235. core/modules/stargate/pool.py +0 -74
  236. core/modules/stargate/stargate_balance_utils.py +0 -25
  237. core/modules/stargate/stargate_gas_checker.py +0 -68
  238. core/modules/swap/__init__.py +0 -1
  239. core/modules/swap/horizondex.py +0 -38
  240. core/modules/swap/izumi.py +0 -41
  241. core/modules/swap/lineaswap.py +0 -34
  242. core/modules/swap/maverick.py +0 -66
  243. core/modules/swap/mute.py +0 -39
  244. core/modules/swap/odos.py +0 -58
  245. core/modules/swap/one_inch.py +0 -58
  246. core/modules/swap/pancake.py +0 -41
  247. core/modules/swap/swap_facade.py +0 -10
  248. core/modules/swap/syncswap.py +0 -62
  249. core/modules/swap/velocore.py +0 -40
  250. core/modules/swap/woofi.py +0 -38
  251. core/modules/swap/xy_finance.py +0 -43
  252. core/modules/swap/zebra.py +0 -32
  253. core/modules/warm_up.py +0 -98
  254. core/modules/wrapping.py +0 -74
  255. core/modules/zkdx.py +0 -63
  256. tests/core/__init__.py +0 -0
  257. tests/core/contracts/__init__.py +0 -0
  258. tests/core/contracts/test_horizondex_quoter.py +0 -37
  259. tests/core/contracts/test_uniswap_quoter.py +0 -35
  260. tests/core/contracts/test_velocore_lens.py +0 -67
  261. tests/core/contracts/test_velocore_pool.py +0 -57
  262. tests/core/modules/__init__.py +0 -67
  263. tests/core/modules/swap/__init__.py +0 -0
  264. tests/core/modules/swap/test_horizondex.py +0 -37
  265. tests/core/modules/swap/test_lineaswap.py +0 -28
  266. tests/core/modules/swap/test_maverick.py +0 -31
  267. tests/core/modules/swap/test_mute.py +0 -29
  268. tests/core/modules/swap/test_odos.py +0 -36
  269. tests/core/modules/swap/test_pancake.py +0 -54
  270. tests/core/modules/swap/test_syncswap.py +0 -59
  271. tests/core/modules/swap/test_velocore.py +0 -33
  272. tests/core/modules/swap/test_woofi.py +0 -22
  273. tests/core/modules/test_bungee.py +0 -27
  274. tests/core/modules/test_concrete_swap.py +0 -62
  275. tests/core/modules/test_dmail.py +0 -41
  276. tests/core/modules/test_lending.py +0 -122
  277. tests/core/modules/test_nft.py +0 -32
  278. tests/core/modules/test_nft_minter.py +0 -30
  279. tests/core/modules/test_orbiter.py +0 -28
  280. tests/core/modules/test_sellall.py +0 -27
  281. tests/core/modules/test_send_to_cex.py +0 -27
  282. tests/core/modules/test_stargate_auto_bridge.py +0 -32
  283. tests/core/modules/test_stargate_bridge.py +0 -25
  284. tests/core/modules/test_stargate_farming.py +0 -108
  285. tests/core/modules/test_warmup.py +0 -78
  286. tests/core/modules/test_wrapping.py +0 -68
  287. tests/core/scenario/__init__.py +0 -0
  288. tests/core/scenario/module_0_test_config.py +0 -91
  289. tests/core/test_app.py +0 -19
  290. tests/core/test_config.py +0 -34
  291. web3_wizzard_lib/core/modules/modules.py +0 -27
  292. web3_wizzard_lib/core/modules/nft/sub_module.py +0 -8
  293. web3_wizzard_lib/core/modules/swap/swap_facade.py +0 -10
  294. {web3_wizzard_lib-0.0.2.data → web3_wizzard_lib-0.0.3.data}/data/requirements.txt +0 -0
  295. {web3_wizzard_lib-0.0.2.dist-info → web3_wizzard_lib-0.0.3.dist-info}/top_level.txt +0 -0
core/contract/l0_claim.py DELETED
@@ -1,254 +0,0 @@
1
- from sybil_engine.contract.contract import Contract
2
- from sybil_engine.contract.transaction_executor import evm_transaction
3
-
4
- abi = [{'inputs': [{'internalType': 'address', 'name': '_zroToken', 'type': 'address'},
5
- {'internalType': 'address', 'name': '_endpoint', 'type': 'address'},
6
- {'internalType': 'bytes32', 'name': '_merkleRoot', 'type': 'bytes32'},
7
- {'internalType': 'address', 'name': '_donateContract', 'type': 'address'},
8
- {'internalType': 'address', 'name': '_stargateUsdc', 'type': 'address'},
9
- {'internalType': 'address', 'name': '_stargateUsdt', 'type': 'address'},
10
- {'internalType': 'address', 'name': '_stargateNative', 'type': 'address'},
11
- {'internalType': 'uint256', 'name': '_nativePrice', 'type': 'uint256'},
12
- {'internalType': 'address', 'name': '_owner', 'type': 'address'}], 'stateMutability': 'nonpayable',
13
- 'type': 'constructor'},
14
- {'inputs': [{'internalType': 'address', 'name': 'target', 'type': 'address'}], 'name': 'AddressEmptyCode',
15
- 'type': 'error'}, {'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}],
16
- 'name': 'AddressInsufficientBalance', 'type': 'error'},
17
- {'inputs': [{'internalType': 'address', 'name': 'user', 'type': 'address'}], 'name': 'AlreadyClaimed',
18
- 'type': 'error'}, {'inputs': [], 'name': 'DonateAndClaimAlreadySet', 'type': 'error'},
19
- {'inputs': [], 'name': 'FailedInnerCall', 'type': 'error'}, {
20
- 'inputs': [{'internalType': 'enum Currency', 'name': 'currency', 'type': 'uint8'},
21
- {'internalType': 'uint256', 'name': 'expectedAmount', 'type': 'uint256'},
22
- {'internalType': 'uint256', 'name': 'actualAmount', 'type': 'uint256'}],
23
- 'name': 'InsufficientDonation', 'type': 'error'}, {'inputs': [], 'name': 'InvalidDelegate', 'type': 'error'},
24
- {'inputs': [], 'name': 'InvalidEndpointCall', 'type': 'error'},
25
- {'inputs': [], 'name': 'InvalidNativeStargate', 'type': 'error'},
26
- {'inputs': [], 'name': 'InvalidProof', 'type': 'error'},
27
- {'inputs': [{'internalType': 'uint32', 'name': 'eid', 'type': 'uint32'}], 'name': 'NoPeer', 'type': 'error'},
28
- {'inputs': [], 'name': 'OnlyDonateAndClaim', 'type': 'error'},
29
- {'inputs': [{'internalType': 'address', 'name': 'addr', 'type': 'address'}], 'name': 'OnlyEndpoint',
30
- 'type': 'error'}, {'inputs': [{'internalType': 'uint32', 'name': 'eid', 'type': 'uint32'},
31
- {'internalType': 'bytes32', 'name': 'sender', 'type': 'bytes32'}],
32
- 'name': 'OnlyPeer', 'type': 'error'},
33
- {'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], 'name': 'OwnableInvalidOwner',
34
- 'type': 'error'}, {'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}],
35
- 'name': 'OwnableUnauthorizedAccount', 'type': 'error'},
36
- {'inputs': [{'internalType': 'address', 'name': 'token', 'type': 'address'}], 'name': 'SafeERC20FailedOperation',
37
- 'type': 'error'}, {'inputs': [{'internalType': 'enum Currency', 'name': 'currency', 'type': 'uint8'}],
38
- 'name': 'UnsupportedCurrency', 'type': 'error'},
39
- {'inputs': [], 'name': 'DENOMINATOR', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}],
40
- 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'components': [
41
- {'internalType': 'uint32', 'name': 'srcEid', 'type': 'uint32'},
42
- {'internalType': 'bytes32', 'name': 'sender', 'type': 'bytes32'},
43
- {'internalType': 'uint64', 'name': 'nonce', 'type': 'uint64'}], 'internalType': 'struct Origin',
44
- 'name': 'origin', 'type': 'tuple'}],
45
- 'name': 'allowInitializePath', 'outputs': [
46
- {'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {
47
- 'inputs': [{'internalType': 'enum Currency', 'name': '_currency', 'type': 'uint8'},
48
- {'internalType': 'address', 'name': '_user', 'type': 'address'},
49
- {'internalType': 'uint256', 'name': '_zroAmount', 'type': 'uint256'}], 'name': 'assertDonation',
50
- 'outputs': [], 'stateMutability': 'view', 'type': 'function'}, {
51
- 'inputs': [{'internalType': 'address', 'name': '_user', 'type': 'address'},
52
- {'internalType': 'enum Currency', 'name': '_currency', 'type': 'uint8'},
53
- {'internalType': 'uint256', 'name': '_zroAmount', 'type': 'uint256'},
54
- {'internalType': 'bytes32[]', 'name': '_proof', 'type': 'bytes32[]'},
55
- {'internalType': 'address', 'name': '_to', 'type': 'address'},
56
- {'internalType': 'bytes', 'name': '', 'type': 'bytes'}], 'name': 'claim', 'outputs': [{
57
- 'components': [
58
- {
59
- 'internalType': 'bytes32',
60
- 'name': 'guid',
61
- 'type': 'bytes32'},
62
- {
63
- 'internalType': 'uint64',
64
- 'name': 'nonce',
65
- 'type': 'uint64'},
66
- {
67
- 'components': [
68
- {
69
- 'internalType': 'uint256',
70
- 'name': 'nativeFee',
71
- 'type': 'uint256'},
72
- {
73
- 'internalType': 'uint256',
74
- 'name': 'lzTokenFee',
75
- 'type': 'uint256'}],
76
- 'internalType': 'struct MessagingFee',
77
- 'name': 'fee',
78
- 'type': 'tuple'}],
79
- 'internalType': 'struct MessagingReceipt',
80
- 'name': 'receipt',
81
- 'type': 'tuple'}],
82
- 'stateMutability': 'payable', 'type': 'function'}, {
83
- 'inputs': [{'internalType': 'enum Currency', 'name': '_currency', 'type': 'uint8'},
84
- {'internalType': 'uint256', 'name': '_zroAmount', 'type': 'uint256'},
85
- {'internalType': 'bytes32[]', 'name': '_proof', 'type': 'bytes32[]'},
86
- {'internalType': 'address', 'name': '_to', 'type': 'address'},
87
- {'internalType': 'bytes', 'name': '', 'type': 'bytes'}], 'name': 'claim', 'outputs': [{
88
- 'components': [
89
- {
90
- 'internalType': 'bytes32',
91
- 'name': 'guid',
92
- 'type': 'bytes32'},
93
- {
94
- 'internalType': 'uint64',
95
- 'name': 'nonce',
96
- 'type': 'uint64'},
97
- {
98
- 'components': [
99
- {
100
- 'internalType': 'uint256',
101
- 'name': 'nativeFee',
102
- 'type': 'uint256'},
103
- {
104
- 'internalType': 'uint256',
105
- 'name': 'lzTokenFee',
106
- 'type': 'uint256'}],
107
- 'internalType': 'struct MessagingFee',
108
- 'name': 'fee',
109
- 'type': 'tuple'}],
110
- 'internalType': 'struct MessagingReceipt',
111
- 'name': 'receipt',
112
- 'type': 'tuple'}],
113
- 'stateMutability': 'payable', 'type': 'function'}, {
114
- 'inputs': [{'internalType': 'enum Currency', 'name': 'currency', 'type': 'uint8'},
115
- {'internalType': 'uint256', 'name': 'amountToDonate', 'type': 'uint256'},
116
- {'internalType': 'uint256', 'name': '_zroAmount', 'type': 'uint256'},
117
- {'internalType': 'bytes32[]', 'name': '_proof', 'type': 'bytes32[]'},
118
- {'internalType': 'address', 'name': '_to', 'type': 'address'},
119
- {'internalType': 'bytes', 'name': '_extraBytes', 'type': 'bytes'}], 'name': 'donateAndClaim',
120
- 'outputs': [{'components': [{'internalType': 'bytes32', 'name': 'guid', 'type': 'bytes32'},
121
- {'internalType': 'uint64', 'name': 'nonce', 'type': 'uint64'}, {'components': [
122
- {'internalType': 'uint256', 'name': 'nativeFee', 'type': 'uint256'},
123
- {'internalType': 'uint256', 'name': 'lzTokenFee', 'type': 'uint256'}],
124
- 'internalType': 'struct MessagingFee',
125
- 'name': 'fee',
126
- 'type': 'tuple'}],
127
- 'internalType': 'struct MessagingReceipt', 'name': 'receipt', 'type': 'tuple'}],
128
- 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [], 'name': 'donateContract', 'outputs': [
129
- {'internalType': 'contract IDonate', 'name': '', 'type': 'address'}], 'stateMutability': 'view',
130
- 'type': 'function'}, {'inputs': [], 'name': 'endpoint',
131
- 'outputs': [{
132
- 'internalType': 'contract ILayerZeroEndpointV2',
133
- 'name': '',
134
- 'type': 'address'}],
135
- 'stateMutability': 'view',
136
- 'type': 'function'}, {'inputs': [{
137
- 'components': [
138
- {
139
- 'internalType': 'uint32',
140
- 'name': 'srcEid',
141
- 'type': 'uint32'},
142
- {
143
- 'internalType': 'bytes32',
144
- 'name': 'sender',
145
- 'type': 'bytes32'},
146
- {
147
- 'internalType': 'uint64',
148
- 'name': 'nonce',
149
- 'type': 'uint64'}],
150
- 'internalType': 'struct Origin',
151
- 'name': '',
152
- 'type': 'tuple'},
153
- {
154
- 'internalType': 'bytes',
155
- 'name': '',
156
- 'type': 'bytes'},
157
- {
158
- 'internalType': 'address',
159
- 'name': '_sender',
160
- 'type': 'address'}],
161
- 'name': 'isComposeMsgSender',
162
- 'outputs': [{
163
- 'internalType': 'bool',
164
- 'name': '',
165
- 'type': 'bool'}],
166
- 'stateMutability': 'view',
167
- 'type': 'function'},
168
- {'inputs': [{'components': [{'internalType': 'uint32', 'name': 'srcEid', 'type': 'uint32'},
169
- {'internalType': 'bytes32', 'name': 'sender', 'type': 'bytes32'},
170
- {'internalType': 'uint64', 'name': 'nonce', 'type': 'uint64'}],
171
- 'internalType': 'struct Origin', 'name': '_origin', 'type': 'tuple'},
172
- {'internalType': 'bytes32', 'name': '_guid', 'type': 'bytes32'},
173
- {'internalType': 'bytes', 'name': '_message', 'type': 'bytes'},
174
- {'internalType': 'address', 'name': '_executor', 'type': 'address'},
175
- {'internalType': 'bytes', 'name': '_extraData', 'type': 'bytes'}], 'name': 'lzReceive',
176
- 'outputs': [], 'stateMutability': 'payable', 'type': 'function'},
177
- {'inputs': [], 'name': 'merkleRoot', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}],
178
- 'stateMutability': 'view', 'type': 'function'}, {
179
- 'inputs': [{'internalType': 'uint32', 'name': '', 'type': 'uint32'},
180
- {'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'name': 'nextNonce',
181
- 'outputs': [{'internalType': 'uint64', 'name': 'nonce', 'type': 'uint64'}], 'stateMutability': 'view',
182
- 'type': 'function'}, {'inputs': [], 'name': 'numeratorNative',
183
- 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}],
184
- 'stateMutability': 'view', 'type': 'function'},
185
- {'inputs': [], 'name': 'numeratorUsdc', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}],
186
- 'stateMutability': 'view', 'type': 'function'},
187
- {'inputs': [], 'name': 'numeratorUsdt', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}],
188
- 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'oAppVersion', 'outputs': [
189
- {'internalType': 'uint64', 'name': 'senderVersion', 'type': 'uint64'},
190
- {'internalType': 'uint64', 'name': 'receiverVersion', 'type': 'uint64'}], 'stateMutability': 'view',
191
- 'type': 'function'},
192
- {'inputs': [], 'name': 'owner', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}],
193
- 'stateMutability': 'view', 'type': 'function'},
194
- {'inputs': [{'internalType': 'uint32', 'name': 'eid', 'type': 'uint32'}], 'name': 'peers',
195
- 'outputs': [{'internalType': 'bytes32', 'name': 'peer', 'type': 'bytes32'}], 'stateMutability': 'view',
196
- 'type': 'function'}, {'inputs': [{'internalType': 'uint32', 'name': '_dstEid', 'type': 'uint32'},
197
- {'internalType': 'uint256', 'name': '_zroAmount', 'type': 'uint256'}],
198
- 'name': 'quoteClaimCallback', 'outputs': [{'components': [
199
- {'internalType': 'uint256', 'name': 'nativeFee', 'type': 'uint256'},
200
- {'internalType': 'uint256', 'name': 'lzTokenFee', 'type': 'uint256'}],
201
- 'internalType': 'struct MessagingFee',
202
- 'name': 'msgFee', 'type': 'tuple'}],
203
- 'stateMutability': 'view', 'type': 'function'},
204
- {'inputs': [], 'name': 'renounceOwnership', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'},
205
- {'inputs': [{'internalType': 'uint256', 'name': '_zroAmount', 'type': 'uint256'}], 'name': 'requiredDonation',
206
- 'outputs': [{'components': [{'internalType': 'uint256', 'name': 'usdc', 'type': 'uint256'},
207
- {'internalType': 'uint256', 'name': 'usdt', 'type': 'uint256'},
208
- {'internalType': 'uint256', 'name': 'native', 'type': 'uint256'}],
209
- 'internalType': 'struct Donation', 'name': '', 'type': 'tuple'}], 'stateMutability': 'view',
210
- 'type': 'function'},
211
- {'inputs': [{'internalType': 'address', 'name': '_delegate', 'type': 'address'}], 'name': 'setDelegate',
212
- 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'},
213
- {'inputs': [{'internalType': 'address', 'name': '_donateAndClaim', 'type': 'address'}],
214
- 'name': 'setDonateAndClaim', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'},
215
- {'inputs': [{'internalType': 'bytes32', 'name': '_merkleRoot', 'type': 'bytes32'}], 'name': 'setMerkleRoot',
216
- 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {
217
- 'inputs': [{'internalType': 'uint32', 'name': '_eid', 'type': 'uint32'},
218
- {'internalType': 'bytes32', 'name': '_peer', 'type': 'bytes32'}], 'name': 'setPeer',
219
- 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'},
220
- {'inputs': [{'internalType': 'address', 'name': 'newOwner', 'type': 'address'}], 'name': 'transferOwnership',
221
- 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {
222
- 'inputs': [{'internalType': 'address', 'name': '_to', 'type': 'address'},
223
- {'internalType': 'uint256', 'name': '_amount', 'type': 'uint256'}], 'name': 'withdrawZro',
224
- 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'},
225
- {'inputs': [{'internalType': 'address', 'name': 'user', 'type': 'address'}], 'name': 'zroClaimed',
226
- 'outputs': [{'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}], 'stateMutability': 'view',
227
- 'type': 'function'},
228
- {'inputs': [], 'name': 'zroToken', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}],
229
- 'stateMutability': 'view', 'type': 'function'}]
230
-
231
-
232
- class L0Claim(Contract):
233
- def __init__(self, contract_address, web3):
234
- super().__init__(contract_address, web3, abi)
235
-
236
- @evm_transaction
237
- def donateAndClaim(self, account, donate_amount, amount_to_claim, merkle_proof):
238
- txn_params = self.build_generic_data(account.address, False)
239
- txn_params['value'] = donate_amount
240
-
241
- return self.contract.functions.donateAndClaim(
242
- 2,
243
- donate_amount,
244
- #5520000000000000
245
- #5520000000000000
246
- amount_to_claim,
247
- #183461138113000003000
248
- #183461138113000003000
249
- merkle_proof,
250
- #['0x1fce26056b7cc81752ae974a8baa89d78123fd539f5fb47f0e5cb1f2c603b3c8', '0x63e5fe91dbafe187829bc84f8e6ddb6c6f4d62e5ef1ff4796913101fc0ea916e', '0x9a734b2f26f5334741ee26eda57cef6c4f84430e1d91be1b65cb4e7be577d0e9', '0xcc8bc1df42652bfd0aa8032a1cf50a31e31ecbe78d52411491076bfc59b70e7d', '0x8edc7e63ae09f38a3e00b6ee33fb102eee1771ce73b8a6b089cfcc3c2b4b7b8f', '0x8870668769d7dfa64e8695bf51741c73358923b7ad7e07dd6055c088760063cc', '0x75321dbf87f550059a302d401fd3aae9b13204316e202b3d0bd459447d611739', '0x5d48d0538089ccbfade4265ff10efae09691a0204dcef8db5b20064d3c6103bb', '0xa6d7408758dc62d68fc1d768714f4f9422bb1ad8f222a687c0e1c4d88e7ddfcf', '0xfa0a2c7465fccd5838f147abad0b3f928b716eabfbbae622de7cfdb0c0fcbce1', '0x30369b62a912a4555e898133ad536bbc8b58af456cdb1001e38a8e0e4d01c034', '0xea79cef9445e78b7c5695d0bb5e5d676bfa5b7ced66df915ec13fb6fd6b3e131', '0xc4abfec16adca47f0c0d5d22dcb87586b66cba0048a684e440be04175dbc5c58', '0xecffcc8af84ed13272ad00aeee065c02e4778b6cfd0d124222f23264b0679076', '0x767c848c0da4bee189851e644bb437e9ef426d6e418f14fd3e9337e5ffe3596f', '0x55ab35e3f06e43b8af688169490819fdcb4180258210acb11db1976379754b1c', '0x950b026464be9f6fd40516d45236a70f07ff78b3dc1b9d258c9ddbf7fd0a003f', '0x6b71fb967b62b9e1f399a856517a1da9c22a0993fdb84b1b998b14849c2d7e9e', '0x9ae69f117d127a35e00c470d6bff380bfabbca78d86668984e867861853ee8fc', '0xa042d488b6a933c88ec4b41ba407ff13521c2e67e842697017bc19ed9f9a8e5d', '0x65b28f8ec7c9c9fc471c6a5000a1906b04e8da896a739ffddf6d3b71e47fd60d']
251
- #['0x1fce26056b7cc81752ae974a8baa89d78123fd539f5fb47f0e5cb1f2c603b3c8', '0x63e5fe91dbafe187829bc84f8e6ddb6c6f4d62e5ef1ff4796913101fc0ea916e', '0x9a734b2f26f5334741ee26eda57cef6c4f84430e1d91be1b65cb4e7be577d0e9', '0xcc8bc1df42652bfd0aa8032a1cf50a31e31ecbe78d52411491076bfc59b70e7d', '0x8edc7e63ae09f38a3e00b6ee33fb102eee1771ce73b8a6b089cfcc3c2b4b7b8f', '0x8870668769d7dfa64e8695bf51741c73358923b7ad7e07dd6055c088760063cc', '0x75321dbf87f550059a302d401fd3aae9b13204316e202b3d0bd459447d611739', '0x5d48d0538089ccbfade4265ff10efae09691a0204dcef8db5b20064d3c6103bb', '0xa6d7408758dc62d68fc1d768714f4f9422bb1ad8f222a687c0e1c4d88e7ddfcf', '0xfa0a2c7465fccd5838f147abad0b3f928b716eabfbbae622de7cfdb0c0fcbce1', '0x30369b62a912a4555e898133ad536bbc8b58af456cdb1001e38a8e0e4d01c034', '0xea79cef9445e78b7c5695d0bb5e5d676bfa5b7ced66df915ec13fb6fd6b3e131', '0xc4abfec16adca47f0c0d5d22dcb87586b66cba0048a684e440be04175dbc5c58', '0xecffcc8af84ed13272ad00aeee065c02e4778b6cfd0d124222f23264b0679076', '0x767c848c0da4bee189851e644bb437e9ef426d6e418f14fd3e9337e5ffe3596f', '0x55ab35e3f06e43b8af688169490819fdcb4180258210acb11db1976379754b1c', '0x950b026464be9f6fd40516d45236a70f07ff78b3dc1b9d258c9ddbf7fd0a003f', '0x6b71fb967b62b9e1f399a856517a1da9c22a0993fdb84b1b998b14849c2d7e9e', '0x9ae69f117d127a35e00c470d6bff380bfabbca78d86668984e867861853ee8fc', '0xa042d488b6a933c88ec4b41ba407ff13521c2e67e842697017bc19ed9f9a8e5d', '0x65b28f8ec7c9c9fc471c6a5000a1906b04e8da896a739ffddf6d3b71e47fd60d']
252
- account.address,
253
- '0x'
254
- ).build_transaction(txn_params)
@@ -1,21 +0,0 @@
1
- from sybil_engine.contract.contract import Contract
2
- from sybil_engine.data.networks import get_ids_chain
3
- from sybil_engine.data.tokens import get_tokens_for_chain
4
- from sybil_engine.utils.file_loader import load_abi
5
- from web3 import Web3
6
-
7
- abi = load_abi("resources/abi/merkly.json")
8
-
9
-
10
- class L2TelegraphMinter(Contract):
11
- def __init__(self, contract_address, web3):
12
- self.weth_token = get_tokens_for_chain(get_ids_chain()[web3.eth.chain_id])['WETH']
13
- super().__init__(contract_address, web3, abi)
14
-
15
- def mint(self, account):
16
- txn_params = self.build_generic_data(account.address, False)
17
-
18
- txn_params['value'] = Web3.to_wei(0.0005, "ether")
19
- contract_txn = self.contract.functions.mint().build_transaction(txn_params)
20
-
21
- return contract_txn
@@ -1,18 +0,0 @@
1
- from sybil_engine.contract.contract import Contract
2
- from sybil_engine.data.networks import get_ids_chain
3
- from sybil_engine.data.tokens import get_tokens_for_chain
4
- from sybil_engine.utils.file_loader import load_abi
5
-
6
- abi = load_abi("resources/abi/layerbank_price.json")
7
-
8
-
9
- class LayerBankPrice(Contract):
10
- def __init__(self, contract_address, web3):
11
- self.weth_token = get_tokens_for_chain(get_ids_chain()[web3.eth.chain_id])['WETH']
12
- super().__init__(contract_address, web3, abi)
13
-
14
- def get_underlying_price(self, token):
15
- return self.contract.functions.getUnderlyingPrice(token).call()
16
-
17
- def price_of_eth(self):
18
- return self.contract.functions.priceOfETH().call()
@@ -1,29 +0,0 @@
1
- from sybil_engine.contract.contract import Contract
2
- from sybil_engine.utils.file_loader import load_abi
3
-
4
- abi = load_abi("resources/abi/layerbank_token.json")
5
-
6
- MAX_ALLOWANCE = 115792089237316195423570985008687907853269984665640564039457584007913129639935
7
-
8
-
9
- class LayerBankToken(Contract):
10
- def __init__(self, contract_address, web3):
11
- super().__init__(contract_address, web3, abi)
12
-
13
- def balance_of(self, account):
14
- return self.contract.functions.balanceOf(account.address).call()
15
-
16
- def underlying_balance_of(self, account):
17
- return self.contract.functions.balanceOf(account.address).call()
18
-
19
- def exchange_rate(self):
20
- return self.contract.functions.exchangeRate().call()
21
-
22
- def decimals(self):
23
- return self.contract.functions.decimals().call()
24
-
25
- def one_decimal(self):
26
- return 10 ** self.contract.functions.decimals().call()
27
-
28
- def symbol(self):
29
- return self.contract.functions.symbol().call()
@@ -1,59 +0,0 @@
1
- from sybil_engine.contract.contract import Contract
2
- from sybil_engine.contract.transaction_executor import evm_transaction
3
- from sybil_engine.data.networks import get_ids_chain
4
- from sybil_engine.data.tokens import get_tokens_for_chain
5
- from sybil_engine.utils.file_loader import load_abi
6
-
7
- abi = load_abi("resources/abi/layerbank.json")
8
-
9
-
10
- class LayerBankContract(Contract):
11
- def __init__(self, contract_address, web3):
12
- self.weth_token = get_tokens_for_chain(get_ids_chain()[web3.eth.chain_id])['WETH']
13
- super().__init__(contract_address, web3, abi)
14
-
15
- @evm_transaction
16
- def supply(self, account, token, amount):
17
- txn_params = self.build_generic_data(account.address, False)
18
-
19
- contract_txn = self.contract.functions.supply(token, amount).build_transaction(txn_params)
20
-
21
- return contract_txn
22
-
23
- @evm_transaction
24
- def enter_markets(self, account, token):
25
- txn_params = self.build_generic_data(account.address, False)
26
-
27
- return self.contract.functions.enterMarkets([token]).build_transaction(txn_params)
28
-
29
- @evm_transaction
30
- def borrow(self, account, token, amount):
31
- txn_params = self.build_generic_data(account.address, False)
32
-
33
- contract_txn = self.contract.functions.borrow(token, amount).build_transaction(txn_params)
34
-
35
- return contract_txn
36
-
37
- @evm_transaction
38
- def repay_borrow(self, account, token, amount):
39
- txn_params = self.build_generic_data(account.address, False)
40
-
41
- txn_params['value'] = amount
42
-
43
- contract_txn = self.contract.functions.repayBorrow(token, amount).build_transaction(txn_params)
44
-
45
- return contract_txn
46
-
47
- @evm_transaction
48
- def redeem_token(self, account, token, amount):
49
- txn_params = self.build_generic_data(account.address, False)
50
-
51
- contract_txn = self.contract.functions.redeemUnderlying(token, amount).build_transaction(txn_params)
52
-
53
- return contract_txn
54
-
55
- def market_list_of(self, account):
56
- return self.contract.functions.marketListOf(account.address).call()
57
-
58
- def account_liquidity_of(self, account):
59
- return self.contract.functions.accountLiquidityOf(account.address).call()
@@ -1,19 +0,0 @@
1
- from sybil_engine.contract.contract import Contract
2
- from sybil_engine.contract.transaction_executor import evm_transaction
3
- from sybil_engine.utils.file_loader import load_abi
4
-
5
- abi = load_abi("resources/abi/linea_day_2.json")
6
-
7
-
8
- class LineaDay2(Contract):
9
- def __init__(self, contract_address, web3):
10
- super().__init__(contract_address, web3, abi)
11
-
12
- @evm_transaction
13
- def approve(self, account):
14
- txn_params = self.build_generic_data(account.address, False)
15
-
16
- contract_txn = self.contract.functions.setApprovalForAll(account.address, False).build_transaction(txn_params)
17
-
18
- return contract_txn
19
-
@@ -1,55 +0,0 @@
1
- from sybil_engine.contract.contract import Contract
2
- from sybil_engine.contract.transaction_executor import evm_transaction
3
- from sybil_engine.domain.balance.balance_utils import from_eth_to_wei
4
- from sybil_engine.utils.file_loader import load_abi
5
-
6
- abi = load_abi("resources/abi/linea_day_3.json")
7
-
8
-
9
- class LineaDay3(Contract):
10
- def __init__(self, contract_address, web3):
11
- super().__init__(contract_address, web3, abi)
12
-
13
- # @evm_transaction
14
- # def mintWithVoucher(self, account):
15
- # txn_params = self.build_generic_data(account.address, False)
16
- #
17
- # contract_txn = self.contract.functions.mintWithVoucher(
18
- # (
19
- # '0x0000000000000000000000000000000000000000'
20
- # '0x0000000000000000000000000000000000000000',
21
- # 0,
22
- # 1,
23
- # 1,
24
- # int(datetime.now().timestamp() + 60 * 10),
25
- # 0,
26
- # 1,
27
- # '0x0000000000000000000000000000000000000000'
28
- # ),
29
- # '0xbb6fef09ef7f8958207a489df32fa334879b963aa975b8a62a3839e3c887d5540f05bdeba16649c507c8350a987a2556425707b6f01f4592b744d9767c0b47ca1c'
30
- # ).build_transaction(txn_params)
31
- #
32
- # return contract_txn
33
-
34
- @evm_transaction
35
- def claim(self, account):
36
- txn_params = self.build_generic_data(account.address, False)
37
-
38
- txn_params['value'] = from_eth_to_wei(0.0000029)
39
-
40
- contract_txn = self.contract.functions.claim(
41
- account.address, # address
42
- 0, # uint256
43
- 1, # uint256
44
- '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE', # address
45
- 0, # uint256
46
- (
47
- [], # bytes32[] - This needs to be populated with actual data or kept as empty if applicable
48
- 2, # uint256
49
- 0, # uint256
50
- '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE' # address
51
- ),
52
- '0x' # bytes - This typically represents an empty byte string or could be filled if needed
53
- ).build_transaction(txn_params)
54
-
55
- return contract_txn
@@ -1,55 +0,0 @@
1
- from sybil_engine.contract.contract import Contract
2
- from sybil_engine.contract.transaction_executor import evm_transaction
3
- from sybil_engine.utils.file_loader import load_abi
4
-
5
- abi = load_abi("resources/abi/linea_ens_names.json")
6
-
7
-
8
- class LineaEnsNamesContract(Contract):
9
- def __init__(self, contract_address, web3):
10
- super().__init__(contract_address, web3, abi)
11
- self.addr_contract = web3.eth.contract(
12
- abi='[{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"uint256","name":"coinType","type":"uint256"},{"internalType":"bytes","name":"a","type":"bytes"}],"name":"setAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"a","type":"address"}],"name":"setAddr","outputs":[],"stateMutability":"nonpayable","type":"function"}]'
13
- )
14
-
15
- def available(self, linea_name):
16
- return self.contract.functions.available(linea_name).call()
17
-
18
- def make_commitment(self, account, linea_name, duration, secret, data):
19
- return self.contract.functions.makeCommitment(
20
- linea_name,
21
- account.address,
22
- duration,
23
- secret,
24
- "0x86c5AED9F27837074612288610fB98ccC1733126",
25
- [data],
26
- True,
27
- 0,
28
- ).call().hex()
29
-
30
- def redeemed(self, account):
31
- return self.contract.functions.redeemed(account.address).call()
32
-
33
- @evm_transaction
34
- def register_poh(self, account, linea_name, duration, secret, data, poh_signature):
35
- txn_params = self.build_generic_data(account.address, set_contract_address=False)
36
-
37
- return self.contract.functions.registerPoh(
38
- linea_name,
39
- account.address,
40
- duration,
41
- secret,
42
- "0x86c5AED9F27837074612288610fB98ccC1733126",
43
- [data],
44
- True,
45
- 0,
46
- poh_signature["sign"]
47
- ).build_transaction(txn_params)
48
-
49
- @evm_transaction
50
- def commit(self, account, commitment):
51
- txn_params = self.build_generic_data(account.address, set_contract_address=False)
52
-
53
- return self.contract.functions.commit(
54
- "0x" + commitment
55
- ).build_transaction(txn_params)
@@ -1,52 +0,0 @@
1
- from datetime import datetime
2
-
3
- from sybil_engine.contract.contract import Contract
4
- from sybil_engine.contract.transaction_executor import evm_transaction
5
- from sybil_engine.utils.file_loader import load_abi
6
-
7
- abi = load_abi("resources/abi/lineaswap_router.json")
8
-
9
-
10
- class LineaSwapRouter(Contract):
11
- def __init__(self, contract_address, web3):
12
- super().__init__(contract_address, web3, abi)
13
-
14
- @evm_transaction
15
- def swap_exact_eth_for_tokens(self, account, amount_to_swap, token_in_address, token_out_address, amount_out_min):
16
- sender = account.address
17
-
18
- txn_params = self.build_generic_data(sender, False)
19
- txn_params['value'] = amount_to_swap.wei if amount_to_swap.token == 'ETH' else 10000000000000
20
-
21
- paths = [token_in_address, token_out_address]
22
- deadline = int(datetime.now().timestamp() + 60 * 60 * 3)
23
-
24
- return self.contract.functions.swapExactETHForTokens(
25
- amount_out_min,
26
- paths,
27
- sender,
28
- deadline
29
- ).build_transaction(txn_params)
30
-
31
- @evm_transaction
32
- def swap_exact_tokens_for_eth(self, account, amount_to_swap, token_in_address, token_out_address, amount_out_min):
33
- sender = account.address
34
-
35
- txn_params = self.build_generic_data(sender, False)
36
-
37
- paths = [token_in_address, token_out_address]
38
- deadline = int(datetime.now().timestamp() + 60 * 60 * 3)
39
-
40
- return self.contract.functions.swapExactTokensForETH(
41
- amount_to_swap.wei,
42
- amount_out_min,
43
- paths,
44
- sender,
45
- deadline
46
- ).build_transaction(txn_params)
47
-
48
- def get_amount_out(self, amount_to_swap, token_in_address, token_out_address):
49
- return self.contract.functions.getAmountsOut(
50
- amount_to_swap.wei,
51
- [token_in_address, token_out_address]
52
- ).call()[1]
@@ -1,52 +0,0 @@
1
- from datetime import datetime
2
-
3
- from sybil_engine.contract.contract import Contract
4
- from sybil_engine.contract.transaction_executor import evm_transaction
5
- from sybil_engine.data.networks import get_ids_chain
6
- from sybil_engine.data.tokens import get_tokens_for_chain
7
- from sybil_engine.utils.file_loader import load_abi
8
-
9
- swap_method_id = 'c04b8d59'
10
-
11
- length_3c = '000000000000000000000000000000000000000000000000000000000000003c'
12
- universal_value = '000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a0'
13
-
14
- abi = load_abi("resources/abi/maverick_multicall.json")
15
-
16
-
17
- class MaverickMulticall(Contract):
18
- def __init__(self, contract_address, web3):
19
- self.weth_token = get_tokens_for_chain(get_ids_chain()[web3.eth.chain_id])['WETH']
20
- super().__init__(contract_address, web3, abi)
21
-
22
- @evm_transaction
23
- def multicall(self, account, amount_to_swap, amount_out_min_in, token_in_address, pool_address, token_out_address):
24
- txn_params = self.build_generic_data(account.address, False)
25
-
26
- if amount_to_swap.token == 'ETH':
27
- txn_params['value'] = amount_to_swap.wei # amount in for ETH
28
-
29
- deadline_hex = decimal_to_padded_hexadecimal(int(datetime.now().timestamp() + 60 * 60 * 3), 64)
30
- amount_in = decimal_to_padded_hexadecimal(amount_to_swap.wei, 64)
31
- amount_out_min = decimal_to_padded_hexadecimal(amount_out_min_in, 64)
32
- recipient = pad_hex(account.address, 64) if token_out_address != self.weth_token else pad_hex('', 64)
33
-
34
- eth_to_usdc = '0x' + swap_method_id + universal_value + recipient + deadline_hex + amount_in + amount_out_min + length_3c + pad_hex(
35
- token_in_address, 40) + pad_hex(pool_address, 40) + pad_hex(token_out_address, 40) + '00000000'
36
-
37
- if token_out_address == self.weth_token:
38
- encoded_action = self.contract.encode_abi("unwrapWETH9", args=(amount_out_min_in, account.address))
39
- else:
40
- encoded_action = self.contract.encode_abi("refundETH") + pad_hex(account.address, 128)
41
-
42
- return self.contract.functions.multicall([eth_to_usdc, encoded_action]).build_transaction(txn_params)
43
-
44
-
45
- def decimal_to_padded_hexadecimal(decimal_number, desired_length):
46
- hex_value = hex(decimal_number)[2:]
47
-
48
- return hex_value.zfill(desired_length)
49
-
50
-
51
- def pad_hex(un_padded_hex, desired_length):
52
- return un_padded_hex[2:].zfill(desired_length)