From 2c7f4552169284dd904bfc3a3abf862f535b9117 Mon Sep 17 00:00:00 2001 From: Raphael Panic Date: Tue, 21 Apr 2026 18:44:52 +0200 Subject: [PATCH 1/2] Added unwrap() --- packages/protocol/src/model/Option.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/protocol/src/model/Option.ts b/packages/protocol/src/model/Option.ts index 818a19cc3..a2cdf2c21 100644 --- a/packages/protocol/src/model/Option.ts +++ b/packages/protocol/src/model/Option.ts @@ -7,6 +7,7 @@ import { ProvablePure, Struct, } from "o1js"; +import { assert } from "../state/assert/assert"; export class ProvableOption extends Struct({ isSome: Bool, @@ -154,6 +155,15 @@ export class Option extends OptionBase { ); } + public isNone(): Bool { + return this.isSome.not(); + } + + public unwrap(): Value { + assert(this.isSome, "Unwrap called on None option"); + return this.value; + } + public toConstant() { // eslint-disable-next-line @typescript-eslint/consistent-type-assertions const valueConstant = (this.valueType as ProvablePure).fromFields( From f9ea420db16698dbc1d65ceae8fe69d79c0b4266 Mon Sep 17 00:00:00 2001 From: Raphael Panic Date: Wed, 22 Apr 2026 14:33:56 +0200 Subject: [PATCH 2/2] Changelog + linting --- CHANGELOG.md | 1 + packages/protocol/src/model/Option.ts | 1 + .../protocol/src/state/context/RuntimeMethodExecutionContext.ts | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b33033fcc..aad1a5653 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ## Unreleased ### Added +- Added `Option.unwrap()` [#508](https://github.com/proto-kit/framework/pull/508) - Added missing block detection and recovery in the indexer.[#488](https://github.com/proto-kit/framework/pull/488) - `@dependencyFactory` for static dependency factory type safety - Added Mempool sorting [#395](https://github.com/proto-kit/framework/pull/395) diff --git a/packages/protocol/src/model/Option.ts b/packages/protocol/src/model/Option.ts index a2cdf2c21..c02e3180b 100644 --- a/packages/protocol/src/model/Option.ts +++ b/packages/protocol/src/model/Option.ts @@ -7,6 +7,7 @@ import { ProvablePure, Struct, } from "o1js"; + import { assert } from "../state/assert/assert"; export class ProvableOption extends Struct({ diff --git a/packages/protocol/src/state/context/RuntimeMethodExecutionContext.ts b/packages/protocol/src/state/context/RuntimeMethodExecutionContext.ts index a497533c0..dad44f69b 100644 --- a/packages/protocol/src/state/context/RuntimeMethodExecutionContext.ts +++ b/packages/protocol/src/state/context/RuntimeMethodExecutionContext.ts @@ -5,7 +5,7 @@ import { ProvableMethodExecutionResult, } from "@proto-kit/common"; -import { StateTransition } from "../../model/StateTransition"; +import type { StateTransition } from "../../model/StateTransition"; import { RuntimeTransaction } from "../../model/transaction/RuntimeTransaction"; import { NetworkState } from "../../model/network/NetworkState";