From 2e86705c43872eac2e490cf0a10f84310228b3b7 Mon Sep 17 00:00:00 2001 From: Takis Kakalis <80459599+Takaros999@users.noreply.github.com> Date: Thu, 2 Apr 2026 18:08:54 +0300 Subject: [PATCH 1/7] feat: Expose session api --- .../nextjs/app/api/rp-signature/route.ts | 4 +- js/examples/nextjs/app/ui.tsx | 234 +++++++++++++++--- js/packages/core/src/index.ts | 6 + js/packages/core/src/request.ts | 9 +- js/packages/react/src/index.ts | 3 + 5 files changed, 213 insertions(+), 43 deletions(-) diff --git a/js/examples/nextjs/app/api/rp-signature/route.ts b/js/examples/nextjs/app/api/rp-signature/route.ts index c2ec8108..25df8b72 100644 --- a/js/examples/nextjs/app/api/rp-signature/route.ts +++ b/js/examples/nextjs/app/api/rp-signature/route.ts @@ -6,13 +6,13 @@ import { signRequest } from "@worldcoin/idkit/signing"; export async function POST(request: Request): Promise { try { const body = (await request.json()) as { - action: string; + action?: string; ttl?: number; }; const signingKey = process.env.RP_SIGNING_KEY; const { sig, nonce, createdAt, expiresAt } = signRequest({ - action: body.action, + ...(body.action ? { action: body.action } : {}), signingKeyHex: signingKey!, ttl: body.ttl, }); diff --git a/js/examples/nextjs/app/ui.tsx b/js/examples/nextjs/app/ui.tsx index 1f6da6c8..98d232f2 100644 --- a/js/examples/nextjs/app/ui.tsx +++ b/js/examples/nextjs/app/ui.tsx @@ -11,6 +11,7 @@ import { selfieCheckLegacy, IDKitInviteCodeRequestWidget, IDKitRequestWidget, + IDKitSessionWidget, orbLegacy, passport as passportPreset, proofOfHuman, @@ -20,6 +21,7 @@ import { type DocumentType, type IdentityAttribute, type IDKitResult, + type IDKitResultSession, type Preset, type RpContext, } from "@worldcoin/idkit"; @@ -44,12 +46,15 @@ const RETURN_TO_TOOLTIP = type PresetKind = "orb" | "secure_document" | "document" | "device" | "selfie"; +type FlowMode = "request" | "create_session" | "session"; + type V4CredentialType = | "proof_of_human" | "selfie" | "passport" | "mnc" | "identity_check"; +type SessionCredentialType = Exclude; type IdentityAttributesConfig = { document_type: { enabled: boolean; value: DocumentType }; @@ -69,6 +74,14 @@ const DEFAULT_IDENTITY_ATTRIBUTES: IdentityAttributesConfig = { nationality: { enabled: false, value: "" }, }; +const SESSION_ID_PATTERN = /^session_[0-9a-fA-F]{128}$/; + +const FLOW_MODE_TO_NAME: Record = { + request: "Request", + create_session: "Create Session", + session: "Session", +}; + const V4_CREDENTIAL_TO_NAME: Record = { proof_of_human: "Proof of Human", selfie: "Selfie", @@ -161,11 +174,22 @@ function createPreset(kind: PresetKind, signal: string) { } } -async function fetchRpContext(action: string): Promise { +async function fetchRpContext( + signatureType: FlowMode, + action?: string, +): Promise { + const body: { signature_type: FlowMode; action?: string } = { + signature_type: signatureType, + }; + + if (signatureType === "request" && action) { + body.action = action; + } + const response = await fetch("/api/rp-signature", { method: "POST", headers: { "content-type": "application/json" }, - body: JSON.stringify({ action }), + body: JSON.stringify(body), }); if (!response.ok) { @@ -257,14 +281,23 @@ export function DemoClient(): ReactElement { const [genesisEnabled, setGenesisEnabled] = useState(false); const [genesisDate, setGenesisDate] = useState(""); const [isGenesisTooltipOpen, setIsGenesisTooltipOpen] = useState(false); + const [sessionId, setSessionId] = useState(""); + const [widgetSessionResult, setWidgetSessionResult] = + useState(null); const [useReturnTo, setUseReturnTo] = useState(false); const [returnTo, setReturnTo] = useState(""); const [isReturnToTooltipOpen, setIsReturnToTooltipOpen] = useState(false); const [requireUserPresence, setRequireUserPresence] = useState(false); const [useInviteCode, setUseInviteCode] = useState(false); + const [flowMode, setFlowMode] = useState("request"); const [wasIdentityCheck, setWasIdentityCheck] = useState(false); const isV4PresetCredential = v4CredentialType !== "mnc" && v4CredentialType !== "identity_check"; + const isSessionFlow = flowMode !== "request"; + const isCreateSessionFlow = flowMode === "create_session"; + const isProveSessionFlow = flowMode === "session"; + const sessionCredentialType: SessionCredentialType = + v4CredentialType === "identity_check" ? "proof_of_human" : v4CredentialType; const genesisIssuedAtMin = genesisEnabled && genesisDate @@ -277,11 +310,13 @@ export function DemoClient(): ReactElement { ); const isIdentityCheck = - worldIdVersion === "4.0" && v4CredentialType === "identity_check"; + !isSessionFlow && + worldIdVersion === "4.0" && + v4CredentialType === "identity_check"; const canStartWidgetFlow = !isIdentityCheck || identityAttributesPayload.length > 0; - const widgetConstraintsOrPreset: + const requestConstraintsOrPreset: | { constraints: ConstraintNode } | { preset: Preset } = useMemo(() => { if (worldIdVersion !== "4.0") { @@ -314,6 +349,14 @@ export function DemoClient(): ReactElement { widgetSignal, ]); + const sessionConstraints = useMemo( + () => + CredentialRequest(sessionCredentialType, { + genesis_issued_at_min: genesisIssuedAtMin, + }), + [sessionCredentialType, genesisIssuedAtMin], + ); + const overrideConnectBaseUrl = environment === "staging" && useStagingConnectBaseUrl ? STAGING_CONNECT_BASE_URL @@ -355,7 +398,19 @@ export function DemoClient(): ReactElement { setGenesisEnabled(false); setGenesisDate(""); } - }, [v4CredentialType]); + + if (flowMode !== "request") { + setWorldIdVersion("4.0"); + setUseInviteCode(false); + if (v4CredentialType === "identity_check") { + setV4CredentialType("proof_of_human"); + } + } + + if (flowMode !== "session") { + setSessionId(""); + } + }, [flowMode, v4CredentialType]); useEffect(() => { if (typeof window === "undefined") { @@ -373,6 +428,7 @@ export function DemoClient(): ReactElement { setWidgetError(null); setWidgetVerifyResult(null); setWidgetIdkitResult(null); + setWidgetSessionResult(null); setWasIdentityCheck(isIdentityCheck); if (!canStartWidgetFlow) { @@ -380,8 +436,20 @@ export function DemoClient(): ReactElement { return; } + const trimmedSessionId = sessionId.trim(); + + if (isProveSessionFlow && !SESSION_ID_PATTERN.test(trimmedSessionId)) { + setWidgetError( + "Session ID must be in the format session_<128 hex characters>.", + ); + return; + } + try { - const rpContext = await fetchRpContext(action || "test-action"); + const rpContext = await fetchRpContext( + flowMode, + isSessionFlow ? undefined : action || "test-action", + ); setWidgetSignal(`demo-signal-${Date.now()}`); setWidgetRpContext(rpContext); setWidgetOpen(true); @@ -419,6 +487,20 @@ export function DemoClient(): ReactElement { {isLightTheme ? "Dark" : "Light"}
+
+ + +
@@ -427,15 +509,29 @@ export function DemoClient(): ReactElement {
-
- - setAction(e.target.value)} - /> -
+ {!isSessionFlow && ( +
+ + setAction(e.target.value)} + /> +
+ )} + {isProveSessionFlow && ( +
+ + setSessionId(e.target.value)} + placeholder="session_..." + /> +
+ )}
-
- - setUseInviteCode(e.target.checked)} - /> -
+ {!isSessionFlow && ( +
+ + setUseInviteCode(e.target.checked)} + /> +
+ )} {environment === "staging" && (
- {worldIdVersion === "3.0" && ( + {!isSessionFlow && worldIdVersion === "3.0" && (
{v4CredentialType !== "identity_check" && ( @@ -652,7 +753,7 @@ export function DemoClient(): ReactElement { )} - {v4CredentialType === "identity_check" && ( + {!isSessionFlow && v4CredentialType === "identity_check" && ( <>
@@ -976,7 +1077,7 @@ export function DemoClient(): ReactElement {
- {worldIdVersion === "3.0" && ( + {!isSessionFlow && worldIdVersion === "3.0" && ( <> - + {!isSessionFlow && worldIdVersion === "4.0" && ( + + )} + + {isCreateSessionFlow && ( + + )} + + {isProveSessionFlow && ( + )}
{isIdentityCheck && identityAttributesPayload.length === 0 && ( @@ -998,6 +1109,7 @@ export function DemoClient(): ReactElement { {widgetError &&

Error: {widgetError}

} {widgetRpContext && + !isSessionFlow && (useInviteCode ? ( {}} + {...requestConstraintsOrPreset} + onSuccess={() => {}} handleVerify={async (result) => { setWidgetIdkitResult(result); const verified = await verifyProof( @@ -1033,8 +1145,8 @@ export function DemoClient(): ReactElement { rp_context={widgetRpContext} allow_legacy_proofs={true} require_user_presence={requireUserPresence} - {...widgetConstraintsOrPreset} - onSuccess={(result) => {}} + {...requestConstraintsOrPreset} + onSuccess={() => {}} handleVerify={async (result) => { setWidgetIdkitResult(result); const verified = await verifyProof( @@ -1052,6 +1164,37 @@ export function DemoClient(): ReactElement { /> ))} + {widgetRpContext && isSessionFlow && ( + {}} + handleVerify={async (result) => { + setWidgetSessionResult(result); + const verified = await verifyProof( + result as unknown as IDKitResult, + overrideDevPortalBaseUrl, + ); + setWidgetVerifyResult(verified); + }} + onError={(errorCode) => { + setWidgetError(`Verification failed: ${errorCode}`); + }} + environment={environment} + override_connect_base_url={overrideConnectBaseUrl} + return_to={effectiveReturnTo} + /> + )} + {widgetIdkitResult && ( <>

IDKit response

@@ -1083,6 +1226,21 @@ export function DemoClient(): ReactElement { )} + {widgetSessionResult && ( + <> +

Session response

+

+ Session ID:{" "} + + {widgetSessionResult.session_id} + +

+
+            {JSON.stringify(widgetSessionResult, null, 2)}
+          
+ + )} + {widgetVerifyResult && ( <>

Verification response

diff --git a/js/packages/core/src/index.ts b/js/packages/core/src/index.ts index ca45f44f..0b47345c 100644 --- a/js/packages/core/src/index.ts +++ b/js/packages/core/src/index.ts @@ -8,6 +8,9 @@ export { // IDKit namespace (main entry point) IDKit, + // Session entry points + createSession, + proveSession, CredentialRequest, any, all, @@ -75,6 +78,9 @@ export { isReactNative, isWeb, isNode } from "./lib/platform"; export { isInWorldApp } from "./transports/native"; export { isDebug, setDebug } from "./lib/debug"; +// Session utilities +export { getSessionCommitment } from "./session"; + // RP Request Signing (server-side only) export { signRequest } from "./signing"; export type { RpSignature, SignRequestParams } from "./signing"; diff --git a/js/packages/core/src/request.ts b/js/packages/core/src/request.ts index 8c25b52e..c4eadf3a 100644 --- a/js/packages/core/src/request.ts +++ b/js/packages/core/src/request.ts @@ -8,6 +8,7 @@ import type { IDKitSessionConfig, RpContext, } from "./types/config"; +import { getSessionCommitment } from "./session"; import type { IDKitResult, ConstraintNode, @@ -793,7 +794,7 @@ class IDKitInviteCodeBuilder { * const proof = await request.pollUntilCompletion(); * ``` */ -function createRequest(config: IDKitRequestConfig): IDKitBuilder { +export function createRequest(config: IDKitRequestConfig): IDKitBuilder { // Validate required fields if (!config.app_id) { throw new Error("app_id is required"); @@ -912,7 +913,7 @@ function createRequestWithInviteCode( * // result.responses[0].session_nullifier -> for session tracking * ``` */ -function createSession(config: IDKitSessionConfig): IDKitBuilder { +export function createSession(config: IDKitSessionConfig): IDKitBuilder { // Validate required fields if (!config.app_id) { throw new Error("app_id is required"); @@ -962,7 +963,7 @@ function createSession(config: IDKitSessionConfig): IDKitBuilder { * // result.responses[0].session_nullifier -> should match for same user * ``` */ -function proveSession( +export function proveSession( sessionId: `session_${string}`, config: IDKitSessionConfig, ): IDKitBuilder { @@ -1028,6 +1029,8 @@ export const IDKit = { createSession, /** Prove an existing session (no action, has session_id) */ proveSession, + /** Extract the commitment from an opaque session_id */ + getSessionCommitment, /** Create a CredentialRequest for a credential type */ CredentialRequest, /** Create an OR constraint - at least one child must be satisfied */ diff --git a/js/packages/react/src/index.ts b/js/packages/react/src/index.ts index e31a085c..7420a97c 100644 --- a/js/packages/react/src/index.ts +++ b/js/packages/react/src/index.ts @@ -30,6 +30,9 @@ export type { SupportedLanguage } from "./lang/types"; export { IDKit, + createSession, + proveSession, + getSessionCommitment, CredentialRequest, any, all, From 3666342b8cf133f39c5d062db37a1cd5853f89ab Mon Sep 17 00:00:00 2001 From: Takis Kakalis <80459599+Takaros999@users.noreply.github.com> Date: Mon, 6 Apr 2026 11:00:02 +0300 Subject: [PATCH 2/7] format --- js/examples/nextjs/app/ui.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/js/examples/nextjs/app/ui.tsx b/js/examples/nextjs/app/ui.tsx index 98d232f2..5ad9a445 100644 --- a/js/examples/nextjs/app/ui.tsx +++ b/js/examples/nextjs/app/ui.tsx @@ -1173,8 +1173,7 @@ export function DemoClient(): ReactElement { constraints={sessionConstraints} {...(isProveSessionFlow ? { - existing_session_id: - sessionId.trim() as `session_${string}`, + existing_session_id: sessionId.trim() as `session_${string}`, } : {})} onSuccess={() => {}} From 3e9b3af4ce5a73d3eb62b896c575c35af81d9d66 Mon Sep 17 00:00:00 2001 From: Takis Kakalis <80459599+Takaros999@users.noreply.github.com> Date: Fri, 22 May 2026 15:56:20 +0300 Subject: [PATCH 3/7] chore: bump world id primitives --- Cargo.lock | 1955 ++++++++++++++++++++++++++++++++------- Cargo.toml | 5 +- rust/core/Cargo.toml | 1 - rust/core/src/bridge.rs | 18 +- 4 files changed, 1628 insertions(+), 351 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f69843df..8ae2d64c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,13 +2,43 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "acir_field" +version = "1.0.0-beta.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d970028c6fb0fd910ae17d148bc162695cd791e796bf91e015b3206472ae5a38" +dependencies = [ + "ark-bn254", + "ark-ff 0.5.0", + "ark-std 0.5.0", + "cfg-if", + "hex", + "num-bigint", + "serde", +] + +[[package]] +name = "addr2line" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + [[package]] name = "aead" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" dependencies = [ - "crypto-common", + "crypto-common 0.1.7", "generic-array", ] @@ -20,7 +50,7 @@ checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -49,6 +79,15 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "aho-corasick" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] + [[package]] name = "allocator-api2" version = "0.2.21" @@ -61,15 +100,26 @@ version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4973038846323e4e69a433916522195dce2947770076c03078fc21c80ea0f1c4" dependencies = [ - "alloy-consensus", + "alloy-core", + "alloy-signer 1.7.3", + "alloy-signer-local 1.7.3", +] + +[[package]] +name = "alloy" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8010fc7e9e8643ef4e758cdccf3eef26734594aedf88a9d5ed35e51837d42ef" +dependencies = [ + "alloy-consensus 2.0.4", "alloy-contract", "alloy-core", - "alloy-eips", - "alloy-network", + "alloy-eips 2.0.4", + "alloy-network 2.0.4", "alloy-provider", "alloy-rpc-client", - "alloy-signer", - "alloy-signer-local", + "alloy-signer 2.0.4", + "alloy-signer-local 2.0.4", "alloy-transport", "alloy-transport-http", ] @@ -82,7 +132,7 @@ checksum = "6d9d22005bf31b018f31ef9ecadb5d2c39cf4f6acc8db0456f72c815f3d7f757" dependencies = [ "alloy-primitives 1.5.7", "num_enum", - "strum", + "strum 0.27.2", ] [[package]] @@ -91,12 +141,39 @@ version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0c0dc44157867da82c469c13186015b86abef209bf0e41625e4b68bac61d728" dependencies = [ - "alloy-eips", + "alloy-eips 1.7.3", + "alloy-primitives 1.5.7", + "alloy-rlp", + "alloy-serde 1.7.3", + "alloy-trie", + "alloy-tx-macros 1.7.3", + "auto_impl", + "borsh", + "c-kzg", + "derive_more", + "either", + "k256", + "once_cell", + "rand 0.8.5", + "secp256k1", + "serde", + "serde_json", + "serde_with", + "thiserror 2.0.18", +] + +[[package]] +name = "alloy-consensus" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d64da86c616b5092ea64eea648f311bbd58630a0b384c42d699175d6f9122b" +dependencies = [ + "alloy-eips 2.0.4", "alloy-primitives 1.5.7", "alloy-rlp", - "alloy-serde", + "alloy-serde 2.0.4", "alloy-trie", - "alloy-tx-macros", + "alloy-tx-macros 2.0.5", "auto_impl", "borsh", "c-kzg", @@ -118,34 +195,49 @@ version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba4cdb42df3871cd6b346d6a938ec2ba69a9a0f49d1f82714bc5c48349268434" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 1.7.3", + "alloy-eips 1.7.3", + "alloy-primitives 1.5.7", + "alloy-rlp", + "alloy-serde 1.7.3", + "serde", +] + +[[package]] +name = "alloy-consensus-any" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd98696ca3617d3a9ba1a6f2011880cbfd5618228dab6400c9f8bca457859a8" +dependencies = [ + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", "alloy-primitives 1.5.7", "alloy-rlp", - "alloy-serde", + "alloy-serde 2.0.4", "serde", ] [[package]] name = "alloy-contract" -version = "1.7.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca63b7125a981415898ffe2a2a696c83696c9c6bdb1671c8a912946bbd8e49e7" +checksum = "de3df0aadc569a8b277808a7d0ad0e421180654ea36a3c59e9ed2bb968c9a1cd" dependencies = [ - "alloy-consensus", + "alloy-consensus 2.0.4", "alloy-dyn-abi", "alloy-json-abi 1.5.7", - "alloy-network", - "alloy-network-primitives", + "alloy-network 2.0.4", + "alloy-network-primitives 2.0.4", "alloy-primitives 1.5.7", "alloy-provider", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 2.0.4", "alloy-sol-types 1.5.7", "alloy-transport", "futures", "futures-util", "serde_json", "thiserror 2.0.18", + "tracing", ] [[package]] @@ -174,7 +266,7 @@ dependencies = [ "itoa", "serde", "serde_json", - "winnow", + "winnow 0.7.15", ] [[package]] @@ -239,7 +331,7 @@ dependencies = [ "alloy-eip7928", "alloy-primitives 1.5.7", "alloy-rlp", - "alloy-serde", + "alloy-serde 1.7.3", "auto_impl", "borsh", "c-kzg", @@ -247,10 +339,33 @@ dependencies = [ "either", "serde", "serde_with", - "sha2", + "sha2 0.10.9", "thiserror 2.0.18", ] +[[package]] +name = "alloy-eips" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c0456f5f7a4497e9342d20f528e30f5288ddfa0d6a012bd5044afee46cd8a0" +dependencies = [ + "alloy-eip2124", + "alloy-eip2930", + "alloy-eip7702", + "alloy-eip7928", + "alloy-primitives 1.5.7", + "alloy-rlp", + "alloy-serde 2.0.4", + "auto_impl", + "borsh", + "c-kzg", + "derive_more", + "either", + "serde", + "serde_with", + "sha2 0.10.9", +] + [[package]] name = "alloy-json-abi" version = "0.8.26" @@ -290,22 +405,63 @@ dependencies = [ "tracing", ] +[[package]] +name = "alloy-json-rpc" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19e352478b756bad5d7203148e4b461861282ea2ded3da406ba24868b52cd098" +dependencies = [ + "alloy-primitives 1.5.7", + "alloy-sol-types 1.5.7", + "http", + "serde", + "serde_json", + "thiserror 2.0.18", + "tracing", +] + [[package]] name = "alloy-network" version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8cbca04f9b410fdc51aaaf88433cbac761213905a65fe832058bcf6690585762" dependencies = [ - "alloy-consensus", - "alloy-consensus-any", - "alloy-eips", - "alloy-json-rpc", - "alloy-network-primitives", + "alloy-consensus 1.7.3", + "alloy-consensus-any 1.7.3", + "alloy-eips 1.7.3", + "alloy-json-rpc 1.7.3", + "alloy-network-primitives 1.7.3", + "alloy-primitives 1.5.7", + "alloy-rpc-types-any 1.7.3", + "alloy-rpc-types-eth 1.7.3", + "alloy-serde 1.7.3", + "alloy-signer 1.7.3", + "alloy-sol-types 1.5.7", + "async-trait", + "auto_impl", + "derive_more", + "futures-utils-wasm", + "serde", + "serde_json", + "thiserror 2.0.18", +] + +[[package]] +name = "alloy-network" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed08ae169869e08370ed121612e0d3dadac33d1a256e9f2465926b23f0bd7d95" +dependencies = [ + "alloy-consensus 2.0.4", + "alloy-consensus-any 2.0.4", + "alloy-eips 2.0.4", + "alloy-json-rpc 2.0.4", + "alloy-network-primitives 2.0.4", "alloy-primitives 1.5.7", - "alloy-rpc-types-any", - "alloy-rpc-types-eth", - "alloy-serde", - "alloy-signer", + "alloy-rpc-types-any 2.0.4", + "alloy-rpc-types-eth 2.0.4", + "alloy-serde 2.0.4", + "alloy-signer 2.0.4", "alloy-sol-types 1.5.7", "async-trait", "auto_impl", @@ -322,10 +478,23 @@ version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42d6d15e069a8b11f56bef2eccbad2a873c6dd4d4c81d04dda29710f5ea52f04" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 1.7.3", + "alloy-eips 1.7.3", + "alloy-primitives 1.5.7", + "alloy-serde 1.7.3", + "serde", +] + +[[package]] +name = "alloy-network-primitives" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e6c7ad28afe348a9a9c5624b67ee5b3607b8de98d5816b3056ecdfa6fa2697" +dependencies = [ + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", "alloy-primitives 1.5.7", - "alloy-serde", + "alloy-serde 2.0.4", "serde", ] @@ -385,20 +554,20 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.7.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d181c8cc7cf4805d7e589bf4074d56d55064fa1a979f005a45a62b047616d870" +checksum = "93a7c17472b55482d4734154c2f5ed13f72e03f6752cebb927f6a2d8b52e646c" dependencies = [ "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-json-rpc", - "alloy-network", - "alloy-network-primitives", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-json-rpc 2.0.4", + "alloy-network 2.0.4", + "alloy-network-primitives 2.0.4", "alloy-primitives 1.5.7", "alloy-rpc-client", - "alloy-rpc-types-eth", - "alloy-signer", + "alloy-rpc-types-eth 2.0.4", + "alloy-signer 2.0.4", "alloy-sol-types 1.5.7", "alloy-transport", "async-stream", @@ -443,11 +612,11 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "1.7.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2792758a93ae32a32e9047c843d536e1448044f78422d71bf7d7c05149e103f" +checksum = "5beb5c2fe6b960c8e8b038e69fd502a90a2e930afa4770efb748b163b0767729" dependencies = [ - "alloy-json-rpc", + "alloy-json-rpc 2.0.4", "alloy-primitives 1.5.7", "alloy-transport", "futures", @@ -467,9 +636,24 @@ version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd720b63f82b457610f2eaaf1f32edf44efffe03ae25d537632e7d23e7929e1a" dependencies = [ - "alloy-consensus-any", - "alloy-rpc-types-eth", - "alloy-serde", + "alloy-consensus-any 1.7.3", + "alloy-rpc-types-eth 1.7.3", + "alloy-serde 1.7.3", +] + +[[package]] +name = "alloy-rpc-types-any" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a234bfbdf7a76c3d13808f729af5321852de3dedcaa6fc6d5f54787aaf54c6a" +dependencies = [ + "alloy-consensus-any 2.0.4", + "alloy-network-primitives 2.0.4", + "alloy-primitives 1.5.7", + "alloy-rpc-types-eth 2.0.4", + "alloy-serde 2.0.4", + "serde", + "serde_json", ] [[package]] @@ -478,13 +662,34 @@ version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b2dc411f13092f237d2bf6918caf80977fc2f51485f9b90cb2a2f956912c8c9" dependencies = [ - "alloy-consensus", - "alloy-consensus-any", - "alloy-eips", - "alloy-network-primitives", + "alloy-consensus 1.7.3", + "alloy-consensus-any 1.7.3", + "alloy-eips 1.7.3", + "alloy-network-primitives 1.7.3", + "alloy-primitives 1.5.7", + "alloy-rlp", + "alloy-serde 1.7.3", + "alloy-sol-types 1.5.7", + "itertools 0.14.0", + "serde", + "serde_json", + "serde_with", + "thiserror 2.0.18", +] + +[[package]] +name = "alloy-rpc-types-eth" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56a282daf869eeb7383d3d5c2deb35b0b3fb45ecb329513af4090fc61245ee18" +dependencies = [ + "alloy-consensus 2.0.4", + "alloy-consensus-any 2.0.4", + "alloy-eips 2.0.4", + "alloy-network-primitives 2.0.4", "alloy-primitives 1.5.7", "alloy-rlp", - "alloy-serde", + "alloy-serde 2.0.4", "alloy-sol-types 1.5.7", "itertools 0.14.0", "serde", @@ -504,6 +709,17 @@ dependencies = [ "serde_json", ] +[[package]] +name = "alloy-serde" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0eada2558e921b39dfcead33c487364df9b31374f5733c1c9d2c891c4529933" +dependencies = [ + "alloy-primitives 1.5.7", + "serde", + "serde_json", +] + [[package]] name = "alloy-signer" version = "1.7.3" @@ -519,16 +735,47 @@ dependencies = [ "thiserror 2.0.18", ] +[[package]] +name = "alloy-signer" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41eb29f7a8adcd8941fbb8e134022a133e6f8dfd345f2e3b7109599f8a7dca08" +dependencies = [ + "alloy-primitives 1.5.7", + "async-trait", + "auto_impl", + "either", + "elliptic-curve", + "k256", + "thiserror 2.0.18", +] + [[package]] name = "alloy-signer-local" version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3ecb71ee53d8d9c3fa7bac17542c8116ebc7a9726c91b1bf333ec3d04f5a789" dependencies = [ - "alloy-consensus", - "alloy-network", + "alloy-consensus 1.7.3", + "alloy-network 1.7.3", + "alloy-primitives 1.5.7", + "alloy-signer 1.7.3", + "async-trait", + "k256", + "rand 0.8.5", + "thiserror 2.0.18", +] + +[[package]] +name = "alloy-signer-local" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef839e7ce9b59aa60fa9a175e97986c6145c888d643b0f1fb0a3e7b8e56a2e2" +dependencies = [ + "alloy-consensus 2.0.4", + "alloy-network 2.0.4", "alloy-primitives 1.5.7", - "alloy-signer", + "alloy-signer 2.0.4", "async-trait", "k256", "rand 0.8.5", @@ -571,7 +818,7 @@ checksum = "2afe6879ac373e58fd53581636f2cce843998ae0b058ebe1e4f649195e2bd23c" dependencies = [ "alloy-sol-macro-input 0.8.26", "const-hex", - "heck", + "heck 0.5.0", "indexmap 2.13.0", "proc-macro-error2", "proc-macro2", @@ -590,7 +837,7 @@ dependencies = [ "alloy-json-abi 1.5.7", "alloy-sol-macro-input 1.5.7", "const-hex", - "heck", + "heck 0.5.0", "indexmap 2.13.0", "proc-macro-error2", "proc-macro2", @@ -608,7 +855,7 @@ checksum = "c3ba01aee235a8c699d07e5be97ba215607564e71be72f433665329bec307d28" dependencies = [ "const-hex", "dunce", - "heck", + "heck 0.5.0", "macro-string", "proc-macro2", "quote", @@ -625,7 +872,7 @@ dependencies = [ "alloy-json-abi 1.5.7", "const-hex", "dunce", - "heck", + "heck 0.5.0", "macro-string", "proc-macro2", "quote", @@ -641,7 +888,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c13fc168b97411e04465f03e632f31ef94cad1c7c8951bf799237fd7870d535" dependencies = [ "serde", - "winnow", + "winnow 0.7.15", ] [[package]] @@ -651,7 +898,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6df77fea9d6a2a75c0ef8d2acbdfd92286cc599983d3175ccdc170d3433d249" dependencies = [ "serde", - "winnow", + "winnow 0.7.15", ] [[package]] @@ -681,11 +928,11 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "1.7.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa186e560d523d196580c48bf00f1bf62e63041f28ecf276acc22f8b27bb9f53" +checksum = "3ac7a80c0bac3e44559d53d002e34c461dc2f23262b42cafec019bc70551abbe" dependencies = [ - "alloy-json-rpc", + "alloy-json-rpc 2.0.4", "auto_impl", "base64 0.22.1", "derive_more", @@ -704,9 +951,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.7.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa501ad58dd20acddbfebc65b52e60f05ebf97c52fa40d1b35e91f5e2da0ad0e" +checksum = "eed3ed3300a998f88639ed619fdbbd88bd82865e00c6a8ecb796c99eb12358f6" dependencies = [ "alloy-transport", "itertools 0.14.0", @@ -735,7 +982,19 @@ version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fa0c53e8c1e1ef4d01066b01c737fb62fc9397ab52c6e7bb5669f97d281b9bc" dependencies = [ - "darling", + "darling 0.21.3", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "alloy-tx-macros" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a0035943b75fe1e249f52e688492d7a1b1826bc2d19b8e1d5d3c24a2ad8f50" +dependencies = [ + "darling 0.23.0", "proc-macro2", "quote", "syn 2.0.117", @@ -750,18 +1009,71 @@ dependencies = [ "libc", ] +[[package]] +name = "anstream" +version = "0.6.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + [[package]] name = "anstyle" version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" +[[package]] +name = "anstyle-parse" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys 0.61.2", +] + [[package]] name = "anyhow" version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + [[package]] name = "ark-bn254" version = "0.5.0" @@ -770,7 +1082,6 @@ checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" dependencies = [ "ark-ec", "ark-ff 0.5.0", - "ark-r1cs-std", "ark-std 0.5.0", ] @@ -793,8 +1104,7 @@ dependencies = [ "digest 0.10.7", "fnv", "merlin", - "rayon", - "sha2", + "sha2 0.10.9", ] [[package]] @@ -826,7 +1136,6 @@ dependencies = [ "num-bigint", "num-integer", "num-traits", - "rayon", "zeroize", ] @@ -885,7 +1194,6 @@ dependencies = [ "num-bigint", "num-traits", "paste", - "rayon", "zeroize", ] @@ -970,7 +1278,6 @@ dependencies = [ "ark-relations", "ark-serialize 0.5.0", "ark-std 0.5.0", - "rayon", ] [[package]] @@ -986,24 +1293,6 @@ dependencies = [ "educe", "fnv", "hashbrown 0.15.5", - "rayon", -] - -[[package]] -name = "ark-r1cs-std" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "941551ef1df4c7a401de7068758db6503598e6f01850bdb2cfdb614a1f9dbea1" -dependencies = [ - "ark-ec", - "ark-ff 0.5.0", - "ark-relations", - "ark-std 0.5.0", - "educe", - "num-bigint", - "num-integer", - "num-traits", - "tracing", ] [[package]] @@ -1015,7 +1304,6 @@ dependencies = [ "ark-ff 0.5.0", "ark-std 0.5.0", "tracing", - "tracing-subscriber", ] [[package]] @@ -1050,7 +1338,6 @@ dependencies = [ "arrayvec", "digest 0.10.7", "num-bigint", - "rayon", ] [[package]] @@ -1104,7 +1391,6 @@ checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" dependencies = [ "num-traits", "rand 0.8.5", - "rayon", ] [[package]] @@ -1120,6 +1406,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" dependencies = [ "serde", + "zeroize", ] [[package]] @@ -1128,7 +1415,7 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f75363874b771be265f4ffe307ca705ef6f3baa19011c149da8674a87f1b75c4" dependencies = [ - "askama_derive 0.14.0", + "askama_derive", "itoa", "percent-encoding", "serde", @@ -1136,42 +1423,12 @@ dependencies = [ ] [[package]] -name = "askama" -version = "0.15.4" +name = "askama_derive" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08e1676b346cadfec169374f949d7490fd80a24193d37d2afce0c047cf695e57" +checksum = "129397200fe83088e8a68407a8e2b1f826cf0086b21ccdb866a722c8bcd3a94f" dependencies = [ - "askama_macros", - "itoa", - "percent-encoding", - "serde", - "serde_json", -] - -[[package]] -name = "askama_derive" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "129397200fe83088e8a68407a8e2b1f826cf0086b21ccdb866a722c8bcd3a94f" -dependencies = [ - "askama_parser 0.14.0", - "basic-toml", - "memchr", - "proc-macro2", - "quote", - "rustc-hash", - "serde", - "serde_derive", - "syn 2.0.117", -] - -[[package]] -name = "askama_derive" -version = "0.15.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7661ff56517787343f376f75db037426facd7c8d3049cef8911f1e75016f3a37" -dependencies = [ - "askama_parser 0.15.4", + "askama_parser", "basic-toml", "memchr", "proc-macro2", @@ -1182,15 +1439,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "askama_macros" -version = "0.15.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713ee4dbfd1eb719c2dab859465b01fa1d21cb566684614a713a6b7a99a4e47b" -dependencies = [ - "askama_derive 0.15.4", -] - [[package]] name = "askama_parser" version = "0.14.0" @@ -1200,20 +1448,7 @@ dependencies = [ "memchr", "serde", "serde_derive", - "winnow", -] - -[[package]] -name = "askama_parser" -version = "0.15.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d62d674238a526418b30c0def480d5beadb9d8964e7f38d635b03bf639c704c" -dependencies = [ - "rustc-hash", - "serde", - "serde_derive", - "unicode-ident", - "winnow", + "winnow 0.7.15", ] [[package]] @@ -1281,6 +1516,21 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +[[package]] +name = "backtrace" +version = "0.3.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-link", +] + [[package]] name = "base16ct" version = "0.2.0" @@ -1314,6 +1564,26 @@ dependencies = [ "serde", ] +[[package]] +name = "bincode" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" +dependencies = [ + "bincode_derive", + "serde", + "unty", +] + +[[package]] +name = "bincode_derive" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09" +dependencies = [ + "virtue", +] + [[package]] name = "bit-set" version = "0.8.0" @@ -1383,7 +1653,9 @@ dependencies = [ "cc", "cfg-if", "constant_time_eq", - "cpufeatures", + "cpufeatures 0.2.17", + "digest 0.10.7", + "zeroize", ] [[package]] @@ -1395,6 +1667,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-buffer" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdd35008169921d80bc60d3d0ab416eecb028c4cd653352907921d95084790be" +dependencies = [ + "hybrid-array", +] + [[package]] name = "blst" version = "0.3.16" @@ -1430,6 +1711,16 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "brillig" +version = "1.0.0-beta.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfbe65c55645e99aa4dbe3b7657a568326189d895ee87d9d83e678dd61be4514" +dependencies = [ + "acir_field", + "serde", +] + [[package]] name = "bumpalo" version = "3.20.2" @@ -1442,6 +1733,12 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" + [[package]] name = "byteorder" version = "1.5.0" @@ -1511,6 +1808,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" dependencies = [ "find-msvc-tools", + "jobserver", + "libc", "shlex", ] @@ -1539,35 +1838,40 @@ dependencies = [ ] [[package]] -name = "cipher" -version = "0.4.4" +name = "ciborium" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" dependencies = [ - "crypto-common", - "inout", + "ciborium-io", + "ciborium-ll", + "serde", ] [[package]] -name = "circom-witness-rs" -version = "0.2.3" +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35778373aee12ef3d04966187eeae7a04f1451c9226058311f21488df6f28780" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" dependencies = [ - "ark-bn254", - "ark-ff 0.5.0", - "ark-serialize 0.5.0", - "byteorder", - "cxx-build", - "eyre", - "hex", - "num-bigint", - "num-traits", - "postcard", - "rand 0.8.5", - "ruint", - "serde", - "serde_json", + "ciborium-io", + "half", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common 0.1.7", + "inout", ] [[package]] @@ -1586,6 +1890,7 @@ version = "4.5.60" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" dependencies = [ + "anstream", "anstyle", "clap_lex", "strsim", @@ -1597,7 +1902,7 @@ version = "4.5.55" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", "syn 2.0.117", @@ -1619,16 +1924,38 @@ dependencies = [ ] [[package]] -name = "codespan-reporting" -version = "0.13.1" +name = "color-eyre" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af491d569909a7e4dee0ad7db7f5341fef5c614d5b8ec8cf765732aba3cff681" +checksum = "e5920befb47832a6d61ee3a3a846565cfa39b331331e68a3b1d1116630f2f26d" dependencies = [ - "serde", - "termcolor", - "unicode-width", + "backtrace", + "color-spantrace", + "eyre", + "indenter", + "once_cell", + "owo-colors", + "tracing-error", +] + +[[package]] +name = "color-spantrace" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8b88ea9df13354b55bc7234ebcce36e6ef896aca2e42a15de9e10edce01b427" +dependencies = [ + "once_cell", + "owo-colors", + "tracing-core", + "tracing-error", ] +[[package]] +name = "colorchoice" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" + [[package]] name = "console_error_panic_hook" version = "0.1.7" @@ -1646,7 +1973,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "531185e432bb31db1ecda541e9e7ab21468d4d844ad7505e0546a49b4945d49b" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "proptest", "serde_core", ] @@ -1707,6 +2034,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "crc" version = "3.4.0" @@ -1722,6 +2058,15 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + [[package]] name = "critical-section" version = "1.2.0" @@ -1782,6 +2127,15 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto-common" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +dependencies = [ + "hybrid-array", +] + [[package]] name = "ctr" version = "0.9.2" @@ -1792,28 +2146,23 @@ dependencies = [ ] [[package]] -name = "cxx-build" -version = "1.0.194" +name = "darling" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0f4697d190a142477b16aef7da8a99bfdc41e7e8b1687583c0d23a79c7afc1e" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ - "cc", - "codespan-reporting", - "indexmap 2.13.0", - "proc-macro2", - "quote", - "scratch", - "syn 2.0.117", + "darling_core 0.21.3", + "darling_macro 0.21.3", ] [[package]] name = "darling" -version = "0.21.3" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.23.0", + "darling_macro 0.23.0", ] [[package]] @@ -1831,13 +2180,38 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "serde", + "strsim", + "syn 2.0.117", +] + [[package]] name = "darling_macro" version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ - "darling_core", + "darling_core 0.21.3", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", "quote", "syn 2.0.117", ] @@ -1863,6 +2237,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" dependencies = [ "const-oid", + "pem-rfc7468", "zeroize", ] @@ -1887,6 +2262,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive-where" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d08b3a0bcc0d079199cd476b2cae8435016ec11d1c0986c6901c5ac223041534" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "derive_more" version = "2.1.1" @@ -1925,12 +2311,22 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer", + "block-buffer 0.10.4", "const-oid", - "crypto-common", + "crypto-common 0.1.7", "subtle", ] +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.0", + "crypto-common 0.2.2", +] + [[package]] name = "displaydoc" version = "0.2.5" @@ -2002,6 +2398,7 @@ dependencies = [ "ff", "generic-array", "group", + "pem-rfc7468", "pkcs8", "rand_core 0.6.4", "sec1", @@ -2136,6 +2533,22 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + +[[package]] +name = "flate2" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + [[package]] name = "fnv" version = "1.0.7" @@ -2272,6 +2685,15 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + [[package]] name = "generic-array" version = "0.14.7" @@ -2333,6 +2755,12 @@ dependencies = [ "polyval", ] +[[package]] +name = "gimli" +version = "0.32.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" + [[package]] name = "glob" version = "0.3.3" @@ -2361,6 +2789,17 @@ dependencies = [ "subtle", ] +[[package]] +name = "half" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" +dependencies = [ + "cfg-if", + "crunchy", + "zerocopy", +] + [[package]] name = "hash32" version = "0.2.1" @@ -2416,10 +2855,16 @@ dependencies = [ "hash32", "rustc_version 0.4.1", "serde", - "spin", + "spin 0.9.8", "stable_deref_trait", ] +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + [[package]] name = "heck" version = "0.5.0" @@ -2447,6 +2892,12 @@ dependencies = [ "arrayvec", ] +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + [[package]] name = "hkdf" version = "0.12.4" @@ -2504,6 +2955,15 @@ version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" +[[package]] +name = "hybrid-array" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9155a582abd142abc056962c29e3ce5ff2ad5469f4246b537ed42c5deba857da" +dependencies = [ + "typenum", +] + [[package]] name = "hyper" version = "1.8.1" @@ -2687,7 +3147,7 @@ name = "idkit-core" version = "4.0.0" dependencies = [ "aes-gcm", - "alloy", + "alloy 1.7.3", "alloy-primitives 1.5.7", "alloy-sol-types 0.8.26", "base64 0.22.1", @@ -2702,9 +3162,8 @@ dependencies = [ "serde", "serde-wasm-bindgen", "serde_json", - "sha2", - "strum", - "taceo-oprf", + "sha2 0.10.9", + "strum 0.27.2", "thiserror 1.0.69", "time", "tiny-keccak", @@ -2814,6 +3273,12 @@ dependencies = [ "serde", ] +[[package]] +name = "is_terminal_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" + [[package]] name = "itertools" version = "0.10.5" @@ -2847,6 +3312,16 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +[[package]] +name = "jobserver" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" +dependencies = [ + "getrandom 0.3.4", + "libc", +] + [[package]] name = "js-sys" version = "0.3.91" @@ -2868,7 +3343,7 @@ dependencies = [ "elliptic-curve", "once_cell", "serdect", - "sha2", + "sha2 0.10.9", "signature", ] @@ -2878,7 +3353,7 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" dependencies = [ - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -2891,12 +3366,24 @@ dependencies = [ "sha3-asm", ] +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + [[package]] name = "leb128fmt" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" +[[package]] +name = "libaes" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82903360c009b816f5ab72a9b68158c27c301ee2c3f20655b55c5e589e7d3bb7" + [[package]] name = "libc" version = "0.2.183" @@ -2952,7 +3439,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" [[package]] -name = "macro-string" +name = "lzma-sys" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "macro-string" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" @@ -2986,6 +3484,16 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + [[package]] name = "mio" version = "1.1.1" @@ -2997,6 +3505,12 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "multimap" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" + [[package]] name = "nom" version = "7.1.3" @@ -3068,6 +3582,7 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" dependencies = [ + "proc-macro-crate", "proc-macro2", "quote", "syn 2.0.117", @@ -3087,18 +3602,212 @@ dependencies = [ "smallvec", ] +[[package]] +name = "object" +version = "0.37.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" +dependencies = [ + "memchr", +] + [[package]] name = "once_cell" version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +[[package]] +name = "once_cell_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" + [[package]] name = "opaque-debug" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +[[package]] +name = "ordered-float" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7d950ca161dc355eaf28f82b11345ed76c6e1f6eb1f4f4479e0323b9e2fbd0e" +dependencies = [ + "num-traits", + "rand 0.8.5", + "serde", +] + +[[package]] +name = "owo-colors" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d211803b9b6b570f68772237e415a029d5a50c65d382910b879fb19d3271f94d" + +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2 0.10.9", +] + +[[package]] +name = "p3-challenger" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7d2d45f5a51dc3f965e8d6da60a6c26c807e88657863d56da275eaa05ad36f1" +dependencies = [ + "p3-field", + "p3-maybe-rayon", + "p3-monty-31", + "p3-symmetric", + "p3-util", + "tracing", +] + +[[package]] +name = "p3-dft" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "beabb40bc8ac7f5f95870f271fb844c7e2e1ebb7f0761a8eebb2614b56c6b1c1" +dependencies = [ + "itertools 0.14.0", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "spin 0.10.0", + "tracing", +] + +[[package]] +name = "p3-field" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4819a3e4c1882431a63d4847ffa10d110017aee4cb9cf4319ca6dca191930969" +dependencies = [ + "itertools 0.14.0", + "num-bigint", + "p3-maybe-rayon", + "p3-util", + "paste", + "rand 0.9.2", + "serde", + "tracing", +] + +[[package]] +name = "p3-koala-bear" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfb02789fca0950e246123d652bd78e75a76e3b90a651fd88dbb215cd3e81f5a" +dependencies = [ + "p3-challenger", + "p3-field", + "p3-monty-31", + "p3-poseidon2", + "p3-symmetric", + "rand 0.9.2", +] + +[[package]] +name = "p3-matrix" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6fde449bd2963d394284ec46db8c647e6a5602d90601117b76752072ab54168" +dependencies = [ + "itertools 0.14.0", + "p3-field", + "p3-maybe-rayon", + "p3-util", + "rand 0.9.2", + "serde", + "tracing", +] + +[[package]] +name = "p3-maybe-rayon" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54afab3883d8a14676b492709d6c4e9fa535c36718b737db0817aacfaaaa11f6" + +[[package]] +name = "p3-mds" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3895055d735ac96d010747b3aaabd4c2645b9fd80226960550318db2e25afb75" +dependencies = [ + "p3-dft", + "p3-field", + "p3-symmetric", + "p3-util", + "rand 0.9.2", +] + +[[package]] +name = "p3-monty-31" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9fe0be661891af1f703ceaf57334fcbd540804988984dc2b500dd99740e7c81" +dependencies = [ + "itertools 0.14.0", + "num-bigint", + "p3-dft", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-mds", + "p3-poseidon2", + "p3-symmetric", + "p3-util", + "paste", + "rand 0.9.2", + "serde", + "spin 0.10.0", + "tracing", +] + +[[package]] +name = "p3-poseidon2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6fc2368447576283f8b3849a36095017f25addf06eab9e33b0ce7f96b0b99d" +dependencies = [ + "p3-field", + "p3-mds", + "p3-symmetric", + "p3-util", + "rand 0.9.2", +] + +[[package]] +name = "p3-symmetric" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a14456a42a7d9e65f13999706f1bca2832175935169b3a54286e18331cf1d82f" +dependencies = [ + "itertools 0.14.0", + "p3-field", + "serde", +] + +[[package]] +name = "p3-util" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "911154accf66034b0eec4452956c088f92a200b37a8225c1caed74cfbd38cc8d" +dependencies = [ + "serde", + "transpose", +] + [[package]] name = "parity-scale-codec" version = "3.7.5" @@ -3156,6 +3865,15 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + [[package]] name = "percent-encoding" version = "2.3.2" @@ -3172,6 +3890,16 @@ dependencies = [ "ucd-trie", ] +[[package]] +name = "petgraph" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" +dependencies = [ + "fixedbitset", + "indexmap 2.13.0", +] + [[package]] name = "pin-project" version = "1.1.11" @@ -3214,6 +3942,12 @@ dependencies = [ "spki", ] +[[package]] +name = "pkg-config" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" + [[package]] name = "plain" version = "0.2.3" @@ -3227,7 +3961,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "opaque-debug", "universal-hash", ] @@ -3279,6 +4013,15 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve", +] + [[package]] name = "primitive-types" version = "0.12.2" @@ -3296,7 +4039,7 @@ version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit", + "toml_edit 0.25.4+spec-1.1.0", ] [[package]] @@ -3349,6 +4092,340 @@ dependencies = [ "unarray", ] +[[package]] +name = "prost" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" +dependencies = [ + "heck 0.5.0", + "itertools 0.14.0", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost", + "prost-types", + "regex", + "syn 2.0.117", + "tempfile", +] + +[[package]] +name = "prost-derive" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" +dependencies = [ + "anyhow", + "itertools 0.14.0", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "prost-types" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" +dependencies = [ + "prost", +] + +[[package]] +name = "protoc-bin-vendored" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1c381df33c98266b5f08186583660090a4ffa0889e76c7e9a5e175f645a67fa" +dependencies = [ + "protoc-bin-vendored-linux-aarch_64", + "protoc-bin-vendored-linux-ppcle_64", + "protoc-bin-vendored-linux-s390_64", + "protoc-bin-vendored-linux-x86_32", + "protoc-bin-vendored-linux-x86_64", + "protoc-bin-vendored-macos-aarch_64", + "protoc-bin-vendored-macos-x86_64", + "protoc-bin-vendored-win32", +] + +[[package]] +name = "protoc-bin-vendored-linux-aarch_64" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c350df4d49b5b9e3ca79f7e646fde2377b199e13cfa87320308397e1f37e1a4c" + +[[package]] +name = "protoc-bin-vendored-linux-ppcle_64" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a55a63e6c7244f19b5c6393f025017eb5d793fd5467823a099740a7a4222440c" + +[[package]] +name = "protoc-bin-vendored-linux-s390_64" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dba5565db4288e935d5330a07c264a4ee8e4a5b4a4e6f4e83fad824cc32f3b0" + +[[package]] +name = "protoc-bin-vendored-linux-x86_32" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8854774b24ee28b7868cd71dccaae8e02a2365e67a4a87a6cd11ee6cdbdf9cf5" + +[[package]] +name = "protoc-bin-vendored-linux-x86_64" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b38b07546580df720fa464ce124c4b03630a6fb83e05c336fea2a241df7e5d78" + +[[package]] +name = "protoc-bin-vendored-macos-aarch_64" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89278a9926ce312e51f1d999fee8825d324d603213344a9a706daa009f1d8092" + +[[package]] +name = "protoc-bin-vendored-macos-x86_64" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81745feda7ccfb9471d7a4de888f0652e806d5795b61480605d4943176299756" + +[[package]] +name = "protoc-bin-vendored-win32" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95067976aca6421a523e491fce939a3e65249bac4b977adee0ee9771568e8aa3" + +[[package]] +name = "provekit-common" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd137e327416256ac7281b7c0eed960d59ab5cd10d805ae4ee0e5241a8e01938" +dependencies = [ + "anyhow", + "ark-bn254", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "base64 0.22.1", + "bytes", + "ciborium", + "getrandom 0.2.17", + "hex", + "itertools 0.14.0", + "postcard", + "provekit-spongefish", + "provekit-spongefish-pow", + "provekit-whir", + "provekit_acir", + "provekit_noirc_abi", + "rayon", + "ruint", + "serde", + "serde_json", + "sha2 0.10.9", + "sha3", + "tracing", + "xz2", + "zerocopy", + "zstd", +] + +[[package]] +name = "provekit-spongefish" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95a705ff6cb8bc4566a2d1a9f665243db958cbd90a852c3eef0dcc8dc8879ce5" +dependencies = [ + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "blake3", + "digest 0.10.7", + "keccak", + "p3-koala-bear", + "rand 0.8.5", + "sha2 0.10.9", + "sha3", + "zeroize", +] + +[[package]] +name = "provekit-spongefish-pow" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef05687e1ea5d63b54f03c86cf2ddd2cd3752a70151921619d0c66d129e6f309" +dependencies = [ + "blake3", + "bytemuck", + "keccak", + "provekit-spongefish", + "rand 0.8.5", + "rayon", +] + +[[package]] +name = "provekit-whir" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35334259c6ad5b1287ecef6bfb3deb3dbb963c9366091951316bdb33c2080fe6" +dependencies = [ + "approx", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "blake3", + "ciborium", + "clap", + "const-oid", + "derive-where", + "digest 0.10.7", + "hex", + "hex-literal", + "itertools 0.14.0", + "ordered-float", + "provekit-spongefish", + "rayon", + "serde", + "serde_json", + "sha2 0.10.9", + "sha3", + "static_assertions", + "tracing", + "zerocopy", + "zeroize", +] + +[[package]] +name = "provekit_acir" +version = "1.0.0-beta.11-alpha.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "959971b1aef157ee72d079da9f4bd5ed7469a7856757ca181de567b83130e83a" +dependencies = [ + "acir_field", + "base64 0.22.1", + "bincode", + "brillig", + "color-eyre", + "flate2", + "num_enum", + "prost", + "prost-build", + "protoc-bin-vendored", + "provekit_noir_protobuf", + "rmp-serde", + "serde", + "serde-big-array", + "strum 0.24.1", + "strum_macros 0.24.3", + "thiserror 1.0.69", +] + +[[package]] +name = "provekit_acvm" +version = "1.0.0-beta.11-alpha.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0386544eb81ca8263bd7b5d79eb9a5294d5a63855551dfaf75c31f12ff16c0e3" +dependencies = [ + "fxhash", + "indexmap 2.13.0", + "provekit_acir", + "provekit_acvm_blackbox_solver", + "provekit_brillig_vm", + "serde", + "thiserror 1.0.69", + "tracing", +] + +[[package]] +name = "provekit_acvm_blackbox_solver" +version = "1.0.0-beta.11-alpha.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6b023eaafc6a450044f4818f16c5891bc53761699c0e02fe662272c1d4aea1d" +dependencies = [ + "blake2", + "blake3", + "k256", + "keccak", + "libaes", + "log", + "num-bigint", + "p256", + "provekit_acir", + "sha2 0.10.9", + "thiserror 1.0.69", +] + +[[package]] +name = "provekit_brillig_vm" +version = "1.0.0-beta.11-alpha.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6556e0bb21519b34dad9fa8d31b9ecc8ecfcd0bb5a6509b9f3ecbbc1c8867a5" +dependencies = [ + "num-bigint", + "num-traits", + "provekit_acir", + "provekit_acvm_blackbox_solver", + "thiserror 1.0.69", +] + +[[package]] +name = "provekit_iter-extended" +version = "1.0.0-beta.11-alpha.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "254a492db53977c8849cd738cebc1411e0999f0ac43889b852679c03a4a062a0" + +[[package]] +name = "provekit_noir_protobuf" +version = "1.0.0-beta.11-alpha.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3ad9aed4d9ae4c68f5593a22881168d476cabfd5d68b415859428cbef413be1" +dependencies = [ + "color-eyre", + "prost", +] + +[[package]] +name = "provekit_noirc_abi" +version = "1.0.0-beta.11-alpha.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb59259f8d1d4071ab4f776a3b269d96664fb3cea668836bf23640f2bf2d6dcc" +dependencies = [ + "num-bigint", + "num-traits", + "provekit_acvm", + "provekit_iter-extended", + "provekit_noirc_printable_type", + "serde", + "serde_json", + "thiserror 1.0.69", + "toml 0.7.8", +] + +[[package]] +name = "provekit_noirc_printable_type" +version = "1.0.0-beta.11-alpha.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dbf5eb03eb02230d3dc4fc481d0b7c90272d394601cd20900ea99938eb6cb7f" +dependencies = [ + "provekit_acvm", + "provekit_iter-extended", + "serde", + "serde_json", +] + [[package]] name = "quick-error" version = "1.2.3" @@ -3487,6 +4564,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ "getrandom 0.2.17", + "serde", ] [[package]] @@ -3556,14 +4634,37 @@ dependencies = [ ] [[package]] -name = "ref-cast-impl" -version = "1.0.25" +name = "ref-cast-impl" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "regex" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", + "aho-corasick", + "memchr", + "regex-syntax", ] [[package]] @@ -3644,6 +4745,25 @@ dependencies = [ "rustc-hex", ] +[[package]] +name = "rmp" +version = "0.8.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ba8be72d372b2c9b35542551678538b562e7cf86c3315773cae48dfbfe7790c" +dependencies = [ + "num-traits", +] + +[[package]] +name = "rmp-serde" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f81bee8c8ef9b577d1681a70ebbc962c232461e397b22c208c43c04b67a155" +dependencies = [ + "rmp", + "serde", +] + [[package]] name = "ruint" version = "1.17.2" @@ -3678,6 +4798,12 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" +[[package]] +name = "rustc-demangle" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" + [[package]] name = "rustc-hash" version = "2.1.1" @@ -3810,12 +4936,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "scratch" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d68f2ec51b097e4c1a75b681a8bec621909b5e91f15bb7b840c4f2f7b01148b2" - [[package]] name = "scroll" version = "0.12.0" @@ -3919,6 +5039,15 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-big-array" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" +dependencies = [ + "serde", +] + [[package]] name = "serde-wasm-bindgen" version = "0.6.5" @@ -3963,6 +5092,15 @@ dependencies = [ "zmij", ] +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + [[package]] name = "serde_spanned" version = "1.0.4" @@ -4009,7 +5147,7 @@ version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6d4e30573c8cb306ed6ab1dca8423eec9a463ea0e155f45399455e0368b27e0" dependencies = [ - "darling", + "darling 0.21.3", "proc-macro2", "quote", "syn 2.0.117", @@ -4032,8 +5170,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest 0.10.7", + "sha2-asm", +] + +[[package]] +name = "sha2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "digest 0.11.3", +] + +[[package]] +name = "sha2-asm" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b845214d6175804686b2bd482bcffe96651bb2d1200742b712003504a2dac1ab" +dependencies = [ + "cc", ] [[package]] @@ -4056,6 +5215,15 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + [[package]] name = "shlex" version = "1.3.0" @@ -4082,6 +5250,12 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "simd-adler32" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" + [[package]] name = "siphasher" version = "1.0.2" @@ -4128,6 +5302,15 @@ dependencies = [ "lock_api", ] +[[package]] +name = "spin" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591" +dependencies = [ + "lock_api", +] + [[package]] name = "spki" version = "0.7.3" @@ -4150,19 +5333,44 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "strength_reduce" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe895eb47f22e2ddd4dabc02bce419d2e643c8e3b585c78158b349195bc24d82" + [[package]] name = "strsim" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" + [[package]] name = "strum" version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" dependencies = [ - "strum_macros", + "strum_macros 0.27.2", +] + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 1.0.109", ] [[package]] @@ -4171,7 +5379,7 @@ version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", "syn 2.0.117", @@ -4276,6 +5484,20 @@ dependencies = [ "taceo-ark-babyjubjub", ] +[[package]] +name = "taceo-ark-serde-compat" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18fcd6f55fec9dd131019bdc0319db2271915056607b75bf8b8bc0a6ec496347" +dependencies = [ + "ark-ec", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "num-bigint", + "serde", + "taceo-ark-babyjubjub", +] + [[package]] name = "taceo-circom-types" version = "0.2.3" @@ -4287,24 +5509,22 @@ dependencies = [ "ark-ff 0.5.0", "ark-groth16", "ark-poly", - "ark-relations", "ark-serialize 0.5.0", "ark-std 0.5.0", "byteorder", "num-traits", - "rayon", "serde", "serde_json", - "taceo-ark-serde-compat", + "taceo-ark-serde-compat 0.4.2", "thiserror 2.0.18", "tracing", ] [[package]] name = "taceo-eddsa-babyjubjub" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75dbec63f7a89093b4116a7164e6a92d3cda33dec248da8c8a5922a80a06e7dd" +checksum = "10becbd559ee21d8376a4c2e18f0e38257ec1b5bfff3dcb2cb2945ca1db38906" dependencies = [ "ark-ec", "ark-ff 0.5.0", @@ -4315,74 +5535,31 @@ dependencies = [ "rand 0.8.5", "serde", "taceo-ark-babyjubjub", - "taceo-ark-serde-compat", + "taceo-ark-serde-compat 0.5.0", "taceo-poseidon2", "zeroize", ] -[[package]] -name = "taceo-groth16" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4983857c95d20ca2dc0400a3a116e6931c012ecc4b78ccede8238cfb0c298e3" -dependencies = [ - "ark-ec", - "ark-ff 0.5.0", - "ark-groth16", - "ark-poly", - "ark-relations", - "eyre", - "num-traits", - "rayon", - "tracing", -] - -[[package]] -name = "taceo-groth16-material" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "124a8757ed58c5772a0b8e06ad431e7f1a2af1cbfe1f92c7428c2e1e8925ce8c" -dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff 0.5.0", - "ark-groth16", - "ark-relations", - "ark-serialize 0.5.0", - "circom-witness-rs", - "eyre", - "hex", - "postcard", - "rand 0.8.5", - "ruint", - "sha2", - "taceo-circom-types", - "taceo-groth16", - "thiserror 2.0.18", - "tracing", -] - [[package]] name = "taceo-groth16-sol" -version = "0.2.3" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f2c005a2303bfcd0cf47dc0e2320c80418d685c00d84c322194e7f47320eae8" +checksum = "d590d9ef92eee2cf8930ba4732bfbbd56d98b42545b0611b7c4ec7f112adc908" dependencies = [ "alloy-primitives 1.5.7", "ark-bn254", "ark-ec", "ark-ff 0.5.0", "ark-groth16", - "askama 0.15.4", "eyre", "ruint", ] [[package]] name = "taceo-oprf" -version = "0.8.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be862ba49094098f945f1375f704a2c47b4e267a6e564462a43ad142b4b1469e" +checksum = "72389c80580ec74d8ab188c723f6b0253885867ffac41213a31e4554b4fd0658" dependencies = [ "taceo-oprf-types", ] @@ -4403,7 +5580,7 @@ dependencies = [ "serde", "subtle", "taceo-ark-babyjubjub", - "taceo-ark-serde-compat", + "taceo-ark-serde-compat 0.4.2", "taceo-poseidon2", "uuid", "zeroize", @@ -4411,19 +5588,20 @@ dependencies = [ [[package]] name = "taceo-oprf-types" -version = "0.10.1" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "540ce620b9d45c2c3d417c8f4b0c82e112f2621f2419e1c9fd207b8d5a3310d4" +checksum = "13304cda45c09c625f278b2f8e49de5f583e447a276804d41877bfcf5e89f68e" dependencies = [ - "alloy", + "alloy 2.0.4", "ark-ff 0.5.0", "ark-serialize 0.5.0", "async-trait", "eyre", "http", + "ruint", "serde", "taceo-ark-babyjubjub", - "taceo-ark-serde-compat", + "taceo-ark-serde-compat 0.5.0", "taceo-circom-types", "taceo-groth16-sol", "taceo-oprf-core", @@ -4462,15 +5640,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - [[package]] name = "textwrap" version = "0.16.2" @@ -4520,6 +5689,15 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "thread_local" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +dependencies = [ + "cfg-if", +] + [[package]] name = "threadpool" version = "1.8.1" @@ -4657,6 +5835,18 @@ dependencies = [ "tokio", ] +[[package]] +name = "toml" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +dependencies = [ + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", + "toml_edit 0.19.15", +] + [[package]] name = "toml" version = "0.9.12+spec-1.1.0" @@ -4665,11 +5855,20 @@ checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" dependencies = [ "indexmap 2.13.0", "serde_core", - "serde_spanned", + "serde_spanned 1.0.4", "toml_datetime 0.7.5+spec-1.1.0", "toml_parser", "toml_writer", - "winnow", + "winnow 0.7.15", +] + +[[package]] +name = "toml_datetime" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +dependencies = [ + "serde", ] [[package]] @@ -4690,6 +5889,19 @@ dependencies = [ "serde_core", ] +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.13.0", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", + "winnow 0.5.40", +] + [[package]] name = "toml_edit" version = "0.25.4+spec-1.1.0" @@ -4699,7 +5911,7 @@ dependencies = [ "indexmap 2.13.0", "toml_datetime 1.0.0+spec-1.1.0", "toml_parser", - "winnow", + "winnow 0.7.15", ] [[package]] @@ -4708,7 +5920,7 @@ version = "1.0.9+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" dependencies = [ - "winnow", + "winnow 0.7.15", ] [[package]] @@ -4794,15 +6006,37 @@ dependencies = [ "valuable", ] +[[package]] +name = "tracing-error" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b1581020d7a273442f5b45074a6a57d5757ad0a47dac0e9f0bd57b81936f3db" +dependencies = [ + "tracing", + "tracing-subscriber", +] + [[package]] name = "tracing-subscriber" -version = "0.2.25" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" dependencies = [ + "sharded-slab", + "thread_local", "tracing-core", ] +[[package]] +name = "transpose" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad61aed86bc3faea4300c7aee358b4c6d0c8d6ccc36524c96e4c92ccf26e77e" +dependencies = [ + "num-integer", + "strength_reduce", +] + [[package]] name = "try-lock" version = "0.2.5" @@ -4811,9 +6045,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" [[package]] name = "ucd-trie" @@ -4851,12 +6085,6 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" -[[package]] -name = "unicode-width" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" - [[package]] name = "unicode-xid" version = "0.2.6" @@ -4893,19 +6121,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8bc0c60a9607e7ab77a2ad47ec5530178015014839db25af7512447d2238016c" dependencies = [ "anyhow", - "askama 0.14.0", + "askama", "camino", "cargo_metadata", "fs-err", "glob", "goblin", - "heck", + "heck 0.5.0", "indexmap 2.13.0", "once_cell", "serde", "tempfile", "textwrap", - "toml", + "toml 0.9.12+spec-1.1.0", "uniffi_internal_macros", "uniffi_meta", "uniffi_pipeline", @@ -4950,7 +6178,7 @@ dependencies = [ "quote", "serde", "syn 2.0.117", - "toml", + "toml 0.9.12+spec-1.1.0", "uniffi_meta", ] @@ -4973,7 +6201,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "761ef74f6175e15603d0424cc5f98854c5baccfe7bf4ccb08e5816f9ab8af689" dependencies = [ "anyhow", - "heck", + "heck 0.5.0", "indexmap 2.13.0", "tempfile", "uniffi_internal_macros", @@ -4997,7 +6225,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ - "crypto-common", + "crypto-common 0.1.7", "subtle", ] @@ -5007,6 +6235,12 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" +[[package]] +name = "unty" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" + [[package]] name = "url" version = "2.5.8" @@ -5032,6 +6266,12 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + [[package]] name = "uuid" version = "1.22.0" @@ -5056,6 +6296,12 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "virtue" +version = "0.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1" + [[package]] name = "wait-timeout" version = "0.2.1" @@ -5243,15 +6489,6 @@ dependencies = [ "nom", ] -[[package]] -name = "winapi-util" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" -dependencies = [ - "windows-sys 0.61.2", -] - [[package]] name = "windows-core" version = "0.62.2" @@ -5467,6 +6704,15 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + [[package]] name = "winnow" version = "0.7.15" @@ -5492,7 +6738,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" dependencies = [ "anyhow", - "heck", + "heck 0.5.0", "wit-parser", ] @@ -5503,7 +6749,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" dependencies = [ "anyhow", - "heck", + "heck 0.5.0", "indexmap 2.13.0", "prettyplease", "syn 2.0.117", @@ -5566,34 +6812,32 @@ dependencies = [ [[package]] name = "world-id-primitives" -version = "0.6.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "022157c68f1c49bb3d7256b9199174d6de6cc9d4b07c5ea757f2f6b35597b4a2" +checksum = "e19522e167d925e0c920671b41bb96edc82e7508f2d2730177c38c6cce2aa2c6" dependencies = [ - "alloy", + "alloy 2.0.4", "alloy-primitives 1.5.7", "ark-bn254", "ark-ff 0.5.0", - "ark-groth16", "arrayvec", "embed-doc-image", "eyre", - "getrandom 0.2.17", + "getrandom 0.3.4", "hex", - "k256", + "provekit-common", "rand 0.8.5", "ruint", "secrecy", "serde", "serde_json", + "sha2 0.11.0", "sha3", - "strum", + "strum 0.27.2", "taceo-ark-babyjubjub", - "taceo-ark-serde-compat", + "taceo-ark-serde-compat 0.5.0", "taceo-circom-types", "taceo-eddsa-babyjubjub", - "taceo-groth16-material", - "taceo-groth16-sol", "taceo-oprf", "taceo-poseidon2", "thiserror 2.0.18", @@ -5616,6 +6860,15 @@ dependencies = [ "tap", ] +[[package]] +name = "xz2" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2" +dependencies = [ + "lzma-sys", +] + [[package]] name = "yoke" version = "0.8.1" @@ -5738,3 +6991,31 @@ name = "zmij" version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" + +[[package]] +name = "zstd" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "7.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" +dependencies = [ + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.16+zstd.1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/Cargo.toml b/Cargo.toml index 87ff9445..65881995 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,7 @@ authors = ["World Contributors"] [workspace.dependencies] # World ID protocol types -world-id-primitives = { version = "0.6.0", default-features = false } +world-id-primitives = { version = "0.11.0", default-features = false } # Serialization serde = { version = "1.0", features = ["derive"] } @@ -60,9 +60,6 @@ alloy-sol-types = "0.8.0" alloy-primitives = "1.5.7" ruint = "1.11.1" -# OPRF types -taceo-oprf = { version = "0.8", default-features = false, features = ["types"] } - # UniFFI uniffi = "0.31" diff --git a/rust/core/Cargo.toml b/rust/core/Cargo.toml index 16417cf0..9618e615 100644 --- a/rust/core/Cargo.toml +++ b/rust/core/Cargo.toml @@ -36,7 +36,6 @@ alloy = { workspace = true } alloy-sol-types = { workspace = true } alloy-primitives = { workspace = true } ruint = { workspace = true } -taceo-oprf = { workspace = true } uniffi = { workspace = true, optional = true } uuid = { workspace = true, optional = true } urlencoding = { workspace = true, optional = true } diff --git a/rust/core/src/bridge.rs b/rust/core/src/bridge.rs index bf5ebb43..b9467e98 100644 --- a/rust/core/src/bridge.rs +++ b/rust/core/src/bridge.rs @@ -13,7 +13,7 @@ use crate::{ }; use serde::{Deserialize, Serialize}; use world_id_primitives::{ - FieldElement, ProofRequest, ProofResponse, RequestVersion, + FieldElement, OprfKeyId, ProofRequest, ProofResponse, ProofType, RequestVersion, ResponseItem as ProtocolResponseItem, SessionId, }; @@ -549,19 +549,19 @@ pub fn build_request_payload( // TODO: Clean up session_id handling once the SDK surface can carry the // protocol SessionId type directly instead of adapting the `session_` // string form at this bridge boundary. - let (action_fe, session_id_fe, action_str) = match ¶ms.kind { + let (proof_type, action_fe, session_id_fe, action_str) = match ¶ms.kind { RequestKind::Uniqueness { action } => { let fe = FieldElement::from_arbitrary_raw_bytes(action.as_bytes()); - (Some(fe), None, Some(action.clone())) + (ProofType::Uniqueness, Some(fe), None, Some(action.clone())) } - RequestKind::CreateSession => (None, None, None), + RequestKind::CreateSession => (ProofType::CreateSession, None, None, None), RequestKind::ProveSession { session_id } => { let parsed = serde_json::from_value::(serde_json::Value::String(session_id.clone())) .map_err(|_| { Error::InvalidConfiguration("Invalid session_id format".to_string()) })?; - (None, Some(parsed), None) + (ProofType::Session, None, Some(parsed), None) } }; @@ -579,10 +579,11 @@ pub fn build_request_payload( Ok(ProofRequest { id: uuid::Uuid::new_v4().to_string(), version: world_id_primitives::RequestVersion::V1, + proof_type, created_at: params.rp_context.created_at, expires_at: params.rp_context.expires_at, rp_id: params.rp_context.rp_id, - oprf_key_id: taceo_oprf::types::OprfKeyId::new(ruint::aliases::U160::from( + oprf_key_id: OprfKeyId::new(ruint::aliases::U160::from( params.rp_context.rp_id.into_inner(), )), action: action_fe, @@ -1920,12 +1921,11 @@ mod tests { let proof_request = ProofRequest { id: uuid::Uuid::new_v4().to_string(), version: world_id_primitives::RequestVersion::V1, + proof_type: ProofType::Uniqueness, created_at: rp_context.created_at, expires_at: rp_context.expires_at, rp_id: rp_context.rp_id, - oprf_key_id: taceo_oprf::types::OprfKeyId::new(ruint::aliases::U160::from( - rp_context.rp_id.into_inner(), - )), + oprf_key_id: OprfKeyId::new(ruint::aliases::U160::from(rp_context.rp_id.into_inner())), action: Some(action), session_id: None, signature, From 4efa6a8a3d54484b530f953b8a67874f9be2d077 Mon Sep 17 00:00:00 2001 From: Takis Kakalis <80459599+Takaros999@users.noreply.github.com> Date: Fri, 22 May 2026 16:28:34 +0300 Subject: [PATCH 4/7] fix: omit action from session signatures --- .../nextjs/app/api/rp-signature/route.ts | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/js/examples/nextjs/app/api/rp-signature/route.ts b/js/examples/nextjs/app/api/rp-signature/route.ts index 25df8b72..eb34795d 100644 --- a/js/examples/nextjs/app/api/rp-signature/route.ts +++ b/js/examples/nextjs/app/api/rp-signature/route.ts @@ -3,21 +3,54 @@ import { signRequest } from "@worldcoin/idkit/signing"; // export const runtime = "nodejs"; +type SignatureType = "request" | "create_session" | "session"; + +function isSignatureType(value: unknown): value is SignatureType { + return ( + value === "request" || value === "create_session" || value === "session" + ); +} + export async function POST(request: Request): Promise { try { const body = (await request.json()) as { + signature_type?: SignatureType; action?: string; ttl?: number; }; + const signatureType = body.signature_type ?? "request"; + if (!isSignatureType(signatureType)) { + return NextResponse.json( + { error: "Invalid signature_type" }, + { status: 400 }, + ); + } + + if (body.action !== undefined && typeof body.action !== "string") { + return NextResponse.json( + { error: "action must be a string" }, + { status: 400 }, + ); + } + + const action = body.action?.trim() || undefined; + if (signatureType !== "request" && action) { + return NextResponse.json( + { error: "Session signatures must not include action" }, + { status: 400 }, + ); + } + const signingKey = process.env.RP_SIGNING_KEY; const { sig, nonce, createdAt, expiresAt } = signRequest({ - ...(body.action ? { action: body.action } : {}), + ...(signatureType === "request" && action ? { action } : {}), signingKeyHex: signingKey!, ttl: body.ttl, }); console.log("Generated RP signature:", { + signatureType, sig, nonce, createdAt, From fab17535476ab7f22f5b77b8fa15843e32e58b7a Mon Sep 17 00:00:00 2001 From: Takis Kakalis <80459599+Takaros999@users.noreply.github.com> Date: Fri, 22 May 2026 16:58:19 +0300 Subject: [PATCH 5/7] fix: preserve top-level action for requests --- rust/core/src/bridge.rs | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/rust/core/src/bridge.rs b/rust/core/src/bridge.rs index b9467e98..129f13aa 100644 --- a/rust/core/src/bridge.rs +++ b/rust/core/src/bridge.rs @@ -1997,6 +1997,10 @@ mod tests { let payload = build_request_payload(¶ms, false).unwrap(); let proof_request = payload.get("proof_request").unwrap(); + assert_eq!(payload["action"], serde_json::json!("test-action")); + assert_eq!(proof_request["proof_type"], serde_json::json!("uniqueness")); + assert!(proof_request.get("action").is_some()); + assert_eq!(proof_request["session_id"], serde_json::Value::Null); assert_eq!( proof_request["proof_requests"][0]["identifier"], serde_json::json!("selfie") @@ -2008,6 +2012,50 @@ mod tests { assert_eq!(payload["verification_level"], serde_json::json!("device")); } + #[test] + fn test_build_request_payload_omits_top_level_action_for_sessions() { + let app_id = AppId::new("app_test").unwrap(); + let signature = "0x".to_string() + &"00".repeat(64) + "1b"; + let rp_context = RpContext::new( + "rp_1234567890abcdef", + "0x0000000000000000000000000000000000000000000000000000000000000001", + 1_700_000_000, + 1_700_003_600, + &signature, + ) + .unwrap(); + let constraints = ConstraintNode::item(CredentialRequest::new( + CredentialType::ProofOfHuman, + Some(Signal::from_string("session-signal")), + )); + + let params = BridgeConnectionParams { + app_id, + kind: RequestKind::CreateSession, + constraints: Some(constraints), + rp_context, + action_description: None, + legacy_verification_level: VerificationLevel::Device, + legacy_signal: String::new(), + bridge_url: None, + allow_legacy_proofs: false, + override_connect_base_url: None, + return_to: None, + environment: Some(Environment::Production), + identity_attributes: None, + }; + + let payload = build_request_payload(¶ms, false).unwrap(); + let proof_request = payload.get("proof_request").unwrap(); + assert!(payload.get("action").is_none()); + assert_eq!( + proof_request["proof_type"], + serde_json::json!("create_session") + ); + assert_eq!(proof_request["action"], serde_json::Value::Null); + assert_eq!(proof_request["session_id"], serde_json::Value::Null); + } + #[test] fn test_build_request_payload_serializes_identity_attributes() { let app_id = AppId::new("app_test").unwrap(); From 6dadec9a2d118fa36d43b0e50f812f287cc0fdd1 Mon Sep 17 00:00:00 2001 From: Takis Kakalis <80459599+Takaros999@users.noreply.github.com> Date: Fri, 22 May 2026 17:09:02 +0300 Subject: [PATCH 6/7] fix: keep empty bridge action for sessions --- rust/core/src/bridge.rs | 51 +++++++++++++++++++++++++++++++++++------ 1 file changed, 44 insertions(+), 7 deletions(-) diff --git a/rust/core/src/bridge.rs b/rust/core/src/bridge.rs index 129f13aa..39f75fef 100644 --- a/rust/core/src/bridge.rs +++ b/rust/core/src/bridge.rs @@ -84,7 +84,8 @@ struct BridgeRequestPayload { /// Application ID from the Developer Portal app_id: String, - /// Action ID from the Developer Portal (optional for session-only flows) + /// Action ID from the Developer Portal. + /// Session flows serialize this as an empty string for mobile bridge compatibility. #[serde(skip_serializing_if = "Option::is_none")] action: Option, @@ -554,14 +555,14 @@ pub fn build_request_payload( let fe = FieldElement::from_arbitrary_raw_bytes(action.as_bytes()); (ProofType::Uniqueness, Some(fe), None, Some(action.clone())) } - RequestKind::CreateSession => (ProofType::CreateSession, None, None, None), + RequestKind::CreateSession => (ProofType::CreateSession, None, None, Some(String::new())), RequestKind::ProveSession { session_id } => { let parsed = serde_json::from_value::(serde_json::Value::String(session_id.clone())) .map_err(|_| { Error::InvalidConfiguration("Invalid session_id format".to_string()) })?; - (ProofType::Session, None, Some(parsed), None) + (ProofType::Session, None, Some(parsed), Some(String::new())) } }; @@ -2013,7 +2014,7 @@ mod tests { } #[test] - fn test_build_request_payload_omits_top_level_action_for_sessions() { + fn test_build_request_payload_includes_empty_top_level_action_for_sessions() { let app_id = AppId::new("app_test").unwrap(); let signature = "0x".to_string() + &"00".repeat(64) + "1b"; let rp_context = RpContext::new( @@ -2047,13 +2048,49 @@ mod tests { let payload = build_request_payload(¶ms, false).unwrap(); let proof_request = payload.get("proof_request").unwrap(); - assert!(payload.get("action").is_none()); + assert_eq!(payload["action"], serde_json::json!("")); assert_eq!( proof_request["proof_type"], serde_json::json!("create_session") ); - assert_eq!(proof_request["action"], serde_json::Value::Null); - assert_eq!(proof_request["session_id"], serde_json::Value::Null); + + let session_id = serde_json::to_value(SessionId::default()) + .unwrap() + .as_str() + .unwrap() + .to_owned(); + let prove_params = BridgeConnectionParams { + app_id: AppId::new("app_test").unwrap(), + kind: RequestKind::ProveSession { session_id }, + constraints: Some(ConstraintNode::item(CredentialRequest::new( + CredentialType::ProofOfHuman, + Some(Signal::from_string("session-signal")), + ))), + rp_context: RpContext::new( + "rp_1234567890abcdef", + "0x0000000000000000000000000000000000000000000000000000000000000001", + 1_700_000_000, + 1_700_003_600, + &signature, + ) + .unwrap(), + action_description: None, + legacy_verification_level: VerificationLevel::Device, + legacy_signal: String::new(), + bridge_url: None, + allow_legacy_proofs: false, + override_connect_base_url: None, + return_to: None, + environment: Some(Environment::Production), + identity_attributes: None, + }; + + let prove_payload = build_request_payload(&prove_params, false).unwrap(); + assert_eq!(prove_payload["action"], serde_json::json!("")); + assert_eq!( + prove_payload["proof_request"]["proof_type"], + serde_json::json!("session") + ); } #[test] From d17ee99fdadccbf56aaab6748bc1114f52da5865 Mon Sep 17 00:00:00 2001 From: Takis Kakalis <80459599+Takaros999@users.noreply.github.com> Date: Tue, 26 May 2026 16:27:54 +0300 Subject: [PATCH 7/7] update api --- js/packages/core/src/__tests__/smoke.test.ts | 1 + js/packages/core/src/index.ts | 3 --- js/packages/core/src/request.ts | 3 --- js/packages/react/src/index.ts | 2 -- rust/core/src/bridge.rs | 2 ++ 5 files changed, 3 insertions(+), 8 deletions(-) diff --git a/js/packages/core/src/__tests__/smoke.test.ts b/js/packages/core/src/__tests__/smoke.test.ts index 995a6518..6cfe046a 100644 --- a/js/packages/core/src/__tests__/smoke.test.ts +++ b/js/packages/core/src/__tests__/smoke.test.ts @@ -266,6 +266,7 @@ describe("IDKitRequest API", () => { null, null, false, + false, null, null, null, diff --git a/js/packages/core/src/index.ts b/js/packages/core/src/index.ts index 0b47345c..11595664 100644 --- a/js/packages/core/src/index.ts +++ b/js/packages/core/src/index.ts @@ -8,9 +8,6 @@ export { // IDKit namespace (main entry point) IDKit, - // Session entry points - createSession, - proveSession, CredentialRequest, any, all, diff --git a/js/packages/core/src/request.ts b/js/packages/core/src/request.ts index c4eadf3a..0b0bf57c 100644 --- a/js/packages/core/src/request.ts +++ b/js/packages/core/src/request.ts @@ -8,7 +8,6 @@ import type { IDKitSessionConfig, RpContext, } from "./types/config"; -import { getSessionCommitment } from "./session"; import type { IDKitResult, ConstraintNode, @@ -1029,8 +1028,6 @@ export const IDKit = { createSession, /** Prove an existing session (no action, has session_id) */ proveSession, - /** Extract the commitment from an opaque session_id */ - getSessionCommitment, /** Create a CredentialRequest for a credential type */ CredentialRequest, /** Create an OR constraint - at least one child must be satisfied */ diff --git a/js/packages/react/src/index.ts b/js/packages/react/src/index.ts index 7420a97c..2afdc5b4 100644 --- a/js/packages/react/src/index.ts +++ b/js/packages/react/src/index.ts @@ -30,8 +30,6 @@ export type { SupportedLanguage } from "./lang/types"; export { IDKit, - createSession, - proveSession, getSessionCommitment, CredentialRequest, any, diff --git a/rust/core/src/bridge.rs b/rust/core/src/bridge.rs index 39f75fef..0f043b50 100644 --- a/rust/core/src/bridge.rs +++ b/rust/core/src/bridge.rs @@ -2040,6 +2040,7 @@ mod tests { legacy_signal: String::new(), bridge_url: None, allow_legacy_proofs: false, + require_user_presence: false, override_connect_base_url: None, return_to: None, environment: Some(Environment::Production), @@ -2079,6 +2080,7 @@ mod tests { legacy_signal: String::new(), bridge_url: None, allow_legacy_proofs: false, + require_user_presence: false, override_connect_base_url: None, return_to: None, environment: Some(Environment::Production),