runDigest property

String get runDigest

The deterministic run digest: SHA-256 over the canonical JSON of the play ledger (plus the world hash and seed — the digest names WHICH world and WHICH time model produced the plays).

Implementation

String get runDigest => crypto.sha256
    .convert(
      utf8.encode(
        jsonEncode({
          'world': manifest.worldHash,
          'seed': manifest.seed,
          'binding': binding.name,
          'plays': [for (final play in _plays) canonical(play.toJson())],
        }),
      ),
    )
    .toString();