@rozoai/checkout 0.1.6 → 0.1.10
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 +7 -2
- package/docs/QUICKSTART.es.md +2 -0
- package/docs/QUICKSTART.ja.md +2 -0
- package/docs/QUICKSTART.md +2 -0
- package/docs/QUICKSTART.zh.md +2 -0
- package/docs/README.es.md +2 -0
- package/docs/README.ja.md +2 -0
- package/docs/README.zh.md +2 -0
- package/docs/security-audit-notes.md +30 -0
- package/package.json +1 -1
- package/scripts/dist/cli.js +285 -182
- package/scripts/dist/send-evm.js +284 -186
- package/scripts/dist/send-sol.js +287 -189
- package/docs/review-history.md +0 -77
package/README.md
CHANGED
|
@@ -33,7 +33,7 @@ npx @rozoai/checkout pay <coinbase-link> --with usdt-solana
|
|
|
33
33
|
| Base | `usdc-base` | `8453` | 6 decimals |
|
|
34
34
|
| Solana | `usdt-solana` `usdc-solana` | `900` | SPL; native SOL not supported |
|
|
35
35
|
| Stellar | `usdc-stellar` | `1500` | `MEMO_TEXT` memo required — shown in the deposit block |
|
|
36
|
-
| Bitcoin Lightning | `btc-lightning` | `lightning` | BOLT11; amounts in satoshis |
|
|
36
|
+
| Bitcoin Lightning | `btc-lightning` | `lightning` | BOLT11; amounts in satoshis. Any wallet that can pay an invoice works, including Cashu/ecash wallets — the mint melts your ecash into the Lightning payment. |
|
|
37
37
|
|
|
38
38
|
Native gas coins (SOL, BNB, ETH, MATIC) and on-chain BTC are not accepted.
|
|
39
39
|
|
|
@@ -52,7 +52,10 @@ already hold and pay from wherever it already lives.
|
|
|
52
52
|
address plus `receiverMemo`, so whatever you send from — exchange or wallet —
|
|
53
53
|
must let you set a memo. Omit it and the payment is lost.
|
|
54
54
|
- **Lightning pays an invoice, not an address.** Scan or paste
|
|
55
|
-
`deposit.lnInvoice`; there is no address to send to.
|
|
55
|
+
`deposit.lnInvoice`; there is no address to send to. A Cashu/ecash wallet
|
|
56
|
+
works here too — paying the invoice melts the ecash on your behalf, and this
|
|
57
|
+
route settles against ROZO's own Lightning node rather than a third-party
|
|
58
|
+
swap, so no special handling is needed on our side.
|
|
56
59
|
- **Only `--send` needs a private key**, read from `ROZO_CHECKOUT_EVM_KEY` or
|
|
57
60
|
`ROZO_CHECKOUT_SOL_KEY`, and it covers EVM chains and Solana only. Everything
|
|
58
61
|
else is keyless.
|
|
@@ -70,6 +73,8 @@ environment (or a gitignored `.env`) still works for unattended automation.
|
|
|
70
73
|
<details>
|
|
71
74
|
<summary><b>Set up a local wallet for <code>--send</code></b> — .env template and per-wallet export steps</summary>
|
|
72
75
|
|
|
76
|
+
You very likely do not need any of this: the default path needs no key, and for Stellar the `stellar-agent-wallet` skill sends with its own key handling — this `.env` setup is only for unattended EVM/Solana automation with a dedicated low-balance hot wallet.
|
|
77
|
+
|
|
73
78
|
**None of this is needed for the default path.** Paying from your own wallet
|
|
74
79
|
needs no key and no configuration, and works with wallets that can never be
|
|
75
80
|
used here — including hardware wallets and exchange accounts.
|
package/docs/QUICKSTART.es.md
CHANGED
|
@@ -224,6 +224,8 @@ Un archivo de claves o un `.env` no debe ser legible por otros usuarios
|
|
|
224
224
|
<details>
|
|
225
225
|
<summary><b>Configurar una billetera local para <code>--send</code></b> — plantilla .env y pasos de exportación por billetera</summary>
|
|
226
226
|
|
|
227
|
+
Muy probablemente no necesites nada de esto: la ruta por defecto no requiere ninguna clave, y para Stellar la skill `stellar-agent-wallet` envía con su propio manejo de claves — esta configuración `.env` es solo para automatización desatendida en EVM/Solana con una billetera caliente dedicada de saldo bajo.
|
|
228
|
+
|
|
227
229
|
**Nada de esto hace falta para la ruta por defecto.** Pagar desde la propia
|
|
228
230
|
billetera no necesita clave ni configuración, y funciona con billeteras que aquí
|
|
229
231
|
nunca se pueden usar, incluidas las de hardware y las cuentas de exchange.
|
package/docs/QUICKSTART.ja.md
CHANGED
|
@@ -202,6 +202,8 @@ ROZO_CHECKOUT_EVM_KEYSTORE=~/wallets/hot.json \
|
|
|
202
202
|
<details>
|
|
203
203
|
<summary><b><code>--send</code> 用のローカルウォレット設定</b> — .env テンプレートとウォレット別の書き出し手順</summary>
|
|
204
204
|
|
|
205
|
+
おそらくこれらは一切不要です。既定の経路に鍵は不要で、Stellar なら `stellar-agent-wallet` スキルが独自の鍵管理で送金します — この `.env` 設定は、残高を低く抑えた専用ホットウォレットによる EVM/Solana の無人自動化専用です。
|
|
206
|
+
|
|
205
207
|
**既定の経路ではここに書かれたものは一切不要です。** 自分のウォレットから支払う場合、
|
|
206
208
|
鍵も設定も要りません。しかもここでは決して使えないウォレット — ハードウェアウォレットや
|
|
207
209
|
取引所アカウントを含む — でも支払えます。
|
package/docs/QUICKSTART.md
CHANGED
|
@@ -217,6 +217,8 @@ not be tracked by git. Both are refused rather than warned about.
|
|
|
217
217
|
<details>
|
|
218
218
|
<summary><b>Set up a local wallet for <code>--send</code></b> — .env template and per-wallet export steps</summary>
|
|
219
219
|
|
|
220
|
+
You very likely do not need any of this: the default path needs no key, and for Stellar the `stellar-agent-wallet` skill sends with its own key handling — this `.env` setup is only for unattended EVM/Solana automation with a dedicated low-balance hot wallet.
|
|
221
|
+
|
|
220
222
|
**None of this is needed for the default path.** Paying from your own wallet
|
|
221
223
|
needs no key and no configuration, and works with wallets that can never be
|
|
222
224
|
used here — including hardware wallets and exchange accounts.
|
package/docs/QUICKSTART.zh.md
CHANGED
|
@@ -185,6 +185,8 @@ ROZO_CHECKOUT_EVM_KEYSTORE=~/wallets/hot.json \
|
|
|
185
185
|
<details>
|
|
186
186
|
<summary><b>为 <code>--send</code> 配置本地钱包</b> —— .env 模板与各钱包导出步骤</summary>
|
|
187
187
|
|
|
188
|
+
你很可能完全不需要这些:默认路径不需要任何私钥;Stellar 来源可用 `stellar-agent-wallet` skill,它有自己的密钥管理来完成发送 —— 这份 `.env` 配置只用于无人值守的 EVM/Solana 自动化,且应使用余额很低的专用热钱包。
|
|
189
|
+
|
|
188
190
|
**默认路径不需要这里的任何东西。** 用你自己的钱包付款既不需要私钥也不需要任何配置,
|
|
189
191
|
而且支持那些在这里根本用不了的钱包 —— 包括硬件钱包和交易所账户。
|
|
190
192
|
|
package/docs/README.es.md
CHANGED
|
@@ -239,6 +239,8 @@ Billetera: cualquier billetera, **sin clave**. Solo `--send` la necesita: firma
|
|
|
239
239
|
<details>
|
|
240
240
|
<summary><b>Configurar una billetera local para <code>--send</code></b> — plantilla .env y pasos de exportación por billetera</summary>
|
|
241
241
|
|
|
242
|
+
Muy probablemente no necesites nada de esto: la ruta por defecto no requiere ninguna clave, y para Stellar la skill `stellar-agent-wallet` envía con su propio manejo de claves — esta configuración `.env` es solo para automatización desatendida en EVM/Solana con una billetera caliente dedicada de saldo bajo.
|
|
243
|
+
|
|
242
244
|
**Nada de esto hace falta para la ruta por defecto.** Pagar desde la propia
|
|
243
245
|
billetera no necesita clave ni configuración, y funciona con billeteras que aquí
|
|
244
246
|
nunca se pueden usar, incluidas las de hardware y las cuentas de exchange.
|
package/docs/README.ja.md
CHANGED
|
@@ -232,6 +232,8 @@ https://checkout.rozo.ai/llms.txt を自分のコンテキストに読み込み
|
|
|
232
232
|
<details>
|
|
233
233
|
<summary><b><code>--send</code> 用のローカルウォレット設定</b> — .env テンプレートとウォレット別の書き出し手順</summary>
|
|
234
234
|
|
|
235
|
+
おそらくこれらは一切不要です。既定の経路に鍵は不要で、Stellar なら `stellar-agent-wallet` スキルが独自の鍵管理で送金します — この `.env` 設定は、残高を低く抑えた専用ホットウォレットによる EVM/Solana の無人自動化専用です。
|
|
236
|
+
|
|
235
237
|
**既定の経路ではここに書かれたものは一切不要です。** 自分のウォレットから支払う場合、
|
|
236
238
|
鍵も設定も要りません。しかもここでは決して使えないウォレット — ハードウェアウォレットや
|
|
237
239
|
取引所アカウントを含む — でも支払えます。
|
package/docs/README.zh.md
CHANGED
|
@@ -214,6 +214,8 @@ node scripts/dist/status.js --rozo-payment-id <uuid> --watch
|
|
|
214
214
|
<details>
|
|
215
215
|
<summary><b>为 <code>--send</code> 配置本地钱包</b> —— .env 模板与各钱包导出步骤</summary>
|
|
216
216
|
|
|
217
|
+
你很可能完全不需要这些:默认路径不需要任何私钥;Stellar 来源可用 `stellar-agent-wallet` skill,它有自己的密钥管理来完成发送 —— 这份 `.env` 配置只用于无人值守的 EVM/Solana 自动化,且应使用余额很低的专用热钱包。
|
|
218
|
+
|
|
217
219
|
**默认路径不需要这里的任何东西。** 用你自己的钱包付款既不需要私钥也不需要任何配置,
|
|
218
220
|
而且支持那些在这里根本用不了的钱包 —— 包括硬件钱包和交易所账户。
|
|
219
221
|
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Security-audit notes for scanners and reviewers
|
|
2
|
+
|
|
3
|
+
What automated scans flag in this skill, and why each pattern is present.
|
|
4
|
+
|
|
5
|
+
## `env_credential_access` — environment variable read + network send
|
|
6
|
+
|
|
7
|
+
Real and by design, in exactly two places: `send-evm.js` reads
|
|
8
|
+
`ROZO_CHECKOUT_EVM_KEY` (or an encrypted keystore) and `send-sol.js` reads
|
|
9
|
+
`ROZO_CHECKOUT_SOL_KEY`, to sign a transfer the user has already confirmed
|
|
10
|
+
twice (`--confirm` on the order, `--send` on the send). That is the entire
|
|
11
|
+
optional hot-wallet mode ("Mode B" in SKILL.md); the default mode never
|
|
12
|
+
touches a key. Mitigations, all enforced in code, not prose:
|
|
13
|
+
|
|
14
|
+
- keys come from the environment or a named file only — never argv, never
|
|
15
|
+
printed, scrubbed from every output object (`forget()` in `lib/keys.mjs`);
|
|
16
|
+
- a `.env` is only read from the working directory, this tool's own
|
|
17
|
+
`~/.rozo-checkout/.env`, or a path the user names with `--env-file`; a
|
|
18
|
+
generic `~/.env` is never read;
|
|
19
|
+
- sends refuse if any `.env` here is git-tracked, refuse over the $1,100
|
|
20
|
+
per-payment cap, re-verify chain id and token decimals against the RPC, and
|
|
21
|
+
record the send locally before broadcast so the same order cannot pay twice.
|
|
22
|
+
|
|
23
|
+
## `dangerous_exec` — subprocess execution
|
|
24
|
+
|
|
25
|
+
Removed in 0.1.9. Earlier versions shelled out to `git rev-parse` /
|
|
26
|
+
`git ls-files` for one purpose: refusing to use hot-wallet keys from a
|
|
27
|
+
directory whose `.env` is git-tracked. The check now reads `.git/index`
|
|
28
|
+
directly (`lib/keys.mjs`), so the published bundle contains no
|
|
29
|
+
`child_process` usage at all. The fail-closed contract is unchanged — an
|
|
30
|
+
unparseable index refuses rather than assumes.
|
package/package.json
CHANGED