wayfinder-paths 0.1.13__py3-none-any.whl → 0.1.14__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 (47) hide show
  1. wayfinder_paths/adapters/balance_adapter/README.md +13 -14
  2. wayfinder_paths/adapters/balance_adapter/adapter.py +33 -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 +78 -63
  6. wayfinder_paths/adapters/brap_adapter/examples.json +63 -52
  7. wayfinder_paths/adapters/brap_adapter/test_adapter.py +121 -59
  8. wayfinder_paths/adapters/hyperlend_adapter/adapter.py +16 -14
  9. wayfinder_paths/adapters/hyperlend_adapter/test_adapter.py +114 -60
  10. wayfinder_paths/adapters/pool_adapter/README.md +9 -10
  11. wayfinder_paths/adapters/pool_adapter/adapter.py +9 -10
  12. wayfinder_paths/adapters/token_adapter/README.md +2 -14
  13. wayfinder_paths/adapters/token_adapter/adapter.py +16 -10
  14. wayfinder_paths/adapters/token_adapter/examples.json +4 -8
  15. wayfinder_paths/adapters/token_adapter/test_adapter.py +5 -3
  16. wayfinder_paths/core/clients/BRAPClient.py +102 -61
  17. wayfinder_paths/core/clients/ClientManager.py +1 -68
  18. wayfinder_paths/core/clients/HyperlendClient.py +125 -64
  19. wayfinder_paths/core/clients/LedgerClient.py +1 -4
  20. wayfinder_paths/core/clients/PoolClient.py +122 -48
  21. wayfinder_paths/core/clients/TokenClient.py +91 -36
  22. wayfinder_paths/core/clients/WalletClient.py +26 -56
  23. wayfinder_paths/core/clients/WayfinderClient.py +28 -160
  24. wayfinder_paths/core/clients/__init__.py +0 -2
  25. wayfinder_paths/core/clients/protocols.py +35 -46
  26. wayfinder_paths/core/clients/sdk_example.py +37 -22
  27. wayfinder_paths/core/engine/StrategyJob.py +7 -55
  28. wayfinder_paths/core/services/local_evm_txn.py +6 -6
  29. wayfinder_paths/core/services/local_token_txn.py +1 -1
  30. wayfinder_paths/core/strategies/Strategy.py +0 -2
  31. wayfinder_paths/core/utils/evm_helpers.py +2 -2
  32. wayfinder_paths/run_strategy.py +8 -19
  33. wayfinder_paths/strategies/basis_trading_strategy/strategy.py +10 -11
  34. wayfinder_paths/strategies/hyperlend_stable_yield_strategy/strategy.py +40 -25
  35. wayfinder_paths/strategies/hyperlend_stable_yield_strategy/test_strategy.py +54 -9
  36. wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/strategy.py +3 -3
  37. wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/test_strategy.py +12 -6
  38. wayfinder_paths/strategies/stablecoin_yield_strategy/README.md +1 -1
  39. wayfinder_paths/strategies/stablecoin_yield_strategy/strategy.py +88 -56
  40. wayfinder_paths/strategies/stablecoin_yield_strategy/test_strategy.py +16 -12
  41. wayfinder_paths/templates/strategy/README.md +3 -3
  42. wayfinder_paths/templates/strategy/test_strategy.py +3 -2
  43. {wayfinder_paths-0.1.13.dist-info → wayfinder_paths-0.1.14.dist-info}/METADATA +14 -49
  44. {wayfinder_paths-0.1.13.dist-info → wayfinder_paths-0.1.14.dist-info}/RECORD +46 -47
  45. wayfinder_paths/core/clients/AuthClient.py +0 -83
  46. {wayfinder_paths-0.1.13.dist-info → wayfinder_paths-0.1.14.dist-info}/LICENSE +0 -0
  47. {wayfinder_paths-0.1.13.dist-info → wayfinder_paths-0.1.14.dist-info}/WHEEL +0 -0
@@ -1,18 +1,18 @@
1
1
  wayfinder_paths/__init__.py,sha256=YgOg-PRPT3ROh0zg6hgQyQE-YFkFGw6TM77zDvB4_sE,427
2
2
  wayfinder_paths/abis/generic/erc20.json,sha256=geyzVzdTNt3u1XHKxi4seszP_GIWIzPTl0FYgiftRnM,9336
3
3
  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
4
+ wayfinder_paths/adapters/balance_adapter/README.md,sha256=VCBvhAzgWayVgRZonwAB0oMIip1iXvRWb0cYSmeDmPI,3789
5
+ wayfinder_paths/adapters/balance_adapter/adapter.py,sha256=OzhnMfB1z7BgCKaXv7Yp4Hdl2Ny2LZ6Yzjz51-Ur3EM,8580
6
6
  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
7
+ wayfinder_paths/adapters/balance_adapter/test_adapter.py,sha256=slCRF6JlLSbLAUyPYQsl19KxwSgrF9853O7XOPyUPNY,6311
8
+ wayfinder_paths/adapters/brap_adapter/README.md,sha256=eOWIwAPdaBuvPCmT_E4myucUSvgupvvQQKDcptgRluw,7756
9
9
  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
10
+ wayfinder_paths/adapters/brap_adapter/adapter.py,sha256=rTy4g6-_pkP61o-plTNBIb7j1phB5xX7lmaYadtYAfE,30446
11
+ wayfinder_paths/adapters/brap_adapter/examples.json,sha256=FGZhNaMCAQ56KhovEGSsV1BHOcMd_QqQBNmCU6m8zfQ,5389
12
+ wayfinder_paths/adapters/brap_adapter/test_adapter.py,sha256=qIPPHk1_WGKYSFndWC-CzHE7z1OvM8hNVypvFNV_lG4,12848
13
13
  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
14
+ wayfinder_paths/adapters/hyperlend_adapter/adapter.py,sha256=DtdKzi8dDTBZdzbddIDuzJXWF_NOvOG_EtfxE6taTGY,10013
15
+ wayfinder_paths/adapters/hyperlend_adapter/test_adapter.py,sha256=7QYUh0xEQd2dDyt069abHjSduVPtPXAL5q_TNeQXk_4,12152
16
16
  wayfinder_paths/adapters/hyperliquid_adapter/__init__.py,sha256=QpA258RzVbxzsha86HQduAuNVG0g0qvsI5OcZunQ8DQ,467
17
17
  wayfinder_paths/adapters/hyperliquid_adapter/adapter.py,sha256=Z5Gl9M9wk7PVUIyP_i2oAMegmCTbVFd48Zp57DURh6M,34510
18
18
  wayfinder_paths/adapters/hyperliquid_adapter/executor.py,sha256=ix1FmRO6DPiPk0BwGy4zrCP5IfKzzMSQNhnOmIewfGA,18977
@@ -31,16 +31,16 @@ wayfinder_paths/adapters/moonwell_adapter/README.md,sha256=PyQllVXgW0aUUoWhAZ5ph
31
31
  wayfinder_paths/adapters/moonwell_adapter/__init__.py,sha256=Gf6AM4BylxxPenUQ_cveUg70QcB9i61SIYaCsXMSjXw,135
32
32
  wayfinder_paths/adapters/moonwell_adapter/adapter.py,sha256=kpzuIEUQHHo8WUkt-XGO5FqMtPBRNubYqkkWT0jKvKM,45030
33
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
34
+ wayfinder_paths/adapters/pool_adapter/README.md,sha256=cBeWz8UzOOIKCkyBUDGTujR1vZNPyhgqKO2HNgq0j3I,2470
35
35
  wayfinder_paths/adapters/pool_adapter/__init__.py,sha256=rv56pYzz2Gqiz33uoPJktCQRe3CRt8U9ry5GbjVgK3A,90
36
- wayfinder_paths/adapters/pool_adapter/adapter.py,sha256=FrzgoXUkrLjL_SDHT5-zK7VMTPx6QdDdMpO--R5b5AE,1842
36
+ wayfinder_paths/adapters/pool_adapter/adapter.py,sha256=zHYCcCjum3jJpG4BZnTJ8YuOyI9ZJlSN5r8TMO4KCDM,1806
37
37
  wayfinder_paths/adapters/pool_adapter/examples.json,sha256=NW-7J6_zXxky8uMDRym3jJaPP8hZLEiytQ3WKoZEP54,855
38
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
39
+ wayfinder_paths/adapters/token_adapter/README.md,sha256=mvsfm1fZDsNim4A_H0o54l4y4BNH9mxDu2UB_mNz1xw,2338
40
40
  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
41
+ wayfinder_paths/adapters/token_adapter/adapter.py,sha256=aAfcMpxlG5W9UbYQ4mPks0o7A1KsrYyMZzWw-1dQz8Q,3729
42
+ wayfinder_paths/adapters/token_adapter/examples.json,sha256=bvwP9XL9c_endFlMQgkavXh_IzNEEUyJd4gh5QjrcqY,2944
43
+ wayfinder_paths/adapters/token_adapter/test_adapter.py,sha256=k3N_em0cgkyL_k3YF6W17trDten8nD5hoE1Tpx9OJC8,4505
44
44
  wayfinder_paths/conftest.py,sha256=pqDNijXn9_zmbAdkt_2a18UQLjtsDkNTBJVTgC6H2nA,1136
45
45
  wayfinder_paths/core/__init__.py,sha256=AJK8oS2dCVuJ2pmSxqXOCvuWacNaVEU3yALEqsD3rog,398
46
46
  wayfinder_paths/core/adapters/BaseAdapter.py,sha256=bzc3ER7aKOsmk9cxyoJxGdI54eibbpcMC8nGYJUrsp0,2033
@@ -51,37 +51,36 @@ wayfinder_paths/core/analytics/__init__.py,sha256=AtcSpt2vPpCNgdDaFDLhyZZpKa0QXK
51
51
  wayfinder_paths/core/analytics/bootstrap.py,sha256=lb_PjL4Vh3O2F8eXgvAbnAFevJczRF59ODG-dxtpCZ8,1782
52
52
  wayfinder_paths/core/analytics/stats.py,sha256=qE6h0j8TZAbqbVpDeYlVKe0YbV5CENQcHbREzKyZ_s8,1426
53
53
  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
54
+ wayfinder_paths/core/clients/BRAPClient.py,sha256=aqsEDbTbf0D4SOQ1AoB3RPc6R8vt5PYkrTb7eEidfAg,4124
55
+ wayfinder_paths/core/clients/ClientManager.py,sha256=xllc8KIQvA6S3dx05Exw0Vh1PAeKPDSE832vaLmBwwg,4245
56
+ wayfinder_paths/core/clients/HyperlendClient.py,sha256=7BWqW2OwX_3JWXAQUMrsprwLusYBQ60LRToLOoVZu40,7912
57
+ wayfinder_paths/core/clients/LedgerClient.py,sha256=keHi1_dRA8kMVIEEcAe8OyDOr-XhoiRJ8eT6wXNz_EI,14327
58
+ wayfinder_paths/core/clients/PoolClient.py,sha256=GPa62hp3ajACyFfTXQpPfBLQVyt8VQX3R-IUJ6wtCis,4333
59
+ wayfinder_paths/core/clients/TokenClient.py,sha256=HyjMJKMxhPefi6A65le5DuGM9leUxYMdvLxTt2FDokI,4077
60
+ wayfinder_paths/core/clients/WalletClient.py,sha256=efvdJlS1fZfvNBU_hXn63mOKoETB0eh1kF6SWTSFWSk,1646
61
+ wayfinder_paths/core/clients/WayfinderClient.py,sha256=gl-YHTYDa5GStg5O2xETiL4dAaCLphRos-btB1rQzVE,4319
62
+ wayfinder_paths/core/clients/__init__.py,sha256=2xpZ4tBYkK0QjpBI88ZB4t4esfIc-enm0LqHdRo479M,1173
63
+ wayfinder_paths/core/clients/protocols.py,sha256=Z0vvce55wfXrSXfuO0Y-s9EfT9zvwUier4-XhwPZSTs,7984
64
+ wayfinder_paths/core/clients/sdk_example.py,sha256=SETyEJ_vw7pJcZVMxBMSjJk9Ag3levyn4WrpDueai_A,3589
66
65
  wayfinder_paths/core/config.py,sha256=ADdrYAapSCwpV4ljSziBmxZV2Z2ORsu8ku-_MptSjjc,9060
67
66
  wayfinder_paths/core/constants/__init__.py,sha256=upAVwHDgMXJ3DWaAuXo52UZktS8NZ17s5XwVH0qxgzg,591
68
67
  wayfinder_paths/core/constants/base.py,sha256=BYQAD72XrsY6WRrOMIlUOpXLVANS7EYaS5Ell4Nj1H4,1551
69
68
  wayfinder_paths/core/constants/erc20_abi.py,sha256=3ljIyUl6FesoEa4uprwNo-nF0Q5s73M9WEqXLw6ONI4,3214
70
69
  wayfinder_paths/core/constants/hyperlend_abi.py,sha256=nIaqsfMl5-_InYN82pjz0FIKsT-AnNkwz0DIc9VrZSc,4331
71
70
  wayfinder_paths/core/constants/moonwell_abi.py,sha256=ALb-kKdfF9aUtEHR8OlqvA-3zJ48N66RvVptTJyCfe4,13135
72
- wayfinder_paths/core/engine/StrategyJob.py,sha256=DqwkPu5JHp00xkDmj7kyUqs9U-VP0k-OBlVipjEzk14,7257
71
+ wayfinder_paths/core/engine/StrategyJob.py,sha256=4H_A3DdTzUUM2e-420I4FpjIhySw_wTJNs3LM_Cf0Xw,5254
73
72
  wayfinder_paths/core/engine/__init__.py,sha256=WZ2KWnmOZnBocYrqdwq6EUHp6lmTyrKyXgHSHyQswnU,108
74
73
  wayfinder_paths/core/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
74
  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
75
+ wayfinder_paths/core/services/local_evm_txn.py,sha256=4SHMJz-PrnpLgz94MfchZifPmOlWoDAj_ADFXAWbDD0,12612
76
+ wayfinder_paths/core/services/local_token_txn.py,sha256=rRz2H6IZIUNrPAXoyXe0Qy_TAtTU2VpnHVxu6Im0kW4,8531
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=1Ntx91B1QjN3jrPS36kpVIE36OzamOIea2n-OOBDdIo,9296
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=EzUOsyGE9DmBp82hsrE_KTopYaSAu161AR-jVoYBC8U,5624
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
@@ -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=VWW9GIgX1KbNU8gp40qCef0ALbI-BiUoFTVVzBSfTZU,11505
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
108
+ wayfinder_paths/strategies/basis_trading_strategy/strategy.py,sha256=LpThF7HZ5eU2uqt08k5jMaaJYCSu79x5a7Z430-5KYw,161167
110
109
  wayfinder_paths/strategies/basis_trading_strategy/test_strategy.py,sha256=PWTJf2sqNb4BkKQytr_teqOqiV5n_7Fh5fPeZtr9Ito,40149
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
114
+ wayfinder_paths/strategies/hyperlend_stable_yield_strategy/strategy.py,sha256=Uwq0ca_1_xnlFqmEtdoC_ok44LvWQcqoCFD3vXc6xZ8,92388
115
+ wayfinder_paths/strategies/hyperlend_stable_yield_strategy/test_strategy.py,sha256=YFyfls9HjlB5DbzcPWa7_OFbAJrW7i_HWhGtA6_YXPo,17067
117
116
  wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/README.md,sha256=fv4uLA0Ioxp_LS35aFLhVCPJPoG_uvEYV89KYKmWv_o,4516
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=G5V57vH9vpkLvSvkbVbowrwuD-qZr7WKhCRsDsyvED4,125713
119
+ wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/test_strategy.py,sha256=UOR6bEC5Y2fiOu4idgK8TqlFgt7QazVo82QS3iVp9nA,31715
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
122
+ wayfinder_paths/strategies/stablecoin_yield_strategy/strategy.py,sha256=mCNN-HBsf880If1Eaglsn9xB4nG-mZN15MKMZqxpHbw,77232
123
+ wayfinder_paths/strategies/stablecoin_yield_strategy/test_strategy.py,sha256=gEw7kEeC9-TPTbsbAjhalsNQEcAdwelh_w8fT0i_bW0,21085
125
124
  wayfinder_paths/templates/adapter/README.md,sha256=pat-Xdvu1y8-neKcgvW8ygVlCkuj2OdHLgp1prJDRkY,2894
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.14.dist-info/LICENSE,sha256=dYKnlkC_xosBAEQNUvB6cHMuhFgcUtN0oBR7E8_aR2Y,1066
137
+ wayfinder_paths-0.1.14.dist-info/METADATA,sha256=1ehMcYQAekFVNY2W_ft-xZFS97MB9BFNslG0vrGFZpc,24314
138
+ wayfinder_paths-0.1.14.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
139
+ wayfinder_paths-0.1.14.dist-info/RECORD,,
@@ -1,83 +0,0 @@
1
- import os
2
- from typing import Any
3
-
4
- from loguru import logger
5
-
6
- from wayfinder_paths.core.clients.WayfinderClient import WayfinderClient
7
- from wayfinder_paths.core.config import get_api_base_url
8
-
9
-
10
- class AuthClient(WayfinderClient):
11
- def __init__(self, api_key: str | None = None):
12
- """
13
- Initialize AuthClient.
14
-
15
- Args:
16
- api_key: Optional API key for service account authentication.
17
- If provided, uses API key auth. Otherwise falls back to config.json.
18
- """
19
- super().__init__(api_key=api_key)
20
-
21
- self.api_base_url = get_api_base_url()
22
- self.logger = logger.bind(client="AuthClient")
23
-
24
- def _is_using_api_key(self) -> bool:
25
- """Check if API key authentication is being used."""
26
- if self._api_key:
27
- return True
28
-
29
- try:
30
- creds = self._load_config_credentials()
31
- if creds.get("api_key"):
32
- return True
33
- if os.getenv("WAYFINDER_API_KEY"):
34
- return True
35
- except Exception:
36
- pass
37
-
38
- return False
39
-
40
- async def authenticate(
41
- self,
42
- username: str | None = None,
43
- password: str | None = None,
44
- *,
45
- refresh_token: str | None = None,
46
- ) -> dict[str, Any]:
47
- """
48
- Obtain an access token via username/password or refresh token.
49
-
50
- Expected endpoints:
51
- - POST {api_base_url}/token/ (username, password) -> { access, refresh }
52
- - POST {api_base_url}/token/refresh/ (refresh) -> { access }
53
- """
54
- if refresh_token:
55
- self.logger.debug(
56
- "AuthClient.authenticate -> POST /token/refresh (refresh provided)"
57
- )
58
- url = f"{self.api_base_url}/auth/token/refresh/"
59
- payload = {"refresh": refresh_token}
60
- elif username and password:
61
- self.logger.debug(
62
- f"AuthClient.authenticate -> POST /token (username provided={bool(username)})"
63
- )
64
- url = f"{self.api_base_url}/auth/token/"
65
- payload = {"username": username, "password": password}
66
- else:
67
- raise ValueError(
68
- "Credentials required: provide username+password or refresh_token"
69
- )
70
-
71
- response = await self._request("POST", url, json=payload)
72
- response.raise_for_status()
73
- data = response.json()
74
-
75
- access = data.get("access") or data.get("access_token")
76
- refresh = data.get("refresh") or data.get("refresh_token")
77
- if access or refresh:
78
- self.set_tokens(access, refresh)
79
- self.logger.debug(
80
- f"AuthClient.authenticate <- success (access={'yes' if access else 'no'}, refresh={'yes' if refresh else 'no'})"
81
- )
82
-
83
- return data