@theoo/sdk 0.4.3 → 0.4.4
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/dist/abi.d.ts +28 -0
- package/dist/abi.d.ts.map +1 -0
- package/dist/abi.js +86 -0
- package/dist/abi.js.map +1 -0
- package/dist/client.d.ts +135 -8
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +138 -25
- package/dist/client.js.map +1 -1
- package/dist/eip712.d.ts +17 -0
- package/dist/eip712.d.ts.map +1 -0
- package/dist/eip712.js +127 -0
- package/dist/eip712.js.map +1 -0
- package/dist/hash.d.ts +27 -0
- package/dist/hash.d.ts.map +1 -0
- package/dist/hash.js +249 -0
- package/dist/hash.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/solana-vault.d.ts +140 -0
- package/dist/solana-vault.d.ts.map +1 -0
- package/dist/solana-vault.js +242 -0
- package/dist/solana-vault.js.map +1 -0
- package/dist/types.d.ts +224 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/vault.d.ts +92 -0
- package/dist/vault.d.ts.map +1 -0
- package/dist/vault.js +165 -0
- package/dist/vault.js.map +1 -0
- package/dist/verify.d.ts +82 -0
- package/dist/verify.d.ts.map +1 -0
- package/dist/verify.js +669 -0
- package/dist/verify.js.map +1 -0
- package/package.json +1 -1
package/dist/client.js
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { Transport } from "./transport.js";
|
|
2
|
+
import { checkPrepared, checkPreparedSolana, checkSignBegin, SigningRefused } from "./verify.js";
|
|
3
|
+
import { callsHash, newSalt } from "./vault.js";
|
|
4
|
+
import { solanaCallsHash } from "./solana-vault.js";
|
|
5
|
+
/** What a quote's leg says leaves the account. */
|
|
6
|
+
const spend = (leg) => ({ token: leg.token, amount: BigInt(leg.amount) });
|
|
2
7
|
/**
|
|
3
8
|
* The Theoo client.
|
|
4
9
|
*
|
|
@@ -113,9 +118,10 @@ export class Theoo {
|
|
|
113
118
|
/** Sign EIP-712 typed data, as `eth_signTypedData_v4` does. */
|
|
114
119
|
signTypedData: (typedData, o = {}) => this.signWith({ chain: o.chain, typedData }),
|
|
115
120
|
operations: this.operationsAt("/v1/me"),
|
|
121
|
+
vaults: this.vaultsAt("/v1/me"),
|
|
116
122
|
recovery: this.recoveryAt("/v1/me"),
|
|
117
123
|
sessions: this.sessionsAt("/v1/me"),
|
|
118
|
-
solana: this.solanaAt("/v1/me"),
|
|
124
|
+
solana: { ...this.solanaAt("/v1/me"), vaults: this.solanaVaultsAt("/v1/me") },
|
|
119
125
|
/**
|
|
120
126
|
* Money: balances, swaps and the history of both. A swap is quoted and
|
|
121
127
|
* checked by Theoo first; `swap` then asks the passkey to sign exactly
|
|
@@ -127,31 +133,19 @@ export class Theoo {
|
|
|
127
133
|
* Sign and send a quote: prepare it by id, have the passkey sign, submit,
|
|
128
134
|
* and wait for inclusion. Show `quote.summary` before calling this.
|
|
129
135
|
*/
|
|
130
|
-
swap: (quote, o = {}) => {
|
|
131
|
-
const id = typeof quote === "string" ? quote : quote.id;
|
|
132
|
-
const chain = typeof quote === "string" ? undefined : quote.chain;
|
|
133
|
-
return this.me.operations.run({ kind: "swap", quote: id }, { chain, wait: o.wait });
|
|
134
|
-
},
|
|
136
|
+
swap: (quote, o = {}) => this.me.operations.run({ kind: "swap", quote: quote.id }, { chain: quote.chain, wait: o.wait, budget: spend(quote.sell) }),
|
|
135
137
|
/**
|
|
136
138
|
* Pay an ESPEES quote into the desk's escrow: one passkey signature.
|
|
137
139
|
* The desk is paid only after it delivers; nothing delivered in time
|
|
138
140
|
* comes back on its own. Show `quote.summary` before calling this.
|
|
139
141
|
*/
|
|
140
|
-
buyEspees: (quote, o = {}) => {
|
|
141
|
-
const id = typeof quote === "string" ? quote : quote.id;
|
|
142
|
-
const chain = typeof quote === "string" ? undefined : quote.chain;
|
|
143
|
-
return this.me.operations.run({ kind: "espees_buy", quote: id }, { chain, wait: o.wait });
|
|
144
|
-
},
|
|
142
|
+
buyEspees: (quote, o = {}) => this.me.operations.run({ kind: "espees_buy", quote: quote.id }, { chain: quote.chain, wait: o.wait, budget: spend(quote.pay) }),
|
|
145
143
|
/**
|
|
146
144
|
* Sign and send a cross-chain quote: one passkey signature on the
|
|
147
145
|
* source chain. The tokens arrive at this user's account on
|
|
148
146
|
* `quote.toChain`; follow the order for when. Show `quote.summary` first.
|
|
149
147
|
*/
|
|
150
|
-
bridge: (quote, o = {}) => {
|
|
151
|
-
const id = typeof quote === "string" ? quote : quote.id;
|
|
152
|
-
const chain = typeof quote === "string" ? undefined : quote.chain;
|
|
153
|
-
return this.me.operations.run({ kind: "bridge", quote: id }, { chain, wait: o.wait });
|
|
154
|
-
},
|
|
148
|
+
bridge: (quote, o = {}) => this.me.operations.run({ kind: "bridge", quote: quote.id }, { chain: quote.chain, wait: o.wait, budget: { ...spend(quote.sell), extraNative: quote.extra ? BigInt(quote.extra.amount) : 0n } }),
|
|
155
149
|
/** The ESPEES arrived: pay the desk now rather than when the dispute window closes. */
|
|
156
150
|
releaseEspees: (order, chain) => this.me.operations.run({ kind: "espees_release", order }, { chain }),
|
|
157
151
|
/** The ESPEES didn't arrive: freeze the order for the arbiter. Only inside the dispute window. */
|
|
@@ -188,11 +182,7 @@ export class Theoo {
|
|
|
188
182
|
* address: one passkey signature. A payout that fails comes back to this
|
|
189
183
|
* account. Show `quote.summary` before calling this.
|
|
190
184
|
*/
|
|
191
|
-
cashOut: (quote, o = {}) => {
|
|
192
|
-
const id = typeof quote === "string" ? quote : quote.id;
|
|
193
|
-
const chain = typeof quote === "string" ? undefined : quote.chain;
|
|
194
|
-
return this.me.operations.run({ kind: "cash_out", quote: id }, { chain, wait: o.wait });
|
|
195
|
-
},
|
|
185
|
+
cashOut: (quote, o = {}) => this.me.operations.run({ kind: "cash_out", quote: quote.id }, { chain: quote.chain, wait: o.wait, budget: spend(quote.pay) }),
|
|
196
186
|
},
|
|
197
187
|
/**
|
|
198
188
|
* The user's name — `alice.acme.eth` — which ENS-aware wallets resolve to
|
|
@@ -299,7 +289,7 @@ export class Theoo {
|
|
|
299
289
|
/** ESPEES sold to the desk, newest first. */
|
|
300
290
|
sells: (state) => this.transport.request("GET", `/v1/desk/sells${state ? `?state=${encodeURIComponent(state)}` : ""}`, undefined, { user: true }),
|
|
301
291
|
/** Lock a seller's payout in the sell escrow, from this operator's account. Their passkey signs. */
|
|
302
|
-
fundSell: (order
|
|
292
|
+
fundSell: (order) => this.me.operations.run({ kind: "espees_sell_fund", order: order.id }, { chain: order.chain, budget: spend(order.pay) }),
|
|
303
293
|
/** The ESPEES arrived: pay the seller now. */
|
|
304
294
|
releaseSell: (order, chain) => this.me.operations.run({ kind: "espees_sell_release", order }, { chain }),
|
|
305
295
|
/** The ESPEES didn't arrive: freeze the sale for the arbiter. Only inside the dispute window. */
|
|
@@ -308,6 +298,7 @@ export class Theoo {
|
|
|
308
298
|
this.transport = new Transport(opts);
|
|
309
299
|
this.passkeys = opts.passkeys;
|
|
310
300
|
this.client = opts.client ?? {};
|
|
301
|
+
this.checks = !opts.unsafeSkipSigningChecks;
|
|
311
302
|
}
|
|
312
303
|
ceremony() {
|
|
313
304
|
if (!this.passkeys)
|
|
@@ -396,6 +387,8 @@ export class Theoo {
|
|
|
396
387
|
await this.me.operations.run({ kind: "upgrade_account" }, { chain: begun.chain });
|
|
397
388
|
begun = await this.transport.request("POST", "/v1/me/sign/begin", req, { user: true });
|
|
398
389
|
}
|
|
390
|
+
if (this.checks)
|
|
391
|
+
checkSignBegin(req, begun);
|
|
399
392
|
const assertion = await this.ceremony().get(begun.webauthnOptions);
|
|
400
393
|
return this.transport.request("POST", "/v1/me/sign/complete", { chain: begun.chain, hash: begun.hash, assertion }, { user: true });
|
|
401
394
|
}
|
|
@@ -412,7 +405,13 @@ export class Theoo {
|
|
|
412
405
|
* They are not part of what the passkey signs: the challenge covers the
|
|
413
406
|
* action, not the envelope it travels in.
|
|
414
407
|
*/
|
|
415
|
-
const prepare = (action, cluster, lookupTables) =>
|
|
408
|
+
const prepare = async (action, cluster, lookupTables) => {
|
|
409
|
+
const prepared = await this.transport.request("POST", `${base}/solana/operations`, { ...action, cluster, lookupTables, client: this.client }, opts);
|
|
410
|
+
// Checked before it is returned: the action the passkey would sign must be this one.
|
|
411
|
+
if (this.checks)
|
|
412
|
+
checkPreparedSolana(action, prepared);
|
|
413
|
+
return prepared;
|
|
414
|
+
};
|
|
416
415
|
const submit = (id, assertion) => this.transport.request("POST", `${base}/solana/operations/${id}/submit`, { assertion, client: this.client }, opts);
|
|
417
416
|
/** Prepare, have the passkey sign, submit. Solana confirms within the call. */
|
|
418
417
|
const run = async (action, cluster, lookupTables) => {
|
|
@@ -470,9 +469,123 @@ export class Theoo {
|
|
|
470
469
|
},
|
|
471
470
|
};
|
|
472
471
|
}
|
|
472
|
+
/**
|
|
473
|
+
* Multisig vaults the user is an owner of. Every action is an operation
|
|
474
|
+
* from the user's own account, signed by their passkey and paid for by
|
|
475
|
+
* Theoo; the vault, on chain, decides whether it counts.
|
|
476
|
+
*/
|
|
477
|
+
vaultsAt(base, user = true) {
|
|
478
|
+
const opts = { user };
|
|
479
|
+
const q = (chain) => (chain === undefined ? "" : `?chain=${chain}`);
|
|
480
|
+
const ops = () => this.operationsAt(base, user);
|
|
481
|
+
return {
|
|
482
|
+
/** The vaults the user is in, on one chain. */
|
|
483
|
+
list: (chain) => this.transport.request("GET", `${base}/vaults${q(chain)}`, undefined, opts),
|
|
484
|
+
/** One vault, read from the chain: owners, settings, balance, newest proposals. */
|
|
485
|
+
get: (address, chain) => this.transport.request("GET", `${base}/vaults/${address}${q(chain)}`, undefined, opts),
|
|
486
|
+
/** List a vault the user is already an owner of, and name it. */
|
|
487
|
+
add: (address, name, chain) => this.transport.request("POST", `${base}/vaults${q(chain)}`, { address, name }, opts),
|
|
488
|
+
/**
|
|
489
|
+
* Make one. Its address is known before it exists:
|
|
490
|
+
* `predictVault(spec.owners, spec.threshold, spec.delay ?? 0, salt)`.
|
|
491
|
+
*/
|
|
492
|
+
create: (spec, o = {}) => ops().run({ kind: "vault_create", vault: { ...spec, salt: spec.salt ?? newSalt() } }, o),
|
|
493
|
+
/** Put calls up for approval; proposing approves. See `vaultCalls` for the common ones. */
|
|
494
|
+
propose: (vault, calls, o = {}) => ops().run({ kind: "vault_propose", vault, calls, run: o.run }, o),
|
|
495
|
+
/**
|
|
496
|
+
* Approve `proposal` — the one this app has just shown. The hash the
|
|
497
|
+
* approval names is computed here from `proposal.calls`, so the passkey
|
|
498
|
+
* approves what was on the screen; the vault refuses anything else.
|
|
499
|
+
*/
|
|
500
|
+
approve: (vault, proposal, o = {}) => {
|
|
501
|
+
const shown = callsHash(proposal.calls);
|
|
502
|
+
if (shown.toLowerCase() !== proposal.callsHash.toLowerCase()) {
|
|
503
|
+
return Promise.reject(new SigningRefused("the proposal's calls don't match its hash; reload it before approving"));
|
|
504
|
+
}
|
|
505
|
+
return ops().run({ kind: "vault_approve", vault, proposal: proposal.id, callsHash: shown, run: o.run }, o);
|
|
506
|
+
},
|
|
507
|
+
/** Take an approval back. In the wait, that stops it. */
|
|
508
|
+
revoke: (vault, proposal, o = {}) => ops().run({ kind: "vault_revoke", vault, proposal }, o),
|
|
509
|
+
reject: (vault, proposal, o = {}) => ops().run({ kind: "vault_reject", vault, proposal }, o),
|
|
510
|
+
/** Withdraw a proposal the user made. */
|
|
511
|
+
cancel: (vault, proposal, o = {}) => ops().run({ kind: "vault_cancel", vault, proposal }, o),
|
|
512
|
+
/** Run a proposal whose wait is over. */
|
|
513
|
+
execute: (vault, proposal, o = {}) => ops().run({ kind: "vault_execute", vault, proposal }, o),
|
|
514
|
+
};
|
|
515
|
+
}
|
|
516
|
+
/**
|
|
517
|
+
* Multisig vaults on Solana that the user is an owner of. Every vote is an
|
|
518
|
+
* operation from the user's own account, signed by their passkey and paid
|
|
519
|
+
* for by Theoo; running a ready proposal needs nobody's signature, so
|
|
520
|
+
* Theoo's relayer sends it alone. The vault, on chain, decides whether any
|
|
521
|
+
* of it counts.
|
|
522
|
+
*
|
|
523
|
+
* A vault is named by its `config` or by its `address`, where it holds
|
|
524
|
+
* its money: pass the vault as `list` or `get` returned it.
|
|
525
|
+
*/
|
|
526
|
+
solanaVaultsAt(base) {
|
|
527
|
+
const opts = { user: true };
|
|
528
|
+
const q = (cluster) => (cluster ? `?cluster=${encodeURIComponent(cluster)}` : "");
|
|
529
|
+
const run = (action, cluster) => this.solanaAt(base).operations.run(action, cluster);
|
|
530
|
+
const config = (v) => (typeof v === "string" ? v : v.config);
|
|
531
|
+
return {
|
|
532
|
+
/** The vaults the user is in, on one cluster. */
|
|
533
|
+
list: (cluster) => this.transport.request("GET", `${base}/solana/vaults${q(cluster)}`, undefined, opts),
|
|
534
|
+
/** One vault, read from the chain: owners, settings, balance, newest proposals. */
|
|
535
|
+
get: (vault, cluster) => this.transport.request("GET", `${base}/solana/vaults/${vault}${q(cluster)}`, undefined, opts),
|
|
536
|
+
/** List a vault the user is already an owner of, and name it. */
|
|
537
|
+
add: (vault, name, cluster) => this.transport.request("POST", `${base}/solana/vaults${q(cluster)}`, { address: vault, name }, opts),
|
|
538
|
+
/**
|
|
539
|
+
* Make one. Owners are base58, the user's own account among them. Its
|
|
540
|
+
* addresses are known before it exists:
|
|
541
|
+
* `predictSolanaVault(spec.owners, spec.threshold, spec.delay ?? 0, salt)`.
|
|
542
|
+
*/
|
|
543
|
+
create: (spec, cluster) => run({ kind: "vault_create", vault: { ...spec, salt: spec.salt ?? newSalt() } }, cluster),
|
|
544
|
+
/** Put instructions up for approval; proposing approves. See `solanaVaultCalls` for the common ones. */
|
|
545
|
+
propose: (vault, calls, cluster) => run({ kind: "vault_propose", vault: config(vault), calls }, cluster),
|
|
546
|
+
/**
|
|
547
|
+
* Approve `proposal` — the one this app has just shown. The hash the
|
|
548
|
+
* approval names is computed here from `proposal.calls`, so the passkey
|
|
549
|
+
* approves what was on the screen; the vault refuses anything else.
|
|
550
|
+
*/
|
|
551
|
+
approve: (vault, proposal, cluster) => {
|
|
552
|
+
let shown;
|
|
553
|
+
try {
|
|
554
|
+
shown = solanaCallsHash(proposal.calls);
|
|
555
|
+
}
|
|
556
|
+
catch {
|
|
557
|
+
return Promise.reject(new SigningRefused("the proposal's instructions can't be read; reload it before approving"));
|
|
558
|
+
}
|
|
559
|
+
if (shown !== proposal.callsHash.toLowerCase()) {
|
|
560
|
+
return Promise.reject(new SigningRefused("the proposal's instructions don't match its hash; reload it before approving"));
|
|
561
|
+
}
|
|
562
|
+
return run({ kind: "vault_approve", vault: config(vault), proposal: proposal.id, callsHash: shown }, cluster);
|
|
563
|
+
},
|
|
564
|
+
/** Take an approval back. In the wait, that stops it. */
|
|
565
|
+
revoke: (vault, proposal, cluster) => run({ kind: "vault_revoke", vault: config(vault), proposal }, cluster),
|
|
566
|
+
reject: (vault, proposal, cluster) => run({ kind: "vault_reject", vault: config(vault), proposal }, cluster),
|
|
567
|
+
/** Withdraw a proposal the user made. */
|
|
568
|
+
cancel: (vault, proposal, cluster) => run({ kind: "vault_cancel", vault: config(vault), proposal }, cluster),
|
|
569
|
+
/**
|
|
570
|
+
* Run a proposal whose wait is over. No passkey: the approvals are the
|
|
571
|
+
* authority, and Theoo's relayer only pays.
|
|
572
|
+
*/
|
|
573
|
+
execute: (vault, proposal, cluster) => this.transport.request("POST", `${base}/solana/vaults/${config(vault)}/proposals/${proposal}/execute${q(cluster)}`, undefined, opts),
|
|
574
|
+
};
|
|
575
|
+
}
|
|
473
576
|
operationsAt(base, user = true) {
|
|
474
577
|
const opts = { user };
|
|
475
|
-
|
|
578
|
+
/**
|
|
579
|
+
* Checked before it is returned, whoever signs it next: what the passkey
|
|
580
|
+
* would sign must be what `kind` asks for. `budget` is what a quote said
|
|
581
|
+
* leaves the account.
|
|
582
|
+
*/
|
|
583
|
+
const prepare = async (kind, chain, guard = {}) => {
|
|
584
|
+
const prepared = await this.transport.request("POST", `${base}/operations`, { ...kind, chain, client: this.client }, opts);
|
|
585
|
+
if (this.checks)
|
|
586
|
+
checkPrepared(kind, prepared, { chain, ...guard });
|
|
587
|
+
return prepared;
|
|
588
|
+
};
|
|
476
589
|
const submit = (id, assertion) => this.transport.request("POST", `${base}/operations/${id}/submit`, { assertion, client: this.client }, opts);
|
|
477
590
|
const get = (id) => this.transport.request("GET", `${base}/operations/${id}`, undefined, opts);
|
|
478
591
|
const wait = async (id, w = {}) => {
|
|
@@ -494,7 +607,7 @@ export class Theoo {
|
|
|
494
607
|
list: () => this.transport.request("GET", `${base}/operations`, undefined, opts),
|
|
495
608
|
/** Prepare, have the passkey sign, submit, and wait for inclusion. */
|
|
496
609
|
run: async (kind, o = {}) => {
|
|
497
|
-
const prepared = await prepare(kind, o.chain);
|
|
610
|
+
const prepared = await prepare(kind, o.chain, { budget: o.budget, maxFeeWei: o.maxFeeWei });
|
|
498
611
|
const assertion = await this.ceremony().get(prepared.webauthnOptions);
|
|
499
612
|
const status = await submit(prepared.id, assertion);
|
|
500
613
|
if (o.wait === false || status.state !== "submitted")
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/eip712.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** `personal_sign`: text, or `0x…` bytes, with the Ethereum prefix. */
|
|
2
|
+
export declare function hashMessage(message: string): Uint8Array;
|
|
3
|
+
type Field = {
|
|
4
|
+
name: string;
|
|
5
|
+
type: string;
|
|
6
|
+
};
|
|
7
|
+
type Types = Record<string, Field[]>;
|
|
8
|
+
export interface TypedData {
|
|
9
|
+
types: Types;
|
|
10
|
+
primaryType: string;
|
|
11
|
+
domain: Record<string, unknown>;
|
|
12
|
+
message: Record<string, unknown>;
|
|
13
|
+
}
|
|
14
|
+
/** `eth_signTypedData_v4`: the digest the signer signs. */
|
|
15
|
+
export declare function hashTypedData(typed: TypedData): Uint8Array;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=eip712.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eip712.d.ts","sourceRoot":"","sources":["../src/eip712.ts"],"names":[],"mappings":"AASA,uEAAuE;AACvE,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAIvD;AAED,KAAK,KAAK,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAC5C,KAAK,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AACrC,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AA4FD,2DAA2D;AAC3D,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,CAM1D"}
|
package/dist/eip712.js
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The two message hashes a dapp asks a wallet to sign, computed here so the
|
|
3
|
+
* client can check the server's: EIP-191 (`personal_sign`) and EIP-712
|
|
4
|
+
* (`eth_signTypedData_v4`). They follow the server's rules exactly, because a
|
|
5
|
+
* hash that differs is refused rather than signed.
|
|
6
|
+
*/
|
|
7
|
+
import { addressWord, word } from "./abi.js";
|
|
8
|
+
import { concatBytes, hexToBytes, keccak256, utf8 } from "./hash.js";
|
|
9
|
+
/** `personal_sign`: text, or `0x…` bytes, with the Ethereum prefix. */
|
|
10
|
+
export function hashMessage(message) {
|
|
11
|
+
const isHex = message.startsWith("0x") && (message.length - 2) % 2 === 0 && /^[0-9a-fA-F]*$/.test(message.slice(2));
|
|
12
|
+
const bytes = isHex ? hexToBytes(message) : utf8(message);
|
|
13
|
+
return keccak256(concatBytes(utf8(`\x19Ethereum Signed Message:\n${bytes.length}`), bytes));
|
|
14
|
+
}
|
|
15
|
+
// The domain separator is built from the domain fields present, in this
|
|
16
|
+
// order, whatever the dapp's own `EIP712Domain` type says: that is how the
|
|
17
|
+
// server computes it, and a dapp that lists them differently gets the same
|
|
18
|
+
// hash from any standard signer.
|
|
19
|
+
const DOMAIN_FIELDS = [
|
|
20
|
+
{ name: "name", type: "string" },
|
|
21
|
+
{ name: "version", type: "string" },
|
|
22
|
+
{ name: "chainId", type: "uint256" },
|
|
23
|
+
{ name: "verifyingContract", type: "address" },
|
|
24
|
+
{ name: "salt", type: "bytes32" },
|
|
25
|
+
];
|
|
26
|
+
const baseType = (t) => t.replace(/\[\d*\]$/, "");
|
|
27
|
+
function dependencies(primary, types, found = new Set()) {
|
|
28
|
+
const t = baseType(primary);
|
|
29
|
+
if (found.has(t) || !types[t])
|
|
30
|
+
return found;
|
|
31
|
+
found.add(t);
|
|
32
|
+
for (const f of types[t])
|
|
33
|
+
dependencies(f.type, types, found);
|
|
34
|
+
return found;
|
|
35
|
+
}
|
|
36
|
+
function encodeType(primary, types) {
|
|
37
|
+
const deps = [...dependencies(primary, types)].filter((d) => d !== primary).sort();
|
|
38
|
+
return [primary, ...deps].map((t) => `${t}(${types[t].map((f) => `${f.type} ${f.name}`).join(",")})`).join("");
|
|
39
|
+
}
|
|
40
|
+
function toBytes(v) {
|
|
41
|
+
if (typeof v === "string")
|
|
42
|
+
return hexToBytes(v);
|
|
43
|
+
if (v instanceof Uint8Array)
|
|
44
|
+
return v;
|
|
45
|
+
if (Array.isArray(v))
|
|
46
|
+
return new Uint8Array(v);
|
|
47
|
+
throw new Error("bytes value is not hex");
|
|
48
|
+
}
|
|
49
|
+
function toInt(v) {
|
|
50
|
+
if (typeof v === "bigint")
|
|
51
|
+
return v;
|
|
52
|
+
if (typeof v === "number") {
|
|
53
|
+
if (!Number.isSafeInteger(v))
|
|
54
|
+
throw new Error("number is not a safe integer");
|
|
55
|
+
return BigInt(v);
|
|
56
|
+
}
|
|
57
|
+
if (typeof v === "string" && v.trim() !== "")
|
|
58
|
+
return BigInt(v.trim());
|
|
59
|
+
throw new Error("integer value is missing");
|
|
60
|
+
}
|
|
61
|
+
function encodeValue(type, value, types) {
|
|
62
|
+
const array = type.match(/^(.*)\[(\d*)\]$/);
|
|
63
|
+
if (array) {
|
|
64
|
+
if (!Array.isArray(value))
|
|
65
|
+
throw new Error(`${type} is not an array`);
|
|
66
|
+
if (array[2] && value.length !== Number(array[2]))
|
|
67
|
+
throw new Error(`${type} has the wrong length`);
|
|
68
|
+
return keccak256(concatBytes(...value.map((v) => encodeValue(array[1], v, types))));
|
|
69
|
+
}
|
|
70
|
+
if (types[type])
|
|
71
|
+
return hashStruct(type, value, types);
|
|
72
|
+
if (type === "string")
|
|
73
|
+
return keccak256(utf8(String(value)));
|
|
74
|
+
if (type === "bytes")
|
|
75
|
+
return keccak256(toBytes(value));
|
|
76
|
+
if (type === "address")
|
|
77
|
+
return addressWord(String(value));
|
|
78
|
+
if (type === "bool") {
|
|
79
|
+
if (typeof value === "boolean")
|
|
80
|
+
return word(value ? 1n : 0n);
|
|
81
|
+
if (value === "true" || value === "false")
|
|
82
|
+
return word(value === "true" ? 1n : 0n);
|
|
83
|
+
return word(toInt(value) === 0n ? 0n : 1n);
|
|
84
|
+
}
|
|
85
|
+
const fixedBytes = type.match(/^bytes(\d+)$/);
|
|
86
|
+
if (fixedBytes) {
|
|
87
|
+
const b = toBytes(value);
|
|
88
|
+
if (b.length > Number(fixedBytes[1]))
|
|
89
|
+
throw new Error(`${type} is too long`);
|
|
90
|
+
return concatBytes(b, new Uint8Array(32 - b.length));
|
|
91
|
+
}
|
|
92
|
+
const int = type.match(/^(u?)int(\d*)$/);
|
|
93
|
+
if (int) {
|
|
94
|
+
const bits = BigInt(int[2] || "256");
|
|
95
|
+
const v = toInt(value);
|
|
96
|
+
if (int[1] === "u") {
|
|
97
|
+
if (v < 0n || v >= 1n << bits)
|
|
98
|
+
throw new Error(`${type} out of range`);
|
|
99
|
+
return word(v);
|
|
100
|
+
}
|
|
101
|
+
if (v < -(1n << (bits - 1n)) || v >= 1n << (bits - 1n))
|
|
102
|
+
throw new Error(`${type} out of range`);
|
|
103
|
+
return word(v < 0n ? (1n << 256n) + v : v);
|
|
104
|
+
}
|
|
105
|
+
throw new Error(`unknown EIP-712 type ${type}`);
|
|
106
|
+
}
|
|
107
|
+
function hashStruct(type, data, types) {
|
|
108
|
+
const fields = types[type];
|
|
109
|
+
const encoded = fields.map((f) => {
|
|
110
|
+
const v = data?.[f.name];
|
|
111
|
+
if (v === undefined || v === null)
|
|
112
|
+
throw new Error(`${type}.${f.name} is missing`);
|
|
113
|
+
return encodeValue(f.type, v, types);
|
|
114
|
+
});
|
|
115
|
+
return keccak256(concatBytes(keccak256(utf8(encodeType(type, types))), ...encoded));
|
|
116
|
+
}
|
|
117
|
+
/** `eth_signTypedData_v4`: the digest the signer signs. */
|
|
118
|
+
export function hashTypedData(typed) {
|
|
119
|
+
const types = { ...typed.types, EIP712Domain: DOMAIN_FIELDS.filter((f) => typed.domain?.[f.name] !== undefined) };
|
|
120
|
+
const domain = hashStruct("EIP712Domain", typed.domain ?? {}, types);
|
|
121
|
+
if (typed.primaryType === "EIP712Domain")
|
|
122
|
+
return keccak256(concatBytes(new Uint8Array([0x19, 0x01]), domain));
|
|
123
|
+
if (!types[typed.primaryType])
|
|
124
|
+
throw new Error(`primaryType ${typed.primaryType} has no type`);
|
|
125
|
+
return keccak256(concatBytes(new Uint8Array([0x19, 0x01]), domain, hashStruct(typed.primaryType, typed.message, types)));
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=eip712.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eip712.js","sourceRoot":"","sources":["../src/eip712.ts"],"names":[],"mappings":"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"}
|
package/dist/hash.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The hashing a client needs to check what its passkey is about to sign:
|
|
3
|
+
* keccak-256 (Ethereum), SHA-256 (the Solana program's challenge), and the
|
|
4
|
+
* byte, base58 and base64 helpers around them.
|
|
5
|
+
*
|
|
6
|
+
* Written out here rather than imported: the SDK has no dependencies, and a
|
|
7
|
+
* check that trusted a third party's code would only move the trust. Both
|
|
8
|
+
* hashes are tested against published vectors.
|
|
9
|
+
*/
|
|
10
|
+
export declare function hexToBytes(hex: string): Uint8Array;
|
|
11
|
+
export declare function bytesToHex(b: Uint8Array): string;
|
|
12
|
+
export declare function concatBytes(...parts: Uint8Array[]): Uint8Array;
|
|
13
|
+
export declare function utf8(s: string): Uint8Array;
|
|
14
|
+
export declare function equalBytes(a: Uint8Array, b: Uint8Array): boolean;
|
|
15
|
+
/** Ethereum's keccak-256 (the original padding, not SHA3-256's). */
|
|
16
|
+
export declare function keccak256(data: Uint8Array): Uint8Array;
|
|
17
|
+
/** SHA-256, synchronous, so React Native needs no WebCrypto. */
|
|
18
|
+
export declare function sha256(data: Uint8Array): Uint8Array;
|
|
19
|
+
export declare function base58Decode(s: string): Uint8Array;
|
|
20
|
+
export declare function base58Encode(b: Uint8Array): string;
|
|
21
|
+
/** A Solana address as its 32 bytes. */
|
|
22
|
+
export declare function pubkeyBytes(s: string): Uint8Array;
|
|
23
|
+
/** Standard base64, padded: how Solana instruction data travels. */
|
|
24
|
+
export declare function base64Encode(b: Uint8Array): string;
|
|
25
|
+
/** Standard base64, padded or not. */
|
|
26
|
+
export declare function base64Decode(s: string): Uint8Array;
|
|
27
|
+
//# sourceMappingURL=hash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAMlD;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAIhD;AAED,wBAAgB,WAAW,CAAC,GAAG,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU,CAQ9D;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAE1C;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAKhE;AA4CD,oEAAoE;AACpE,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAwBtD;AAeD,gEAAgE;AAChE,wBAAgB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CA4CnD;AAMD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAiBlD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAalD;AAED,wCAAwC;AACxC,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAIjD;AAMD,oEAAoE;AACpE,wBAAgB,YAAY,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CASlD;AAED,sCAAsC;AACtC,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAgBlD"}
|