@oneie/sdk 0.15.1 → 0.16.1
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 +1 -0
- package/dist/billing.d.ts +53 -0
- package/dist/billing.d.ts.map +1 -1
- package/dist/billing.js +36 -0
- package/dist/billing.js.map +1 -1
- package/dist/client.d.ts +15 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +19 -0
- package/dist/client.js.map +1 -1
- package/dist/generated/schemas/index.d.ts +7 -7
- package/dist/generated/schemas.d.ts +4 -4
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/media.d.ts +29 -0
- package/dist/media.d.ts.map +1 -0
- package/dist/media.js +127 -0
- package/dist/media.js.map +1 -0
- package/dist/receivers.d.ts +1048 -14
- package/dist/receivers.d.ts.map +1 -1
- package/dist/receivers.js +1755 -39
- package/dist/receivers.js.map +1 -1
- package/dist/schemas.d.ts +2 -2
- package/dist/vault-file.d.ts +81 -0
- package/dist/vault-file.d.ts.map +1 -0
- package/dist/vault-file.js +155 -0
- package/dist/vault-file.js.map +1 -0
- package/dist/wallet.d.ts +55 -5
- package/dist/wallet.d.ts.map +1 -1
- package/dist/wallet.js +116 -9
- package/dist/wallet.js.map +1 -1
- package/dist/work-contract-grammar.json +7 -0
- package/package.json +6 -1
- package/dist/.build-fingerprint +0 -1
package/dist/schemas.d.ts
CHANGED
|
@@ -233,8 +233,8 @@ export declare const AgentDefinitionSchema: z.ZodObject<{
|
|
|
233
233
|
export type AgentDefinition = z.infer<typeof AgentDefinitionSchema>;
|
|
234
234
|
export declare function priceToAccepts(price: number, network?: string, asset?: string): Accept[];
|
|
235
235
|
export declare const StepKind: z.ZodEnum<{
|
|
236
|
-
human: "human";
|
|
237
236
|
agent: "agent";
|
|
237
|
+
human: "human";
|
|
238
238
|
skill: "skill";
|
|
239
239
|
trigger: "trigger";
|
|
240
240
|
tool: "tool";
|
|
@@ -247,8 +247,8 @@ export declare const WorkflowDiffSchema: z.ZodObject<{
|
|
|
247
247
|
add: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
248
248
|
tempId: z.ZodString;
|
|
249
249
|
kind: z.ZodEnum<{
|
|
250
|
-
human: "human";
|
|
251
250
|
agent: "agent";
|
|
251
|
+
human: "human";
|
|
252
252
|
skill: "skill";
|
|
253
253
|
trigger: "trigger";
|
|
254
254
|
tool: "tool";
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/** Sealed envelope. Everything outside `ct` is cleartext and authenticated. */
|
|
2
|
+
export interface VaultBlob {
|
|
3
|
+
/** Format version. Bound as AAD. */
|
|
4
|
+
v: 1;
|
|
5
|
+
/**
|
|
6
|
+
* HOW this copy was sealed, so a reader knows what to ask for before it asks.
|
|
7
|
+
* `passphrase` — a human types it. `keychain` — the passphrase is a random
|
|
8
|
+
* secret held by the OS keystore and released by biometrics.
|
|
9
|
+
*
|
|
10
|
+
* WITHOUT THIS FIELD a keychain-sealed vault is indistinguishable from a
|
|
11
|
+
* passphrase one, and the only way to find out is to prompt for a passphrase
|
|
12
|
+
* that was never set. Bound as AAD so it cannot be flipped to downgrade a
|
|
13
|
+
* biometric vault into one that accepts a typed guess.
|
|
14
|
+
*/
|
|
15
|
+
wrap: 'passphrase' | 'keychain';
|
|
16
|
+
kdf: {
|
|
17
|
+
name: 'argon2id';
|
|
18
|
+
/** Iterations. */
|
|
19
|
+
t: number;
|
|
20
|
+
/** Memory cost in KIBIBYTES — 65536 is 64 MiB. Not bytes, not MiB. */
|
|
21
|
+
m: number;
|
|
22
|
+
/** Parallelism. */
|
|
23
|
+
p: number;
|
|
24
|
+
/** base64url, 16 bytes. */
|
|
25
|
+
salt: string;
|
|
26
|
+
};
|
|
27
|
+
/** base64url, 12 bytes — AES-GCM's required nonce length. */
|
|
28
|
+
iv: string;
|
|
29
|
+
/** base64url ciphertext ‖ tag. */
|
|
30
|
+
ct: string;
|
|
31
|
+
/**
|
|
32
|
+
* The wallet's public identity, CLEARTEXT on purpose: it lets a tool say WHOSE
|
|
33
|
+
* vault this is, and list or match it, without anyone unlocking anything.
|
|
34
|
+
* A public value, never key material.
|
|
35
|
+
*/
|
|
36
|
+
authPub?: string;
|
|
37
|
+
/**
|
|
38
|
+
* WHICH DERIVATION the key inside was minted under (C6).
|
|
39
|
+
* `'v2'` — BIP-39 seed -> SLIP-0010 / BIP-32 at the standard paths, the
|
|
40
|
+
* addresses any wallet finds. ABSENT — `'v1'`, ONE's own HKDF labels, which
|
|
41
|
+
* is what every vault sealed before C6 holds and must keep holding.
|
|
42
|
+
*
|
|
43
|
+
* ABSENT IS NOT `'v1'` WRITTEN DOWN, and the difference is load-bearing: the
|
|
44
|
+
* AAD below appends this field ONLY when it is present, so a pre-C6 envelope
|
|
45
|
+
* authenticates the exact eight values it always did. Writing `'v1'` into an
|
|
46
|
+
* old blob would change its AAD and it would never open again.
|
|
47
|
+
*
|
|
48
|
+
* Bound as AAD when present, for the same reason `wrap` is: an attacker who
|
|
49
|
+
* could flip v2 to v1 would point the holder's recovery at the wrong four
|
|
50
|
+
* addresses and the money would simply not be there.
|
|
51
|
+
*/
|
|
52
|
+
derivation?: 'v1' | 'v2';
|
|
53
|
+
}
|
|
54
|
+
/** RFC 9106's recommended second option, and the security floor for this file. */
|
|
55
|
+
export declare const KDF_DEFAULTS: {
|
|
56
|
+
readonly t: 3;
|
|
57
|
+
readonly m: 65536;
|
|
58
|
+
readonly p: 1;
|
|
59
|
+
};
|
|
60
|
+
export interface SealOpts {
|
|
61
|
+
wrap?: VaultBlob['wrap'];
|
|
62
|
+
authPub?: string;
|
|
63
|
+
/** Override the KDF cost. Lower values are for TESTS ONLY. */
|
|
64
|
+
kdf?: Partial<typeof KDF_DEFAULTS>;
|
|
65
|
+
/** Which derivation the sealed key was minted under. OMIT for a v1 key — the
|
|
66
|
+
* field's absence IS v1, and writing it changes the AAD (see `aad`). The mint
|
|
67
|
+
* site passes `'v2'` explicitly for a new master; nothing defaults it. */
|
|
68
|
+
derivation?: VaultBlob['derivation'];
|
|
69
|
+
}
|
|
70
|
+
/** Seal `secret` (the 24-word mnemonic) under `passphrase`. */
|
|
71
|
+
export declare function sealVault(secret: string, passphrase: string, opts?: SealOpts): Promise<VaultBlob>;
|
|
72
|
+
/**
|
|
73
|
+
* Open a sealed vault. Throws on a wrong passphrase, a tampered header, or an
|
|
74
|
+
* unsupported version — never returns a partial or a guess.
|
|
75
|
+
*/
|
|
76
|
+
export declare function openVault(blob: VaultBlob, passphrase: string): Promise<string>;
|
|
77
|
+
/** True when this blob expects a biometric/keystore secret rather than a typed one. */
|
|
78
|
+
export declare function isKeychainWrapped(blob: VaultBlob): boolean;
|
|
79
|
+
/** A random passphrase for the `keychain` wrap — never shown, never typed. */
|
|
80
|
+
export declare function mintKeychainSecret(): string;
|
|
81
|
+
//# sourceMappingURL=vault-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-file.d.ts","sourceRoot":"","sources":["../src/vault-file.ts"],"names":[],"mappings":"AA+BA,+EAA+E;AAC/E,MAAM,WAAW,SAAS;IACxB,oCAAoC;IACpC,CAAC,EAAE,CAAC,CAAA;IACJ;;;;;;;;;OASG;IACH,IAAI,EAAE,YAAY,GAAG,UAAU,CAAA;IAC/B,GAAG,EAAE;QACH,IAAI,EAAE,UAAU,CAAA;QAChB,kBAAkB;QAClB,CAAC,EAAE,MAAM,CAAA;QACT,sEAAsE;QACtE,CAAC,EAAE,MAAM,CAAA;QACT,mBAAmB;QACnB,CAAC,EAAE,MAAM,CAAA;QACT,2BAA2B;QAC3B,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IACD,6DAA6D;IAC7D,EAAE,EAAE,MAAM,CAAA;IACV,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAA;IACV;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CACzB;AAED,kFAAkF;AAClF,eAAO,MAAM,YAAY;;;;CAAqC,CAAA;AA2D9D,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,8DAA8D;IAC9D,GAAG,CAAC,EAAE,OAAO,CAAC,OAAO,YAAY,CAAC,CAAA;IAClC;;+EAE2E;IAC3E,UAAU,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,CAAA;CACrC;AAED,+DAA+D;AAC/D,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,QAAa,GAClB,OAAO,CAAC,SAAS,CAAC,CA+BpB;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0BpF;AAED,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAE1D;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vault-file.ts — seal a 24-word mnemonic at rest, open it with a passphrase.
|
|
3
|
+
*
|
|
4
|
+
* *** CLIENT-ONLY BY CONSTRUCTION. DO NOT IMPORT THIS FROM A WORKER. ***
|
|
5
|
+
* Argon2id at 64 MiB is the whole point of the file and is larger than a
|
|
6
|
+
* Cloudflare Worker's entire 128 MB isolate — `openVault` there does not run
|
|
7
|
+
* slowly, it OOMs. `packages/sdk` is imported by `one.ie/web` and `channels`,
|
|
8
|
+
* both workerd, so this lives behind its own `@oneie/sdk/vault-file` subpath and
|
|
9
|
+
* nothing server-side may reach for it. Same rule, same reason, as the barrel
|
|
10
|
+
* note at the top of `wallet.ts`.
|
|
11
|
+
*
|
|
12
|
+
* WHY ARGON2id AND NOT HKDF. Everything else in this repo derives from
|
|
13
|
+
* high-entropy input — a passkey PRF output, BIP-39 entropy — where HKDF is
|
|
14
|
+
* exactly right. A passphrase is the opposite: low entropy, guessable, and the
|
|
15
|
+
* attacker has the file. HKDF has NO work factor, so sealing a wallet with it
|
|
16
|
+
* would make an offline dictionary attack as fast as the hash. The work factor
|
|
17
|
+
* IS the security here; the salt only stops one table serving every user.
|
|
18
|
+
*
|
|
19
|
+
* WHY THE PARAMS ARE AUTHENTICATED. `kdf` travels in cleartext so the file can
|
|
20
|
+
* be opened on a machine that has never seen it. That makes it attacker-editable,
|
|
21
|
+
* so it is bound as AEAD associated data: rewrite `t:3` to `t:1` hoping for a
|
|
22
|
+
* cheaper crack and the tag check fails instead of quietly handing back a weaker
|
|
23
|
+
* derivation. The version and `wrap` ride the same AAD for the same reason.
|
|
24
|
+
*
|
|
25
|
+
* WHAT THIS DOES NOT DEFEND. Code running in this process. An encrypted file is
|
|
26
|
+
* worth nothing against a malicious dependency that reads the mnemonic after
|
|
27
|
+
* `openVault` returns it — encryption at rest defends against a stolen disk, not
|
|
28
|
+
* against a hostile neighbour in the same address space.
|
|
29
|
+
*/
|
|
30
|
+
import { argon2id } from '@noble/hashes/argon2.js';
|
|
31
|
+
/** RFC 9106's recommended second option, and the security floor for this file. */
|
|
32
|
+
export const KDF_DEFAULTS = { t: 3, m: 65_536, p: 1 };
|
|
33
|
+
const enc = new TextEncoder();
|
|
34
|
+
const dec = new TextDecoder();
|
|
35
|
+
function b64u(bytes) {
|
|
36
|
+
let s = '';
|
|
37
|
+
for (let i = 0; i < bytes.length; i++)
|
|
38
|
+
s += String.fromCharCode(bytes[i]);
|
|
39
|
+
return btoa(s).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
|
|
40
|
+
}
|
|
41
|
+
function unb64u(s) {
|
|
42
|
+
const b = atob(s.replace(/-/g, '+').replace(/_/g, '/'));
|
|
43
|
+
const out = new Uint8Array(b.length);
|
|
44
|
+
for (let i = 0; i < b.length; i++)
|
|
45
|
+
out[i] = b.charCodeAt(i);
|
|
46
|
+
return out;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The bytes bound as AEAD associated data.
|
|
50
|
+
*
|
|
51
|
+
* Serialised with an EXPLICIT key order rather than `JSON.stringify(header)`:
|
|
52
|
+
* object key order is an implementation detail, and if it ever differed between
|
|
53
|
+
* seal and open every vault would fail to decrypt with a tag error that looks
|
|
54
|
+
* like corruption. Naming the order makes the AAD a stable contract.
|
|
55
|
+
*/
|
|
56
|
+
function aad(blob) {
|
|
57
|
+
const k = blob.kdf;
|
|
58
|
+
// EIGHT elements when `derivation` is absent — byte-identical to the AAD every
|
|
59
|
+
// vault sealed before C6 was authenticated with. A ninth element appears ONLY
|
|
60
|
+
// when the field is present. Appending `derivation ?? ''` unconditionally
|
|
61
|
+
// would have rewritten the AAD of every existing backup on earth and bricked
|
|
62
|
+
// all of them; the accept test opens a blob sealed before this change to prove
|
|
63
|
+
// it did not happen.
|
|
64
|
+
const base = [blob.v, blob.wrap, k.name, k.t, k.m, k.p, k.salt, blob.authPub ?? ''];
|
|
65
|
+
if (blob.derivation !== undefined)
|
|
66
|
+
base.push(blob.derivation);
|
|
67
|
+
return enc.encode(JSON.stringify(base));
|
|
68
|
+
}
|
|
69
|
+
/** A header carrying a derivation we do not implement is refused before any key
|
|
70
|
+
* is derived: we cannot say which addresses that vault holds, and guessing is
|
|
71
|
+
* how a holder is pointed at an empty address and told their money is gone. */
|
|
72
|
+
function assertKnownDerivation(derivation) {
|
|
73
|
+
if (derivation !== undefined && derivation !== 'v1' && derivation !== 'v2') {
|
|
74
|
+
throw new Error(`vault: unknown derivation ${JSON.stringify(derivation)}`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async function aesKey(passphrase, salt, kdf) {
|
|
78
|
+
// argon2id's `m` is KIBIBYTES. Passing 64 here instead of 65536 silently
|
|
79
|
+
// derives with 64 KiB — a work factor 1000x too small, and everything still
|
|
80
|
+
// "works", which is why the unit is named in the type above.
|
|
81
|
+
const raw = argon2id(enc.encode(passphrase), salt, { t: kdf.t, m: kdf.m, p: kdf.p, dkLen: 32 });
|
|
82
|
+
return crypto.subtle.importKey('raw', raw, { name: 'AES-GCM' }, false, [
|
|
83
|
+
'encrypt',
|
|
84
|
+
'decrypt',
|
|
85
|
+
]);
|
|
86
|
+
}
|
|
87
|
+
/** Seal `secret` (the 24-word mnemonic) under `passphrase`. */
|
|
88
|
+
export async function sealVault(secret, passphrase, opts = {}) {
|
|
89
|
+
if (!secret)
|
|
90
|
+
throw new Error('vault: refusing to seal an empty secret');
|
|
91
|
+
if (!passphrase)
|
|
92
|
+
throw new Error('vault: refusing to seal with an empty passphrase');
|
|
93
|
+
const salt = crypto.getRandomValues(new Uint8Array(16));
|
|
94
|
+
const iv = crypto.getRandomValues(new Uint8Array(12));
|
|
95
|
+
const kdf = {
|
|
96
|
+
name: 'argon2id',
|
|
97
|
+
t: opts.kdf?.t ?? KDF_DEFAULTS.t,
|
|
98
|
+
m: opts.kdf?.m ?? KDF_DEFAULTS.m,
|
|
99
|
+
p: opts.kdf?.p ?? KDF_DEFAULTS.p,
|
|
100
|
+
salt: b64u(salt),
|
|
101
|
+
};
|
|
102
|
+
assertKnownDerivation(opts.derivation);
|
|
103
|
+
const header = {
|
|
104
|
+
v: 1,
|
|
105
|
+
wrap: opts.wrap ?? 'passphrase',
|
|
106
|
+
kdf,
|
|
107
|
+
authPub: opts.authPub,
|
|
108
|
+
// Spread rather than `derivation: opts.derivation` — an explicit `undefined`
|
|
109
|
+
// key would serialise away but `'derivation' in blob` would read true, and a
|
|
110
|
+
// caller branching on that would treat a v1 vault as marked.
|
|
111
|
+
...(opts.derivation !== undefined ? { derivation: opts.derivation } : {}),
|
|
112
|
+
};
|
|
113
|
+
const key = await aesKey(passphrase, salt, kdf);
|
|
114
|
+
const ct = await crypto.subtle.encrypt({ name: 'AES-GCM', iv: iv, additionalData: aad(header) }, key, enc.encode(secret));
|
|
115
|
+
return { ...header, iv: b64u(iv), ct: b64u(new Uint8Array(ct)) };
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Open a sealed vault. Throws on a wrong passphrase, a tampered header, or an
|
|
119
|
+
* unsupported version — never returns a partial or a guess.
|
|
120
|
+
*/
|
|
121
|
+
export async function openVault(blob, passphrase) {
|
|
122
|
+
if (blob?.v !== 1)
|
|
123
|
+
throw new Error(`vault: unsupported version ${String(blob?.v)}`);
|
|
124
|
+
if (blob.kdf?.name !== 'argon2id')
|
|
125
|
+
throw new Error(`vault: unsupported kdf ${String(blob.kdf?.name)}`);
|
|
126
|
+
assertKnownDerivation(blob.derivation);
|
|
127
|
+
if (!passphrase)
|
|
128
|
+
throw new Error('vault: passphrase required');
|
|
129
|
+
const key = await aesKey(passphrase, unb64u(blob.kdf.salt), blob.kdf);
|
|
130
|
+
let plain;
|
|
131
|
+
try {
|
|
132
|
+
plain = await crypto.subtle.decrypt({
|
|
133
|
+
name: 'AES-GCM',
|
|
134
|
+
iv: unb64u(blob.iv),
|
|
135
|
+
additionalData: aad(blob),
|
|
136
|
+
}, key, unb64u(blob.ct));
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
// One message for a wrong passphrase AND a tampered header, deliberately:
|
|
140
|
+
// distinguishing them tells an attacker editing the file which edits the tag
|
|
141
|
+
// is catching, and the user's next action ("check the passphrase") is the
|
|
142
|
+
// same either way.
|
|
143
|
+
throw new Error('vault: could not open — wrong passphrase, or the file has been altered');
|
|
144
|
+
}
|
|
145
|
+
return dec.decode(plain);
|
|
146
|
+
}
|
|
147
|
+
/** True when this blob expects a biometric/keystore secret rather than a typed one. */
|
|
148
|
+
export function isKeychainWrapped(blob) {
|
|
149
|
+
return blob.wrap === 'keychain';
|
|
150
|
+
}
|
|
151
|
+
/** A random passphrase for the `keychain` wrap — never shown, never typed. */
|
|
152
|
+
export function mintKeychainSecret() {
|
|
153
|
+
return b64u(crypto.getRandomValues(new Uint8Array(32)));
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=vault-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-file.js","sourceRoot":"","sources":["../src/vault-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAwDlD,kFAAkF;AAClF,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAW,CAAA;AAE9D,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAA;AAC7B,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAA;AAE7B,SAAS,IAAI,CAAC,KAAiB;IAC7B,IAAI,CAAC,GAAG,EAAE,CAAA;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAA;IAC1E,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAC3E,CAAC;AAED,SAAS,MAAM,CAAC,CAAS;IACvB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;IACvD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IAC3D,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,GAAG,CAAC,IAAsE;IACjF,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAA;IAClB,+EAA+E;IAC/E,8EAA8E;IAC9E,0EAA0E;IAC1E,6EAA6E;IAC7E,+EAA+E;IAC/E,qBAAqB;IACrB,MAAM,IAAI,GAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;IAC9F,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC7D,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;AACzC,CAAC;AAED;;gFAEgF;AAChF,SAAS,qBAAqB,CAAC,UAAmC;IAChE,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAC5E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,UAAkB,EAAE,IAAgB,EAAE,GAAqB;IAC/E,yEAAyE;IACzE,4EAA4E;IAC5E,6DAA6D;IAC7D,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IAC/F,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAmB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE;QACrF,SAAS;QACT,SAAS;KACV,CAAC,CAAA;AACJ,CAAC;AAaD,+DAA+D;AAC/D,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAc,EACd,UAAkB,EAClB,OAAiB,EAAE;IAEnB,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IACvE,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;IAEpF,MAAM,IAAI,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;IACvD,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;IACrD,MAAM,GAAG,GAAqB;QAC5B,IAAI,EAAE,UAAU;QAChB,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,YAAY,CAAC,CAAC;QAChC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,YAAY,CAAC,CAAC;QAChC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,YAAY,CAAC,CAAC;QAChC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;KACjB,CAAA;IACD,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACtC,MAAM,MAAM,GAAG;QACb,CAAC,EAAE,CAAU;QACb,IAAI,EAAE,IAAI,CAAC,IAAI,IAAK,YAAsB;QAC1C,GAAG;QACH,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,6EAA6E;QAC7E,6EAA6E;QAC7E,6DAA6D;QAC7D,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAA;IACD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;IAC/C,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CACpC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAkB,EAAE,cAAc,EAAE,GAAG,CAAC,MAAM,CAAiB,EAAE,EACxF,GAAG,EACH,GAAG,CAAC,MAAM,CAAC,MAAM,CAAiB,CACnC,CAAA;IACD,OAAO,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAe,EAAE,UAAkB;IACjE,IAAI,IAAI,EAAE,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;IACnF,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;IACtG,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACtC,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;IAE9D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IACrE,IAAI,KAAkB,CAAA;IACtB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CACjC;YACE,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAiB;YACnC,cAAc,EAAE,GAAG,CAAC,IAAI,CAAiB;SAC1C,EACD,GAAG,EACH,MAAM,CAAC,IAAI,CAAC,EAAE,CAAiB,CAChC,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,0EAA0E;QAC1E,6EAA6E;QAC7E,0EAA0E;QAC1E,mBAAmB;QACnB,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAA;IAC3F,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC1B,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,iBAAiB,CAAC,IAAe;IAC/C,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAA;AACjC,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACzD,CAAC"}
|
package/dist/wallet.d.ts
CHANGED
|
@@ -34,10 +34,60 @@ export declare function evmAddressFromPubkey(uncompressedPubkey: Uint8Array): st
|
|
|
34
34
|
* call, no derivation from any external secret — pure local CSPRNG keygen.
|
|
35
35
|
*/
|
|
36
36
|
export declare function generateAgentKeypairs(): AgentKeypairs;
|
|
37
|
+
/**
|
|
38
|
+
* WHICH DERIVATION a wallet was minted under. `v1` is the HKDF-label scheme
|
|
39
|
+
* above — ONE's own, unreadable to any other wallet. `v2` is BIP-39 seed ->
|
|
40
|
+
* SLIP-0010 / BIP-32 at the standard paths, which every BIP-39 wallet speaks.
|
|
41
|
+
*
|
|
42
|
+
* ADDITIVE. An ABSENT marker is `v1`, forever — `undefined` must never mean v2
|
|
43
|
+
* in this package any more than it may in the browser, because the day it does,
|
|
44
|
+
* every wallet the CLI ever wrote silently re-keys.
|
|
45
|
+
*
|
|
46
|
+
* Mirrors `Derivation` in one.ie/web/src/lib/derive-multichain.ts. The two are
|
|
47
|
+
* separate declarations across a package boundary, the way `ripemd160` and
|
|
48
|
+
* `CHAIN_INFO` already are; tests/unit/wallet/keygen-parity.test.ts is the one
|
|
49
|
+
* place both are importable and is what proves they agree.
|
|
50
|
+
*/
|
|
51
|
+
export type Derivation = 'v1' | 'v2';
|
|
52
|
+
/** The BIP-39 passphrase, NAMED rather than passed silently — the empty string.
|
|
53
|
+
* A passphrase omitted on recovery derives a stranger's empty addresses. */
|
|
54
|
+
export declare const BIP39_PASSPHRASE = "";
|
|
55
|
+
/**
|
|
56
|
+
* The v2 paths. `evm` is this package's name for the chain the browser calls
|
|
57
|
+
* `eth` — SLIP-44 coin type 60 either way; the two names must never drift onto
|
|
58
|
+
* two paths. Sui and Solana are SLIP-0010 ed25519 (all levels hardened),
|
|
59
|
+
* Ethereum and Bitcoin BIP-32 secp256k1.
|
|
60
|
+
*/
|
|
61
|
+
export declare const STANDARD_PATHS: Record<WalletChain, string>;
|
|
62
|
+
/** Absent is v1. Anything that is not exactly 'v1' or 'v2' THROWS rather than
|
|
63
|
+
* falling back — a wallet whose marker we cannot read has addresses we cannot
|
|
64
|
+
* name, and guessing produces a third set nobody can find again. */
|
|
65
|
+
export declare function readDerivation(marker: unknown): Derivation;
|
|
66
|
+
/**
|
|
67
|
+
* The 32-byte v2 signing key for one chain. Sui and Solana are SLIP-0010
|
|
68
|
+
* ed25519; Ethereum and Bitcoin are BIP-32 secp256k1 via `@scure/bip32` — the
|
|
69
|
+
* same library, same version and same paths one.ie/web derives with, so the two
|
|
70
|
+
* sides produce the same four addresses from the same phrase
|
|
71
|
+
* (tests/unit/wallet/keygen-parity.test.ts is where that is proven).
|
|
72
|
+
*
|
|
73
|
+
* @scure/bip32 is declared in package.json; the lockfile is updated by the CEO
|
|
74
|
+
* after landing (bun install on the main tree).
|
|
75
|
+
*/
|
|
76
|
+
export declare function deriveStandardChainSecret(mnemonic: string, chain: WalletChain): Promise<Uint8Array>;
|
|
77
|
+
/** One chain's v2 key — address, public key and secret. The per-chain door
|
|
78
|
+
* exists because the four-chain door cannot answer at all while eth/btc are
|
|
79
|
+
* blocked on the install above, and Sui/Solana parity with the browser is
|
|
80
|
+
* provable TODAY. */
|
|
81
|
+
export declare function deriveStandardChainKey(mnemonic: string, chain: WalletChain): Promise<WalletKey>;
|
|
37
82
|
/** Derive the deterministic 4-chain wallet from a 32-byte seed + its mnemonic. */
|
|
38
|
-
export declare function deriveWalletFromSeed(seed: Uint8Array, mnemonic: string): Promise<GeneratedWallet>;
|
|
39
|
-
/** Fresh recoverable wallet: random 256-bit entropy -> 24-word mnemonic -> 4 chains.
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
83
|
+
export declare function deriveWalletFromSeed(seed: Uint8Array, mnemonic: string, derivation?: Derivation): Promise<GeneratedWallet>;
|
|
84
|
+
/** Fresh recoverable wallet: random 256-bit entropy -> 24-word mnemonic -> 4 chains.
|
|
85
|
+
* `derivation` is NOT defaulted to the standard here: the caller that mints a new
|
|
86
|
+
* master names it, and persists what it named (the vault-file header + the wallets
|
|
87
|
+
* row). A generator that quietly upgraded would strand every key it ever made. */
|
|
88
|
+
export declare function generateWallet(derivation?: Derivation): Promise<GeneratedWallet>;
|
|
89
|
+
/** Recover the same 4-chain wallet from a 24-word BIP-39 mnemonic. `derivation`
|
|
90
|
+
* comes from the record the phrase was kept with — absent means v1, and a v1
|
|
91
|
+
* key recovers its v1 addresses forever. */
|
|
92
|
+
export declare function recoverWallet(mnemonic: string, derivation?: Derivation): Promise<GeneratedWallet>;
|
|
43
93
|
//# sourceMappingURL=wallet.d.ts.map
|
package/dist/wallet.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE;QAAE,SAAS,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/F,GAAG,EAAE;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IACvE,MAAM,EAAE;QAAE,SAAS,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAC1E;AAED,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAA;AAEvD,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,WAAW,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,SAAS,EAAE,CAAA;CAClB;AAuBD,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,CAKpE;AAGD,wBAAgB,oBAAoB,CAAC,kBAAkB,EAAE,UAAU,GAAG,MAAM,CAW3E;AAeD;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,aAAa,CAkBrD;AAgDD;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,CAAA;AAEpC;6EAC6E;AAC7E,eAAO,MAAM,gBAAgB,KAAK,CAAA;AAElC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAKtD,CAAA;AAED;;qEAEqE;AACrE,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,CAI1D;AAgCD;;;;;;;;;GASG;AACH,wBAAsB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAQzG;AAED;;;sBAGsB;AACtB,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAErG;AAED,kFAAkF;AAClF,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC,eAAe,CAAC,CAqB1B;AAED;;;mFAGmF;AACnF,wBAAsB,cAAc,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAGtF;AAED;;6CAE6C;AAC7C,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAMvG"}
|
package/dist/wallet.js
CHANGED
|
@@ -17,9 +17,11 @@ import { ed25519 } from '@noble/curves/ed25519.js';
|
|
|
17
17
|
import { secp256k1 } from '@noble/curves/secp256k1.js';
|
|
18
18
|
import { blake2b } from '@noble/hashes/blake2.js';
|
|
19
19
|
import { keccak_256 } from '@noble/hashes/sha3.js';
|
|
20
|
-
import { sha256 } from '@noble/hashes/sha2.js';
|
|
20
|
+
import { sha256, sha512 } from '@noble/hashes/sha2.js';
|
|
21
|
+
import { hmac } from '@noble/hashes/hmac.js';
|
|
21
22
|
import { base58, bech32 } from '@scure/base';
|
|
22
|
-
import {
|
|
23
|
+
import { HDKey } from '@scure/bip32';
|
|
24
|
+
import { entropyToMnemonic, mnemonicToEntropy, mnemonicToSeedSync, validateMnemonic } from '@scure/bip39';
|
|
23
25
|
import { wordlist } from '@scure/bip39/wordlists/english.js';
|
|
24
26
|
// ===== ENCODING (environment-agnostic — no Node Buffer) =====
|
|
25
27
|
const enc = new TextEncoder();
|
|
@@ -124,30 +126,135 @@ function keyForChain(chain, secret) {
|
|
|
124
126
|
const pub = secp256k1.getPublicKey(secret, true);
|
|
125
127
|
return { chain, address: btcAddressFromPubkey(pub), privateKeyHex: toHex(secret), publicKeyHex: toHex(pub) };
|
|
126
128
|
}
|
|
129
|
+
/** The BIP-39 passphrase, NAMED rather than passed silently — the empty string.
|
|
130
|
+
* A passphrase omitted on recovery derives a stranger's empty addresses. */
|
|
131
|
+
export const BIP39_PASSPHRASE = '';
|
|
132
|
+
/**
|
|
133
|
+
* The v2 paths. `evm` is this package's name for the chain the browser calls
|
|
134
|
+
* `eth` — SLIP-44 coin type 60 either way; the two names must never drift onto
|
|
135
|
+
* two paths. Sui and Solana are SLIP-0010 ed25519 (all levels hardened),
|
|
136
|
+
* Ethereum and Bitcoin BIP-32 secp256k1.
|
|
137
|
+
*/
|
|
138
|
+
export const STANDARD_PATHS = {
|
|
139
|
+
sui: "m/44'/784'/0'/0'/0'",
|
|
140
|
+
evm: "m/44'/60'/0'/0/0",
|
|
141
|
+
sol: "m/44'/501'/0'/0'",
|
|
142
|
+
btc: "m/84'/0'/0'/0/0",
|
|
143
|
+
};
|
|
144
|
+
/** Absent is v1. Anything that is not exactly 'v1' or 'v2' THROWS rather than
|
|
145
|
+
* falling back — a wallet whose marker we cannot read has addresses we cannot
|
|
146
|
+
* name, and guessing produces a third set nobody can find again. */
|
|
147
|
+
export function readDerivation(marker) {
|
|
148
|
+
if (marker === undefined || marker === null)
|
|
149
|
+
return 'v1';
|
|
150
|
+
if (marker === 'v1' || marker === 'v2')
|
|
151
|
+
return marker;
|
|
152
|
+
throw new Error(`wallet: unknown derivation ${JSON.stringify(marker)}`);
|
|
153
|
+
}
|
|
154
|
+
const HARDENED = 0x80000000;
|
|
155
|
+
/**
|
|
156
|
+
* SLIP-0010 ed25519, hardened-only — the same math @mysten/sui uses and the
|
|
157
|
+
* same `sui keytool import` performs. ed25519 has no public derivation, so an
|
|
158
|
+
* unhardened level is refused rather than approximated.
|
|
159
|
+
*
|
|
160
|
+
* Proven, not asserted: one.ie/web derives Sui with @mysten/sui's own
|
|
161
|
+
* `Ed25519Keypair.deriveKeypair`, and keygen-parity.test.ts requires this
|
|
162
|
+
* helper's Sui address to equal it before the helper is trusted on Solana's
|
|
163
|
+
* path, where no second implementation exists to check it.
|
|
164
|
+
*/
|
|
165
|
+
function slip10Ed25519(seed, path) {
|
|
166
|
+
let I = hmac(sha512, enc.encode('ed25519 seed'), seed);
|
|
167
|
+
let key = I.slice(0, 32);
|
|
168
|
+
let chainCode = I.slice(32);
|
|
169
|
+
for (const level of path.split('/').slice(1)) {
|
|
170
|
+
if (!level.endsWith("'"))
|
|
171
|
+
throw new Error(`wallet: ed25519 has no unhardened level — "${level}" in ${path}`);
|
|
172
|
+
const index = (Number.parseInt(level.slice(0, -1), 10) + HARDENED) >>> 0;
|
|
173
|
+
const data = new Uint8Array(37);
|
|
174
|
+
data[0] = 0;
|
|
175
|
+
data.set(key, 1);
|
|
176
|
+
new DataView(data.buffer).setUint32(33, index, false);
|
|
177
|
+
I = hmac(sha512, chainCode, data);
|
|
178
|
+
key = I.slice(0, 32);
|
|
179
|
+
chainCode = I.slice(32);
|
|
180
|
+
}
|
|
181
|
+
return key;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* The 32-byte v2 signing key for one chain. Sui and Solana are SLIP-0010
|
|
185
|
+
* ed25519; Ethereum and Bitcoin are BIP-32 secp256k1 via `@scure/bip32` — the
|
|
186
|
+
* same library, same version and same paths one.ie/web derives with, so the two
|
|
187
|
+
* sides produce the same four addresses from the same phrase
|
|
188
|
+
* (tests/unit/wallet/keygen-parity.test.ts is where that is proven).
|
|
189
|
+
*
|
|
190
|
+
* @scure/bip32 is declared in package.json; the lockfile is updated by the CEO
|
|
191
|
+
* after landing (bun install on the main tree).
|
|
192
|
+
*/
|
|
193
|
+
export async function deriveStandardChainSecret(mnemonic, chain) {
|
|
194
|
+
const trimmed = mnemonic.trim().toLowerCase().split(/\s+/).join(' ');
|
|
195
|
+
if (!validateMnemonic(trimmed, wordlist))
|
|
196
|
+
throw new Error('wallet: invalid BIP-39 recovery phrase');
|
|
197
|
+
const seed = mnemonicToSeedSync(trimmed, BIP39_PASSPHRASE);
|
|
198
|
+
if (chain === 'sui' || chain === 'sol')
|
|
199
|
+
return slip10Ed25519(seed, STANDARD_PATHS[chain]);
|
|
200
|
+
const node = HDKey.fromMasterSeed(seed).derive(STANDARD_PATHS[chain]);
|
|
201
|
+
if (!node.privateKey)
|
|
202
|
+
throw new Error(`wallet: ${chain} node carries no private key`);
|
|
203
|
+
return node.privateKey;
|
|
204
|
+
}
|
|
205
|
+
/** One chain's v2 key — address, public key and secret. The per-chain door
|
|
206
|
+
* exists because the four-chain door cannot answer at all while eth/btc are
|
|
207
|
+
* blocked on the install above, and Sui/Solana parity with the browser is
|
|
208
|
+
* provable TODAY. */
|
|
209
|
+
export async function deriveStandardChainKey(mnemonic, chain) {
|
|
210
|
+
return keyForChain(chain, await deriveStandardChainSecret(mnemonic, chain));
|
|
211
|
+
}
|
|
127
212
|
/** Derive the deterministic 4-chain wallet from a 32-byte seed + its mnemonic. */
|
|
128
|
-
export async function deriveWalletFromSeed(seed, mnemonic) {
|
|
213
|
+
export async function deriveWalletFromSeed(seed, mnemonic, derivation) {
|
|
129
214
|
if (seed.length !== 32)
|
|
130
215
|
throw new Error(`wallet: seed must be 32 bytes, got ${seed.length}`);
|
|
131
216
|
const chains = ['sui', 'evm', 'sol', 'btc'];
|
|
132
217
|
const keys = [];
|
|
218
|
+
// An ABSENT marker is v1. readDerivation throws on anything but 'v1' / 'v2'.
|
|
219
|
+
if (readDerivation(derivation) === 'v2') {
|
|
220
|
+
// Under v1 `mnemonic` is a label the caller carries alongside the seed and
|
|
221
|
+
// nothing reads it. Under v2 it IS the input, so a seed that does not encode
|
|
222
|
+
// this phrase would silently derive a different wallet than the one the
|
|
223
|
+
// paper recovers. Refuse the mismatch instead of producing it.
|
|
224
|
+
const trimmed = mnemonic.trim().toLowerCase().split(/\s+/).join(' ');
|
|
225
|
+
if (!validateMnemonic(trimmed, wordlist))
|
|
226
|
+
throw new Error('wallet: invalid BIP-39 recovery phrase');
|
|
227
|
+
const entropy = mnemonicToEntropy(trimmed, wordlist);
|
|
228
|
+
if (entropy.length !== seed.length || entropy.some((b, i) => b !== seed[i])) {
|
|
229
|
+
throw new Error('wallet: derivation v2 — the seed does not encode this recovery phrase');
|
|
230
|
+
}
|
|
231
|
+
for (const chain of chains)
|
|
232
|
+
keys.push(keyForChain(chain, await deriveStandardChainSecret(trimmed, chain)));
|
|
233
|
+
return { mnemonic: trimmed, keys };
|
|
234
|
+
}
|
|
133
235
|
for (const chain of chains)
|
|
134
236
|
keys.push(keyForChain(chain, await hkdfChainSecret(seed, chain)));
|
|
135
237
|
return { mnemonic, keys };
|
|
136
238
|
}
|
|
137
|
-
/** Fresh recoverable wallet: random 256-bit entropy -> 24-word mnemonic -> 4 chains.
|
|
138
|
-
|
|
239
|
+
/** Fresh recoverable wallet: random 256-bit entropy -> 24-word mnemonic -> 4 chains.
|
|
240
|
+
* `derivation` is NOT defaulted to the standard here: the caller that mints a new
|
|
241
|
+
* master names it, and persists what it named (the vault-file header + the wallets
|
|
242
|
+
* row). A generator that quietly upgraded would strand every key it ever made. */
|
|
243
|
+
export async function generateWallet(derivation) {
|
|
139
244
|
const entropy = crypto.getRandomValues(new Uint8Array(32));
|
|
140
|
-
return deriveWalletFromSeed(entropy, entropyToMnemonic(entropy, wordlist));
|
|
245
|
+
return deriveWalletFromSeed(entropy, entropyToMnemonic(entropy, wordlist), derivation);
|
|
141
246
|
}
|
|
142
|
-
/** Recover the same 4-chain wallet from a 24-word BIP-39 mnemonic.
|
|
143
|
-
|
|
247
|
+
/** Recover the same 4-chain wallet from a 24-word BIP-39 mnemonic. `derivation`
|
|
248
|
+
* comes from the record the phrase was kept with — absent means v1, and a v1
|
|
249
|
+
* key recovers its v1 addresses forever. */
|
|
250
|
+
export async function recoverWallet(mnemonic, derivation) {
|
|
144
251
|
const trimmed = mnemonic.trim().toLowerCase().split(/\s+/).join(' ');
|
|
145
252
|
if (!validateMnemonic(trimmed, wordlist))
|
|
146
253
|
throw new Error('wallet: invalid BIP-39 recovery phrase');
|
|
147
254
|
const entropy = mnemonicToEntropy(trimmed, wordlist);
|
|
148
255
|
if (entropy.length !== 32)
|
|
149
256
|
throw new Error(`wallet: expected 32-byte entropy, got ${entropy.length}`);
|
|
150
|
-
return deriveWalletFromSeed(entropy, trimmed);
|
|
257
|
+
return deriveWalletFromSeed(entropy, trimmed, derivation);
|
|
151
258
|
}
|
|
152
259
|
// ===== RIPEMD-160 (pure JS, ported verbatim from derive-multichain.ts) =====
|
|
153
260
|
function ripemd160(data) {
|
package/dist/wallet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QACjH,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACjH,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;KACjD,CAAA;IACD,MAAM,EAAE,GAAG;QACT,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QACjH,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,E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"}
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -317,6 +317,9 @@
|
|
|
317
317
|
"market:search",
|
|
318
318
|
"market:settle",
|
|
319
319
|
"market:verify",
|
|
320
|
+
"media:generate",
|
|
321
|
+
"media:list",
|
|
322
|
+
"media:upload",
|
|
320
323
|
"message:send",
|
|
321
324
|
"meta:catalog",
|
|
322
325
|
"meta:entitlements",
|
|
@@ -334,7 +337,9 @@
|
|
|
334
337
|
"order:claim",
|
|
335
338
|
"order:install",
|
|
336
339
|
"orders:status",
|
|
340
|
+
"pages:bulk",
|
|
337
341
|
"pages:create",
|
|
342
|
+
"pages:delete",
|
|
338
343
|
"pages:edit",
|
|
339
344
|
"pages:fill-pack",
|
|
340
345
|
"pages:fill-pack-extract",
|
|
@@ -342,6 +347,7 @@
|
|
|
342
347
|
"pages:publish",
|
|
343
348
|
"pages:publish-pack",
|
|
344
349
|
"pages:restore",
|
|
350
|
+
"pages:unpublish",
|
|
345
351
|
"pages:versions",
|
|
346
352
|
"pages:view",
|
|
347
353
|
"pay:weight",
|
|
@@ -427,6 +433,7 @@
|
|
|
427
433
|
"thread:append",
|
|
428
434
|
"tools:composio",
|
|
429
435
|
"tools:connect",
|
|
436
|
+
"ui:navigate",
|
|
430
437
|
"variants:archive",
|
|
431
438
|
"variants:create",
|
|
432
439
|
"variants:list",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oneie/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.1",
|
|
4
4
|
"description": "ONE substrate SDK — signals, units, persist, launch handoff.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
11
|
"import": "./dist/index.js"
|
|
12
12
|
},
|
|
13
|
+
"./vault-file": {
|
|
14
|
+
"types": "./dist/vault-file.d.ts",
|
|
15
|
+
"import": "./dist/vault-file.js"
|
|
16
|
+
},
|
|
13
17
|
"./urls": "./dist/urls.js",
|
|
14
18
|
"./storage": "./dist/storage.js",
|
|
15
19
|
"./handoff": "./dist/handoff.js",
|
|
@@ -145,6 +149,7 @@
|
|
|
145
149
|
"@noble/curves": "^2.2.0",
|
|
146
150
|
"@noble/hashes": "^2.2.0",
|
|
147
151
|
"@scure/base": "^2.2.0",
|
|
152
|
+
"@scure/bip32": "^2.2.0",
|
|
148
153
|
"@scure/bip39": "^2.2.0",
|
|
149
154
|
"better-auth": "^1.6.11",
|
|
150
155
|
"zod": "^4.3.6"
|