@xyo-network/wallet-xl1-cli 0.1.21 → 0.1.22
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 +53 -1
- package/dist/bin/wallet.mjs +5994 -4230
- package/dist/node/signing-types.d.ts +76 -0
- package/dist/node/signing.d.ts +9 -0
- package/dist/node/signing.mjs +169134 -0
- package/package.json +26 -5
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ The Aries CLI uses this same package for `aries wallet ...`, so the standalone a
|
|
|
17
17
|
|
|
18
18
|
### Prerequisites
|
|
19
19
|
|
|
20
|
-
- Node.js `>=
|
|
20
|
+
- Node.js `>=22.19.0`
|
|
21
21
|
- A package manager such as `npm`, `pnpm`, or `yarn`
|
|
22
22
|
|
|
23
23
|
### Global Install
|
|
@@ -59,6 +59,58 @@ aries wallet balance 0
|
|
|
59
59
|
aries wallet send 0x0000000000000000000000000000000000000000 1.25 --milli --json
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
+
## Requester-scoped Node signing
|
|
63
|
+
|
|
64
|
+
The supported `@xyo-network/wallet-xl1-cli/signing` entry exposes public wallet
|
|
65
|
+
summaries and short-lived, account-bound signing sessions. Install the package
|
|
66
|
+
locally with its `@xyo-network/xl1-sdk` peer. Consumers select the requester ID,
|
|
67
|
+
exact wallet ID, derivation offset, expected account, chain ID, and independently
|
|
68
|
+
verified genesis hash. The wallet itself confirms that selection and prompts on
|
|
69
|
+
the trusted terminal for its password; this API does not accept a password,
|
|
70
|
+
mnemonic, root wallet, or caller-provided signer.
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
import { listSigningWallets, openWalletSigningSession } from '@xyo-network/wallet-xl1-cli/signing'
|
|
74
|
+
|
|
75
|
+
const wallets = listSigningWallets()
|
|
76
|
+
const session = await openWalletSigningSession(selection)
|
|
77
|
+
try {
|
|
78
|
+
const snapshot = await session.snapshot()
|
|
79
|
+
const signed = await session.signTransaction({ requestId, transaction })
|
|
80
|
+
// Persist signed bytes in the participant publication journal before broadcasting.
|
|
81
|
+
} finally {
|
|
82
|
+
await session.close()
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Here `selection` is the complete explicit binding and `transaction` is an SDK
|
|
87
|
+
unsigned hydrated transaction. The session signs without publishing bodies or
|
|
88
|
+
broadcasting. It supports secp256k1 wallets; post-quantum transaction signing is
|
|
89
|
+
not qualified. Sessions expire within five minutes. Lock, close, password
|
|
90
|
+
replacement, and wallet replacement revoke authority for new signing.
|
|
91
|
+
|
|
92
|
+
The wallet persists request intent and encrypted signed results in `signing.json`
|
|
93
|
+
under its existing guarded store lease. Retrying the same request returns the
|
|
94
|
+
same bytes. `signingOutcome(requestId)` recovers a retained result through a fresh
|
|
95
|
+
authorized session with the same complete binding. An uncertain intent blocks
|
|
96
|
+
new same-account signing; an error, timeout, or `4001` is never proof that no
|
|
97
|
+
signature exists. Existing CLI `tx sign` and `send` use this same signing ledger,
|
|
98
|
+
with publication remaining a separate command step. Legacy offline signing has
|
|
99
|
+
an explicitly unasserted genesis scope; it cannot authorize public requester
|
|
100
|
+
sessions. This does not reconstruct pre-upgrade or external-key signing history.
|
|
101
|
+
|
|
102
|
+
Run the isolated packed public import, type, real terminal prompt, and process
|
|
103
|
+
recovery fixture from the repository root after both wallet package builds:
|
|
104
|
+
|
|
105
|
+
```sh
|
|
106
|
+
node packages/wallet-cli/scripts/verifySigningPacked.mjs /absolute/fresh/evidence-directory
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
The terminal fixture currently qualifies macOS. It creates only a temporary
|
|
110
|
+
public deterministic wallet. Its strict consumer type check uses `skipLibCheck`;
|
|
111
|
+
the full dependency declaration check is retained separately because upstream SDK
|
|
112
|
+
declarations currently fail that broader check.
|
|
113
|
+
|
|
62
114
|
## Wallet Storage
|
|
63
115
|
|
|
64
116
|
Wallet CLI data is stored under `~/.xl1/wallet/cli` by default.
|