wayfinder-paths 0.1.20__tar.gz → 0.1.21__tar.gz

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 (129) hide show
  1. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/PKG-INFO +3 -3
  2. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/pyproject.toml +2 -2
  3. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/balance_adapter/adapter.py +1 -1
  4. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/brap_adapter/adapter.py +1 -1
  5. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/hyperlend_adapter/adapter.py +1 -1
  6. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/moonwell_adapter/adapter.py +1 -1
  7. wayfinder_paths-0.1.20/wayfinder_paths/core/utils/erc20_service.py → wayfinder_paths-0.1.21/wayfinder_paths/core/utils/tokens.py +25 -20
  8. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/LICENSE +0 -0
  9. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/README.md +0 -0
  10. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/__init__.py +0 -0
  11. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/__init__.py +0 -0
  12. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/balance_adapter/README.md +0 -0
  13. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/balance_adapter/examples.json +0 -0
  14. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/balance_adapter/test_adapter.py +0 -0
  15. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/brap_adapter/README.md +0 -0
  16. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/brap_adapter/__init__.py +0 -0
  17. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/brap_adapter/examples.json +0 -0
  18. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/brap_adapter/test_adapter.py +0 -0
  19. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/hyperlend_adapter/__init__.py +0 -0
  20. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/hyperlend_adapter/test_adapter.py +0 -0
  21. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/hyperliquid_adapter/__init__.py +0 -0
  22. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/hyperliquid_adapter/adapter.py +0 -0
  23. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/hyperliquid_adapter/executor.py +0 -0
  24. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/hyperliquid_adapter/paired_filler.py +0 -0
  25. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/hyperliquid_adapter/test_adapter.py +0 -0
  26. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/hyperliquid_adapter/test_adapter_live.py +0 -0
  27. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/hyperliquid_adapter/test_executor.py +0 -0
  28. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/hyperliquid_adapter/test_utils.py +0 -0
  29. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/hyperliquid_adapter/utils.py +0 -0
  30. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/ledger_adapter/README.md +0 -0
  31. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/ledger_adapter/__init__.py +0 -0
  32. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/ledger_adapter/adapter.py +0 -0
  33. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/ledger_adapter/examples.json +0 -0
  34. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/ledger_adapter/test_adapter.py +0 -0
  35. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/moonwell_adapter/README.md +0 -0
  36. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/moonwell_adapter/__init__.py +0 -0
  37. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/moonwell_adapter/test_adapter.py +0 -0
  38. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/pool_adapter/README.md +0 -0
  39. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/pool_adapter/__init__.py +0 -0
  40. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/pool_adapter/adapter.py +0 -0
  41. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/pool_adapter/examples.json +0 -0
  42. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/pool_adapter/test_adapter.py +0 -0
  43. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/token_adapter/README.md +0 -0
  44. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/token_adapter/__init__.py +0 -0
  45. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/token_adapter/adapter.py +0 -0
  46. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/token_adapter/examples.json +0 -0
  47. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/adapters/token_adapter/test_adapter.py +0 -0
  48. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/conftest.py +0 -0
  49. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/__init__.py +0 -0
  50. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/adapters/BaseAdapter.py +0 -0
  51. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/adapters/__init__.py +0 -0
  52. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/adapters/models.py +0 -0
  53. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/analytics/__init__.py +0 -0
  54. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/analytics/bootstrap.py +0 -0
  55. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/analytics/stats.py +0 -0
  56. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/analytics/test_analytics.py +0 -0
  57. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/clients/BRAPClient.py +0 -0
  58. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/clients/ClientManager.py +0 -0
  59. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/clients/HyperlendClient.py +0 -0
  60. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/clients/LedgerClient.py +0 -0
  61. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/clients/PoolClient.py +0 -0
  62. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/clients/TokenClient.py +0 -0
  63. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/clients/WalletClient.py +0 -0
  64. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/clients/WayfinderClient.py +0 -0
  65. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/clients/__init__.py +0 -0
  66. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/clients/protocols.py +0 -0
  67. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/config.py +0 -0
  68. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/constants/__init__.py +0 -0
  69. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/constants/base.py +0 -0
  70. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/constants/erc20_abi.py +0 -0
  71. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/constants/hyperlend_abi.py +0 -0
  72. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/constants/moonwell_abi.py +0 -0
  73. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/engine/StrategyJob.py +0 -0
  74. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/services/test_local_evm_txn.py +0 -0
  75. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/strategies/Strategy.py +0 -0
  76. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/strategies/__init__.py +0 -0
  77. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/strategies/base.py +0 -0
  78. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/strategies/descriptors.py +0 -0
  79. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/utils/__init__.py +0 -0
  80. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/utils/evm_helpers.py +0 -0
  81. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/utils/transaction.py +0 -0
  82. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/utils/wallets.py +0 -0
  83. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/core/utils/web3.py +0 -0
  84. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/policies/enso.py +0 -0
  85. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/policies/erc20.py +0 -0
  86. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/policies/evm.py +0 -0
  87. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/policies/hyper_evm.py +0 -0
  88. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/policies/hyperlend.py +0 -0
  89. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/policies/hyperliquid.py +0 -0
  90. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/policies/moonwell.py +0 -0
  91. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/policies/prjx.py +0 -0
  92. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/policies/util.py +0 -0
  93. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/run_strategy.py +0 -0
  94. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/scripts/__init__.py +0 -0
  95. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/scripts/create_strategy.py +0 -0
  96. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/scripts/make_wallets.py +0 -0
  97. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/strategies/__init__.py +0 -0
  98. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/strategies/basis_trading_strategy/README.md +0 -0
  99. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/strategies/basis_trading_strategy/__init__.py +0 -0
  100. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/strategies/basis_trading_strategy/constants.py +0 -0
  101. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/strategies/basis_trading_strategy/examples.json +0 -0
  102. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/strategies/basis_trading_strategy/snapshot_mixin.py +0 -0
  103. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/strategies/basis_trading_strategy/strategy.py +0 -0
  104. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/strategies/basis_trading_strategy/test_strategy.py +0 -0
  105. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/strategies/basis_trading_strategy/types.py +0 -0
  106. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/strategies/hyperlend_stable_yield_strategy/README.md +0 -0
  107. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/strategies/hyperlend_stable_yield_strategy/examples.json +0 -0
  108. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/strategies/hyperlend_stable_yield_strategy/strategy.py +0 -0
  109. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/strategies/hyperlend_stable_yield_strategy/test_strategy.py +0 -0
  110. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/README.md +0 -0
  111. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/examples.json +0 -0
  112. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/strategy.py +0 -0
  113. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/test_strategy.py +0 -0
  114. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/strategies/stablecoin_yield_strategy/README.md +0 -0
  115. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/strategies/stablecoin_yield_strategy/examples.json +0 -0
  116. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/strategies/stablecoin_yield_strategy/strategy.py +0 -0
  117. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/strategies/stablecoin_yield_strategy/test_strategy.py +0 -0
  118. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/templates/adapter/README.md +0 -0
  119. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/templates/adapter/adapter.py +0 -0
  120. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/templates/adapter/examples.json +0 -0
  121. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/templates/adapter/test_adapter.py +0 -0
  122. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/templates/strategy/README.md +0 -0
  123. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/templates/strategy/examples.json +0 -0
  124. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/templates/strategy/strategy.py +0 -0
  125. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/templates/strategy/test_strategy.py +0 -0
  126. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/tests/__init__.py +0 -0
  127. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/tests/test_smoke_manifest.py +0 -0
  128. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/tests/test_test_coverage.py +0 -0
  129. {wayfinder_paths-0.1.20 → wayfinder_paths-0.1.21}/wayfinder_paths/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.1
2
2
  Name: wayfinder-paths
3
- Version: 0.1.20
3
+ Version: 0.1.21
4
4
  Summary: Wayfinder Path: strategies and adapters
5
5
  Author: Wayfinder
6
6
  Author-email: dev@wayfinder.ai
@@ -11,7 +11,7 @@ Classifier: Programming Language :: Python :: 3.13
11
11
  Requires-Dist: aiohttp (>=3.13.0,<4.0.0)
12
12
  Requires-Dist: eth-account (>=0.13.7,<0.14.0)
13
13
  Requires-Dist: httpx (>=0.28.1,<0.29.0)
14
- Requires-Dist: hyperliquid-felix
14
+ Requires-Dist: hyperliquid-python-sdk (>=0.21.0,<0.22.0)
15
15
  Requires-Dist: loguru (>=0.7.3,<0.8.0)
16
16
  Requires-Dist: numpy (>=1.26.0,<2.0.0)
17
17
  Requires-Dist: pandas (>=2.2.0,<3.0.0)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "wayfinder-paths"
3
- version = "0.1.20"
3
+ version = "0.1.21"
4
4
  description = "Wayfinder Path: strategies and adapters"
5
5
  readme = "README.md"
6
6
  authors = ["Wayfinder <dev@wayfinder.ai>"]
@@ -19,7 +19,7 @@ eth-account = "^0.13.7"
19
19
  aiohttp = "^3.13.0"
20
20
  numpy = "^1.26.0"
21
21
  pandas = "^2.2.0"
22
- hyperliquid-felix = "*"
22
+ hyperliquid-python-sdk = "^0.21.0"
23
23
 
24
24
  [tool.poetry.group.dev.dependencies]
25
25
  pytest = "^8.4.2"
@@ -5,8 +5,8 @@ from wayfinder_paths.adapters.token_adapter.adapter import TokenAdapter
5
5
  from wayfinder_paths.core.adapters.BaseAdapter import BaseAdapter
6
6
  from wayfinder_paths.core.clients.TokenClient import TokenClient
7
7
  from wayfinder_paths.core.clients.WalletClient import WalletClient
8
- from wayfinder_paths.core.utils.erc20_service import build_send_transaction
9
8
  from wayfinder_paths.core.utils.evm_helpers import resolve_chain_id
9
+ from wayfinder_paths.core.utils.tokens import build_send_transaction
10
10
  from wayfinder_paths.core.utils.transaction import send_transaction
11
11
 
12
12
 
@@ -15,7 +15,7 @@ from wayfinder_paths.core.clients.BRAPClient import (
15
15
  from wayfinder_paths.core.clients.LedgerClient import TransactionRecord
16
16
  from wayfinder_paths.core.clients.TokenClient import TokenClient
17
17
  from wayfinder_paths.core.constants import DEFAULT_SLIPPAGE, ZERO_ADDRESS
18
- from wayfinder_paths.core.utils.erc20_service import (
18
+ from wayfinder_paths.core.utils.tokens import (
19
19
  build_approve_transaction,
20
20
  get_token_allowance,
21
21
  )
@@ -16,7 +16,7 @@ from wayfinder_paths.core.constants.hyperlend_abi import (
16
16
  POOL_ABI,
17
17
  WRAPPED_TOKEN_GATEWAY_ABI,
18
18
  )
19
- from wayfinder_paths.core.utils.erc20_service import (
19
+ from wayfinder_paths.core.utils.tokens import (
20
20
  build_approve_transaction,
21
21
  get_token_allowance,
22
22
  )
@@ -14,7 +14,7 @@ from wayfinder_paths.core.constants.moonwell_abi import (
14
14
  REWARD_DISTRIBUTOR_ABI,
15
15
  WETH_ABI,
16
16
  )
17
- from wayfinder_paths.core.utils.erc20_service import (
17
+ from wayfinder_paths.core.utils.tokens import (
18
18
  build_approve_transaction,
19
19
  get_token_allowance,
20
20
  )
@@ -3,7 +3,7 @@ from web3 import AsyncWeb3
3
3
  from wayfinder_paths.core.constants.erc20_abi import ERC20_ABI
4
4
  from wayfinder_paths.core.utils.web3 import web3_from_chain_id
5
5
 
6
- NATIVE_CURRENCY_ADDRESSES: set = {
6
+ NATIVE_TOKEN_ADDRESSES: set = {
7
7
  "0x0000000000000000000000000000000000000000",
8
8
  "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
9
9
  # TODO: This is not a proper SOL address, this short form is for LIFI only, fix this after fixing lifi
@@ -12,21 +12,26 @@ NATIVE_CURRENCY_ADDRESSES: set = {
12
12
  }
13
13
 
14
14
 
15
+ def is_native_token(token_address: str) -> bool:
16
+ return token_address.lower() in NATIVE_TOKEN_ADDRESSES
17
+
18
+
15
19
  async def get_token_balance(
16
20
  token_address: str, chain_id: int, wallet_address: str
17
21
  ) -> int:
18
22
  async with web3_from_chain_id(chain_id) as web3:
19
23
  checksum_wallet = AsyncWeb3.to_checksum_address(wallet_address)
20
- if not token_address or token_address.lower() in NATIVE_CURRENCY_ADDRESSES:
24
+
25
+ if is_native_token(token_address):
21
26
  balance = await web3.eth.get_balance(checksum_wallet)
22
27
  return int(balance)
23
-
24
- checksum_token = AsyncWeb3.to_checksum_address(token_address)
25
- contract = web3.eth.contract(address=checksum_token, abi=ERC20_ABI)
26
- balance = await contract.functions.balanceOf(checksum_wallet).call(
27
- block_identifier="pending"
28
- )
29
- return int(balance)
28
+ else:
29
+ checksum_token = AsyncWeb3.to_checksum_address(token_address)
30
+ contract = web3.eth.contract(address=checksum_token, abi=ERC20_ABI)
31
+ balance = await contract.functions.balanceOf(checksum_wallet).call(
32
+ block_identifier="pending"
33
+ )
34
+ return int(balance)
30
35
 
31
36
 
32
37
  async def get_token_allowance(
@@ -79,21 +84,21 @@ async def build_send_transaction(
79
84
  from_checksum = web3.to_checksum_address(from_address)
80
85
  to_checksum = web3.to_checksum_address(to_address)
81
86
 
82
- if not token_address or token_address.lower() in NATIVE_CURRENCY_ADDRESSES:
87
+ if is_native_token(token_address):
83
88
  return {
84
89
  "to": to_checksum,
85
90
  "from": from_checksum,
86
91
  "value": amount,
87
92
  "chainId": chain_id,
88
93
  }
94
+ else:
95
+ token_checksum = web3.to_checksum_address(token_address)
96
+ contract = web3.eth.contract(address=token_checksum, abi=ERC20_ABI)
97
+ data = contract.encode_abi("transfer", [to_checksum, amount])
89
98
 
90
- token_checksum = web3.to_checksum_address(token_address)
91
- contract = web3.eth.contract(address=token_checksum, abi=ERC20_ABI)
92
- data = contract.encode_abi("transfer", [to_checksum, amount])
93
-
94
- return {
95
- "to": token_checksum,
96
- "from": from_checksum,
97
- "data": data,
98
- "chainId": chain_id,
99
- }
99
+ return {
100
+ "to": token_checksum,
101
+ "from": from_checksum,
102
+ "data": data,
103
+ "chainId": chain_id,
104
+ }