wayfinder-paths 0.1.22__py3-none-any.whl → 0.1.23__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.

Potentially problematic release.


This version of wayfinder-paths might be problematic. Click here for more details.

Files changed (63) hide show
  1. wayfinder_paths/__init__.py +0 -4
  2. wayfinder_paths/adapters/balance_adapter/README.md +0 -1
  3. wayfinder_paths/adapters/balance_adapter/adapter.py +65 -169
  4. wayfinder_paths/adapters/balance_adapter/test_adapter.py +41 -113
  5. wayfinder_paths/adapters/brap_adapter/README.md +22 -75
  6. wayfinder_paths/adapters/brap_adapter/adapter.py +187 -576
  7. wayfinder_paths/adapters/brap_adapter/examples.json +21 -140
  8. wayfinder_paths/adapters/brap_adapter/test_adapter.py +6 -234
  9. wayfinder_paths/adapters/hyperlend_adapter/adapter.py +39 -86
  10. wayfinder_paths/adapters/hyperlend_adapter/test_adapter.py +5 -1
  11. wayfinder_paths/adapters/hyperliquid_adapter/adapter.py +6 -5
  12. wayfinder_paths/adapters/ledger_adapter/README.md +4 -1
  13. wayfinder_paths/adapters/ledger_adapter/adapter.py +3 -3
  14. wayfinder_paths/adapters/moonwell_adapter/adapter.py +108 -198
  15. wayfinder_paths/adapters/moonwell_adapter/test_adapter.py +37 -23
  16. wayfinder_paths/adapters/token_adapter/adapter.py +14 -0
  17. wayfinder_paths/core/__init__.py +0 -3
  18. wayfinder_paths/core/clients/BRAPClient.py +3 -0
  19. wayfinder_paths/core/clients/ClientManager.py +0 -7
  20. wayfinder_paths/core/clients/LedgerClient.py +196 -172
  21. wayfinder_paths/core/clients/WayfinderClient.py +0 -1
  22. wayfinder_paths/core/clients/__init__.py +0 -5
  23. wayfinder_paths/core/clients/protocols.py +0 -13
  24. wayfinder_paths/core/config.py +0 -164
  25. wayfinder_paths/core/constants/__init__.py +58 -2
  26. wayfinder_paths/core/constants/base.py +8 -22
  27. wayfinder_paths/core/constants/chains.py +36 -0
  28. wayfinder_paths/core/constants/contracts.py +39 -0
  29. wayfinder_paths/core/constants/tokens.py +9 -0
  30. wayfinder_paths/core/strategies/Strategy.py +0 -10
  31. wayfinder_paths/core/utils/evm_helpers.py +5 -15
  32. wayfinder_paths/core/utils/tokens.py +28 -0
  33. wayfinder_paths/core/utils/transaction.py +13 -7
  34. wayfinder_paths/core/utils/web3.py +5 -3
  35. wayfinder_paths/policies/enso.py +1 -2
  36. wayfinder_paths/policies/hyper_evm.py +6 -3
  37. wayfinder_paths/policies/hyperlend.py +1 -2
  38. wayfinder_paths/policies/moonwell.py +12 -7
  39. wayfinder_paths/policies/prjx.py +1 -3
  40. wayfinder_paths/run_strategy.py +97 -300
  41. wayfinder_paths/strategies/basis_trading_strategy/constants.py +3 -1
  42. wayfinder_paths/strategies/basis_trading_strategy/strategy.py +19 -14
  43. wayfinder_paths/strategies/hyperlend_stable_yield_strategy/strategy.py +12 -11
  44. wayfinder_paths/strategies/hyperlend_stable_yield_strategy/test_strategy.py +20 -33
  45. wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/strategy.py +21 -18
  46. wayfinder_paths/strategies/stablecoin_yield_strategy/strategy.py +69 -130
  47. wayfinder_paths/strategies/stablecoin_yield_strategy/test_strategy.py +32 -42
  48. {wayfinder_paths-0.1.22.dist-info → wayfinder_paths-0.1.23.dist-info}/METADATA +2 -3
  49. {wayfinder_paths-0.1.22.dist-info → wayfinder_paths-0.1.23.dist-info}/RECORD +51 -60
  50. {wayfinder_paths-0.1.22.dist-info → wayfinder_paths-0.1.23.dist-info}/WHEEL +1 -1
  51. wayfinder_paths/core/clients/WalletClient.py +0 -41
  52. wayfinder_paths/core/engine/StrategyJob.py +0 -110
  53. wayfinder_paths/core/services/test_local_evm_txn.py +0 -145
  54. wayfinder_paths/templates/adapter/README.md +0 -150
  55. wayfinder_paths/templates/adapter/adapter.py +0 -16
  56. wayfinder_paths/templates/adapter/examples.json +0 -8
  57. wayfinder_paths/templates/adapter/test_adapter.py +0 -30
  58. wayfinder_paths/templates/strategy/README.md +0 -186
  59. wayfinder_paths/templates/strategy/examples.json +0 -11
  60. wayfinder_paths/templates/strategy/strategy.py +0 -35
  61. wayfinder_paths/templates/strategy/test_strategy.py +0 -166
  62. wayfinder_paths/tests/test_smoke_manifest.py +0 -63
  63. {wayfinder_paths-0.1.22.dist-info → wayfinder_paths-0.1.23.dist-info}/LICENSE +0 -0
@@ -5,118 +5,65 @@ Adapter for cross-chain swaps and bridges via the BRAP (Bridge/Router/Adapter Pr
5
5
  - **Type**: `BRAP`
6
6
  - **Module**: `wayfinder_paths.adapters.brap_adapter.adapter.BRAPAdapter`
7
7
 
8
- ## Overview
9
-
10
- The BRAPAdapter provides:
11
- - Cross-chain swap quotes
12
- - Bridge operation quotes
13
- - Route comparison and optimization
14
- - Fee calculations
15
- - Swap execution
16
-
17
8
  ## Usage
18
9
 
19
10
  ```python
20
11
  from wayfinder_paths.adapters.brap_adapter.adapter import BRAPAdapter
21
12
 
22
- adapter = BRAPAdapter()
13
+ adapter = BRAPAdapter(strategy_wallet_signing_callback=signing_callback)
23
14
  ```
24
15
 
25
16
  ## Methods
26
17
 
27
- ### get_swap_quote
28
-
29
- Get quotes for a cross-chain swap.
30
-
31
- ```python
32
- success, data = await adapter.get_swap_quote(
33
- from_token_address="0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
34
- to_token_address="0x...",
35
- from_chain_id=8453,
36
- to_chain_id=1,
37
- from_address="0x...",
38
- to_address="0x...",
39
- amount="1000000000", # Raw amount
40
- slippage=0.01, # 1%
41
- )
42
- if success:
43
- best_quote = data.get("quotes", {}).get("best_quote", {})
44
- print(f"Output: {best_quote.get('output_amount')}")
45
- ```
46
-
47
- ### get_best_quote
18
+ ### best_quote
48
19
 
49
20
  Get the best quote for a swap.
50
21
 
51
22
  ```python
52
- success, data = await adapter.get_best_quote(
23
+ success, quote = await adapter.best_quote(
53
24
  from_token_address="0x...",
54
25
  to_token_address="0x...",
55
26
  from_chain_id=8453,
56
27
  to_chain_id=1,
57
28
  from_address="0x...",
58
- to_address="0x...",
59
- amount="1000000000",
60
- )
61
- ```
62
-
63
- ### compare_routes
64
-
65
- Compare available routes for a swap.
66
-
67
- ```python
68
- success, data = await adapter.compare_routes(
69
- from_token_address="0x...",
70
- to_token_address="0x...",
71
- from_chain_id=8453,
72
- to_chain_id=1,
73
29
  amount="1000000000",
30
+ preferred_providers=["enso"], # optional
74
31
  )
75
32
  if success:
76
- print(f"Total routes: {data.get('total_routes')}")
77
- for route in data.get("all_routes", []):
78
- print(f"Output: {route.get('output_amount')}, Fee: {route.get('total_fee')}")
33
+ print(f"Output: {quote.get('output_amount')}")
79
34
  ```
80
35
 
81
- ### calculate_swap_fees
36
+ ### swap_from_token_ids
82
37
 
83
- Calculate fees for a swap operation.
38
+ Execute a swap using token IDs.
84
39
 
85
40
  ```python
86
- success, data = await adapter.calculate_swap_fees(
87
- from_token_address="0x...",
88
- to_token_address="0x...",
89
- from_chain_id=8453,
90
- to_chain_id=1,
41
+ success, result = await adapter.swap_from_token_ids(
42
+ from_token_id="usd-coin-base",
43
+ to_token_id="ethereum",
44
+ from_address="0x...",
91
45
  amount="1000000000",
92
- slippage=0.01,
46
+ strategy_name="my_strategy",
47
+ preferred_providers=["enso"],
93
48
  )
94
49
  if success:
95
- print(f"Gas fee: {data.get('gas_fee')}")
96
- print(f"Bridge fee: {data.get('bridge_fee')}")
97
- print(f"Total fee: {data.get('total_fee')}")
50
+ print(f"TX: {result.get('tx_hash')}")
98
51
  ```
99
52
 
100
- ### validate_swap_parameters
53
+ ### swap_from_quote
101
54
 
102
- Validate swap parameters before execution.
55
+ Execute a swap from a pre-fetched quote.
103
56
 
104
57
  ```python
105
- success, data = await adapter.validate_swap_parameters(
106
- from_token_address="0x...",
107
- to_token_address="0x...",
108
- from_chain_id=8453,
109
- to_chain_id=1,
110
- amount="1000000000",
58
+ success, result = await adapter.swap_from_quote(
59
+ from_token=from_token_info,
60
+ to_token=to_token_info,
61
+ from_address="0x...",
62
+ quote=quote,
63
+ strategy_name="my_strategy",
111
64
  )
112
- if success and data.get("valid"):
113
- print("Parameters are valid")
114
65
  ```
115
66
 
116
- ## Dependencies
117
-
118
- - `BRAPClient` - Low-level API client
119
-
120
67
  ## Testing
121
68
 
122
69
  ```bash