1m-trade 0.3.0__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.
1m_trade-0.3.0/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
@@ -0,0 +1,11 @@
1
+ include README.md
2
+ include LICENSE
3
+ include pyproject.toml
4
+
5
+ recursive-include src *.py
6
+ global-exclude *.pyc
7
+ recursive-exclude **/__pycache__ *
8
+
9
+ # 避免把临时的脚本目录打进包里(此仓库当前代码已迁移到 src/)。
10
+ recursive-exclude scripts *
11
+
@@ -0,0 +1,82 @@
1
+ Metadata-Version: 2.4
2
+ Name: 1m-trade
3
+ Version: 0.3.0
4
+ Summary: Hyperliquid trading and query CLI (HIP-3 supported)
5
+ License: MIT
6
+ Keywords: hyperliquid,trading,dex,cli
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: Programming Language :: Python :: 3 :: Only
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Requires-Python: >=3.10
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE
14
+ Requires-Dist: hyperliquid-python-sdk
15
+ Requires-Dist: websockets<12.0,>=11.0
16
+ Requires-Dist: python-dotenv
17
+ Requires-Dist: cryptography>=42.0.0
18
+ Requires-Dist: eth-account
19
+ Requires-Dist: requests
20
+ Requires-Dist: msgpack
21
+ Requires-Dist: web3
22
+ Requires-Dist: eth-abi
23
+ Requires-Dist: eth-utils
24
+ Dynamic: license-file
25
+
26
+ # 1m-trade
27
+
28
+ Hyperliquid trading and query CLI (HIP-3 supported).
29
+
30
+ ## Install
31
+
32
+ ```bash
33
+ pip install 1m-trade
34
+ ```
35
+
36
+ ## Usage
37
+
38
+ The CLI command is `hl1m`.
39
+
40
+ It loads environment variables from:
41
+
42
+ 1. `OPENCLAW_STATE_DIR` (if set)
43
+ 2. `OPENCLAW_HOME/.openclaw/.1m-trade/.env`
44
+ 3. `~/.openclaw/.1m-trade/.env`
45
+
46
+ ### Query examples
47
+
48
+ ```bash
49
+ hl1m query-user-state
50
+ hl1m query-open-orders
51
+ hl1m query-meta
52
+ hl1m query-kline --coin BTC --period 1m --start 1700000000000 --end 1700003600000
53
+ ```
54
+
55
+ ### Trading examples
56
+
57
+ > 需要设置私钥环境变量(例如 `HYPERLIQUID_PRIVATE_KEY`,或 `HYPERLIQUID_PRIVATE_KEY_ENC` + `HYPERLIQUID_PK_ENC_PASSWORD`)。
58
+
59
+ ```bash
60
+ hl1m place-order --coin BTC --is-buy true --qty 0.01 --limit-px 60000 --tif Gtc
61
+ hl1m market-order --coin BTC --is-buy true --qty 0.01 --slippage 0.02
62
+ hl1m cancel-order --coin BTC
63
+ hl1m update-leverage --coin BTC --leverage 5 --is-cross true
64
+ hl1m market-close --coin BTC --qty 0.01 --slippage 0.02
65
+ ```
66
+
67
+ ### Wallet examples
68
+
69
+ ```bash
70
+ hl1m create-wallet
71
+ hl1m init-wallet --pri_key 0xYourPrivateKey
72
+ hl1m init-wallet --address 0xYourPublicAddress --pri_key 0xYourPrivateKey
73
+ hl1m init_wallet --address 0xYourPublicAddress --pri_key 0xYourPrivateKey
74
+ hl1m send-private-key --target openclaw_target
75
+ hl1m start-listener
76
+ hl1m register-wallet 0xYourDepositAddress
77
+ ```
78
+
79
+ ## License
80
+
81
+ MIT
82
+
@@ -0,0 +1,57 @@
1
+ # 1m-trade
2
+
3
+ Hyperliquid trading and query CLI (HIP-3 supported).
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ pip install 1m-trade
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ The CLI command is `hl1m`.
14
+
15
+ It loads environment variables from:
16
+
17
+ 1. `OPENCLAW_STATE_DIR` (if set)
18
+ 2. `OPENCLAW_HOME/.openclaw/.1m-trade/.env`
19
+ 3. `~/.openclaw/.1m-trade/.env`
20
+
21
+ ### Query examples
22
+
23
+ ```bash
24
+ hl1m query-user-state
25
+ hl1m query-open-orders
26
+ hl1m query-meta
27
+ hl1m query-kline --coin BTC --period 1m --start 1700000000000 --end 1700003600000
28
+ ```
29
+
30
+ ### Trading examples
31
+
32
+ > 需要设置私钥环境变量(例如 `HYPERLIQUID_PRIVATE_KEY`,或 `HYPERLIQUID_PRIVATE_KEY_ENC` + `HYPERLIQUID_PK_ENC_PASSWORD`)。
33
+
34
+ ```bash
35
+ hl1m place-order --coin BTC --is-buy true --qty 0.01 --limit-px 60000 --tif Gtc
36
+ hl1m market-order --coin BTC --is-buy true --qty 0.01 --slippage 0.02
37
+ hl1m cancel-order --coin BTC
38
+ hl1m update-leverage --coin BTC --leverage 5 --is-cross true
39
+ hl1m market-close --coin BTC --qty 0.01 --slippage 0.02
40
+ ```
41
+
42
+ ### Wallet examples
43
+
44
+ ```bash
45
+ hl1m create-wallet
46
+ hl1m init-wallet --pri_key 0xYourPrivateKey
47
+ hl1m init-wallet --address 0xYourPublicAddress --pri_key 0xYourPrivateKey
48
+ hl1m init_wallet --address 0xYourPublicAddress --pri_key 0xYourPrivateKey
49
+ hl1m send-private-key --target openclaw_target
50
+ hl1m start-listener
51
+ hl1m register-wallet 0xYourDepositAddress
52
+ ```
53
+
54
+ ## License
55
+
56
+ MIT
57
+
@@ -0,0 +1,41 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "1m-trade"
7
+ version = "0.3.0"
8
+ description = "Hyperliquid trading and query CLI (HIP-3 supported)"
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ license = { text = "MIT" }
12
+ keywords = ["hyperliquid", "trading", "dex", "cli"]
13
+ classifiers = [
14
+ "Programming Language :: Python :: 3",
15
+ "Programming Language :: Python :: 3 :: Only",
16
+ "License :: OSI Approved :: MIT License",
17
+ "Operating System :: OS Independent",
18
+ ]
19
+ dependencies = [
20
+ "hyperliquid-python-sdk",
21
+ "websockets>=11.0,<12.0",
22
+ "python-dotenv",
23
+ "cryptography>=42.0.0",
24
+ "eth-account",
25
+ "requests",
26
+ "msgpack",
27
+ "web3",
28
+ "eth-abi",
29
+ "eth-utils",
30
+ ]
31
+
32
+ [project.scripts]
33
+ "hl1m" = "hl1m_cli.cli:main"
34
+
35
+ [tool.setuptools]
36
+ package-dir = {"" = "src"}
37
+
38
+ [tool.setuptools.packages.find]
39
+ where = ["src"]
40
+ include = ["hl1m_cli*"]
41
+
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,82 @@
1
+ Metadata-Version: 2.4
2
+ Name: 1m-trade
3
+ Version: 0.3.0
4
+ Summary: Hyperliquid trading and query CLI (HIP-3 supported)
5
+ License: MIT
6
+ Keywords: hyperliquid,trading,dex,cli
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: Programming Language :: Python :: 3 :: Only
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Requires-Python: >=3.10
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE
14
+ Requires-Dist: hyperliquid-python-sdk
15
+ Requires-Dist: websockets<12.0,>=11.0
16
+ Requires-Dist: python-dotenv
17
+ Requires-Dist: cryptography>=42.0.0
18
+ Requires-Dist: eth-account
19
+ Requires-Dist: requests
20
+ Requires-Dist: msgpack
21
+ Requires-Dist: web3
22
+ Requires-Dist: eth-abi
23
+ Requires-Dist: eth-utils
24
+ Dynamic: license-file
25
+
26
+ # 1m-trade
27
+
28
+ Hyperliquid trading and query CLI (HIP-3 supported).
29
+
30
+ ## Install
31
+
32
+ ```bash
33
+ pip install 1m-trade
34
+ ```
35
+
36
+ ## Usage
37
+
38
+ The CLI command is `hl1m`.
39
+
40
+ It loads environment variables from:
41
+
42
+ 1. `OPENCLAW_STATE_DIR` (if set)
43
+ 2. `OPENCLAW_HOME/.openclaw/.1m-trade/.env`
44
+ 3. `~/.openclaw/.1m-trade/.env`
45
+
46
+ ### Query examples
47
+
48
+ ```bash
49
+ hl1m query-user-state
50
+ hl1m query-open-orders
51
+ hl1m query-meta
52
+ hl1m query-kline --coin BTC --period 1m --start 1700000000000 --end 1700003600000
53
+ ```
54
+
55
+ ### Trading examples
56
+
57
+ > 需要设置私钥环境变量(例如 `HYPERLIQUID_PRIVATE_KEY`,或 `HYPERLIQUID_PRIVATE_KEY_ENC` + `HYPERLIQUID_PK_ENC_PASSWORD`)。
58
+
59
+ ```bash
60
+ hl1m place-order --coin BTC --is-buy true --qty 0.01 --limit-px 60000 --tif Gtc
61
+ hl1m market-order --coin BTC --is-buy true --qty 0.01 --slippage 0.02
62
+ hl1m cancel-order --coin BTC
63
+ hl1m update-leverage --coin BTC --leverage 5 --is-cross true
64
+ hl1m market-close --coin BTC --qty 0.01 --slippage 0.02
65
+ ```
66
+
67
+ ### Wallet examples
68
+
69
+ ```bash
70
+ hl1m create-wallet
71
+ hl1m init-wallet --pri_key 0xYourPrivateKey
72
+ hl1m init-wallet --address 0xYourPublicAddress --pri_key 0xYourPrivateKey
73
+ hl1m init_wallet --address 0xYourPublicAddress --pri_key 0xYourPrivateKey
74
+ hl1m send-private-key --target openclaw_target
75
+ hl1m start-listener
76
+ hl1m register-wallet 0xYourDepositAddress
77
+ ```
78
+
79
+ ## License
80
+
81
+ MIT
82
+
@@ -0,0 +1,18 @@
1
+ LICENSE
2
+ MANIFEST.in
3
+ README.md
4
+ pyproject.toml
5
+ src/1m_trade.egg-info/PKG-INFO
6
+ src/1m_trade.egg-info/SOURCES.txt
7
+ src/1m_trade.egg-info/dependency_links.txt
8
+ src/1m_trade.egg-info/entry_points.txt
9
+ src/1m_trade.egg-info/requires.txt
10
+ src/1m_trade.egg-info/top_level.txt
11
+ src/hl1m_cli/__init__.py
12
+ src/hl1m_cli/__main__.py
13
+ src/hl1m_cli/cli.py
14
+ src/hl1m_cli/constants.py
15
+ src/hl1m_cli/exchange.py
16
+ src/hl1m_cli/info.py
17
+ src/hl1m_cli/secrets.py
18
+ src/hl1m_cli/wallet.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ hl1m = hl1m_cli.cli:main
@@ -0,0 +1,10 @@
1
+ hyperliquid-python-sdk
2
+ websockets<12.0,>=11.0
3
+ python-dotenv
4
+ cryptography>=42.0.0
5
+ eth-account
6
+ requests
7
+ msgpack
8
+ web3
9
+ eth-abi
10
+ eth-utils
@@ -0,0 +1 @@
1
+ hl1m_cli
@@ -0,0 +1,10 @@
1
+ """
2
+ Hyperliquid trading and query helpers.
3
+
4
+ This package exposes a CLI entry point via `hl1m`.
5
+ """
6
+
7
+ from .cli import main
8
+
9
+ __all__ = ["main"]
10
+
@@ -0,0 +1,6 @@
1
+ from .cli import main
2
+
3
+
4
+ if __name__ == "__main__":
5
+ main()
6
+
@@ -0,0 +1,210 @@
1
+ import argparse
2
+ import time
3
+ import json
4
+ from pathlib import Path
5
+ import os
6
+
7
+ from dotenv import load_dotenv
8
+
9
+ from .info import query_info
10
+ from .exchange import exchange_order
11
+ from .wallet import create_wallet, init_wallet, register_wallet, send_private_key_to_target, start_listener
12
+ from .secrets import get_env_path, init_env_file
13
+
14
+ def load_env(override: bool = False) -> bool:
15
+ """
16
+ Load the OpenClaw state `.env` file (path来自 `secrets.get_env_path()`).
17
+ """
18
+
19
+ # Ensure state directory + .env exists (create empty file if needed).
20
+ init_env_file()
21
+ env_path = get_env_path()
22
+
23
+ # Load via python-dotenv (supports override/interpolation)
24
+ success = load_dotenv(env_path, override=override)
25
+
26
+ if success:
27
+ print(f"Loaded OpenClaw env: {env_path}")
28
+ else:
29
+ print(f"Failed to load or empty: {env_path}")
30
+
31
+ return success
32
+
33
+
34
+ def str2bool(v):
35
+ if isinstance(v, bool):
36
+ return v
37
+ if v.lower() in ("yes", "true", "t", "1"):
38
+ return True
39
+ elif v.lower() in ("no", "false", "f", "0"):
40
+ return False
41
+ else:
42
+ raise argparse.ArgumentTypeError("Boolean value expected.")
43
+
44
+
45
+ def main():
46
+ parser = argparse.ArgumentParser(description="Hyperliquid SDK full-feature CLI (HIP-3 supported)")
47
+ parser.add_argument("--testnet", action="store_true", help="Use testnet")
48
+
49
+ subparsers = parser.add_subparsers(dest="command", required=True)
50
+
51
+ # ==================== query cli params====================
52
+ subparsers.add_parser("query-user-state", help="Query user state (positions + balances)").add_argument(
53
+ "--address", help="Optional address (derived from private key by default)"
54
+ )
55
+ subparsers.add_parser("query-open-orders", help="Query open orders")
56
+ subparsers.add_parser("query-fills", help="Query fills / trade history")
57
+ subparsers.add_parser("query-meta", help="Query asset metadata (all symbols)")
58
+ subparsers.add_parser("query-mids", help="Query mid prices (all symbols)")
59
+
60
+ # define K line params
61
+ query_kline = subparsers.add_parser("query-kline", help="Query kline/candles for a symbol")
62
+ query_kline.add_argument("--coin", required=True, help="Symbol, e.g. BTC or xyz:TSLA")
63
+ query_kline.add_argument(
64
+ "--period",
65
+ required=True,
66
+ help="Kline period: 1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 8h, 12h, 1d, 3d, 1w, 1M",
67
+ )
68
+ # default start and end
69
+ end = int(time.time() * 1000)
70
+ start = end - 86400000
71
+ query_kline.add_argument("--start", default=start, type=int, help="Start time (ms). Default: last 24 hours")
72
+ query_kline.add_argument("--end", type=int, default=end, help="End time (ms). Default: now")
73
+
74
+ # ==================== trade cli params ====================
75
+ order_parser = subparsers.add_parser("place-order", help="Place a limit order (HIP-3 supported)")
76
+ order_parser.add_argument("--coin", required=True, help="Symbol, e.g. BTC or xyz:TSLA")
77
+ order_parser.add_argument("--is-buy", type=str2bool, required=True, help="True=buy (long), False=sell (short)")
78
+ order_parser.add_argument("--qty", type=float, required=True, help="Size/quantity")
79
+ order_parser.add_argument("--limit-px", type=float, required=True, help="Limit price")
80
+ order_parser.add_argument("--tif", choices=["Gtc", "Ioc", "Alo"], default="Gtc", help="Time in force")
81
+ order_parser.add_argument("--reduce-only", action="store_true", help="Reduce-only")
82
+
83
+ market_parser = subparsers.add_parser("market-order", help="Place a market order (recommended for HIP-3)")
84
+ market_parser.add_argument("--coin", required=True, help="Symbol, e.g. BTC or xyz:TSLA")
85
+ market_parser.add_argument("--is-buy", type=str2bool, required=True, help="True=buy (long), False=sell (short)")
86
+ market_parser.add_argument("--qty", required=True, type=float, help="Size/quantity")
87
+ market_parser.add_argument("--slippage", type=float, default=0.02, help="Slippage tolerance (default: 2%)")
88
+
89
+ market_close_parser = subparsers.add_parser("market-close", help="Close a position with a market order (recommended for HIP-3)")
90
+ market_close_parser.add_argument("--coin", required=True, help="Symbol, e.g. BTC or xyz:TSLA")
91
+ market_close_parser.add_argument("--qty", required=True, type=float, help="Size/quantity")
92
+ market_close_parser.add_argument("--slippage", type=float, default=0.02, help="Slippage tolerance (default: 2%)")
93
+
94
+ cancel_parser = subparsers.add_parser("cancel-order", help="Cancel orders")
95
+ cancel_parser.add_argument("--oid", type=int, help="Order ID")
96
+ cancel_parser.add_argument("--coin", help="Symbol, e.g. BTC or xyz:TSLA")
97
+
98
+ lev_parser = subparsers.add_parser("update-leverage", help="Update leverage")
99
+ lev_parser.add_argument("--coin", required=True, help="Symbol")
100
+ lev_parser.add_argument("--leverage", type=int, required=True, help="Leverage (integer)")
101
+ lev_parser.add_argument("--is-cross", type=str2bool, default=True, help="True=cross margin")
102
+
103
+ iso_margin_parser = subparsers.add_parser("update-isolated-margin", help="Transfer isolated margin for HIP-3")
104
+ iso_margin_parser.add_argument("--amount", type=int, required=True, help="Transfer amount")
105
+ iso_margin_parser.add_argument("--coin", required=True, help="Symbol, e.g. BTC or xyz:TSLA")
106
+
107
+ # ==================== wallet cli params ====================
108
+ create_wallet_parser = subparsers.add_parser("create-wallet", help="Create funding wallet (encrypt + persist)")
109
+ create_wallet_parser.add_argument("openclaw_target", nargs="?", help="Optional OpenClaw user id (Stage 3: send private key)")
110
+ create_wallet_parser.add_argument(
111
+ "--lang",
112
+ choices=["zh", "en"],
113
+ default="en",
114
+ help="Language for Stage 3 private-key message (zh/en)",
115
+ )
116
+
117
+ init_wallet_parser = subparsers.add_parser("init-wallet", help="Init wallet with user-provided address + private key")
118
+ init_wallet_parser.add_argument("--address", required=False, help="Optional wallet public address (0x...). If omitted, derive from --pri_key")
119
+ init_wallet_parser.add_argument("--pri_key", required=True, help="Wallet private key (0x...)")
120
+
121
+ # Backward/compat alias (underscore version)
122
+ init_wallet_alias_parser = subparsers.add_parser("init_wallet", help="Alias of init-wallet")
123
+ init_wallet_alias_parser.add_argument("--address", required=False, help="Optional wallet public address (0x...). If omitted, derive from --pri_key")
124
+ init_wallet_alias_parser.add_argument("--pri_key", required=True, help="Wallet private key (0x...)")
125
+
126
+ send_pk_parser = subparsers.add_parser("send-private-key", help="Send private key via OpenClaw message (Stage 3)")
127
+ send_pk_parser.add_argument("--target", required=True, help="OpenClaw user id / target")
128
+ send_pk_parser.add_argument(
129
+ "--lang",
130
+ choices=["zh", "en"],
131
+ default="en",
132
+ help="Language for the private-key message (zh/en)",
133
+ )
134
+
135
+ subparsers.add_parser("start-listener", help="Bridge ALL USDC via Relay and activate Hyperliquid L1")
136
+
137
+ register_wallet_parser = subparsers.add_parser(
138
+ "register-wallet",
139
+ help="Register HYPERLIQUID_WALLET_ADDRESS from .env with api.1m-trade.com",
140
+ )
141
+ register_wallet_parser.add_argument("--quiet", action="store_true", help="Suppress success message")
142
+
143
+ args = parser.parse_args()
144
+ needs_env = args.command not in {"create-wallet", "register-wallet", "init-wallet", "init_wallet"}
145
+ env_loaded = True
146
+ if needs_env:
147
+ env_loaded = load_env()
148
+
149
+ # about query
150
+ if args.command.startswith("query-"):
151
+ if env_loaded is False:
152
+ print("Warning: env file not found (required for querying)")
153
+ return
154
+ result = query_info(parser=parser)
155
+ print(json.dumps(result, indent=2, default=str))
156
+ return
157
+
158
+ # about trade
159
+ if args.command in [
160
+ "place-order",
161
+ "market-order",
162
+ "cancel-order",
163
+ "update-leverage",
164
+ "market-close",
165
+ "update-isolated-margin",
166
+ ]:
167
+ if env_loaded is False:
168
+ print("Warning: env file not found (required for trading)")
169
+ return
170
+ result = exchange_order(parser)
171
+ print(json.dumps(result, indent=2, default=str))
172
+ return
173
+
174
+ # about wallet
175
+ if args.command in {"init-wallet", "init_wallet"}:
176
+ ok_addr = init_wallet(args.address, args.pri_key)
177
+ if ok_addr is None:
178
+ raise SystemExit(1)
179
+ return
180
+
181
+ if args.command == "create-wallet":
182
+ create_wallet(
183
+ openclaw_target=getattr(args, "openclaw_target", None),
184
+ lang=args.lang,
185
+ )
186
+ return
187
+
188
+ if args.command == "send-private-key":
189
+ out = send_private_key_to_target(args.target, lang=args.lang)
190
+ print(json.dumps(out, indent=2, default=str))
191
+ return
192
+
193
+ if args.command == "start-listener":
194
+ if env_loaded is False:
195
+ print("Warning: env file not found (start-listener will likely fail to decrypt private key)")
196
+ ok = start_listener()
197
+ if not ok:
198
+ raise SystemExit(1)
199
+ return
200
+
201
+ if args.command == "register-wallet":
202
+ ok = register_wallet(notice=not bool(getattr(args, "quiet", False)))
203
+ if not ok:
204
+ raise SystemExit(1)
205
+ return
206
+
207
+
208
+ if __name__ == "__main__":
209
+ main()
210
+
@@ -0,0 +1,50 @@
1
+ """
2
+ Package-wide static configuration.
3
+
4
+ Note: keep values inside this package (not inside .venv/.site-packages) so they
5
+ are versioned and included when publishing to PyPI.
6
+ """
7
+
8
+ # Relay lightning funding + auto transfer to HL
9
+ RPC_URL = "https://arb1.arbitrum.io/rpc"
10
+ HL_API_URL = "https://api.hyperliquid.xyz/exchange"
11
+ RELAY_API_URL = "https://api.relay.link/quote/v2"
12
+ REGISTER_1M_TRADE_API = "https://api.1m-trade.com/api/register"
13
+ REGISTER_CONSENT_ENV = "ONE_M_TRADE_REGISTER_CONSENT"
14
+
15
+ # Chain IDs
16
+ ARB_CHAIN_ID = 42161
17
+ HL_CHAIN_ID = 1337
18
+
19
+ # Native token (Arbitrum ETH)
20
+ HL_USDC_ADDRESS = "0x00000000000000000000000000000000"
21
+ NATIVE_TOKEN = "0xaf88d065e77c8cc2239327c5edb3a432268e5831"
22
+
23
+ ERC20_ABI = [
24
+ {
25
+ "type": "function",
26
+ "name": "balanceOf",
27
+ "stateMutability": "view",
28
+ "inputs": [{"name": "account", "type": "address"}],
29
+ "outputs": [{"name": "", "type": "uint256"}],
30
+ },
31
+ {
32
+ "type": "function",
33
+ "name": "decimals",
34
+ "stateMutability": "view",
35
+ "inputs": [],
36
+ "outputs": [{"name": "", "type": "uint8"}],
37
+ },
38
+ ]
39
+
40
+ # Hyperliquid referrer code
41
+ REFERRER_CODE = "HYPERCLAW"
42
+
43
+ # OpenClaw state
44
+ OPENCLAW_STATE_SUBDIR = ".1m-trade"
45
+ OPENCLAW_ENV_FILENAME = ".env"
46
+
47
+ # Encrypted private key env var names (at-rest encryption)
48
+ PRIVATE_KEY_ENC_KEY = "HYPERLIQUID_PRIVATE_KEY_ENC"
49
+ PRIVATE_KEY_ENC_PASSWORD_KEY = "HYPERLIQUID_PK_ENC_PASSWORD"
50
+