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.
- wayfinder_paths/adapters/balance_adapter/README.md +13 -14
- wayfinder_paths/adapters/balance_adapter/adapter.py +33 -32
- wayfinder_paths/adapters/balance_adapter/test_adapter.py +123 -0
- wayfinder_paths/adapters/brap_adapter/README.md +11 -16
- wayfinder_paths/adapters/brap_adapter/adapter.py +78 -63
- wayfinder_paths/adapters/brap_adapter/examples.json +63 -52
- wayfinder_paths/adapters/brap_adapter/test_adapter.py +121 -59
- wayfinder_paths/adapters/hyperlend_adapter/adapter.py +16 -14
- wayfinder_paths/adapters/hyperlend_adapter/test_adapter.py +114 -60
- wayfinder_paths/adapters/pool_adapter/README.md +9 -10
- wayfinder_paths/adapters/pool_adapter/adapter.py +9 -10
- wayfinder_paths/adapters/token_adapter/README.md +2 -14
- wayfinder_paths/adapters/token_adapter/adapter.py +16 -10
- wayfinder_paths/adapters/token_adapter/examples.json +4 -8
- wayfinder_paths/adapters/token_adapter/test_adapter.py +5 -3
- wayfinder_paths/core/clients/BRAPClient.py +102 -61
- wayfinder_paths/core/clients/ClientManager.py +1 -68
- wayfinder_paths/core/clients/HyperlendClient.py +125 -64
- wayfinder_paths/core/clients/LedgerClient.py +1 -4
- wayfinder_paths/core/clients/PoolClient.py +122 -48
- wayfinder_paths/core/clients/TokenClient.py +91 -36
- wayfinder_paths/core/clients/WalletClient.py +26 -56
- wayfinder_paths/core/clients/WayfinderClient.py +28 -160
- wayfinder_paths/core/clients/__init__.py +0 -2
- wayfinder_paths/core/clients/protocols.py +35 -46
- wayfinder_paths/core/clients/sdk_example.py +37 -22
- wayfinder_paths/core/engine/StrategyJob.py +7 -55
- wayfinder_paths/core/services/local_evm_txn.py +6 -6
- wayfinder_paths/core/services/local_token_txn.py +1 -1
- wayfinder_paths/core/strategies/Strategy.py +0 -2
- wayfinder_paths/core/utils/evm_helpers.py +2 -2
- wayfinder_paths/run_strategy.py +8 -19
- wayfinder_paths/strategies/basis_trading_strategy/strategy.py +10 -11
- wayfinder_paths/strategies/hyperlend_stable_yield_strategy/strategy.py +40 -25
- wayfinder_paths/strategies/hyperlend_stable_yield_strategy/test_strategy.py +54 -9
- wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/strategy.py +3 -3
- wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/test_strategy.py +12 -6
- wayfinder_paths/strategies/stablecoin_yield_strategy/README.md +1 -1
- wayfinder_paths/strategies/stablecoin_yield_strategy/strategy.py +88 -56
- wayfinder_paths/strategies/stablecoin_yield_strategy/test_strategy.py +16 -12
- wayfinder_paths/templates/strategy/README.md +3 -3
- wayfinder_paths/templates/strategy/test_strategy.py +3 -2
- {wayfinder_paths-0.1.13.dist-info → wayfinder_paths-0.1.14.dist-info}/METADATA +14 -49
- {wayfinder_paths-0.1.13.dist-info → wayfinder_paths-0.1.14.dist-info}/RECORD +46 -47
- wayfinder_paths/core/clients/AuthClient.py +0 -83
- {wayfinder_paths-0.1.13.dist-info → wayfinder_paths-0.1.14.dist-info}/LICENSE +0 -0
- {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=
|
|
5
|
-
wayfinder_paths/adapters/balance_adapter/adapter.py,sha256=
|
|
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=
|
|
8
|
-
wayfinder_paths/adapters/brap_adapter/README.md,sha256=
|
|
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=
|
|
11
|
-
wayfinder_paths/adapters/brap_adapter/examples.json,sha256=
|
|
12
|
-
wayfinder_paths/adapters/brap_adapter/test_adapter.py,sha256=
|
|
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=
|
|
15
|
-
wayfinder_paths/adapters/hyperlend_adapter/test_adapter.py,sha256=
|
|
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
|
|
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=
|
|
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=
|
|
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=
|
|
42
|
-
wayfinder_paths/adapters/token_adapter/examples.json,sha256=
|
|
43
|
-
wayfinder_paths/adapters/token_adapter/test_adapter.py,sha256=
|
|
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/
|
|
55
|
-
wayfinder_paths/core/clients/
|
|
56
|
-
wayfinder_paths/core/clients/
|
|
57
|
-
wayfinder_paths/core/clients/
|
|
58
|
-
wayfinder_paths/core/clients/
|
|
59
|
-
wayfinder_paths/core/clients/
|
|
60
|
-
wayfinder_paths/core/clients/
|
|
61
|
-
wayfinder_paths/core/clients/
|
|
62
|
-
wayfinder_paths/core/clients/
|
|
63
|
-
wayfinder_paths/core/clients/
|
|
64
|
-
wayfinder_paths/core/clients/
|
|
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=
|
|
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=
|
|
77
|
-
wayfinder_paths/core/services/local_token_txn.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
116
|
-
wayfinder_paths/strategies/hyperlend_stable_yield_strategy/test_strategy.py,sha256=
|
|
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=
|
|
120
|
-
wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/test_strategy.py,sha256=
|
|
121
|
-
wayfinder_paths/strategies/stablecoin_yield_strategy/README.md,sha256=
|
|
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
|
|
124
|
-
wayfinder_paths/strategies/stablecoin_yield_strategy/test_strategy.py,sha256=
|
|
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=
|
|
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=
|
|
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.
|
|
138
|
-
wayfinder_paths-0.1.
|
|
139
|
-
wayfinder_paths-0.1.
|
|
140
|
-
wayfinder_paths-0.1.
|
|
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
|
|
File without changes
|
|
File without changes
|