wayfinder-paths 0.1.13__py3-none-any.whl → 0.1.15__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 (61) hide show
  1. wayfinder_paths/adapters/balance_adapter/README.md +13 -14
  2. wayfinder_paths/adapters/balance_adapter/adapter.py +73 -32
  3. wayfinder_paths/adapters/balance_adapter/test_adapter.py +123 -0
  4. wayfinder_paths/adapters/brap_adapter/README.md +11 -16
  5. wayfinder_paths/adapters/brap_adapter/adapter.py +144 -78
  6. wayfinder_paths/adapters/brap_adapter/examples.json +63 -52
  7. wayfinder_paths/adapters/brap_adapter/test_adapter.py +127 -65
  8. wayfinder_paths/adapters/hyperlend_adapter/adapter.py +30 -14
  9. wayfinder_paths/adapters/hyperlend_adapter/test_adapter.py +121 -67
  10. wayfinder_paths/adapters/hyperliquid_adapter/test_adapter.py +6 -6
  11. wayfinder_paths/adapters/hyperliquid_adapter/test_adapter_live.py +12 -12
  12. wayfinder_paths/adapters/ledger_adapter/test_adapter.py +6 -6
  13. wayfinder_paths/adapters/moonwell_adapter/adapter.py +332 -9
  14. wayfinder_paths/adapters/moonwell_adapter/test_adapter.py +13 -13
  15. wayfinder_paths/adapters/pool_adapter/README.md +9 -10
  16. wayfinder_paths/adapters/pool_adapter/adapter.py +9 -10
  17. wayfinder_paths/adapters/pool_adapter/test_adapter.py +2 -2
  18. wayfinder_paths/adapters/token_adapter/README.md +2 -14
  19. wayfinder_paths/adapters/token_adapter/adapter.py +16 -10
  20. wayfinder_paths/adapters/token_adapter/examples.json +4 -8
  21. wayfinder_paths/adapters/token_adapter/test_adapter.py +9 -7
  22. wayfinder_paths/core/clients/BRAPClient.py +102 -61
  23. wayfinder_paths/core/clients/ClientManager.py +1 -68
  24. wayfinder_paths/core/clients/HyperlendClient.py +125 -64
  25. wayfinder_paths/core/clients/LedgerClient.py +1 -4
  26. wayfinder_paths/core/clients/PoolClient.py +122 -48
  27. wayfinder_paths/core/clients/TokenClient.py +91 -36
  28. wayfinder_paths/core/clients/WalletClient.py +26 -56
  29. wayfinder_paths/core/clients/WayfinderClient.py +28 -160
  30. wayfinder_paths/core/clients/__init__.py +0 -2
  31. wayfinder_paths/core/clients/protocols.py +35 -46
  32. wayfinder_paths/core/clients/sdk_example.py +37 -22
  33. wayfinder_paths/core/constants/erc20_abi.py +0 -11
  34. wayfinder_paths/core/engine/StrategyJob.py +10 -56
  35. wayfinder_paths/core/services/base.py +1 -0
  36. wayfinder_paths/core/services/local_evm_txn.py +25 -9
  37. wayfinder_paths/core/services/local_token_txn.py +2 -6
  38. wayfinder_paths/core/services/test_local_evm_txn.py +145 -0
  39. wayfinder_paths/core/strategies/Strategy.py +16 -4
  40. wayfinder_paths/core/utils/evm_helpers.py +2 -9
  41. wayfinder_paths/policies/erc20.py +1 -1
  42. wayfinder_paths/run_strategy.py +13 -19
  43. wayfinder_paths/strategies/basis_trading_strategy/strategy.py +77 -11
  44. wayfinder_paths/strategies/basis_trading_strategy/test_strategy.py +6 -6
  45. wayfinder_paths/strategies/hyperlend_stable_yield_strategy/strategy.py +107 -23
  46. wayfinder_paths/strategies/hyperlend_stable_yield_strategy/test_strategy.py +54 -9
  47. wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/README.md +6 -5
  48. wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/strategy.py +2246 -1279
  49. wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/test_strategy.py +276 -109
  50. wayfinder_paths/strategies/stablecoin_yield_strategy/README.md +1 -1
  51. wayfinder_paths/strategies/stablecoin_yield_strategy/strategy.py +153 -56
  52. wayfinder_paths/strategies/stablecoin_yield_strategy/test_strategy.py +16 -12
  53. wayfinder_paths/templates/adapter/README.md +1 -1
  54. wayfinder_paths/templates/strategy/README.md +3 -3
  55. wayfinder_paths/templates/strategy/test_strategy.py +3 -2
  56. {wayfinder_paths-0.1.13.dist-info → wayfinder_paths-0.1.15.dist-info}/METADATA +14 -49
  57. {wayfinder_paths-0.1.13.dist-info → wayfinder_paths-0.1.15.dist-info}/RECORD +59 -60
  58. wayfinder_paths/abis/generic/erc20.json +0 -383
  59. wayfinder_paths/core/clients/AuthClient.py +0 -83
  60. {wayfinder_paths-0.1.13.dist-info → wayfinder_paths-0.1.15.dist-info}/LICENSE +0 -0
  61. {wayfinder_paths-0.1.13.dist-info → wayfinder_paths-0.1.15.dist-info}/WHEEL +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: wayfinder-paths
3
- Version: 0.1.13
3
+ Version: 0.1.15
4
4
  Summary: Wayfinder Path: strategies and adapters
5
5
  Author: Wayfinder
6
6
  Author-email: dev@wayfinder.ai
@@ -216,63 +216,28 @@ See [CONFIG_GUIDE.md](wayfinder_paths/CONFIG_GUIDE.md) for details.
216
216
 
217
217
  ### Authentication
218
218
 
219
- Wayfinder Paths supports two authentication methods:
219
+ Wayfinder Paths uses API key authentication via the `X-API-KEY` header.
220
220
 
221
- #### 1. Service Account Authentication (API Key)
222
-
223
- For backend services and automated systems with higher rate limits:
224
-
225
- **Option A: Pass to Strategy Constructor**
226
-
227
- ```python
228
- from wayfinder_paths.strategies.stablecoin_yield_strategy.strategy import StablecoinYieldStrategy
229
-
230
- strategy = StablecoinYieldStrategy(
231
- config={...},
232
- api_key="sk_live_abc123..." # API key is auto-discovered by all clients
233
- )
234
- ```
235
-
236
- **Option B: Add to config.json**
221
+ **Add API key to config.json:**
237
222
 
238
223
  ```json
239
224
  {
240
- "user": {
241
- "api_key": "sk_live_abc123..."
242
- },
243
225
  "system": {
244
- "api_key": "sk_live_abc123..." // Alternative: system-level API key
245
- }
246
- }
247
- ```
248
-
249
- **Priority Order:** Constructor parameter > `config.json` (user.api_key or system.api_key)
250
-
251
- **Note:** API keys in `config.json` are loaded directly by `WayfinderClient` via `_load_config_credentials()`, not through the `UserConfig` or `SystemConfig` dataclasses. This allows flexible credential loading.
252
-
253
- #### 2. Personal Access Authentication (OAuth)
254
-
255
- For standalone SDK users with username/password:
256
-
257
- ```json
258
- {
259
- "user": {
260
- "username": "your_username",
261
- "password": "your_password",
262
- "refresh_token": null // Optional: use refresh token instead
226
+ "api_key": "sk_live_abc123...",
227
+ "api_base_url": "https://wayfinder.ai/api/v1",
228
+ "wallets_path": "wallets.json"
263
229
  }
264
230
  }
265
231
  ```
266
232
 
267
233
  **How It Works:**
268
234
 
269
- - API keys are automatically discovered by all clients (no need to pass explicitly)
270
- - When an API key is available, it's used for all API requests (including public endpoints) for rate limiting
271
- - If no API key is found, the system falls back to OAuth authentication
272
- - All clients created by adapters automatically inherit the API key discovery mechanism
273
- - API keys in `config.json` are loaded directly by `WayfinderClient._load_config_credentials()` from `user.api_key` or `system.api_key`, not stored in the `UserConfig` or `SystemConfig` dataclasses
235
+ - API key is automatically loaded from `system.api_key` in config.json
236
+ - The API key is sent as the `X-API-KEY` header on all API requests
237
+ - All clients automatically include the API key header
238
+ - No need to pass API keys explicitly to strategies or clients
274
239
 
275
- See [CONFIG_GUIDE.md](wayfinder_paths/CONFIG_GUIDE.md) for detailed authentication documentation.
240
+ See [CONFIG_GUIDE.md](wayfinder_paths/CONFIG_GUIDE.md) for detailed configuration documentation.
276
241
 
277
242
  ## 🔌 Creating Adapters
278
243
 
@@ -299,7 +264,7 @@ class MyAdapter(BaseAdapter):
299
264
 
300
265
  async def get_pools(self, pool_ids: list[str]):
301
266
  data = await self.pool_client.get_pools_by_ids(
302
- pool_ids=",".join(pool_ids)
267
+ pool_ids=pool_ids
303
268
  )
304
269
  return (True, data)
305
270
  ```
@@ -340,7 +305,7 @@ class MyStrategy(Strategy):
340
305
  return (False, "Nothing to deposit")
341
306
 
342
307
  success, _ = await self.balance_adapter.get_balance(
343
- token_id=self.config.get("token_id"),
308
+ query=self.config.get("token_id"),
344
309
  wallet_address=self.config.get("main_wallet", {}).get("address"),
345
310
  )
346
311
  if not success:
@@ -357,7 +322,7 @@ class MyStrategy(Strategy):
357
322
  async def _status(self) -> StatusDict:
358
323
  """Report balances back to the runner"""
359
324
  success, balance = await self.balance_adapter.get_balance(
360
- token_id=self.config.get("token_id"),
325
+ query=self.config.get("token_id"),
361
326
  wallet_address=self.config.get("strategy_wallet", {}).get("address"),
362
327
  )
363
328
  return {
@@ -1,24 +1,23 @@
1
1
  wayfinder_paths/__init__.py,sha256=YgOg-PRPT3ROh0zg6hgQyQE-YFkFGw6TM77zDvB4_sE,427
2
- wayfinder_paths/abis/generic/erc20.json,sha256=geyzVzdTNt3u1XHKxi4seszP_GIWIzPTl0FYgiftRnM,9336
3
2
  wayfinder_paths/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- wayfinder_paths/adapters/balance_adapter/README.md,sha256=t8-QRfU49g9FmJ18xDGbN_k-ybWebBfM7s4bBrnyo-g,3635
5
- wayfinder_paths/adapters/balance_adapter/adapter.py,sha256=_Y7AiI8lXqGv7RV8jteTGD1FMw9_Er02F6aQ2swjApg,8178
3
+ wayfinder_paths/adapters/balance_adapter/README.md,sha256=VCBvhAzgWayVgRZonwAB0oMIip1iXvRWb0cYSmeDmPI,3789
4
+ wayfinder_paths/adapters/balance_adapter/adapter.py,sha256=gNWn27olX-bnw-qrY9wmUFqpEtq4hewvRUUFyQ1j370,9921
6
5
  wayfinder_paths/adapters/balance_adapter/examples.json,sha256=3R1M4B_VsIy29viAuFT9nQbnQShWl8ZbU-rnSNWUW9U,129
7
- wayfinder_paths/adapters/balance_adapter/test_adapter.py,sha256=Z8iTRU0Rv1UsODuVSo5q4j-DrTXMd4YRxvaxLdZE4Us,1878
8
- wayfinder_paths/adapters/brap_adapter/README.md,sha256=H4_ep4r17DpQ0rnTSIbRsAdnK174NGBAcHNlHhvEA7o,7880
6
+ wayfinder_paths/adapters/balance_adapter/test_adapter.py,sha256=KxCmbo_fMC1oMNS3B1u7uNsEIzoi0kXTjCqsnnBIHac,6287
7
+ wayfinder_paths/adapters/brap_adapter/README.md,sha256=eOWIwAPdaBuvPCmT_E4myucUSvgupvvQQKDcptgRluw,7756
9
8
  wayfinder_paths/adapters/brap_adapter/__init__.py,sha256=jpqxZ-Bv_8kBo-lhgO_QCWaVZNq_WwlkNBHD4RsqOJg,90
10
- wayfinder_paths/adapters/brap_adapter/adapter.py,sha256=QoTEm4wOO1yiZz2tmoThOdD_pbZP1S8XzsXwQiR6u7I,30054
11
- wayfinder_paths/adapters/brap_adapter/examples.json,sha256=KWuAklUspd2uvk0s2ey8gczg4nbzhdwxQqzhascyMiQ,5287
12
- wayfinder_paths/adapters/brap_adapter/test_adapter.py,sha256=w2q35tcE7j2QG53jSm_XZgIk7OKL4O51fnFuGMVRSNQ,10754
9
+ wayfinder_paths/adapters/brap_adapter/adapter.py,sha256=0x9UAr6p1NlaIPn36SIp2kFQk6g6Di2IT3YOlAdutMw,32638
10
+ wayfinder_paths/adapters/brap_adapter/examples.json,sha256=FGZhNaMCAQ56KhovEGSsV1BHOcMd_QqQBNmCU6m8zfQ,5389
11
+ wayfinder_paths/adapters/brap_adapter/test_adapter.py,sha256=XdNMY6nuxkq5xPGor0VXGGZj0vDwsOys5sDgz-co81U,12800
13
12
  wayfinder_paths/adapters/hyperlend_adapter/__init__.py,sha256=DsWOnEn-Tlu9ZoIoGaFeSqOYI3b4lXGVK3_FTntWpLw,139
14
- wayfinder_paths/adapters/hyperlend_adapter/adapter.py,sha256=_boW8n7cSySYbxmlbeJ4jDuw5Bj21fGx0irGVBXWQnw,10135
15
- wayfinder_paths/adapters/hyperlend_adapter/test_adapter.py,sha256=iLnrALVnK7JWJV2KFDqBYZlr1ShW1tjHC-kCV6-FlgE,9558
13
+ wayfinder_paths/adapters/hyperlend_adapter/adapter.py,sha256=FnxNa44_BRtUbSaaChZUNZ081an0ajxqYfNhQqYYg1M,10765
14
+ wayfinder_paths/adapters/hyperlend_adapter/test_adapter.py,sha256=rCoy8tkHIOUE31xH0zc3non6E58T-GfAInNpac_f2ls,12096
16
15
  wayfinder_paths/adapters/hyperliquid_adapter/__init__.py,sha256=QpA258RzVbxzsha86HQduAuNVG0g0qvsI5OcZunQ8DQ,467
17
16
  wayfinder_paths/adapters/hyperliquid_adapter/adapter.py,sha256=Z5Gl9M9wk7PVUIyP_i2oAMegmCTbVFd48Zp57DURh6M,34510
18
17
  wayfinder_paths/adapters/hyperliquid_adapter/executor.py,sha256=ix1FmRO6DPiPk0BwGy4zrCP5IfKzzMSQNhnOmIewfGA,18977
19
18
  wayfinder_paths/adapters/hyperliquid_adapter/paired_filler.py,sha256=nOBsrAka8PKv5h8SuoJuLTH4HYS4n0vpTIADUCyDKlA,37546
20
- wayfinder_paths/adapters/hyperliquid_adapter/test_adapter.py,sha256=JEDeIMSTdrgcSy4BGSVB0CixQzl3NsKpukOZ9mRu3kE,4542
21
- wayfinder_paths/adapters/hyperliquid_adapter/test_adapter_live.py,sha256=lnlL0njECM6C4hVlsEZ4_7wtcixIBO8qqTRO6b1yGGg,7672
19
+ wayfinder_paths/adapters/hyperliquid_adapter/test_adapter.py,sha256=pZb8FcreC_Y9-_B7BRBZnihquuR2noEddlsJeBQIoAw,4494
20
+ wayfinder_paths/adapters/hyperliquid_adapter/test_adapter_live.py,sha256=RVqfPVLeER7GLFwpIc-66T09pDkFPhyueMB6Ju1yDuY,7576
22
21
  wayfinder_paths/adapters/hyperliquid_adapter/test_executor.py,sha256=6tAstfO2fFTWWYSqYsd3jzY5iQ1RrCsLl_0pbwJO-bE,4147
23
22
  wayfinder_paths/adapters/hyperliquid_adapter/test_utils.py,sha256=2gSrXJgtfrTqNOQIhBS92vUkfcwhFsMLgFRkf1bzLy8,7290
24
23
  wayfinder_paths/adapters/hyperliquid_adapter/utils.py,sha256=WjLEaNVvcB8FfYlTrwZBrmw7k2MLS5KhBeW4NNoLlVI,4254
@@ -26,21 +25,21 @@ wayfinder_paths/adapters/ledger_adapter/README.md,sha256=_tGIpIkg-TCYddf8d4FhJvJ
26
25
  wayfinder_paths/adapters/ledger_adapter/__init__.py,sha256=DK9GShIUiQ57YKSqhCKoS43GCweBxi0lzkUQ9sYVxUA,96
27
26
  wayfinder_paths/adapters/ledger_adapter/adapter.py,sha256=6Fjxltvn9iXp_-CZtN7lDz1Xt0lWaNQX2drx6lgeryw,10260
28
27
  wayfinder_paths/adapters/ledger_adapter/examples.json,sha256=DdqTSe4vnBrfIycQVQQ_JZom7fBGHbL7MR4ppK9ljCY,3936
29
- wayfinder_paths/adapters/ledger_adapter/test_adapter.py,sha256=Z1-rPP9k5fI-8ofWMKgU3syzNegKGH_hGO6CKApQj1c,7470
28
+ wayfinder_paths/adapters/ledger_adapter/test_adapter.py,sha256=9q38ublf4mxc8c8K5Rttb8JevljHNz7urEab6czWPpg,7422
30
29
  wayfinder_paths/adapters/moonwell_adapter/README.md,sha256=PyQllVXgW0aUUoWhAZ5phLPAxtR9A5GkwesnZznckV8,5465
31
30
  wayfinder_paths/adapters/moonwell_adapter/__init__.py,sha256=Gf6AM4BylxxPenUQ_cveUg70QcB9i61SIYaCsXMSjXw,135
32
- wayfinder_paths/adapters/moonwell_adapter/adapter.py,sha256=kpzuIEUQHHo8WUkt-XGO5FqMtPBRNubYqkkWT0jKvKM,45030
33
- wayfinder_paths/adapters/moonwell_adapter/test_adapter.py,sha256=DLbbCW6ytjKY2C5aQUrW-YBFyrXjush9qbGWiuL42DM,23440
34
- wayfinder_paths/adapters/pool_adapter/README.md,sha256=-3FJ-NcVdP5IdnBJfljySKuzhoKSrFAjZttHvqAicbo,2453
31
+ wayfinder_paths/adapters/moonwell_adapter/adapter.py,sha256=m3RGcjVdPZk-2csd-6jzFnplXX69jslDQjRUZM9BwUw,57712
32
+ wayfinder_paths/adapters/moonwell_adapter/test_adapter.py,sha256=rN8j7zQJCxBdzVDk38rablNmpM4JaU91odKModAjmMA,23336
33
+ wayfinder_paths/adapters/pool_adapter/README.md,sha256=cBeWz8UzOOIKCkyBUDGTujR1vZNPyhgqKO2HNgq0j3I,2470
35
34
  wayfinder_paths/adapters/pool_adapter/__init__.py,sha256=rv56pYzz2Gqiz33uoPJktCQRe3CRt8U9ry5GbjVgK3A,90
36
- wayfinder_paths/adapters/pool_adapter/adapter.py,sha256=FrzgoXUkrLjL_SDHT5-zK7VMTPx6QdDdMpO--R5b5AE,1842
35
+ wayfinder_paths/adapters/pool_adapter/adapter.py,sha256=zHYCcCjum3jJpG4BZnTJ8YuOyI9ZJlSN5r8TMO4KCDM,1806
37
36
  wayfinder_paths/adapters/pool_adapter/examples.json,sha256=NW-7J6_zXxky8uMDRym3jJaPP8hZLEiytQ3WKoZEP54,855
38
- wayfinder_paths/adapters/pool_adapter/test_adapter.py,sha256=jz3QYP8ubHjIfE4Sz7CMQai_7zqG9IJBjXz7CKC0PU0,2625
39
- wayfinder_paths/adapters/token_adapter/README.md,sha256=TXn7pYQ6bCAiYNl-avem3_Hoz0p3JVyyThxObr59s8k,2673
37
+ wayfinder_paths/adapters/pool_adapter/test_adapter.py,sha256=5AEDGdrCR-D31b8hOhfYo4RpwkPXrJ1Chca38T71fsU,2609
38
+ wayfinder_paths/adapters/token_adapter/README.md,sha256=mvsfm1fZDsNim4A_H0o54l4y4BNH9mxDu2UB_mNz1xw,2338
40
39
  wayfinder_paths/adapters/token_adapter/__init__.py,sha256=nEmxrvffEygn3iKH3cZTNLkhnUUhlUAEtshmrFRAjq8,62
41
- wayfinder_paths/adapters/token_adapter/adapter.py,sha256=JEb7A8wJYHxENFhJ6upAgnQAbPZeVfYi6OGs1hiHxnA,3432
42
- wayfinder_paths/adapters/token_adapter/examples.json,sha256=RW-3xazj4wbTPl-AVrzduRH1NCXx8m7-06bRMOUJ-lc,3626
43
- wayfinder_paths/adapters/token_adapter/test_adapter.py,sha256=oEhV5OooRh1oGnaTTMKtdU9oqvHBKR25KgL6-ZB6Mzo,4304
40
+ wayfinder_paths/adapters/token_adapter/adapter.py,sha256=aAfcMpxlG5W9UbYQ4mPks0o7A1KsrYyMZzWw-1dQz8Q,3729
41
+ wayfinder_paths/adapters/token_adapter/examples.json,sha256=bvwP9XL9c_endFlMQgkavXh_IzNEEUyJd4gh5QjrcqY,2944
42
+ wayfinder_paths/adapters/token_adapter/test_adapter.py,sha256=vu8evYdDV5I0iOBkMrrfCtGWgcgjTX_Wi2WAFhm_Kvw,4473
44
43
  wayfinder_paths/conftest.py,sha256=pqDNijXn9_zmbAdkt_2a18UQLjtsDkNTBJVTgC6H2nA,1136
45
44
  wayfinder_paths/core/__init__.py,sha256=AJK8oS2dCVuJ2pmSxqXOCvuWacNaVEU3yALEqsD3rog,398
46
45
  wayfinder_paths/core/adapters/BaseAdapter.py,sha256=bzc3ER7aKOsmk9cxyoJxGdI54eibbpcMC8nGYJUrsp0,2033
@@ -51,43 +50,43 @@ wayfinder_paths/core/analytics/__init__.py,sha256=AtcSpt2vPpCNgdDaFDLhyZZpKa0QXK
51
50
  wayfinder_paths/core/analytics/bootstrap.py,sha256=lb_PjL4Vh3O2F8eXgvAbnAFevJczRF59ODG-dxtpCZ8,1782
52
51
  wayfinder_paths/core/analytics/stats.py,sha256=qE6h0j8TZAbqbVpDeYlVKe0YbV5CENQcHbREzKyZ_s8,1426
53
52
  wayfinder_paths/core/analytics/test_analytics.py,sha256=DNkVTsbWPLc9I1eeCD5wsPPqUDgN-npbGRhBgMKn3GM,5580
54
- wayfinder_paths/core/clients/AuthClient.py,sha256=rr9q1YEharGFiAiL-I87TK2atxek1PsMc8cJXIunWuM,2789
55
- wayfinder_paths/core/clients/BRAPClient.py,sha256=gkZtjOgAwRP0q7LxVmqBUlFWzKdaQrQFkv-nVsJ7Amg,3737
56
- wayfinder_paths/core/clients/ClientManager.py,sha256=pZ4e8XgwDYceCUBFyyemexAH8pqZCAN47iAVVwJWW2Q,7239
57
- wayfinder_paths/core/clients/HyperlendClient.py,sha256=QZFPsSIGumfabmLtOSkymtjmyW5aQoXbLRTSbsYdAOg,6166
58
- wayfinder_paths/core/clients/LedgerClient.py,sha256=M6VlG0yq3H4rQt6qRxc0QQVd7GoPXJpj2FcD0RM_C_k,14430
59
- wayfinder_paths/core/clients/PoolClient.py,sha256=t0H6EffDjdyK8e_PJKngU3uEkWNCTJ9BMF0HBYYRNLQ,2187
60
- wayfinder_paths/core/clients/TokenClient.py,sha256=aIdHdV6896XceI-dKOMvWEi_PIoV7qLlaSNcRCE83N0,2778
61
- wayfinder_paths/core/clients/WalletClient.py,sha256=EhZI7q0U3P769DEQ28ef9RvaqJJ0nSBbdxbWUPhouXM,2597
62
- wayfinder_paths/core/clients/WayfinderClient.py,sha256=x-SBg1mf6mKy6F5qpamnXmFdJ3vNmZ8Z5veJnVoZIAM,10269
63
- wayfinder_paths/core/clients/__init__.py,sha256=eKbB81C9ZphAKH1uKwkqOmVHtEwFdkDuZLVAQXQXa5M,1254
64
- wayfinder_paths/core/clients/protocols.py,sha256=a0D14D2sEq77Nu-Cut4bXgpXyf02jQbkxWKSTGg6kiw,8245
65
- wayfinder_paths/core/clients/sdk_example.py,sha256=Y6mSyHfsWcOje6E-geNI0C4CQ6uyZaD3V9Q8kPM53eo,2969
53
+ wayfinder_paths/core/clients/BRAPClient.py,sha256=aqsEDbTbf0D4SOQ1AoB3RPc6R8vt5PYkrTb7eEidfAg,4124
54
+ wayfinder_paths/core/clients/ClientManager.py,sha256=xllc8KIQvA6S3dx05Exw0Vh1PAeKPDSE832vaLmBwwg,4245
55
+ wayfinder_paths/core/clients/HyperlendClient.py,sha256=7BWqW2OwX_3JWXAQUMrsprwLusYBQ60LRToLOoVZu40,7912
56
+ wayfinder_paths/core/clients/LedgerClient.py,sha256=keHi1_dRA8kMVIEEcAe8OyDOr-XhoiRJ8eT6wXNz_EI,14327
57
+ wayfinder_paths/core/clients/PoolClient.py,sha256=GPa62hp3ajACyFfTXQpPfBLQVyt8VQX3R-IUJ6wtCis,4333
58
+ wayfinder_paths/core/clients/TokenClient.py,sha256=HyjMJKMxhPefi6A65le5DuGM9leUxYMdvLxTt2FDokI,4077
59
+ wayfinder_paths/core/clients/WalletClient.py,sha256=efvdJlS1fZfvNBU_hXn63mOKoETB0eh1kF6SWTSFWSk,1646
60
+ wayfinder_paths/core/clients/WayfinderClient.py,sha256=gl-YHTYDa5GStg5O2xETiL4dAaCLphRos-btB1rQzVE,4319
61
+ wayfinder_paths/core/clients/__init__.py,sha256=2xpZ4tBYkK0QjpBI88ZB4t4esfIc-enm0LqHdRo479M,1173
62
+ wayfinder_paths/core/clients/protocols.py,sha256=Z0vvce55wfXrSXfuO0Y-s9EfT9zvwUier4-XhwPZSTs,7984
63
+ wayfinder_paths/core/clients/sdk_example.py,sha256=SETyEJ_vw7pJcZVMxBMSjJk9Ag3levyn4WrpDueai_A,3589
66
64
  wayfinder_paths/core/config.py,sha256=ADdrYAapSCwpV4ljSziBmxZV2Z2ORsu8ku-_MptSjjc,9060
67
65
  wayfinder_paths/core/constants/__init__.py,sha256=upAVwHDgMXJ3DWaAuXo52UZktS8NZ17s5XwVH0qxgzg,591
68
66
  wayfinder_paths/core/constants/base.py,sha256=BYQAD72XrsY6WRrOMIlUOpXLVANS7EYaS5Ell4Nj1H4,1551
69
- wayfinder_paths/core/constants/erc20_abi.py,sha256=3ljIyUl6FesoEa4uprwNo-nF0Q5s73M9WEqXLw6ONI4,3214
67
+ wayfinder_paths/core/constants/erc20_abi.py,sha256=cgqNPvuuJcNBRgcGZrDmm7dIsILWMf_14C5I0sUL_yQ,2898
70
68
  wayfinder_paths/core/constants/hyperlend_abi.py,sha256=nIaqsfMl5-_InYN82pjz0FIKsT-AnNkwz0DIc9VrZSc,4331
71
69
  wayfinder_paths/core/constants/moonwell_abi.py,sha256=ALb-kKdfF9aUtEHR8OlqvA-3zJ48N66RvVptTJyCfe4,13135
72
- wayfinder_paths/core/engine/StrategyJob.py,sha256=DqwkPu5JHp00xkDmj7kyUqs9U-VP0k-OBlVipjEzk14,7257
70
+ wayfinder_paths/core/engine/StrategyJob.py,sha256=zkYo8TmHdj1Hj8cHMmeLgyWJzO7Vy_onF7I0hq_H_2k,5355
73
71
  wayfinder_paths/core/engine/__init__.py,sha256=WZ2KWnmOZnBocYrqdwq6EUHp6lmTyrKyXgHSHyQswnU,108
74
72
  wayfinder_paths/core/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
- wayfinder_paths/core/services/base.py,sha256=94Wvs7Ym7tK9J3k9lEOhSSIC7ptnMJ161dYtF4XTSZ8,4096
76
- wayfinder_paths/core/services/local_evm_txn.py,sha256=OHxDWDfctxui2YbPRI3B6c3pt9xC66N0-sFC7OLmz4c,12600
77
- wayfinder_paths/core/services/local_token_txn.py,sha256=YQjuHjdyGwVfAZt3FGMkSKoc34bRiJrWRiR5pXJmL9U,8556
73
+ wayfinder_paths/core/services/base.py,sha256=xnedv_dOh5sjJkpFzkgPab1ILSzJeHN_A19q54FywHk,4128
74
+ wayfinder_paths/core/services/local_evm_txn.py,sha256=hOVbCKtDJmcYlFdb2OxGjkfdmOd4TV6nj6m2b7lAneQ,13459
75
+ wayfinder_paths/core/services/local_token_txn.py,sha256=R7IHcvM4hyMxY17AjYAelVZm_kztkOyjZtg3KpCJzTY,8327
76
+ wayfinder_paths/core/services/test_local_evm_txn.py,sha256=tmP3pt4QBihA6T3PgCSd8hjBkVh4ImNtKGFiFKOkWWA,4829
78
77
  wayfinder_paths/core/services/web3_service.py,sha256=7iR7bfqfUQCQcdfEWVGqy04PZBtZTuzCDpfLt1a-4OI,1485
79
- wayfinder_paths/core/strategies/Strategy.py,sha256=Q_R-i4kxASdWrsq58VGHkV1k5l-sMF2MdVRw6nMNtJ8,9407
78
+ wayfinder_paths/core/strategies/Strategy.py,sha256=Y6UidZ_1LVD_RSlbr9trySCZ4u9Sps4667sc0RXGVQw,9707
80
79
  wayfinder_paths/core/strategies/__init__.py,sha256=2NjvvDw6sIQGUFV4Qo1olXTxUOY3GmCM8Ivz_J1FSmc,157
81
80
  wayfinder_paths/core/strategies/base.py,sha256=-s0qeiGZl5CHTUL2PavGXM7ACkNlaa0c4jeZR_4DuBM,155
82
81
  wayfinder_paths/core/strategies/descriptors.py,sha256=2Olef0VWols1CWb-TWcb5pil2rztC0jP6F_Trpv2hIw,1958
83
82
  wayfinder_paths/core/utils/__init__.py,sha256=TEylMYHnG37Z3mizSmw28bUm0vyNBFzf0Nc8dB_7l1A,73
84
- wayfinder_paths/core/utils/evm_helpers.py,sha256=vxxgenCaRdFEFlrW7eGB9TRubywuCdGvPg5N4C2P9-c,5633
83
+ wayfinder_paths/core/utils/evm_helpers.py,sha256=QvVBgjVrdtblzgHSmJMXPeq6UALgvZxXDuv47OKh5KU,5440
85
84
  wayfinder_paths/core/utils/wallets.py,sha256=ccCQ128lDShO265AFMOCdijzPLucWe-Neg5wjLrOsnk,1948
86
85
  wayfinder_paths/core/wallets/README.md,sha256=ks3tqO3I69PiOXp4hXfZ7ayupvfS0kB8PW3fBR2bDNA,3700
87
86
  wayfinder_paths/core/wallets/WalletManager.py,sha256=sptj0Dya9iM87BDzUktrYM_Mw33xyVJNrRUTVfBjHGw,1870
88
87
  wayfinder_paths/core/wallets/__init__.py,sha256=hIuhy64pJOs_8mAP7Zup28goXbT8qjBeeVYMkbqlyu8,315
89
88
  wayfinder_paths/policies/enso.py,sha256=oytco04eeGjiRbZPGFE1YpH4NxvV0tfVM14QmlyzjkY,428
90
- wayfinder_paths/policies/erc20.py,sha256=cmiG03gz82LRUgwf7BD_yoZ9QTiIvIURL40y48NwaFo,958
89
+ wayfinder_paths/policies/erc20.py,sha256=K5PQCUivBrU2nYmIdsIARzRiFy36Rijver-RJnaxNT8,960
91
90
  wayfinder_paths/policies/evm.py,sha256=8fJpjAl6XVxr51sVMw_VkWmIaI_lj2T7qrLcR8_sWgs,713
92
91
  wayfinder_paths/policies/hyper_evm.py,sha256=wLkrE158rPaDjfU5q-PyRXuQ6KA67VcqWo484UHsLb8,649
93
92
  wayfinder_paths/policies/hyperlend.py,sha256=4u0NP80t7rpHlw_nvParUN90sIXypWyXACfE0OPqFys,370
@@ -95,7 +94,7 @@ wayfinder_paths/policies/hyperliquid.py,sha256=hAxNtWdxavwf_a-AnlXMOmEYakkNBkrPT
95
94
  wayfinder_paths/policies/moonwell.py,sha256=sKWLbruMKiW7Yh1DhXdVPRe0JBP-nooNybRz0G9PgvA,1605
96
95
  wayfinder_paths/policies/prjx.py,sha256=6kfZ6OQFroFHYJl4vSWT-svwwfvoHlS_ZrcHt8nmZMU,743
97
96
  wayfinder_paths/policies/util.py,sha256=r8xQLPvE3kU21_LG6VbkFI9sUSYltcsKunryZdHOUDA,912
98
- wayfinder_paths/run_strategy.py,sha256=dBkIw5GUru1ZDOycQs6PWLm1E6dYAcO_cRRNpg6GAXI,11924
97
+ wayfinder_paths/run_strategy.py,sha256=I6K7ILOniVtB_0n8oJTkmdfB8qdsNWgEyfrKP5tZYK8,11672
99
98
  wayfinder_paths/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
100
99
  wayfinder_paths/scripts/create_strategy.py,sha256=WQQLBhClfjyLxEaKubQkBqBpSOFESnk1m6WTau9LylQ,5352
101
100
  wayfinder_paths/scripts/make_wallets.py,sha256=RuCa9uYAsOzv8TyFdeOH89-SPJVGXwl5RuAqfJesLOk,5237
@@ -106,35 +105,35 @@ wayfinder_paths/strategies/basis_trading_strategy/__init__.py,sha256=kVcehFjBUto
106
105
  wayfinder_paths/strategies/basis_trading_strategy/constants.py,sha256=PJ1WtSALxiuW1FXx-BF30ciFISEhO5VBfrSZyfhPuz0,45
107
106
  wayfinder_paths/strategies/basis_trading_strategy/examples.json,sha256=q2wlAH8Gr-LUJeamKzWL1EtChL3TBWe0HQ4_P-VCdqQ,429
108
107
  wayfinder_paths/strategies/basis_trading_strategy/snapshot_mixin.py,sha256=jjXv-w-uXdkw3-eSUgMmWCE7cPCRrkhyD4_TQjOnRO0,38640
109
- wayfinder_paths/strategies/basis_trading_strategy/strategy.py,sha256=lntYxZCNyNvnobwBk3UFXiqUABnrFnIObwFGVDO6GV8,161245
110
- wayfinder_paths/strategies/basis_trading_strategy/test_strategy.py,sha256=PWTJf2sqNb4BkKQytr_teqOqiV5n_7Fh5fPeZtr9Ito,40149
108
+ wayfinder_paths/strategies/basis_trading_strategy/strategy.py,sha256=M0t-EyqM8iuR69PItBfaEgv1myhqm4TjTwvxOkQme7Q,163957
109
+ wayfinder_paths/strategies/basis_trading_strategy/test_strategy.py,sha256=0BHLaUda3hnEjyu6pR45ER_Yjd4UL91-nKhgYcleTAE,40101
111
110
  wayfinder_paths/strategies/basis_trading_strategy/types.py,sha256=rlbouTUOVPLfGPzMbsf-fUmMcn0R_OsG-IdfiBJmmqI,845
112
111
  wayfinder_paths/strategies/config.py,sha256=5dv-8tWwoxH3Sxd9jtiw90shrLipEe3UlU-IYUBfciM,2762
113
112
  wayfinder_paths/strategies/hyperlend_stable_yield_strategy/README.md,sha256=3dOmUCjs_zu4TgPhis0WG-U1XP_dl9aEGi49EkW_-jw,4180
114
113
  wayfinder_paths/strategies/hyperlend_stable_yield_strategy/examples.json,sha256=GbVo2p6QiG6M7Ma5s671lw8G9JwnMl1h0n9mrtt-ZS8,164
115
- wayfinder_paths/strategies/hyperlend_stable_yield_strategy/strategy.py,sha256=QQ18aOZD2M7xdY6LttmrTALA-TyyFQASgf6b3RlTMOg,92076
116
- wayfinder_paths/strategies/hyperlend_stable_yield_strategy/test_strategy.py,sha256=puHIf160DQ_a1G3LXFHjIel504vKDhZvqktysyEwOdo,15296
117
- wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/README.md,sha256=fv4uLA0Ioxp_LS35aFLhVCPJPoG_uvEYV89KYKmWv_o,4516
114
+ wayfinder_paths/strategies/hyperlend_stable_yield_strategy/strategy.py,sha256=rHrTWb0oozvXd9FaBu8MQryW16cQhA2m6EudM4aEd1Q,95263
115
+ wayfinder_paths/strategies/hyperlend_stable_yield_strategy/test_strategy.py,sha256=YFyfls9HjlB5DbzcPWa7_OFbAJrW7i_HWhGtA6_YXPo,17067
116
+ wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/README.md,sha256=93JLdakJO-URxnLuggvXEZrCjf-6kFKnZt4J04i_3qI,4854
118
117
  wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/examples.json,sha256=kgNRdZcqne8XTm-Y8Hv1a1pdajRQsey4Qhd5La-iWss,164
119
- wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/strategy.py,sha256=PhFwyAWbO7qyJ2tOldTIIW9rK6ElHXbAEtRyo909ztQ,125722
120
- wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/test_strategy.py,sha256=9PfA5AiTdsyWcd3weNgFaoYJ5iWirZSPFoUwSBts7BY,31248
121
- wayfinder_paths/strategies/stablecoin_yield_strategy/README.md,sha256=GirWeShoIVyzwFIJLta5oNLsa62Gozx2nQ5cFGrgxNM,4952
118
+ wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/strategy.py,sha256=q-BuaLzY-vtXXqIFb0cUQi7tSWYFMwrJBcnP7o6yGPc,162764
119
+ wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/test_strategy.py,sha256=f1w6jYZlfg0pdZDLmD01PNXENph8MIb03_GgPRNEXZ4,38348
120
+ wayfinder_paths/strategies/stablecoin_yield_strategy/README.md,sha256=ZiHXmnyvh85sC-X1a_HzUcUZRvNEjwbmrSQkRIK8OQQ,4980
122
121
  wayfinder_paths/strategies/stablecoin_yield_strategy/examples.json,sha256=pL1DNFEvYvXKK7xXD5oQYFPQj3Cm1ocKnk6r_iZk0IY,423
123
- wayfinder_paths/strategies/stablecoin_yield_strategy/strategy.py,sha256=-WEQO70p-jMlDGtAVbv-vdBXIXSOp3SKm_2sXrxvbW0,75699
124
- wayfinder_paths/strategies/stablecoin_yield_strategy/test_strategy.py,sha256=ScEJTu4WAFzYmAZUX2Y3fO97RVF2mhADewUxz7lruzc,20669
125
- wayfinder_paths/templates/adapter/README.md,sha256=pat-Xdvu1y8-neKcgvW8ygVlCkuj2OdHLgp1prJDRkY,2894
122
+ wayfinder_paths/strategies/stablecoin_yield_strategy/strategy.py,sha256=vJ7FdHxhsDxaQhHmLZ6788gpLsGsVNt6n3jjtvQ7qEI,79937
123
+ wayfinder_paths/strategies/stablecoin_yield_strategy/test_strategy.py,sha256=gEw7kEeC9-TPTbsbAjhalsNQEcAdwelh_w8fT0i_bW0,21085
124
+ wayfinder_paths/templates/adapter/README.md,sha256=saBsgYOjdI-EMZIjc8wO0CYm4KgsC7zN7I_ucH6iNeg,2886
126
125
  wayfinder_paths/templates/adapter/adapter.py,sha256=UGPvD8SNcrEtYQXRTUxvK9WZ9Bzx1Xwb8sr9zSbqnuc,763
127
126
  wayfinder_paths/templates/adapter/examples.json,sha256=KLHy3AgPIplAaZN0qY2A-HBMa1xXkMhIyusORovTD9w,79
128
127
  wayfinder_paths/templates/adapter/test_adapter.py,sha256=PeG9ZZwx-cWXCDUKxrvj1cR8ljo9aXrKANZuz2hFAhk,1510
129
- wayfinder_paths/templates/strategy/README.md,sha256=H3pOl_dy_dV3lsRluzV4omjwucJxT_OYBFvakeCFJTg,4972
128
+ wayfinder_paths/templates/strategy/README.md,sha256=721aGfPsKmQBIzwBcEav2cYWMRKNDnvj1ImKJSmH2MM,4963
130
129
  wayfinder_paths/templates/strategy/examples.json,sha256=s8UdlD5uxLITQrRMCqgiaAP0IE0tdnnLfX-Zn-OChIc,135
131
130
  wayfinder_paths/templates/strategy/strategy.py,sha256=dso2jhVphsdKNd17JPwnFAFzU01-1kHlWrKPAKIKSWw,2024
132
- wayfinder_paths/templates/strategy/test_strategy.py,sha256=PwDVFTo7gql3WRqhhmyiBE9orfhXv46FBO989NQNxI0,7519
131
+ wayfinder_paths/templates/strategy/test_strategy.py,sha256=TWw8NHOLy_dKgffHTK43N5He5gJ-oNUFi5QbSQM3l1k,7591
133
132
  wayfinder_paths/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
134
133
  wayfinder_paths/tests/test_smoke_manifest.py,sha256=kTcIa4qikcspVh2ohQIk0aHUdIvBvcQBfNbm3PNiVvg,1636
135
134
  wayfinder_paths/tests/test_test_coverage.py,sha256=9NrZeVmP02D4W7Qc0XjciC05bhvdTCVibYjTGfa_GQk,7893
136
135
  wayfinder_paths/tests/test_utils.py,sha256=pxHT0QKFlyJeJo8bFnKXzWcOdi6t8rbJ0JFCBaFCBRQ,2112
137
- wayfinder_paths-0.1.13.dist-info/LICENSE,sha256=dYKnlkC_xosBAEQNUvB6cHMuhFgcUtN0oBR7E8_aR2Y,1066
138
- wayfinder_paths-0.1.13.dist-info/METADATA,sha256=yu9x6tdOizRjLaEEzr-g3gUrA1I0VAH_FUsJNu5O6kk,25587
139
- wayfinder_paths-0.1.13.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
140
- wayfinder_paths-0.1.13.dist-info/RECORD,,
136
+ wayfinder_paths-0.1.15.dist-info/LICENSE,sha256=dYKnlkC_xosBAEQNUvB6cHMuhFgcUtN0oBR7E8_aR2Y,1066
137
+ wayfinder_paths-0.1.15.dist-info/METADATA,sha256=klcqgBmJs6xKwmJQfuI63h0wZLUzErhMESrrF0t8Fx8,24314
138
+ wayfinder_paths-0.1.15.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
139
+ wayfinder_paths-0.1.15.dist-info/RECORD,,