@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 +69 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/protocol.d.ts +23 -6
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +73 -47
- package/dist/protocol.js.map +1 -1
- package/dist/replay.d.ts +5 -3
- package/dist/replay.d.ts.map +1 -1
- package/dist/replay.js +24 -13
- package/dist/replay.js.map +1 -1
- package/dist/transcript.d.ts +10 -6
- package/dist/transcript.d.ts.map +1 -1
- package/dist/transcript.js +4 -9
- package/dist/transcript.js.map +1 -1
- package/package.json +1 -1
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:
|
|
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,
|
|
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"}
|
package/dist/protocol.d.ts
CHANGED
|
@@ -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
|
-
|
|
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;
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,
|
|
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
|
-
|
|
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
|
|
22
|
-
const
|
|
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
|
|
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([
|
|
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([
|
|
80
|
+
return poseidon([previous, encodedAction, commitBlock]);
|
|
73
81
|
}
|
|
74
|
-
|
|
75
|
-
|
|
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) +
|
|
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) +
|
|
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) +
|
|
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) +
|
|
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 =
|
|
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) +
|
|
121
|
-
let cursor =
|
|
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) +
|
|
133
|
-
let cursor =
|
|
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) +
|
|
145
|
-
let cursor =
|
|
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 >=
|
|
191
|
+
if (raw >= 0x1000n)
|
|
166
192
|
throw new Error("noncanonical START");
|
|
167
|
-
action.first = Number(bits(raw,
|
|
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 >=
|
|
198
|
+
if (raw >= 0x200000n)
|
|
173
199
|
throw new Error("noncanonical EXPLORE");
|
|
174
|
-
action.first = Number(bits(raw,
|
|
175
|
-
action.flag = bits(raw,
|
|
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 >=
|
|
204
|
+
if (raw >= 0x1000000000n)
|
|
179
205
|
throw new Error("noncanonical ATTACK");
|
|
180
|
-
action.first = Number(bits(raw,
|
|
181
|
-
action.second = Number(bits(raw,
|
|
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 >=
|
|
210
|
+
if (raw >= 0x100000n)
|
|
185
211
|
throw new Error("noncanonical FLEE");
|
|
186
|
-
action.first = Number(bits(raw,
|
|
212
|
+
action.first = Number(bits(raw, SHIFT_4, 0xffffn));
|
|
187
213
|
}
|
|
188
214
|
else if (opcode === Opcode.SELECT_STATS) {
|
|
189
|
-
if (raw >=
|
|
215
|
+
if (raw >= 0x400000000n)
|
|
190
216
|
throw new Error("noncanonical SELECT_STATS");
|
|
191
|
-
let cursor =
|
|
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,
|
|
208
|
-
const count = Number(bits(raw,
|
|
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 =
|
|
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 ?
|
|
224
|
-
const count = Number(bits(raw,
|
|
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 >=
|
|
265
|
+
if (raw >= 0x10n)
|
|
240
266
|
throw new Error("noncanonical SURRENDER");
|
|
241
267
|
}
|
|
242
268
|
else {
|
package/dist/protocol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,CAAC,MAAM,
|
|
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
|
-
*
|
|
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
|
|
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
|
package/dist/replay.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"
|
|
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(
|
|
22
|
-
|
|
23
|
-
|
|
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 (
|
|
27
|
-
const
|
|
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
|
-
*
|
|
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
|
|
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:
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
? {
|
package/dist/replay.js.map
CHANGED
|
@@ -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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"}
|
package/dist/transcript.d.ts
CHANGED
|
@@ -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, ...
|
|
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.
|
package/dist/transcript.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/transcript.js
CHANGED
|
@@ -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, ...
|
|
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
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
/**
|
package/dist/transcript.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript.js","sourceRoot":"","sources":["../src/transcript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEjE;;;;;;;;;;;GAWG;AAEH,MAAM,IAAI,GAAG,CAAC,KAAyB,EAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAYjF;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAc,EACd,IAAc,EACd,QAAwG;IAExG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAEnF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,8FAA8F;IAC9F,uFAAuF;IACvF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,6BAA6B,MAAM,qBAAqB,IAAI,CAAC,MAAM,GAAG,CAAC,eAAe,CACvF,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE;QAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAExE,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,QAAQ,EAAE,CAAC;AACtE,CAAC;
|
|
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.
|
|
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",
|