wayfinder-paths 0.1.27__tar.gz → 0.1.28__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.
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/PKG-INFO +3 -2
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/pyproject.toml +1 -1
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/hyperliquid_adapter/exchange.py +8 -40
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/hyperliquid_adapter/local_signer.py +2 -2
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/LICENSE +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/README.md +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/balance_adapter/README.md +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/balance_adapter/adapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/balance_adapter/examples.json +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/balance_adapter/manifest.yaml +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/balance_adapter/test_adapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/boros_adapter/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/boros_adapter/adapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/boros_adapter/client.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/boros_adapter/manifest.yaml +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/boros_adapter/parsers.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/boros_adapter/test_adapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/boros_adapter/test_golden.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/boros_adapter/types.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/boros_adapter/utils.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/brap_adapter/README.md +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/brap_adapter/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/brap_adapter/adapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/brap_adapter/examples.json +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/brap_adapter/manifest.yaml +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/brap_adapter/test_adapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/hyperlend_adapter/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/hyperlend_adapter/adapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/hyperlend_adapter/manifest.yaml +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/hyperlend_adapter/test_adapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/hyperliquid_adapter/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/hyperliquid_adapter/adapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/hyperliquid_adapter/executor.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/hyperliquid_adapter/manifest.yaml +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/hyperliquid_adapter/paired_filler.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/hyperliquid_adapter/test_adapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/hyperliquid_adapter/test_adapter_live.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/hyperliquid_adapter/test_executor.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/hyperliquid_adapter/test_utils.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/hyperliquid_adapter/util.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/hyperliquid_adapter/utils.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/ledger_adapter/README.md +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/ledger_adapter/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/ledger_adapter/adapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/ledger_adapter/examples.json +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/ledger_adapter/manifest.yaml +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/ledger_adapter/test_adapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/moonwell_adapter/README.md +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/moonwell_adapter/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/moonwell_adapter/adapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/moonwell_adapter/manifest.yaml +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/moonwell_adapter/test_adapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/multicall_adapter/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/multicall_adapter/adapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/multicall_adapter/manifest.yaml +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/multicall_adapter/test_adapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/pendle_adapter/README.md +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/pendle_adapter/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/pendle_adapter/adapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/pendle_adapter/examples.json +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/pendle_adapter/manifest.yaml +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/pendle_adapter/test_adapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/pool_adapter/README.md +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/pool_adapter/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/pool_adapter/adapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/pool_adapter/examples.json +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/pool_adapter/manifest.yaml +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/pool_adapter/test_adapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/token_adapter/README.md +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/token_adapter/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/token_adapter/adapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/token_adapter/examples.json +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/token_adapter/manifest.yaml +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/token_adapter/test_adapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/conftest.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/adapters/BaseAdapter.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/adapters/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/adapters/models.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/analytics/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/analytics/bootstrap.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/analytics/stats.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/analytics/test_analytics.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/clients/BRAPClient.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/clients/BalanceClient.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/clients/ClientManager.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/clients/HyperlendClient.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/clients/LedgerClient.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/clients/PoolClient.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/clients/TokenClient.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/clients/WayfinderClient.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/clients/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/clients/protocols.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/clients/test_ledger_client.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/config.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/constants/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/constants/base.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/constants/chains.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/constants/contracts.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/constants/erc20_abi.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/constants/hyperlend_abi.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/constants/hyperliquid.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/constants/moonwell_abi.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/constants/tokens.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/engine/manifest.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/strategies/Strategy.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/strategies/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/strategies/base.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/strategies/descriptors.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/strategies/opa_loop.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/types.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/utils/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/utils/evm_helpers.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/utils/test_transaction.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/utils/tokens.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/utils/transaction.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/utils/wallets.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/utils/web3.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/mcp/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/mcp/preview.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/mcp/scripting.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/mcp/server.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/mcp/state/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/mcp/state/profile_store.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/mcp/state/store.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/mcp/test_scripting.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/mcp/tools/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/mcp/tools/balances.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/mcp/tools/discovery.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/mcp/tools/execute.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/mcp/tools/hyperliquid.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/mcp/tools/quotes.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/mcp/tools/run_script.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/mcp/tools/strategies.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/mcp/tools/tokens.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/mcp/tools/wallets.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/mcp/utils.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/policies/enso.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/policies/erc20.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/policies/evm.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/policies/hyper_evm.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/policies/hyperlend.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/policies/hyperliquid.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/policies/lifi.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/policies/moonwell.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/policies/prjx.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/policies/util.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/run_strategy.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/basis_trading_strategy/README.md +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/basis_trading_strategy/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/basis_trading_strategy/constants.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/basis_trading_strategy/examples.json +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/basis_trading_strategy/snapshot_mixin.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/basis_trading_strategy/strategy.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/basis_trading_strategy/test_strategy.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/basis_trading_strategy/types.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/boros_hype_strategy/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/boros_hype_strategy/boros_ops_mixin.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/boros_hype_strategy/constants.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/boros_hype_strategy/examples.json +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/boros_hype_strategy/hyperevm_ops_mixin.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/boros_hype_strategy/hyperliquid_ops_mixin.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/boros_hype_strategy/manifest.yaml +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/boros_hype_strategy/planner.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/boros_hype_strategy/risk_ops_mixin.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/boros_hype_strategy/snapshot_mixin.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/boros_hype_strategy/strategy.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/boros_hype_strategy/test_planner_golden.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/boros_hype_strategy/test_strategy.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/boros_hype_strategy/types.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/boros_hype_strategy/withdraw_mixin.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/hyperlend_stable_yield_strategy/README.md +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/hyperlend_stable_yield_strategy/examples.json +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/hyperlend_stable_yield_strategy/strategy.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/hyperlend_stable_yield_strategy/test_strategy.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/README.md +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/examples.json +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/strategy.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/moonwell_wsteth_loop_strategy/test_strategy.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/stablecoin_yield_strategy/README.md +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/stablecoin_yield_strategy/examples.json +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/stablecoin_yield_strategy/strategy.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/strategies/stablecoin_yield_strategy/test_strategy.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/tests/__init__.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/tests/test_mcp_quote_swap.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/tests/test_test_coverage.py +0 -0
- {wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/tests/test_utils.py +0 -0
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: wayfinder-paths
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.28
|
|
4
4
|
Summary: Wayfinder Path: strategies and adapters
|
|
5
5
|
Author: Wayfinder
|
|
6
6
|
Author-email: dev@wayfinder.ai
|
|
7
7
|
Requires-Python: >=3.12,<4.0
|
|
8
8
|
Classifier: Programming Language :: Python :: 3
|
|
9
9
|
Classifier: Programming Language :: Python :: 3.12
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
10
11
|
Requires-Dist: aiocache (>=0.12.3,<0.13.0)
|
|
11
12
|
Requires-Dist: aiohttp (>=3.13.0,<4.0.0)
|
|
12
13
|
Requires-Dist: eth-account (>=0.13.7,<0.14.0)
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import json
|
|
2
1
|
from decimal import Decimal
|
|
3
2
|
from typing import Any, Literal
|
|
4
3
|
|
|
5
4
|
from eth_account.messages import encode_typed_data
|
|
6
|
-
from eth_utils import keccak
|
|
7
5
|
from hyperliquid.api import API
|
|
8
6
|
from hyperliquid.exchange import get_timestamp_ms
|
|
9
7
|
from hyperliquid.info import Info
|
|
@@ -204,7 +202,7 @@ class Exchange:
|
|
|
204
202
|
"time": nonce,
|
|
205
203
|
"type": "withdraw3",
|
|
206
204
|
}
|
|
207
|
-
payload =
|
|
205
|
+
payload = user_signed_payload(
|
|
208
206
|
"HyperliquidTransaction:Withdraw", WITHDRAW_SIGN_TYPES, action
|
|
209
207
|
)
|
|
210
208
|
if not (sig := await self.sign(payload, action, address)):
|
|
@@ -230,7 +228,7 @@ class Exchange:
|
|
|
230
228
|
"amount": amount,
|
|
231
229
|
"time": nonce,
|
|
232
230
|
}
|
|
233
|
-
payload =
|
|
231
|
+
payload = user_signed_payload(
|
|
234
232
|
"HyperliquidTransaction:SpotSend", SPOT_TRANSFER_SIGN_TYPES, action
|
|
235
233
|
)
|
|
236
234
|
if not (sig := await self.sign(payload, action, address)):
|
|
@@ -248,7 +246,7 @@ class Exchange:
|
|
|
248
246
|
"nonce": nonce,
|
|
249
247
|
"type": "usdClassTransfer",
|
|
250
248
|
}
|
|
251
|
-
payload =
|
|
249
|
+
payload = user_signed_payload(
|
|
252
250
|
"HyperliquidTransaction:UsdClassTransfer",
|
|
253
251
|
USD_CLASS_TRANSFER_SIGN_TYPES,
|
|
254
252
|
action,
|
|
@@ -268,7 +266,7 @@ class Exchange:
|
|
|
268
266
|
"nonce": nonce,
|
|
269
267
|
"type": "userDexAbstraction",
|
|
270
268
|
}
|
|
271
|
-
payload =
|
|
269
|
+
payload = user_signed_payload(
|
|
272
270
|
"HyperliquidTransaction:UserDexAbstraction",
|
|
273
271
|
USER_DEX_ABSTRACTION_SIGN_TYPES,
|
|
274
272
|
action,
|
|
@@ -288,56 +286,26 @@ class Exchange:
|
|
|
288
286
|
"nonce": nonce,
|
|
289
287
|
"type": "approveBuilderFee",
|
|
290
288
|
}
|
|
291
|
-
payload =
|
|
289
|
+
payload = user_signed_payload(
|
|
292
290
|
"HyperliquidTransaction:ApproveBuilderFee", BUILDER_FEE_SIGN_TYPES, action
|
|
293
291
|
)
|
|
294
292
|
if not (sig := await self.sign(payload, action, address)):
|
|
295
293
|
return USER_DECLINED_ERROR
|
|
296
294
|
return self._broadcast_hypecore(action, nonce, sig)
|
|
297
295
|
|
|
298
|
-
def build_sign(self, raw_payload: dict) -> str:
|
|
299
|
-
"""Build and format the signing payload based on signing_type."""
|
|
300
|
-
if self.signing_type == "eip712":
|
|
301
|
-
# Remote signing: Return JSON string of typed data
|
|
302
|
-
return json.dumps(
|
|
303
|
-
raw_payload,
|
|
304
|
-
default=lambda o: (
|
|
305
|
-
"0x" + o.hex() if isinstance(o, (bytes, bytearray)) else o
|
|
306
|
-
),
|
|
307
|
-
separators=(",", ":"),
|
|
308
|
-
)
|
|
309
|
-
# Local signing: Return keccak hash
|
|
310
|
-
encoded = encode_typed_data(full_message=raw_payload)
|
|
311
|
-
full_msg = b"\x19" + encoded.version + encoded.header + encoded.body
|
|
312
|
-
return f"0x{keccak(full_msg).hex()}"
|
|
313
|
-
|
|
314
296
|
async def sign(
|
|
315
297
|
self, payload: str, action: dict, address: str
|
|
316
298
|
) -> dict[str, Any] | None:
|
|
317
299
|
"""Sign the payload and return Hyperliquid-format signature."""
|
|
318
300
|
if self.signing_type == "eip712":
|
|
319
|
-
|
|
320
|
-
typed_data = json.loads(payload)
|
|
321
|
-
sig_hex = await self.sign_callback(typed_data)
|
|
301
|
+
sig_hex = await self.sign_callback(payload)
|
|
322
302
|
if not sig_hex:
|
|
323
303
|
return None
|
|
324
304
|
return self.util._sig_hex_to_hl_signature(sig_hex)
|
|
325
305
|
|
|
326
|
-
|
|
306
|
+
payload = encode_typed_data(full_message=payload)
|
|
327
307
|
return await self.sign_callback(action, payload, address)
|
|
328
308
|
|
|
329
|
-
def _get_hypecore_l1_payload(
|
|
330
|
-
self, action, nonce, expires_after=None, is_mainnet=True
|
|
331
|
-
):
|
|
332
|
-
"""Build L1 action payload (orders, leverage, cancels)."""
|
|
333
|
-
payload = get_l1_action_payload(action, None, nonce, expires_after, is_mainnet)
|
|
334
|
-
return self.build_sign(payload)
|
|
335
|
-
|
|
336
|
-
def _get_hypecore_user_signature_payload(self, primary_type, payload_types, action):
|
|
337
|
-
"""Build user signed action payload (withdrawals, transfers, etc.)."""
|
|
338
|
-
payload = user_signed_payload(primary_type, payload_types, action)
|
|
339
|
-
return self.build_sign(payload)
|
|
340
|
-
|
|
341
309
|
def _broadcast_hypecore(self, action, nonce, signature):
|
|
342
310
|
"""Broadcast a signed action to the Hyperliquid exchange."""
|
|
343
311
|
payload = {
|
|
@@ -351,7 +319,7 @@ class Exchange:
|
|
|
351
319
|
async def sign_and_broadcast_hypecore(self, action, address):
|
|
352
320
|
"""Sign and broadcast an L1 action (orders, leverage, cancels)."""
|
|
353
321
|
nonce = get_timestamp_ms()
|
|
354
|
-
payload =
|
|
322
|
+
payload = payload = get_l1_action_payload(action, None, nonce, None, True)
|
|
355
323
|
if not (sig := await self.sign(payload, action, address)):
|
|
356
324
|
return USER_DECLINED_ERROR
|
|
357
325
|
return self._broadcast_hypecore(action, nonce, sig)
|
|
@@ -52,7 +52,7 @@ def create_local_signer(config: dict[str, Any]) -> HyperliquidSignCallback:
|
|
|
52
52
|
|
|
53
53
|
# Create account
|
|
54
54
|
pk = private_key if private_key.startswith("0x") else "0x" + private_key
|
|
55
|
-
account = Account.from_key(pk)
|
|
55
|
+
account: Account = Account.from_key(pk)
|
|
56
56
|
|
|
57
57
|
async def sign(
|
|
58
58
|
action: dict[str, Any], payload: str, address: str
|
|
@@ -76,7 +76,7 @@ def create_local_signer(config: dict[str, Any]) -> HyperliquidSignCallback:
|
|
|
76
76
|
return None
|
|
77
77
|
|
|
78
78
|
# Sign the hash
|
|
79
|
-
signed = account.
|
|
79
|
+
signed = account.sign_message(payload)
|
|
80
80
|
return {"r": hex(signed.r), "s": hex(signed.s), "v": signed.v}
|
|
81
81
|
|
|
82
82
|
return sign
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/balance_adapter/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/boros_adapter/__init__.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/boros_adapter/adapter.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/boros_adapter/client.py
RENAMED
|
File without changes
|
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/boros_adapter/parsers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/boros_adapter/types.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/boros_adapter/utils.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/brap_adapter/README.md
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/brap_adapter/__init__.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/brap_adapter/adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/ledger_adapter/README.md
RENAMED
|
File without changes
|
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/ledger_adapter/adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/pendle_adapter/README.md
RENAMED
|
File without changes
|
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/pendle_adapter/adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/pool_adapter/README.md
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/pool_adapter/__init__.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/pool_adapter/adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/token_adapter/README.md
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/token_adapter/__init__.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/adapters/token_adapter/adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/adapters/BaseAdapter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/analytics/__init__.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/analytics/bootstrap.py
RENAMED
|
File without changes
|
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/analytics/test_analytics.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/clients/BRAPClient.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/clients/BalanceClient.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/clients/ClientManager.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/clients/HyperlendClient.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/clients/LedgerClient.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/clients/PoolClient.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/clients/TokenClient.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/clients/WayfinderClient.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/clients/test_ledger_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/constants/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/constants/contracts.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/constants/erc20_abi.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/constants/hyperlend_abi.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/constants/hyperliquid.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/constants/moonwell_abi.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/strategies/Strategy.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/strategies/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/strategies/descriptors.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/strategies/opa_loop.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/core/utils/test_transaction.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/mcp/state/profile_store.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/tests/test_mcp_quote_swap.py
RENAMED
|
File without changes
|
{wayfinder_paths-0.1.27 → wayfinder_paths-0.1.28}/wayfinder_paths/tests/test_test_coverage.py
RENAMED
|
File without changes
|
|
File without changes
|