@rozoai/checkout 0.1.1 → 0.1.2
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.
- package/README.md +115 -11
- package/docs/QUICKSTART.es.md +126 -11
- package/docs/QUICKSTART.ja.md +109 -11
- package/docs/QUICKSTART.md +120 -10
- package/docs/QUICKSTART.zh.md +98 -10
- package/docs/README.es.md +105 -8
- package/docs/README.ja.md +90 -8
- package/docs/README.zh.md +83 -9
- package/docs/safety.md +7 -3
- package/llms.txt +38 -2
- package/package.json +1 -1
- package/scripts/dist/cli.js +722 -288
- package/scripts/dist/send-evm.js +6695 -6237
- package/scripts/dist/send-sol.js +1727 -634
package/docs/QUICKSTART.zh.md
CHANGED
|
@@ -44,6 +44,16 @@ LINK="https://payments.coinbase.com/payment-links/pl_01YOURLINKID"
|
|
|
44
44
|
链 id:`1` Ethereum · `56` BNB Chain · `137` Polygon · `8453` Base ·
|
|
45
45
|
`900` Solana · `1500` Stellar · `lightning` Bitcoin Lightning。
|
|
46
46
|
|
|
47
|
+
## 我需要什么钱包?
|
|
48
|
+
|
|
49
|
+
**一个钱包、一条链就够了——不需要每条链各准备一个。**挑一种你已经持有的币,然后从它现在所在的地方付款即可。
|
|
50
|
+
|
|
51
|
+
任何钱包都可以,从交易所提币同样可以:下面的 Mode A 只是打印一段充值信息,你按其中给出的 `amount`、`tokenSymbol`、`chain`,把钱发到 `receiverAddress` 即可。全程不需要连接任何网站,也不需要在浏览器里做任何授权。实践中大家在 EVM 链上用 MetaMask 或 Rabby,在 Solana 上用 Phantom 或 Solflare,付 BTC 时用 Phoenix、Wallet of Satoshi 之类的闪电钱包。
|
|
52
|
+
|
|
53
|
+
有两种情况不一样。**Stellar** 走的是共享地址加 `receiverMemo` 的方式,所以你的付款来源必须能填写 memo——漏掉 memo,这笔钱就丢了。**闪电网络**付的是 `deposit.lnInvoice` 里的 BOLT11 invoice,没有可转账的地址。
|
|
54
|
+
|
|
55
|
+
只有 `--send`(Mode B)需要私钥,且仅支持 EVM 链和 Solana:Solana 直接用 `solana-keygen` 已经生成的 `~/.config/solana/id.json`,EVM 用加密的 keystore(口令交互式输入)。环境变量里的原始私钥保留给无人值守的自动化。
|
|
56
|
+
|
|
47
57
|
## 1. 报价(只读,免费)
|
|
48
58
|
|
|
49
59
|
```bash
|
|
@@ -140,21 +150,99 @@ BOLT11 字符串,`deposit.amount` 的单位是聪 (satoshis)。
|
|
|
140
150
|
|
|
141
151
|
### 可选的方式:让脚本替你付(模式 B)
|
|
142
152
|
|
|
143
|
-
|
|
144
|
-
|
|
153
|
+
只有当你想让这台机器替你签名时才需要,而且只支持 EVM 链和 Solana。这是整个流程里
|
|
154
|
+
唯一需要私钥的部分。
|
|
155
|
+
|
|
156
|
+
**Solana —— 直接用你已有的密钥对。** 只要你跑过 `solana-keygen`,
|
|
157
|
+
`~/.config/solana/id.json` 就已经存在,脚本会自动使用它:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
node scripts/dist/send-sol.js --rozo-payment-id <rozoPaymentId> --send
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**EVM —— 用加密的 keystore。** 从你的钱包导出一个 V3 JSON keystore 并指向它。
|
|
164
|
+
口令 (passphrase) 会交互式提示输入,永远不会作为命令行参数传递:
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
ROZO_CHECKOUT_EVM_KEYSTORE=~/wallets/hot.json \
|
|
168
|
+
node scripts/dist/send-evm.js --rozo-payment-id <rozoPaymentId> --send
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
两种文件也都可以用 `--keyfile <path>` 显式指定;`--dry-run` 对所有来源都有效:
|
|
172
|
+
它会推导出地址并跑完所有检查,但不签任何名。
|
|
173
|
+
|
|
174
|
+
**用于无人值守的自动化**(没有人能输入口令的场景),环境变量里的原始私钥依然照旧
|
|
175
|
+
可用 —— `ROZO_CHECKOUT_SOL_KEY` 或 `ROZO_CHECKOUT_EVM_KEY`,或者配合 keystore 使用
|
|
176
|
+
`ROZO_CHECKOUT_KEYSTORE_PASSPHRASE`。在有人使用的机器上,优先用密钥文件。
|
|
177
|
+
|
|
178
|
+
这些设置也可以放在你运行命令所在目录的 `.env` 里(或者用 `--env-file <path>` 指定)。
|
|
179
|
+
其中只有 `ROZO_CHECKOUT_*` 开头的键会被读取,文件按纯文本解析、绝不交给 shell 执行,
|
|
180
|
+
而且真实环境变量优先级更高。**记得把 `.env` 加进 `.gitignore`。**
|
|
181
|
+
|
|
182
|
+
密钥文件和 `.env` 都不能被其他用户读取(`chmod 600`),也不能被 git 跟踪。这两种情况都会被
|
|
183
|
+
直接拒绝,而不是只给个警告。
|
|
184
|
+
|
|
185
|
+
<details>
|
|
186
|
+
<summary><b>为 <code>--send</code> 配置本地钱包</b> —— .env 模板与各钱包导出步骤</summary>
|
|
187
|
+
|
|
188
|
+
**默认路径不需要这里的任何东西。** 用你自己的钱包付款既不需要私钥也不需要任何配置,
|
|
189
|
+
而且支持那些在这里根本用不了的钱包 —— 包括硬件钱包和交易所账户。
|
|
190
|
+
|
|
191
|
+
在你运行命令的目录放一个 `.env`,下面列出了本工具会读取的全部变量:
|
|
145
192
|
|
|
146
193
|
```bash
|
|
147
|
-
#
|
|
148
|
-
|
|
149
|
-
|
|
194
|
+
# 用你自己的钱包付款不需要下面任何一项。它们只在你使用 --send 时才被读取。
|
|
195
|
+
|
|
196
|
+
# Solana 私钥:base58 字符串,或 JSON 字节数组。只有在你没有
|
|
197
|
+
# ~/.config/solana/id.json(它会被自动识别)时才需要填。
|
|
198
|
+
ROZO_CHECKOUT_SOL_KEY=REPLACE_ME_base58_secret_key
|
|
199
|
+
|
|
200
|
+
# EVM 原始私钥:0x 加 64 位十六进制。这是最不安全的方式 —— 优先用下面的 keystore。
|
|
201
|
+
ROZO_CHECKOUT_EVM_KEY=0x0000000000000000000000000000000000000000000000000000000000000000
|
|
150
202
|
|
|
151
|
-
#
|
|
152
|
-
|
|
153
|
-
|
|
203
|
+
# EVM 加密 V3 keystore:文件路径。比上面的原始私钥更推荐。
|
|
204
|
+
ROZO_CHECKOUT_EVM_KEYSTORE=/replace/me/keystores/my-hot-wallet
|
|
205
|
+
|
|
206
|
+
# 该 keystore 的口令。只在无人值守时需要;在终端上会交互式提示,且不会被保存。
|
|
207
|
+
ROZO_CHECKOUT_KEYSTORE_PASSPHRASE=REPLACE_ME_not_a_real_passphrase
|
|
208
|
+
|
|
209
|
+
# 可选的 RPC 覆盖,按链 id 一条。8453 = Base,900 = Solana。
|
|
210
|
+
ROZO_CHECKOUT_RPC_8453=https://mainnet.base.org
|
|
211
|
+
ROZO_CHECKOUT_RPC_900=https://api.mainnet-beta.solana.com
|
|
154
212
|
```
|
|
155
213
|
|
|
156
|
-
|
|
157
|
-
|
|
214
|
+
然后锁好权限,并确保它不进 git:
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
chmod 600 .env
|
|
218
|
+
echo '.env' >> .gitignore
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
**Solana**
|
|
222
|
+
|
|
223
|
+
- `solana-keygen new` 会写出 `~/.config/solana/id.json`。什么都不用配 —— 它会被自动
|
|
224
|
+
找到。这是我们推荐的方式。
|
|
225
|
+
- **Phantom** → Settings → Export Private Key 给出的是 **base58** 字符串,填进
|
|
226
|
+
`ROZO_CHECKOUT_SOL_KEY`。
|
|
227
|
+
- **Solflare** 新版本导出 base58 字符串,旧版本导出 JSON 字节数组。两种都可以直接用。
|
|
228
|
+
|
|
229
|
+
**EVM**
|
|
230
|
+
|
|
231
|
+
- **MetaMask** 和 **Rabby** → 导出私钥给出的是 64 位十六进制字符串。直接原样粘贴到
|
|
232
|
+
`ROZO_CHECKOUT_EVM_KEY` 即可;`0x` 前缀加不加都行。
|
|
233
|
+
- **加密 keystore(更安全)。** 浏览器钱包只能导出原始私钥,不能导出 keystore。
|
|
234
|
+
想把私钥变成加密 keystore,可以用 Foundry:`cast wallet import my-hot-wallet
|
|
235
|
+
--interactive` 会提示你输入私钥,并把加密的 V3 keystore 写到
|
|
236
|
+
`~/.foundry/keystores/my-hot-wallet`(用 `--keystore-dir` 可改目录)。然后把
|
|
237
|
+
`ROZO_CHECKOUT_EVM_KEYSTORE` 指向该文件。`geth account import` 同样会生成 V3 keystore。
|
|
238
|
+
|
|
239
|
+
**不能用于 `--send` 的钱包:** 硬件钱包(Ledger、Trezor)、只支持 WalletConnect 的
|
|
240
|
+
手机钱包,以及交易所账户。它们在设计上就不会交出签名私钥。这类用户请走默认的无私钥
|
|
241
|
+
路径 —— 那条路对它们全都适用。
|
|
242
|
+
|
|
243
|
+
</details>
|
|
244
|
+
|
|
245
|
+
单笔付款不得超过 **$1,100**;超过就按上面的方式用你自己的钱包付。
|
|
158
246
|
|
|
159
247
|
```json
|
|
160
248
|
{
|
package/docs/README.es.md
CHANGED
|
@@ -39,6 +39,27 @@ npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
|
39
39
|
|
|
40
40
|
Las monedas de gas nativas (SOL, BNB, ETH, MATIC) y el BTC on-chain no se aceptan.
|
|
41
41
|
|
|
42
|
+
## ¿Qué wallet necesito?
|
|
43
|
+
|
|
44
|
+
**Una wallet, en una cadena: no hace falta una por cada cadena.** Elige de la
|
|
45
|
+
tabla de arriba la moneda que ya tengas y paga desde donde ya esté.
|
|
46
|
+
|
|
47
|
+
- **Sirve cualquier wallet, y también un retiro desde un exchange.** La vía por
|
|
48
|
+
defecto solo imprime un bloque de depósito: envía exactamente ese `amount` de
|
|
49
|
+
ese `tokenSymbol`, en esa `chain`, a esa `receiverAddress`. Nada se conecta a
|
|
50
|
+
ningún sitio ni se aprueba en el navegador. En la práctica la gente usa
|
|
51
|
+
MetaMask o Rabby en las cadenas EVM, Phantom o Solflare en Solana, y una
|
|
52
|
+
wallet Lightning como Phoenix o Wallet of Satoshi para BTC.
|
|
53
|
+
- **Stellar es la que exige cuidado.** Sus depósitos se enrutan mediante una
|
|
54
|
+
dirección compartida más `receiverMemo`, así que aquello desde lo que envíes
|
|
55
|
+
— exchange o wallet — debe permitirte fijar un memo. Si lo omites, el pago se
|
|
56
|
+
pierde.
|
|
57
|
+
- **Lightning paga una factura, no una dirección.** Escanea o pega
|
|
58
|
+
`deposit.lnInvoice`; no hay ninguna dirección a la que enviar.
|
|
59
|
+
- **Solo `--send` necesita una clave privada**, leída de
|
|
60
|
+
`ROZO_CHECKOUT_EVM_KEY` o `ROZO_CHECKOUT_SOL_KEY`, y cubre únicamente las
|
|
61
|
+
cadenas EVM y Solana. Todo lo demás no usa claves.
|
|
62
|
+
|
|
42
63
|
## Usarlo desde el agente
|
|
43
64
|
|
|
44
65
|
La carga útil es la misma en todas partes: el comando de una línea de arriba, o
|
|
@@ -82,7 +103,7 @@ Para pagar un enlace de pago de OpenRouter / Coinbase, ejecuta:
|
|
|
82
103
|
npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
83
104
|
```
|
|
84
105
|
|
|
85
|
-
Billetera: cualquier billetera, **sin clave**. `--send`
|
|
106
|
+
Billetera: cualquier billetera, **sin clave**. Solo `--send` la necesita: firma localmente con el par de claves de la CLI de Solana o un keystore cifrado.
|
|
86
107
|
</details>
|
|
87
108
|
|
|
88
109
|
<details>
|
|
@@ -96,7 +117,7 @@ propio comando:
|
|
|
96
117
|
npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
97
118
|
```
|
|
98
119
|
|
|
99
|
-
Billetera: cualquier billetera, **sin clave**. `--send`
|
|
120
|
+
Billetera: cualquier billetera, **sin clave**. Solo `--send` la necesita: firma localmente con el par de claves de la CLI de Solana o un keystore cifrado.
|
|
100
121
|
</details>
|
|
101
122
|
|
|
102
123
|
<details>
|
|
@@ -109,7 +130,7 @@ Para pagar un enlace de pago de OpenRouter / Coinbase, ejecuta:
|
|
|
109
130
|
npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
110
131
|
```
|
|
111
132
|
|
|
112
|
-
Billetera: cualquier billetera, **sin clave**. `--send`
|
|
133
|
+
Billetera: cualquier billetera, **sin clave**. Solo `--send` la necesita: firma localmente con el par de claves de la CLI de Solana o un keystore cifrado.
|
|
113
134
|
</details>
|
|
114
135
|
|
|
115
136
|
<details>
|
|
@@ -122,7 +143,7 @@ Para pagar un enlace de pago de OpenRouter / Coinbase, ejecuta:
|
|
|
122
143
|
npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
123
144
|
```
|
|
124
145
|
|
|
125
|
-
Billetera: cualquier billetera, **sin clave**. `--send`
|
|
146
|
+
Billetera: cualquier billetera, **sin clave**. Solo `--send` la necesita: firma localmente con el par de claves de la CLI de Solana o un keystore cifrado.
|
|
126
147
|
</details>
|
|
127
148
|
|
|
128
149
|
<details>
|
|
@@ -136,7 +157,7 @@ Descarga https://checkout.rozo.ai/llms.txt y luego paga este enlace de OpenRoute
|
|
|
136
157
|
npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
137
158
|
```
|
|
138
159
|
|
|
139
|
-
Billetera: cualquier billetera, **sin clave**. `--send`
|
|
160
|
+
Billetera: cualquier billetera, **sin clave**. Solo `--send` la necesita: firma localmente con el par de claves de la CLI de Solana o un keystore cifrado.
|
|
140
161
|
</details>
|
|
141
162
|
|
|
142
163
|
<details>
|
|
@@ -149,7 +170,7 @@ con un pago que se dispara desde un script o desde un canal de chat:
|
|
|
149
170
|
openclaw agent exec "Pay this OpenRouter link with USDT on Solana by running: npx @rozoai/checkout pay <coinbase-link> --with usdt-solana"
|
|
150
171
|
```
|
|
151
172
|
|
|
152
|
-
Billetera: cualquier billetera, **sin clave**. `--send`
|
|
173
|
+
Billetera: cualquier billetera, **sin clave**. Solo `--send` la necesita: firma localmente con el par de claves de la CLI de Solana o un keystore cifrado.
|
|
153
174
|
</details>
|
|
154
175
|
|
|
155
176
|
<details>
|
|
@@ -163,7 +184,7 @@ Paga este enlace de OpenRouter con USDT en Solana ejecutando:
|
|
|
163
184
|
npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
164
185
|
```
|
|
165
186
|
|
|
166
|
-
Billetera: cualquier billetera, **sin clave**. `--send`
|
|
187
|
+
Billetera: cualquier billetera, **sin clave**. Solo `--send` la necesita: firma localmente con el par de claves de la CLI de Solana o un keystore cifrado.
|
|
167
188
|
</details>
|
|
168
189
|
|
|
169
190
|
<details>
|
|
@@ -212,7 +233,76 @@ para pagar este enlace de OpenRouter: <coinbase-link>
|
|
|
212
233
|
Si el agente no tiene shell pero puede hacer peticiones HTTP, puede manejar
|
|
213
234
|
directamente los cuatro endpoints públicos — ver [cómo funciona](how-it-works.md).
|
|
214
235
|
|
|
215
|
-
Billetera: cualquier billetera, **sin clave**. `--send`
|
|
236
|
+
Billetera: cualquier billetera, **sin clave**. Solo `--send` la necesita: firma localmente con el par de claves de la CLI de Solana o un keystore cifrado.
|
|
237
|
+
</details>
|
|
238
|
+
|
|
239
|
+
<details>
|
|
240
|
+
<summary><b>Configurar una billetera local para <code>--send</code></b> — plantilla .env y pasos de exportación por billetera</summary>
|
|
241
|
+
|
|
242
|
+
**Nada de esto hace falta para la ruta por defecto.** Pagar desde la propia
|
|
243
|
+
billetera no necesita clave ni configuración, y funciona con billeteras que aquí
|
|
244
|
+
nunca se pueden usar, incluidas las de hardware y las cuentas de exchange.
|
|
245
|
+
|
|
246
|
+
Un `.env` en el directorio desde el que se ejecuta, con todas las variables que
|
|
247
|
+
esta herramienta lee:
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
# Nada de esto hace falta para pagar desde la propia billetera. Solo se lee
|
|
251
|
+
# cuando se usa --send.
|
|
252
|
+
|
|
253
|
+
# Clave secreta de Solana: una cadena base58 o un arreglo JSON de bytes. Solo
|
|
254
|
+
# hace falta si NO se tiene ~/.config/solana/id.json, que se detecta solo.
|
|
255
|
+
ROZO_CHECKOUT_SOL_KEY=REPLACE_ME_base58_secret_key
|
|
256
|
+
|
|
257
|
+
# Clave privada EVM en bruto: 0x seguido de 64 caracteres hex. La opción menos
|
|
258
|
+
# segura: es preferible el keystore de abajo.
|
|
259
|
+
ROZO_CHECKOUT_EVM_KEY=0x0000000000000000000000000000000000000000000000000000000000000000
|
|
260
|
+
|
|
261
|
+
# Keystore V3 cifrado para EVM: ruta al archivo. Preferible a la clave en bruto.
|
|
262
|
+
ROZO_CHECKOUT_EVM_KEYSTORE=/replace/me/keystores/my-hot-wallet
|
|
263
|
+
|
|
264
|
+
# Frase de contraseña de ese keystore. Solo para ejecuciones desatendidas; en
|
|
265
|
+
# una terminal se solicita y no se guarda nada.
|
|
266
|
+
ROZO_CHECKOUT_KEYSTORE_PASSPHRASE=REPLACE_ME_not_a_real_passphrase
|
|
267
|
+
|
|
268
|
+
# Sobrescrituras de RPC opcionales, una por id de cadena. 8453 = Base,
|
|
269
|
+
# 900 = Solana.
|
|
270
|
+
ROZO_CHECKOUT_RPC_8453=https://mainnet.base.org
|
|
271
|
+
ROZO_CHECKOUT_RPC_900=https://api.mainnet-beta.solana.com
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
Después, restringir permisos y mantenerlo fuera de git:
|
|
275
|
+
|
|
276
|
+
```bash
|
|
277
|
+
chmod 600 .env
|
|
278
|
+
echo '.env' >> .gitignore
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
**Solana**
|
|
282
|
+
|
|
283
|
+
- `solana-keygen new` escribe `~/.config/solana/id.json`. No hay nada que
|
|
284
|
+
configurar: se encuentra automáticamente. Es la ruta recomendada.
|
|
285
|
+
- **Phantom** → Settings → Export Private Key da una cadena **base58**. Va en
|
|
286
|
+
`ROZO_CHECKOUT_SOL_KEY`.
|
|
287
|
+
- **Solflare** exporta una cadena base58 en las versiones actuales y un arreglo
|
|
288
|
+
JSON de bytes en las antiguas. Ambos se aceptan tal cual.
|
|
289
|
+
|
|
290
|
+
**EVM**
|
|
291
|
+
|
|
292
|
+
- **MetaMask** y **Rabby** exportan la clave privada como 64 caracteres hex.
|
|
293
|
+
Pegarla tal cual en `ROZO_CHECKOUT_EVM_KEY`; el prefijo `0x` es opcional.
|
|
294
|
+
- **Keystore cifrado (más seguro).** Las billeteras de navegador exportan claves
|
|
295
|
+
en bruto, no keystores. Para convertir una en un keystore cifrado, usar
|
|
296
|
+
Foundry: `cast wallet import my-hot-wallet --interactive` pide la clave y
|
|
297
|
+
escribe un keystore V3 cifrado en `~/.foundry/keystores/my-hot-wallet`
|
|
298
|
+
(`--keystore-dir` cambia la ubicación). Apuntar `ROZO_CHECKOUT_EVM_KEYSTORE` a
|
|
299
|
+
ese archivo. `geth account import` también genera un keystore V3.
|
|
300
|
+
|
|
301
|
+
**Billeteras que no se pueden usar con `--send`:** billeteras de hardware
|
|
302
|
+
(Ledger, Trezor), billeteras móviles solo con WalletConnect y cuentas de
|
|
303
|
+
exchange. Por diseño, ninguna entrega una clave de firma. Esos casos usan la
|
|
304
|
+
ruta por defecto sin clave, que funciona con todas ellas.
|
|
305
|
+
|
|
216
306
|
</details>
|
|
217
307
|
|
|
218
308
|
## Tres reglas que conviene conocer
|
|
@@ -239,6 +329,13 @@ La lista completa de lo que esta herramienta se niega a hacer, y por qué, está
|
|
|
239
329
|
|
|
240
330
|
## Registro de cambios
|
|
241
331
|
|
|
332
|
+
- **0.1.2** — El Modo B ya no necesita una clave privada en bruto en una variable
|
|
333
|
+
de entorno. En Solana usa el `~/.config/solana/id.json` que `solana-keygen` ya
|
|
334
|
+
creó; en EVM un keystore V3 cifrado cuya frase de contraseña se solicita.
|
|
335
|
+
`--keyfile` indica cualquiera de los dos explícitamente, y los ajustes pueden
|
|
336
|
+
venir de un `.env` incluido en `.gitignore`. Las claves en bruto del entorno
|
|
337
|
+
siguen funcionando para automatización desatendida. Los archivos de claves y
|
|
338
|
+
el `.env` deben ser `chmod 600` y no estar bajo seguimiento de git.
|
|
242
339
|
- **0.1.1** — un solo límite de gasto en lugar de dos: un pago individual no
|
|
243
340
|
puede superar los $1,100 (dimensionado para una compra de crédito de $1,000
|
|
244
341
|
más su comisión del 5%); se eliminan el tope acumulado por sesión y la bandera
|
package/docs/README.ja.md
CHANGED
|
@@ -38,6 +38,15 @@ npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
|
38
38
|
|
|
39
39
|
ネイティブのガス通貨(SOL、BNB、ETH、MATIC)およびオンチェーンの BTC は受け付けません。
|
|
40
40
|
|
|
41
|
+
## どのウォレットが必要ですか?
|
|
42
|
+
|
|
43
|
+
**ウォレットは 1 つ、チェーンも 1 つで足ります — チェーンごとに用意する必要はありません。**上の表から、すでに持っている通貨を選び、それが今ある場所から支払ってください。
|
|
44
|
+
|
|
45
|
+
- **どのウォレットでも構いませんし、取引所からの出金でも構いません。**既定の経路は入金情報を表示するだけです。示された `amount` の `tokenSymbol` を、その `chain` 上で `receiverAddress` へ送るだけです。どのサイトに接続することも、ブラウザで承認することもありません。実際には、EVM チェーンでは MetaMask や Rabby、Solana では Phantom や Solflare、BTC では Phoenix や Wallet of Satoshi といった Lightning ウォレットがよく使われています。
|
|
46
|
+
- **注意が必要なのは Stellar です。**Stellar の入金は共有アドレスと `receiverMemo` の組み合わせで振り分けられるため、取引所であれウォレットであれ、送信元で memo を設定できる必要があります。memo を省くと、その支払いは失われます。
|
|
47
|
+
- **Lightning はアドレスではなくインボイスに支払います。**`deposit.lnInvoice` をスキャンまたは貼り付けてください。送金先アドレスというものはありません。
|
|
48
|
+
- **秘密鍵が必要なのは `--send` だけ**で、`ROZO_CHECKOUT_EVM_KEY` または `ROZO_CHECKOUT_SOL_KEY` から読み込まれ、対象は EVM チェーンと Solana のみです。それ以外はすべて鍵不要です。
|
|
49
|
+
|
|
41
50
|
## エージェントから使う
|
|
42
51
|
|
|
43
52
|
渡す内容はどこでも同じです。上のワンライナーそのものか、エージェントに
|
|
@@ -80,7 +89,7 @@ OpenRouter / Coinbase の決済リンクを支払うには、次を実行して
|
|
|
80
89
|
npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
81
90
|
```
|
|
82
91
|
|
|
83
|
-
ウォレット: どのウォレットでも構いません。**鍵は不要です。** `--send`
|
|
92
|
+
ウォレット: どのウォレットでも構いません。**鍵は不要です。** Solana CLI の鍵ペアまたは暗号化された keystore を使う `--send` の場合だけ
|
|
84
93
|
環境変数の鍵が必要です。
|
|
85
94
|
</details>
|
|
86
95
|
|
|
@@ -94,7 +103,7 @@ OpenCode もプロジェクトルートの `AGENTS.md` を読むため、上の
|
|
|
94
103
|
npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
95
104
|
```
|
|
96
105
|
|
|
97
|
-
ウォレット: どのウォレットでも構いません。**鍵は不要です。** `--send`
|
|
106
|
+
ウォレット: どのウォレットでも構いません。**鍵は不要です。** Solana CLI の鍵ペアまたは暗号化された keystore を使う `--send` の場合だけ
|
|
98
107
|
環境変数の鍵が必要です。
|
|
99
108
|
</details>
|
|
100
109
|
|
|
@@ -108,7 +117,7 @@ OpenRouter / Coinbase の決済リンクを支払うには、次を実行して
|
|
|
108
117
|
npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
109
118
|
```
|
|
110
119
|
|
|
111
|
-
ウォレット: どのウォレットでも構いません。**鍵は不要です。** `--send`
|
|
120
|
+
ウォレット: どのウォレットでも構いません。**鍵は不要です。** Solana CLI の鍵ペアまたは暗号化された keystore を使う `--send` の場合だけ
|
|
112
121
|
環境変数の鍵が必要です。
|
|
113
122
|
</details>
|
|
114
123
|
|
|
@@ -122,7 +131,7 @@ OpenRouter / Coinbase の決済リンクを支払うには、次を実行して
|
|
|
122
131
|
npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
123
132
|
```
|
|
124
133
|
|
|
125
|
-
ウォレット: どのウォレットでも構いません。**鍵は不要です。** `--send`
|
|
134
|
+
ウォレット: どのウォレットでも構いません。**鍵は不要です。** Solana CLI の鍵ペアまたは暗号化された keystore を使う `--send` の場合だけ
|
|
126
135
|
環境変数の鍵が必要です。
|
|
127
136
|
</details>
|
|
128
137
|
|
|
@@ -137,7 +146,7 @@ https://checkout.rozo.ai/llms.txt を取得したうえで、この OpenRouter
|
|
|
137
146
|
npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
138
147
|
```
|
|
139
148
|
|
|
140
|
-
ウォレット: どのウォレットでも構いません。**鍵は不要です。** `--send`
|
|
149
|
+
ウォレット: どのウォレットでも構いません。**鍵は不要です。** Solana CLI の鍵ペアまたは暗号化された keystore を使う `--send` の場合だけ
|
|
141
150
|
環境変数の鍵が必要です。
|
|
142
151
|
</details>
|
|
143
152
|
|
|
@@ -151,7 +160,7 @@ OpenClaw のヘッドレス入口は単発のタスクを実行するため、
|
|
|
151
160
|
openclaw agent exec "Pay this OpenRouter link with USDT on Solana by running: npx @rozoai/checkout pay <coinbase-link> --with usdt-solana"
|
|
152
161
|
```
|
|
153
162
|
|
|
154
|
-
ウォレット: どのウォレットでも構いません。**鍵は不要です。** `--send`
|
|
163
|
+
ウォレット: どのウォレットでも構いません。**鍵は不要です。** Solana CLI の鍵ペアまたは暗号化された keystore を使う `--send` の場合だけ
|
|
155
164
|
環境変数の鍵が必要です。
|
|
156
165
|
</details>
|
|
157
166
|
|
|
@@ -166,7 +175,7 @@ Pi は BYOK のターミナルエージェントで、組み込みツールに `
|
|
|
166
175
|
npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
167
176
|
```
|
|
168
177
|
|
|
169
|
-
ウォレット: どのウォレットでも構いません。**鍵は不要です。** `--send`
|
|
178
|
+
ウォレット: どのウォレットでも構いません。**鍵は不要です。** Solana CLI の鍵ペアまたは暗号化された keystore を使う `--send` の場合だけ
|
|
170
179
|
環境変数の鍵が必要です。
|
|
171
180
|
</details>
|
|
172
181
|
|
|
@@ -216,10 +225,77 @@ https://checkout.rozo.ai/llms.txt を自分のコンテキストに読み込み
|
|
|
216
225
|
シェルを持たないエージェントでも、HTTP リクエストが可能なら 4 つの公開エンドポイントを
|
|
217
226
|
直接操作できます — [仕組み](how-it-works.md) を参照してください。
|
|
218
227
|
|
|
219
|
-
ウォレット: どのウォレットでも構いません。**鍵は不要です。** `--send`
|
|
228
|
+
ウォレット: どのウォレットでも構いません。**鍵は不要です。** Solana CLI の鍵ペアまたは暗号化された keystore を使う `--send` の場合だけ
|
|
220
229
|
環境変数の鍵が必要です。
|
|
221
230
|
</details>
|
|
222
231
|
|
|
232
|
+
<details>
|
|
233
|
+
<summary><b><code>--send</code> 用のローカルウォレット設定</b> — .env テンプレートとウォレット別の書き出し手順</summary>
|
|
234
|
+
|
|
235
|
+
**既定の経路ではここに書かれたものは一切不要です。** 自分のウォレットから支払う場合、
|
|
236
|
+
鍵も設定も要りません。しかもここでは決して使えないウォレット — ハードウェアウォレットや
|
|
237
|
+
取引所アカウントを含む — でも支払えます。
|
|
238
|
+
|
|
239
|
+
コマンドを実行するディレクトリに `.env` を置きます。本ツールが読み取る変数の全一覧です:
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
# 自分のウォレットから支払う場合、以下はどれも不要です。--send を使うときだけ
|
|
243
|
+
# 読み込まれます。
|
|
244
|
+
|
|
245
|
+
# Solana の秘密鍵: base58 文字列、または JSON のバイト配列。
|
|
246
|
+
# ~/.config/solana/id.json (自動的に使われます) が無い場合にのみ必要です。
|
|
247
|
+
ROZO_CHECKOUT_SOL_KEY=REPLACE_ME_base58_secret_key
|
|
248
|
+
|
|
249
|
+
# EVM の生の秘密鍵: 0x + 16 進 64 文字。最も安全でない選択肢です。
|
|
250
|
+
# 下の keystore を優先してください。
|
|
251
|
+
ROZO_CHECKOUT_EVM_KEY=0x0000000000000000000000000000000000000000000000000000000000000000
|
|
252
|
+
|
|
253
|
+
# EVM の暗号化 V3 keystore: そのファイルへのパス。上の生の鍵より推奨されます。
|
|
254
|
+
ROZO_CHECKOUT_EVM_KEYSTORE=/replace/me/keystores/my-hot-wallet
|
|
255
|
+
|
|
256
|
+
# その keystore のパスフレーズ。無人実行のときだけ必要で、端末では対話的に
|
|
257
|
+
# 尋ねられ、保存もされません。
|
|
258
|
+
ROZO_CHECKOUT_KEYSTORE_PASSPHRASE=REPLACE_ME_not_a_real_passphrase
|
|
259
|
+
|
|
260
|
+
# 任意の RPC 上書き。チェーン id ごとに 1 行。8453 = Base、900 = Solana。
|
|
261
|
+
ROZO_CHECKOUT_RPC_8453=https://mainnet.base.org
|
|
262
|
+
ROZO_CHECKOUT_RPC_900=https://api.mainnet-beta.solana.com
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
そのうえで権限を絞り、git に入らないようにします:
|
|
266
|
+
|
|
267
|
+
```bash
|
|
268
|
+
chmod 600 .env
|
|
269
|
+
echo '.env' >> .gitignore
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
**Solana**
|
|
273
|
+
|
|
274
|
+
- `solana-keygen new` は `~/.config/solana/id.json` を書き出します。設定は不要で、
|
|
275
|
+
自動的に見つかります。これが推奨の経路です。
|
|
276
|
+
- **Phantom** → Settings → Export Private Key で得られるのは **base58** 文字列です。
|
|
277
|
+
`ROZO_CHECKOUT_SOL_KEY` に設定してください。
|
|
278
|
+
- **Solflare** は現行バージョンでは base58 文字列、古いバージョンでは JSON のバイト配列を
|
|
279
|
+
書き出します。どちらもそのまま使えます。
|
|
280
|
+
|
|
281
|
+
**EVM**
|
|
282
|
+
|
|
283
|
+
- **MetaMask** と **Rabby** の秘密鍵の書き出しは 16 進 64 文字です。そのまま
|
|
284
|
+
`ROZO_CHECKOUT_EVM_KEY` に貼り付けてください。`0x` 接頭辞は付けても付けなくても
|
|
285
|
+
構いません。
|
|
286
|
+
- **暗号化 keystore (より安全)。** ブラウザーウォレットが書き出せるのは生の鍵だけで、
|
|
287
|
+
keystore ではありません。生の鍵を暗号化 keystore に変えるには Foundry を使います:
|
|
288
|
+
`cast wallet import my-hot-wallet --interactive` が鍵の入力を促し、暗号化された
|
|
289
|
+
V3 keystore を `~/.foundry/keystores/my-hot-wallet` に書き出します
|
|
290
|
+
(`--keystore-dir` で場所を変更できます)。`ROZO_CHECKOUT_EVM_KEYSTORE` をその
|
|
291
|
+
ファイルに向けてください。`geth account import` も V3 keystore を生成します。
|
|
292
|
+
|
|
293
|
+
**`--send` に使えないウォレット:** ハードウェアウォレット (Ledger、Trezor)、
|
|
294
|
+
WalletConnect 専用のモバイルウォレット、取引所アカウント。いずれも設計上、署名鍵を
|
|
295
|
+
渡しません。これらの場合は既定の鍵なしの経路を使ってください — すべてで動作します。
|
|
296
|
+
|
|
297
|
+
</details>
|
|
298
|
+
|
|
223
299
|
## 知っておく価値のある 3 つのルール
|
|
224
300
|
|
|
225
301
|
- **入金アドレスは使い捨てです。** 古い注文、キャッシュされたレスポンス、スクリーンショット
|
|
@@ -244,6 +320,12 @@ https://checkout.rozo.ai/llms.txt を自分のコンテキストに読み込み
|
|
|
244
320
|
|
|
245
321
|
## 変更履歴
|
|
246
322
|
|
|
323
|
+
- **0.1.2** — モード B で環境変数に生の秘密鍵を置く必要がなくなりました。Solana では
|
|
324
|
+
`solana-keygen` が既に作成した `~/.config/solana/id.json` を、EVM では暗号化された
|
|
325
|
+
V3 keystore(パスフレーズは対話的に入力)を使います。`--keyfile` でどちらも明示でき、
|
|
326
|
+
設定は gitignore した `.env` に置くこともできます。環境変数の生の鍵は無人自動化向けに
|
|
327
|
+
引き続き利用できます。鍵ファイルと `.env` は `chmod 600` かつ git 未追跡である必要が
|
|
328
|
+
あります。
|
|
247
329
|
- **0.1.1** — 支出上限を 2 つから 1 つに変更しました。1 回の支払いは $1,100 を超えられず
|
|
248
330
|
($1,000 のクレジット購入とその 5% の手数料に合わせた値です)、セッション累計の上限と
|
|
249
331
|
`--yes-large` による上書きは削除されました。自分のウォレットから支払う場合は鍵も設定も
|
package/docs/README.zh.md
CHANGED
|
@@ -35,6 +35,15 @@ npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
|
35
35
|
|
|
36
36
|
原生 gas 币(SOL、BNB、ETH、MATIC)以及链上 BTC 均不接受。
|
|
37
37
|
|
|
38
|
+
## 我需要什么钱包?
|
|
39
|
+
|
|
40
|
+
**一个钱包、一条链就够了——不需要每条链各准备一个。**从上面挑一种你已经持有的币,然后从它现在所在的地方付款即可。
|
|
41
|
+
|
|
42
|
+
- **任何钱包都可以,从交易所提币同样可以。**默认路径只是打印一段充值信息:按其中给出的 `amount`、`tokenSymbol`、`chain`,把钱发到 `receiverAddress` 即可。全程不需要连接任何网站,也不需要在浏览器里做任何授权。实践中大家在 EVM 链上用 MetaMask 或 Rabby,在 Solana 上用 Phantom 或 Solflare,付 BTC 时用 Phoenix、Wallet of Satoshi 之类的闪电钱包。
|
|
43
|
+
- **Stellar 是需要特别小心的那一条。**它的充值走的是共享地址加 `receiverMemo` 的方式,所以无论你从交易所还是钱包发出,都必须能填写 memo。漏掉 memo,这笔钱就丢了。
|
|
44
|
+
- **闪电网络付的是一张 invoice,不是地址。**扫描或粘贴 `deposit.lnInvoice` 即可,这条路径上没有可转账的地址。
|
|
45
|
+
- **只有 `--send` 需要私钥**,从 `ROZO_CHECKOUT_EVM_KEY` 或 `ROZO_CHECKOUT_SOL_KEY` 读取,且仅支持 EVM 链和 Solana。其余方式都不涉及私钥。
|
|
46
|
+
|
|
38
47
|
## 在你的 agent 里使用
|
|
39
48
|
|
|
40
49
|
不管用哪个 agent,喂给它的东西都一样:上面那条命令,或者直接让它读
|
|
@@ -59,7 +68,7 @@ git clone https://github.com/RozoAI/rozo-checkout-skill ~/.claude/skills/rozo-ch
|
|
|
59
68
|
npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
60
69
|
```
|
|
61
70
|
|
|
62
|
-
钱包:任意钱包,**无需私钥**。只有当你想让 Claude 用热钱包签名时才加 `--send
|
|
71
|
+
钱包:任意钱包,**无需私钥**。只有当你想让 Claude 用热钱包签名时才加 `--send`(用你的 Solana CLI 密钥对或加密 keystore),
|
|
63
72
|
那一步才需要环境变量里的私钥。
|
|
64
73
|
</details>
|
|
65
74
|
|
|
@@ -73,7 +82,7 @@ Codex 会读取项目根目录的 `AGENTS.md`。加一条常驻指令,它就
|
|
|
73
82
|
npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
74
83
|
```
|
|
75
84
|
|
|
76
|
-
|
|
85
|
+
钱包:任意钱包,**无需私钥**。只有 `--send` 需要,它用你的 Solana CLI 密钥对或加密 keystore 在本地签名。
|
|
77
86
|
</details>
|
|
78
87
|
|
|
79
88
|
<details>
|
|
@@ -86,7 +95,7 @@ OpenCode 同样读取项目根目录的 `AGENTS.md`,所以上面那段 Codex
|
|
|
86
95
|
npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
87
96
|
```
|
|
88
97
|
|
|
89
|
-
|
|
98
|
+
钱包:任意钱包,**无需私钥**。只有 `--send` 需要,它用你的 Solana CLI 密钥对或加密 keystore 在本地签名。
|
|
90
99
|
</details>
|
|
91
100
|
|
|
92
101
|
<details>
|
|
@@ -99,7 +108,7 @@ Cline 从项目根目录的 `.clinerules` 读取常驻指令:
|
|
|
99
108
|
npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
100
109
|
```
|
|
101
110
|
|
|
102
|
-
|
|
111
|
+
钱包:任意钱包,**无需私钥**。只有 `--send` 需要,它用你的 Solana CLI 密钥对或加密 keystore 在本地签名。
|
|
103
112
|
</details>
|
|
104
113
|
|
|
105
114
|
<details>
|
|
@@ -112,7 +121,7 @@ npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
|
112
121
|
npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
113
122
|
```
|
|
114
123
|
|
|
115
|
-
|
|
124
|
+
钱包:任意钱包,**无需私钥**。只有 `--send` 需要,它用你的 Solana CLI 密钥对或加密 keystore 在本地签名。
|
|
116
125
|
</details>
|
|
117
126
|
|
|
118
127
|
<details>
|
|
@@ -126,7 +135,7 @@ Hermes Agent(Nous Research)有 shell 权限,也有自己的 skill 体系
|
|
|
126
135
|
npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
127
136
|
```
|
|
128
137
|
|
|
129
|
-
|
|
138
|
+
钱包:任意钱包,**无需私钥**。只有 `--send` 需要,它用你的 Solana CLI 密钥对或加密 keystore 在本地签名。
|
|
130
139
|
</details>
|
|
131
140
|
|
|
132
141
|
<details>
|
|
@@ -138,7 +147,7 @@ OpenClaw 的无头入口用来跑一次性任务,很适合从脚本或聊天
|
|
|
138
147
|
openclaw agent exec "Pay this OpenRouter link with USDT on Solana by running: npx @rozoai/checkout pay <coinbase-link> --with usdt-solana"
|
|
139
148
|
```
|
|
140
149
|
|
|
141
|
-
|
|
150
|
+
钱包:任意钱包,**无需私钥**。只有 `--send` 需要,它用你的 Solana CLI 密钥对或加密 keystore 在本地签名。
|
|
142
151
|
</details>
|
|
143
152
|
|
|
144
153
|
<details>
|
|
@@ -152,7 +161,7 @@ Pi 是一个 BYOK 终端 agent,内置工具里就有 `bash`,可以直接执
|
|
|
152
161
|
npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
153
162
|
```
|
|
154
163
|
|
|
155
|
-
|
|
164
|
+
钱包:任意钱包,**无需私钥**。只有 `--send` 需要,它用你的 Solana CLI 密钥对或加密 keystore 在本地签名。
|
|
156
165
|
</details>
|
|
157
166
|
|
|
158
167
|
<details>
|
|
@@ -199,7 +208,67 @@ node scripts/dist/status.js --rozo-payment-id <uuid> --watch
|
|
|
199
208
|
如果 agent 没有 shell 但能发 HTTP 请求,它可以直接调用那四个公开端点 —— 见
|
|
200
209
|
[工作原理](how-it-works.md)。
|
|
201
210
|
|
|
202
|
-
|
|
211
|
+
钱包:任意钱包,**无需私钥**。只有 `--send` 需要,它用你的 Solana CLI 密钥对或加密 keystore 在本地签名。
|
|
212
|
+
</details>
|
|
213
|
+
|
|
214
|
+
<details>
|
|
215
|
+
<summary><b>为 <code>--send</code> 配置本地钱包</b> —— .env 模板与各钱包导出步骤</summary>
|
|
216
|
+
|
|
217
|
+
**默认路径不需要这里的任何东西。** 用你自己的钱包付款既不需要私钥也不需要任何配置,
|
|
218
|
+
而且支持那些在这里根本用不了的钱包 —— 包括硬件钱包和交易所账户。
|
|
219
|
+
|
|
220
|
+
在你运行命令的目录放一个 `.env`,下面列出了本工具会读取的全部变量:
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
# 用你自己的钱包付款不需要下面任何一项。它们只在你使用 --send 时才被读取。
|
|
224
|
+
|
|
225
|
+
# Solana 私钥:base58 字符串,或 JSON 字节数组。只有在你没有
|
|
226
|
+
# ~/.config/solana/id.json(它会被自动识别)时才需要填。
|
|
227
|
+
ROZO_CHECKOUT_SOL_KEY=REPLACE_ME_base58_secret_key
|
|
228
|
+
|
|
229
|
+
# EVM 原始私钥:0x 加 64 位十六进制。这是最不安全的方式 —— 优先用下面的 keystore。
|
|
230
|
+
ROZO_CHECKOUT_EVM_KEY=0x0000000000000000000000000000000000000000000000000000000000000000
|
|
231
|
+
|
|
232
|
+
# EVM 加密 V3 keystore:文件路径。比上面的原始私钥更推荐。
|
|
233
|
+
ROZO_CHECKOUT_EVM_KEYSTORE=/replace/me/keystores/my-hot-wallet
|
|
234
|
+
|
|
235
|
+
# 该 keystore 的口令。只在无人值守时需要;在终端上会交互式提示,且不会被保存。
|
|
236
|
+
ROZO_CHECKOUT_KEYSTORE_PASSPHRASE=REPLACE_ME_not_a_real_passphrase
|
|
237
|
+
|
|
238
|
+
# 可选的 RPC 覆盖,按链 id 一条。8453 = Base,900 = Solana。
|
|
239
|
+
ROZO_CHECKOUT_RPC_8453=https://mainnet.base.org
|
|
240
|
+
ROZO_CHECKOUT_RPC_900=https://api.mainnet-beta.solana.com
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
然后锁好权限,并确保它不进 git:
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
chmod 600 .env
|
|
247
|
+
echo '.env' >> .gitignore
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
**Solana**
|
|
251
|
+
|
|
252
|
+
- `solana-keygen new` 会写出 `~/.config/solana/id.json`。什么都不用配 —— 它会被自动
|
|
253
|
+
找到。这是我们推荐的方式。
|
|
254
|
+
- **Phantom** → Settings → Export Private Key 给出的是 **base58** 字符串,填进
|
|
255
|
+
`ROZO_CHECKOUT_SOL_KEY`。
|
|
256
|
+
- **Solflare** 新版本导出 base58 字符串,旧版本导出 JSON 字节数组。两种都可以直接用。
|
|
257
|
+
|
|
258
|
+
**EVM**
|
|
259
|
+
|
|
260
|
+
- **MetaMask** 和 **Rabby** → 导出私钥给出的是 64 位十六进制字符串。直接原样粘贴到
|
|
261
|
+
`ROZO_CHECKOUT_EVM_KEY` 即可;`0x` 前缀加不加都行。
|
|
262
|
+
- **加密 keystore(更安全)。** 浏览器钱包只能导出原始私钥,不能导出 keystore。
|
|
263
|
+
想把私钥变成加密 keystore,可以用 Foundry:`cast wallet import my-hot-wallet
|
|
264
|
+
--interactive` 会提示你输入私钥,并把加密的 V3 keystore 写到
|
|
265
|
+
`~/.foundry/keystores/my-hot-wallet`(用 `--keystore-dir` 可改目录)。然后把
|
|
266
|
+
`ROZO_CHECKOUT_EVM_KEYSTORE` 指向该文件。`geth account import` 同样会生成 V3 keystore。
|
|
267
|
+
|
|
268
|
+
**不能用于 `--send` 的钱包:** 硬件钱包(Ledger、Trezor)、只支持 WalletConnect 的
|
|
269
|
+
手机钱包,以及交易所账户。它们在设计上就不会交出签名私钥。这类用户请走默认的无私钥
|
|
270
|
+
路径 —— 那条路对它们全都适用。
|
|
271
|
+
|
|
203
272
|
</details>
|
|
204
273
|
|
|
205
274
|
## 三条必须知道的规则
|
|
@@ -223,6 +292,11 @@ node scripts/dist/status.js --rozo-payment-id <uuid> --watch
|
|
|
223
292
|
|
|
224
293
|
## 更新日志
|
|
225
294
|
|
|
295
|
+
- **0.1.2** —— 模式 B 不再需要把原始私钥放进环境变量。Solana 直接用 `solana-keygen`
|
|
296
|
+
已经写好的 `~/.config/solana/id.json`;EVM 用加密的 V3 keystore,口令交互式提示输入。
|
|
297
|
+
`--keyfile` 可以显式指定其中任一种,相关设置也可以放进已 gitignore 的 `.env`。
|
|
298
|
+
环境变量里的原始私钥仍然可用于无人值守的自动化。密钥文件和 `.env` 必须
|
|
299
|
+
`chmod 600` 且不被 git 跟踪。
|
|
226
300
|
- **0.1.1** —— 两条额度上限合并为一条:单笔付款不得超过 $1,100(按购买 $1,000
|
|
227
301
|
额度加 5% 手续费来设定),单会话累计上限与 `--yes-large` 绕过开关均已移除。文档
|
|
228
302
|
明确说明:用你自己的钱包付款不需要私钥,也不需要任何配置。
|