@temporalabs/treasury 0.1.2 → 0.1.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.
Files changed (83) hide show
  1. package/README.md +45 -13
  2. package/THIRD_PARTY_NOTICES.connect-page.md +494 -24
  3. package/THIRD_PARTY_NOTICES.md +579 -6
  4. package/dist/cli.js +28 -5
  5. package/dist/cli.js.map +1 -1
  6. package/dist/client.d.ts +50 -209
  7. package/dist/client.js +66 -11
  8. package/dist/client.js.map +1 -1
  9. package/dist/config/earn.d.ts +16 -1
  10. package/dist/config/earn.js +16 -1
  11. package/dist/config/earn.js.map +1 -1
  12. package/dist/connect/ack.d.ts +88 -1
  13. package/dist/connect/ack.js +177 -6
  14. package/dist/connect/ack.js.map +1 -1
  15. package/dist/connect/commands.d.ts +30 -0
  16. package/dist/connect/commands.js +846 -88
  17. package/dist/connect/commands.js.map +1 -1
  18. package/dist/connect/config.d.ts +7 -5
  19. package/dist/connect/config.js +8 -6
  20. package/dist/connect/config.js.map +1 -1
  21. package/dist/connect/gate-solana.d.ts +8 -0
  22. package/dist/connect/gate-solana.js +147 -0
  23. package/dist/connect/gate-solana.js.map +1 -0
  24. package/dist/connect/http.d.ts +17 -2
  25. package/dist/connect/http.js +45 -13
  26. package/dist/connect/http.js.map +1 -1
  27. package/dist/connect/page.d.ts +1 -1
  28. package/dist/connect/page.js +2 -2
  29. package/dist/connect/page.js.map +1 -1
  30. package/dist/connect/session.d.ts +40 -1
  31. package/dist/connect/session.js +243 -2
  32. package/dist/connect/session.js.map +1 -1
  33. package/dist/connect/solana.d.ts +112 -0
  34. package/dist/connect/solana.js +370 -0
  35. package/dist/connect/solana.js.map +1 -0
  36. package/dist/connect-page.js +835 -671
  37. package/dist/disclosures.d.ts +7 -4
  38. package/dist/disclosures.js +7 -4
  39. package/dist/disclosures.js.map +1 -1
  40. package/dist/earn/commands.js +127 -54
  41. package/dist/earn/commands.js.map +1 -1
  42. package/dist/earn/solana.d.ts +278 -0
  43. package/dist/earn/solana.js +316 -0
  44. package/dist/earn/solana.js.map +1 -0
  45. package/dist/guide.d.ts +15 -0
  46. package/dist/guide.js +50 -0
  47. package/dist/guide.js.map +1 -0
  48. package/dist/links.js +2 -0
  49. package/dist/links.js.map +1 -1
  50. package/dist/position.d.ts +3 -2
  51. package/dist/position.js +6 -3
  52. package/dist/position.js.map +1 -1
  53. package/dist/quote.js +2 -2
  54. package/dist/quote.js.map +1 -1
  55. package/dist/redact.js +7 -1
  56. package/dist/redact.js.map +1 -1
  57. package/dist/registry-schema.d.ts +79 -2
  58. package/dist/registry-schema.js +77 -1
  59. package/dist/registry-schema.js.map +1 -1
  60. package/dist/registry.d.ts +21 -1
  61. package/dist/registry.js +48 -10
  62. package/dist/registry.js.map +1 -1
  63. package/dist/solana/constants.d.ts +49 -0
  64. package/dist/solana/constants.js +50 -0
  65. package/dist/solana/constants.js.map +1 -0
  66. package/dist/solana/kvault.d.ts +99 -0
  67. package/dist/solana/kvault.js +192 -0
  68. package/dist/solana/kvault.js.map +1 -0
  69. package/dist/solana/layout.d.ts +143 -0
  70. package/dist/solana/layout.js +209 -0
  71. package/dist/solana/layout.js.map +1 -0
  72. package/dist/solana/rpc.d.ts +24 -0
  73. package/dist/solana/rpc.js +66 -0
  74. package/dist/solana/rpc.js.map +1 -0
  75. package/dist/solana/vault.d.ts +153 -0
  76. package/dist/solana/vault.js +322 -0
  77. package/dist/solana/vault.js.map +1 -0
  78. package/dist/treasury.mjs +37410 -27965
  79. package/dist/version.js +5 -10
  80. package/dist/version.js.map +1 -1
  81. package/llms.txt +637 -0
  82. package/package.json +14 -8
  83. package/registry/vaults.json +113 -0
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/connect/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/connect/commands.ts"],"names":[],"mappings":"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"}
@@ -9,13 +9,15 @@
9
9
  */
10
10
  export declare const DEFAULT_PRIVY_APP_ID = "cmubfegl2028d0ci3n0f2u6z5";
11
11
  /**
12
- * The fixed local port. Privy accepts sign-in only from origins listed in its dashboard, by exact
13
- * string, so the page must always be served from the same `http://localhost:<port>`. Change it with
14
- * `TREASURY_CONNECT_PORT` only together with the Privy app's allowed domains.
12
+ * The local ports the page may be served on, tried in this order. Privy accepts sign-in only from
13
+ * origins listed in its dashboard, by exact string, so every one of them is listed there as
14
+ * `http://localhost:<port>`. The first stays 53682, the only port earlier versions used, so an
15
+ * operator who signed in before keeps the same origin. `TREASURY_CONNECT_PORT` replaces the list with
16
+ * one port, which must then be listed in the Privy app's allowed domains.
15
17
  */
16
- export declare const DEFAULT_CONNECT_PORT = 53682;
18
+ export declare const DEFAULT_CONNECT_PORTS: readonly number[];
17
19
  export declare const privyAppId: () => string;
18
- export declare const connectPort: () => number;
20
+ export declare const connectPorts: () => readonly number[];
19
21
  /** Where the session file lives; `TREASURY_CONNECT_HOME` moves it (tests use a temporary directory). */
20
22
  export declare const connectHome: () => string | undefined;
21
23
  /** Set to anything to stop the CLI opening a browser itself (it prints the URL instead). */
@@ -9,19 +9,21 @@
9
9
  */
10
10
  export const DEFAULT_PRIVY_APP_ID = "cmubfegl2028d0ci3n0f2u6z5";
11
11
  /**
12
- * The fixed local port. Privy accepts sign-in only from origins listed in its dashboard, by exact
13
- * string, so the page must always be served from the same `http://localhost:<port>`. Change it with
14
- * `TREASURY_CONNECT_PORT` only together with the Privy app's allowed domains.
12
+ * The local ports the page may be served on, tried in this order. Privy accepts sign-in only from
13
+ * origins listed in its dashboard, by exact string, so every one of them is listed there as
14
+ * `http://localhost:<port>`. The first stays 53682, the only port earlier versions used, so an
15
+ * operator who signed in before keeps the same origin. `TREASURY_CONNECT_PORT` replaces the list with
16
+ * one port, which must then be listed in the Privy app's allowed domains.
15
17
  */
16
- export const DEFAULT_CONNECT_PORT = 53682;
18
+ export const DEFAULT_CONNECT_PORTS = [53682, 53683, 53684, 53685, 53686];
17
19
  export const privyAppId = () => {
18
20
  const v = (process.env["PRIVY_APP_ID"] ?? "").trim();
19
21
  return v.length > 0 && !v.includes("${") ? v : DEFAULT_PRIVY_APP_ID;
20
22
  };
21
- export const connectPort = () => {
23
+ export const connectPorts = () => {
22
24
  const raw = (process.env["TREASURY_CONNECT_PORT"] ?? "").trim();
23
25
  const n = Number(raw);
24
- return raw.length > 0 && Number.isInteger(n) && n > 0 && n < 65536 ? n : DEFAULT_CONNECT_PORT;
26
+ return raw.length > 0 && Number.isInteger(n) && n > 0 && n < 65536 ? [n] : DEFAULT_CONNECT_PORTS;
25
27
  };
26
28
  /** Where the session file lives; `TREASURY_CONNECT_HOME` moves it (tests use a temporary directory). */
27
29
  export const connectHome = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/connect/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;AAEhE;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAE1C,MAAM,CAAC,MAAM,UAAU,GAAG,GAAW,EAAE;IACrC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;AACtE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAW,EAAE;IACtC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChE,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;AAChG,CAAC,CAAC;AAEF,wGAAwG;AACxG,MAAM,CAAC,MAAM,WAAW,GAAG,GAAuB,EAAE;IAClD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9D,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC,CAAC;AAEF,4FAA4F;AAC5F,MAAM,CAAC,MAAM,MAAM,GAAG,GAAY,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/connect/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAE5F,MAAM,CAAC,MAAM,UAAU,GAAG,GAAW,EAAE;IACrC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;AACtE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAsB,EAAE;IAClD,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChE,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC;AACnG,CAAC,CAAC;AAEF,wGAAwG;AACxG,MAAM,CAAC,MAAM,WAAW,GAAG,GAAuB,EAAE;IAClD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9D,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC,CAAC;AAEF,4FAA4F;AAC5F,MAAM,CAAC,MAAM,MAAM,GAAG,GAAY,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { SolanaVaultEntry } from "../registry-schema.js";
2
+ export interface AdmittedSolana {
3
+ kind: "deposit" | "withdraw";
4
+ vault: SolanaVaultEntry;
5
+ /** A deposit's base units of the asset, or the shares a withdrawal burns (summed over its legs). */
6
+ amount: bigint;
7
+ }
8
+ export declare function admitSolana(wireBase64: string, account: string): Promise<AdmittedSolana>;
@@ -0,0 +1,147 @@
1
+ /**
2
+ * The Solana gate: what the confirm page may hand a connected Solana wallet. The counterpart of `gate.ts`.
3
+ *
4
+ * It reads the transaction's own BYTES — the wire transaction the wallet will be given — and admits it only if
5
+ * every instruction in it is one of these, each for the connected account and a registry vault:
6
+ *
7
+ * ComputeBudget SetComputeUnitLimit nothing else from that program (no fee price, no heap)
8
+ * Associated Token Account CreateIdempotent payer and owner the connected account; mint the vault's
9
+ * share mint or its token mint
10
+ * Kamino vault `deposit` exactly one, signer the connected account, vault a registry vault,
11
+ * paying from and into the account's own token accounts
12
+ * Kamino vault `withdraw` one or more, the same checks
13
+ *
14
+ * Within a deposit or withdrawal, every account the registry determines is pinned: the vault state (both
15
+ * places a withdrawal names it), the vault's token vault and authority (PDAs of the vault), its token and
16
+ * share mints, and the connected account's own token and share accounts. The reserve, market and program
17
+ * accounts a withdrawal lists are NOT pinned here: they are left to the vault program's own account
18
+ * constraints, which refuse a reserve the vault does not allocate to.
19
+ *
20
+ * The fee payer and the only signer must be the connected account. Anything else — another program, a
21
+ * transfer, a second signer, a deposit and a withdrawal together, a vault not in the registry — is refused
22
+ * before any page opens. It checks the bytes, not the builder that made them: a builder bug, or a transaction
23
+ * from anywhere else, meets the same refusal.
24
+ */
25
+ import { AccountRole, decompileTransactionMessage, getBase64Encoder, getCompiledTransactionMessageDecoder, getTransactionDecoder, } from "@solana/kit";
26
+ import { listSolanaVaults } from "../registry.js";
27
+ import { ASSOCIATED_TOKEN_PROGRAM_ID, COMPUTE_BUDGET_PROGRAM_ID, KVAULT_PROGRAM_ID, SPL_TOKEN_PROGRAM_ID, SYSTEM_PROGRAM_ID } from "../solana/constants.js";
28
+ import { associatedTokenAccount, DISCRIMINATORS, vaultPdas } from "../solana/kvault.js";
29
+ const same = (a, b) => a.length <= b.length && a.every((x, i) => b[i] === x);
30
+ const u64 = (d, o) => new DataView(d.buffer, d.byteOffset, d.byteLength).getBigUint64(o, true);
31
+ const isSigner = (role) => role === AccountRole.READONLY_SIGNER || role === AccountRole.WRITABLE_SIGNER;
32
+ export async function admitSolana(wireBase64, account) {
33
+ const refuse = (why) => {
34
+ throw new Error(`refused: ${why}`);
35
+ };
36
+ let ixs;
37
+ let feePayer;
38
+ let signers;
39
+ try {
40
+ const tx = getTransactionDecoder().decode(getBase64Encoder().encode(wireBase64));
41
+ const compiled = getCompiledTransactionMessageDecoder().decode(tx.messageBytes);
42
+ signers = compiled.header.numSignerAccounts;
43
+ if ("addressTableLookups" in compiled && (compiled.addressTableLookups?.length ?? 0) > 0)
44
+ refuse("the transaction loads accounts from a lookup table, which this gate cannot read");
45
+ const message = decompileTransactionMessage(compiled);
46
+ feePayer = message.feePayer.address;
47
+ ixs = message.instructions;
48
+ }
49
+ catch (e) {
50
+ if (e instanceof Error && e.message.startsWith("refused:"))
51
+ throw e;
52
+ return refuse(`the transaction does not decode (${e instanceof Error ? e.message : String(e)})`);
53
+ }
54
+ if (feePayer !== account)
55
+ refuse(`the fee payer is ${feePayer}, not the connected account ${account}`);
56
+ if (signers !== 1)
57
+ refuse(`the transaction needs ${signers} signers; only the connected account may sign`);
58
+ let kind;
59
+ let vault;
60
+ let amount = 0n;
61
+ const ataMints = new Set();
62
+ for (const [i, ix] of ixs.entries()) {
63
+ const at = `instruction ${i + 1}`;
64
+ const data = Uint8Array.from(ix.data ?? []);
65
+ const accts = ix.accounts ?? [];
66
+ for (const a of accts)
67
+ if (isSigner(a.role) && a.address !== account)
68
+ refuse(`${at} asks ${a.address} to sign, not the connected account`);
69
+ switch (ix.programAddress) {
70
+ case COMPUTE_BUDGET_PROGRAM_ID:
71
+ if (data.length !== 5 || data[0] !== 2)
72
+ refuse(`${at}: only a compute-unit limit is allowed from the Compute Budget program`);
73
+ break;
74
+ case ASSOCIATED_TOKEN_PROGRAM_ID: {
75
+ if (data.length !== 1 || data[0] !== 1)
76
+ refuse(`${at}: only an idempotent token-account creation is allowed`);
77
+ const [payer, ata, owner, mint, system, token] = accts.map((a) => a.address);
78
+ if (payer !== account || owner !== account)
79
+ refuse(`${at} creates a token account for ${owner}, paid by ${payer}; only the connected account's own`);
80
+ if (system !== SYSTEM_PROGRAM_ID || token !== SPL_TOKEN_PROGRAM_ID)
81
+ refuse(`${at} names an unexpected program`);
82
+ if (ata !== (await associatedTokenAccount(account, mint)))
83
+ refuse(`${at} names a token account that is not the connected account's for ${mint}`);
84
+ ataMints.add(mint);
85
+ break;
86
+ }
87
+ case KVAULT_PROGRAM_ID: {
88
+ const isDeposit = same(DISCRIMINATORS.deposit, data);
89
+ const isWithdraw = same(DISCRIMINATORS.withdraw, data);
90
+ if (!isDeposit && !isWithdraw)
91
+ refuse(`${at} is a Kamino vault instruction other than deposit or withdraw`);
92
+ if (data.length !== 16)
93
+ refuse(`${at} carries ${data.length} bytes of data, not 16`);
94
+ const k = isDeposit ? "deposit" : "withdraw";
95
+ if (kind !== undefined && kind !== k)
96
+ refuse("a deposit and a withdrawal in one transaction");
97
+ if (k === "deposit" && kind === "deposit")
98
+ refuse("two deposits in one transaction");
99
+ kind = k;
100
+ const user = accts[0]?.address;
101
+ const state = accts[1]?.address;
102
+ if (user !== account)
103
+ refuse(`${at} acts for ${user}, not the connected account ${account}`);
104
+ const v = listSolanaVaults().find((x) => x.address === state);
105
+ if (!v)
106
+ refuse(`${at} names ${state}, which is not a vault in the registry`);
107
+ if (vault && vault.address !== v.address)
108
+ refuse("two different vaults in one transaction");
109
+ vault = v;
110
+ const [tokenAta, sharesAta, pdas] = await Promise.all([associatedTokenAccount(account, v.asset.address), associatedTokenAccount(account, v.sharesMint), vaultPdas(v.address)]);
111
+ // The vault's own token vault and authority are PDAs of the vault: pinned, not left to the program.
112
+ const tokenVault = accts[isDeposit ? 2 : 3]?.address;
113
+ const authority = accts[4]?.address;
114
+ if (tokenVault !== pdas.tokenVault || authority !== pdas.baseVaultAuthority)
115
+ refuse(`${at} names a token vault or vault authority that is not ${v.symbol}'s`);
116
+ // A withdrawal names the vault state twice (its reserve-accounts group repeats it): both must be the vault.
117
+ if (isWithdraw && accts[14]?.address !== state)
118
+ refuse(`${at} names a second vault state ${accts[14]?.address}, not ${state}`);
119
+ // The fixed account positions, as `src/solana/kvault.ts` builds them and Kamino's SDK does.
120
+ const userToken = accts[isDeposit ? 6 : 5]?.address;
121
+ const userShares = accts[7]?.address; // both instructions put the user's share account at index 7
122
+ const mint = accts[isDeposit ? 3 : 6]?.address;
123
+ const sharesMint = accts[isDeposit ? 5 : 8]?.address;
124
+ if (mint !== v.asset.address || sharesMint !== v.sharesMint)
125
+ refuse(`${at} names a token or share mint that is not the vault's`);
126
+ if (userToken !== tokenAta)
127
+ refuse(`${at} ${isDeposit ? "takes from" : "pays into"} ${userToken}, not the connected account's own ${v.asset.symbol} account`);
128
+ if (userShares !== sharesAta)
129
+ refuse(`${at} names ${userShares} as the share account, not the connected account's own`);
130
+ const n = u64(data, 8);
131
+ if (n === 0n)
132
+ refuse(`${at} moves 0`);
133
+ amount += n;
134
+ break;
135
+ }
136
+ default:
137
+ refuse(`${at} calls ${ix.programAddress}, which is not one this page may send`);
138
+ }
139
+ }
140
+ if (!kind || !vault)
141
+ return refuse("the transaction contains no deposit or withdrawal");
142
+ for (const m of ataMints)
143
+ if (m !== vault.sharesMint && m !== vault.asset.address)
144
+ refuse(`a token account is created for ${m}, which is not this vault's`);
145
+ return { kind, vault, amount };
146
+ }
147
+ //# sourceMappingURL=gate-solana.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate-solana.js","sourceRoot":"","sources":["../../src/connect/gate-solana.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EACL,WAAW,EACX,2BAA2B,EAC3B,gBAAgB,EAChB,oCAAoC,EACpC,qBAAqB,GAEtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC5J,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AASxF,MAAM,IAAI,GAAG,CAAC,CAAoB,EAAE,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5G,MAAM,GAAG,GAAG,CAAC,CAAa,EAAE,CAAS,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACnH,MAAM,QAAQ,GAAG,CAAC,IAAiB,EAAE,EAAE,CAAC,IAAI,KAAK,WAAW,CAAC,eAAe,IAAI,IAAI,KAAK,WAAW,CAAC,eAAe,CAAC;AAErH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,UAAkB,EAAE,OAAe;IACnE,MAAM,MAAM,GAAG,CAAC,GAAW,EAAS,EAAE;QACpC,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC;IACF,IAAI,GAA2B,CAAC;IAChC,IAAI,QAAgB,CAAC;IACrB,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,qBAAqB,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACjF,MAAM,QAAQ,GAAG,oCAAoC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;QAChF,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAC5C,IAAI,qBAAqB,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;YAAE,MAAM,CAAC,iFAAiF,CAAC,CAAC;QACpL,MAAM,OAAO,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;QACtD,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;QACpC,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;IAC7B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,MAAM,CAAC,CAAC;QACpE,OAAO,MAAM,CAAC,oCAAoC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACnG,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO;QAAE,MAAM,CAAC,oBAAoB,QAAQ,+BAA+B,OAAO,EAAE,CAAC,CAAC;IACvG,IAAI,OAAO,KAAK,CAAC;QAAE,MAAM,CAAC,yBAAyB,OAAO,+CAA+C,CAAC,CAAC;IAE3G,IAAI,IAAwC,CAAC;IAC7C,IAAI,KAAmC,CAAC;IACxC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;QACpC,MAAM,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC;QAChC,KAAK,MAAM,CAAC,IAAI,KAAK;YAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO;gBAAE,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,qCAAqC,CAAC,CAAC;QAC3I,QAAQ,EAAE,CAAC,cAAc,EAAE,CAAC;YAC1B,KAAK,yBAAyB;gBAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;oBAAE,MAAM,CAAC,GAAG,EAAE,wEAAwE,CAAC,CAAC;gBAC9H,MAAM;YACR,KAAK,2BAA2B,CAAC,CAAC,CAAC;gBACjC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;oBAAE,MAAM,CAAC,GAAG,EAAE,wDAAwD,CAAC,CAAC;gBAC9G,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC7E,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO;oBAAE,MAAM,CAAC,GAAG,EAAE,gCAAgC,KAAK,aAAa,KAAK,oCAAoC,CAAC,CAAC;gBACrJ,IAAI,MAAM,KAAK,iBAAiB,IAAI,KAAK,KAAK,oBAAoB;oBAAE,MAAM,CAAC,GAAG,EAAE,8BAA8B,CAAC,CAAC;gBAChH,IAAI,GAAG,KAAK,CAAC,MAAM,sBAAsB,CAAC,OAAO,EAAE,IAAK,CAAC,CAAC;oBAAE,MAAM,CAAC,GAAG,EAAE,kEAAkE,IAAI,EAAE,CAAC,CAAC;gBAClJ,QAAQ,CAAC,GAAG,CAAC,IAAK,CAAC,CAAC;gBACpB,MAAM;YACR,CAAC;YACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACrD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACvD,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU;oBAAE,MAAM,CAAC,GAAG,EAAE,+DAA+D,CAAC,CAAC;gBAC5G,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE;oBAAE,MAAM,CAAC,GAAG,EAAE,YAAY,IAAI,CAAC,MAAM,wBAAwB,CAAC,CAAC;gBACrF,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;gBAC7C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,CAAC;oBAAE,MAAM,CAAC,+CAA+C,CAAC,CAAC;gBAC9F,IAAI,CAAC,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;oBAAE,MAAM,CAAC,iCAAiC,CAAC,CAAC;gBACrF,IAAI,GAAG,CAAC,CAAC;gBACT,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;gBAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;gBAChC,IAAI,IAAI,KAAK,OAAO;oBAAE,MAAM,CAAC,GAAG,EAAE,aAAa,IAAI,+BAA+B,OAAO,EAAE,CAAC,CAAC;gBAC7F,MAAM,CAAC,GAAG,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC;gBAC9D,IAAI,CAAC,CAAC;oBAAE,MAAM,CAAC,GAAG,EAAE,UAAU,KAAK,wCAAwC,CAAC,CAAC;gBAC7E,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,CAAE,CAAC,OAAO;oBAAE,MAAM,CAAC,yCAAyC,CAAC,CAAC;gBAC7F,KAAK,GAAG,CAAE,CAAC;gBACX,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,sBAAsB,CAAC,OAAO,EAAE,CAAE,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAClL,oGAAoG;gBACpG,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;gBACrD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;gBACpC,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU,IAAI,SAAS,KAAK,IAAI,CAAC,kBAAkB;oBAAE,MAAM,CAAC,GAAG,EAAE,uDAAuD,CAAE,CAAC,MAAM,IAAI,CAAC,CAAC;gBAC/J,4GAA4G;gBAC5G,IAAI,UAAU,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,OAAO,KAAK,KAAK;oBAAE,MAAM,CAAC,GAAG,EAAE,+BAA+B,KAAK,CAAC,EAAE,CAAC,EAAE,OAAO,SAAS,KAAK,EAAE,CAAC,CAAC;gBAC/H,4FAA4F;gBAC5F,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;gBACpD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,4DAA4D;gBAClG,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;gBAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;gBACrD,IAAI,IAAI,KAAK,CAAE,CAAC,KAAK,CAAC,OAAO,IAAI,UAAU,KAAK,CAAE,CAAC,UAAU;oBAAE,MAAM,CAAC,GAAG,EAAE,sDAAsD,CAAC,CAAC;gBACnI,IAAI,SAAS,KAAK,QAAQ;oBAAE,MAAM,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,IAAI,SAAS,qCAAqC,CAAE,CAAC,KAAK,CAAC,MAAM,UAAU,CAAC,CAAC;gBAC/J,IAAI,UAAU,KAAK,SAAS;oBAAE,MAAM,CAAC,GAAG,EAAE,UAAU,UAAU,wDAAwD,CAAC,CAAC;gBACxH,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACvB,IAAI,CAAC,KAAK,EAAE;oBAAE,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;gBACtC,MAAM,IAAI,CAAC,CAAC;gBACZ,MAAM;YACR,CAAC;YACD;gBACE,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,cAAc,uCAAuC,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IACD,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC,mDAAmD,CAAC,CAAC;IACxF,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,IAAI,CAAC,KAAK,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,OAAO;YAAE,MAAM,CAAC,kCAAkC,CAAC,6BAA6B,CAAC,CAAC;IAC5J,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACjC,CAAC"}
@@ -20,7 +20,12 @@ export type Settled<T> = {
20
20
  reason: string;
21
21
  };
22
22
  export interface Flow<T> {
23
- mode: "connect" | "confirm";
23
+ mode: "connect" | "confirm" | "plan";
24
+ /**
25
+ * The page's secret, when it must outlive this server: `connect plan --run` serves one plan's page across
26
+ * several runs, so the operator's open tab keeps working. A fresh random one otherwise.
27
+ */
28
+ secret?: string;
24
29
  ttlMs: number;
25
30
  /** The page served at `/<mode>`, as a function of the flow's secret. */
26
31
  html: (secret: string) => string;
@@ -32,6 +37,11 @@ export interface Flow<T> {
32
37
  }>;
33
38
  info: () => Record<string, unknown>;
34
39
  challenge?: (address: string, origin: string, nonce: string) => string;
40
+ /**
41
+ * Reads the address a sign-in challenge is for, or `undefined` for one that is not an address. An EVM
42
+ * address (checksummed) unless the flow says otherwise; the Solana sign-in takes a base58 one.
43
+ */
44
+ challengeAddress?: (a: unknown) => string | undefined;
35
45
  accept: (body: Record<string, unknown>, ctx: {
36
46
  nonce: string;
37
47
  origin: string;
@@ -44,11 +54,16 @@ export interface Flow<T> {
44
54
  timeoutReason?: () => string;
45
55
  /** Overrides the cancel grace period (tests). */
46
56
  cancelGraceMs?: number;
47
- port: number;
57
+ /** Tried in order; the page takes the first one free. Each must be an origin the Privy app allows. */
58
+ ports: readonly number[];
48
59
  }
49
60
  export interface Handle<T> {
50
61
  url: string;
62
+ /** The port the page was served on. */
63
+ port: number;
51
64
  done: Promise<Settled<T>>;
52
65
  close: () => void;
53
66
  }
67
+ /** A page secret: what every request back to the process must carry. */
68
+ export declare const newSecret: () => string;
54
69
  export declare function serveOnce<T>(flow: Flow<T>): Promise<Handle<T>>;
@@ -10,7 +10,10 @@
10
10
  import http from "node:http";
11
11
  import { randomBytes, timingSafeEqual } from "node:crypto";
12
12
  import { getAddress, isAddress } from "viem";
13
+ import { claimPageLock } from "./session.js";
13
14
  const MAX_BODY_BYTES = 16 * 1024;
15
+ /** How long past the page's own time limit the lock stays valid, covering the cancel grace and the close. */
16
+ const LOCK_MARGIN_MS = 60_000;
14
17
  /** How long a cancel waits for a result already being checked, so it can carry that verdict. */
15
18
  const CANCEL_GRACE_MS = 30_000;
16
19
  const same = (a, b) => {
@@ -18,10 +21,13 @@ const same = (a, b) => {
18
21
  const y = Buffer.from(b);
19
22
  return x.length === y.length && timingSafeEqual(x, y);
20
23
  };
24
+ /** A page secret: what every request back to the process must carry. */
25
+ export const newSecret = () => randomBytes(24).toString("hex");
21
26
  export async function serveOnce(flow) {
22
- const secret = randomBytes(24).toString("hex");
23
- // Privy matches allowed origins by exact string, and `localhost` is the host it documents.
24
- const origin = `http://localhost:${flow.port}`;
27
+ const secret = flow.secret ?? newSecret();
28
+ // Privy matches allowed origins by exact string, and `localhost` is the host it documents. Set to
29
+ // the port being tried; a request can only arrive on the port that was bound.
30
+ let origin = "";
25
31
  let settled = false;
26
32
  let busy = false;
27
33
  /** A cancel or timeout that arrived while a result was being checked; applied once the check ends. */
@@ -104,9 +110,9 @@ export async function serveOnce(flow) {
104
110
  if (!flow.challenge)
105
111
  return json(res, 404, { ok: false, reason: "not found" });
106
112
  const a = body["address"];
107
- if (typeof a !== "string" || !isAddress(a))
113
+ const address = flow.challengeAddress ? flow.challengeAddress(a) : typeof a === "string" && isAddress(a) ? getAddress(a) : undefined;
114
+ if (address === undefined)
108
115
  return json(res, 400, { ok: false, reason: "not an address" });
109
- const address = getAddress(a);
110
116
  const message = flow.challenge(address, origin, secret);
111
117
  issued = { address, message };
112
118
  return json(res, 200, { ok: true, message });
@@ -147,7 +153,7 @@ export async function serveOnce(flow) {
147
153
  };
148
154
  // `localhost` can resolve to either loopback address, so both are held: a browser that tries
149
155
  // `::1` first must reach this server, never another process waiting on that address.
150
- const servers = [http.createServer(onRequest), http.createServer(onRequest)];
156
+ let servers = [];
151
157
  const closeAll = () => {
152
158
  for (const s of servers) {
153
159
  s.close();
@@ -158,6 +164,7 @@ export async function serveOnce(flow) {
158
164
  if (settled)
159
165
  return;
160
166
  settled = true;
167
+ lock.release();
161
168
  resolveDone(r);
162
169
  // A short grace period lets the page receive its last answer before the socket closes.
163
170
  setTimeout(closeAll, 1500).unref();
@@ -175,24 +182,49 @@ export async function serveOnce(flow) {
175
182
  deferred = r;
176
183
  setTimeout(() => finish(r), flow.cancelGraceMs ?? CANCEL_GRACE_MS).unref();
177
184
  };
178
- const listen = (server, host, optional) => new Promise((resolve, reject) => {
185
+ const listen = (server, port, host, optional) => new Promise((resolve, reject) => {
179
186
  server.once("error", (e) => {
180
187
  if (e.code === "EADDRINUSE") {
181
- return reject(new Error(`port ${flow.port} is in use on ${host} — another sign-in or confirmation page is probably still open; finish or close it, then retry`));
188
+ return reject(Object.assign(new Error(`port ${port} is in use on ${host} by another program; close it, then retry`), { inUse: true }));
182
189
  }
183
190
  // A machine with IPv6 switched off has no `::1` for anyone to wait on.
184
191
  if (optional && (e.code === "EADDRNOTAVAIL" || e.code === "EAFNOSUPPORT"))
185
192
  return resolve();
186
193
  reject(e);
187
194
  });
188
- server.listen({ port: flow.port, host, ipv6Only: host === "::1" }, () => resolve());
195
+ server.listen({ port, host, ipv6Only: host === "::1" }, () => resolve());
189
196
  });
197
+ // Taken before any port is tried: a page this machine already has open is reported as that, and
198
+ // never answered by opening a second one on the next port.
199
+ const lock = await claimPageLock(flow.ttlMs + LOCK_MARGIN_MS);
190
200
  try {
191
- await listen(servers[0], "127.0.0.1", false);
192
- await listen(servers[1], "::1", true);
201
+ let busy;
202
+ let bound = false;
203
+ for (const port of flow.ports) {
204
+ origin = `http://localhost:${port}`;
205
+ servers = [http.createServer(onRequest), http.createServer(onRequest)];
206
+ try {
207
+ await listen(servers[0], port, "127.0.0.1", false);
208
+ await listen(servers[1], port, "::1", true);
209
+ lock.setPort(port);
210
+ bound = true;
211
+ break;
212
+ }
213
+ catch (e) {
214
+ closeAll();
215
+ if (!e.inUse)
216
+ throw e;
217
+ busy = e;
218
+ }
219
+ }
220
+ if (!bound) {
221
+ if (flow.ports.length === 1 && busy)
222
+ throw busy;
223
+ throw new Error(`ports ${flow.ports.join(", ")} are all in use by other programs; close one of them, then retry`);
224
+ }
193
225
  }
194
226
  catch (e) {
195
- closeAll();
227
+ lock.release();
196
228
  throw e;
197
229
  }
198
230
  const timer = setTimeout(
@@ -200,6 +232,6 @@ export async function serveOnce(flow) {
200
232
  () => finish(deferred ?? { ok: false, reason: flow.timeoutReason?.() ?? `nothing happened in the browser within ${Math.round(flow.ttlMs / 60_000)} minutes` }), flow.ttlMs);
201
233
  timer.unref();
202
234
  void done.then(() => clearTimeout(timer));
203
- return { url: `${origin}/${flow.mode}?s=${secret}`, done, close: () => finish({ ok: false, reason: "cancelled" }) };
235
+ return { url: `${origin}/${flow.mode}?s=${secret}`, port: Number(new URL(origin).port), done, close: () => finish({ ok: false, reason: "cancelled" }) };
204
236
  }
205
237
  //# sourceMappingURL=http.js.map