@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
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -9,9 +9,6 @@ export declare class Settlement {
9
9
  private readonly client;
10
10
  private readonly calculator;
11
11
  constructor(pool: Pool, ledger: Ledger, client: ChainReader & Partial<Pick<PublicClient, 'getBlock'>>, calculator: `0x${string}`);
12
- /** Expiry must use the same confirmed chain snapshot as spend when snapshot reads are available. */
13
- get usesConfirmedSnapshots(): boolean;
14
- hasPendingClaims(roundId: string): Promise<boolean>;
15
12
  /**
16
13
  * Bring one round's view of spending up to date with the chain.
17
14
  *
@@ -1 +1 @@
1
- {"version":3,"file":"settlement.d.ts","sourceRoot":"","sources":["../src/settlement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,MAAM,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAoBvD,qBAAa,UAAU;IAEnB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAHV,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,EAC7D,UAAU,EAAE,KAAK,MAAM,EAAE;IAG5C,oGAAoG;IACpG,IAAI,sBAAsB,IAAI,OAAO,CAAuD;IAEtF,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOzD;;;;;;OAMG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,QAAQ,EAAE,CAAA;KAAE,CAAC;CA2DjG"}
1
+ {"version":3,"file":"settlement.d.ts","sourceRoot":"","sources":["../src/settlement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,MAAM,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAkBvD,qBAAa,UAAU;IAEnB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAHV,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,EAC7D,UAAU,EAAE,KAAK,MAAM,EAAE;IAG5C;;;;;;OAMG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,QAAQ,EAAE,CAAA;KAAE,CAAC;CAwCjG"}
@@ -2,18 +2,16 @@ import { parseAbi } from 'viem';
2
2
  /**
3
3
  * Keeping the ledger honest about what was actually spent.
4
4
  *
5
- * The obvious design is to watch for a swap and match it back to the authorisation that permitted
6
- * it. That turns out to be both harder and less useful than it sounds: the event carries the buyer
7
- * and the amount but not the nonce, and a wallet can submit through a relay, so correlating them is
8
- * guesswork.
5
+ * The calculator keeps one cumulative figure per pool per wallet, `walletSpentWei`, and it is the
6
+ * only figure that is true: it is what the contract itself enforces the signed ceiling against.
7
+ * Settlement reads it at a confirmed block and records it, never backwards. There is nothing to
8
+ * match back to an authorisation — a signed ceiling is not consumed, so it has no fate to prove.
9
9
  *
10
- * Read cumulative spend and exact authorisation consumption from the same block. Equal amounts
11
- * are not proof that a hold was consumed. A browser receipt is not a reason to release a hold.
10
+ * A buy that lands after `closesAt` still needs to be folded into `spent` for the standings, which
11
+ * is why reconciliation runs through `booksCloseAt` and the room waits for one clean final pass.
12
12
  */
13
13
  const spendGatedAbi = parseAbi([
14
14
  'function walletSpentWei(bytes32 _poolId, address _wallet) view returns (uint256)',
15
- 'function hashSpendAuthorization(address,bytes32,uint256,uint256,uint256) view returns (bytes32)',
16
- 'function isAuthorizationUsed(bytes32) view returns (bool)',
17
15
  ]);
18
16
  export class Settlement {
19
17
  pool;
@@ -26,12 +24,6 @@ export class Settlement {
26
24
  this.client = client;
27
25
  this.calculator = calculator;
28
26
  }
29
- /** Expiry must use the same confirmed chain snapshot as spend when snapshot reads are available. */
30
- get usesConfirmedSnapshots() { return typeof this.client.getBlock === 'function'; }
31
- async hasPendingClaims(roundId) {
32
- const result = await this.pool.query(`select exists(select 1 from claims where round_id = $1 and status = 'held') as pending`, [roundId]);
33
- return result.rows[0]?.pending ?? false;
34
- }
35
27
  /**
36
28
  * Bring one round's view of spending up to date with the chain.
37
29
  *
@@ -52,15 +44,13 @@ export class Settlement {
52
44
  const changed = [];
53
45
  for (const player of players) {
54
46
  try {
55
- // Two blocks behind the observed head, then verify that block is still canonical before
56
- // committing. This follows chain confirmations, not wallet UI completion. Read-only
57
- // legacy adapters retain conservative expiry-only holds until upgraded to a full client.
47
+ // Two blocks behind the observed head when the client can name blocks, so a reorg of the
48
+ // tip cannot record a spend that then vanishes. A read-only legacy adapter reads the tip;
49
+ // `recordChainSpend` never goes backwards, so the worst case is a figure that arrives early.
58
50
  const head = this.client.getBlock ? await this.client.getBlock({ blockTag: 'latest' }) : null;
59
- const block = head?.number != null && head.number >= 2n
60
- ? await this.client.getBlock({ blockNumber: head.number - 2n }) : null;
61
- if (this.client.getBlock && (block?.number !== head.number - 2n || !block?.hash || typeof block.timestamp !== 'bigint'))
51
+ if (this.client.getBlock && (head?.number == null || head.number < 2n))
62
52
  throw new Error('No confirmed block');
63
- const atBlock = block ? { blockNumber: block.number } : {};
53
+ const atBlock = head?.number != null ? { blockNumber: head.number - 2n } : {};
64
54
  const spent = (await this.client.readContract({
65
55
  address: this.calculator,
66
56
  abi: spendGatedAbi,
@@ -70,29 +60,7 @@ export class Settlement {
70
60
  }));
71
61
  if (typeof spent !== 'bigint' || spent < 0n)
72
62
  throw new Error('Invalid chain spend');
73
- const consumed = [];
74
- if (block) {
75
- const outstanding = await this.ledger.outstandingClaims(roundId, player);
76
- for (const claim of outstanding) {
77
- if (claim.deadline < block.timestamp)
78
- continue;
79
- const digest = await this.client.readContract({ address: this.calculator, abi: spendGatedAbi,
80
- functionName: 'hashSpendAuthorization',
81
- args: [player, poolId, claim.deadline, claim.wei, claim.nonce], ...atBlock });
82
- if (typeof digest !== 'string' || !/^0x[0-9a-fA-F]{64}$/.test(digest))
83
- throw new Error('Invalid digest');
84
- const used = await this.client.readContract({ address: this.calculator, abi: spendGatedAbi,
85
- functionName: 'isAuthorizationUsed', args: [digest], ...atBlock });
86
- if (typeof used !== 'boolean')
87
- throw new Error('Invalid consumption proof');
88
- if (used)
89
- consumed.push(claim.nonce);
90
- }
91
- const canonical = await this.client.getBlock({ blockNumber: block.number });
92
- if (canonical.hash !== block.hash)
93
- throw new Error('Settlement block changed');
94
- }
95
- if (await this.ledger.reconcileSpend(roundId, player, spent, consumed, block?.timestamp))
63
+ if (await this.ledger.recordChainSpend(roundId, player, spent))
96
64
  changed.push(player);
97
65
  read += 1;
98
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"settlement.js","sourceRoot":"","sources":["../src/settlement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settlement.js","sourceRoot":"","sources":["../src/settlement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAqB,MAAM,MAAM,CAAC;AAMnD;;;;;;;;;;GAUG;AAEH,MAAM,aAAa,GAAG,QAAQ,CAAC;IAC7B,kFAAkF;CACnF,CAAC,CAAC;AAEH,MAAM,OAAO,UAAU;IAEF;IACA;IACA;IACA;IAJnB,YACmB,IAAU,EACV,MAAc,EACd,MAA6D,EAC7D,UAAyB;QAHzB,SAAI,GAAJ,IAAI,CAAM;QACV,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAuD;QAC7D,eAAU,GAAV,UAAU,CAAe;IACzC,CAAC;IAEJ;;;;;;OAMG;IACH,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAsB,0CAA0C,EAAE;YACnG,OAAO;SACR,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QACtC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAExD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,MAAM,OAAO,GAAe,EAAE,CAAC;QAE/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,yFAAyF;gBACzF,0FAA0F;gBAC1F,6FAA6F;gBAC7F,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC9F,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBAC9G,MAAM,OAAO,GAAG,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9E,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;oBAC5C,OAAO,EAAE,IAAI,CAAC,UAAU;oBACxB,GAAG,EAAE,aAAa;oBAClB,YAAY,EAAE,gBAAgB;oBAC9B,IAAI,EAAE,CAAC,MAAuB,EAAE,MAAuB,CAAC;oBACxD,GAAG,OAAO;iBACX,CAAC,CAAW,CAAC;gBACd,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,EAAE;oBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;gBACpF,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC;oBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrF,IAAI,IAAI,CAAC,CAAC;YACZ,CAAC;YAAC,MAAM,CAAC;gBACP,uFAAuF;gBACvF,0FAA0F;gBAC1F,sFAAsF;gBACtF,gBAAgB;gBAChB,MAAM,IAAI,CAAC,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACnC,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"standings.d.ts","sourceRoot":"","sources":["../src/standings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAKL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACpB,MAAM,gCAAgC,CAAC;AAGxC;;;;;;;;;GASG;AACH,qBAAa,SAAS;IAElB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM;IAGjC;;;;;OAKG;IACG,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAwEtF;;;OAGG;IACG,SAAS,CACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,OAAO,GACvC,OAAO,CAAC;QAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAuBhE"}
1
+ {"version":3,"file":"standings.d.ts","sourceRoot":"","sources":["../src/standings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAKL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACpB,MAAM,gCAAgC,CAAC;AAGxC;;;;;;;;;GASG;AACH,qBAAa,SAAS;IAElB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM;IAGjC;;;;;OAKG;IACG,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAgFtF;;;OAGG;IACG,SAAS,CACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,OAAO,GACvC,OAAO,CAAC;QAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAuBhE"}
package/dist/standings.js CHANGED
@@ -27,7 +27,7 @@ export class Standings {
27
27
  async forCoin(coin, now = Date.now()) {
28
28
  if (typeof coin !== 'string' || !isAddress(coin, { strict: false }))
29
29
  return null;
30
- const rounds = await this.pool.query(`select id, pool_id, coin_address, coin_symbol, opens_at, closes_at,
30
+ const rounds = await this.pool.query(`select id, pool_id, coin_address, coin_symbol, opens_at, closes_at, books_close_at, settled_at,
31
31
  spend_token, spend_symbol, spend_decimals, usd_per_spend_token, usd_per_eth
32
32
  from rounds
33
33
  where lower(coin_address) = $1 and game_id = $2
@@ -50,6 +50,9 @@ export class Standings {
50
50
  ]),
51
51
  ]);
52
52
  const window = { opensAt: Number(round.opens_at), closesAt: Number(round.closes_at) };
53
+ // `settled_at` is stamped by the gate's ticker after its last clean reconcile, so it is the one
54
+ // fact that separates "ended, still settling" from "final". The phase is clock-based and cannot.
55
+ const settledAt = round.settled_at === null ? null : Number(round.settled_at);
53
56
  return {
54
57
  roundId: round.id,
55
58
  poolId: round.pool_id,
@@ -57,6 +60,9 @@ export class Standings {
57
60
  symbol: round.coin_symbol,
58
61
  phase: roundPhaseAt(window, now),
59
62
  ...window,
63
+ booksCloseAt: Number(round.books_close_at),
64
+ settledAt,
65
+ final: settledAt !== null,
60
66
  spendToken: {
61
67
  address: round.spend_token,
62
68
  symbol: round.spend_symbol,
@@ -1 +1 @@
1
- {"version":3,"file":"standings.js","sourceRoot":"","sources":["../src/standings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standings.js","sourceRoot":"","sources":["../src/standings.ts"],"names":[],"mappings":"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"}
package/dist/store.d.ts CHANGED
@@ -6,7 +6,7 @@ import type { Pool, PoolClient } from 'pg';
6
6
  * table is how a schema drifts: one adds a column, the other's migration never runs, and the
7
7
  * failure appears somewhere neither of them looks.
8
8
  */
9
- export declare const SCHEMA = "\ncreate table if not exists rounds (\n id text primary key,\n game_id text not null check (game_id <> ''),\n wei_per_point numeric(78,0) not null check (wei_per_point > 0),\n wallet_cap_wei numeric(78,0) not null check (wallet_cap_wei > 0),\n -- The two settings that produced wei_per_point, frozen beside it. They are gate-process config,\n -- so an operator who restarts with a new ETH price must not retroactively change what a round\n -- was priced at.\n points_per_dollar double precision not null check (points_per_dollar > 0),\n usd_per_eth double precision not null check (usd_per_eth > 0),\n -- The token spend is measured in: the coin's paired token, in whose base units every *_wei column\n -- of this round is denominated. Defaults describe ETH, which is what every round was before the\n -- columns existed, so a pre-existing row reads back exactly as it was priced. usd_per_eth holds\n -- the rate normalised to eighteen decimals (see economy.ts); usd_per_spend_token the token's own\n -- price, null on rows that predate it (for which usd_per_eth is that price).\n spend_token text not null default '0x0000000000000000000000000000000000000000' check (spend_token <> ''),\n spend_symbol text not null default 'ETH' check (spend_symbol <> ''),\n spend_decimals integer not null default 18 check (spend_decimals between 0 and 36),\n usd_per_spend_token double precision check (usd_per_spend_token > 0),\n max_points_per_player bigint not null check (max_points_per_player > 0),\n score_authority text not null check (score_authority in ('rules', 'external-server')),\n pool_id text not null,\n opens_at bigint not null,\n closes_at bigint not null,\n books_close_at bigint not null,\n coin_address text,\n coin_name text not null,\n coin_symbol text not null,\n coin_image_url text,\n -- The game's own state, opaque to the platform. Written after every command, so a restart\n -- resumes from here rather than replaying history.\n state jsonb not null,\n -- Commands applied so far. Doubles as the cursor a reconnecting client resumes from.\n seq integer not null default 0 check (seq >= 0),\n constraint rounds_window check (opens_at < closes_at),\n constraint rounds_books_tail check (books_close_at >= closes_at)\n);\n\n-- A developer may already have run the first published schema without creating any rounds. Add\n-- the new authority fields in place for that empty setup. Existing round data needs a deliberate\n-- reset because its original reward bound cannot be reconstructed safely.\nalter table rounds\n add column if not exists game_id text check (game_id <> '');\nalter table rounds\n add column if not exists max_points_per_player bigint check (max_points_per_player > 0);\nalter table rounds\n add column if not exists score_authority text check (score_authority in ('rules', 'external-server'));\nalter table rounds\n add column if not exists points_per_dollar double precision check (points_per_dollar > 0);\nalter table rounds\n add column if not exists usd_per_eth double precision check (usd_per_eth > 0);\ndo $$\nbegin\n if exists (\n select 1 from rounds\n where game_id is null or max_points_per_player is null or score_authority is null\n or points_per_dollar is null or usd_per_eth is null\n ) then\n raise exception 'pre-release round rows cannot be upgraded safely'\n using hint = 'Delete the pre-release round data, then run migrate(pool) again.';\n end if;\nend\n$$;\nalter table rounds alter column game_id set not null;\nalter table rounds alter column max_points_per_player set not null;\nalter table rounds alter column score_authority set not null;\nalter table rounds alter column points_per_dollar set not null;\nalter table rounds alter column usd_per_eth set not null;\n\n-- Paired-token rounds (0.5.0). Every earlier round was an ETH round, so the defaults ARE the\n-- backfill: Postgres fills a new not-null column with its default, and ETH/18 is exactly what those\n-- rows were priced in. No guard is needed \u2014 nothing here has to be guessed.\nalter table rounds\n add column if not exists spend_token text not null default '0x0000000000000000000000000000000000000000' check (spend_token <> '');\nalter table rounds\n add column if not exists spend_symbol text not null default 'ETH' check (spend_symbol <> '');\nalter table rounds\n add column if not exists spend_decimals integer not null default 18 check (spend_decimals between 0 and 36);\nalter table rounds\n add column if not exists usd_per_spend_token double precision check (usd_per_spend_token > 0);\n\ncreate table if not exists balances (\n round_id text not null references rounds(id) on delete cascade,\n player text not null,\n points bigint not null default 0 check (points >= 0),\n -- What the chain says this wallet has already spent on this pool. The contract keeps this and\n -- enforces it whatever we believe, so it is the only figure that is actually true.\n chain_spent_wei numeric(78,0) not null default 0 check (chain_spent_wei >= 0),\n primary key (round_id, player)\n);\n\n-- One row per authorisation ever issued. Nothing is deleted: a signature that exists in the world\n-- cannot be un-issued, so the ledger records its fate instead of forgetting it.\ncreate table if not exists claims (\n nonce bigint generated always as identity primary key,\n round_id text not null references rounds(id) on delete cascade,\n player text not null,\n request_id varchar(128) not null check (request_id <> ''),\n requested_wei numeric(78,0) not null check (requested_wei > 0),\n wei numeric(78,0) not null check (wei > 0 and wei <= requested_wei),\n -- Held or released, and nothing else. Whether a swap LANDED is the chain's to say, not ours.\n status text not null check (status in ('held', 'released')),\n deadline bigint not null,\n -- Persisted before a payload leaves the gate. Until signing completes, both values are null.\n signature text,\n signer text,\n created_at timestamptz not null default now(),\n constraint claims_by_request unique (round_id, player, request_id),\n constraint claims_signature_pair check ((signature is null) = (signer is null))\n);\n\ncreate index if not exists claims_by_player on claims (round_id, player) where status = 'held';\n\n-- Trusted creator servers use one stable event id for every score increment. The event and the\n-- balance update commit together, so a retry can recover the first result without paying twice.\ncreate table if not exists award_events (\n round_id text not null references rounds(id) on delete cascade,\n event_id varchar(128) not null check (event_id <> ''),\n player text not null,\n points bigint not null check (points > 0),\n total_points bigint not null check (total_points >= points),\n created_at timestamptz not null default now(),\n primary key (round_id, event_id)\n);\n\n-- Which game a coin plays. Addresses are chain-local, so the pin is one row per (chain, coin).\ncreate table if not exists registrations (\n chain_id bigint not null check (chain_id > 0),\n coin text not null check (coin <> ''),\n game_id text not null check (game_id <> ''),\n gate_origin text not null check (gate_origin <> ''),\n deploy_id text not null check (deploy_id <> ''),\n game_server_origins text[] not null default '{}'::text[],\n disabled_at timestamptz,\n updated_at timestamptz not null default now(),\n constraint registrations_game_server_origins_bounded check (cardinality(game_server_origins) <= 4),\n primary key (chain_id, coin)\n);\n\n-- Accepted play sessions: one row per wallet and round, keyed by a hash of both so a wallet is never\n-- stored in the clear. Independent of scoring and of websocket reconnects. play_tracking records\n-- when this gate began counting, so a dashboard can tell \"no plays\" from \"not yet tracked\".\ncreate table if not exists play_sessions (\n id text primary key,\n round_id text not null references rounds(id) on delete cascade,\n started_at bigint not null\n);\ncreate index if not exists play_sessions_started_id_idx on play_sessions(started_at, id);\ncreate table if not exists play_tracking (\n id boolean primary key default true check (id),\n started_at bigint not null\n);\ninsert into play_tracking(id, started_at) values (true, (extract(epoch from clock_timestamp()) * 1000)::bigint) on conflict do nothing;\n\n-- What actually happened, in order. Not used to rebuild state \u2014 the snapshot does that \u2014 but it is\n-- the record of why a state looks the way it does, which is what an incident needs.\ncreate table if not exists commands (\n round_id text not null references rounds(id) on delete cascade,\n seq integer not null check (seq > 0),\n command jsonb not null,\n primary key (round_id, seq)\n);\n";
9
+ export declare const SCHEMA = "\ncreate table if not exists rounds (\n id text primary key,\n game_id text not null check (game_id <> ''),\n wei_per_point numeric(78,0) not null check (wei_per_point > 0),\n wallet_cap_wei numeric(78,0) not null check (wallet_cap_wei > 0),\n -- The two settings that produced wei_per_point, frozen beside it. They are gate-process config,\n -- so an operator who restarts with a new ETH price must not retroactively change what a round\n -- was priced at.\n points_per_dollar double precision not null check (points_per_dollar > 0),\n usd_per_eth double precision not null check (usd_per_eth > 0),\n -- The token spend is measured in: the coin's paired token, in whose base units every *_wei column\n -- of this round is denominated. Defaults describe ETH, which is what every round was before the\n -- columns existed, so a pre-existing row reads back exactly as it was priced. usd_per_eth holds\n -- the rate normalised to eighteen decimals (see economy.ts); usd_per_spend_token the token's own\n -- price, null on rows that predate it (for which usd_per_eth is that price).\n spend_token text not null default '0x0000000000000000000000000000000000000000' check (spend_token <> ''),\n spend_symbol text not null default 'ETH' check (spend_symbol <> ''),\n spend_decimals integer not null default 18 check (spend_decimals between 0 and 36),\n usd_per_spend_token double precision check (usd_per_spend_token > 0),\n max_points_per_player bigint not null check (max_points_per_player > 0),\n score_authority text not null check (score_authority in ('rules', 'external-server')),\n pool_id text not null,\n opens_at bigint not null,\n closes_at bigint not null,\n books_close_at bigint not null,\n coin_address text,\n coin_name text not null,\n coin_symbol text not null,\n coin_image_url text,\n -- The game's own state, opaque to the platform. Written after every command, so a restart\n -- resumes from here rather than replaying history.\n state jsonb not null,\n -- Commands applied so far. Doubles as the cursor a reconnecting client resumes from.\n seq integer not null default 0 check (seq >= 0),\n constraint rounds_window check (opens_at < closes_at),\n constraint rounds_books_tail check (books_close_at >= closes_at)\n);\n\n-- A developer may already have run the first published schema without creating any rounds. Add\n-- the new authority fields in place for that empty setup. Existing round data needs a deliberate\n-- reset because its original reward bound cannot be reconstructed safely.\nalter table rounds\n add column if not exists game_id text check (game_id <> '');\nalter table rounds\n add column if not exists max_points_per_player bigint check (max_points_per_player > 0);\nalter table rounds\n add column if not exists score_authority text check (score_authority in ('rules', 'external-server'));\nalter table rounds\n add column if not exists points_per_dollar double precision check (points_per_dollar > 0);\nalter table rounds\n add column if not exists usd_per_eth double precision check (usd_per_eth > 0);\ndo $$\nbegin\n if exists (\n select 1 from rounds\n where game_id is null or max_points_per_player is null or score_authority is null\n or points_per_dollar is null or usd_per_eth is null\n ) then\n raise exception 'pre-release round rows cannot be upgraded safely'\n using hint = 'Delete the pre-release round data, then run migrate(pool) again.';\n end if;\nend\n$$;\nalter table rounds alter column game_id set not null;\nalter table rounds alter column max_points_per_player set not null;\nalter table rounds alter column score_authority set not null;\nalter table rounds alter column points_per_dollar set not null;\nalter table rounds alter column usd_per_eth set not null;\n\n-- Paired-token rounds (0.5.0). Every earlier round was an ETH round, so the defaults ARE the\n-- backfill: Postgres fills a new not-null column with its default, and ETH/18 is exactly what those\n-- rows were priced in. No guard is needed \u2014 nothing here has to be guessed.\nalter table rounds\n add column if not exists spend_token text not null default '0x0000000000000000000000000000000000000000' check (spend_token <> '');\nalter table rounds\n add column if not exists spend_symbol text not null default 'ETH' check (spend_symbol <> '');\nalter table rounds\n add column if not exists spend_decimals integer not null default 18 check (spend_decimals between 0 and 36);\nalter table rounds\n add column if not exists usd_per_spend_token double precision check (usd_per_spend_token > 0);\n\n-- Any wired PositionManager (0.6.0). The manager a round's coin was launched on, as the gate\n-- resolved it from the coin at adoption. Null on rounds adopted before the gate recorded it, and on\n-- demo and mock rounds; nothing reads it back for gameplay, it is provenance for the operator.\nalter table rounds\n add column if not exists position_manager text check (position_manager <> '');\n\n-- Round finalization (0.7.0). The moment the gate finished its last clean settlement pass past\n-- books_close_at, in ms since the epoch: from here chain_spent_wei cannot move. Null while a round is still\n-- settling, and on rounds a gate below 0.7.0 closed \u2014 nothing can reconstruct it for those.\nalter table rounds\n add column if not exists settled_at bigint;\n\ncreate table if not exists balances (\n round_id text not null references rounds(id) on delete cascade,\n player text not null,\n points bigint not null default 0 check (points >= 0),\n -- What the chain says this wallet has already spent on this pool. The contract keeps this and\n -- enforces it whatever we believe, so it is the only figure that is actually true.\n chain_spent_wei numeric(78,0) not null default 0 check (chain_spent_wei >= 0),\n primary key (round_id, player)\n);\n\n-- One row per signed authorisation, kept only so a retried or replica-raced request returns the\n-- exact bytes already handed out. Nothing here is a reservation: the signature carries a\n-- cumulative ceiling the calculator compares against its own walletSpentWei, so an unused one\n-- costs nothing and there is no fate to record.\ncreate table if not exists authorisations (\n round_id text not null references rounds(id) on delete cascade,\n player text not null,\n request_id varchar(128) not null check (request_id <> ''),\n -- What the caller asked for, so a retry with a different amount is refused, not silently served.\n requested_wei numeric(78,0) not null check (requested_wei > 0),\n -- The signed field: min(earned, wallet cap) at issue, in the round's spend-token base units.\n spend_ceiling_wei numeric(78,0) not null check (spend_ceiling_wei > 0),\n -- The exact-in amount the caller intended, clamped to what was available. Echoed, not signed.\n spend_wei numeric(78,0) not null check (spend_wei > 0 and spend_wei <= spend_ceiling_wei),\n deadline bigint not null,\n signature text not null,\n signer text not null,\n created_at timestamptz not null default now(),\n primary key (round_id, player, request_id)\n);\n\n-- 0.7.0 hard cutover. Holds no longer exist, and every row the old table could carry was signed\n-- under the version 1 calculator domain that a 0.7.0 gate cannot serve. Dropping it is the honest\n-- migration; a gate should not be upgraded until every live round has passed its books close.\ndrop index if exists claims_by_player;\ndrop table if exists claims;\n\n-- Trusted creator servers use one stable event id for every score increment. The event and the\n-- balance update commit together, so a retry can recover the first result without paying twice.\ncreate table if not exists award_events (\n round_id text not null references rounds(id) on delete cascade,\n event_id varchar(128) not null check (event_id <> ''),\n player text not null,\n points bigint not null check (points > 0),\n total_points bigint not null check (total_points >= points),\n created_at timestamptz not null default now(),\n primary key (round_id, event_id)\n);\n\n-- Which game a coin plays. Addresses are chain-local, so the pin is one row per (chain, coin).\ncreate table if not exists registrations (\n chain_id bigint not null check (chain_id > 0),\n coin text not null check (coin <> ''),\n game_id text not null check (game_id <> ''),\n gate_origin text not null check (gate_origin <> ''),\n deploy_id text not null check (deploy_id <> ''),\n game_server_origins text[] not null default '{}'::text[],\n disabled_at timestamptz,\n updated_at timestamptz not null default now(),\n constraint registrations_game_server_origins_bounded check (cardinality(game_server_origins) <= 4),\n primary key (chain_id, coin)\n);\n\n-- Accepted play sessions: one row per wallet and round, keyed by a hash of both so a wallet is never\n-- stored in the clear. Independent of scoring and of websocket reconnects. play_tracking records\n-- when this gate began counting, so a dashboard can tell \"no plays\" from \"not yet tracked\".\ncreate table if not exists play_sessions (\n id text primary key,\n round_id text not null references rounds(id) on delete cascade,\n started_at bigint not null\n);\ncreate index if not exists play_sessions_started_id_idx on play_sessions(started_at, id);\ncreate table if not exists play_tracking (\n id boolean primary key default true check (id),\n started_at bigint not null\n);\ninsert into play_tracking(id, started_at) values (true, (extract(epoch from clock_timestamp()) * 1000)::bigint) on conflict do nothing;\n\n-- What actually happened, in order. Not used to rebuild state \u2014 the snapshot does that \u2014 but it is\n-- the record of why a state looks the way it does, which is what an incident needs.\ncreate table if not exists commands (\n round_id text not null references rounds(id) on delete cascade,\n seq integer not null check (seq > 0),\n command jsonb not null,\n primary key (round_id, seq)\n);\n";
10
10
  /**
11
11
  * Run `fn` inside a transaction, committing on success and rolling back on failure.
12
12
  *
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,8vRAmKlB,CAAC;AAMF;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAiBjG;AAED,sGAAsG;AACtG,wBAAsB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAKvD;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,MAA4B,CAAC"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,i7TAoLlB,CAAC;AAMF;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAiBjG;AAED,sGAAsG;AACtG,wBAAsB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAKvD;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,MAA4B,CAAC"}
package/dist/store.js CHANGED
@@ -87,6 +87,18 @@ alter table rounds
87
87
  alter table rounds
88
88
  add column if not exists usd_per_spend_token double precision check (usd_per_spend_token > 0);
89
89
 
90
+ -- Any wired PositionManager (0.6.0). The manager a round's coin was launched on, as the gate
91
+ -- resolved it from the coin at adoption. Null on rounds adopted before the gate recorded it, and on
92
+ -- demo and mock rounds; nothing reads it back for gameplay, it is provenance for the operator.
93
+ alter table rounds
94
+ add column if not exists position_manager text check (position_manager <> '');
95
+
96
+ -- Round finalization (0.7.0). The moment the gate finished its last clean settlement pass past
97
+ -- books_close_at, in ms since the epoch: from here chain_spent_wei cannot move. Null while a round is still
98
+ -- settling, and on rounds a gate below 0.7.0 closed — nothing can reconstruct it for those.
99
+ alter table rounds
100
+ add column if not exists settled_at bigint;
101
+
90
102
  create table if not exists balances (
91
103
  round_id text not null references rounds(id) on delete cascade,
92
104
  player text not null,
@@ -97,27 +109,32 @@ create table if not exists balances (
97
109
  primary key (round_id, player)
98
110
  );
99
111
 
100
- -- One row per authorisation ever issued. Nothing is deleted: a signature that exists in the world
101
- -- cannot be un-issued, so the ledger records its fate instead of forgetting it.
102
- create table if not exists claims (
103
- nonce bigint generated always as identity primary key,
104
- round_id text not null references rounds(id) on delete cascade,
105
- player text not null,
106
- request_id varchar(128) not null check (request_id <> ''),
107
- requested_wei numeric(78,0) not null check (requested_wei > 0),
108
- wei numeric(78,0) not null check (wei > 0 and wei <= requested_wei),
109
- -- Held or released, and nothing else. Whether a swap LANDED is the chain's to say, not ours.
110
- status text not null check (status in ('held', 'released')),
111
- deadline bigint not null,
112
- -- Persisted before a payload leaves the gate. Until signing completes, both values are null.
113
- signature text,
114
- signer text,
115
- created_at timestamptz not null default now(),
116
- constraint claims_by_request unique (round_id, player, request_id),
117
- constraint claims_signature_pair check ((signature is null) = (signer is null))
112
+ -- One row per signed authorisation, kept only so a retried or replica-raced request returns the
113
+ -- exact bytes already handed out. Nothing here is a reservation: the signature carries a
114
+ -- cumulative ceiling the calculator compares against its own walletSpentWei, so an unused one
115
+ -- costs nothing and there is no fate to record.
116
+ create table if not exists authorisations (
117
+ round_id text not null references rounds(id) on delete cascade,
118
+ player text not null,
119
+ request_id varchar(128) not null check (request_id <> ''),
120
+ -- What the caller asked for, so a retry with a different amount is refused, not silently served.
121
+ requested_wei numeric(78,0) not null check (requested_wei > 0),
122
+ -- The signed field: min(earned, wallet cap) at issue, in the round's spend-token base units.
123
+ spend_ceiling_wei numeric(78,0) not null check (spend_ceiling_wei > 0),
124
+ -- The exact-in amount the caller intended, clamped to what was available. Echoed, not signed.
125
+ spend_wei numeric(78,0) not null check (spend_wei > 0 and spend_wei <= spend_ceiling_wei),
126
+ deadline bigint not null,
127
+ signature text not null,
128
+ signer text not null,
129
+ created_at timestamptz not null default now(),
130
+ primary key (round_id, player, request_id)
118
131
  );
119
132
 
120
- create index if not exists claims_by_player on claims (round_id, player) where status = 'held';
133
+ -- 0.7.0 hard cutover. Holds no longer exist, and every row the old table could carry was signed
134
+ -- under the version 1 calculator domain that a 0.7.0 gate cannot serve. Dropping it is the honest
135
+ -- migration; a gate should not be upgraded until every live round has passed its books close.
136
+ drop index if exists claims_by_player;
137
+ drop table if exists claims;
121
138
 
122
139
  -- Trusted creator servers use one stable event id for every score increment. The event and the
123
140
  -- balance update commit together, so a retry can recover the first result without paying twice.
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmKrB,CAAC;AAEF,MAAM,cAAc,GAAG;;EAErB,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAI,IAAU,EAAE,EAAkC;IACnF,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,OAAO,EAAE,CAAC;IACf,CAAC;AACH,CAAC;AAED,sGAAsG;AACtG,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAU;IACtC,MAAM,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;QACrC,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC/B,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAyC,EAAU,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoLrB,CAAC;AAEF,MAAM,cAAc,GAAG;;EAErB,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAI,IAAU,EAAE,EAAkC;IACnF,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,OAAO,EAAE,CAAC;IACf,CAAC;AACH,CAAC;AAED,sGAAsG;AACtG,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAU;IACtC,MAAM,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;QACrC,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC/B,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAyC,EAAU,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC"}
package/dist/version.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // Generated by scripts/write-version.mjs from package.json at build time. Do not edit.
2
2
  /** The published version of @flayerlabs/gamemode-gate, as a literal so it survives any bundler. */
3
- export const GATE_VERSION = "0.5.6";
3
+ export const GATE_VERSION = "0.7.0";
4
4
  /** `@flayerlabs/gamemode-gate@<version>`: the text a build of this package can be searched for. */
5
- export const GATE_MARKER = "@flayerlabs/gamemode-gate@0.5.6";
5
+ export const GATE_MARKER = "@flayerlabs/gamemode-gate@0.7.0";
6
6
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flayerlabs/gamemode-gate",
3
- "version": "0.5.6",
3
+ "version": "0.7.0",
4
4
  "description": "Server-authoritative rooms, economy, admission and registry for Flaunch Game Modes",
5
5
  "license": "MIT",
6
6
  "author": "Flayer Labs",
@@ -45,7 +45,7 @@
45
45
  "dependencies": {
46
46
  "@fastify/cors": "^11.3.0",
47
47
  "@fastify/websocket": "^11.3.0",
48
- "@flayerlabs/gamemode-spec": "^0.5.6",
48
+ "@flayerlabs/gamemode-spec": "^0.7.0",
49
49
  "@types/node": "^22.10.2",
50
50
  "@types/pg": "^8.21.0",
51
51
  "fastify": "^5.11.3",
@@ -14,10 +14,14 @@
14
14
  * that chain is served by the legacy gate, and this library refusing it keeps the two stacks from
15
15
  * being pointed at each other by a copied env file.
16
16
  *
17
- * One gate serves exactly ONE (positionManager, spendGatedCalculator) pair. The EIP-712 domain of
18
- * every authorisation binds it to the calculator address, so a signature minted for one pair is
19
- * meaningless to the other — a gate cannot straddle two stacks, and this book records each stack
20
- * as its own entry rather than pretending a chain has one.
17
+ * One gate serves ONE spendGatedCalculator, and any PositionManager wired to it. The EIP-712
18
+ * domain of every authorisation binds it to the calculator address, so a signature minted for one
19
+ * calculator is meaningless to another — a gate cannot straddle two calculators, and this book
20
+ * records each as its own entry rather than pretending a chain has one. The manager is looser: a
21
+ * coin offered for adoption names its own manager, and the gate adopts it when that manager's fee
22
+ * wiring routes to the gate's calculator (`chain/secure.ts`). The `positionManager` recorded here
23
+ * is the PRIMARY one — what boot asserts, what `/config` announces and what the readiness proof
24
+ * launches on — not the only one the gate will serve.
21
25
  */
22
26
 
23
27
  /**
@@ -33,8 +37,12 @@
33
37
  * v1_3 — the current generation, launched through the V1_3 FlaunchZap. The only one that
34
38
  * can pair a coin with a token other than ETH, and therefore the only one that can
35
39
  * run a paired-token round.
40
+ * any_v1_3 — the V1_3 AnyPositionManager, launched through AnyFlaunchZap: the same fee wiring
41
+ * and paired-token rounds as `v1_3`, plus vesting. Named here so an operator may
42
+ * make it the primary manager via `FLAUNCH_VARIANT`; a gate whose primary is `v1_3`
43
+ * adopts coins on it anyway, because adoption asks the chain, not this list.
36
44
  */
37
- export type FlaunchVariant = 'v1_2' | 'multichain' | 'v1_3';
45
+ export type FlaunchVariant = 'v1_2' | 'multichain' | 'v1_3' | 'any_v1_3';
38
46
 
39
47
  export interface GateDeployment {
40
48
  positionManager: `0x${string}`;
@@ -44,7 +52,7 @@ export interface GateDeployment {
44
52
  * The single-pool swap router the calculator has approved, when the stack has one. A paired-token
45
53
  * buy goes through it (ERC20 in, `hookData` carrying the authorisation), and the calculator binds
46
54
  * the buyer to its `msgSender()` — so an unapproved router means every smart-wallet buy reverts.
47
- * Required for `v1_3`; boot refuses a paired stack without it.
55
+ * Required for `v1_3` and `any_v1_3`; boot refuses a paired stack without it.
48
56
  */
49
57
  poolSwap?: `0x${string}`;
50
58
  /**
@@ -94,7 +102,9 @@ export const PAIRED_DEPLOYMENTS: Record<number, GateDeployment> = {
94
102
  */
95
103
  84532: {
96
104
  positionManager: '0x8D346f24278C5CD786309161aAC0fC2bbe4c25dc',
97
- spendGatedCalculator: '0x54cdcf0bcbc3a33f470e07134c10582f93058a32',
105
+ // v2 (cumulative spend ceilings, domain version 2), deployed 2026-09-14 at block 46822712 on the
106
+ // same dispatcher as v1 0x54cdcf0b…, which stays registered for pools launched before it.
107
+ spendGatedCalculator: '0x8a36826253882c8b505d6d78a71b780ac9c98ea9',
98
108
  flaunchVariant: 'v1_3',
99
109
  poolSwap: '0xf0f388a31a1745a5e2378b812ed51525f70595be',
100
110
  fleth: '0x79FC52701cD4BE6f9Ba9aDC94c207DE37e3314eb',