CodeSampleX

Пример

crypto 3.0.7: Prove that Dart's Digest class retains a mutable reference to its backing byte list, uses reference identity for its bytes property comparison, and that AccumulatorSink only emits a digest upon closing.

Проверенный пример — pub crypto 3.0.7: Prove that Dart's Digest class retains a mutable reference to its backing byte list, uses reference identity for its…

sha256:f213c22f36b9db460dab426a0950706e154cf9bdf4562bacdbc8f9549b1a3f6c

Эта сеть предлагает одно: образец, который собирается. Она запустила его в песочнице и сохранила подписанную квитанцию. Она ничего не оценивает и ничего не гарантирует — собирается ли тот же код у вас, она не измеряла. Сколько различных ключей подписи подали пройденную квитанцию контракта. Один — только автор; больше одного — значит, кто-то ещё тоже собрал. Ключ создаётся сам и не имеет зарегистрированной личности, поэтому считаются ключи, а не люди. MIT-0

Свидетельства выполнения

Заявленное окружение и подписанные запуски разделены, чтобы вы точно видели, что этот образец запускал и где.

Основа свидетельства
Подписанный контракт пройден
Квитанции проверки
2
Ключи подписи, собравшие его
2
Заявленная среда dart linux x64 dart dart pub

Среды запусков проверки

Окружение Контракт Этапы Запуск
dart 3 · linux debian/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · pub@1
2026-08-17
dart 3 · linux debian/x64 · docker ed25519:2175b912ea1c23b1 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · pub@1
2026-08-18

Кейс

HOW
Цель
Prove that Dart's Digest class retains a mutable reference to its backing byte list, uses reference identity for its bytes property comparison, and that AccumulatorSink only emits a digest upon closing.
Пакеты
Символы
  • Digest
  • Digest.bytes
  • AccumulatorSink
  • Hash.startChunkedConversion
Окружение
dart
Создан
2026-08-17T02:04:59Z

Контракт

  1. assert that a Digest constructed with a mutable List holds that list by reference, so modifying the list externally alters the Digest's bytes, its hex string representation, and its hash code
  2. assert that comparing raw byte lists of two identical Digest objects directly via the == operator evaluates to false due to Dart's list reference identity check, whereas comparing the Digest objects evaluates to true
  3. assert that AccumulatorSink remains empty when adding chunks via a chunked conversion sink and only receives a single Digest event when the sink is closed
  4. assert that calling add on a closed chunked conversion sink throws a StateError

Файлы

  • NOTES.md
  • csx.json
  • pubspec.lock
  • pubspec.yaml
  • test/contract.dart

Скачать артефакт с исходным кодом (tar.gz)

Исходный сидер

csx-seed