@flayerlabs/gamemode-gate 0.5.6 → 0.7.0

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 (74) hide show
  1. package/DEPLOY.md +31 -3
  2. package/README.md +10 -5
  3. package/dist/chain/chains.d.ts +14 -6
  4. package/dist/chain/chains.d.ts.map +1 -1
  5. package/dist/chain/chains.js +11 -5
  6. package/dist/chain/chains.js.map +1 -1
  7. package/dist/chain/discover.d.ts +61 -3
  8. package/dist/chain/discover.d.ts.map +1 -1
  9. package/dist/chain/discover.js +181 -21
  10. package/dist/chain/discover.js.map +1 -1
  11. package/dist/chain/secure.d.ts +28 -0
  12. package/dist/chain/secure.d.ts.map +1 -1
  13. package/dist/chain/secure.js +55 -20
  14. package/dist/chain/secure.js.map +1 -1
  15. package/dist/chain/signer.d.ts +19 -13
  16. package/dist/chain/signer.d.ts.map +1 -1
  17. package/dist/chain/signer.js +11 -10
  18. package/dist/chain/signer.js.map +1 -1
  19. package/dist/claims.d.ts +14 -30
  20. package/dist/claims.d.ts.map +1 -1
  21. package/dist/claims.js +55 -76
  22. package/dist/claims.js.map +1 -1
  23. package/dist/demo.d.ts +1 -1
  24. package/dist/demo.d.ts.map +1 -1
  25. package/dist/demo.js +3 -3
  26. package/dist/demo.js.map +1 -1
  27. package/dist/index.d.ts +6 -6
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +2 -3
  30. package/dist/index.js.map +1 -1
  31. package/dist/ledger.d.ts +39 -45
  32. package/dist/ledger.d.ts.map +1 -1
  33. package/dist/ledger.js +71 -172
  34. package/dist/ledger.js.map +1 -1
  35. package/dist/main.d.ts +4 -2
  36. package/dist/main.d.ts.map +1 -1
  37. package/dist/main.js +11 -6
  38. package/dist/main.js.map +1 -1
  39. package/dist/room.d.ts +16 -0
  40. package/dist/room.d.ts.map +1 -1
  41. package/dist/room.js +29 -6
  42. package/dist/room.js.map +1 -1
  43. package/dist/server.d.ts +20 -0
  44. package/dist/server.d.ts.map +1 -1
  45. package/dist/server.js +43 -34
  46. package/dist/server.js.map +1 -1
  47. package/dist/settlement.d.ts +0 -3
  48. package/dist/settlement.d.ts.map +1 -1
  49. package/dist/settlement.js +12 -44
  50. package/dist/settlement.js.map +1 -1
  51. package/dist/standings.d.ts.map +1 -1
  52. package/dist/standings.js +7 -1
  53. package/dist/standings.js.map +1 -1
  54. package/dist/store.d.ts +1 -1
  55. package/dist/store.d.ts.map +1 -1
  56. package/dist/store.js +36 -19
  57. package/dist/store.js.map +1 -1
  58. package/dist/version.js +2 -2
  59. package/package.json +2 -2
  60. package/src/chain/chains.ts +17 -7
  61. package/src/chain/discover.ts +212 -21
  62. package/src/chain/secure.ts +75 -31
  63. package/src/chain/signer.ts +24 -30
  64. package/src/claims.ts +54 -78
  65. package/src/demo.ts +5 -5
  66. package/src/index.ts +6 -6
  67. package/src/ledger.ts +100 -248
  68. package/src/main.ts +11 -6
  69. package/src/room.ts +29 -3
  70. package/src/server.ts +58 -34
  71. package/src/settlement.ts +12 -43
  72. package/src/standings.ts +9 -1
  73. package/src/store.ts +36 -19
  74. package/src/version.ts +2 -2
package/dist/main.d.ts CHANGED
@@ -77,9 +77,11 @@ export interface SpendTokenPricing {
77
77
  * POSITION_MANAGER optional; selects a recorded stack on the chain (the legacy one when
78
78
  * unset), or overrides the address for a chain with no address book
79
79
  * SPEND_GATED_CALCULATOR optional address-book override
80
- * POOL_SWAP optional address-book override; required for a v1_3 stack
80
+ * POOL_SWAP optional address-book override; required for a v1_3 or any_v1_3 stack
81
81
  * FLETH optional address-book override; the chain's flETH wrapper
82
- * FLAUNCH_VARIANT optional; v1_2, multichain or v1_3
82
+ * FLAUNCH_VARIANT optional; v1_2, multichain, v1_3 or any_v1_3 — the PRIMARY manager's
83
+ * generation. Adoption is not limited to it: any manager wired to the
84
+ * calculator is served (see chain/discover.ts)
83
85
  * SETTLER optional; defaults to the signing key's own address
84
86
  * WALLET_CAP_WEI default 0.025 ETH; the cap for ETH-paired launches
85
87
  * ROUND_MS default 90000
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAiD,KAAK,YAAY,EAAE,MAAM,MAAM,CAAC;AACxF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAA+D,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AASzG,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIvE;;;;;;;;;;;;GAYG;AAEH,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAE9C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,KAAK,MAAM,EAAE,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,yFAAyF;IACzF,YAAY,EAAE,MAAM,CAAC;IACrB,kGAAkG;IAClG,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,cAAc,CAAC;IAC3B,iFAAiF;IACjF,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,0FAA0F;IAC1F,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACpD;;;;OAIG;IACH,6BAA6B,EAAE,MAAM,CAAC;IACtC,oGAAoG;IACpG,OAAO,EAAE,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;CACnB;AAuED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,kBAAkB,CAiF3D;AA8BD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,eAAe,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,0FAA0F;IAC1F,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,qEAAqE;IACrE,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,iEAAiE;IACjE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,aAAa,CAAC,EAAE,QAAQ,CAAC;CAC1B;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAClF,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EACtE,UAAU,EAAE,MAAM,EAClB,SAAS,GAAE,kBAAuB,GACjC,OAAO,CAAC,WAAW,CAAC,CAyItB"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAiD,KAAK,YAAY,EAAE,MAAM,MAAM,CAAC;AACxF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAA+D,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AASzG,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIvE;;;;;;;;;;;;GAYG;AAEH,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAE9C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,KAAK,MAAM,EAAE,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,yFAAyF;IACzF,YAAY,EAAE,MAAM,CAAC;IACrB,kGAAkG;IAClG,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,cAAc,CAAC;IAC3B,iFAAiF;IACjF,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,0FAA0F;IAC1F,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACpD;;;;OAIG;IACH,6BAA6B,EAAE,MAAM,CAAC;IACtC,oGAAoG;IACpG,OAAO,EAAE,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;CACnB;AAuED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,kBAAkB,CAmF3D;AA8BD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,eAAe,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,0FAA0F;IAC1F,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,qEAAqE;IACrE,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,iEAAiE;IACjE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,aAAa,CAAC,EAAE,QAAQ,CAAC;CAC1B;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAClF,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EACtE,UAAU,EAAE,MAAM,EAClB,SAAS,GAAE,kBAAuB,GACjC,OAAO,CAAC,WAAW,CAAC,CA0ItB"}
package/dist/main.js CHANGED
@@ -104,9 +104,11 @@ function address(env, name) {
104
104
  * POSITION_MANAGER optional; selects a recorded stack on the chain (the legacy one when
105
105
  * unset), or overrides the address for a chain with no address book
106
106
  * SPEND_GATED_CALCULATOR optional address-book override
107
- * POOL_SWAP optional address-book override; required for a v1_3 stack
107
+ * POOL_SWAP optional address-book override; required for a v1_3 or any_v1_3 stack
108
108
  * FLETH optional address-book override; the chain's flETH wrapper
109
- * FLAUNCH_VARIANT optional; v1_2, multichain or v1_3
109
+ * FLAUNCH_VARIANT optional; v1_2, multichain, v1_3 or any_v1_3 — the PRIMARY manager's
110
+ * generation. Adoption is not limited to it: any manager wired to the
111
+ * calculator is served (see chain/discover.ts)
110
112
  * SETTLER optional; defaults to the signing key's own address
111
113
  * WALLET_CAP_WEI default 0.025 ETH; the cap for ETH-paired launches
112
114
  * ROUND_MS default 90000
@@ -138,13 +140,15 @@ export function resolveGateEnv(env) {
138
140
  if (variantOverride !== undefined &&
139
141
  variantOverride !== 'v1_2' &&
140
142
  variantOverride !== 'multichain' &&
141
- variantOverride !== 'v1_3') {
142
- throw new Error(`FLAUNCH_VARIANT must be v1_2, multichain or v1_3, not ${variantOverride}`);
143
+ variantOverride !== 'v1_3' &&
144
+ variantOverride !== 'any_v1_3') {
145
+ throw new Error(`FLAUNCH_VARIANT must be v1_2, multichain, v1_3 or any_v1_3, not ${variantOverride}`);
143
146
  }
144
147
  const flaunchVariant = variantOverride ?? recorded?.flaunchVariant ?? 'v1_2';
145
148
  const poolSwap = address(env, 'POOL_SWAP') ?? recorded?.poolSwap ?? null;
146
- if (flaunchVariant === 'v1_3' && !poolSwap) {
147
- throw new Error('a v1_3 stack needs POOL_SWAP — the approved router a paired-token buy goes through');
149
+ // Both V1_3 generations take paired buys through the approved router.
150
+ if ((flaunchVariant === 'v1_3' || flaunchVariant === 'any_v1_3') && !poolSwap) {
151
+ throw new Error(`a ${flaunchVariant} stack needs POOL_SWAP — the approved router a paired-token buy goes through`);
148
152
  }
149
153
  const fleth = address(env, 'FLETH') ?? recorded?.fleth ?? null;
150
154
  const signerPrivateKey = required(env, 'SIGNER_PRIVATE_KEY');
@@ -306,6 +310,7 @@ export async function startGate(game, gameConfig, overrides = {}) {
306
310
  minLobbyLeadMs: config.minLobbyLeadMs,
307
311
  gateEndsAtGraceS: config.gateEndsAtGraceS,
308
312
  flaunchVariant: config.deployment.flaunchVariant,
313
+ positionManagerPolicy: 'wired-to-calculator',
309
314
  ...(announcedSpendTokens.length > 0 ? { spendTokens: announcedSpendTokens } : {}),
310
315
  ...(pairedTokenRegistry ? { pairedTokenRegistry } : {}),
311
316
  requiresEoa: false,
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
package/dist/room.d.ts CHANGED
@@ -32,6 +32,12 @@ export declare class Room<Config, State, Event, Action, PublicView, PlayerView>
32
32
  readonly terms: RoundTerms;
33
33
  readonly scoreAuthority: ScoreAuthority;
34
34
  private seq;
35
+ /**
36
+ * The PositionManager the coin was launched on, as the gate resolved it at adoption. Null for
37
+ * rounds adopted before the gate recorded it (below 0.6.0), and for demo and mock rooms. Kept
38
+ * off `LaunchContext`, which is the wire type games receive.
39
+ */
40
+ readonly positionManager: string | null;
35
41
  /**
36
42
  * HTTP actions and the server ticker can arrive together. Keep the one-writer promise true
37
43
  * inside a process by running both through the same serial tail.
@@ -59,6 +65,7 @@ export declare class Room<Config, State, Event, Action, PublicView, PlayerView>
59
65
  name?: string;
60
66
  symbol?: string;
61
67
  imageUrl?: string | null;
68
+ positionManager?: string | null;
62
69
  };
63
70
  }): Promise<Room<Config, State, Event, Action, PublicView, PlayerView>>;
64
71
  /** Pick up a round that already exists. Returns null if there is no such round. */
@@ -102,6 +109,15 @@ export declare class Room<Config, State, Event, Action, PublicView, PlayerView>
102
109
  playerView(player: PlayerId): PlayerView;
103
110
  /** The cursor a reconnecting client resumes from. */
104
111
  sequence(): number;
112
+ /**
113
+ * Record that the round is final: every landed buy is in `spent` and nothing will change again.
114
+ *
115
+ * The server calls this once, after its last clean settlement pass past `booksCloseAt`, before it
116
+ * closes the room's sockets. Idempotent — the first stamp wins, so a retried teardown after a
117
+ * failed socket close cannot move the moment. It is what `GET /coins/:coin/rankings` reads back
118
+ * as `settledAt`/`final`.
119
+ */
120
+ markSettled(at: number): Promise<void>;
105
121
  }
106
122
  export {};
107
123
  //# sourceMappingURL=room.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"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"}
package/dist/room.js CHANGED
@@ -22,12 +22,19 @@ export class Room {
22
22
  terms;
23
23
  scoreAuthority;
24
24
  seq;
25
+ positionManager;
25
26
  /**
26
27
  * HTTP actions and the server ticker can arrive together. Keep the one-writer promise true
27
28
  * inside a process by running both through the same serial tail.
28
29
  */
29
30
  pending = Promise.resolve();
30
- constructor(pool, game, id, round, window, launch, terms, scoreAuthority, seq) {
31
+ constructor(pool, game, id, round, window, launch, terms, scoreAuthority, seq,
32
+ /**
33
+ * The PositionManager the coin was launched on, as the gate resolved it at adoption. Null for
34
+ * rounds adopted before the gate recorded it (below 0.6.0), and for demo and mock rooms. Kept
35
+ * off `LaunchContext`, which is the wire type games receive.
36
+ */
37
+ positionManager = null) {
31
38
  this.pool = pool;
32
39
  this.game = game;
33
40
  this.id = id;
@@ -37,6 +44,7 @@ export class Room {
37
44
  this.terms = terms;
38
45
  this.scoreAuthority = scoreAuthority;
39
46
  this.seq = seq;
47
+ this.positionManager = positionManager;
40
48
  }
41
49
  static async create(pool, game, round) {
42
50
  const booksCloseAt = round.booksCloseAt ?? round.window.closesAt;
@@ -76,8 +84,8 @@ export class Room {
76
84
  spend_token, spend_symbol, spend_decimals, usd_per_spend_token,
77
85
  max_points_per_player, score_authority,
78
86
  pool_id, opens_at, closes_at, books_close_at,
79
- coin_address, coin_name, coin_symbol, coin_image_url, state, seq
80
- ) values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, 0)`, [
87
+ coin_address, coin_name, coin_symbol, coin_image_url, position_manager, state, seq
88
+ ) values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, 0)`, [
81
89
  round.id,
82
90
  game.id,
83
91
  round.unitsPerPoint.toString(),
@@ -98,9 +106,10 @@ export class Room {
98
106
  launch.name,
99
107
  launch.symbol,
100
108
  launch.imageUrl,
109
+ round.launch?.positionManager?.toLowerCase() ?? null,
101
110
  serialise(game.id, started.snapshot()),
102
111
  ]);
103
- return new Room(pool, game, round.id, started, round.window, launch, terms, round.scoreAuthority, 0);
112
+ return new Room(pool, game, round.id, started, round.window, launch, terms, round.scoreAuthority, 0, round.launch?.positionManager?.toLowerCase() ?? null);
104
113
  }
105
114
  /** Pick up a round that already exists. Returns null if there is no such round. */
106
115
  static async load(pool, game, id) {
@@ -108,7 +117,7 @@ export class Room {
108
117
  wallet_cap_wei, points_per_dollar, usd_per_eth,
109
118
  spend_token, spend_symbol, spend_decimals, usd_per_spend_token,
110
119
  max_points_per_player, score_authority, game_id,
111
- coin_address, coin_name, coin_symbol, coin_image_url
120
+ coin_address, coin_name, coin_symbol, coin_image_url, position_manager
112
121
  from rounds where id = $1`, [id]);
113
122
  const row = result.rows[0];
114
123
  if (!row)
@@ -141,7 +150,7 @@ export class Room {
141
150
  // it holds that round's ETH price, which is exactly its spend token's price.
142
151
  usdPerSpendToken: row.usd_per_spend_token === null ? Number(row.usd_per_eth) : Number(row.usd_per_spend_token),
143
152
  });
144
- return new Room(pool, game, id, Round.resume(game, row.state, window), window, launch, terms, row.score_authority, row.seq);
153
+ return new Room(pool, game, id, Round.resume(game, row.state, window), window, launch, terms, row.score_authority, row.seq, row.position_manager);
145
154
  }
146
155
  /**
147
156
  * Apply one command and commit everything it caused.
@@ -254,6 +263,20 @@ export class Room {
254
263
  sequence() {
255
264
  return this.seq;
256
265
  }
266
+ /**
267
+ * Record that the round is final: every landed buy is in `spent` and nothing will change again.
268
+ *
269
+ * The server calls this once, after its last clean settlement pass past `booksCloseAt`, before it
270
+ * closes the room's sockets. Idempotent — the first stamp wins, so a retried teardown after a
271
+ * failed socket close cannot move the moment. It is what `GET /coins/:coin/rankings` reads back
272
+ * as `settledAt`/`final`.
273
+ */
274
+ async markSettled(at) {
275
+ await this.pool.query(`update rounds set settled_at = $1 where id = $2 and settled_at is null`, [
276
+ at,
277
+ this.id,
278
+ ]);
279
+ }
257
280
  }
258
281
  /**
259
282
  * Game state has to survive a round trip through JSON, and one thing silently does not: `bigint`
package/dist/room.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"room.js","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAExD,OAAO,EAAE,eAAe,EAAwD,MAAM,gCAAgC,CAAC;AACvH,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAYrD;;;;;;;;;GASG;AACH,MAAM,OAAO,IAAI;IAQI;IACA;IACR;IACD;IACC;IACA;IACA;IACA;IACD;IAfV;;;OAGG;IACK,OAAO,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAEnD,YACmB,IAAU,EACV,IAAsE,EAC9E,EAAU,EACX,KAAkE,EACjE,MAAmB,EACnB,MAAqB,EACrB,KAAiB,EACjB,cAA8B,EAC/B,GAAW;QARF,SAAI,GAAJ,IAAI,CAAM;QACV,SAAI,GAAJ,IAAI,CAAkE;QAC9E,OAAE,GAAF,EAAE,CAAQ;QACX,UAAK,GAAL,KAAK,CAA6D;QACjE,WAAM,GAAN,MAAM,CAAa;QACnB,WAAM,GAAN,MAAM,CAAe;QACrB,UAAK,GAAL,KAAK,CAAY;QACjB,mBAAc,GAAd,cAAc,CAAgB;QAC/B,QAAG,GAAH,GAAG,CAAQ;IAClB,CAAC;IAEJ,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,IAAU,EACV,IAAsE,EACtE,KAsBC;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAChF,MAAM,IAAI,UAAU,CAAC,4DAA4D,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,EAAE,CAAC;YACrF,MAAM,IAAI,UAAU,CAAC,oDAAoD,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC3B,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,IAAI,IAAI;YAC9C,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE;YAC9B,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE;YAClC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,IAAI,IAAI;YACxC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;YAC7B,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ;YAC/B,YAAY;SACb,CAAC,CAAC;QACH,MAAM,UAAU,GAAe,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QAC3F,MAAM,KAAK,GAAe,MAAM,CAAC,MAAM,CAAC;YACtC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;YAC5C,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,UAAU;SACX,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1E,4FAA4F;QAC5F,0FAA0F;QAC1F,0FAA0F;QAC1F,iFAAiF;QACjF,MAAM,IAAI,CAAC,KAAK,CACd;;;;;;oHAM8G,EAC9G;YACE,KAAK,CAAC,EAAE;YACR,IAAI,CAAC,EAAE;YACP,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;YAC9B,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC1B,KAAK,CAAC,eAAe;YACrB,KAAK,CAAC,gBAAgB;YACtB,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE;YAChC,UAAU,CAAC,MAAM;YACjB,UAAU,CAAC,QAAQ;YACnB,KAAK,CAAC,gBAAgB;YACtB,KAAK,CAAC,kBAAkB;YACxB,KAAK,CAAC,cAAc;YACpB,KAAK,CAAC,MAAM;YACZ,KAAK,CAAC,MAAM,CAAC,OAAO;YACpB,KAAK,CAAC,MAAM,CAAC,QAAQ;YACrB,YAAY;YACZ,MAAM,CAAC,WAAW;YAClB,MAAM,CAAC,IAAI;YACX,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,QAAQ;YACf,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;SACvC,CACF,CAAC;QACF,OAAO,IAAI,IAAI,CACb,IAAI,EACJ,IAAI,EACJ,KAAK,CAAC,EAAE,EACR,OAAO,EACP,KAAK,CAAC,MAAM,EACZ,MAAM,EACN,KAAK,EACL,KAAK,CAAC,cAAc,EACpB,CAAC,CACF,CAAC;IACJ,CAAC;IAED,mFAAmF;IACnF,MAAM,CAAC,KAAK,CAAC,IAAI,CACf,IAAU,EACV,IAAsE,EACtE,EAAU;QAEV,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAuB7B;;;;;iCAK2B,EAC3B,CAAC,EAAE,CAAC,CACL,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAEzC,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAClF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC3B,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,GAAG,CAAC,OAAO;YACnB,WAAW,EAAE,GAAG,CAAC,YAAY;YAC7B,IAAI,EAAE,GAAG,CAAC,SAAS;YACnB,MAAM,EAAE,GAAG,CAAC,WAAW;YACvB,QAAQ,EAAE,GAAG,CAAC,cAAc;YAC5B,GAAG,MAAM;YACT,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;SACzC,CAAC,CAAC;QACH,MAAM,KAAK,GAAe,MAAM,CAAC,MAAM,CAAC;YACtC,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC;YACrD,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC;YACvC,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC;YAC1C,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;YAC9C,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;gBACxB,OAAO,EAAE,GAAG,CAAC,WAAW;gBACxB,MAAM,EAAE,GAAG,CAAC,YAAY;gBACxB,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;gBACpC,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,eAAe,CAAC,OAAO;aACpE,CAAC;YACF,4FAA4F;YAC5F,6EAA6E;YAC7E,gBAAgB,EAAE,GAAG,CAAC,mBAAmB,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;SAC/G,CAAC,CAAC;QACH,OAAO,IAAI,IAAI,CACb,IAAI,EACJ,IAAI,EACJ,EAAE,EACF,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,EACrC,MAAM,EACN,MAAM,EACN,KAAK,EACL,GAAG,CAAC,eAAe,EACnB,GAAG,CAAC,GAAG,CACR,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAK,CAAC,OAA8B;QACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACrD,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,OAA8B;QACnD,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAE1D,2FAA2F;QAC3F,yFAAyF;QACzF,yFAAyF;QACzF,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAEjD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,OAAO,IAAI,CAAC,QAAQ;YAAE,OAAO,MAAM,CAAC;QAExC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACzB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;QACvG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACK,OAAO,CAAC,OAA+B;QAC7C,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/F,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,OAAwB,EAAE,KAAY,EAAE,MAAe;QACvF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,EAAE,4DAA4D,CAAC,CAAC;QAC1F,CAAC;QACD,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YAC1C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,KAAK,CAC5B,mEAAmE,EACnE,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CACxD,CAAC;YACF,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,EAAE,uDAAuD,CAAC,CAAC;YACrF,CAAC;YACD,MAAM,EAAE,CAAC,KAAK,CAAC,mEAAmE,EAAE;gBAClF,IAAI,CAAC,EAAE;gBACP,GAAG;gBACH,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;aACxB,CAAC,CAAC;YACH,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,yFAAyF;gBACzF,oEAAoE;gBACpE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;oBAC3C,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,8CAA8C,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/F,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,KAAK,CAC7B;;yDAE+C,EAC/C,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAC/D,CAAC;gBACF,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,8CAA8C,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/F,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,GAAW;QAC/B,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1D,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO;QAEvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACzB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAEO,QAAQ,CAAI,IAAsB;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CACxB,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IAED,UAAU,CAAC,MAAgB;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,qDAAqD;IACrD,QAAQ;QACN,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;CAEF;AAED;;;;;;GAMG;AACH,SAAS,SAAS,CAAC,MAAc,EAAE,KAAc;IAC/C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,SAAS,CACjB,GAAG,MAAM,sFAAsF;gBAC7F,0EAA0E,CAC7E,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"room.js","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAExD,OAAO,EAAE,eAAe,EAAwD,MAAM,gCAAgC,CAAC;AACvH,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAYrD;;;;;;;;;GASG;AACH,MAAM,OAAO,IAAI;IAQI;IACA;IACR;IACD;IACC;IACA;IACA;IACA;IACD;IAMC;IArBX;;;OAGG;IACK,OAAO,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAEnD,YACmB,IAAU,EACV,IAAsE,EAC9E,EAAU,EACX,KAAkE,EACjE,MAAmB,EACnB,MAAqB,EACrB,KAAiB,EACjB,cAA8B,EAC/B,GAAW;IACnB;;;;OAIG;IACM,kBAAiC,IAAI;QAd7B,SAAI,GAAJ,IAAI,CAAM;QACV,SAAI,GAAJ,IAAI,CAAkE;QAC9E,OAAE,GAAF,EAAE,CAAQ;QACX,UAAK,GAAL,KAAK,CAA6D;QACjE,WAAM,GAAN,MAAM,CAAa;QACnB,WAAM,GAAN,MAAM,CAAe;QACrB,UAAK,GAAL,KAAK,CAAY;QACjB,mBAAc,GAAd,cAAc,CAAgB;QAC/B,QAAG,GAAH,GAAG,CAAQ;QAMV,oBAAe,GAAf,eAAe,CAAsB;IAC7C,CAAC;IAEJ,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,IAAU,EACV,IAAsE,EACtE,KAuBC;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAChF,MAAM,IAAI,UAAU,CAAC,4DAA4D,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,EAAE,CAAC;YACrF,MAAM,IAAI,UAAU,CAAC,oDAAoD,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC3B,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,IAAI,IAAI;YAC9C,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE;YAC9B,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE;YAClC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,IAAI,IAAI;YACxC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;YAC7B,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ;YAC/B,YAAY;SACb,CAAC,CAAC;QACH,MAAM,UAAU,GAAe,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QAC3F,MAAM,KAAK,GAAe,MAAM,CAAC,MAAM,CAAC;YACtC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;YAC5C,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,UAAU;SACX,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1E,4FAA4F;QAC5F,0FAA0F;QAC1F,0FAA0F;QAC1F,iFAAiF;QACjF,MAAM,IAAI,CAAC,KAAK,CACd;;;;;;yHAMmH,EACnH;YACE,KAAK,CAAC,EAAE;YACR,IAAI,CAAC,EAAE;YACP,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;YAC9B,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC1B,KAAK,CAAC,eAAe;YACrB,KAAK,CAAC,gBAAgB;YACtB,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE;YAChC,UAAU,CAAC,MAAM;YACjB,UAAU,CAAC,QAAQ;YACnB,KAAK,CAAC,gBAAgB;YACtB,KAAK,CAAC,kBAAkB;YACxB,KAAK,CAAC,cAAc;YACpB,KAAK,CAAC,MAAM;YACZ,KAAK,CAAC,MAAM,CAAC,OAAO;YACpB,KAAK,CAAC,MAAM,CAAC,QAAQ;YACrB,YAAY;YACZ,MAAM,CAAC,WAAW;YAClB,MAAM,CAAC,IAAI;YACX,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,QAAQ;YACf,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,IAAI,IAAI;YACpD,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;SACvC,CACF,CAAC;QACF,OAAO,IAAI,IAAI,CACb,IAAI,EACJ,IAAI,EACJ,KAAK,CAAC,EAAE,EACR,OAAO,EACP,KAAK,CAAC,MAAM,EACZ,MAAM,EACN,KAAK,EACL,KAAK,CAAC,cAAc,EACpB,CAAC,EACD,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,IAAI,IAAI,CACrD,CAAC;IACJ,CAAC;IAED,mFAAmF;IACnF,MAAM,CAAC,KAAK,CAAC,IAAI,CACf,IAAU,EACV,IAAsE,EACtE,EAAU;QAEV,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAwB7B;;;;;iCAK2B,EAC3B,CAAC,EAAE,CAAC,CACL,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAEzC,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAClF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC3B,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,GAAG,CAAC,OAAO;YACnB,WAAW,EAAE,GAAG,CAAC,YAAY;YAC7B,IAAI,EAAE,GAAG,CAAC,SAAS;YACnB,MAAM,EAAE,GAAG,CAAC,WAAW;YACvB,QAAQ,EAAE,GAAG,CAAC,cAAc;YAC5B,GAAG,MAAM;YACT,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;SACzC,CAAC,CAAC;QACH,MAAM,KAAK,GAAe,MAAM,CAAC,MAAM,CAAC;YACtC,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC;YACrD,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC;YACvC,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC;YAC1C,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;YAC9C,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;gBACxB,OAAO,EAAE,GAAG,CAAC,WAAW;gBACxB,MAAM,EAAE,GAAG,CAAC,YAAY;gBACxB,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;gBACpC,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,eAAe,CAAC,OAAO;aACpE,CAAC;YACF,4FAA4F;YAC5F,6EAA6E;YAC7E,gBAAgB,EAAE,GAAG,CAAC,mBAAmB,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;SAC/G,CAAC,CAAC;QACH,OAAO,IAAI,IAAI,CACb,IAAI,EACJ,IAAI,EACJ,EAAE,EACF,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,EACrC,MAAM,EACN,MAAM,EACN,KAAK,EACL,GAAG,CAAC,eAAe,EACnB,GAAG,CAAC,GAAG,EACP,GAAG,CAAC,gBAAgB,CACrB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAK,CAAC,OAA8B;QACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACrD,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,OAA8B;QACnD,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAE1D,2FAA2F;QAC3F,yFAAyF;QACzF,yFAAyF;QACzF,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAEjD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,OAAO,IAAI,CAAC,QAAQ;YAAE,OAAO,MAAM,CAAC;QAExC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACzB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;QACvG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACK,OAAO,CAAC,OAA+B;QAC7C,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/F,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,OAAwB,EAAE,KAAY,EAAE,MAAe;QACvF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,EAAE,4DAA4D,CAAC,CAAC;QAC1F,CAAC;QACD,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YAC1C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,KAAK,CAC5B,mEAAmE,EACnE,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CACxD,CAAC;YACF,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,EAAE,uDAAuD,CAAC,CAAC;YACrF,CAAC;YACD,MAAM,EAAE,CAAC,KAAK,CAAC,mEAAmE,EAAE;gBAClF,IAAI,CAAC,EAAE;gBACP,GAAG;gBACH,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;aACxB,CAAC,CAAC;YACH,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,yFAAyF;gBACzF,oEAAoE;gBACpE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;oBAC3C,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,8CAA8C,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/F,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,KAAK,CAC7B;;yDAE+C,EAC/C,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAC/D,CAAC;gBACF,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,8CAA8C,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/F,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,GAAW;QAC/B,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1D,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO;QAEvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACzB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAEO,QAAQ,CAAI,IAAsB;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CACxB,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IAED,UAAU,CAAC,MAAgB;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,qDAAqD;IACrD,QAAQ;QACN,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,WAAW,CAAC,EAAU;QAC1B,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,wEAAwE,EAAE;YAC9F,EAAE;YACF,IAAI,CAAC,EAAE;SACR,CAAC,CAAC;IACL,CAAC;CAEF;AAED;;;;;;GAMG;AACH,SAAS,SAAS,CAAC,MAAc,EAAE,KAAc;IAC/C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,SAAS,CACjB,GAAG,MAAM,sFAAsF;gBAC7F,0EAA0E,CAC7E,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
package/dist/server.d.ts CHANGED
@@ -118,6 +118,11 @@ export interface GameServerGateOptions extends GateBaseOptions {
118
118
  /** Reviewed HTTPS origins that may receive player join tickets. The gate origin is always allowed. */
119
119
  gameServerOrigins?: readonly string[];
120
120
  }
121
+ /**
122
+ * How a gate decides which PositionManagers it adopts coins from. One value today; the type exists
123
+ * so a client can compare rather than test for presence, and so a later policy has a name.
124
+ */
125
+ export type PositionManagerPolicy = 'wired-to-calculator';
121
126
  /**
122
127
  * The gate's public identity, in the exact shape the flaunch frontend's `GateServerConfig` already
123
128
  * parses — served this way so the page that builds launches needs no second config type.
@@ -139,7 +144,15 @@ export interface GateAnnouncement {
139
144
  roundDurationMs: number;
140
145
  minLobbyLeadMs: number;
141
146
  gateEndsAtGraceS: number;
147
+ /** The generation of the PRIMARY manager in `contracts.positionManager`; not a limit on adoption. */
142
148
  flaunchVariant: FlaunchVariant;
149
+ /**
150
+ * How this gate decides which PositionManagers it adopts coins from. `'wired-to-calculator'`
151
+ * means any manager whose fee wiring routes to `contracts.spendGatedCalculator`, derived from the
152
+ * coin itself at adoption; `contracts.positionManager` is then the primary manager, not the only
153
+ * one. A gate that omits the field (below 0.6.0) adopts coins on `contracts.positionManager` only.
154
+ */
155
+ positionManagerPolicy?: PositionManagerPolicy;
143
156
  /**
144
157
  * The non-ETH paired tokens this gate will run rounds on, each with the cap a launch on it should
145
158
  * write. Absent or empty means ETH pairings only. Launch tooling refuses a pairing that is not
@@ -197,6 +210,13 @@ export type Admission = {
197
210
  reason: string;
198
211
  };
199
212
  export type Admit = (request: AdmissionRequest) => Admission | Promise<Admission>;
213
+ /**
214
+ * How long after `closesAt` the books stay open for chain reconciliation.
215
+ *
216
+ * Independent of any authorisation lifetime: a signed ceiling lasts until the books close, and a
217
+ * buy included in the last seconds of play still needs two confirmations and a reconcile pass to
218
+ * reach the standings.
219
+ */
200
220
  export declare const DEFAULT_SETTLEMENT_TAIL_MS: number;
201
221
  export declare function createGate<Config, State, Event, Action, PublicView, PlayerView>(options: GateOptions<Config, State, Event, Action, PublicView, PlayerView>): FastifyInstance;
202
222
  export declare function createGameServerGate(options: GameServerGateOptions): FastifyInstance;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,KAAK,eAAe,EAA0C,MAAM,SAAS,CAAC;AAIhG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE/E,OAAO,KAAK,EAKV,UAAU,EAIX,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAuB,MAAM,WAAW,CAAC;AAEtD,OAAO,EAA8B,MAAM,EAAmC,MAAM,aAAa,CAAC;AAClG,OAAO,EAAe,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AASlD;;;;;;;;;;GAUG;AAEH,UAAU,eAAe;IACvB,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,eAAe,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACrF,mEAAmE;IACnE,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,kEAAkE;IAClE,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,wFAAwF;IACxF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,cAAc,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACpC;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,gBAAgB,CAAC;IAClC,yDAAyD;IACzD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,MAAM,EAAE,KAAK,OAAO,CAAC,OAAO,iCAAiC,EAAE,aAAa,CAAC,CAAC;IACvG;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,0FAA0F;IAC1F,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC;AAED,4FAA4F;AAC5F,MAAM,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;AAErF,iGAAiG;AACjG,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,gGAAgG;IAChG,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,6EAA6E;AAC7E,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC;AACzG,MAAM,MAAM,eAAe,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAElF,MAAM,MAAM,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,IAAI,eAAe,GAAG;IAChG,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACvE,8FAA8F;IAC9F,MAAM,EAAE,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAE7E,mEAAmE;AACnE,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,8FAA8F;IAC9F,MAAM,EAAE,MAAM,CAAC;IACf,kGAAkG;IAClG,kBAAkB,EAAE,MAAM,GAAG,kBAAkB,CAAC;IAChD,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAC;IACnB,sGAAsG;IACtG,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE;QACT,eAAe,EAAE,KAAK,MAAM,EAAE,CAAC;QAC/B,oBAAoB,EAAE,KAAK,MAAM,EAAE,CAAC;QACpC,2FAA2F;QAC3F,QAAQ,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;KAC1B,CAAC;IACF,0FAA0F;IAC1F,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC;IACtB,iGAAiG;IACjG,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,qHAAqH;IACrH,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B;;;;OAIG;IACH,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACpC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iGAAiG;IACjG,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,8EAA8E;IAC9E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qFAAqF;AACrF,MAAM,WAAW,gBAAgB;IAC/B,mGAAmG;IACnG,EAAE,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IACnC,qEAAqE;IACrE,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,wFAAwF;IACxF,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,0FAA0F;IAC1F,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAErE,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,gBAAgB,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAwDlF,eAAO,MAAM,0BAA0B,QAA6B,CAAC;AAkDrE,wBAAgB,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAC7E,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,GACzE,eAAe,CAEjB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,eAAe,CAuBpF;AAq9BD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAClC,YAAY,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -6,7 +6,7 @@ import { isRefusal } from '@flayerlabs/gamemode-spec';
6
6
  import { ETH_SPEND_TOKEN, isReactionId, LIVE_PROTOCOL_VERSION } from '@flayerlabs/gamemode-spec/live';
7
7
  import { Room } from './room.js';
8
8
  import { Standings } from './standings.js';
9
- import { CLAIM_AUTHORIZATION_TTL_MS, Claims, isClaimAmount, isClaimRequestId } from './claims.js';
9
+ import { Claims, isClaimAmount, isClaimRequestId } from './claims.js';
10
10
  import { NotSignedIn, Sessions } from './sessions.js';
11
11
  import { parsePlayCursor, readPlaySessions, recordPlaySession } from './play-sessions.js';
12
12
  import { resolveEconomy } from './economy.js';
@@ -39,10 +39,8 @@ const ethOnly = (usdPerEth) => (token) => (token.isNative ? usdPerEth : null);
39
39
  const wireEconomy = (balance) => ({
40
40
  unitsPerPoint: balance.unitsPerPoint.toString(),
41
41
  earned: balance.earned.toString(),
42
- held: balance.held.toString(),
43
42
  spent: balance.spent.toString(),
44
43
  available: balance.available.toString(),
45
- holdExpiresAt: balance.holdExpiresAt,
46
44
  });
47
45
  /** How often each open room is nudged so a deadline nobody is watching still fires. */
48
46
  const TICK_MS = 250;
@@ -62,7 +60,14 @@ const MAX_AUTHORITATIVE_BUFFERED_BYTES = 1_024 * 1_024;
62
60
  const TERMINAL_DRAIN_DEADLINE_MS = 1_000;
63
61
  /** Reactions are also bounded across a whole room, not only per sending socket. */
64
62
  const MAX_ROOM_REACTIONS_PER_SECOND = 20;
65
- export const DEFAULT_SETTLEMENT_TAIL_MS = CLAIM_AUTHORIZATION_TTL_MS;
63
+ /**
64
+ * How long after `closesAt` the books stay open for chain reconciliation.
65
+ *
66
+ * Independent of any authorisation lifetime: a signed ceiling lasts until the books close, and a
67
+ * buy included in the last seconds of play still needs two confirmations and a reconcile pass to
68
+ * reach the standings.
69
+ */
70
+ export const DEFAULT_SETTLEMENT_TAIL_MS = 5 * 60_000;
66
71
  const GAME_ID = /^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/;
67
72
  function gameServerModule(id) {
68
73
  return {
@@ -112,8 +117,8 @@ function createGateRuntime(options, scoreAuthority, awardEndpoint) {
112
117
  throw new RangeError('reactionIds must contain only valid reaction identifiers');
113
118
  }
114
119
  const settlementTailMs = options.settlementTailMs ?? DEFAULT_SETTLEMENT_TAIL_MS;
115
- if (!Number.isSafeInteger(settlementTailMs) || settlementTailMs < CLAIM_AUTHORIZATION_TTL_MS) {
116
- throw new RangeError(`settlementTailMs must be at least ${CLAIM_AUTHORIZATION_TTL_MS}`);
120
+ if (!Number.isSafeInteger(settlementTailMs) || settlementTailMs <= 0) {
121
+ throw new RangeError('settlementTailMs must be a positive number of milliseconds');
117
122
  }
118
123
  // A body limit costs nothing and is the cheapest protection against an endpoint that parses.
119
124
  const app = Fastify({ logger: process.env.GATE_LOG === '1', bodyLimit: 64 * 1024 });
@@ -233,6 +238,7 @@ function createGateRuntime(options, scoreAuthority, awardEndpoint) {
233
238
  name: launch.name,
234
239
  symbol: launch.symbol,
235
240
  imageUrl: launch.imageUrl ?? null,
241
+ positionManager: launch.positionManager ?? null,
236
242
  },
237
243
  });
238
244
  }
@@ -240,6 +246,8 @@ function createGateRuntime(options, scoreAuthority, awardEndpoint) {
240
246
  app.log.error(error);
241
247
  return { ok: false, status: 503, message: 'this game is still being prepared' };
242
248
  }
249
+ app.log.info(`${launch.coinAddress}: adopted ${launch.symbol || 'coin'} on position manager ` +
250
+ `${launch.positionManager ?? 'primary'} (pool ${launch.poolId}, ${spendToken.symbol})`);
243
251
  rooms.set(launch.poolId, room);
244
252
  return { ok: true, room, created: true };
245
253
  }
@@ -327,8 +335,8 @@ function createGateRuntime(options, scoreAuthority, awardEndpoint) {
327
335
  *
328
336
  * Served by every gate rather than behind an option, because the numbers already exist in the
329
337
  * gate's own tables and this is the only place they exist at all — the platform never sees a
330
- * play. Spend is `chain_spent_wei`, the chain-reconciled figure, not claims: an expired hold is
331
- * not a purchase. `spendWeiTotal` is a decimal string because wei does not survive JSON as a
338
+ * play. Spend is `chain_spent_wei`, the chain-reconciled figure, not authorisations: a signed
339
+ * ceiling is not a purchase. `spendWeiTotal` is a decimal string because wei does not survive JSON as a
332
340
  * number, and `lastRoundAt` is milliseconds, matching every timestamp a round carries.
333
341
  *
334
342
  * The permissive CORS header mirrors `/config`: the dashboard is a different origin from the
@@ -561,7 +569,7 @@ function createGateRuntime(options, scoreAuthority, awardEndpoint) {
561
569
  if (!result.ok) {
562
570
  return reply.code(result.refuse === 'award.invalid' ? 400 : 404).send({ refuse: result.refuse });
563
571
  }
564
- // `held` moves on its own when an authorisation expires, so this answer is only true at the
572
+ // `spent` rises whenever settlement sees a purchase land, so this answer is only true at the
565
573
  // moment it is read. Points are monotone; the wei beside them are not.
566
574
  const balance = await claims.economyBalance(result.standing.roundId, result.standing.player);
567
575
  return reply
@@ -644,10 +652,10 @@ function createGateRuntime(options, scoreAuthority, awardEndpoint) {
644
652
  const room = await roomFor(id);
645
653
  if (!room)
646
654
  return reply.code(404).send({ message: 'that game is not running' });
647
- const { maxSpendWei, requestId } = request.body;
655
+ const { spend, requestId } = request.body;
648
656
  let upTo;
649
657
  try {
650
- upTo = BigInt(maxSpendWei ?? '0');
658
+ upTo = BigInt(spend ?? '0');
651
659
  }
652
660
  catch {
653
661
  return reply.code(400).send({ message: 'that amount was not understood' });
@@ -655,9 +663,8 @@ function createGateRuntime(options, scoreAuthority, awardEndpoint) {
655
663
  if (!isClaimAmount(upTo))
656
664
  return reply.code(400).send({ message: 'that amount was not understood' });
657
665
  // Required, not defaulted. Minting an id here for a caller that omitted one makes every retry a
658
- // fresh claim, which is precisely the double-hold idempotency exists to prevent — and it fails
659
- // silently, for the one caller that needed it most. Nothing is live, so there is no old client
660
- // to keep working.
666
+ // fresh signature, and a retry must receive the same bytes it was first given — otherwise the
667
+ // trusted page cannot tell a replayed request from a new one.
661
668
  if (!isClaimRequestId(requestId)) {
662
669
  return reply.code(400).send({ message: 'that request was not understood' });
663
670
  }
@@ -675,10 +682,12 @@ function createGateRuntime(options, scoreAuthority, awardEndpoint) {
675
682
  buyer: payload.buyer,
676
683
  poolId: payload.poolId,
677
684
  deadline: payload.deadline.toString(),
678
- maxSpendWei: payload.maxSpendWei.toString(),
679
- nonce: payload.nonce.toString(),
685
+ spendCeilingWei: payload.spendCeilingWei.toString(),
680
686
  signature: payload.signature,
681
687
  signer: payload.signer,
688
+ // Not signed: the exact-in amount for THIS buy, clamped to what was available. The page
689
+ // spends exactly this; the calculator enforces the ceiling above.
690
+ spend: authorised.spend.toString(),
682
691
  // The embed passes this opaque value to the Flaunch buy call. Game code never reconstructs
683
692
  // the ABI and therefore cannot accidentally sign or submit a different transaction shape.
684
693
  hookData: encodeHookData(payload),
@@ -768,10 +777,8 @@ function createGateRuntime(options, scoreAuthority, awardEndpoint) {
768
777
  : {
769
778
  unitsPerPoint: room.terms.unitsPerPoint,
770
779
  earned: 0n,
771
- held: 0n,
772
780
  spent: 0n,
773
781
  available: 0n,
774
- holdExpiresAt: null,
775
782
  };
776
783
  const economy = wireEconomy(balance);
777
784
  return {
@@ -957,23 +964,14 @@ function createGateRuntime(options, scoreAuthority, awardEndpoint) {
957
964
  try {
958
965
  const now = Date.now();
959
966
  const sweeping = Boolean(settlement && now - reconciledAt >= RECONCILE_MS);
960
- // Authorisations nobody spent come back to the player who earned them.
961
- // A chain-backed gate expires holds atomically with confirmed spend, never ahead of a
962
- // lagging/failed RPC read. Demo and legacy adapters retain their existing expiry path.
963
- const released = settlement?.usesConfirmedSnapshots ? [] : await claims.releaseExpired().catch((error) => {
964
- app.log.error(error);
965
- return [];
966
- });
967
- for (const balance of released)
968
- announcePlayer(balance.roundId, balance.player);
969
967
  for (const [id, room] of rooms) {
970
- // Gameplay is over, but a buzzer-time authorisation and the chart remain honourable through
971
- // the independent books tail. A process can wake for the first time after this tail (for
968
+ // Gameplay is over, but a buzzer-time buy and the chart remain honourable through the
969
+ // independent books tail. A process can wake for the first time after this tail (for
972
970
  // example after a stall or restart), so persist every due game wake before deleting it.
973
971
  if (now > room.launch.booksCloseAt) {
974
- // Confirmations may trail a last-second claim's deadline. Keep background accounting
975
- // alive at the normal cadence until holds settle; socket deadlines remain independent.
976
- if (settlement?.usesConfirmedSnapshots && !sweeping)
972
+ // The last reconcile must run at the normal cadence, not on every tick, and a room is
973
+ // torn down only after one clean pass so the final standings carry every landed buy.
974
+ if (settlement && !sweeping)
977
975
  continue;
978
976
  try {
979
977
  if (room.nextWakeAt() !== null)
@@ -989,10 +987,21 @@ function createGateRuntime(options, scoreAuthority, awardEndpoint) {
989
987
  const final = await settlement.reconcile(id).catch(() => ({ read: 0, failed: 1, changed: [] }));
990
988
  if (final.failed > 0)
991
989
  app.log.error(`${id}: ${final.failed} final spend reads failed`);
992
- if (settlement.usesConfirmedSnapshots &&
993
- (final.failed > 0 || await settlement.hasPendingClaims(id).catch(() => true)))
990
+ if (final.failed > 0)
994
991
  continue;
995
992
  }
993
+ // The round is now proven final. Persist that before anything is torn down, so a page
994
+ // reading the standings can tell "ended, still settling" from "final" — and so the
995
+ // 4410 close below is never sent for a round the database still calls unsettled.
996
+ try {
997
+ await room.markSettled(now);
998
+ }
999
+ catch (error) {
1000
+ // Retain the room and retry: the standings would otherwise never be marked final,
1001
+ // and the sockets would be told the round ended before the database agreed.
1002
+ app.log.error(error);
1003
+ continue;
1004
+ }
996
1005
  for (const watcher of watchers.get(id) ?? []) {
997
1006
  if (watcher.viewer &&
998
1007
  activePlayerSockets.get(playerSocketKey(id, watcher.viewer)) === watcher) {