@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/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, chain) => this.me.operations.run({ kind: "espees_sell_fund", order }, { chain }),
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) => this.transport.request("POST", `${base}/solana/operations`, { ...action, cluster, lookupTables, client: this.client }, opts);
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
- const prepare = (kind, chain) => this.transport.request("POST", `${base}/operations`, { ...kind, chain, client: this.client }, opts);
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")
@@ -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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"}
@@ -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"}