@provable-games/dm-engine 0.1.0 → 0.2.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.
package/README.md ADDED
@@ -0,0 +1,69 @@
1
+ # @provable-games/dm-engine
2
+
3
+ The Death Mountain game rules and commit-reveal protocol in TypeScript — a mirror of the Cairo
4
+ in `contracts/src`.
5
+
6
+ Consumed by three places that must agree exactly:
7
+
8
+ | | |
9
+ | --- | --- |
10
+ | `death-mountain-client` | the board the player acts on |
11
+ | `indexer` | off-chain replay of committed transcripts into the event tables |
12
+ | `api` | token-id decoding |
13
+
14
+ ## Why it has to be shared
15
+
16
+ Under commit-reveal the chain executes nothing. The client's simulation is not a guess that
17
+ on-chain events correct a second later — it *is* the board, and nothing corrects it. If it
18
+ diverges from the Cairo replay by one point of health, the next committed action is
19
+ state-invalid, settlement rejects the transcript, and the run is permanently unplayable.
20
+
21
+ Two copies of the rules would drift. There is one.
22
+
23
+ ## Keeping it honest
24
+
25
+ The rules are hand-maintained, so nothing in Cairo forces them to stay in step. Three things do:
26
+
27
+ - **`test/vectors.scheme.json`** — `root`, `fold`, `action_entropy` and every opcode encoding,
28
+ printed by the real Cairo. Regenerate with
29
+ `snforge test commit_reveal::test_vectors` in `contracts/`, then paste into the fixture.
30
+ - **`test/replay.entropy.test.ts`** — asserts each action is a pure function of
31
+ `(state, action, entropy)` and draws **zero** `Math.random()`. A missed roll is the bug class
32
+ that bricks runs.
33
+ - **`GameSettled` cross-check** — in production the indexer diffs its replayed adventurer against
34
+ the contract's packed result and writes a `replay_divergences` row on mismatch. That is the only
35
+ genuinely independent check, since the client and the indexer share this code.
36
+
37
+ ## Publishing
38
+
39
+ `indexer`, `api` and the client all depend on the **published** package (`^0.1.0`), not a
40
+ workspace link. That is deliberate: both backends deploy via Dockerfiles that build from their own
41
+ subdirectory, where a `workspace:*` specifier cannot resolve.
42
+
43
+ The cost is that a rules change is not picked up by its consumers until it ships:
44
+
45
+ ```bash
46
+ pnpm test && pnpm build # vectors must pass before anything goes out
47
+ npm version patch # or minor, if the API changed
48
+ npm publish # publishConfig already sets public access
49
+ ```
50
+
51
+ then bump the range in `indexer`, `api` and the client.
52
+
53
+ To iterate locally without publishing, point a consumer at the checkout temporarily
54
+ (`pnpm add link:../packages/engine`) and put it back before committing.
55
+
56
+ ## Layout
57
+
58
+ ```
59
+ src/
60
+ protocol.ts domains, action codec, root / fold / actionEntropy
61
+ transcript.ts ActionCommitted decoding, re-folding, chain ordering
62
+ actions.ts GameAction <-> encoded felt
63
+ replay.ts applyAction(state, action, entropy)
64
+ packing.ts unpackAdventurer / unpackBag
65
+ rules/ combat, exploration, loot, market, beast, token ids
66
+ ```
67
+
68
+ `applyAction` is the client's `useGameCore` body verbatim; only the wrapper differs. It never
69
+ themes a beast — the indexer stores raw ids and every reader restyles on read.
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@
6
6
  * (off-chain replay of committed transcripts). There is one implementation of the
7
7
  * rules; if this and the contracts ever disagree, that is the bug.
8
8
  */
9
- // Commit-reveal protocol: domains, action codec, root/fold/actionEntropy.
9
+ // Commit-reveal protocol: action codec, root/fold, and the per-action seed mix.
10
10
  export * from "./protocol.js";
11
11
  export * from "./actions.js";
12
12
  export * from "./packing.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,0EAA0E;AAC1E,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAE1B,UAAU;AACV,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAE5B,8BAA8B;AAC9B,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAE7D,SAAS;AACT,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,gFAAgF;AAChF,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAE1B,UAAU;AACV,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAE5B,8BAA8B;AAC9B,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAE7D,SAAS;AACT,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC"}
@@ -1,8 +1,3 @@
1
- export declare const PROTOCOL_VERSION = 1;
2
- export declare const ACTION_ENCODING_VERSION = 1;
3
- export declare const ROOT_DOMAIN_V1 = 121694572726488482774558358552433875120163030783537n;
4
- export declare const ACTION_DOMAIN_V1 = 7975375518203149207113456586092306125417059215317358129n;
5
- export declare const ENTROPY_DOMAIN_V1 = 2041696132660006197021044886039630387199149808693909870129n;
6
1
  export declare const Opcode: {
7
2
  readonly START: 1;
8
3
  readonly EXPLORE: 2;
@@ -38,9 +33,31 @@ export interface DecodedAction {
38
33
  purchases: ProtocolPurchase[];
39
34
  items: number[];
40
35
  }
36
+ /** `scheme::root` -- the seed a chain starts from. One absorbed element; see `fold`. */
41
37
  export declare function root(gameId: bigint): bigint;
38
+ /**
39
+ * `scheme::fold` -- one link of the chain.
40
+ *
41
+ * Three absorbed elements against `root`'s one and `actionSeed`'s two. Poseidon pads by length,
42
+ * so three hashes of three different arities cannot collide and none of them carries a domain
43
+ * tag. Changing the arity of one means checking it against the other two.
44
+ */
42
45
  export declare function fold(previous: bigint, encodedAction: bigint, commitBlock: bigint): bigint;
43
- export declare function actionEntropy(rolling: bigint, nextBlockHash: bigint): bigint;
46
+ /** `ImplAdventurer::get_simple_entropy` -- poseidon([xp, id]). */
47
+ export declare function simpleEntropy(xp: number, id: bigint): bigint;
48
+ /** `ImplAdventurer::get_battle_entropy` -- poseidon([xp, id, health]). */
49
+ export declare function battleEntropy(xp: number, id: bigint, health: number): bigint;
50
+ /**
51
+ * `randomness::get_random_seed`, unseeded branch -- the felt an action actually rolls with.
52
+ *
53
+ * `blockHash` arrives raw: no fold, no rolling commitment. What separates two actions that share
54
+ * a block -- everything in one `commit_action` bundle does -- is the adventurer state mixed in
55
+ * here, which is why this takes the state at the moment the action runs rather than after it.
56
+ *
57
+ * Stat boosts do not reach the preimage: `add_stat_boosts` touches `stats` and `luck` only, so
58
+ * boosted and unboosted adventurers hash identically and the caller need not care which it holds.
59
+ */
60
+ export declare function actionSeed(blockHash: bigint, adventurerId: bigint, xp: number, health: number, inBattle: boolean): bigint;
44
61
  export declare function encodeStart(weapon: number): bigint;
45
62
  export declare function encodeExplore(tillDamage: number, tillGold: boolean): bigint;
46
63
  export declare function encodeAttack(tillHealth: number, tillBeastHealth: number): bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,cAAc,uDAAuD,CAAC;AACnF,eAAO,MAAM,gBAAgB,2DAA2D,CAAC;AACzF,eAAO,MAAM,iBAAiB,8DAA8D,CAAC;AAE7F,eAAO,MAAM,MAAM;;;;;;;;;;CAUT,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAwDD,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wBAAgB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAKzF;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAG3E;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAIhF;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAkB9D;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAYhF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAUnD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAUlD;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAsEvD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAEzD"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;;;;;;;;;;CAUT,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AA6DD,wFAAwF;AACxF,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAKzF;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,OAAO,GAChB,MAAM,CAKR;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAG3E;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAIhF;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAkB9D;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAYhF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAUnD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAUlD;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAmEvD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAEzD"}
package/dist/protocol.js CHANGED
@@ -1,9 +1,4 @@
1
1
  import { hash } from "starknet";
2
- export const PROTOCOL_VERSION = 1;
3
- export const ACTION_ENCODING_VERSION = 1;
4
- export const ROOT_DOMAIN_V1 = 121694572726488482774558358552433875120163030783537n;
5
- export const ACTION_DOMAIN_V1 = 7975375518203149207113456586092306125417059215317358129n;
6
- export const ENTROPY_DOMAIN_V1 = 2041696132660006197021044886039630387199149808693909870129n;
7
2
  export const Opcode = {
8
3
  START: 1,
9
4
  EXPLORE: 2,
@@ -15,19 +10,24 @@ export const Opcode = {
15
10
  DROP: 8,
16
11
  SURRENDER: 9,
17
12
  };
18
- const HEADER_VERSION = 0x10n;
13
+ /** Payload bit positions. The opcode occupies bits 0-3; every payload starts at bit 4. */
14
+ const SHIFT_4 = 0x10n;
19
15
  const SHIFT_8 = 0x100n;
16
+ const SHIFT_9 = 0x200n;
20
17
  const SHIFT_12 = 0x1000n;
21
- const SHIFT_13 = 0x2000n;
22
- const SHIFT_16 = 0x10000n;
23
- const SHIFT_21 = 0x200000n;
24
- const SHIFT_24 = 0x1000000n;
18
+ const SHIFT_17 = 0x20000n;
19
+ const SHIFT_20 = 0x100000n;
25
20
  const STARTING_WEAPONS = new Set([12, 16, 46, 76]);
26
21
  function poseidon(values) {
27
22
  return BigInt(hash.computePoseidonHashOnElements(values));
28
23
  }
24
+ /**
25
+ * Bits 0-3. No version nibble sits above it: the opcode field has seven unused values, so an
26
+ * encoding that ADDS actions needs no bump, and one that changes what an existing opcode means
27
+ * breaks in-flight games on semantics whatever tag it carries.
28
+ */
29
29
  function header(opcode) {
30
- return HEADER_VERSION + BigInt(opcode);
30
+ return BigInt(opcode);
31
31
  }
32
32
  function assertUnsigned(value, bits, name) {
33
33
  if (!Number.isInteger(value) || value < 0 || value >= 2 ** bits) {
@@ -62,35 +62,64 @@ function empty(opcode) {
62
62
  items: [],
63
63
  };
64
64
  }
65
+ /** `scheme::root` -- the seed a chain starts from. One absorbed element; see `fold`. */
65
66
  export function root(gameId) {
66
- return poseidon([ROOT_DOMAIN_V1, gameId]);
67
+ return poseidon([gameId]);
67
68
  }
69
+ /**
70
+ * `scheme::fold` -- one link of the chain.
71
+ *
72
+ * Three absorbed elements against `root`'s one and `actionSeed`'s two. Poseidon pads by length,
73
+ * so three hashes of three different arities cannot collide and none of them carries a domain
74
+ * tag. Changing the arity of one means checking it against the other two.
75
+ */
68
76
  export function fold(previous, encodedAction, commitBlock) {
69
77
  if (commitBlock < 0n || commitBlock > 0xffffffffffffffffn) {
70
78
  throw new Error("commit block must fit u64");
71
79
  }
72
- return poseidon([ACTION_DOMAIN_V1, previous, encodedAction, commitBlock]);
80
+ return poseidon([previous, encodedAction, commitBlock]);
73
81
  }
74
- export function actionEntropy(rolling, nextBlockHash) {
75
- return poseidon([ENTROPY_DOMAIN_V1, rolling, nextBlockHash]);
82
+ /** `ImplAdventurer::get_simple_entropy` -- poseidon([xp, id]). */
83
+ export function simpleEntropy(xp, id) {
84
+ return poseidon([BigInt(xp), id]);
85
+ }
86
+ /** `ImplAdventurer::get_battle_entropy` -- poseidon([xp, id, health]). */
87
+ export function battleEntropy(xp, id, health) {
88
+ return poseidon([BigInt(xp), id, BigInt(health)]);
89
+ }
90
+ /**
91
+ * `randomness::get_random_seed`, unseeded branch -- the felt an action actually rolls with.
92
+ *
93
+ * `blockHash` arrives raw: no fold, no rolling commitment. What separates two actions that share
94
+ * a block -- everything in one `commit_action` bundle does -- is the adventurer state mixed in
95
+ * here, which is why this takes the state at the moment the action runs rather than after it.
96
+ *
97
+ * Stat boosts do not reach the preimage: `add_stat_boosts` touches `stats` and `luck` only, so
98
+ * boosted and unboosted adventurers hash identically and the caller need not care which it holds.
99
+ */
100
+ export function actionSeed(blockHash, adventurerId, xp, health, inBattle) {
101
+ const state = inBattle
102
+ ? battleEntropy(xp, adventurerId, health)
103
+ : simpleEntropy(xp, adventurerId);
104
+ return poseidon([blockHash, state]);
76
105
  }
77
106
  export function encodeStart(weapon) {
78
107
  if (!STARTING_WEAPONS.has(weapon))
79
108
  throw new Error("invalid starting weapon");
80
- return header(Opcode.START) + SHIFT_8 * BigInt(weapon);
109
+ return header(Opcode.START) + SHIFT_4 * BigInt(weapon);
81
110
  }
82
111
  export function encodeExplore(tillDamage, tillGold) {
83
112
  assertUnsigned(tillDamage, 16, "tillDamage");
84
- return header(Opcode.EXPLORE) + SHIFT_8 * BigInt(tillDamage) + (tillGold ? SHIFT_24 : 0n);
113
+ return header(Opcode.EXPLORE) + SHIFT_4 * BigInt(tillDamage) + (tillGold ? SHIFT_20 : 0n);
85
114
  }
86
115
  export function encodeAttack(tillHealth, tillBeastHealth) {
87
116
  assertUnsigned(tillHealth, 16, "tillHealth");
88
117
  assertUnsigned(tillBeastHealth, 16, "tillBeastHealth");
89
- return header(Opcode.ATTACK) + SHIFT_8 * BigInt(tillHealth) + SHIFT_24 * BigInt(tillBeastHealth);
118
+ return header(Opcode.ATTACK) + SHIFT_4 * BigInt(tillHealth) + SHIFT_20 * BigInt(tillBeastHealth);
90
119
  }
91
120
  export function encodeFlee(tillHealth) {
92
121
  assertUnsigned(tillHealth, 16, "tillHealth");
93
- return header(Opcode.FLEE) + SHIFT_8 * BigInt(tillHealth);
122
+ return header(Opcode.FLEE) + SHIFT_4 * BigInt(tillHealth);
94
123
  }
95
124
  export function encodeSelectStats(stats) {
96
125
  const ordered = [
@@ -106,7 +135,7 @@ export function encodeSelectStats(stats) {
106
135
  if ((stats.luck ?? 0) !== 0)
107
136
  throw new Error("luck allocation is unsupported");
108
137
  let encoded = header(Opcode.SELECT_STATS);
109
- let cursor = SHIFT_8;
138
+ let cursor = SHIFT_4;
110
139
  for (const value of ordered) {
111
140
  encoded += cursor * BigInt(value);
112
141
  cursor *= 0x20n;
@@ -117,8 +146,8 @@ export function encodeBuy(potions, purchases) {
117
146
  assertUnsigned(potions, 8, "potions");
118
147
  if (purchases.length > 23)
119
148
  throw new Error("at most 23 purchases are supported");
120
- let encoded = header(Opcode.BUY) + SHIFT_8 * BigInt(potions) + SHIFT_16 * BigInt(purchases.length);
121
- let cursor = SHIFT_21;
149
+ let encoded = header(Opcode.BUY) + SHIFT_4 * BigInt(potions) + SHIFT_12 * BigInt(purchases.length);
150
+ let cursor = SHIFT_17;
122
151
  for (const purchase of purchases) {
123
152
  assertItem(purchase.itemId);
124
153
  encoded += cursor * (BigInt(purchase.itemId) + (purchase.equip ? 0x100n : 0n));
@@ -129,8 +158,8 @@ export function encodeBuy(potions, purchases) {
129
158
  export function encodeEquip(items) {
130
159
  if (items.length < 1 || items.length > 8)
131
160
  throw new Error("equip count must be in [1, 8]");
132
- let encoded = header(Opcode.EQUIP) + SHIFT_8 * BigInt(items.length);
133
- let cursor = SHIFT_12;
161
+ let encoded = header(Opcode.EQUIP) + SHIFT_4 * BigInt(items.length);
162
+ let cursor = SHIFT_8;
134
163
  for (const item of items) {
135
164
  assertItem(item);
136
165
  encoded += cursor * BigInt(item);
@@ -141,8 +170,8 @@ export function encodeEquip(items) {
141
170
  export function encodeDrop(items) {
142
171
  if (items.length < 1 || items.length > 23)
143
172
  throw new Error("drop count must be in [1, 23]");
144
- let encoded = header(Opcode.DROP) + SHIFT_8 * BigInt(items.length);
145
- let cursor = SHIFT_13;
173
+ let encoded = header(Opcode.DROP) + SHIFT_4 * BigInt(items.length);
174
+ let cursor = SHIFT_9;
146
175
  for (const item of items) {
147
176
  assertItem(item);
148
177
  encoded += cursor * BigInt(item);
@@ -156,39 +185,36 @@ export function encodeSurrender() {
156
185
  export function decodeAction(raw) {
157
186
  if (raw < 0n)
158
187
  throw new Error("encoded action cannot be negative");
159
- if (Number(bits(raw, 0x10n, 0xfn)) !== ACTION_ENCODING_VERSION) {
160
- throw new Error("bad action version");
161
- }
162
188
  const opcode = Number(raw & 0xfn);
163
189
  const action = empty(opcode);
164
190
  if (opcode === Opcode.START) {
165
- if (raw >= 0x10000n)
191
+ if (raw >= 0x1000n)
166
192
  throw new Error("noncanonical START");
167
- action.first = Number(bits(raw, SHIFT_8, 0xffn));
193
+ action.first = Number(bits(raw, SHIFT_4, 0xffn));
168
194
  if (!STARTING_WEAPONS.has(action.first))
169
195
  throw new Error("invalid starting weapon");
170
196
  }
171
197
  else if (opcode === Opcode.EXPLORE) {
172
- if (raw >= 0x2000000n)
198
+ if (raw >= 0x200000n)
173
199
  throw new Error("noncanonical EXPLORE");
174
- action.first = Number(bits(raw, SHIFT_8, 0xffffn));
175
- action.flag = bits(raw, SHIFT_24, 1n) === 1n;
200
+ action.first = Number(bits(raw, SHIFT_4, 0xffffn));
201
+ action.flag = bits(raw, SHIFT_20, 1n) === 1n;
176
202
  }
177
203
  else if (opcode === Opcode.ATTACK) {
178
- if (raw >= 0x10000000000n)
204
+ if (raw >= 0x1000000000n)
179
205
  throw new Error("noncanonical ATTACK");
180
- action.first = Number(bits(raw, SHIFT_8, 0xffffn));
181
- action.second = Number(bits(raw, SHIFT_24, 0xffffn));
206
+ action.first = Number(bits(raw, SHIFT_4, 0xffffn));
207
+ action.second = Number(bits(raw, SHIFT_20, 0xffffn));
182
208
  }
183
209
  else if (opcode === Opcode.FLEE) {
184
- if (raw >= 0x1000000n)
210
+ if (raw >= 0x100000n)
185
211
  throw new Error("noncanonical FLEE");
186
- action.first = Number(bits(raw, SHIFT_8, 0xffffn));
212
+ action.first = Number(bits(raw, SHIFT_4, 0xffffn));
187
213
  }
188
214
  else if (opcode === Opcode.SELECT_STATS) {
189
- if (raw >= 0x4000000000n)
215
+ if (raw >= 0x400000000n)
190
216
  throw new Error("noncanonical SELECT_STATS");
191
- let cursor = SHIFT_8;
217
+ let cursor = SHIFT_4;
192
218
  const values = [];
193
219
  for (let index = 0; index < 6; index += 1) {
194
220
  values.push(Number(bits(raw, cursor, 0x1fn)));
@@ -204,11 +230,11 @@ export function decodeAction(raw) {
204
230
  ] = values;
205
231
  }
206
232
  else if (opcode === Opcode.BUY) {
207
- action.potions = Number(bits(raw, SHIFT_8, 0xffn));
208
- const count = Number(bits(raw, SHIFT_16, 0x1fn));
233
+ action.potions = Number(bits(raw, SHIFT_4, 0xffn));
234
+ const count = Number(bits(raw, SHIFT_12, 0x1fn));
209
235
  if (count > 23)
210
236
  throw new Error("invalid BUY count");
211
- let cursor = SHIFT_21;
237
+ let cursor = SHIFT_17;
212
238
  for (let index = 0; index < count; index += 1) {
213
239
  const entry = bits(raw, cursor, 0x1ffn);
214
240
  const itemId = Number(entry & 0xffn);
@@ -220,8 +246,8 @@ export function decodeAction(raw) {
220
246
  throw new Error("noncanonical BUY");
221
247
  }
222
248
  else if (opcode === Opcode.EQUIP || opcode === Opcode.DROP) {
223
- const shift = opcode === Opcode.EQUIP ? SHIFT_12 : SHIFT_13;
224
- const count = Number(bits(raw, SHIFT_8, opcode === Opcode.EQUIP ? 0xfn : 0x1fn));
249
+ const shift = opcode === Opcode.EQUIP ? SHIFT_8 : SHIFT_9;
250
+ const count = Number(bits(raw, SHIFT_4, opcode === Opcode.EQUIP ? 0xfn : 0x1fn));
225
251
  const max = opcode === Opcode.EQUIP ? 8 : 23;
226
252
  if (count < 1 || count > max)
227
253
  throw new Error("invalid item count");
@@ -236,7 +262,7 @@ export function decodeAction(raw) {
236
262
  throw new Error("noncanonical item action");
237
263
  }
238
264
  else if (opcode === Opcode.SURRENDER) {
239
- if (raw >= 0x100n)
265
+ if (raw >= 0x10n)
240
266
  throw new Error("noncanonical SURRENDER");
241
267
  }
242
268
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
package/dist/replay.d.ts CHANGED
@@ -24,12 +24,14 @@ export interface ReplayState {
24
24
  * Apply one action to `state` and return the events it produced.
25
25
  *
26
26
  * This is `useGameCore`'s body verbatim, with the store reads replaced by `state` and the
27
- * `actionEntropy` reads replaced by `entropy`. It is pure: no store, no RPC, no `Date`, and
27
+ * VRF reads replaced by `entropy`. It is pure: no store, no RPC, no `Date`, and
28
28
  * -- when `entropy` is non-null -- no `Math.random()`. That last property is what lets the
29
29
  * client and the off-chain replayer agree, and it is asserted by the entropy test suite.
30
30
  *
31
- * `entropy` is `action_entropy(rolling_i, blockhash)` for a commit-reveal game, or `null` for
32
- * a legacy dungeon, where the handlers fall back to a settings `game_seed` or `Math.random()`.
31
+ * `entropy` is the RAW block hash that resolves this action for a commit-reveal game, or `null`
32
+ * for a legacy dungeon, where the handlers fall back to a settings `game_seed` or `Math.random()`.
33
+ * It is not the seed: `resolveActionRolls` mixes it with the adventurer's own state, which is what
34
+ * separates two actions that were committed in the same block and therefore share a hash.
33
35
  */
34
36
  export declare function applyAction(state: ReplayState, action: GameAction, entropy: bigint | null): GameEvent[];
35
37
  //# sourceMappingURL=replay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA2JxC,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,GAAG,EAAE,IAAI,EAAE,CAAC;IACZ,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtC,sFAAsF;IACtF,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,SAAS,EAAE,CAo5Bb"}
1
+ {"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAqKxC,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,GAAG,EAAE,IAAI,EAAE,CAAC;IACZ,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtC,sFAAsF;IACtF,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,SAAS,EAAE,CAm7Bb"}
package/dist/replay.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { BEAST_NAMES, STARTER_BEAST_ATTACK_DAMAGE } from "./constants/beast.js";
2
+ import { actionSeed as deriveActionSeed } from "./protocol.js";
2
3
  import { HEALTH_INCREASE_PER_VITALITY, ITEM_XP_MULTIPLIER_BEASTS, ITEM_XP_MULTIPLIER_OBSTACLES, POTION_HEALTH_AMOUNT, STARTER_WEAPONS, STARTING_GOLD, STARTING_HEALTH, XP_FOR_DISCOVERIES, } from "./constants/game.js";
3
4
  import { getBeastName, getBeastTier, getBeastType } from "./rules/beast.js";
4
5
  import { calculateGoldReward, calculateLevel, getNewItemsEquipped } from "./rules/game.js";
@@ -18,13 +19,16 @@ const EMPTY_ITEM = { id: 0, xp: 0 };
18
19
  * Returning `null` means mode 3, and every caller keeps its pre-existing unseeded branch for that
19
20
  * case, so nothing about VRF dungeons or trials changes.
20
21
  */
21
- function resolveActionRolls(injectedEntropy, gameSeed, gameSeedUntilXp, xp) {
22
- if (injectedEntropy !== null) {
23
- const { u64_1, u64_2 } = felt_to_two_u64(injectedEntropy);
22
+ function resolveActionRolls(blockHash, gameId, adventurer, gameSeed, gameSeedUntilXp) {
23
+ // `is_seeded` FIRST, matching `randomness::get_random_seed`: a settings-seeded run expands its
24
+ // own seed and never looks at the block hash, even when one is available.
25
+ if (gameSeed !== 0 && (gameSeedUntilXp === 0 || gameSeedUntilXp > adventurer.xp)) {
26
+ const { u64_1, u64_2 } = felt_to_two_u64(get_simple_entropy(adventurer.xp, gameSeed));
24
27
  return { actionSeed: u64_1, marketSeed: u64_2 };
25
28
  }
26
- if (gameSeed !== 0 && (gameSeedUntilXp === 0 || gameSeedUntilXp > xp)) {
27
- const { u64_1, u64_2 } = felt_to_two_u64(get_simple_entropy(xp, gameSeed));
29
+ if (blockHash !== null) {
30
+ const seed = deriveActionSeed(blockHash, BigInt(gameId ?? "0"), adventurer.xp, adventurer.health, adventurer.beast_health > 0);
31
+ const { u64_1, u64_2 } = felt_to_two_u64(seed);
28
32
  return { actionSeed: u64_1, marketSeed: u64_2 };
29
33
  }
30
34
  return null;
@@ -96,12 +100,14 @@ function applyTheme(beast, _dungeonId) {
96
100
  * Apply one action to `state` and return the events it produced.
97
101
  *
98
102
  * This is `useGameCore`'s body verbatim, with the store reads replaced by `state` and the
99
- * `actionEntropy` reads replaced by `entropy`. It is pure: no store, no RPC, no `Date`, and
103
+ * VRF reads replaced by `entropy`. It is pure: no store, no RPC, no `Date`, and
100
104
  * -- when `entropy` is non-null -- no `Math.random()`. That last property is what lets the
101
105
  * client and the off-chain replayer agree, and it is asserted by the entropy test suite.
102
106
  *
103
- * `entropy` is `action_entropy(rolling_i, blockhash)` for a commit-reveal game, or `null` for
104
- * a legacy dungeon, where the handlers fall back to a settings `game_seed` or `Math.random()`.
107
+ * `entropy` is the RAW block hash that resolves this action for a commit-reveal game, or `null`
108
+ * for a legacy dungeon, where the handlers fall back to a settings `game_seed` or `Math.random()`.
109
+ * It is not the seed: `resolveActionRolls` mixes it with the adventurer's own state, which is what
110
+ * separates two actions that were committed in the same block and therefore share a hash.
105
111
  */
106
112
  export function applyAction(state, action, entropy) {
107
113
  const clientGameAction = (action) => {
@@ -240,9 +246,10 @@ export function applyAction(state, action, entropy) {
240
246
  // Validate
241
247
  if (!canExplore(adventurer))
242
248
  return [];
243
- // Derive explore seed like the contract: felt_to_two_u64(entropy) (explore_seed, market_seed)
249
+ // Derive the explore seed like the contract: mix the block hash with the adventurer's own
250
+ // state, then felt_to_two_u64 → (explore_seed, market_seed).
244
251
  const injectedEntropy = entropy;
245
- const rolls = resolveActionRolls(injectedEntropy, gameSeed, gameSeedUntilXp, adventurer.xp);
252
+ const rolls = resolveActionRolls(injectedEntropy, storeState.gameId, adventurer, gameSeed, gameSeedUntilXp);
246
253
  const useSeeded = rolls !== null;
247
254
  const exploreSeed = rolls?.actionSeed ?? 0n;
248
255
  const events = [];
@@ -478,7 +485,7 @@ export function applyAction(state, action, entropy) {
478
485
  if (adventurer.beast_health <= 0)
479
486
  return [];
480
487
  const injectedEntropy = entropy;
481
- const rolls = resolveActionRolls(injectedEntropy, gameSeed, gameSeedUntilXp, adventurer.xp);
488
+ const rolls = resolveActionRolls(injectedEntropy, storeState.gameId, adventurer, gameSeed, gameSeedUntilXp);
482
489
  // Battle rolls are only ever seeded from injected entropy. A settings `game_seed` game leaves
483
490
  // combat random exactly as it does today -- its outcomes get corrected by the chain events the
484
491
  // action returns, so there is nothing here to fix and plenty to break.
@@ -605,7 +612,7 @@ export function applyAction(state, action, entropy) {
605
612
  if (adventurer.stats.dexterity === 0)
606
613
  return [];
607
614
  const injectedEntropy = entropy;
608
- const rolls = resolveActionRolls(injectedEntropy, gameSeed, gameSeedUntilXp, adventurer.xp);
615
+ const rolls = resolveActionRolls(injectedEntropy, storeState.gameId, adventurer, gameSeed, gameSeedUntilXp);
609
616
  const fleeSeed = injectedEntropy !== null ? (rolls?.actionSeed ?? null) : null;
610
617
  const updateLevelSalt = () => {
611
618
  adventurer.level_salt = levelSaltAfterLevelUp(injectedEntropy, rolls, gameSeed, gameSeedUntilXp, adventurer.xp);
@@ -802,7 +809,11 @@ export function applyAction(state, action, entropy) {
802
809
  // replay_equip draws get_battle_randomness(xp, 0, equip_seed) -- battle count ZERO, unlike
803
810
  // attack and flee which start at 1 -- and takes rnd3/rnd4 as the beast crit and location.
804
811
  const injectedEntropy = entropy;
805
- const equipSeed = injectedEntropy !== null ? felt_to_two_u64(injectedEntropy).u64_1 : null;
812
+ // The contract calls get_random_seed here too, so the block hash gets the same state mix.
813
+ // `adventurer` is post-equip and still in battle, which is the state the contract holds.
814
+ const equipSeed = injectedEntropy !== null
815
+ ? felt_to_two_u64(deriveActionSeed(injectedEntropy, BigInt(storeState.gameId ?? "0"), adventurer.xp, adventurer.health, adventurer.beast_health > 0)).u64_1
816
+ : null;
806
817
  const round = equipSeed !== null ? battleRolls(adventurer.xp, 0, equipSeed) : null;
807
818
  const counterAttack = calculateBeastCounterAttack(beast, adventurer, baseDamageReduction, false, round
808
819
  ? {
@@ -1 +1 @@
1
- {"version":3,"file":"replay.js","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"replay.js","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"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"}
@@ -18,19 +18,23 @@ export declare function decodeActionCommitted(keys: string[], data: string[], po
18
18
  transactionIndex: number;
19
19
  eventIndex: number;
20
20
  }): ActionCommittedEvent;
21
+ /**
22
+ * The contract's verdict on a finished run.
23
+ *
24
+ * Deliberately narrow. The action count, the index of the terminal action and which terminal it
25
+ * was are all positions in a transcript the reader already holds from `ActionCommitted`, and the
26
+ * settle block is the block this event was emitted in, and which rules applied is the class hash
27
+ * GameCore held at that block -- so none of them are carried. What only the contract can supply
28
+ * is its own packed state, which is what an off-chain replay is checked against.
29
+ */
21
30
  export interface GameSettledEvent {
22
31
  adventurerId: bigint;
23
32
  settler: bigint;
24
- protocolVersion: number;
25
33
  finalCommitment: bigint;
26
- committedActionCount: number;
27
- terminalActionIndex: number;
28
- terminalReason: number;
29
34
  packedAdventurer: bigint;
30
35
  packedBag: bigint;
31
- settledAtBlock: bigint;
32
36
  }
33
- /** Decode one `GameSettled { #[key] adventurer_id, #[key] settler, ...8 felts }`. */
37
+ /** Decode one `GameSettled { #[key] adventurer_id, #[key] settler, ...3 felts }`. */
34
38
  export declare function decodeGameSettled(keys: string[], data: string[]): GameSettledEvent;
35
39
  /**
36
40
  * Chain order for commit events.
@@ -1 +1 @@
1
- {"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../src/transcript.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,MAAM,EAAE,EACd,QAAQ,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACvG,oBAAoB,CAgBtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAclF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAI3F;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,qFAAqF;IACrF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,mGAAmG;IACnG,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,0EAA0E;IAC1E,eAAe,EAAE,MAAM,CAAC;IACxB,gGAAgG;IAChG,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,oBAAoB,EAAE,GAC7B,UAAU,CAsBZ"}
1
+ {"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../src/transcript.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,MAAM,EAAE,EACd,QAAQ,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACvG,oBAAoB,CAgBtB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAgB,CASlF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAI3F;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,qFAAqF;IACrF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,mGAAmG;IACnG,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,0EAA0E;IAC1E,eAAe,EAAE,MAAM,CAAC;IACxB,gGAAgG;IAChG,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,oBAAoB,EAAE,GAC7B,UAAU,CAsBZ"}
@@ -31,21 +31,16 @@ export function decodeActionCommitted(keys, data, position) {
31
31
  encodedActions.push(felt(data[1 + i]));
32
32
  return { adventurerId: felt(keys[1]), encodedActions, ...position };
33
33
  }
34
- /** Decode one `GameSettled { #[key] adventurer_id, #[key] settler, ...8 felts }`. */
34
+ /** Decode one `GameSettled { #[key] adventurer_id, #[key] settler, ...3 felts }`. */
35
35
  export function decodeGameSettled(keys, data) {
36
36
  if (keys.length < 3)
37
37
  throw new Error("GameSettled: missing keys");
38
38
  return {
39
39
  adventurerId: felt(keys[1]),
40
40
  settler: felt(keys[2]),
41
- protocolVersion: Number(felt(data[0])),
42
- finalCommitment: felt(data[1]),
43
- committedActionCount: Number(felt(data[2])),
44
- terminalActionIndex: Number(felt(data[3])),
45
- terminalReason: Number(felt(data[4])),
46
- packedAdventurer: felt(data[5]),
47
- packedBag: felt(data[6]),
48
- settledAtBlock: felt(data[7]),
41
+ finalCommitment: felt(data[0]),
42
+ packedAdventurer: felt(data[1]),
43
+ packedBag: felt(data[2]),
49
44
  };
50
45
  }
51
46
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"transcript.js","sourceRoot":"","sources":["../src/transcript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transcript.js","sourceRoot":"","sources":["../src/transcript.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@provable-games/dm-engine",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "description": "Death Mountain game rules and commit-reveal protocol, ported from the Cairo contracts. Shared by the client, the indexer and the API.",
6
6
  "license": "MIT",