@molpha/sdk 0.1.0 → 0.2.0-dev-20260911175245

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/encoding.ts","../src/core/nodeKeys.ts","../src/core/apiconfig.ts","../src/core/selection.ts","../src/gateway/auth.ts","../src/gateway/encryption.ts","../src/gateway/index.ts","../src/solana/pdas.ts","../src/solana/accounts.ts","../idl/molpha.json","../idl/index.ts","../src/solana/plans.ts","../src/solana/client.ts","../src/core/ids.ts","../src/evm/abi.ts","../src/evm/constants.ts","../src/evm/helpers.ts","../src/starknet/constants.ts","../src/starknet/helpers.ts","../src/index.ts"],"names":["nobleUtf8ToBytes","nobleConcatBytes","nobleBytesToHex","nobleHexToBytes","keccak_256","secp256k1","PlanType","strip0x","stripOuterQuotes"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Byte encoding primitives. Isomorphic — no `Buffer`, no `fs`. All byte work is\n * `Uint8Array` + `@noble/hashes/utils.js`. The canonical selection-bitmap and value\n * representation is a 32-byte big-endian word; `bigint` is used only for internal\n * sampling/packing math and is never exposed on the wire.\n */\nimport {\n bytesToHex as nobleBytesToHex,\n hexToBytes as nobleHexToBytes,\n utf8ToBytes as nobleUtf8ToBytes,\n concatBytes as nobleConcatBytes,\n} from \"@noble/hashes/utils.js\";\n\nexport const utf8 = (s: string): Uint8Array => nobleUtf8ToBytes(s);\nexport const concatBytes = (...arrays: Uint8Array[]): Uint8Array =>\n nobleConcatBytes(...arrays);\n\n/** Lower-case hex, no `0x` prefix. */\nexport const bytesToHex = (bytes: Uint8Array): string => nobleBytesToHex(bytes);\n\n/** Accepts an optional leading `0x`; case-insensitive. */\nexport function hexToBytes(hex: string): Uint8Array {\n const clean = hex.startsWith(\"0x\") || hex.startsWith(\"0X\") ? hex.slice(2) : hex;\n return nobleHexToBytes(clean);\n}\n\n/** Hex with a leading `0x`. */\nexport const bytesToHex0x = (bytes: Uint8Array): string => \"0x\" + bytesToHex(bytes);\n\n/** Big-endian u32 → 4 bytes. */\nexport function u32be(value: number): Uint8Array {\n assertUint(value, 0xffffffff, \"u32\");\n const out = new Uint8Array(4);\n new DataView(out.buffer).setUint32(0, value, false);\n return out;\n}\n\n/** Little-endian u32 → 4 bytes (used for PDA seeds like the registry index). */\nexport function u32le(value: number): Uint8Array {\n assertUint(value, 0xffffffff, \"u32\");\n const out = new Uint8Array(4);\n new DataView(out.buffer).setUint32(0, value, true);\n return out;\n}\n\n/** Big-endian u64 → 8 bytes. Accepts `number` or `bigint`. */\nexport function u64be(value: number | bigint): Uint8Array {\n const v = typeof value === \"bigint\" ? value : BigInt(value);\n if (v < 0n || v > 0xffffffffffffffffn) {\n throw new RangeError(`u64 out of range: ${v}`);\n }\n const out = new Uint8Array(8);\n new DataView(out.buffer).setBigUint64(0, v, false);\n return out;\n}\n\n/** Little-endian u64 → 8 bytes. Accepts `number` or `bigint`. */\nexport function u64le(value: number | bigint): Uint8Array {\n const v = typeof value === \"bigint\" ? value : BigInt(value);\n if (v < 0n || v > 0xffffffffffffffffn) {\n throw new RangeError(`u64 out of range: ${v}`);\n }\n const out = new Uint8Array(8);\n new DataView(out.buffer).setBigUint64(0, v, true);\n return out;\n}\n\n/** Big-endian 32-byte word ← bigint (0 ≤ v < 2^256). */\nexport function u256beFromBigInt(value: bigint): Uint8Array {\n if (value < 0n) throw new RangeError(\"u256 cannot be negative\");\n const out = new Uint8Array(32);\n let v = value;\n for (let i = 31; i >= 0 && v > 0n; i--) {\n out[i] = Number(v & 0xffn);\n v >>= 8n;\n }\n if (v > 0n) throw new RangeError(\"u256 overflow (>= 2^256)\");\n return out;\n}\n\n/** bigint ← big-endian byte word (any length). */\nexport function bigIntFromBytesBe(bytes: Uint8Array): bigint {\n let v = 0n;\n for (const b of bytes) v = (v << 8n) | BigInt(b);\n return v;\n}\n\n/** Throw unless `bytes.length === len`. Returns the input for chaining. */\nexport function ensureLength(bytes: Uint8Array, len: number, label: string): Uint8Array {\n if (bytes.length !== len) {\n throw new RangeError(`${label}: expected ${len} bytes, got ${bytes.length}`);\n }\n return bytes;\n}\n\n/** Coerce hex string or bytes to a fixed-length byte array. */\nexport function toFixedBytes(\n value: string | Uint8Array,\n len: number,\n label: string,\n): Uint8Array {\n const bytes = typeof value === \"string\" ? hexToBytes(value) : value;\n return ensureLength(bytes, len, label);\n}\n\nfunction assertUint(value: number, max: number, label: string): void {\n if (!Number.isInteger(value) || value < 0 || value > max) {\n throw new RangeError(`${label} out of range: ${value}`);\n }\n}\n","import { secp256k1 } from \"@noble/curves/secp256k1.js\";\nimport { bytesToHex, concatBytes, ensureLength, hexToBytes } from \"./encoding.js\";\n\nconst SECP256K1_COMPRESSED_PUBLIC_KEY_BYTES = 33;\nconst SECP256K1_UNCOMPRESSED_PUBLIC_KEY_BYTES = 65;\n\n/**\n * Parse a secp256k1 public key and return canonical compressed lower-case hex.\n * Accepts compressed or uncompressed SEC1 public keys with an optional `0x`.\n */\nexport function normalizeSecp256k1PublicKeyHex(\n publicKeyHex: string,\n label = \"secp256k1 public key\",\n): string {\n if (typeof publicKeyHex !== \"string\") {\n throw new Error(`${label}: expected hex string`);\n }\n\n let bytes: Uint8Array;\n try {\n bytes = hexToBytes(publicKeyHex);\n } catch {\n throw new Error(`${label}: invalid hex`);\n }\n\n if (\n bytes.length !== SECP256K1_COMPRESSED_PUBLIC_KEY_BYTES &&\n bytes.length !== SECP256K1_UNCOMPRESSED_PUBLIC_KEY_BYTES\n ) {\n throw new Error(\n `${label}: expected ${SECP256K1_COMPRESSED_PUBLIC_KEY_BYTES}-byte compressed or ${SECP256K1_UNCOMPRESSED_PUBLIC_KEY_BYTES}-byte uncompressed public key`,\n );\n }\n\n try {\n return bytesToHex(secp256k1.Point.fromBytes(bytes).toBytes(true));\n } catch {\n throw new Error(`${label}: invalid secp256k1 public key`);\n }\n}\n\n/** Reconstruct a compressed secp256k1 public key from 32-byte affine X/Y coordinates. */\nexport function secp256k1PublicKeyFromCoordinates(\n x: Uint8Array,\n y: Uint8Array,\n label = \"secp256k1 public key coordinates\",\n): string {\n ensureLength(x, 32, `${label}.x`);\n ensureLength(y, 32, `${label}.y`);\n return normalizeSecp256k1PublicKeyHex(\n bytesToHex(concatBytes(Uint8Array.of(0x04), x, y)),\n label,\n );\n}\n","/**\n * API config canonicalization + hashing. Must stay byte-identical with gateway/node\n * verification: `apiConfigHash = keccak256(JSON.stringify(apiConfig))`.\n */\nimport { keccak_256 } from \"@noble/hashes/sha3.js\";\nimport { utf8 } from \"./encoding.js\";\nimport type { APIConfig } from \"./types.js\";\n\n/** Gateway wire shape — defaults applied before hash / encryption. */\nexport function canonicalizeAPIConfig(apiConfig: APIConfig): APIConfig {\n return {\n url: apiConfig.url,\n method: apiConfig.method ?? \"GET\",\n headers: apiConfig.headers ?? {},\n responseParser: apiConfig.responseParser,\n valueTransform: apiConfig.valueTransform ?? \"\",\n };\n}\n\n/**\n * `apiConfigHash = keccak256(JSON.stringify(canonical apiConfig))`.\n * Pass the same config (including `{{secret.*}}` placeholders) you will send to\n * `MolphaGateway.requestSignedData` when deriving a feed id.\n */\nexport function deriveApiConfigHash(apiConfig: APIConfig): Uint8Array {\n return keccak_256(utf8(JSON.stringify(canonicalizeAPIConfig(apiConfig))));\n}\n","/**\n * Node selection: deterministic, verifiable, without replacement.\n *\n * Canonical bitmap representation = 32-byte big-endian word (bit `i` lives in\n * byte `31 - (i >> 3)`, mask `1 << (i & 7)`), matching the wire / on-chain form.\n */\nimport { keccak_256 } from \"@noble/hashes/sha3.js\";\nimport { concatBytes, ensureLength, u32be, u64be, utf8 } from \"./encoding.js\";\n\nconst SELECTION_SEED_DOMAIN = keccak_256(utf8(\"MOLPHA_SELECTION_V1\"));\nconst SELECTION_DERIVE_DOMAIN = keccak_256(utf8(\"MOLPHA_SELECTION_DERIVE\"));\n\n/** Maximum hashing rounds before giving up (matches on-chain cap). */\nconst MAX_ROUNDS = 65_536;\n\nconst BITMAP_BYTES = 32;\nconst MAX_NODES = BITMAP_BYTES * 8; // 256\nconst U32_MAX = 0xffff_ffff;\n\n/**\n * `seed = keccak256(keccak256(\"MOLPHA_SELECTION_V1\") || feedId || be32(rv) || be64(ts))`.\n */\nexport function deriveSelectionSeed(\n feedId: Uint8Array,\n registryVersion: number,\n canonicalTimestamp: number | bigint,\n): Uint8Array {\n ensureLength(feedId, 32, \"feedId\");\n return keccak_256(\n concatBytes(\n SELECTION_SEED_DOMAIN,\n feedId,\n u32be(registryVersion),\n u64be(canonicalTimestamp),\n ),\n );\n}\n\n/** `min(signaturesRequired + redundancyBuffer, nodeCount)`. */\nexport function effectiveSelectionSize(\n signaturesRequired: number,\n redundancyBuffer: number,\n nodeCount: number,\n): number {\n return Math.min(signaturesRequired + redundancyBuffer, nodeCount);\n}\n\n/** Is bit `bit` set in the 32-byte big-endian `bitmap`? */\nexport function bitmapBitSet(bitmap: Uint8Array, bit: number): boolean {\n if (bit < 0 || bit >= MAX_NODES) return false;\n const byte = bitmap[BITMAP_BYTES - 1 - (bit >> 3)] ?? 0;\n return (byte & (1 << (bit & 7))) !== 0;\n}\n\nfunction setBit(bitmap: Uint8Array, bit: number): void {\n const idx = BITMAP_BYTES - 1 - (bit >> 3);\n bitmap[idx] = (bitmap[idx] ?? 0) | (1 << (bit & 7));\n}\n\n/** Indices of set bits in `[0, nodeCount)`, ascending. */\nexport function selectedIndices(bitmap: Uint8Array, nodeCount: number): number[] {\n const out: number[] = [];\n for (let i = 0; i < nodeCount; i++) {\n if (bitmapBitSet(bitmap, i)) out.push(i);\n }\n return out;\n}\n\n/**\n * Rejection-sample `groupSize` distinct indices out of `nodeCount` from `seed`,\n * returning a 32-byte big-endian bitmap. Uses the complement optimization when\n * `groupSize > nodeCount / 2` (sample the smaller set, then invert).\n */\nexport function deriveGroupBitmap(\n seed: Uint8Array,\n nodeCount: number,\n groupSize: number,\n): Uint8Array {\n if (!Number.isInteger(nodeCount) || nodeCount <= 0 || nodeCount > MAX_NODES) {\n throw new RangeError(`GroupBitmapDerivationFailed: invalid nodeCount ${nodeCount}`);\n }\n if (!Number.isInteger(groupSize) || groupSize < 0 || groupSize > nodeCount) {\n throw new RangeError(`GroupBitmapDerivationFailed: invalid groupSize ${groupSize}`);\n }\n const bitmap = new Uint8Array(BITMAP_BYTES);\n if (groupSize === 0) return bitmap;\n if (groupSize === nodeCount) {\n for (let i = 0; i < nodeCount; i++) setBit(bitmap, i);\n return bitmap;\n }\n\n // Complement optimization: sample the smaller half, invert at the end.\n const complement = groupSize > nodeCount - groupSize;\n const sampleCount = complement ? nodeCount - groupSize : groupSize;\n const limit = Math.floor(U32_MAX / nodeCount) * nodeCount;\n\n const chosen = new Set<number>();\n let round = 0;\n while (chosen.size < sampleCount && round < MAX_ROUNDS) {\n const counterWord = new Uint8Array(32);\n counterWord.set(u64be(round), 24);\n const block = keccak_256(concatBytes(seed, SELECTION_DERIVE_DOMAIN, counterWord));\n for (let off = 0; off + 4 <= block.length && chosen.size < sampleCount; off += 4) {\n const limb =\n ((block[off]! << 24) |\n (block[off + 1]! << 16) |\n (block[off + 2]! << 8) |\n block[off + 3]!) >>>\n 0;\n if (limb < limit) {\n const idx = limb % nodeCount;\n chosen.add(idx);\n }\n }\n round++;\n }\n if (chosen.size < sampleCount) {\n throw new Error(\"GroupBitmapDerivationFailed: round cap reached\");\n }\n\n if (complement) {\n for (let i = 0; i < nodeCount; i++) {\n if (!chosen.has(i)) setBit(bitmap, i);\n }\n } else {\n for (const i of chosen) setBit(bitmap, i);\n }\n return bitmap;\n}\n\n/**\n * Convenience orchestrator: derive the selection bitmap end-to-end.\n * `redundancy` defaults to 0; `ts` defaults to the current unix second.\n */\nexport function deriveSelectionBitmap(\n feedId: Uint8Array,\n registryVersion: number,\n nodeCount: number,\n signaturesRequired: number,\n redundancy = 0,\n ts: number | bigint = Math.floor(Date.now() / 1000),\n): Uint8Array {\n const seed = deriveSelectionSeed(feedId, registryVersion, ts);\n const size = effectiveSelectionSize(signaturesRequired, redundancy, nodeCount);\n return deriveGroupBitmap(seed, nodeCount, size);\n}\n","/**\n * Gateway request authentication.\n *\n * `authMessage(feedId, timestamp) = sha256(\"MOLPHA_REQAUTH_V1\" || feed_id || uint64_le(timestamp))`,\n * signed ed25519 by the consumer authority / delegate.\n */\nimport { sha256 } from \"@noble/hashes/sha2.js\";\nimport { concatBytes, ensureLength, utf8, u64le } from \"../core/encoding.js\";\n\nexport type { Signer } from \"../core/types.js\";\n\nconst REQUEST_AUTH_DOMAIN = utf8(\"MOLPHA_REQAUTH_V1\");\n\nexport function authMessage(feedId: Uint8Array, timestamp: number | bigint): Uint8Array {\n ensureLength(feedId, 32, \"feedId\");\n return sha256(concatBytes(REQUEST_AUTH_DOMAIN, feedId, u64le(timestamp)));\n}\n","/**\n * API-config secret resolution + ECDH config encryption for selected nodes.\n */\nimport { gcm } from \"@noble/ciphers/aes.js\";\nimport { secp256k1 } from \"@noble/curves/secp256k1.js\";\nimport { keccak_256 } from \"@noble/hashes/sha3.js\";\nimport { randomBytes } from \"@noble/hashes/utils.js\";\nimport { canonicalizeAPIConfig } from \"../core/apiconfig.js\";\nimport { bytesToHex, concatBytes, hexToBytes, utf8 } from \"../core/encoding.js\";\nimport { normalizeSecp256k1PublicKeyHex } from \"../core/nodeKeys.js\";\nimport type { APIConfig, EncKeyBundle, Node } from \"../core/types.js\";\n\nconst NONCE_BYTES = 12; // AES-GCM nonce\nconst SYM_KEY_BYTES = 32;\n\nconst SECRET_PLACEHOLDER = /\\{\\{\\s*secret\\.([A-Za-z0-9_]+)\\s*\\}\\}/g;\n\ninterface EncryptionRecipient {\n index: number;\n signingKey: string;\n}\n\n/**\n * Replace `{{secret.NAME}}` placeholders in the string fields of an API config.\n * Throws if a referenced secret is missing.\n */\nexport function resolveAPIConfig(\n apiConfig: APIConfig,\n secrets: Record<string, string>,\n): APIConfig {\n const sub = (s: string): string =>\n s.replace(SECRET_PLACEHOLDER, (_m, name: string) => {\n if (!(name in secrets)) throw new Error(`Missing secret: ${name}`);\n return secrets[name]!;\n });\n\n const headers = apiConfig.headers\n ? Object.fromEntries(Object.entries(apiConfig.headers).map(([k, v]) => [k, sub(v)]))\n : undefined;\n\n return {\n ...apiConfig,\n url: sub(apiConfig.url),\n ...(headers ? { headers } : {}),\n responseParser: sub(apiConfig.responseParser),\n ...(apiConfig.valueTransform ? { valueTransform: sub(apiConfig.valueTransform) } : {}),\n };\n}\n\n/**\n * Encrypt a resolved API config with a fresh symmetric key, then ECDH-wrap that\n * key for each selected node. The gateway only ever sees placeholders.\n */\nexport function encryptForNodes(\n apiConfig: APIConfig,\n secrets: Record<string, string>,\n selectedNodes: Node[],\n): EncKeyBundle {\n const recipients = validateEncryptionRecipients(selectedNodes);\n\n const resolved = resolveAPIConfig(apiConfig, secrets);\n const plaintext = utf8(JSON.stringify(canonicalizeAPIConfig(resolved)));\n\n const symKey = randomBytes(SYM_KEY_BYTES);\n const nonceSym = randomBytes(NONCE_BYTES);\n const ciphertext = gcm(symKey, nonceSym).encrypt(plaintext);\n\n const ephemeralPriv = secp256k1.utils.randomSecretKey();\n const ephemeralPub = secp256k1.getPublicKey(ephemeralPriv, true); // compressed\n\n const envelopes: Record<string, string> = {};\n for (const node of recipients) {\n const envelopeIndex = String(node.index);\n const nodePub = hexToBytes(node.signingKey);\n const shared = secp256k1.getSharedSecret(ephemeralPriv, nodePub);\n const wrapKey = keccak_256(shared);\n const nonceEnv = randomBytes(NONCE_BYTES);\n const wrappedSymKey = gcm(wrapKey, nonceEnv).encrypt(symKey);\n envelopes[envelopeIndex] = bytesToHex(concatBytes(nonceEnv, wrappedSymKey));\n }\n\n return {\n ephemeralPub: bytesToHex(ephemeralPub),\n nonceSym: bytesToHex(nonceSym),\n ciphertext: bytesToHex(ciphertext),\n envelopes,\n };\n}\n\nfunction validateEncryptionRecipients(selectedNodes: Node[]): EncryptionRecipient[] {\n if (selectedNodes.length === 0) throw new Error(\"No nodes to encrypt for\");\n\n const envelopeIndexes = new Set<string>();\n const envelopeKeys = new Set<string>();\n return selectedNodes.map((node) => {\n if (!Number.isInteger(node.index) || node.index < 0) {\n throw new Error(`Selected node index must be a non-negative integer: ${node.index}`);\n }\n const envelopeIndex = String(node.index);\n if (envelopeIndexes.has(envelopeIndex)) {\n throw new Error(`Duplicate selected node index: ${node.index}`);\n }\n envelopeIndexes.add(envelopeIndex);\n\n const signingKey = normalizeSecp256k1PublicKeyHex(\n node.signingKey,\n `Selected node ${node.index} signingKey`,\n );\n if (envelopeKeys.has(signingKey)) {\n throw new Error(`Duplicate selected node signingKey: ${node.index}`);\n }\n envelopeKeys.add(signingKey);\n return { index: node.index, signingKey };\n });\n}\n","/**\n * `MolphaGateway` — isomorphic HTTP client with multi-endpoint failover.\n */\nimport {\n bytesToHex,\n bytesToHex0x,\n hexToBytes,\n} from \"../core/encoding.js\";\nimport { normalizeSecp256k1PublicKeyHex } from \"../core/nodeKeys.js\";\nimport { canonicalizeAPIConfig } from \"../core/apiconfig.js\";\nimport {\n deriveGroupBitmap,\n deriveSelectionSeed,\n effectiveSelectionSize,\n selectedIndices,\n} from \"../core/selection.js\";\nimport type {\n APIConfig,\n DataUpdateResult,\n Node,\n NodeKeyVerifier,\n RegistrySelectionConfig,\n Signer,\n} from \"../core/types.js\";\nimport { authMessage } from \"./auth.js\";\nimport { encryptForNodes } from \"./encryption.js\";\n\nexport type { RegistrySelectionConfig } from \"../core/types.js\";\n\nexport interface RequestSignedDataOptions {\n feedId: string;\n signaturesRequired: number;\n apiConfig: APIConfig;\n /**\n * Solana pubkey (base58) of the subscription owner.\n * Overrides the gateway's `defaultSubscriptionOwner` when set.\n */\n subscriptionOwner?: string;\n /**\n * Solana pubkey (base58) of the consumer authority that signs gateway auth.\n * Overrides the gateway's `defaultConsumerAuthority` when set.\n */\n consumerAuthority?: string;\n /**\n * Signs `authMessage(feedId, timestamp)`. Overrides the gateway's\n * `defaultSigner` when set. When both are omitted, sends all-zero authSig\n * (dev only).\n */\n signer?: Signer;\n encrypt?: { secrets: Record<string, string> };\n /** Max accepted value age in seconds. Default 60. */\n maxAge?: number;\n /** Each retry re-rolls the timestamp. Default 15. */\n maxRetries?: number;\n /** Per-request timeout in ms. Default 5000. */\n timeoutMs?: number;\n /**\n * Pre-fetched round inputs. Any field present here skips its network/on-chain\n * fetch, so a fully-populated context turns `requestSignedData` into a single\n * POST round (the \"short\" flow). Build a reusable one with\n * {@link MolphaGateway.prepareContext}.\n *\n * Caching is opt-in because these inputs can drift: a stale `registryVersion`,\n * `redundancyBuffer`, or `nodes` set produces a result the chain will reject.\n * Refresh the context when the on-chain registry version changes.\n */\n context?: Partial<RoundContext>;\n /**\n * Authenticates selected gateway node encryption keys before private API\n * secrets are encrypted. Overrides the gateway-level verifier when set.\n */\n verifyNodeKeys?: NodeKeyVerifier;\n /**\n * Unsafe development escape hatch for standalone gateway usage. When true,\n * encrypted private API requests may use gateway-provided node keys without\n * authentication. Defaults to false.\n */\n allowUnverifiedNodeKeysForPrivateApi?: boolean;\n}\n\nexport interface MolphaGatewayOptions {\n /** Solana pubkey (base58) of the subscription owner used when a request omits it. */\n defaultSubscriptionOwner?: string;\n /** Solana pubkey (base58) of the consumer authority used when a request omits it. */\n defaultConsumerAuthority?: string;\n /**\n * Authenticates selected gateway node encryption keys before private API\n * secrets are encrypted.\n */\n verifyNodeKeys?: NodeKeyVerifier;\n /**\n * Unsafe development escape hatch. When true, encrypted private API requests\n * may use gateway-provided node keys without authentication. Defaults to false.\n */\n allowUnverifiedNodeKeysForPrivateApi?: boolean;\n}\n\n/**\n * The slow-changing inputs a `requestSignedData` round binds to. Fetch once with\n * {@link MolphaGateway.prepareContext} and reuse across many rounds\n */\nexport interface RoundContext extends RegistrySelectionConfig {\n /** Full node set used to derive the selection bitmap. */\n nodes: Node[];\n}\n\ninterface GatewaySignedDataResponse {\n status: \"completed\" | \"pending\" | string;\n data?: GatewaySignedData;\n}\n\ninterface GatewaySignedData {\n feedId?: string;\n value?: string;\n valuePacked?: string;\n timestamp?: number;\n registryVersion?: number;\n signaturesRequired?: number;\n signersBitmap?: string;\n s?: string;\n commitmentAddr?: string;\n fresh?: boolean;\n}\n\ninterface GatewayEnvelope<T> {\n status: string;\n data: T;\n}\n\nconst ZERO_AUTH_SIG = new Uint8Array(64);\n\n/** Default gateway base URL when `endpoints` is omitted. */\nexport const DEFAULT_GATEWAY_ENDPOINT = \"https://dev-gateway.molpha.io/\";\n\n/** Thrown for terminal gateway errors (400/401) — never retried. */\nexport class GatewayError extends Error {\n constructor(\n message: string,\n readonly status?: number,\n ) {\n super(message);\n this.name = \"GatewayError\";\n }\n}\n\nexport class MolphaGateway {\n private readonly endpoints: string[];\n private readonly getRegistrySelectionConfig: () => Promise<RegistrySelectionConfig>;\n private readonly defaultSigner?: Signer;\n private readonly defaultSubscriptionOwner?: string;\n private readonly defaultConsumerAuthority?: string;\n private readonly verifyNodeKeys?: NodeKeyVerifier;\n private readonly allowUnverifiedNodeKeysForPrivateApi: boolean;\n\n constructor(\n endpoints?: string | string[],\n getRegistrySelectionConfig: () => Promise<RegistrySelectionConfig> = async () => {\n throw new Error(\n \"MolphaGateway requires getRegistrySelectionConfig to request signed data — pass the current on-chain registry version and redundancy buffer (e.g. () => solana.getRegistrySelectionConfig())\",\n );\n },\n defaultSigner?: Signer,\n /**\n * Either a default subscription owner (base58) or gateway options. A string\n * keeps the previous positional form used by standalone callers/tests.\n */\n defaultSubscriptionOwnerOrOptions?: string | MolphaGatewayOptions,\n defaultConsumerAuthority?: string,\n ) {\n const list =\n endpoints === undefined\n ? [DEFAULT_GATEWAY_ENDPOINT]\n : Array.isArray(endpoints)\n ? endpoints\n : [endpoints];\n if (list.length === 0) throw new Error(\"At least one endpoint is required\");\n this.endpoints = list.map((e) => e.replace(/\\/$/, \"\"));\n this.getRegistrySelectionConfig = getRegistrySelectionConfig;\n this.defaultSigner = defaultSigner;\n\n const options: MolphaGatewayOptions =\n typeof defaultSubscriptionOwnerOrOptions === \"string\"\n ? {\n defaultSubscriptionOwner: defaultSubscriptionOwnerOrOptions,\n defaultConsumerAuthority,\n }\n : (defaultSubscriptionOwnerOrOptions ?? {});\n\n this.defaultSubscriptionOwner = options.defaultSubscriptionOwner;\n this.defaultConsumerAuthority =\n options.defaultConsumerAuthority ?? options.defaultSubscriptionOwner;\n this.verifyNodeKeys = options.verifyNodeKeys;\n this.allowUnverifiedNodeKeysForPrivateApi =\n options.allowUnverifiedNodeKeysForPrivateApi ?? false;\n }\n\n /** Tries endpoints in order; returns the first node list it can fetch. */\n async getNodes(): Promise<Node[]> {\n const data = await this.firstReachableData<{ nodes: Node[] } | Node[]>(\"/v1/nodes\");\n return Array.isArray(data) ? data : data.nodes;\n }\n\n async isHealthy(): Promise<boolean> {\n for (const endpoint of this.endpoints) {\n try {\n const res = await fetch(`${endpoint}/health`, { method: \"GET\" });\n if (res.ok) return true;\n } catch {\n // try next\n }\n }\n return false;\n }\n\n /**\n * Fetch the slow-changing round inputs (registry version, redundancy buffer,\n * node set) once so they can be reused across many {@link requestSignedData}\n * calls. Pass the result back via `requestSignedData({ ..., context })` to\n * skip the prelude and run a single-round \"short\" flow.\n *\n * Both fetches run in parallel. Registry version and redundancy buffer come\n * from a single on-chain `RegistryState` read.\n */\n async prepareContext(_feedId: string): Promise<RoundContext> {\n const [registry, nodes] = await Promise.all([\n this.getRegistrySelectionConfig(),\n this.getNodes(),\n ]);\n return { ...registry, nodes };\n }\n\n /**\n * Request a threshold-signed data update from the gateway, with retry +\n * failover. Per attempt a fresh timestamp yields a fresh selection bitmap; the\n * body is POSTed to each endpoint in order until one `completed`s.\n *\n * By default this fetches the registry selection config and node set up front\n * (in parallel). Supply `opts.context` (e.g. from {@link prepareContext}) to\n * reuse cached inputs and skip those fetches — a fully-populated context\n * collapses the call to a single POST round.\n */\n async requestSignedData(opts: RequestSignedDataOptions): Promise<DataUpdateResult> {\n const {\n feedId,\n apiConfig,\n signer,\n encrypt,\n maxAge = 60,\n maxRetries = 15,\n timeoutMs = 5000,\n } = opts;\n\n const verifyNodeKeys = opts.verifyNodeKeys ?? this.verifyNodeKeys;\n const allowUnverified =\n opts.allowUnverifiedNodeKeysForPrivateApi ??\n this.allowUnverifiedNodeKeysForPrivateApi;\n if (encrypt && !verifyNodeKeys && !allowUnverified) {\n throw new Error(\n \"Private API encryption requires authenticated node keys. Provide verifyNodeKeys or set allowUnverifiedNodeKeysForPrivateApi: true for unsafe development use.\",\n );\n }\n\n const feedIdBytes = hexToBytes(feedId);\n const { registryVersion, redundancyBuffer, nodes } = await this.resolveContext(\n feedId,\n opts.context,\n );\n\n const requestApiConfig = canonicalizeAPIConfig(apiConfig);\n const subscriptionOwner = opts.subscriptionOwner ?? this.defaultSubscriptionOwner;\n if (!subscriptionOwner) {\n throw new Error(\n \"subscriptionOwner is required — pass opts.subscriptionOwner or set MolphaGateway defaultSubscriptionOwner (MolphaSDK sets this from wallet.publicKey)\",\n );\n }\n const consumerAuthority =\n opts.consumerAuthority ?? this.defaultConsumerAuthority ?? subscriptionOwner;\n\n let lastError: unknown;\n for (let attempt = 0; attempt < maxRetries; attempt++) {\n const timestamp = Math.floor(Date.now() / 1000);\n\n const seed = deriveSelectionSeed(feedIdBytes, registryVersion, timestamp);\n const groupSize = effectiveSelectionSize(\n opts.signaturesRequired,\n redundancyBuffer,\n nodes.length,\n );\n const bitmap = deriveGroupBitmap(seed, nodes.length, groupSize);\n const indices = selectedIndices(bitmap, nodes.length);\n\n let encKeyBundle: ReturnType<typeof encryptForNodes> | undefined;\n if (encrypt) {\n const selected = selectedNodesForPrivateApiEncryption(nodes, indices);\n\n if (verifyNodeKeys) {\n await verifyNodeKeys({\n feedId,\n registryVersion,\n timestamp,\n selectedIndexes: [...indices],\n selectedNodes: selected.map((node) => ({ ...node })),\n });\n }\n\n encKeyBundle = encryptForNodes(requestApiConfig, encrypt.secrets, selected);\n }\n\n const authSigner = signer ?? this.defaultSigner;\n const authSig = authSigner\n ? await authSigner(authMessage(feedIdBytes, timestamp))\n : ZERO_AUTH_SIG;\n\n const body: Record<string, unknown> = {\n feedId,\n registryVersion,\n timestamp,\n maxAge,\n signaturesRequired: opts.signaturesRequired,\n subscriptionOwner,\n consumerAuthority,\n authSig: bytesToHex0x(authSig),\n apiConfig: requestApiConfig,\n };\n if (encKeyBundle) body.encKeyBundle = encKeyBundle;\n\n for (const endpoint of this.endpoints) {\n try {\n const res = await this.post(\n `${endpoint}/v1/round/execute`,\n body,\n timeoutMs,\n );\n const errorDetail = !res.ok ? await parseGatewayErrorDetail(res) : undefined;\n if (res.status === 400 || res.status === 401) {\n throw new GatewayError(\n formatGatewayErrorMessage(\"Gateway rejected request\", res.status, errorDetail),\n res.status,\n );\n }\n if (res.status === 503) {\n lastError = new GatewayError(\n formatGatewayErrorMessage(\"Gateway unavailable\", 503, errorDetail),\n 503,\n );\n continue; // a different gateway may already hold the AggSig\n }\n if (!res.ok) {\n lastError = new GatewayError(\n formatGatewayErrorMessage(\"Gateway error\", res.status, errorDetail),\n res.status,\n );\n continue;\n }\n const json = (await res.json()) as GatewaySignedDataResponse;\n const payload = json.data ?? (\n json.status === \"completed\" ? (json as unknown as GatewaySignedData) : undefined\n );\n if (json.status === \"completed\" && payload) {\n return toResult(payload, {\n feedId,\n registryVersion,\n timestamp,\n signaturesRequired: opts.signaturesRequired,\n bitmap,\n });\n }\n lastError = new Error(`Gateway returned status: ${json.status}`);\n } catch (err) {\n if (err instanceof GatewayError && (err.status === 400 || err.status === 401)) {\n throw err;\n }\n lastError = err; // timeout / network → next endpoint\n }\n }\n }\n throw lastError instanceof Error\n ? lastError\n : new Error(\"Gateway round failed after retries\");\n }\n\n /**\n * Resolve the round inputs, fetching only the fields absent from `cached`.\n * Registry version and redundancy buffer are treated as a unit (one account\n * read). Whatever fetching remains runs in parallel.\n */\n private async resolveContext(\n _feedId: string,\n cached?: Partial<RoundContext>,\n ): Promise<RoundContext> {\n const hasRegistry =\n cached?.registryVersion !== undefined && cached?.redundancyBuffer !== undefined;\n const [registry, nodes] = await Promise.all([\n hasRegistry\n ? Promise.resolve({\n registryVersion: cached.registryVersion!,\n redundancyBuffer: cached.redundancyBuffer!,\n })\n : this.getRegistrySelectionConfig(),\n cached?.nodes !== undefined\n ? Promise.resolve(cached.nodes)\n : this.getNodes(),\n ]);\n return { ...registry, nodes };\n }\n\n private async firstReachableData<T>(path: string): Promise<T> {\n let lastError: unknown;\n for (const endpoint of this.endpoints) {\n try {\n const res = await fetch(`${endpoint}${path}`, { method: \"GET\" });\n if (res.ok) {\n const json = (await res.json()) as unknown;\n if (json && typeof json === \"object\" && \"data\" in json) {\n const wrapped = json as Partial<GatewayEnvelope<T>>;\n if (wrapped.data === undefined) {\n throw new GatewayError(`GET ${path} returned malformed payload`, res.status);\n }\n return wrapped.data;\n }\n return json as T;\n }\n lastError = new GatewayError(`GET ${path} failed (${res.status})`, res.status);\n } catch (err) {\n lastError = err;\n }\n }\n throw lastError instanceof Error ? lastError : new Error(`GET ${path} failed`);\n }\n\n private async post(\n url: string,\n body: unknown,\n timeoutMs: number,\n ): Promise<Response> {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n try {\n return await fetch(url, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(body),\n signal: controller.signal,\n });\n } finally {\n clearTimeout(timer);\n }\n }\n}\n\nfunction selectedNodesForPrivateApiEncryption(\n nodes: Node[],\n selectedIndexes: number[],\n): Node[] {\n if (!Array.isArray(nodes)) {\n throw new Error(\"Private API encryption requires a gateway node array\");\n }\n if (selectedIndexes.length === 0) {\n throw new Error(\"Private API encryption requires at least one selected node\");\n }\n\n const selectedIndexSet = new Set<number>();\n for (const index of selectedIndexes) {\n if (!Number.isInteger(index) || index < 0) {\n throw new Error(\n `Private API encryption selected index must be a non-negative integer: ${index}`,\n );\n }\n if (selectedIndexSet.has(index)) {\n throw new Error(`Private API encryption selected index is duplicated: ${index}`);\n }\n selectedIndexSet.add(index);\n }\n\n const selectedByIndex = new Map<number, Node>();\n const nodeIndexes = new Set<number>();\n for (const node of nodes) {\n if (!Number.isInteger(node.index) || node.index < 0) {\n throw new Error(`Gateway node index must be a non-negative integer: ${node.index}`);\n }\n if (node.index >= nodes.length) {\n throw new Error(\n `Gateway node index ${node.index} is outside the node list range 0..${nodes.length - 1}`,\n );\n }\n if (nodeIndexes.has(node.index)) {\n throw new Error(`Gateway returned duplicate node index: ${node.index}`);\n }\n nodeIndexes.add(node.index);\n if (!selectedIndexSet.has(node.index)) continue;\n selectedByIndex.set(node.index, node);\n }\n\n const selectedSigningKeys = new Set<string>();\n return selectedIndexes.map((index) => {\n const node = selectedByIndex.get(index);\n if (!node) {\n throw new Error(`Gateway node list is missing selected node index: ${index}`);\n }\n const signingKey = normalizeSecp256k1PublicKeyHex(\n node.signingKey,\n `Gateway selected node ${index} signingKey`,\n );\n if (selectedSigningKeys.has(signingKey)) {\n throw new Error(`Gateway returned duplicate selected node signingKey: ${index}`);\n }\n selectedSigningKeys.add(signingKey);\n return node;\n });\n}\n\nfunction formatGatewayErrorMessage(\n prefix: string,\n status: number,\n detail?: string,\n): string {\n if (!detail) return `${prefix} (${status})`;\n return `${prefix} (${status}): ${detail}`;\n}\n\nasync function parseGatewayErrorDetail(res: Response): Promise<string | undefined> {\n try {\n const text = (await res.text()).trim();\n if (!text) return undefined;\n try {\n const parsed = JSON.parse(text) as unknown;\n if (parsed && typeof parsed === \"object\") {\n const record = parsed as Record<string, unknown>;\n const message = record.error ?? record.message ?? record.detail;\n if (typeof message === \"string\" && message.trim()) return message.trim();\n }\n } catch {\n // fall back to raw body below\n }\n return text;\n } catch {\n return undefined;\n }\n}\n\nfunction toResult(\n data: GatewaySignedData,\n ctx: {\n feedId: string;\n registryVersion: number;\n timestamp: number;\n signaturesRequired: number;\n bitmap: Uint8Array;\n },\n): DataUpdateResult {\n return {\n feedId: data.feedId ?? ctx.feedId,\n value: data.value ?? \"\",\n valuePacked: data.valuePacked ?? \"\",\n timestamp: data.timestamp ?? ctx.timestamp,\n registryVersion: data.registryVersion ?? ctx.registryVersion,\n signaturesRequired: data.signaturesRequired ?? ctx.signaturesRequired,\n signersBitmap: data.signersBitmap ?? bytesToHex(ctx.bitmap),\n s: data.s ?? \"\",\n commitmentAddr: data.commitmentAddr ?? \"\",\n fresh: data.fresh ?? true,\n };\n}\n","/**\n * Consumer PDA derivations (no node PDA). Seed byte strings are cross-checked\n * against the IDL const seeds.\n */\nimport type { Address } from \"@solana/kit\";\nimport { u32le, utf8 } from \"../core/encoding.js\";\nimport {\n addressBytes,\n findProgramAddressSync,\n type SolanaAddress,\n} from \"./kit.js\";\n\nconst SEED_CONFIG = utf8(\"molpha_config\");\nconst SEED_REGISTRY = utf8(\"molpha_registry\");\nconst SEED_NODE = utf8(\"molpha_node\");\nconst SEED_PLAN = utf8(\"molpha_plan\");\nconst SEED_SUBSCRIPTION = utf8(\"molpha_subscription\");\nconst SEED_FEED = utf8(\"molpha_feed\");\n\n/** Virtual registry index used for a removed slot during a version transition. */\nexport const VIRTUAL_INDEX = 0xffffffff;\n\nconst pda = (seeds: Uint8Array[], programId: SolanaAddress): Address =>\n findProgramAddressSync(seeds, programId);\n\nexport const protocolConfigPda = (programId: SolanaAddress): Address =>\n pda([SEED_CONFIG], programId);\n\nexport const registryStatePda = (programId: SolanaAddress): Address =>\n pda([SEED_REGISTRY], programId);\n\n/** Slot-keyed `Node` account PDA: `[\"molpha_node\", index u32 LE]`. */\nexport const nodePda = (index: number, programId: SolanaAddress): Address =>\n pda([SEED_NODE, u32le(index)], programId);\n\n/** Plan PDA is `[b\"molpha_plan\", [planType as u8]]` in `subscribe`. */\nexport const planPda = (planId: number, programId: SolanaAddress): Address =>\n pda([SEED_PLAN, Uint8Array.of(planId)], programId);\n\nexport const subscriptionPda = (owner: SolanaAddress, programId: SolanaAddress): Address =>\n pda([SEED_SUBSCRIPTION, addressBytes(owner)], programId);\n\nexport const feedPda = (feedId: Uint8Array, programId: SolanaAddress): Address =>\n pda([SEED_FEED, feedId], programId);\n","/**\n * Account fetching, registry-version transition resolution, and remaining-accounts\n * construction.\n */\nimport { hexToBytes } from \"../core/encoding.js\";\nimport { selectedIndices } from \"../core/selection.js\";\nimport type { DataUpdateResult } from \"../core/types.js\";\nimport { type SolanaAccountMeta, type SolanaAddress, toPublicKey } from \"./kit.js\";\nimport { nodePda, VIRTUAL_INDEX } from \"./pdas.js\";\n\n/** The subset of on-chain `RegistryState` the client needs (Anchor camelCase). */\nexport interface RegistryStateView {\n currentVersion: number;\n previousVersion: number;\n previousExpiresAt: bigint;\n /** On-chain selection padding: `signatures_required + redundancy_buffer`. */\n redundancyBuffer: number;\n lastTransitionType:\n | { none: Record<string, never> }\n | { add: Record<string, never> }\n | { removeTail: Record<string, never> }\n | { removeSwap: Record<string, never> };\n removedOldIndex: number;\n movedOldIndex: number;\n}\n\n/** Set-bit indices of a 32-byte big-endian bitmap (full 256-bit scan). */\nexport function bitmapToIndices(signersBitmapHex: string): number[] {\n return selectedIndices(hexToBytes(signersBitmapHex), 256);\n}\n\n/**\n * Build the registry-index remaining accounts for a submit. Valid only\n * against the current or previous registry version (else thrown client-side).\n */\nexport function resolveRemainingAccounts(\n result: DataUpdateResult,\n registry: RegistryStateView,\n programId: SolanaAddress,\n): SolanaAccountMeta[] {\n const bits = bitmapToIndices(result.signersBitmap);\n\n const mapIndex = registryIndexMapper(result.registryVersion, registry);\n return bits.map((bit) => ({\n pubkey: toPublicKey(nodePda(mapIndex(bit), programId)),\n isSigner: false,\n isWritable: false,\n }));\n}\n\n/** Map a selected node index to its registry-index PDA index for a registry version. */\nexport function resolveRegistryIndexForVersion(\n index: number,\n registryVersion: number,\n registry: RegistryStateView,\n): number {\n return registryIndexMapper(registryVersion, registry)(index);\n}\n\nfunction registryIndexMapper(\n registryVersion: number,\n registry: RegistryStateView,\n): (bit: number) => number {\n if (registryVersion === registry.currentVersion) {\n return (bit) => bit; // current version: index == bit\n }\n if (registryVersion === registry.previousVersion) {\n if (\"add\" in registry.lastTransitionType) {\n return (bit) => bit;\n }\n const isRemoveTail = \"removeTail\" in registry.lastTransitionType;\n const isRemoveSwap = \"removeSwap\" in registry.lastTransitionType;\n if (!isRemoveTail && !isRemoveSwap) {\n throw new Error(\n \"InvalidTransitionAccount: previous-version verification requires remove-transition metadata\",\n );\n }\n return (bit) => {\n if (bit === registry.removedOldIndex) return VIRTUAL_INDEX;\n if (isRemoveSwap && bit === registry.movedOldIndex) return registry.removedOldIndex;\n return bit;\n };\n }\n throw new Error(\n `InvalidRegistryVersion: ${registryVersion} is neither current (${registry.currentVersion}) nor previous (${registry.previousVersion})`,\n );\n}\n","{\n \"address\": \"MoLFGDpFoVnQgwbkTNScKPohCxhbfd61JjFrnotuwzh\",\n \"metadata\": {\n \"name\": \"molpha\",\n \"version\": \"0.1.0\",\n \"spec\": \"0.1.0\",\n \"description\": \"Molpha Oracle Solana Program - Merged from molpha-solana and molpha-feed\"\n },\n \"instructions\": [\n {\n \"name\": \"add_delegate\",\n \"discriminator\": [\n 3,\n 67,\n 128,\n 218,\n 69,\n 139,\n 53,\n 88\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"subscription\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 115,\n 117,\n 98,\n 115,\n 99,\n 114,\n 105,\n 112,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n }\n ]\n }\n },\n {\n \"name\": \"delegate_account\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 100,\n 101,\n 108,\n 101,\n 103,\n 97,\n 116,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.delegate\"\n }\n ]\n }\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"AddDelegateArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"add_plan\",\n \"discriminator\": [\n 199,\n 79,\n 170,\n 244,\n 91,\n 21,\n 110,\n 218\n ],\n \"accounts\": [\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"plan\",\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"AddPlanArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"claim_gateway_rewards\",\n \"discriminator\": [\n 135,\n 85,\n 218,\n 91,\n 92,\n 28,\n 145,\n 45\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"gateway\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 103,\n 97,\n 116,\n 101,\n 119,\n 97,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n }\n ]\n }\n },\n {\n \"name\": \"treasury\",\n \"writable\": true\n },\n {\n \"name\": \"destination\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"claim_node_rewards\",\n \"discriminator\": [\n 151,\n 201,\n 146,\n 161,\n 104,\n 100,\n 214,\n 1\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"node_operator\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 110,\n 111,\n 100,\n 101,\n 95,\n 111,\n 112,\n 101,\n 114,\n 97,\n 116,\n 111,\n 114\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n }\n ]\n }\n },\n {\n \"name\": \"node\",\n \"docs\": [\n \"The operator's current slot account, holding `claimable_rewards` while active. Omitted once\",\n \"the operator is deactivated (its slot has been closed and rewards migrated to `node_operator`).\"\n ],\n \"writable\": true,\n \"optional\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 110,\n 111,\n 100,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"node_operator.current_index\",\n \"account\": \"NodeOperator\"\n }\n ]\n }\n },\n {\n \"name\": \"treasury\",\n \"writable\": true\n },\n {\n \"name\": \"destination\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"deactivate_node\",\n \"discriminator\": [\n 242,\n 185,\n 114,\n 146,\n 22,\n 248,\n 23,\n 157\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"registry_state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"removed_operator\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 110,\n 111,\n 100,\n 101,\n 95,\n 111,\n 112,\n 101,\n 114,\n 97,\n 116,\n 111,\n 114\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n }\n ]\n }\n },\n {\n \"name\": \"removed_node\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 110,\n 111,\n 100,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"removed_operator.current_index\",\n \"account\": \"NodeOperator\"\n }\n ]\n }\n },\n {\n \"name\": \"virtual_node\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 110,\n 111,\n 100,\n 101\n ]\n },\n {\n \"kind\": \"const\",\n \"value\": [\n 255,\n 255,\n 255,\n 255\n ]\n }\n ]\n }\n },\n {\n \"name\": \"last_node\",\n \"writable\": true\n },\n {\n \"name\": \"moved_operator\",\n \"writable\": true\n },\n {\n \"name\": \"rent_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"dispute_round\",\n \"discriminator\": [\n 190,\n 167,\n 75,\n 184,\n 90,\n 223,\n 99,\n 89\n ],\n \"accounts\": [\n {\n \"name\": \"challenger\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"registry_state\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"round_record\",\n \"docs\": [\n \"Subscription or agent settlement record. No seeds constraint — same rationale as\",\n \"`finalize_round` (owner + discriminator).\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"gateway\",\n \"writable\": true\n },\n {\n \"name\": \"treasury\",\n \"writable\": true\n },\n {\n \"name\": \"challenger_usdc\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n }\n ],\n \"args\": [\n {\n \"name\": \"agg_sig\",\n \"type\": {\n \"defined\": {\n \"name\": \"AggregatedSig\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"extend_subscription\",\n \"discriminator\": [\n 47,\n 230,\n 116,\n 118,\n 171,\n 228,\n 24,\n 46\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"subscription\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 115,\n 117,\n 98,\n 115,\n 99,\n 114,\n 105,\n 112,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n }\n ]\n }\n },\n {\n \"name\": \"plan\"\n },\n {\n \"name\": \"usdc_mint\"\n },\n {\n \"name\": \"owner_usdc\",\n \"writable\": true\n },\n {\n \"name\": \"treasury\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"finalize_registry_transition\",\n \"discriminator\": [\n 95,\n 24,\n 111,\n 199,\n 201,\n 21,\n 165,\n 193\n ],\n \"accounts\": [\n {\n \"name\": \"registry_state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"virtual_node\",\n \"writable\": true,\n \"optional\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 110,\n 111,\n 100,\n 101\n ]\n },\n {\n \"kind\": \"const\",\n \"value\": [\n 255,\n 255,\n 255,\n 255\n ]\n }\n ]\n }\n },\n {\n \"name\": \"node_operator\",\n \"docs\": [\n \"The deactivated operator that receives the virtual slot's residual rewards. Required\",\n \"whenever `virtual_node` is present.\"\n ],\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"rent_receiver\",\n \"writable\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"finalize_round\",\n \"discriminator\": [\n 239,\n 160,\n 254,\n 11,\n 254,\n 144,\n 53,\n 148\n ],\n \"accounts\": [\n {\n \"name\": \"caller\",\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"registry_state\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"round_record\",\n \"docs\": [\n \"Subscription (`[\\\"molpha_round\\\", feed_id, ts]`) or agent\",\n \"(`[\\\"molpha_agent_round\\\", agent, nonce]`) settlement record. No seeds constraint:\",\n \"owner + discriminator suffice — only the two settle instructions can create this\",\n \"account type, and both write complete state, so stored contents are trusted.\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"gateway\",\n \"writable\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"initialize\",\n \"discriminator\": [\n 175,\n 175,\n 109,\n 31,\n 13,\n 152,\n 155,\n 237\n ],\n \"accounts\": [\n {\n \"name\": \"protocol_config\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"registry_state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"usdc_mint\"\n },\n {\n \"name\": \"treasury\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"usdc_mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"InitializeArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"register_gateway\",\n \"discriminator\": [\n 183,\n 184,\n 135,\n 228,\n 71,\n 191,\n 76,\n 222\n ],\n \"accounts\": [\n {\n \"name\": \"gateway_authority\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"gateway\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 103,\n 97,\n 116,\n 101,\n 119,\n 97,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"gateway_authority\"\n }\n ]\n }\n },\n {\n \"name\": \"usdc_mint\"\n },\n {\n \"name\": \"authority_usdc\",\n \"writable\": true\n },\n {\n \"name\": \"treasury\",\n \"writable\": true\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"RegisterGatewayArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"register_node\",\n \"discriminator\": [\n 102,\n 85,\n 117,\n 114,\n 194,\n 188,\n 211,\n 168\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"signer\": true,\n \"relations\": [\n \"registry\"\n ]\n },\n {\n \"name\": \"node_owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"registry\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"node_operator\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 110,\n 111,\n 100,\n 101,\n 95,\n 111,\n 112,\n 101,\n 114,\n 97,\n 116,\n 111,\n 114\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"node_owner\"\n }\n ]\n }\n },\n {\n \"name\": \"node\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 110,\n 111,\n 100,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"registry.current_node_count\",\n \"account\": \"RegistryState\"\n }\n ]\n }\n },\n {\n \"name\": \"secp256k1_key_claim\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 115,\n 101,\n 99,\n 112,\n 95,\n 107,\n 101,\n 121\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.secp256k1_key_fingerprint\"\n }\n ]\n }\n },\n {\n \"name\": \"usdc_mint\"\n },\n {\n \"name\": \"owner_usdc\",\n \"writable\": true\n },\n {\n \"name\": \"treasury\",\n \"writable\": true\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"RegisterNodeArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"remove_delegate\",\n \"discriminator\": [\n 94,\n 37,\n 16,\n 59,\n 7,\n 84,\n 97,\n 211\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"subscription\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 115,\n 117,\n 98,\n 115,\n 99,\n 114,\n 105,\n 112,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n }\n ]\n }\n },\n {\n \"name\": \"delegate_account\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 100,\n 101,\n 108,\n 101,\n 103,\n 97,\n 116,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.delegate\"\n }\n ]\n }\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"RemoveDelegateArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"set_delegate_paused\",\n \"discriminator\": [\n 99,\n 154,\n 230,\n 157,\n 100,\n 20,\n 79,\n 158\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"delegate_account\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 100,\n 101,\n 108,\n 101,\n 103,\n 97,\n 116,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"delegate_account.delegate\",\n \"account\": \"Delegate\"\n }\n ]\n }\n }\n ],\n \"args\": [\n {\n \"name\": \"paused\",\n \"type\": \"bool\"\n }\n ]\n },\n {\n \"name\": \"settle_agent_round\",\n \"discriminator\": [\n 174,\n 21,\n 81,\n 91,\n 141,\n 169,\n 219,\n 1\n ],\n \"accounts\": [\n {\n \"name\": \"gateway_authority\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"registry_state\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"gateway\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 103,\n 97,\n 116,\n 101,\n 119,\n 97,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"gateway_authority\"\n }\n ]\n }\n },\n {\n \"name\": \"agent_escrow\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 97,\n 103,\n 101,\n 110,\n 116\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.authority\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"gateway\"\n }\n ]\n }\n },\n {\n \"name\": \"usdc_mint\"\n },\n {\n \"name\": \"escrow_ata\",\n \"docs\": [\n \"The escrow's USDC ATA — source of the settled `price`. Pinned to `agent_escrow`.\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"agent_escrow\"\n },\n {\n \"kind\": \"const\",\n \"value\": [\n 6,\n 221,\n 246,\n 225,\n 215,\n 101,\n 161,\n 147,\n 217,\n 203,\n 225,\n 70,\n 206,\n 235,\n 121,\n 172,\n 28,\n 180,\n 133,\n 237,\n 95,\n 91,\n 55,\n 145,\n 58,\n 140,\n 245,\n 133,\n 126,\n 255,\n 0,\n 169\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"usdc_mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"treasury\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"round_record\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 97,\n 103,\n 101,\n 110,\n 116,\n 95,\n 114,\n 111,\n 117,\n 110,\n 100\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.authority\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"gateway\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.api_config_hash\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.signatures_required\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.canonical_timestamp\"\n }\n ]\n }\n },\n {\n \"name\": \"instructions_sysvar\",\n \"address\": \"Sysvar1nstructions1111111111111111111111111\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"SettleAgentRoundArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"settle_round_receipt\",\n \"discriminator\": [\n 144,\n 177,\n 148,\n 213,\n 72,\n 95,\n 1,\n 189\n ],\n \"accounts\": [\n {\n \"name\": \"payer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"registry_state\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"subscription\",\n \"writable\": true\n },\n {\n \"name\": \"consumer_delegate\",\n \"docs\": [\n \"The handler checks the delegate PDA, owner/delegate fields, and discriminator before use.\"\n ],\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"gateway\",\n \"writable\": true\n },\n {\n \"name\": \"round_record\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 111,\n 117,\n 110,\n 100\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.consumer_authority\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.api_config_hash\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.signatures_required\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.timestamp\"\n }\n ]\n }\n },\n {\n \"name\": \"instructions_sysvar\",\n \"address\": \"Sysvar1nstructions1111111111111111111111111\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"SettleRoundArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"submit_data_update\",\n \"discriminator\": [\n 213,\n 216,\n 158,\n 85,\n 112,\n 27,\n 17,\n 109\n ],\n \"accounts\": [\n {\n \"name\": \"submitter\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"registry_state\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"feed\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 102,\n 101,\n 101,\n 100\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.feed_id\"\n }\n ]\n }\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"SubmitDataUpdateArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"subscribe\",\n \"discriminator\": [\n 254,\n 28,\n 191,\n 138,\n 156,\n 179,\n 183,\n 53\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"plan\"\n },\n {\n \"name\": \"subscription\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 115,\n 117,\n 98,\n 115,\n 99,\n 114,\n 105,\n 112,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n }\n ]\n }\n },\n {\n \"name\": \"usdc_mint\"\n },\n {\n \"name\": \"owner_usdc\",\n \"writable\": true\n },\n {\n \"name\": \"treasury\",\n \"writable\": true\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n }\n ],\n \"args\": [\n {\n \"name\": \"plan_type\",\n \"type\": {\n \"defined\": {\n \"name\": \"PlanType\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"update_config\",\n \"discriminator\": [\n 29,\n 158,\n 252,\n 191,\n 10,\n 83,\n 219,\n 99\n ],\n \"accounts\": [\n {\n \"name\": \"protocol_config\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"registry_state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"authority\",\n \"signer\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"UpdateConfigArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"update_node_endpoint\",\n \"discriminator\": [\n 63,\n 119,\n 147,\n 11,\n 73,\n 81,\n 230,\n 155\n ],\n \"accounts\": [\n {\n \"name\": \"node_owner\",\n \"signer\": true\n },\n {\n \"name\": \"node_operator\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 110,\n 111,\n 100,\n 101,\n 95,\n 111,\n 112,\n 101,\n 114,\n 97,\n 116,\n 111,\n 114\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"node_owner\"\n }\n ]\n }\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"UpdateNodeEndpointArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"update_plan\",\n \"discriminator\": [\n 119,\n 112,\n 58,\n 60,\n 76,\n 205,\n 1,\n 100\n ],\n \"accounts\": [\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"plan\",\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"signer\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"UpdatePlanArgs\"\n }\n }\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"AgentEscrow\",\n \"discriminator\": [\n 26,\n 63,\n 32,\n 229,\n 41,\n 3,\n 31,\n 173\n ]\n },\n {\n \"name\": \"Delegate\",\n \"discriminator\": [\n 92,\n 145,\n 166,\n 111,\n 11,\n 38,\n 38,\n 247\n ]\n },\n {\n \"name\": \"Feed\",\n \"discriminator\": [\n 69,\n 191,\n 16,\n 227,\n 132,\n 187,\n 84,\n 227\n ]\n },\n {\n \"name\": \"Gateway\",\n \"discriminator\": [\n 210,\n 132,\n 162,\n 254,\n 10,\n 224,\n 45,\n 86\n ]\n },\n {\n \"name\": \"Node\",\n \"discriminator\": [\n 208,\n 53,\n 1,\n 3,\n 49,\n 122,\n 180,\n 49\n ]\n },\n {\n \"name\": \"NodeOperator\",\n \"discriminator\": [\n 77,\n 85,\n 128,\n 252,\n 48,\n 166,\n 7,\n 56\n ]\n },\n {\n \"name\": \"Plan\",\n \"discriminator\": [\n 161,\n 231,\n 251,\n 119,\n 2,\n 12,\n 162,\n 2\n ]\n },\n {\n \"name\": \"ProtocolConfig\",\n \"discriminator\": [\n 207,\n 91,\n 250,\n 28,\n 152,\n 179,\n 215,\n 209\n ]\n },\n {\n \"name\": \"RegistryState\",\n \"discriminator\": [\n 29,\n 34,\n 224,\n 195,\n 175,\n 183,\n 99,\n 97\n ]\n },\n {\n \"name\": \"RoundReceiptRecord\",\n \"discriminator\": [\n 14,\n 85,\n 161,\n 183,\n 206,\n 89,\n 91,\n 94\n ]\n },\n {\n \"name\": \"Secp256k1KeyClaim\",\n \"discriminator\": [\n 128,\n 160,\n 40,\n 228,\n 165,\n 251,\n 194,\n 86\n ]\n },\n {\n \"name\": \"Subscription\",\n \"discriminator\": [\n 64,\n 7,\n 26,\n 135,\n 102,\n 132,\n 98,\n 33\n ]\n }\n ],\n \"events\": [\n {\n \"name\": \"AgentEscrowClosed\",\n \"discriminator\": [\n 232,\n 16,\n 254,\n 241,\n 38,\n 232,\n 77,\n 255\n ]\n },\n {\n \"name\": \"AgentEscrowCreated\",\n \"discriminator\": [\n 208,\n 240,\n 200,\n 98,\n 63,\n 57,\n 74,\n 117\n ]\n },\n {\n \"name\": \"AgentRoundSettled\",\n \"discriminator\": [\n 241,\n 12,\n 225,\n 155,\n 101,\n 174,\n 15,\n 76\n ]\n },\n {\n \"name\": \"DelegateAdded\",\n \"discriminator\": [\n 96,\n 159,\n 58,\n 144,\n 26,\n 171,\n 141,\n 70\n ]\n },\n {\n \"name\": \"DelegateRemoved\",\n \"discriminator\": [\n 91,\n 243,\n 235,\n 175,\n 109,\n 235,\n 217,\n 84\n ]\n },\n {\n \"name\": \"DelegateStatusChanged\",\n \"discriminator\": [\n 188,\n 202,\n 137,\n 41,\n 54,\n 213,\n 14,\n 92\n ]\n },\n {\n \"name\": \"FeedUpdated\",\n \"discriminator\": [\n 200,\n 60,\n 190,\n 86,\n 247,\n 9,\n 50,\n 81\n ]\n },\n {\n \"name\": \"GatewayRegistered\",\n \"discriminator\": [\n 171,\n 121,\n 170,\n 61,\n 195,\n 155,\n 35,\n 98\n ]\n },\n {\n \"name\": \"NodeDeactivated\",\n \"discriminator\": [\n 74,\n 15,\n 22,\n 250,\n 74,\n 89,\n 202,\n 244\n ]\n },\n {\n \"name\": \"NodeEndpointUpdated\",\n \"discriminator\": [\n 121,\n 121,\n 209,\n 202,\n 113,\n 134,\n 46,\n 240\n ]\n },\n {\n \"name\": \"NodeRegistered\",\n \"discriminator\": [\n 15,\n 57,\n 183,\n 59,\n 93,\n 55,\n 157,\n 195\n ]\n },\n {\n \"name\": \"NodeSlotFinalized\",\n \"discriminator\": [\n 242,\n 7,\n 112,\n 224,\n 237,\n 228,\n 250,\n 164\n ]\n },\n {\n \"name\": \"PlanAdded\",\n \"discriminator\": [\n 253,\n 31,\n 157,\n 223,\n 171,\n 1,\n 203,\n 207\n ]\n },\n {\n \"name\": \"PlanUpdated\",\n \"discriminator\": [\n 49,\n 51,\n 198,\n 31,\n 170,\n 70,\n 253,\n 195\n ]\n },\n {\n \"name\": \"ProtocolConfigUpdated\",\n \"discriminator\": [\n 20,\n 99,\n 32,\n 237,\n 111,\n 86,\n 195,\n 199\n ]\n },\n {\n \"name\": \"ProtocolInitialized\",\n \"discriminator\": [\n 173,\n 122,\n 168,\n 254,\n 9,\n 118,\n 76,\n 132\n ]\n },\n {\n \"name\": \"RegistryVersionActivated\",\n \"discriminator\": [\n 140,\n 113,\n 95,\n 86,\n 170,\n 147,\n 96,\n 250\n ]\n },\n {\n \"name\": \"RewardsClaimed\",\n \"discriminator\": [\n 75,\n 98,\n 88,\n 18,\n 219,\n 112,\n 88,\n 121\n ]\n },\n {\n \"name\": \"RoundDisputed\",\n \"discriminator\": [\n 120,\n 195,\n 216,\n 137,\n 13,\n 72,\n 47,\n 81\n ]\n },\n {\n \"name\": \"RoundFinalized\",\n \"discriminator\": [\n 43,\n 187,\n 17,\n 193,\n 36,\n 241,\n 48,\n 82\n ]\n },\n {\n \"name\": \"RoundSettled\",\n \"discriminator\": [\n 249,\n 225,\n 66,\n 54,\n 157,\n 200,\n 234,\n 222\n ]\n },\n {\n \"name\": \"Subscribed\",\n \"discriminator\": [\n 135,\n 59,\n 105,\n 76,\n 190,\n 236,\n 138,\n 228\n ]\n },\n {\n \"name\": \"SubscriptionExtended\",\n \"discriminator\": [\n 149,\n 17,\n 152,\n 209,\n 131,\n 145,\n 5,\n 6\n ]\n },\n {\n \"name\": \"SubscriptionVaultWithdrawn\",\n \"discriminator\": [\n 35,\n 82,\n 214,\n 101,\n 73,\n 182,\n 105,\n 108\n ]\n }\n ],\n \"errors\": [\n {\n \"code\": 6000,\n \"name\": \"TransitionStillInGrace\",\n \"msg\": \"Registry change attempted while previous version is still accepted\"\n },\n {\n \"code\": 6001,\n \"name\": \"InvalidNodeIndex\",\n \"msg\": \"Signer index outside node_count(version)\"\n },\n {\n \"code\": 6002,\n \"name\": \"InvalidNodeAccount\",\n \"msg\": \"Node account does not match expected index/owner\"\n },\n {\n \"code\": 6003,\n \"name\": \"InvalidTransitionAccount\",\n \"msg\": \"Previous-after-remove verification requires remove-transition metadata\"\n },\n {\n \"code\": 6004,\n \"name\": \"MovedNodeMismatch\",\n \"msg\": \"moved_operator does not match the last-slot node's owner\"\n },\n {\n \"code\": 6005,\n \"name\": \"UnauthorizedNodeAuthority\",\n \"msg\": \"Caller is not node.owner or registry.authority\"\n },\n {\n \"code\": 6006,\n \"name\": \"NodeAlreadyRegistered\",\n \"msg\": \"secp256k1_pubkey matches existing active node\"\n },\n {\n \"code\": 6007,\n \"name\": \"NodeCapExceeded\",\n \"msg\": \"pending_node_count >= max_node_count or node_index_hint >= max_node_count\"\n },\n {\n \"code\": 6008,\n \"name\": \"InvalidPoP\",\n \"msg\": \"PoP Schnorr verification failed at registration\"\n },\n {\n \"code\": 6009,\n \"name\": \"NodeNotActive\",\n \"msg\": \"Instruction requires Active node status\"\n },\n {\n \"code\": 6010,\n \"name\": \"PubkeyNotOnCurve\",\n \"msg\": \"Submitted compressed pubkey does not decompress to a valid curve point\"\n },\n {\n \"code\": 6011,\n \"name\": \"InvalidRegistryVersion\",\n \"msg\": \"registry_version is neither active_version nor grace-valid previous_version\"\n },\n {\n \"code\": 6012,\n \"name\": \"UnauthorisedAuthority\",\n \"msg\": \"Caller is not ProtocolConfig.authority\"\n },\n {\n \"code\": 6013,\n \"name\": \"InvalidGatewayEndpoint\",\n \"msg\": \"Gateway endpoint is invalid\"\n },\n {\n \"code\": 6014,\n \"name\": \"InvalidNodeEndpoint\",\n \"msg\": \"Node endpoint is invalid\"\n },\n {\n \"code\": 6015,\n \"name\": \"InvalidTreasury\",\n \"msg\": \"treasury token account mismatch\"\n },\n {\n \"code\": 6016,\n \"name\": \"InvalidOwnerUsdc\",\n \"msg\": \"owner_usdc token account mismatch\"\n },\n {\n \"code\": 6017,\n \"name\": \"InvalidTreasuryOwner\",\n \"msg\": \"treasury must be owned by protocol_config\"\n },\n {\n \"code\": 6018,\n \"name\": \"InvalidWithdrawDestination\",\n \"msg\": \"withdraw destination token account mismatch\"\n },\n {\n \"code\": 6019,\n \"name\": \"InvalidSignature\",\n \"msg\": \"Invalid aggregate signature\"\n },\n {\n \"code\": 6020,\n \"name\": \"GroupBitmapDerivationFailed\",\n \"msg\": \"Could not derive group bitmap\"\n },\n {\n \"code\": 6021,\n \"name\": \"InvalidSignersBitmap\",\n \"msg\": \"Signers bitmap contains out-of-range indices\"\n },\n {\n \"code\": 6022,\n \"name\": \"PlanNotActive\",\n \"msg\": \"plan exists but is_active is false\"\n },\n {\n \"code\": 6023,\n \"name\": \"InvalidPlanParams\",\n \"msg\": \"invalid plan quorum or signer parameters\"\n },\n {\n \"code\": 6024,\n \"name\": \"InvalidDelegateLimits\",\n \"msg\": \"invalid delegate limit parameters\"\n },\n {\n \"code\": 6025,\n \"name\": \"DelegateCannotBeOwner\",\n \"msg\": \"delegate cannot be the owner\"\n },\n {\n \"code\": 6026,\n \"name\": \"DelegateAccountRequired\",\n \"msg\": \"delegate account required for non-owner action\"\n },\n {\n \"code\": 6027,\n \"name\": \"UnexpectedDelegateAccount\",\n \"msg\": \"delegate account must not be supplied for owner action\"\n },\n {\n \"code\": 6028,\n \"name\": \"DelegateDataRequestLimitReached\",\n \"msg\": \"delegate data_requests_used >= max_data_requests\"\n },\n {\n \"code\": 6029,\n \"name\": \"DelegateNotFound\",\n \"msg\": \"remove_delegate target not found\"\n },\n {\n \"code\": 6030,\n \"name\": \"DelegateNotActive\",\n \"msg\": \"delegate is paused\"\n },\n {\n \"code\": 6031,\n \"name\": \"SignaturesExceedDelegateMax\",\n \"msg\": \"signatures_required exceeds delegate.max_signers\"\n },\n {\n \"code\": 6032,\n \"name\": \"DelegateCapReached\",\n \"msg\": \"subscription delegate_count >= plan.max_delegates\"\n },\n {\n \"code\": 6033,\n \"name\": \"InvalidRegistrationSalt\",\n \"msg\": \"registration_salt must not be zero\"\n },\n {\n \"code\": 6034,\n \"name\": \"InvalidSecp256k1KeyFingerprint\",\n \"msg\": \"secp256k1 key fingerprint does not match compressed key\"\n },\n {\n \"code\": 6035,\n \"name\": \"InsufficientSigners\",\n \"msg\": \"popcount(signers_bitmap) < signatures_required\"\n },\n {\n \"code\": 6036,\n \"name\": \"SignaturesExceedSubscriptionMax\",\n \"msg\": \"signatures_required exceeds subscription.max_signers\"\n },\n {\n \"code\": 6037,\n \"name\": \"SignersNotSubsetOfSelection\",\n \"msg\": \"Signer bits outside selection bitmap\"\n },\n {\n \"code\": 6038,\n \"name\": \"InvalidAggregateSignature\",\n \"msg\": \"PoP-Schnorr aggregate verification failed\"\n },\n {\n \"code\": 6039,\n \"name\": \"FeedNotNewer\",\n \"msg\": \"canonical_timestamp <= feed.canonical_timestamp\"\n },\n {\n \"code\": 6040,\n \"name\": \"MissingSignerAccount\",\n \"msg\": \"Missing or mis-ordered signer slot version account\"\n },\n {\n \"code\": 6041,\n \"name\": \"SubscriptionNotActive\",\n \"msg\": \"subscription has expired\"\n },\n {\n \"code\": 6042,\n \"name\": \"ConsumerSigInvalid\",\n \"msg\": \"consumer Ed25519 signature missing or invalid\"\n },\n {\n \"code\": 6043,\n \"name\": \"QuorumBelowThreshold\",\n \"msg\": \"popcount(signers_bitmap) < signatures_required\"\n },\n {\n \"code\": 6044,\n \"name\": \"GatewayNotBonded\",\n \"msg\": \"gateway not registered or bonded below gateway_bond_min\"\n },\n {\n \"code\": 6045,\n \"name\": \"SubscriptionInactiveOrExhausted\",\n \"msg\": \"subscription inactive or round quota exhausted\"\n },\n {\n \"code\": 6046,\n \"name\": \"DisputeAggSigMismatch\",\n \"msg\": \"supplied signature does not match committed agg_sig_hash\"\n },\n {\n \"code\": 6047,\n \"name\": \"DisputeSignatureValid\",\n \"msg\": \"dispute failed: the committed signature verifies (no fraud)\"\n },\n {\n \"code\": 6048,\n \"name\": \"GatewayIndexMismatch\",\n \"msg\": \"gateway_index does not match the bonded gateway\"\n },\n {\n \"code\": 6049,\n \"name\": \"InsufficientBond\",\n \"msg\": \"bond amount below gateway_bond_min\"\n },\n {\n \"code\": 6050,\n \"name\": \"CreditedBitmapMismatch\",\n \"msg\": \"agg_sig.signers_bitmap does not match signers_bitmap\"\n },\n {\n \"code\": 6051,\n \"name\": \"RoundNotFinalizable\",\n \"msg\": \"round still inside dispute window; cannot finalize\"\n },\n {\n \"code\": 6052,\n \"name\": \"RoundNotPending\",\n \"msg\": \"round is not pending\"\n },\n {\n \"code\": 6053,\n \"name\": \"NothingToClaim\",\n \"msg\": \"no claimable rewards\"\n },\n {\n \"code\": 6054,\n \"name\": \"InvalidInstructionsSysvar\",\n \"msg\": \"instructions sysvar account is invalid\"\n },\n {\n \"code\": 6055,\n \"name\": \"UnauthorisedConsumer\",\n \"msg\": \"consumer authority is not the delegate authority\"\n },\n {\n \"code\": 6056,\n \"name\": \"InvalidCreditNodeAccount\",\n \"msg\": \"mismatched or missing credited node account\"\n },\n {\n \"code\": 6057,\n \"name\": \"AgentNotActive\",\n \"msg\": \"agent escrow is not active\"\n },\n {\n \"code\": 6058,\n \"name\": \"AmountMismatch\",\n \"msg\": \"computed price does not match the agent-signed amount\"\n },\n {\n \"code\": 6059,\n \"name\": \"EpochCapExceeded\",\n \"msg\": \"arithmetic overflow in escrow spend accounting\"\n },\n {\n \"code\": 6060,\n \"name\": \"InsufficientAgentCredits\",\n \"msg\": \"escrow ATA balance below computed price\"\n },\n {\n \"code\": 6061,\n \"name\": \"AgentSigInvalid\",\n \"msg\": \"agent request authorization signature is invalid or missing\"\n },\n {\n \"code\": 6062,\n \"name\": \"InvalidAgentCaps\",\n \"msg\": \"agent cap parameters invalid\"\n },\n {\n \"code\": 6063,\n \"name\": \"CreditedExceedsSelection\",\n \"msg\": \"credited signer count exceeds signatures_required + redundancy_buffer\"\n },\n {\n \"code\": 6064,\n \"name\": \"InvalidValueLength\",\n \"msg\": \"value exceeds Feed::MAX_VALUE_LEN\"\n }\n ],\n \"types\": [\n {\n \"name\": \"AddDelegateArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"delegate\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"max_data_requests\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_signers\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"AddPlanArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"plan_type\",\n \"type\": {\n \"defined\": {\n \"name\": \"PlanType\"\n }\n }\n },\n {\n \"name\": \"subscription_price\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_signers\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"max_delegates\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"private_api_enabled\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"is_active\",\n \"type\": \"bool\"\n }\n ]\n }\n },\n {\n \"name\": \"AgentEscrow\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"status\",\n \"type\": {\n \"defined\": {\n \"name\": \"AgentStatus\"\n }\n }\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"AgentEscrowClosed\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"agent\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"AgentEscrowCreated\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"agent\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"gateway\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"AgentRoundSettled\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"agent\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"price\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"feed_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"gateway\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"signers_bitmap\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"credited_count\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"recorded_slot\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"AgentStatus\",\n \"docs\": [\n \"Lifecycle status shared by `Delegate` and `AgentEscrow`.\"\n ],\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Active\"\n },\n {\n \"name\": \"Paused\"\n }\n ]\n }\n },\n {\n \"name\": \"AggregatedSig\",\n \"docs\": [\n \"The committed aggregate Schnorr signature. **Not verified on the happy path.**\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"s\",\n \"docs\": [\n \"Schnorr scalar `s`.\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"rx\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"ry_parity\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"commitment_addr\",\n \"docs\": [\n \"Ethereum-style 20-byte commitment address of the aggregate nonce `R`.\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 20\n ]\n }\n },\n {\n \"name\": \"signers_bitmap\",\n \"docs\": [\n \"The credited set.\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"Delegate\",\n \"docs\": [\n \"Owner-scoped delegate authorization with persistent request quotas.\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"delegate\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"status\",\n \"docs\": [\n \"Owner pause / protocol freeze backstop.\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"AgentStatus\"\n }\n }\n },\n {\n \"name\": \"max_data_requests\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"data_requests_used\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_signers\",\n \"docs\": [\n \"Per-delegate quorum ceiling; clamped to `plan.max_signers` at creation.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"epoch_cap\",\n \"docs\": [\n \"Dormant: per-epoch credit ceiling for the future credit economy. Not enforced.\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"epoch_spent\",\n \"docs\": [\n \"Dormant: credits spent in the current epoch. Not enforced.\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"epoch_id\",\n \"docs\": [\n \"Dormant: epoch discriminator for `epoch_spent`. Not enforced.\"\n ],\n \"type\": \"i64\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"DelegateAdded\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"delegate\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"max_data_requests\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_signers\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"delegate_count\",\n \"docs\": [\n \"Subscription delegate count after this addition.\"\n ],\n \"type\": \"u32\"\n }\n ]\n }\n },\n {\n \"name\": \"DelegateRemoved\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"delegate\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"data_requests_used\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"delegate_count\",\n \"docs\": [\n \"Subscription delegate count after this removal.\"\n ],\n \"type\": \"u32\"\n }\n ]\n }\n },\n {\n \"name\": \"DelegateStatusChanged\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"delegate_account\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"delegate\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"old_status\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"new_status\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"by\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"Feed\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"feed_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"value\",\n \"docs\": [\n \"Stored oracle bytes: raw payload (`FeedValueKind::Value`) or keccak digest\",\n \"(`FeedValueKind::Hash`). Never longer than [`Feed::STORED_VALUE_LEN`].\"\n ],\n \"type\": \"bytes\"\n },\n {\n \"name\": \"value_kind\",\n \"type\": {\n \"defined\": {\n \"name\": \"FeedValueKind\"\n }\n }\n },\n {\n \"name\": \"canonical_timestamp\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"signatures_required\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"signers_bitmap\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"FeedUpdated\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"feed_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"canonical_timestamp\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"value\",\n \"docs\": [\n \"Compacted payload stored on the feed (raw ≤32 bytes, or keccak digest).\"\n ],\n \"type\": \"bytes\"\n },\n {\n \"name\": \"value_kind\",\n \"type\": {\n \"defined\": {\n \"name\": \"FeedValueKind\"\n }\n }\n },\n {\n \"name\": \"signers_bitmap\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"last_updated_slot\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"FeedValueKind\",\n \"docs\": [\n \"Whether [`Feed::value`] holds the raw oracle payload or a digest of a longer payload.\"\n ],\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Value\"\n },\n {\n \"name\": \"Hash\"\n }\n ]\n }\n },\n {\n \"name\": \"Gateway\",\n \"docs\": [\n \"Bonded, Ed25519-signing gateway (v0.2 spec `gateway.authority`).\",\n \"\",\n \"Holds endpoint metadata, bond, and reward accounting. Keyed by the gateway's Solana\",\n \"authority key. `index` is the `gateway_index` referenced by `GatewayReceipt`.\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"index\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"ip\",\n \"type\": {\n \"array\": [\n \"u8\",\n 4\n ]\n }\n },\n {\n \"name\": \"port\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"bond\",\n \"docs\": [\n \"USDC bond held in the protocol treasury, slashable on a successful dispute.\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"claimable_rewards\",\n \"docs\": [\n \"Finalized fees, withdrawable via `claim_gateway_rewards`.\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"slashed\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"registered_at\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"GatewayRegistered\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"ip\",\n \"type\": {\n \"array\": [\n \"u8\",\n 4\n ]\n }\n },\n {\n \"name\": \"port\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"bond\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"registered_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"InitializeArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"registry_cooldown_secs\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"previous_grace_secs\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"withdrawal_cooldown_secs\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"max_node_count\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"redundancy_buffer\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"minimum_node_deposit\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_per_signature\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"gateway_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"receipt_submitter_bonus\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"protocol_fee_bps\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"max_receipt_delay_slots\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"protocol_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"dispute_window_slots\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"gateway_bond_min\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"challenger_bounty_bps\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"usdc_mint\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"agent_round_base\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"agent_round_per_sig\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"agent_epoch_len_secs\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"Node\",\n \"docs\": [\n \"Slot-keyed registry entry and the single account touched by the round workflows.\",\n \"\",\n \"Keyed by `index` (`[SEED_PREFIX, index_le]`), it carries the node's registry slot, the\",\n \"secp256k1 coalition key used for Schnorr verification, and the reward balances accrued during\",\n \"settlement/finalization. Management/lifecycle data lives on the owner-keyed [`NodeOperator`].\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"index\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"owner\",\n \"docs\": [\n \"Operator wallet — used for claim authorization and deactivate validation.\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"secp256k1_pubkey_x\",\n \"docs\": [\n \"Validated affine coordinates. `register_node` is the only write path and accepts only a\",\n \"canonical compressed secp256k1 point, so verifier hot paths may safely skip re-parsing.\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"secp256k1_pubkey_y\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"claimable_rewards\",\n \"docs\": [\n \"Finalized rewards, withdrawable via `claim_node_rewards`.\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"NodeDeactivated\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"removed_index\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"moved_node\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"moved_old_index_or_virtual\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"current_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"deactivated_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"NodeEndpointUpdated\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"current_index\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"ip\",\n \"type\": {\n \"array\": [\n \"u8\",\n 4\n ]\n }\n },\n {\n \"name\": \"port\",\n \"type\": \"u16\"\n }\n ]\n }\n },\n {\n \"name\": \"NodeOperator\",\n \"docs\": [\n \"Owner-keyed management/lifecycle account for a node operator.\",\n \"\",\n \"Keyed by `owner` (`[SEED_PREFIX, owner]`), it holds registration, deposit, status, and\",\n \"connectivity data — everything that is *not* needed by the per-round workflows. The workflow\",\n \"data (registry slot, coalition key, reward balances) lives on the slot-keyed [`super::Node`].\",\n \"`claimable_rewards` is the landing bucket for rewards migrated out of the virtual slot when a\",\n \"removal transition is finalized; it lets a deactivated operator still claim.\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"current_index\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"status\",\n \"type\": {\n \"defined\": {\n \"name\": \"NodeStatus\"\n }\n }\n },\n {\n \"name\": \"ip\",\n \"type\": {\n \"array\": [\n \"u8\",\n 4\n ]\n }\n },\n {\n \"name\": \"port\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"locked_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"claimable_rewards\",\n \"docs\": [\n \"Rewards migrated from the virtual slot at transition close, withdrawable via\",\n \"`claim_node_rewards` after deactivation.\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"registered_at\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"deactivated_at\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"withdrawable_at\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"NodeRegistered\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"node_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"new_index\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"ip\",\n \"type\": {\n \"array\": [\n \"u8\",\n 4\n ]\n }\n },\n {\n \"name\": \"port\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"current_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"security_deposit\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"registered_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"NodeSlotFinalized\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"node_index\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"old_status\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"new_status\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"finalized_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"NodeStatus\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Active\"\n },\n {\n \"name\": \"Deactivated\"\n },\n {\n \"name\": \"Slashed\"\n },\n {\n \"name\": \"Exited\"\n }\n ]\n }\n },\n {\n \"name\": \"Plan\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"plan_type\",\n \"type\": {\n \"defined\": {\n \"name\": \"PlanType\"\n }\n }\n },\n {\n \"name\": \"subscription_price\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_signers\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"max_delegates\",\n \"docs\": [\n \"Max delegates/agents an owner on this plan may provision.\"\n ],\n \"type\": \"u32\"\n },\n {\n \"name\": \"private_api_enabled\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"is_active\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"PlanAdded\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"plan_type\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"subscription_price\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_signers\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"max_delegates\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"private_api_enabled\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"is_active\",\n \"type\": \"bool\"\n }\n ]\n }\n },\n {\n \"name\": \"PlanType\",\n \"repr\": {\n \"kind\": \"rust\"\n },\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Basic\"\n },\n {\n \"name\": \"Standard\"\n },\n {\n \"name\": \"Professional\"\n },\n {\n \"name\": \"Enterprise\"\n }\n ]\n }\n },\n {\n \"name\": \"PlanUpdated\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"plan_type\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"subscription_price\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_signers\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"max_delegates\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"private_api_enabled\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"is_active\",\n \"type\": \"bool\"\n }\n ]\n }\n },\n {\n \"name\": \"ProtocolConfig\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"usdc_mint\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"treasury\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"reward_per_signature\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"gateway_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"receipt_submitter_bonus\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"protocol_fee_bps\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"max_receipt_delay_slots\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"protocol_fee\",\n \"docs\": [\n \"Fixed protocol fee per settled round (v0.2 §4.2 / §6).\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"dispute_window_slots\",\n \"docs\": [\n \"Slots a settled round must wait before `finalize_round` can run (dispute window).\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"gateway_bond_min\",\n \"docs\": [\n \"Minimum USDC bond a gateway must post to settle receipts.\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"challenger_bounty_bps\",\n \"docs\": [\n \"Challenger reward, in bps of the slashed bond, on a successful dispute.\"\n ],\n \"type\": \"u16\"\n },\n {\n \"name\": \"registry_cooldown_secs\",\n \"docs\": [\n \"Monotonic counter assigning `gateway_index` to bonded gateways.\"\n ],\n \"type\": \"i64\"\n },\n {\n \"name\": \"previous_grace_secs\",\n \"docs\": [\n \"Grace period after activation during which the previous registry version remains valid.\"\n ],\n \"type\": \"i64\"\n },\n {\n \"name\": \"max_node_count\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"redundancy_buffer\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"minimum_node_deposit\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"withdrawal_cooldown_secs\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"agent_round_base\",\n \"docs\": [\n \"Base price of an agent `FreshRound` request (USDC atomic units).\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"agent_round_per_sig\",\n \"docs\": [\n \"Per-required-signature price component of a `FreshRound` request.\",\n \"Solvency invariant (ops-enforced): `agent_round_per_sig >= reward_per_signature`\",\n \"and `agent_round_base >= redundancy_buffer * reward_per_signature + gateway_fee`.\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"agent_epoch_len_secs\",\n \"docs\": [\n \"Length of the agent spend epoch (e.g. 86_400 for daily); must be > 0.\"\n ],\n \"type\": \"i64\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"ProtocolConfigUpdated\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"reward_per_signature\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"gateway_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"receipt_submitter_bonus\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"protocol_fee_bps\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"max_receipt_delay_slots\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"protocol_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"dispute_window_slots\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"gateway_bond_min\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"challenger_bounty_bps\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"registry_cooldown_secs\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"previous_grace_secs\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"max_node_count\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"redundancy_buffer\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"minimum_node_deposit\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"withdrawal_cooldown_secs\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"agent_round_base\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"agent_round_per_sig\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"agent_epoch_len_secs\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"ProtocolInitialized\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"protocol_config\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"registry_state\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"treasury\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"usdc_mint\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"initialized_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"RegisterGatewayArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"ip\",\n \"type\": {\n \"array\": [\n \"u8\",\n 4\n ]\n }\n },\n {\n \"name\": \"port\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"bond_amount\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"RegisterNodeArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"registration_salt\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"ip\",\n \"type\": {\n \"array\": [\n \"u8\",\n 4\n ]\n }\n },\n {\n \"name\": \"port\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"secp256k1_pubkey_compressed\",\n \"type\": {\n \"array\": [\n \"u8\",\n 33\n ]\n }\n },\n {\n \"name\": \"secp256k1_key_fingerprint\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"pop_sig_r\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"pop_sig_s\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"RegistryState\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"current_node_count\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"grace_secs\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"redundancy_buffer\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"current_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"previous_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"previous_expires_at\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"previous_node_count\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"last_transition_type\",\n \"type\": {\n \"defined\": {\n \"name\": \"RegistryTransitionType\"\n }\n }\n },\n {\n \"name\": \"removed_old_index\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"removed_node\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"moved_old_index\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"moved_node\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"RegistryTransitionType\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"None\"\n },\n {\n \"name\": \"Add\"\n },\n {\n \"name\": \"RemoveTail\"\n },\n {\n \"name\": \"RemoveSwap\"\n }\n ]\n }\n },\n {\n \"name\": \"RegistryVersionActivated\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"previous_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"active_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"previous_expires_at\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"activated_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"RemoveDelegateArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"delegate\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"RewardsClaimed\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"beneficiary\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"destination\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"RoundDisputed\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"feed_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"gateway\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"slashed_bond\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"challenger_bounty\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"RoundFinalized\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"feed_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"credited_count\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"finalized_slot\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"RoundReceiptRecord\",\n \"docs\": [\n \"Per-round settlement record.\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"feed_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"signatures_required\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"signers_bitmap\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"agg_sig_hash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"data_update_message_hash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"gateway\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"reward_per_signature\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"gateway_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"recorded_slot\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"status\",\n \"type\": {\n \"defined\": {\n \"name\": \"RoundRecordStatus\"\n }\n }\n },\n {\n \"name\": \"price\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"RoundRecordStatus\",\n \"repr\": {\n \"kind\": \"rust\"\n },\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Pending\"\n },\n {\n \"name\": \"Finalized\"\n },\n {\n \"name\": \"Voided\"\n }\n ]\n }\n },\n {\n \"name\": \"RoundSettled\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"gateway\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"feed_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"signers_bitmap\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"credited_count\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"reward_per_signature\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"gateway_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"recorded_slot\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"Secp256k1KeyClaim\",\n \"docs\": [\n \"Permanent reservation for a secp256k1 node key.\",\n \"\",\n \"The PDA is keyed by `keccak256(compressed_pubkey)`. Claims are intentionally never closed:\",\n \"once a key has represented a Molpha node it cannot later be replayed for another identity.\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"claimed\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"key_fingerprint\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"secp256k1_pubkey_compressed\",\n \"type\": {\n \"array\": [\n \"u8\",\n 33\n ]\n }\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"node_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"SettleAgentRoundArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"api_config_hash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"canonical_timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"signatures_required\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"agg_sig\",\n \"type\": {\n \"defined\": {\n \"name\": \"AggregatedSig\"\n }\n }\n },\n {\n \"name\": \"value\",\n \"type\": \"bytes\"\n }\n ]\n }\n },\n {\n \"name\": \"SettleRoundArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"api_config_hash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"signatures_required\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"agg_sig\",\n \"type\": {\n \"defined\": {\n \"name\": \"AggregatedSig\"\n }\n }\n },\n {\n \"name\": \"value\",\n \"type\": \"bytes\"\n },\n {\n \"name\": \"consumer_authority\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"SubmitDataUpdateArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"feed_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"value\",\n \"type\": \"bytes\"\n },\n {\n \"name\": \"canonical_timestamp\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"signatures_required\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"agg_sig_s\",\n \"docs\": [\n \"Schnorr signature R component\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"commitment_addr\",\n \"type\": {\n \"array\": [\n \"u8\",\n 20\n ]\n }\n },\n {\n \"name\": \"signers_bitmap\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"Subscribed\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"plan_type\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"prepaid_usdc\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"price_snapshot\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"valid_until\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"Subscription\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"plan_type\",\n \"type\": {\n \"defined\": {\n \"name\": \"PlanType\"\n }\n }\n },\n {\n \"name\": \"prepaid_usdc\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"price\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"valid_until\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"used_rounds\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_rounds\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"delegate_count\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"max_delegates\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"max_signers\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"SubscriptionExtended\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"plan_type\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"prepaid_usdc\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"valid_until\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"SubscriptionVaultWithdrawn\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"destination\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"UpdateConfigArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"registry_cooldown_secs\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"previous_grace_secs\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"withdrawal_cooldown_secs\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"max_node_count\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"redundancy_buffer\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"minimum_node_deposit\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_per_signature\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"gateway_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"receipt_submitter_bonus\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"protocol_fee_bps\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"max_receipt_delay_slots\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"protocol_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"dispute_window_slots\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"gateway_bond_min\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"challenger_bounty_bps\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"agent_round_base\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"agent_round_per_sig\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"agent_epoch_len_secs\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"UpdateNodeEndpointArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"ip\",\n \"type\": {\n \"array\": [\n \"u8\",\n 4\n ]\n }\n },\n {\n \"name\": \"port\",\n \"type\": \"u16\"\n }\n ]\n }\n },\n {\n \"name\": \"UpdatePlanArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"plan_type\",\n \"type\": {\n \"defined\": {\n \"name\": \"PlanType\"\n }\n }\n },\n {\n \"name\": \"subscription_price\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_signers\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"max_delegates\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"private_api_enabled\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"is_active\",\n \"type\": \"bool\"\n }\n ]\n }\n }\n ]\n}","import type { Idl } from \"@anchor-lang/core\";\nimport idlJson from \"./molpha.json\" with { type: \"json\" };\n\n/**\n * Vendored Molpha Anchor IDL (`target/idl/molpha.json` from the program repo).\n *\n * Re-exported as `MOLPHA_IDL` and used as the default in `MolphaSDK` /\n * `MolphaSolanaClient.create`. Pass `idl` / `programId` only when pinning a\n * different deployment. Keep this copy aligned with the on-chain program you target.\n */\nexport const MOLPHA_IDL = idlJson as Idl;\n\n/** Program address baked into the vendored IDL. */\nexport const MOLPHA_PROGRAM_ADDRESS: string = idlJson.address;\n","/** On-chain subscription plan (`PlanType` in the Molpha program IDL). */\nexport enum PlanType {\n Basic = 0,\n // Standard = 1,\n // Professional = 2,\n // Enterprise = 3,\n}\n\n/** Numeric plan index used for PDA derivation and on-chain reads. */\nexport type PlanId = 0 | 1 | 2 | 3;\n\nconst PLAN_VARIANTS = [\n { basic: {} },\n { standard: {} },\n { professional: {} },\n { enterprise: {} },\n] as const;\n\nexport function planVariant(planId: PlanId): (typeof PLAN_VARIANTS)[number] {\n return PLAN_VARIANTS[planId];\n}\n\nexport function planIdFromVariant(variant: Record<string, unknown>): PlanId {\n const key = Object.keys(variant)[0]?.toLowerCase();\n const idx = [\"basic\", \"standard\", \"professional\", \"enterprise\"].indexOf(key ?? \"\");\n if (idx < 0) throw new Error(`Unknown plan variant: ${JSON.stringify(variant)}`);\n return idx as PlanId;\n}\n","/**\n * `MolphaSolanaClient` — consumer on-chain surface only (subscribe, extend,\n * submitDataUpdate, readFeed/readPlan/readSubscription,\n * getRegistrySelectionConfig, verifyNodeKeysForPrivateApi). Built from an\n * Anchor `Program` over the vendored IDL.\n */\nimport {\n AnchorProvider,\n Program,\n type Idl,\n type Wallet,\n} from \"@anchor-lang/core\";\nimport BN from \"bn.js\";\nimport type { Address } from \"@solana/kit\";\nimport { hexToBytes, toFixedBytes } from \"../core/encoding.js\";\nimport {\n normalizeSecp256k1PublicKeyHex,\n secp256k1PublicKeyFromCoordinates,\n} from \"../core/nodeKeys.js\";\nimport type { DataUpdateResult, Node, NodeKeyVerifierArgs, RegistrySelectionConfig } from \"../core/types.js\";\nimport {\n type RegistryStateView,\n resolveRegistryIndexForVersion,\n resolveRemainingAccounts,\n} from \"./accounts.js\";\nimport {\n getAssociatedTokenAddressSync,\n setComputeUnitLimit,\n SYSTEM_PROGRAM_ADDRESS,\n TOKEN_PROGRAM_ADDRESS,\n toSolanaAddress,\n type SolanaAddress,\n type SolanaConnection,\n} from \"./kit.js\";\nimport {\n feedPda,\n nodePda,\n planPda,\n protocolConfigPda,\n registryStatePda,\n subscriptionPda,\n} from \"./pdas.js\";\nimport { MOLPHA_IDL, MOLPHA_PROGRAM_ADDRESS } from \"../../idl/index.js\";\nimport { PlanType, planIdFromVariant, planVariant, type PlanId } from \"./plans.js\";\n\nexport { PlanType, type PlanId } from \"./plans.js\";\n\nconst DEFAULT_COMPUTE_UNIT_LIMIT = 700_000;\ntype Commitment = NonNullable<ConstructorParameters<typeof AnchorProvider>[2]>[\"commitment\"];\n\nexport interface SubscribeResult {\n signature: string;\n /** USDC base units actually debited from the owner for this subscription. */\n pricePaid: bigint;\n}\n\nexport interface PlanInfo {\n planType: PlanType;\n /** Subscription price in USDC base units (raw u64, e.g. 1_000_000 = 1 USDC at 6 decimals). */\n subscriptionPrice: bigint;\n maxSigners: number;\n maxDelegates: number;\n privateApiEnabled: boolean;\n isActive: boolean;\n}\n\nexport interface SubscriptionInfo {\n owner: Address;\n planType: PlanType;\n /** USDC base units prepaid on the subscription vault. */\n prepaidUsdc: bigint;\n /** Locked subscription price in USDC base units for the current period. */\n price: bigint;\n /** Unix timestamp (seconds) until which the subscription is valid. */\n validUntil: bigint;\n usedRounds: bigint;\n maxRounds: bigint;\n delegateCount: number;\n maxDelegates: number;\n maxSigners: number;\n}\n\nexport interface SubmitResult {\n signature: string;\n}\n\nexport interface FeedAccount {\n feedId: number[];\n value: number[];\n valueKind: { value: Record<string, never> } | { hash: Record<string, never> };\n canonicalTimestamp: BN;\n signaturesRequired: number;\n signersBitmap: number[];\n registryVersion: number;\n bump: number;\n}\n\ninterface NodeAccount {\n secp256k1PubkeyX?: Uint8Array | number[];\n secp256k1PubkeyY?: Uint8Array | number[];\n secp256k1_pubkey_x?: Uint8Array | number[];\n secp256k1_pubkey_y?: Uint8Array | number[];\n}\n\ninterface CreateClientOpts {\n connection: SolanaConnection;\n wallet: Wallet;\n programId?: SolanaAddress;\n idl?: Idl;\n commitment?: Commitment;\n}\n\nexport class MolphaSolanaClient {\n private constructor(\n private readonly program: Program,\n private readonly provider: AnchorProvider,\n readonly programId: Address,\n ) {}\n\n static create(opts: CreateClientOpts): MolphaSolanaClient {\n const programId = toSolanaAddress(opts.programId ?? MOLPHA_PROGRAM_ADDRESS);\n const provider = new AnchorProvider(opts.connection, opts.wallet, {\n commitment: opts.commitment ?? \"confirmed\",\n });\n // Anchor reads the program id from `idl.address`; override it so the\n // caller-supplied programId always wins without mutating the vendored copy.\n const idl: Idl = { ...(opts.idl ?? MOLPHA_IDL), address: programId };\n const program = new Program(idl, provider);\n return new MolphaSolanaClient(program, provider, programId);\n }\n\n private get wallet(): Address {\n return toSolanaAddress(this.provider.wallet.publicKey);\n }\n\n /** Anchor's method/account namespaces are untyped without an IDL type param. */\n private get methods(): any {\n return this.program.methods;\n }\n private get accounts(): any {\n return this.program.account;\n }\n\n /**\n * Current registry version and selection `redundancy_buffer` from a single\n * `RegistryState` account read. Prefer this over {@link getRegistryVersion}\n * when deriving gateway selection bitmaps.\n */\n async getRegistrySelectionConfig(): Promise<RegistrySelectionConfig> {\n const registry = await this.fetchRegistry();\n return {\n registryVersion: registry.currentVersion,\n redundancyBuffer: registry.redundancyBuffer,\n };\n }\n\n async getRegistryVersion(): Promise<number> {\n const { registryVersion } = await this.getRegistrySelectionConfig();\n return registryVersion;\n }\n\n /** Fetch a plan's on-chain terms, including the USDC `subscriptionPrice` charged on `subscribe`. */\n async getPlan(plan: PlanType): Promise<PlanInfo> {\n const info = await this.readPlan(plan);\n if (!info) {\n throw new Error(`plan account not found for ${PlanType[plan] ?? plan}`);\n }\n return info;\n }\n\n /** Read a plan account, or `null` if it has not been initialized. */\n async readPlan(plan: PlanType): Promise<PlanInfo | null> {\n const account = await this.accounts.plan.fetchNullable(planPda(plan as PlanId, this.programId));\n return account ? this.decodePlan(account) : null;\n }\n\n /** Read an owner's subscription, or `null` if they have not subscribed. */\n async readSubscription(owner: SolanaAddress = this.wallet): Promise<SubscriptionInfo | null> {\n const account = await this.accounts.subscription.fetchNullable(\n subscriptionPda(owner, this.programId),\n );\n if (!account) return null;\n return {\n owner: toSolanaAddress(account.owner),\n planType: planIdFromVariant(account.planType) as unknown as PlanType,\n prepaidUsdc: BigInt(account.prepaidUsdc.toString()),\n price: BigInt(account.price.toString()),\n validUntil: BigInt(account.validUntil.toString()),\n usedRounds: BigInt(account.usedRounds.toString()),\n maxRounds: BigInt(account.maxRounds.toString()),\n delegateCount: account.delegateCount,\n maxDelegates: account.maxDelegates,\n maxSigners: account.maxSigners,\n };\n }\n\n /**\n * Subscribe to a plan. This **debits USDC** from the owner: the plan's\n * `subscriptionPrice` is transferred to the protocol treasury on-chain.\n *\n * Payment is explicit and must be confirmed: pass `maxPriceUsdc` (USDC base\n * units) as the most you agree to pay. The SDK reads the live on-chain price\n * and aborts before sending the transaction if it exceeds that amount, so a\n * price change between display and confirmation can never silently overcharge.\n * The amount actually paid is returned as `pricePaid`.\n *\n * Use {@link getPlan} to display the current price to the user beforehand.\n */\n async subscribe(\n plan: PlanType,\n opts: { maxPriceUsdc: bigint | number | BN; ownerUsdc?: SolanaAddress },\n ): Promise<SubscribeResult> {\n const planId = plan as PlanId;\n const owner = this.wallet;\n const { usdcMint, treasury } = await this.fetchProtocolTokens();\n const price = await this.confirmPlanPrice(planId, opts.maxPriceUsdc, \"subscribe\");\n const ownerUsdc = opts.ownerUsdc ?? getAssociatedTokenAddressSync(usdcMint, owner);\n\n const signature = await this.methods\n .subscribe(planVariant(planId))\n .accounts({\n owner,\n protocolConfig: protocolConfigPda(this.programId),\n plan: planPda(planId, this.programId),\n subscription: subscriptionPda(owner, this.programId),\n usdcMint,\n ownerUsdc,\n treasury,\n systemProgram: SYSTEM_PROGRAM_ADDRESS,\n tokenProgram: TOKEN_PROGRAM_ADDRESS,\n })\n .rpc();\n return { signature, pricePaid: price };\n }\n\n /**\n * Extend the current subscription for another period. Like {@link subscribe}\n * this **debits USDC** (the plan's `subscriptionPrice`) and requires explicit\n * payment confirmation via `maxPriceUsdc`.\n */\n async extendSubscription(\n opts: { maxPriceUsdc: bigint | number | BN; ownerUsdc?: SolanaAddress },\n ): Promise<SubscribeResult> {\n const owner = this.wallet;\n const subscription = subscriptionPda(owner, this.programId);\n const sub = await this.accounts.subscription.fetch(subscription);\n const planId = planIdFromVariant(sub.planType);\n const { usdcMint, treasury } = await this.fetchProtocolTokens();\n const price = await this.confirmPlanPrice(planId, opts.maxPriceUsdc, \"extendSubscription\");\n const ownerUsdc = opts.ownerUsdc ?? getAssociatedTokenAddressSync(usdcMint, owner);\n\n const signature = await this.methods\n .extendSubscription()\n .accounts({\n owner,\n protocolConfig: protocolConfigPda(this.programId),\n subscription,\n plan: planPda(planId, this.programId),\n usdcMint,\n ownerUsdc,\n treasury,\n tokenProgram: TOKEN_PROGRAM_ADDRESS,\n })\n .rpc();\n return { signature, pricePaid: price };\n }\n\n /**\n * Read the live on-chain plan price and verify it does not exceed the amount\n * the caller agreed to pay. Returns the price (USDC base units) on success.\n */\n private async confirmPlanPrice(\n planId: PlanId,\n maxPriceUsdc: bigint | number | BN,\n method: string,\n ): Promise<bigint> {\n const max = toUsdcBaseUnits(maxPriceUsdc, \"maxPriceUsdc\");\n const plan = await this.accounts.plan.fetch(planPda(planId, this.programId));\n const price = BigInt(plan.subscriptionPrice.toString());\n if (price > max) {\n throw new Error(\n `${method}: plan price ${price} USDC base units exceeds the confirmed maximum ${max}. ` +\n \"The on-chain price may have changed — re-confirm the current price before paying.\",\n );\n }\n return price;\n }\n\n async submitDataUpdate(\n result: DataUpdateResult,\n opts?: { computeUnitLimit?: number },\n ): Promise<SubmitResult> {\n const registry = await this.fetchRegistry();\n const feedId = hexToBytes(result.feedId);\n const remaining = resolveRemainingAccounts(result, registry, this.programId);\n const cuIx = setComputeUnitLimit(opts?.computeUnitLimit ?? DEFAULT_COMPUTE_UNIT_LIMIT);\n\n const signature = await this.methods\n .submitDataUpdate(this.buildSubmitArgs(result))\n .accounts({\n submitter: this.wallet,\n registryState: registryStatePda(this.programId),\n feed: feedPda(feedId, this.programId),\n systemProgram: SYSTEM_PROGRAM_ADDRESS,\n })\n .remainingAccounts(remaining)\n .preInstructions([cuIx])\n .rpc();\n return { signature };\n }\n\n async readFeed(feedId: string): Promise<FeedAccount | null> {\n const feed = feedPda(hexToBytes(feedId), this.programId);\n return (await this.accounts.feed.fetchNullable(feed)) as FeedAccount | null;\n }\n\n /**\n * Authenticate gateway-provided private API encryption keys against the\n * on-chain Node accounts for the round's registry version.\n */\n async verifyNodeKeysForPrivateApi(args: NodeKeyVerifierArgs): Promise<void> {\n const registry = await this.fetchRegistry();\n const selectedNodes = selectedNodesForVerifier(args);\n\n await Promise.all(\n selectedNodes.map(async (node) => {\n const registryIndex = resolveRegistryIndexForVersion(\n node.index,\n args.registryVersion,\n registry,\n );\n const account = await this.fetchNodeAccount(registryIndex, node.index);\n const onChainKey = secp256k1PublicKeyFromCoordinates(\n nodeCoordinate(account, \"secp256k1PubkeyX\", \"secp256k1_pubkey_x\"),\n nodeCoordinate(account, \"secp256k1PubkeyY\", \"secp256k1_pubkey_y\"),\n `Node(${registryIndex}) secp256k1 public key`,\n );\n const gatewayKey = normalizeSecp256k1PublicKeyHex(\n node.signingKey,\n `Gateway selected node ${node.index} signingKey`,\n );\n if (gatewayKey !== onChainKey) {\n throw new Error(\n `Gateway selected node ${node.index} signingKey does not match on-chain Node(${registryIndex})`,\n );\n }\n }),\n );\n }\n\n private buildSubmitArgs(result: DataUpdateResult) {\n return {\n feedId: Array.from(hexToBytes(result.feedId)),\n registryVersion: result.registryVersion,\n value: Buffer.from(hexToBytes(result.valuePacked)),\n canonicalTimestamp: new BN(result.timestamp),\n signaturesRequired: result.signaturesRequired,\n aggSigS: Array.from(toFixedBytes(result.s, 32, \"s\")),\n commitmentAddr: Array.from(toFixedBytes(result.commitmentAddr, 20, \"commitmentAddr\")),\n signersBitmap: Array.from(toFixedBytes(result.signersBitmap, 32, \"signersBitmap\")),\n };\n }\n\n private decodePlan(account: {\n planType: Record<string, unknown>;\n subscriptionPrice: { toString(): string };\n maxSigners: number;\n maxDelegates: number;\n privateApiEnabled: boolean;\n isActive: boolean;\n }): PlanInfo {\n return {\n planType: planIdFromVariant(account.planType) as unknown as PlanType,\n subscriptionPrice: BigInt(account.subscriptionPrice.toString()),\n maxSigners: account.maxSigners,\n maxDelegates: account.maxDelegates,\n privateApiEnabled: account.privateApiEnabled,\n isActive: account.isActive,\n };\n }\n\n private async fetchRegistry(): Promise<RegistryStateView> {\n const registry = await this.accounts.registryState.fetch(\n registryStatePda(this.programId),\n );\n return {\n currentVersion: registry.currentVersion,\n previousVersion: registry.previousVersion,\n previousExpiresAt: BigInt(registry.previousExpiresAt.toString()),\n redundancyBuffer: registry.redundancyBuffer,\n lastTransitionType: registry.lastTransitionType,\n removedOldIndex: registry.removedOldIndex,\n movedOldIndex: registry.movedOldIndex,\n };\n }\n\n private async fetchNodeAccount(\n registryIndex: number,\n selectedNodeIndex: number,\n ): Promise<NodeAccount> {\n try {\n return await this.accounts.node.fetch(nodePda(registryIndex, this.programId));\n } catch (err) {\n const detail = err instanceof Error ? err.message : String(err);\n throw new Error(\n `Failed to fetch on-chain Node(${registryIndex}) for selected node ${selectedNodeIndex}: ${detail}`,\n );\n }\n }\n\n private async fetchProtocolTokens(): Promise<{ usdcMint: Address; treasury: Address }> {\n const config = await this.accounts.protocolConfig.fetch(\n protocolConfigPda(this.programId),\n );\n return {\n usdcMint: toSolanaAddress(config.usdcMint),\n treasury: toSolanaAddress(config.treasury),\n };\n }\n}\n\n/** Normalize a confirmed USDC amount (base units) to `bigint`, rejecting non-integers. */\nfunction toUsdcBaseUnits(amount: bigint | number | BN, label: string): bigint {\n if (typeof amount === \"bigint\") {\n if (amount < 0n) throw new Error(`${label} must be non-negative, got ${amount}`);\n return amount;\n }\n if (typeof amount === \"number\") {\n if (!Number.isInteger(amount) || amount < 0) {\n throw new Error(`${label} must be a non-negative integer of USDC base units, got ${amount}`);\n }\n return BigInt(amount);\n }\n return BigInt(amount.toString());\n}\n\nfunction nodeCoordinate(\n account: NodeAccount,\n camelCaseField: \"secp256k1PubkeyX\" | \"secp256k1PubkeyY\",\n snakeCaseField: \"secp256k1_pubkey_x\" | \"secp256k1_pubkey_y\",\n): Uint8Array {\n const value = account[camelCaseField] ?? account[snakeCaseField];\n if (!(value instanceof Uint8Array) && !Array.isArray(value)) {\n throw new Error(`Node account is missing ${camelCaseField}`);\n }\n return toFixedBytes(Uint8Array.from(value), 32, `Node.${camelCaseField}`);\n}\n\nfunction selectedNodesForVerifier(args: NodeKeyVerifierArgs): Node[] {\n if (args.selectedIndexes.length === 0) {\n throw new Error(\"Private API node-key verification requires at least one selected index\");\n }\n if (args.selectedNodes.length !== args.selectedIndexes.length) {\n throw new Error(\n `Private API node-key verification expected ${args.selectedIndexes.length} selected nodes, got ${args.selectedNodes.length}`,\n );\n }\n\n const expected = new Set<number>();\n for (const index of args.selectedIndexes) {\n if (!Number.isInteger(index) || index < 0) {\n throw new Error(`Private API selected index must be a non-negative integer: ${index}`);\n }\n if (expected.has(index)) {\n throw new Error(`Private API selected index is duplicated: ${index}`);\n }\n expected.add(index);\n }\n\n const byIndex = new Map<number, Node>();\n for (const node of args.selectedNodes) {\n if (!Number.isInteger(node.index) || node.index < 0) {\n throw new Error(\n `Private API selected node index must be a non-negative integer: ${node.index}`,\n );\n }\n if (!expected.has(node.index)) {\n throw new Error(`Private API selected node ${node.index} was not requested`);\n }\n if (byIndex.has(node.index)) {\n throw new Error(`Private API selected node index is duplicated: ${node.index}`);\n }\n byIndex.set(node.index, node);\n }\n\n return args.selectedIndexes.map((index) => {\n const node = byIndex.get(index);\n if (!node) {\n throw new Error(`Private API selected node is missing for index: ${index}`);\n }\n return node;\n });\n}\n","/**\n * Feed-id derivation. Must stay byte-identical with the Solana program and the EVM\n * verifier — this encodes what the *program* verifies (the 4-field `feedId`), not\n * the richer form described in the protocol spec doc.\n */\nimport { keccak_256 } from \"@noble/hashes/sha3.js\";\nimport { bytesToHex, concatBytes, ensureLength, utf8 } from \"./encoding.js\";\n\nconst FEED_ID_PREFIX = utf8(\"MOLPHA_JOB_V1\");\n\n/**\n * `feedId = keccak256(FEED_ID_PREFIX || owner || apiConfigHash || [signaturesRequired])`.\n * @param owner 32-byte owner pubkey.\n * @param apiConfigHash 32-byte API config hash.\n * @param signaturesRequired Per-feed quorum threshold (u8 on-chain).\n */\nexport function deriveFeedId(\n owner: Uint8Array,\n apiConfigHash: Uint8Array,\n signaturesRequired: number,\n): Uint8Array {\n ensureLength(owner, 32, \"owner\");\n ensureLength(apiConfigHash, 32, \"apiConfigHash\");\n if (!Number.isInteger(signaturesRequired) || signaturesRequired < 0 || signaturesRequired > 255) {\n throw new RangeError(`signaturesRequired out of range: ${signaturesRequired}`);\n }\n return keccak_256(\n concatBytes(FEED_ID_PREFIX, owner, apiConfigHash, Uint8Array.of(signaturesRequired)),\n );\n}\n\n/** Hex-encoded `deriveFeedId` (64 lowercase hex chars). */\nexport function deriveFeedIdString(\n owner: Uint8Array,\n apiConfigHash: Uint8Array,\n signaturesRequired: number,\n): string {\n return bytesToHex(deriveFeedId(owner, apiConfigHash, signaturesRequired));\n}\n","/**\n * Minimal Molpha verifier ABI for `verify` and registry reads.\n * Matches `IValidator` in the Molpha EVM contracts repo.\n */\nexport const MOLPHA_VERIFIER_ABI = [\n {\n type: \"function\",\n name: \"verify\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"dataUpdate\",\n type: \"tuple\",\n components: [\n { name: \"jobId\", type: \"bytes32\" },\n { name: \"registryVersion\", type: \"uint32\" },\n { name: \"signaturesRequired\", type: \"uint32\" },\n { name: \"value\", type: \"bytes32\" },\n { name: \"canonicalTimestamp\", type: \"uint64\" },\n ],\n },\n {\n name: \"schnorrData\",\n type: \"tuple\",\n components: [\n { name: \"signature\", type: \"bytes32\" },\n { name: \"commitment\", type: \"address\" },\n { name: \"signersBitmap\", type: \"uint256\" },\n ],\n },\n ],\n outputs: [{ name: \"\", type: \"bool\" }],\n },\n {\n type: \"function\",\n name: \"getRegistryVersion\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [{ name: \"registryVersion\", type: \"uint256\" }],\n },\n] as const;\n","/**\n * Deployed Molpha verifier contract address on EVM chains.\n * Deployed via CREATE2 for the same address on every supported chain.\n */\n\n/** Supported EVM testnet identifiers (chain selection only). */\nexport type MolphaEvmNetwork =\n | \"evm-sepolia\"\n | \"arbitrum-sepolia\"\n | \"avalanche-fuji\"\n | \"bsc-testnet\";\n\n/** CREATE2 Molpha verifier address — identical on all supported EVM chains. */\nexport const MOLPHA_VERIFIER_ADDRESS =\n \"0xE1fd792b7E54e0C8F0Cd1c8055E446ff36d233eB\" as const;\n","/**\n * EVM verifier argument helpers — framework-agnostic tuple builders for\n * `verify(DataUpdate, SchnorrSignature)` on deployed Molpha verifier contracts.\n */\nimport { bigIntFromBytesBe, toFixedBytes } from \"../core/encoding.js\";\nimport type { DataUpdateResult } from \"../core/types.js\";\n\n/** `(bytes32 feedId, uint32 registryVersion, uint32 signaturesRequired, bytes32 valuePacked, uint64 timestamp)` */\nexport type EvmDataUpdateTuple = readonly [\n feedId: `0x${string}`,\n registryVersion: number,\n signaturesRequired: number,\n valuePacked: `0x${string}`,\n timestamp: number,\n];\n\n/** `(bytes32 s, address commitment, uint256 signersBitmap)` */\nexport type EvmSchnorrSignatureTuple = readonly [\n s: `0x${string}`,\n commitment: `0x${string}`,\n signersBitmap: bigint,\n];\n\nexport interface EvmVerifierArgs {\n dataUpdate: EvmDataUpdateTuple;\n signature: EvmSchnorrSignatureTuple;\n}\n\nfunction strip0x(value: string): string {\n return value.startsWith(\"0x\") || value.startsWith(\"0X\") ? value.slice(2) : value;\n}\n\nfunction stripOuterQuotes(value: string): string {\n const trimmed = value.trim();\n if (\n (trimmed.startsWith(\"'\") && trimmed.endsWith(\"'\")) ||\n (trimmed.startsWith('\"') && trimmed.endsWith('\"'))\n ) {\n return trimmed.slice(1, -1);\n }\n return trimmed;\n}\n\n/**\n * Normalize hex to a fixed-size `0x`-prefixed value.\n * Accepts optional `0x` prefix and surrounding quotes.\n */\nexport function toFixedHex(value: string, bytes: number, label: string): `0x${string}` {\n const clean = strip0x(stripOuterQuotes(value)).toLowerCase();\n if (clean.length !== bytes * 2) {\n throw new RangeError(\n `${label}: expected ${bytes} bytes (${bytes * 2} hex chars), got ${clean.length / 2}`,\n );\n }\n return `0x${clean}`;\n}\n\n/** Convert a 32-byte hex bitmap to a `uint256` bigint (big-endian). */\nexport function signersBitmapToUint256(value: string): bigint {\n const bytes = toFixedBytes(toFixedHex(value, 32, \"signersBitmap\"), 32, \"signersBitmap\");\n return bigIntFromBytesBe(bytes);\n}\n\n/** Build verifier `DataUpdate` and `SchnorrSignature` tuples from a gateway result. */\nexport function buildEvmVerifierArgs(result: DataUpdateResult): EvmVerifierArgs {\n const dataUpdate: EvmDataUpdateTuple = [\n toFixedHex(result.feedId, 32, \"feedId\"),\n result.registryVersion,\n result.signaturesRequired,\n toFixedHex(result.valuePacked, 32, \"valuePacked\"),\n result.timestamp,\n ];\n\n const signature: EvmSchnorrSignatureTuple = [\n toFixedHex(result.s, 32, \"signature\"),\n toFixedHex(result.commitmentAddr, 20, \"commitment\"),\n signersBitmapToUint256(result.signersBitmap),\n ];\n\n return { dataUpdate, signature };\n}\n\n/** Decimal string form of the signers bitmap — useful for JSON logging or legacy tooling. */\nexport function signersBitmapToDecimal(value: string): string {\n return signersBitmapToUint256(value).toString();\n}\n","/**\n * Deployed Molpha verifier contract addresses on Starknet testnets.\n */\n\n/** Supported Starknet testnet identifiers. */\nexport type MolphaStarknetNetwork = \"starknet-sepolia\";\n\n/** Deployed verifier address on Starknet Sepolia. */\nexport const MOLPHA_VERIFIER_STARKNET_SEPOLIA =\n \"0x0378df4dbecf8f0c7daa801282932f7011c7a5e5773bab9eaf68f5fa5e7530ef\" as const;\n\n/** Network id -> deployed verifier address. */\nexport const MOLPHA_VERIFIER_STARKNET_ADDRESSES: Record<\n MolphaStarknetNetwork,\n `0x${string}`\n> = {\n \"starknet-sepolia\": MOLPHA_VERIFIER_STARKNET_SEPOLIA,\n};\n\n/** Resolve the deployed verifier address for a supported Starknet network. */\nexport function getMolphaStarknetVerifierAddress(\n network: MolphaStarknetNetwork,\n): `0x${string}` {\n return MOLPHA_VERIFIER_STARKNET_ADDRESSES[network];\n}\n","/**\n * Starknet verifier argument helpers — framework-agnostic struct builders for\n * `verify(DataUpdate, SchnorrSignature)` on deployed Molpha verifier contracts.\n */\nimport { bigIntFromBytesBe, toFixedBytes } from \"../core/encoding.js\";\nimport type { DataUpdateResult } from \"../core/types.js\";\n\n/** Starknet calldata shape for `DataUpdate`. */\nexport interface StarknetDataUpdate {\n feed_id: bigint;\n registry_version: number;\n signatures_required: number;\n value: bigint;\n canonical_timestamp: number;\n}\n\n/** Starknet calldata shape for `SchnorrSignature`. */\nexport interface StarknetSchnorrSignature {\n signature: bigint;\n commitment: bigint;\n signers_bitmap: bigint;\n}\n\nexport interface StarknetVerifierArgs {\n dataUpdate: StarknetDataUpdate;\n signature: StarknetSchnorrSignature;\n}\n\nfunction strip0x(value: string): string {\n return value.startsWith(\"0x\") || value.startsWith(\"0X\") ? value.slice(2) : value;\n}\n\nfunction stripOuterQuotes(value: string): string {\n const trimmed = value.trim();\n if (\n (trimmed.startsWith(\"'\") && trimmed.endsWith(\"'\")) ||\n (trimmed.startsWith('\"') && trimmed.endsWith('\"'))\n ) {\n return trimmed.slice(1, -1);\n }\n return trimmed;\n}\n\nfunction toStrictHex(value: string, bytes: number, label: string): `0x${string}` {\n const clean = strip0x(stripOuterQuotes(value)).toLowerCase();\n if (clean.length !== bytes * 2) {\n throw new RangeError(\n `${label}: expected ${bytes} bytes (${bytes * 2} hex chars), got ${clean.length / 2}`,\n );\n }\n return `0x${clean}`;\n}\n\nfunction fixedHexToBigInt(value: string, bytes: number, label: string): bigint {\n const hex = toStrictHex(value, bytes, label);\n const raw = toFixedBytes(hex, bytes, label);\n return bigIntFromBytesBe(raw);\n}\n\n/** Convert a 20-byte EVM-style address hex to a Starknet felt-compatible bigint. */\nexport function commitmentAddressToStarknetFelt(value: string): bigint {\n return fixedHexToBigInt(value, 20, \"commitment\");\n}\n\n/** Convert a 32-byte bitmap hex to a Starknet/Cairo `u256` bigint. */\nexport function signersBitmapToStarknetUint256(value: string): bigint {\n return fixedHexToBigInt(value, 32, \"signersBitmap\");\n}\n\n/** Build verifier `DataUpdate` and `SchnorrSignature` structs from a gateway result. */\nexport function buildStarknetVerifierArgs(result: DataUpdateResult): StarknetVerifierArgs {\n const dataUpdate: StarknetDataUpdate = {\n feed_id: fixedHexToBigInt(result.feedId, 32, \"feedId\"),\n registry_version: result.registryVersion,\n signatures_required: result.signaturesRequired,\n value: fixedHexToBigInt(result.valuePacked, 32, \"valuePacked\"),\n canonical_timestamp: result.timestamp,\n };\n\n const signature: StarknetSchnorrSignature = {\n signature: fixedHexToBigInt(result.s, 32, \"signature\"),\n commitment: commitmentAddressToStarknetFelt(result.commitmentAddr),\n signers_bitmap: signersBitmapToStarknetUint256(result.signersBitmap),\n };\n\n return { dataUpdate, signature };\n}\n","/**\n * `@molpha/sdk` — Consumer SDK public surface.\n *\n * The `MolphaSDK` facade wires the gateway and Solana clients together; consumers\n * who only read or only run gateway rounds can use `sdk.gateway` / `sdk.solana`\n * directly (or import `MolphaGateway` / `MolphaSolanaClient` standalone).\n */\nimport { address, type Address } from \"@solana/kit\";\nimport type { AnchorProvider, Idl } from \"@anchor-lang/core\";\nimport { type RequestSignedDataOptions, MolphaGateway } from \"./gateway/index.js\";\nimport { MolphaSolanaClient } from \"./solana/client.js\";\nimport type { DataUpdateResult } from \"./core/types.js\";\nimport { MOLPHA_IDL, MOLPHA_PROGRAM_ADDRESS } from \"../idl/index.js\";\nimport { gatewaySignerFromWallet, type MolphaWallet } from \"./wallet.js\";\nimport type { SolanaConnection } from \"./solana/kit.js\";\ntype Commitment = NonNullable<ConstructorParameters<typeof AnchorProvider>[2]>[\"commitment\"];\n\n// Public re-exports.\nexport * from \"./core/index.js\";\nexport * from \"./gateway/index.js\";\nexport * from \"./evm/index.js\";\nexport * from \"./starknet/index.js\";\nexport * from \"./solana/index.js\";\nexport { MOLPHA_IDL, MOLPHA_PROGRAM_ADDRESS } from \"../idl/index.js\";\nexport { gatewaySignerFromWallet, signerFromKeypair, type MolphaWallet } from \"./wallet.js\";\n\nexport interface MolphaSDKOptions {\n /** Defaults to `DEFAULT_GATEWAY_ENDPOINT`. Pass multiple URLs for failover. */\n endpoints?: string | string[];\n connection: SolanaConnection;\n /** On-chain txs + gateway auth (see `MolphaWallet`). */\n wallet: MolphaWallet;\n /** Defaults to the vendored IDL's program address. */\n programId?: Address | string;\n /** Defaults to `MOLPHA_IDL`. Override when pinning a different deployment. */\n idl?: Idl;\n commitment?: Commitment;\n}\n\nexport class MolphaSDK {\n readonly gateway: MolphaGateway;\n readonly solana: MolphaSolanaClient;\n\n constructor(opts: MolphaSDKOptions) {\n this.solana = MolphaSolanaClient.create({\n connection: opts.connection,\n wallet: opts.wallet,\n programId: opts.programId ?? address(MOLPHA_PROGRAM_ADDRESS),\n idl: opts.idl ?? MOLPHA_IDL,\n ...(opts.commitment ? { commitment: opts.commitment } : {}),\n });\n this.gateway = new MolphaGateway(\n opts.endpoints,\n () => this.solana.getRegistrySelectionConfig(),\n gatewaySignerFromWallet(opts.wallet),\n {\n defaultSubscriptionOwner: opts.wallet.publicKey.toBase58(),\n verifyNodeKeys: (args) => this.solana.verifyNodeKeysForPrivateApi(args),\n },\n );\n }\n\n /**\n * Request a threshold-signed data update from the gateway (against the current\n * on-chain registry version) and submit it to the feed.\n */\n async requestAndSubmit(\n feedId: string,\n opts: Omit<RequestSignedDataOptions, \"feedId\">,\n ): Promise<{ result: DataUpdateResult; signature: string }> {\n const result = await this.gateway.requestSignedData({ feedId, ...opts });\n const { signature } = await this.solana.submitDataUpdate(result);\n return { result, signature };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/encoding.ts","../src/core/apiconfig.ts","../src/core/constants.ts","../src/core/nodeKeys.ts","../src/core/selection.ts","../src/gateway/auth.ts","../src/gateway/encryption.ts","../src/gateway/identity.ts","../src/gateway/index.ts","../src/solana/accounts.ts","../src/solana/pdas.ts","../idl/molpha.json","../idl/index.ts","../src/solana/plans.ts","../src/solana/client.ts","../src/core/message.ts","../src/evm/abi.ts","../src/evm/constants.ts","../src/evm/helpers.ts","../src/starknet/constants.ts","../src/starknet/helpers.ts","../src/index.ts"],"names":["nobleUtf8ToBytes","nobleConcatBytes","nobleBytesToHex","nobleHexToBytes","keccak_256","secp256k1","pda","registry","SEED_GATEWAY","PlanType","strip0x","stripOuterQuotes","address"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Byte encoding primitives. Isomorphic — no `Buffer`, no `fs`. All byte work is\n * `Uint8Array` + `@noble/hashes/utils.js`. The canonical selection-bitmap and value\n * representation is a 32-byte big-endian word; `bigint` is used only for internal\n * sampling/packing math and is never exposed on the wire.\n */\nimport {\n bytesToHex as nobleBytesToHex,\n hexToBytes as nobleHexToBytes,\n utf8ToBytes as nobleUtf8ToBytes,\n concatBytes as nobleConcatBytes,\n} from \"@noble/hashes/utils.js\";\n\nexport const utf8 = (s: string): Uint8Array => nobleUtf8ToBytes(s);\nexport const concatBytes = (...arrays: Uint8Array[]): Uint8Array =>\n nobleConcatBytes(...arrays);\n\n/** Lower-case hex, no `0x` prefix. */\nexport const bytesToHex = (bytes: Uint8Array): string => nobleBytesToHex(bytes);\n\n/** Accepts an optional leading `0x`; case-insensitive. */\nexport function hexToBytes(hex: string): Uint8Array {\n const clean = hex.startsWith(\"0x\") || hex.startsWith(\"0X\") ? hex.slice(2) : hex;\n return nobleHexToBytes(clean);\n}\n\n/** Hex with a leading `0x`. */\nexport const bytesToHex0x = (bytes: Uint8Array): string => \"0x\" + bytesToHex(bytes);\n\n/** Big-endian u32 → 4 bytes. */\nexport function u32be(value: number): Uint8Array {\n assertUint(value, 0xffffffff, \"u32\");\n const out = new Uint8Array(4);\n new DataView(out.buffer).setUint32(0, value, false);\n return out;\n}\n\n/** Little-endian u32 → 4 bytes (used for PDA seeds like the registry index). */\nexport function u32le(value: number): Uint8Array {\n assertUint(value, 0xffffffff, \"u32\");\n const out = new Uint8Array(4);\n new DataView(out.buffer).setUint32(0, value, true);\n return out;\n}\n\n/** Big-endian u64 → 8 bytes. Accepts `number` or `bigint`. */\nexport function u64be(value: number | bigint): Uint8Array {\n const v = typeof value === \"bigint\" ? value : BigInt(value);\n if (v < 0n || v > 0xffffffffffffffffn) {\n throw new RangeError(`u64 out of range: ${v}`);\n }\n const out = new Uint8Array(8);\n new DataView(out.buffer).setBigUint64(0, v, false);\n return out;\n}\n\n/** Little-endian u64 → 8 bytes. Accepts `number` or `bigint`. */\nexport function u64le(value: number | bigint): Uint8Array {\n const v = typeof value === \"bigint\" ? value : BigInt(value);\n if (v < 0n || v > 0xffffffffffffffffn) {\n throw new RangeError(`u64 out of range: ${v}`);\n }\n const out = new Uint8Array(8);\n new DataView(out.buffer).setBigUint64(0, v, true);\n return out;\n}\n\n/** Big-endian 32-byte word ← bigint (0 ≤ v < 2^256). */\nexport function u256beFromBigInt(value: bigint): Uint8Array {\n if (value < 0n) throw new RangeError(\"u256 cannot be negative\");\n const out = new Uint8Array(32);\n let v = value;\n for (let i = 31; i >= 0 && v > 0n; i--) {\n out[i] = Number(v & 0xffn);\n v >>= 8n;\n }\n if (v > 0n) throw new RangeError(\"u256 overflow (>= 2^256)\");\n return out;\n}\n\n/** bigint ← big-endian byte word (any length). */\nexport function bigIntFromBytesBe(bytes: Uint8Array): bigint {\n let v = 0n;\n for (const b of bytes) v = (v << 8n) | BigInt(b);\n return v;\n}\n\n/** Throw unless `bytes.length === len`. Returns the input for chaining. */\nexport function ensureLength(bytes: Uint8Array, len: number, label: string): Uint8Array {\n if (bytes.length !== len) {\n throw new RangeError(`${label}: expected ${len} bytes, got ${bytes.length}`);\n }\n return bytes;\n}\n\n/** Coerce hex string or bytes to a fixed-length byte array. */\nexport function toFixedBytes(\n value: string | Uint8Array,\n len: number,\n label: string,\n): Uint8Array {\n const bytes = typeof value === \"string\" ? hexToBytes(value) : value;\n return ensureLength(bytes, len, label);\n}\n\nfunction assertUint(value: number, max: number, label: string): void {\n if (!Number.isInteger(value) || value < 0 || value > max) {\n throw new RangeError(`${label} out of range: ${value}`);\n }\n}\n","/**\n * API config canonicalization + source-id derivation. Must stay byte-identical with\n * gateway/node verification: `sourceId = keccak256(JSON.stringify(canonical apiConfig))`.\n */\nimport { keccak_256 } from \"@noble/hashes/sha3.js\";\nimport { bytesToHex, utf8 } from \"./encoding.js\";\nimport type { APIConfig } from \"./types.js\";\n\n/** Lexicographic UTF-16 code-unit order — locale-independent, matches gateway/node. */\nfunction compareCodeUnits(a: string, b: string): number {\n const len = Math.min(a.length, b.length);\n for (let i = 0; i < len; i++) {\n const diff = a.charCodeAt(i) - b.charCodeAt(i);\n if (diff !== 0) return diff;\n }\n return a.length - b.length;\n}\n\nfunction sortHeaders(headers: Record<string, string>): Record<string, string> {\n return Object.fromEntries(Object.entries(headers).sort(([a], [b]) => compareCodeUnits(a, b)));\n}\n\n/** Gateway wire shape — defaults applied before hash / encryption. */\nexport function canonicalizeAPIConfig(apiConfig: APIConfig): APIConfig {\n const headers = apiConfig.headers ?? {};\n return {\n url: apiConfig.url,\n method: apiConfig.method ?? \"GET\",\n headers: Object.keys(headers).length === 0 ? headers : sortHeaders(headers),\n responseParser: apiConfig.responseParser,\n valueTransform: apiConfig.valueTransform ?? \"\",\n };\n}\n\n/**\n * `sourceId = keccak256(JSON.stringify(canonical apiConfig))` — the 32-byte identity of a\n * data source. Hash the same config (including `{{secret.*}}` placeholders) you send to\n * `MolphaGateway.requestSignedData`; the gateway and every verifier recompute it from\n * `apiConfig`.\n */\nexport function deriveSourceId(apiConfig: APIConfig): Uint8Array {\n return keccak_256(utf8(JSON.stringify(canonicalizeAPIConfig(apiConfig))));\n}\n\n/** Hex-encoded {@link deriveSourceId} (64 lowercase hex chars, no `0x`). */\nexport function deriveSourceIdString(apiConfig: APIConfig): string {\n return bytesToHex(deriveSourceId(apiConfig));\n}\n\n/** @deprecated Renamed to {@link deriveSourceId}; identical bytes. */\nexport const deriveApiConfigHash = deriveSourceId;\n","/**\n * Protocol-wide constants that must stay in sync with the vendored IDL. Kept as plain\n * literals so gateway-only / browser bundles never pull in `idl/molpha.json`.\n */\n\n/** Molpha program id (`idl/molpha.json` → `address`). Asserted equal in `test/gateway-auth.test.ts`. */\nexport const MOLPHA_PROGRAM_ID = \"MoLFnEbuMS5gWnXNfUMLAYSqRM3eQZKWRzjeMQfqbT3\";\n","import { secp256k1 } from \"@noble/curves/secp256k1.js\";\nimport { bytesToHex, concatBytes, ensureLength, hexToBytes } from \"./encoding.js\";\n\nconst SECP256K1_COMPRESSED_PUBLIC_KEY_BYTES = 33;\nconst SECP256K1_UNCOMPRESSED_PUBLIC_KEY_BYTES = 65;\n\n/**\n * Parse a secp256k1 public key and return canonical compressed lower-case hex.\n * Accepts compressed or uncompressed SEC1 public keys with an optional `0x`.\n */\nexport function normalizeSecp256k1PublicKeyHex(\n publicKeyHex: string,\n label = \"secp256k1 public key\",\n): string {\n if (typeof publicKeyHex !== \"string\") {\n throw new Error(`${label}: expected hex string`);\n }\n\n let bytes: Uint8Array;\n try {\n bytes = hexToBytes(publicKeyHex);\n } catch {\n throw new Error(`${label}: invalid hex`);\n }\n\n if (\n bytes.length !== SECP256K1_COMPRESSED_PUBLIC_KEY_BYTES &&\n bytes.length !== SECP256K1_UNCOMPRESSED_PUBLIC_KEY_BYTES\n ) {\n throw new Error(\n `${label}: expected ${SECP256K1_COMPRESSED_PUBLIC_KEY_BYTES}-byte compressed or ${SECP256K1_UNCOMPRESSED_PUBLIC_KEY_BYTES}-byte uncompressed public key`,\n );\n }\n\n try {\n return bytesToHex(secp256k1.Point.fromBytes(bytes).toBytes(true));\n } catch {\n throw new Error(`${label}: invalid secp256k1 public key`);\n }\n}\n\n/** Reconstruct a compressed secp256k1 public key from 32-byte affine X/Y coordinates. */\nexport function secp256k1PublicKeyFromCoordinates(\n x: Uint8Array,\n y: Uint8Array,\n label = \"secp256k1 public key coordinates\",\n): string {\n ensureLength(x, 32, `${label}.x`);\n ensureLength(y, 32, `${label}.y`);\n return normalizeSecp256k1PublicKeyHex(\n bytesToHex(concatBytes(Uint8Array.of(0x04), x, y)),\n label,\n );\n}\n","/**\n * Node selection: deterministic, verifiable, without replacement.\n *\n * Canonical bitmap representation = 32-byte big-endian word (bit `i` lives in\n * byte `31 - (i >> 3)`, mask `1 << (i & 7)`), matching the wire / on-chain form.\n */\nimport { keccak_256 } from \"@noble/hashes/sha3.js\";\nimport { concatBytes, ensureLength, u32be, u64be, utf8 } from \"./encoding.js\";\n\nconst SELECTION_SEED_DOMAIN = keccak_256(utf8(\"MOLPHA_SELECTION_V1\"));\nconst SELECTION_DERIVE_DOMAIN = keccak_256(utf8(\"MOLPHA_SELECTION_DERIVE\"));\n\n/** Maximum hashing rounds before giving up (matches on-chain cap). */\nconst MAX_ROUNDS = 65_536;\n\nconst BITMAP_BYTES = 32;\nconst MAX_NODES = BITMAP_BYTES * 8; // 256\nconst U32_MAX = 0xffff_ffff;\n\n/**\n * `seed = keccak256(keccak256(\"MOLPHA_SELECTION_V1\") || sourceId || be32(rv) || be64(ts))`.\n */\nexport function deriveSelectionSeed(\n sourceId: Uint8Array,\n registryVersion: number,\n canonicalTimestamp: number | bigint,\n): Uint8Array {\n ensureLength(sourceId, 32, \"sourceId\");\n return keccak_256(\n concatBytes(\n SELECTION_SEED_DOMAIN,\n sourceId,\n u32be(registryVersion),\n u64be(canonicalTimestamp),\n ),\n );\n}\n\n/** `min(signaturesRequired + redundancyBuffer, nodeCount)`. */\nexport function effectiveSelectionSize(\n signaturesRequired: number,\n redundancyBuffer: number,\n nodeCount: number,\n): number {\n return Math.min(signaturesRequired + redundancyBuffer, nodeCount);\n}\n\n/** Is bit `bit` set in the 32-byte big-endian `bitmap`? */\nexport function bitmapBitSet(bitmap: Uint8Array, bit: number): boolean {\n if (bit < 0 || bit >= MAX_NODES) return false;\n const byte = bitmap[BITMAP_BYTES - 1 - (bit >> 3)] ?? 0;\n return (byte & (1 << (bit & 7))) !== 0;\n}\n\nfunction setBit(bitmap: Uint8Array, bit: number): void {\n const idx = BITMAP_BYTES - 1 - (bit >> 3);\n bitmap[idx] = (bitmap[idx] ?? 0) | (1 << (bit & 7));\n}\n\n/** Indices of set bits in `[0, nodeCount)`, ascending. */\nexport function selectedIndices(bitmap: Uint8Array, nodeCount: number): number[] {\n const out: number[] = [];\n for (let i = 0; i < nodeCount; i++) {\n if (bitmapBitSet(bitmap, i)) out.push(i);\n }\n return out;\n}\n\n/**\n * Rejection-sample `groupSize` distinct indices out of `nodeCount` from `seed`,\n * returning a 32-byte big-endian bitmap. Uses the complement optimization when\n * `groupSize > nodeCount / 2` (sample the smaller set, then invert).\n */\nexport function deriveGroupBitmap(\n seed: Uint8Array,\n nodeCount: number,\n groupSize: number,\n): Uint8Array {\n if (!Number.isInteger(nodeCount) || nodeCount <= 0 || nodeCount > MAX_NODES) {\n throw new RangeError(`GroupBitmapDerivationFailed: invalid nodeCount ${nodeCount}`);\n }\n if (!Number.isInteger(groupSize) || groupSize < 0 || groupSize > nodeCount) {\n throw new RangeError(`GroupBitmapDerivationFailed: invalid groupSize ${groupSize}`);\n }\n const bitmap = new Uint8Array(BITMAP_BYTES);\n if (groupSize === 0) return bitmap;\n if (groupSize === nodeCount) {\n for (let i = 0; i < nodeCount; i++) setBit(bitmap, i);\n return bitmap;\n }\n\n // Complement optimization: sample the smaller half, invert at the end.\n const complement = groupSize > nodeCount - groupSize;\n const sampleCount = complement ? nodeCount - groupSize : groupSize;\n const limit = Math.floor(U32_MAX / nodeCount) * nodeCount;\n\n const chosen = new Set<number>();\n let round = 0;\n while (chosen.size < sampleCount && round < MAX_ROUNDS) {\n const counterWord = new Uint8Array(32);\n counterWord.set(u64be(round), 24);\n const block = keccak_256(concatBytes(seed, SELECTION_DERIVE_DOMAIN, counterWord));\n for (let off = 0; off + 4 <= block.length && chosen.size < sampleCount; off += 4) {\n const limb =\n ((block[off]! << 24) |\n (block[off + 1]! << 16) |\n (block[off + 2]! << 8) |\n block[off + 3]!) >>>\n 0;\n if (limb < limit) {\n const idx = limb % nodeCount;\n chosen.add(idx);\n }\n }\n round++;\n }\n if (chosen.size < sampleCount) {\n throw new Error(\"GroupBitmapDerivationFailed: round cap reached\");\n }\n\n if (complement) {\n for (let i = 0; i < nodeCount; i++) {\n if (!chosen.has(i)) setBit(bitmap, i);\n }\n } else {\n for (const i of chosen) setBit(bitmap, i);\n }\n return bitmap;\n}\n\n/**\n * Convenience orchestrator: derive the selection bitmap end-to-end.\n * `redundancy` defaults to 0; `ts` defaults to the current unix second.\n */\nexport function deriveSelectionBitmap(\n sourceId: Uint8Array,\n registryVersion: number,\n nodeCount: number,\n signaturesRequired: number,\n redundancy = 0,\n ts: number | bigint = Math.floor(Date.now() / 1000),\n): Uint8Array {\n const seed = deriveSelectionSeed(sourceId, registryVersion, ts);\n const size = effectiveSelectionSize(signaturesRequired, redundancy, nodeCount);\n return deriveGroupBitmap(seed, nodeCount, size);\n}\n","/**\n * Gateway request authentication (`RequestAuth`, program `state/receipt.rs`).\n *\n * hash = keccak256(\"MOLPHA_REQAUTH_V1\" || borsh(RequestAuth))\n * RequestAuth { program_id: Pubkey, gateway: Pubkey, source_id: [u8; 32],\n * signatures_required: u8, timestamp: u64 }\n *\n * i.e. `domain || programId(32) || gatewayPda(32) || sourceId(32) || u8 || u64le`.\n * The consumer authority / delegate ed25519-signs the 32-byte hash. Binding the program id\n * and the Gateway PDA means a signature is only redeemable by the gateway the consumer\n * chose, on the deployment they meant to pay — never a bearer token.\n */\nimport { keccak_256 } from \"@noble/hashes/sha3.js\";\nimport { concatBytes, ensureLength, toFixedBytes, utf8, u64le } from \"../core/encoding.js\";\n\nexport type { Signer } from \"../core/types.js\";\n\nexport const REQUEST_AUTH_DOMAIN: Uint8Array = utf8(\"MOLPHA_REQAUTH_V1\");\n\nexport interface RequestAuthFields {\n /** Program id, 32 bytes (see `addressToBytes` for base58). */\n programId: Uint8Array;\n /** Gateway PDA `[\"molpha_gateway\", gatewayAuthority]`, 32 bytes (see `deriveGatewayPda`). */\n gateway: Uint8Array;\n /** 32-byte source id, hex or bytes. */\n sourceId: Uint8Array | string;\n /** u8 — the per-request quorum. */\n signaturesRequired: number;\n /** u64 unix seconds. */\n timestamp: number | bigint;\n}\n\n/** Borsh encoding of `RequestAuth` — the hash body, without the domain. */\nexport function encodeRequestAuth(fields: RequestAuthFields): Uint8Array {\n if (\n !Number.isInteger(fields.signaturesRequired) ||\n fields.signaturesRequired < 1 ||\n fields.signaturesRequired > 255\n ) {\n throw new RangeError(`signaturesRequired out of u8 range: ${fields.signaturesRequired}`);\n }\n return concatBytes(\n ensureLength(fields.programId, 32, \"programId\"),\n ensureLength(fields.gateway, 32, \"gateway\"),\n toFixedBytes(fields.sourceId, 32, \"sourceId\"),\n Uint8Array.of(fields.signaturesRequired),\n u64le(fields.timestamp),\n );\n}\n\n/** `keccak256(REQUEST_AUTH_DOMAIN || encodeRequestAuth(fields))` — the message the consumer signs. */\nexport function hashRequestAuth(fields: RequestAuthFields): Uint8Array {\n return keccak_256(concatBytes(REQUEST_AUTH_DOMAIN, encodeRequestAuth(fields)));\n}\n","/**\n * API-config secret resolution + ECDH config encryption for selected nodes.\n */\nimport { gcm } from \"@noble/ciphers/aes.js\";\nimport { secp256k1 } from \"@noble/curves/secp256k1.js\";\nimport { keccak_256 } from \"@noble/hashes/sha3.js\";\nimport { randomBytes } from \"@noble/hashes/utils.js\";\nimport { canonicalizeAPIConfig } from \"../core/apiconfig.js\";\nimport { bytesToHex, concatBytes, hexToBytes, utf8 } from \"../core/encoding.js\";\nimport { normalizeSecp256k1PublicKeyHex } from \"../core/nodeKeys.js\";\nimport type { APIConfig, EncKeyBundle, Node } from \"../core/types.js\";\n\nconst NONCE_BYTES = 12; // AES-GCM nonce\nconst SYM_KEY_BYTES = 32;\n\nconst SECRET_PLACEHOLDER = /\\{\\{\\s*secret\\.([A-Za-z0-9_]+)\\s*\\}\\}/g;\n\ninterface EncryptionRecipient {\n index: number;\n signingKey: string;\n}\n\n/**\n * Replace `{{secret.NAME}}` placeholders in the string fields of an API config.\n * Throws if a referenced secret is missing.\n */\nexport function resolveAPIConfig(\n apiConfig: APIConfig,\n secrets: Record<string, string>,\n): APIConfig {\n const sub = (s: string): string =>\n s.replace(SECRET_PLACEHOLDER, (_m, name: string) => {\n if (!(name in secrets)) throw new Error(`Missing secret: ${name}`);\n return secrets[name]!;\n });\n\n const headers = apiConfig.headers\n ? Object.fromEntries(Object.entries(apiConfig.headers).map(([k, v]) => [k, sub(v)]))\n : undefined;\n\n return {\n ...apiConfig,\n url: sub(apiConfig.url),\n ...(headers ? { headers } : {}),\n responseParser: sub(apiConfig.responseParser),\n ...(apiConfig.valueTransform ? { valueTransform: sub(apiConfig.valueTransform) } : {}),\n };\n}\n\n/**\n * Encrypt a resolved API config with a fresh symmetric key, then ECDH-wrap that\n * key for each selected node. The gateway only ever sees placeholders.\n */\nexport function encryptForNodes(\n apiConfig: APIConfig,\n secrets: Record<string, string>,\n selectedNodes: Node[],\n): EncKeyBundle {\n const recipients = validateEncryptionRecipients(selectedNodes);\n\n const resolved = resolveAPIConfig(apiConfig, secrets);\n const plaintext = utf8(JSON.stringify(canonicalizeAPIConfig(resolved)));\n\n const symKey = randomBytes(SYM_KEY_BYTES);\n const nonceSym = randomBytes(NONCE_BYTES);\n const ciphertext = gcm(symKey, nonceSym).encrypt(plaintext);\n\n const ephemeralPriv = secp256k1.utils.randomSecretKey();\n const ephemeralPub = secp256k1.getPublicKey(ephemeralPriv, true); // compressed\n\n const envelopes: Record<string, string> = {};\n for (const node of recipients) {\n const envelopeIndex = String(node.index);\n const nodePub = hexToBytes(node.signingKey);\n const shared = secp256k1.getSharedSecret(ephemeralPriv, nodePub);\n const wrapKey = keccak_256(shared);\n const nonceEnv = randomBytes(NONCE_BYTES);\n const wrappedSymKey = gcm(wrapKey, nonceEnv).encrypt(symKey);\n envelopes[envelopeIndex] = bytesToHex(concatBytes(nonceEnv, wrappedSymKey));\n }\n\n return {\n ephemeralPub: bytesToHex(ephemeralPub),\n nonceSym: bytesToHex(nonceSym),\n ciphertext: bytesToHex(ciphertext),\n envelopes,\n };\n}\n\nfunction validateEncryptionRecipients(selectedNodes: Node[]): EncryptionRecipient[] {\n if (selectedNodes.length === 0) throw new Error(\"No nodes to encrypt for\");\n\n const envelopeIndexes = new Set<string>();\n const envelopeKeys = new Set<string>();\n return selectedNodes.map((node) => {\n if (!Number.isInteger(node.index) || node.index < 0) {\n throw new Error(`Selected node index must be a non-negative integer: ${node.index}`);\n }\n const envelopeIndex = String(node.index);\n if (envelopeIndexes.has(envelopeIndex)) {\n throw new Error(`Duplicate selected node index: ${node.index}`);\n }\n envelopeIndexes.add(envelopeIndex);\n\n const signingKey = normalizeSecp256k1PublicKeyHex(\n node.signingKey,\n `Selected node ${node.index} signingKey`,\n );\n if (envelopeKeys.has(signingKey)) {\n throw new Error(`Duplicate selected node signingKey: ${node.index}`);\n }\n envelopeKeys.add(signingKey);\n return { index: node.index, signingKey };\n });\n}\n","/**\n * Gateway on-chain identity. The request-auth hash binds the Gateway PDA\n * (`[\"molpha_gateway\", gatewayAuthority]`), so the client must know which gateway it is\n * talking to. Kit-only — no `@anchor-lang/core` / web3.js on the gateway path.\n */\nimport {\n address,\n getAddressEncoder,\n getProgramDerivedAddress,\n type Address,\n} from \"@solana/kit\";\nimport { utf8 } from \"../core/encoding.js\";\n\nconst SEED_GATEWAY = utf8(\"molpha_gateway\");\nconst addressEncoder = getAddressEncoder();\n\n/** One gateway endpoint plus, optionally, the authority key its `Gateway` PDA derives from. */\nexport interface GatewayEndpoint {\n /** Base URL, e.g. `https://gateway.example.com` (trailing slash ignored). */\n url: string;\n /**\n * Base58 Solana pubkey of the gateway's signing authority. When omitted the client\n * fetches it once from `GET {url}/v1/info` (`data.gatewayAuthority`) the first time an\n * authenticated request targets this endpoint.\n */\n gatewayAuthority?: string;\n}\n\nexport type GatewayEndpointInput = string | GatewayEndpoint;\n\n/** Payload of `GET /v1/info` (inside the usual `{ status, data }` envelope). */\nexport interface GatewayInfo {\n gatewayAuthority: string;\n /** Program id the gateway settles against; must match the client's when present. */\n programId?: string;\n}\n\nexport function normalizeEndpoint(input: GatewayEndpointInput): GatewayEndpoint {\n const endpoint: GatewayEndpoint = typeof input === \"string\" ? { url: input } : { ...input };\n endpoint.url = endpoint.url.replace(/\\/$/, \"\");\n if (!endpoint.url) throw new Error(\"Gateway endpoint url must not be empty\");\n return endpoint;\n}\n\n/** 32-byte form of a base58 address. */\nexport function addressToBytes(value: string): Uint8Array {\n return Uint8Array.from(addressEncoder.encode(address(value)));\n}\n\n/** `[\"molpha_gateway\", gatewayAuthority]` under `programId`, as a base58 address. */\nexport async function deriveGatewayPdaAddress(\n gatewayAuthority: string,\n programId: string,\n): Promise<Address> {\n const [pda] = await getProgramDerivedAddress({\n programAddress: address(programId),\n seeds: [SEED_GATEWAY, addressToBytes(gatewayAuthority)],\n });\n return pda;\n}\n\n/** 32-byte Gateway PDA — the `gateway` field of `RequestAuth`. */\nexport async function deriveGatewayPda(\n gatewayAuthority: string,\n programId: string,\n): Promise<Uint8Array> {\n return addressToBytes(await deriveGatewayPdaAddress(gatewayAuthority, programId));\n}\n\n/** Validate an unwrapped `/v1/info` payload. */\nexport function parseGatewayInfo(data: unknown): GatewayInfo {\n if (!data || typeof data !== \"object\") {\n throw new Error(\"GET /v1/info returned malformed payload\");\n }\n const record = data as Record<string, unknown>;\n const gatewayAuthority = record.gatewayAuthority;\n if (typeof gatewayAuthority !== \"string\" || !gatewayAuthority) {\n throw new Error(\"GET /v1/info payload is missing gatewayAuthority\");\n }\n const programId = record.programId;\n if (programId !== undefined && typeof programId !== \"string\") {\n throw new Error(\"GET /v1/info programId must be a base58 string\");\n }\n return programId === undefined ? { gatewayAuthority } : { gatewayAuthority, programId };\n}\n","/**\n * `MolphaGateway` — isomorphic HTTP client with multi-endpoint failover.\n */\nimport { canonicalizeAPIConfig, deriveSourceId } from \"../core/apiconfig.js\";\nimport { MOLPHA_PROGRAM_ID } from \"../core/constants.js\";\nimport { bytesToHex, bytesToHex0x } from \"../core/encoding.js\";\nimport { normalizeSecp256k1PublicKeyHex } from \"../core/nodeKeys.js\";\nimport {\n deriveGroupBitmap,\n deriveSelectionSeed,\n effectiveSelectionSize,\n selectedIndices,\n} from \"../core/selection.js\";\nimport type {\n APIConfig,\n DataUpdateResult,\n Node,\n NodeKeyVerifier,\n RegistrySelectionConfig,\n Signer,\n} from \"../core/types.js\";\nimport { hashRequestAuth } from \"./auth.js\";\nimport { encryptForNodes } from \"./encryption.js\";\nimport {\n addressToBytes,\n deriveGatewayPda,\n normalizeEndpoint,\n parseGatewayInfo,\n type GatewayEndpoint,\n type GatewayEndpointInput,\n type GatewayInfo,\n} from \"./identity.js\";\n\nexport type { RegistrySelectionConfig } from \"../core/types.js\";\nexport * from \"./auth.js\";\nexport * from \"./identity.js\";\n\nexport interface RequestSignedDataOptions {\n /**\n * The API definition to resolve. Its canonical form determines the round's\n * `sourceId = keccak256(JSON.stringify(canonicalizeAPIConfig(apiConfig)))`, so pass the\n * same config (including `{{secret.*}}` placeholders) every time.\n */\n apiConfig: APIConfig;\n /** Requested quorum (u8, ≥ the protocol `min_signers`). */\n signaturesRequired: number;\n /**\n * Solana pubkey (base58) of the subscription owner.\n * Overrides the gateway's `defaultSubscriptionOwner` when set.\n */\n subscriptionOwner?: string;\n /**\n * Solana pubkey (base58) of the consumer authority that signs gateway auth.\n * Overrides the gateway's `defaultConsumerAuthority` when set.\n */\n consumerAuthority?: string;\n /**\n * Signs `hashRequestAuth({ programId, gateway, sourceId, signaturesRequired, timestamp })`.\n * The hash binds the gateway's on-chain account, so it is computed — and the signer\n * invoked — once per endpoint actually tried. Overrides the gateway's `defaultSigner`\n * when set. When both are omitted, sends an all-zero authSig (dev only).\n */\n signer?: Signer;\n encrypt?: { secrets: Record<string, string> };\n /** Max accepted value age in seconds. Default 60. */\n maxAge?: number;\n /** Each retry re-rolls the timestamp. Default 15. */\n maxRetries?: number;\n /** Per-request timeout in ms. Default 5000. */\n timeoutMs?: number;\n /**\n * Pre-fetched round inputs. Any field present here skips its network/on-chain\n * fetch, so a fully-populated context turns `requestSignedData` into a single\n * POST round (the \"short\" flow). Build a reusable one with\n * {@link MolphaGateway.prepareContext}.\n *\n * Caching is opt-in because these inputs can drift: a stale `registryVersion`,\n * `redundancyBuffer`, `nodeCount`, or `nodes` set produces a result the chain will\n * reject. Refresh the context when the on-chain registry version changes.\n */\n context?: Partial<RoundContext>;\n /**\n * Authenticates selected gateway node encryption keys before private API\n * secrets are encrypted. Overrides the gateway-level verifier when set.\n */\n verifyNodeKeys?: NodeKeyVerifier;\n /**\n * Unsafe development escape hatch for standalone gateway usage. When true,\n * encrypted private API requests may use gateway-provided node keys without\n * authentication. Defaults to false.\n */\n allowUnverifiedNodeKeysForPrivateApi?: boolean;\n}\n\nexport interface MolphaGatewayOptions {\n /** Solana pubkey (base58) of the subscription owner used when a request omits it. */\n defaultSubscriptionOwner?: string;\n /** Solana pubkey (base58) of the consumer authority used when a request omits it. */\n defaultConsumerAuthority?: string;\n /**\n * Molpha program id the request authorization is bound to. Defaults to the vendored\n * `MOLPHA_PROGRAM_ID`; must match the gateway's deployment.\n */\n programId?: string;\n /**\n * Authenticates selected gateway node encryption keys before private API\n * secrets are encrypted.\n */\n verifyNodeKeys?: NodeKeyVerifier;\n /**\n * Unsafe development escape hatch. When true, encrypted private API requests\n * may use gateway-provided node keys without authentication. Defaults to false.\n */\n allowUnverifiedNodeKeysForPrivateApi?: boolean;\n}\n\n/**\n * The slow-changing inputs a `requestSignedData` round binds to. Fetch once with\n * {@link MolphaGateway.prepareContext} and reuse across many rounds.\n */\nexport interface RoundContext extends RegistrySelectionConfig {\n /** Full node set used to encrypt private API secrets for the selected nodes. */\n nodes: Node[];\n}\n\n/** Round inputs after resolution; `nodes` is only fetched when a round needs it. */\ninterface ResolvedRound extends RegistrySelectionConfig {\n nodes?: Node[];\n}\n\ninterface GatewaySignedDataResponse {\n status: \"completed\" | \"pending\" | string;\n data?: GatewaySignedData;\n}\n\ninterface GatewaySignedData {\n sourceId?: string;\n value?: string;\n valuePacked?: string;\n timestamp?: number;\n registryVersion?: number;\n signaturesRequired?: number;\n signersBitmap?: string;\n s?: string;\n commitmentAddr?: string;\n fresh?: boolean;\n}\n\ninterface GatewayEnvelope<T> {\n status: string;\n data: T;\n}\n\nconst ZERO_AUTH_SIG = new Uint8Array(64);\n\n/** Default gateway base URL when `endpoints` is omitted. */\nexport const DEFAULT_GATEWAY_ENDPOINT = \"https://dev-gateway.molpha.io/\";\n\n/** Thrown for terminal gateway errors (400/401) — never retried. */\nexport class GatewayError extends Error {\n constructor(\n message: string,\n readonly status?: number,\n ) {\n super(message);\n this.name = \"GatewayError\";\n }\n}\n\nexport class MolphaGateway {\n private readonly endpoints: GatewayEndpoint[];\n private readonly getRegistrySelectionConfig: () => Promise<RegistrySelectionConfig>;\n private readonly defaultSigner?: Signer;\n private readonly defaultSubscriptionOwner?: string;\n private readonly defaultConsumerAuthority?: string;\n private readonly verifyNodeKeys?: NodeKeyVerifier;\n private readonly allowUnverifiedNodeKeysForPrivateApi: boolean;\n /** Program id the request authorization is bound to (base58). */\n readonly programId: string;\n private readonly programIdBytes: Uint8Array;\n /** Gateway PDA per endpoint URL; resolved once per client lifetime. */\n private readonly gatewayPdas = new Map<string, Promise<Uint8Array>>();\n\n constructor(\n endpoints?: GatewayEndpointInput | GatewayEndpointInput[],\n getRegistrySelectionConfig: () => Promise<RegistrySelectionConfig> = async () => {\n throw new Error(\n \"MolphaGateway requires getRegistrySelectionConfig to request signed data — pass the current on-chain registry version, redundancy buffer and node count (e.g. () => solana.getRegistrySelectionConfig())\",\n );\n },\n defaultSigner?: Signer,\n /**\n * Either a default subscription owner (base58) or gateway options. A string\n * keeps the previous positional form used by standalone callers/tests.\n */\n defaultSubscriptionOwnerOrOptions?: string | MolphaGatewayOptions,\n defaultConsumerAuthority?: string,\n ) {\n const list =\n endpoints === undefined\n ? [DEFAULT_GATEWAY_ENDPOINT]\n : Array.isArray(endpoints)\n ? endpoints\n : [endpoints];\n if (list.length === 0) throw new Error(\"At least one endpoint is required\");\n this.endpoints = list.map(normalizeEndpoint);\n this.getRegistrySelectionConfig = getRegistrySelectionConfig;\n this.defaultSigner = defaultSigner;\n\n const options: MolphaGatewayOptions =\n typeof defaultSubscriptionOwnerOrOptions === \"string\"\n ? {\n defaultSubscriptionOwner: defaultSubscriptionOwnerOrOptions,\n defaultConsumerAuthority,\n }\n : (defaultSubscriptionOwnerOrOptions ?? {});\n\n this.defaultSubscriptionOwner = options.defaultSubscriptionOwner;\n this.defaultConsumerAuthority =\n options.defaultConsumerAuthority ?? options.defaultSubscriptionOwner;\n this.verifyNodeKeys = options.verifyNodeKeys;\n this.allowUnverifiedNodeKeysForPrivateApi =\n options.allowUnverifiedNodeKeysForPrivateApi ?? false;\n this.programId = options.programId ?? MOLPHA_PROGRAM_ID;\n this.programIdBytes = addressToBytes(this.programId);\n }\n\n /** Tries endpoints in order; returns the first node list it can fetch. */\n async getNodes(): Promise<Node[]> {\n const data = await this.firstReachableData<{ nodes: Node[] } | Node[]>(\"/v1/nodes\");\n return Array.isArray(data) ? data : data.nodes;\n }\n\n async isHealthy(): Promise<boolean> {\n for (const endpoint of this.endpoints) {\n try {\n const res = await fetch(`${endpoint.url}/health`, { method: \"GET\" });\n if (res.ok) return true;\n } catch {\n // try next\n }\n }\n return false;\n }\n\n /**\n * `GET {url}/v1/info` — the gateway's on-chain identity. Throws when the gateway\n * reports a `programId` different from this client's.\n */\n async fetchGatewayInfo(\n endpoint: GatewayEndpointInput,\n timeoutMs?: number,\n ): Promise<GatewayInfo> {\n const { url } = normalizeEndpoint(endpoint);\n const res = await this.fetchWithTimeout(`${url}/v1/info`, { method: \"GET\" }, timeoutMs);\n if (!res.ok) {\n throw new GatewayError(`GET /v1/info failed (${res.status})`, res.status);\n }\n const info = parseGatewayInfo(unwrapEnvelope(await res.json(), \"/v1/info\"));\n if (info.programId !== undefined && info.programId !== this.programId) {\n throw new GatewayError(\n `Gateway ${url} settles against program ${info.programId}, but this client is bound to ${this.programId}`,\n );\n }\n return info;\n }\n\n /**\n * Fetch the slow-changing round inputs (registry version, redundancy buffer,\n * node count, node set) once so they can be reused across many\n * {@link requestSignedData} calls. Pass the result back via\n * `requestSignedData({ ..., context })` to skip the prelude and run a\n * single-round \"short\" flow.\n *\n * Both fetches run in parallel. Registry version, redundancy buffer and node\n * count come from the on-chain registry read.\n */\n async prepareContext(): Promise<RoundContext> {\n const [registry, nodes] = await Promise.all([\n this.getRegistrySelectionConfig(),\n this.getNodes(),\n ]);\n return { ...registry, nodes };\n }\n\n /**\n * Request a threshold-signed data update from the gateway, with retry +\n * failover. Per attempt a fresh timestamp yields a fresh selection bitmap; the\n * body is POSTed to each endpoint in order until one `completed`s.\n *\n * The round's `sourceId` is derived from `apiConfig`. The request authorization\n * binds the program id and each gateway's on-chain account, so the auth signature\n * is recomputed for every endpoint tried.\n *\n * By default this fetches the registry selection config up front and the node\n * set only when the round needs it (private API encryption, or when the registry\n * read does not report `nodeCount`). Supply `opts.context` (e.g. from\n * {@link prepareContext}) to reuse cached inputs and skip those fetches — a\n * fully-populated context collapses the call to a single POST round.\n */\n async requestSignedData(opts: RequestSignedDataOptions): Promise<DataUpdateResult> {\n const {\n apiConfig,\n signer,\n encrypt,\n maxAge = 60,\n maxRetries = 15,\n timeoutMs = 5000,\n } = opts;\n const signaturesRequired = assertSignaturesRequired(opts.signaturesRequired);\n\n const verifyNodeKeys = opts.verifyNodeKeys ?? this.verifyNodeKeys;\n const allowUnverified =\n opts.allowUnverifiedNodeKeysForPrivateApi ??\n this.allowUnverifiedNodeKeysForPrivateApi;\n if (encrypt && !verifyNodeKeys && !allowUnverified) {\n throw new Error(\n \"Private API encryption requires authenticated node keys. Provide verifyNodeKeys or set allowUnverifiedNodeKeysForPrivateApi: true for unsafe development use.\",\n );\n }\n\n const requestApiConfig = canonicalizeAPIConfig(apiConfig);\n const sourceIdBytes = deriveSourceId(requestApiConfig);\n const sourceId = bytesToHex(sourceIdBytes);\n\n const subscriptionOwner = opts.subscriptionOwner ?? this.defaultSubscriptionOwner;\n if (!subscriptionOwner) {\n throw new Error(\n \"subscriptionOwner is required — pass opts.subscriptionOwner or set MolphaGateway defaultSubscriptionOwner (MolphaSDK sets this from wallet.publicKey)\",\n );\n }\n const consumerAuthority =\n opts.consumerAuthority ?? this.defaultConsumerAuthority ?? subscriptionOwner;\n const authSigner = signer ?? this.defaultSigner;\n\n const round = await this.resolveContext(opts.context, encrypt !== undefined);\n const { registryVersion, redundancyBuffer } = round;\n if (\n round.nodeCount !== undefined &&\n round.nodes !== undefined &&\n round.nodes.length !== round.nodeCount\n ) {\n throw new Error(\n `Gateway node list has ${round.nodes.length} nodes but registry ${registryVersion} has node_count ${round.nodeCount} — refresh the round context`,\n );\n }\n const nodeCount = round.nodeCount ?? round.nodes?.length;\n if (nodeCount === undefined) {\n throw new Error(\"Round context resolved neither nodeCount nor nodes\");\n }\n\n let lastError: unknown;\n for (let attempt = 0; attempt < maxRetries; attempt++) {\n const timestamp = Math.floor(Date.now() / 1000);\n\n const seed = deriveSelectionSeed(sourceIdBytes, registryVersion, timestamp);\n const groupSize = effectiveSelectionSize(signaturesRequired, redundancyBuffer, nodeCount);\n const bitmap = deriveGroupBitmap(seed, nodeCount, groupSize);\n const indices = selectedIndices(bitmap, nodeCount);\n\n let encKeyBundle: ReturnType<typeof encryptForNodes> | undefined;\n if (encrypt) {\n const selected = selectedNodesForPrivateApiEncryption(round.nodes ?? [], indices);\n\n if (verifyNodeKeys) {\n await verifyNodeKeys({\n sourceId,\n registryVersion,\n timestamp,\n selectedIndexes: [...indices],\n selectedNodes: selected.map((node) => ({ ...node })),\n });\n }\n\n encKeyBundle = encryptForNodes(requestApiConfig, encrypt.secrets, selected);\n }\n\n const baseBody: Record<string, unknown> = {\n sourceId,\n registryVersion,\n timestamp,\n maxAge,\n signaturesRequired,\n subscriptionOwner,\n consumerAuthority,\n apiConfig: requestApiConfig,\n };\n if (encKeyBundle) baseBody.encKeyBundle = encKeyBundle;\n\n for (const endpoint of this.endpoints) {\n try {\n let authSig: Uint8Array = ZERO_AUTH_SIG;\n if (authSigner) {\n const gateway = await this.resolveGatewayPda(endpoint, timeoutMs);\n authSig = await authSigner(\n hashRequestAuth({\n programId: this.programIdBytes,\n gateway,\n sourceId: sourceIdBytes,\n signaturesRequired,\n timestamp,\n }),\n );\n }\n const body = { ...baseBody, authSig: bytesToHex0x(authSig) };\n\n const res = await this.post(\n `${endpoint.url}/v1/round/execute`,\n body,\n timeoutMs,\n );\n const errorDetail = !res.ok ? await parseGatewayErrorDetail(res) : undefined;\n if (res.status === 400 || res.status === 401) {\n throw new GatewayError(\n formatGatewayErrorMessage(\"Gateway rejected request\", res.status, errorDetail),\n res.status,\n );\n }\n if (res.status === 503) {\n lastError = new GatewayError(\n formatGatewayErrorMessage(\"Gateway unavailable\", 503, errorDetail),\n 503,\n );\n continue; // a different gateway may already hold the AggSig\n }\n if (!res.ok) {\n lastError = new GatewayError(\n formatGatewayErrorMessage(\"Gateway error\", res.status, errorDetail),\n res.status,\n );\n continue;\n }\n const json = (await res.json()) as GatewaySignedDataResponse;\n const payload = json.data ?? (\n json.status === \"completed\" ? (json as unknown as GatewaySignedData) : undefined\n );\n if (json.status === \"completed\" && payload) {\n return toResult(payload, {\n sourceId,\n registryVersion,\n timestamp,\n signaturesRequired,\n bitmap,\n });\n }\n lastError = new Error(`Gateway returned status: ${json.status}`);\n } catch (err) {\n if (err instanceof GatewayError && (err.status === 400 || err.status === 401)) {\n throw err;\n }\n lastError = err; // timeout / network / identity lookup → next endpoint\n }\n }\n }\n throw lastError instanceof Error\n ? lastError\n : new Error(\"Gateway round failed after retries\");\n }\n\n /**\n * Resolve the round inputs, fetching only the fields absent from `cached`.\n * Registry version, redundancy buffer and node count are treated as a unit (one\n * snapshot read). The node list is fetched only when `needNodes` (private API\n * encryption) or when nothing else can tell us the node count.\n */\n private async resolveContext(\n cached: Partial<RoundContext> | undefined,\n needNodes: boolean,\n ): Promise<ResolvedRound> {\n const hasRegistry =\n cached?.registryVersion !== undefined && cached?.redundancyBuffer !== undefined;\n const registryPromise: Promise<RegistrySelectionConfig> = hasRegistry\n ? Promise.resolve({\n registryVersion: cached.registryVersion!,\n redundancyBuffer: cached.redundancyBuffer!,\n ...(cached.nodeCount !== undefined ? { nodeCount: cached.nodeCount } : {}),\n })\n : this.getRegistrySelectionConfig();\n\n if (cached?.nodes !== undefined) {\n return { ...(await registryPromise), nodes: cached.nodes };\n }\n if (needNodes) {\n const [registry, nodes] = await Promise.all([registryPromise, this.getNodes()]);\n return { ...registry, nodes };\n }\n const registry = await registryPromise;\n if (registry.nodeCount !== undefined) return registry;\n return { ...registry, nodes: await this.getNodes() };\n }\n\n /** Gateway PDA bytes for an endpoint, cached per URL. A failed lookup is not cached. */\n private resolveGatewayPda(\n endpoint: GatewayEndpoint,\n timeoutMs: number,\n ): Promise<Uint8Array> {\n let pending = this.gatewayPdas.get(endpoint.url);\n if (!pending) {\n pending = this.lookupGatewayPda(endpoint, timeoutMs).catch((err: unknown) => {\n this.gatewayPdas.delete(endpoint.url);\n throw err;\n });\n this.gatewayPdas.set(endpoint.url, pending);\n }\n return pending;\n }\n\n private async lookupGatewayPda(\n endpoint: GatewayEndpoint,\n timeoutMs: number,\n ): Promise<Uint8Array> {\n const authority =\n endpoint.gatewayAuthority ??\n (await this.fetchGatewayInfo(endpoint, timeoutMs)).gatewayAuthority;\n return deriveGatewayPda(authority, this.programId);\n }\n\n private async firstReachableData<T>(path: string): Promise<T> {\n let lastError: unknown;\n for (const endpoint of this.endpoints) {\n try {\n const res = await fetch(`${endpoint.url}${path}`, { method: \"GET\" });\n if (res.ok) {\n return unwrapEnvelope(await res.json(), path, res.status) as T;\n }\n lastError = new GatewayError(`GET ${path} failed (${res.status})`, res.status);\n } catch (err) {\n lastError = err;\n }\n }\n throw lastError instanceof Error ? lastError : new Error(`GET ${path} failed`);\n }\n\n private async post(\n url: string,\n body: unknown,\n timeoutMs: number,\n ): Promise<Response> {\n return this.fetchWithTimeout(\n url,\n {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(body),\n },\n timeoutMs,\n );\n }\n\n private async fetchWithTimeout(\n url: string,\n init: RequestInit,\n timeoutMs?: number,\n ): Promise<Response> {\n if (timeoutMs === undefined) {\n return fetch(url, init);\n }\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n try {\n return await fetch(url, { ...init, signal: controller.signal });\n } finally {\n clearTimeout(timer);\n }\n }\n}\n\nfunction assertSignaturesRequired(value: number): number {\n if (!Number.isInteger(value) || value < 1 || value > 255) {\n throw new RangeError(`signaturesRequired must be an integer in 1..255, got ${value}`);\n }\n return value;\n}\n\n/** Unwrap the gateway `{ status, data }` envelope; passes bare payloads through. */\nfunction unwrapEnvelope(json: unknown, path: string, status?: number): unknown {\n if (json && typeof json === \"object\" && \"data\" in json) {\n const wrapped = json as Partial<GatewayEnvelope<unknown>>;\n if (wrapped.data === undefined) {\n throw new GatewayError(`GET ${path} returned malformed payload`, status);\n }\n return wrapped.data;\n }\n return json;\n}\n\nfunction selectedNodesForPrivateApiEncryption(\n nodes: Node[],\n selectedIndexes: number[],\n): Node[] {\n if (!Array.isArray(nodes)) {\n throw new Error(\"Private API encryption requires a gateway node array\");\n }\n if (selectedIndexes.length === 0) {\n throw new Error(\"Private API encryption requires at least one selected node\");\n }\n\n const selectedIndexSet = new Set<number>();\n for (const index of selectedIndexes) {\n if (!Number.isInteger(index) || index < 0) {\n throw new Error(\n `Private API encryption selected index must be a non-negative integer: ${index}`,\n );\n }\n if (selectedIndexSet.has(index)) {\n throw new Error(`Private API encryption selected index is duplicated: ${index}`);\n }\n selectedIndexSet.add(index);\n }\n\n const selectedByIndex = new Map<number, Node>();\n const nodeIndexes = new Set<number>();\n for (const node of nodes) {\n if (!Number.isInteger(node.index) || node.index < 0) {\n throw new Error(`Gateway node index must be a non-negative integer: ${node.index}`);\n }\n if (node.index >= nodes.length) {\n throw new Error(\n `Gateway node index ${node.index} is outside the node list range 0..${nodes.length - 1}`,\n );\n }\n if (nodeIndexes.has(node.index)) {\n throw new Error(`Gateway returned duplicate node index: ${node.index}`);\n }\n nodeIndexes.add(node.index);\n if (!selectedIndexSet.has(node.index)) continue;\n selectedByIndex.set(node.index, node);\n }\n\n const selectedSigningKeys = new Set<string>();\n return selectedIndexes.map((index) => {\n const node = selectedByIndex.get(index);\n if (!node) {\n throw new Error(`Gateway node list is missing selected node index: ${index}`);\n }\n const signingKey = normalizeSecp256k1PublicKeyHex(\n node.signingKey,\n `Gateway selected node ${index} signingKey`,\n );\n if (selectedSigningKeys.has(signingKey)) {\n throw new Error(`Gateway returned duplicate selected node signingKey: ${index}`);\n }\n selectedSigningKeys.add(signingKey);\n return node;\n });\n}\n\nfunction formatGatewayErrorMessage(\n prefix: string,\n status: number,\n detail?: string,\n): string {\n if (!detail) return `${prefix} (${status})`;\n return `${prefix} (${status}): ${detail}`;\n}\n\nasync function parseGatewayErrorDetail(res: Response): Promise<string | undefined> {\n try {\n const text = (await res.text()).trim();\n if (!text) return undefined;\n try {\n const parsed = JSON.parse(text) as unknown;\n if (parsed && typeof parsed === \"object\") {\n const record = parsed as Record<string, unknown>;\n const message = record.error ?? record.message ?? record.detail;\n if (typeof message === \"string\" && message.trim()) return message.trim();\n }\n } catch {\n // fall back to raw body below\n }\n return text;\n } catch {\n return undefined;\n }\n}\n\nfunction normalizeHex(value: string): string {\n return (value.startsWith(\"0x\") || value.startsWith(\"0X\") ? value.slice(2) : value).toLowerCase();\n}\n\n/**\n * Shape the gateway payload into a `DataUpdateResult`. `sourceId` and\n * `signaturesRequired` must echo the request (they key the feed and the signed\n * message); `timestamp`, `registryVersion` and `signersBitmap` are taken from the\n * response because a non-fresh (cached) attestation legitimately carries the earlier\n * round's values.\n */\nfunction toResult(\n data: GatewaySignedData,\n ctx: {\n sourceId: string;\n registryVersion: number;\n timestamp: number;\n signaturesRequired: number;\n bitmap: Uint8Array;\n },\n): DataUpdateResult {\n if (data.sourceId !== undefined && normalizeHex(data.sourceId) !== ctx.sourceId) {\n throw new GatewayError(\n `Gateway response sourceId ${data.sourceId} does not match the requested ${ctx.sourceId}`,\n );\n }\n if (\n data.signaturesRequired !== undefined &&\n data.signaturesRequired !== ctx.signaturesRequired\n ) {\n throw new GatewayError(\n `Gateway response signaturesRequired ${data.signaturesRequired} does not match the requested ${ctx.signaturesRequired}`,\n );\n }\n return {\n sourceId: ctx.sourceId,\n value: data.value ?? \"\",\n valuePacked: data.valuePacked ?? \"\",\n timestamp: data.timestamp ?? ctx.timestamp,\n registryVersion: data.registryVersion ?? ctx.registryVersion,\n signaturesRequired: ctx.signaturesRequired,\n signersBitmap: data.signersBitmap ?? bytesToHex(ctx.bitmap),\n s: data.s ?? \"\",\n commitmentAddr: data.commitmentAddr ?? \"\",\n fresh: data.fresh ?? true,\n };\n}\n","/**\n * Account views and remaining-accounts construction for `submit_attestation`.\n */\nimport type { Address } from \"@solana/kit\";\nimport { hexToBytes } from \"../core/encoding.js\";\nimport { selectedIndices } from \"../core/selection.js\";\nimport { type SolanaAccountMeta, toPublicKey } from \"./kit.js\";\n\n/** On-chain `RegistryState` (Anchor camelCase): pointer to the current immutable snapshot. */\nexport interface RegistryStateView {\n currentVersion: number;\n nextVersion: number;\n}\n\n/**\n * Immutable, version-addressed `Registry` snapshot. `nodes` holds only the populated\n * `[..nodeCount]` entries; entry `i` is the `Node` account address for signer bit `i`.\n */\nexport interface RegistryView {\n version: number;\n nodeCount: number;\n /** Selection padding: `min(signaturesRequired + redundancyBuffer, nodeCount)`. */\n redundancyBuffer: number;\n nodes: Address[];\n /** Unix seconds until which this superseded snapshot still verifies; `0n` while current. */\n graceActiveUntil: bigint;\n}\n\n/** Set-bit indices of a 32-byte big-endian bitmap (full 256-bit scan). */\nexport function bitmapToIndices(signersBitmapHex: string): number[] {\n return selectedIndices(hexToBytes(signersBitmapHex), 256);\n}\n\n/**\n * Signer `Node` accounts for `submit_attestation`, in ascending signers-bitmap bit order.\n * Bit `i` resolves to `registry.nodes[i]` of the snapshot the round was signed against;\n * a bit at or beyond `nodeCount` can never verify, so it is rejected client-side.\n */\nexport function resolveRemainingAccounts(\n signersBitmapHex: string,\n registry: RegistryView,\n): SolanaAccountMeta[] {\n return bitmapToIndices(signersBitmapHex).map((bit) => {\n const node = registry.nodes[bit];\n if (bit >= registry.nodeCount || node === undefined) {\n throw new Error(\n `InvalidNodeIndex: signer bit ${bit} is outside registry ${registry.version} node_count ${registry.nodeCount}`,\n );\n }\n return { pubkey: toPublicKey(node), isSigner: false, isWritable: false };\n });\n}\n","/**\n * Consumer PDA derivations. Seed byte strings are cross-checked against the IDL const\n * seeds in `test/solana.test.ts` / `test/idl.test.ts`.\n */\nimport type { Address } from \"@solana/kit\";\nimport { ensureLength, u32le, utf8 } from \"../core/encoding.js\";\nimport {\n addressBytes,\n findProgramAddressSync,\n type SolanaAddress,\n} from \"./kit.js\";\n\nconst SEED_CONFIG = utf8(\"molpha_config\");\nconst SEED_REGISTRY = utf8(\"molpha_registry\");\nconst SEED_NODE = utf8(\"molpha_node\");\nconst SEED_PLAN = utf8(\"molpha_plan\");\nconst SEED_SUBSCRIPTION = utf8(\"molpha_subscription\");\nconst SEED_FEED = utf8(\"molpha_feed\");\nconst SEED_GATEWAY = utf8(\"molpha_gateway\");\n\nconst pda = (seeds: Uint8Array[], programId: SolanaAddress): Address =>\n findProgramAddressSync(seeds, programId);\n\nexport const protocolConfigPda = (programId: SolanaAddress): Address =>\n pda([SEED_CONFIG], programId);\n\n/** Mutable pointer to the current registry snapshot: `[\"molpha_registry\"]`. */\nexport const registryStatePda = (programId: SolanaAddress): Address =>\n pda([SEED_REGISTRY], programId);\n\n/** Immutable, version-addressed registry snapshot: `[\"molpha_registry\", version u32 LE]`. */\nexport const registryPda = (version: number, programId: SolanaAddress): Address =>\n pda([SEED_REGISTRY, u32le(version)], programId);\n\n/**\n * Owner-keyed `Node` account: `[\"molpha_node\", owner]`. Registry snapshots store these\n * addresses directly in `nodes[i]`, so consumers rarely need to derive them.\n */\nexport const nodePda = (owner: SolanaAddress, programId: SolanaAddress): Address =>\n pda([SEED_NODE, addressBytes(owner)], programId);\n\n/** Bonded gateway account: `[\"molpha_gateway\", gatewayAuthority]` — the `gateway` bound into `RequestAuth`. */\nexport const gatewayPda = (authority: SolanaAddress, programId: SolanaAddress): Address =>\n pda([SEED_GATEWAY, addressBytes(authority)], programId);\n\n/** Plan PDA is `[b\"molpha_plan\", [planType as u8]]`. */\nexport const planPda = (planId: number, programId: SolanaAddress): Address =>\n pda([SEED_PLAN, Uint8Array.of(planId)], programId);\n\nexport const subscriptionPda = (owner: SolanaAddress, programId: SolanaAddress): Address =>\n pda([SEED_SUBSCRIPTION, addressBytes(owner)], programId);\n\n/**\n * Feed state, keyed per `(sourceId, signaturesRequired, submitter)`:\n * `[\"molpha_feed\", sourceId, [signaturesRequired], submitter]`. Created lazily by the\n * first `submit_attestation` from that submitter.\n */\nexport function feedPda(\n sourceId: Uint8Array,\n signaturesRequired: number,\n submitter: SolanaAddress,\n programId: SolanaAddress,\n): Address {\n ensureLength(sourceId, 32, \"sourceId\");\n if (!Number.isInteger(signaturesRequired) || signaturesRequired < 0 || signaturesRequired > 255) {\n throw new RangeError(`signaturesRequired out of u8 range: ${signaturesRequired}`);\n }\n return pda(\n [SEED_FEED, sourceId, Uint8Array.of(signaturesRequired), addressBytes(submitter)],\n programId,\n );\n}\n","{\n \"address\": \"MoLFnEbuMS5gWnXNfUMLAYSqRM3eQZKWRzjeMQfqbT3\",\n \"metadata\": {\n \"name\": \"molpha\",\n \"version\": \"0.1.0\",\n \"spec\": \"0.1.0\",\n \"description\": \"Molpha Oracle Solana Program - Merged from molpha-solana and molpha-feed\"\n },\n \"instructions\": [\n {\n \"name\": \"add_delegate\",\n \"discriminator\": [\n 3,\n 67,\n 128,\n 218,\n 69,\n 139,\n 53,\n 88\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"subscription\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 115,\n 117,\n 98,\n 115,\n 99,\n 114,\n 105,\n 112,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n }\n ]\n }\n },\n {\n \"name\": \"delegate_account\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 100,\n 101,\n 108,\n 101,\n 103,\n 97,\n 116,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.delegate\"\n }\n ]\n }\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"AddDelegateArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"add_plan\",\n \"discriminator\": [\n 199,\n 79,\n 170,\n 244,\n 91,\n 21,\n 110,\n 218\n ],\n \"accounts\": [\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"plan\",\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true,\n \"relations\": [\n \"protocol_config\"\n ]\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"AddPlanArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"claim_node_rewards\",\n \"discriminator\": [\n 151,\n 201,\n 146,\n 161,\n 104,\n 100,\n 214,\n 1\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"node\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 110,\n 111,\n 100,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n }\n ]\n }\n },\n {\n \"name\": \"treasury\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"destination\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"deactivate_gateway\",\n \"discriminator\": [\n 2,\n 119,\n 77,\n 158,\n 3,\n 8,\n 116,\n 252\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"gateway\",\n \"writable\": true\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"deactivate_node\",\n \"discriminator\": [\n 242,\n 185,\n 114,\n 146,\n 22,\n 248,\n 23,\n 157\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"registry_state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"current_registry\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"registry_state.current_version\",\n \"account\": \"RegistryState\"\n }\n ]\n }\n },\n {\n \"name\": \"new_registry\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"registry_state.next_version\",\n \"account\": \"RegistryState\"\n }\n ]\n }\n },\n {\n \"name\": \"node\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 110,\n 111,\n 100,\n 101\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"node_owner\"\n }\n ]\n }\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"node_owner\",\n \"type\": \"pubkey\"\n }\n ]\n },\n {\n \"name\": \"extend_subscription\",\n \"discriminator\": [\n 47,\n 230,\n 116,\n 118,\n 171,\n 228,\n 24,\n 46\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"subscription\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 115,\n 117,\n 98,\n 115,\n 99,\n 114,\n 105,\n 112,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n }\n ]\n }\n },\n {\n \"name\": \"plan\"\n },\n {\n \"name\": \"owner_usdc\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"treasury\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"finalize_round\",\n \"discriminator\": [\n 239,\n 160,\n 254,\n 11,\n 254,\n 144,\n 53,\n 148\n ],\n \"accounts\": [\n {\n \"name\": \"caller\",\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"treasury\",\n \"docs\": [\n \"Read only: crediting checks the treasury can back the liability it is about to add.\"\n ],\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config\"\n },\n {\n \"kind\": \"const\",\n \"value\": [\n 6,\n 221,\n 246,\n 225,\n 215,\n 101,\n 161,\n 147,\n 217,\n 203,\n 225,\n 70,\n 206,\n 235,\n 121,\n 172,\n 28,\n 180,\n 133,\n 237,\n 95,\n 91,\n 55,\n 145,\n 58,\n 140,\n 245,\n 133,\n 126,\n 255,\n 0,\n 169\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"registry\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"round_record.registry_version\",\n \"account\": \"RoundReceiptRecord\"\n }\n ]\n }\n },\n {\n \"name\": \"round_record\",\n \"docs\": [\n \"Settlement record created by `settle_*_round`; seeds omitted because only those instructions init it.\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"gateway\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"freeze_unresponsive_node\",\n \"discriminator\": [\n 189,\n 103,\n 115,\n 164,\n 136,\n 19,\n 20,\n 42\n ],\n \"accounts\": [\n {\n \"name\": \"caller\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"registry_state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"current_registry\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"registry_state.current_version\",\n \"account\": \"RegistryState\"\n }\n ]\n }\n },\n {\n \"name\": \"new_registry\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"registry_state.next_version\",\n \"account\": \"RegistryState\"\n }\n ]\n }\n },\n {\n \"name\": \"node\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 110,\n 111,\n 100,\n 101\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"_node_owner\"\n }\n ]\n }\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"node_owner\",\n \"type\": \"pubkey\"\n }\n ]\n },\n {\n \"name\": \"initialize\",\n \"discriminator\": [\n 175,\n 175,\n 109,\n 31,\n 13,\n 152,\n 155,\n 237\n ],\n \"accounts\": [\n {\n \"name\": \"protocol_config\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"registry_state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"registry\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"const\",\n \"value\": [\n 0,\n 0,\n 0,\n 0\n ]\n }\n ]\n }\n },\n {\n \"name\": \"usdc_mint\"\n },\n {\n \"name\": \"treasury\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"usdc_mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"node_deposit_vault\",\n \"docs\": [\n \"One vault for every node's security deposit, held apart from protocol revenue.\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"registry_state\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"usdc_mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"InitializeArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"punish_commitment_reuse\",\n \"discriminator\": [\n 250,\n 133,\n 176,\n 169,\n 104,\n 205,\n 225,\n 58\n ],\n \"accounts\": [\n {\n \"name\": \"reporter\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"registry_state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"evidence_registry\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.registry_version\"\n }\n ]\n }\n },\n {\n \"name\": \"current_registry\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"registry_state.current_version\",\n \"account\": \"RegistryState\"\n }\n ]\n }\n },\n {\n \"name\": \"new_registry\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"registry_state.next_version\",\n \"account\": \"RegistryState\"\n }\n ]\n }\n },\n {\n \"name\": \"punishment_case\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 112,\n 117,\n 110,\n 105,\n 115,\n 104,\n 109,\n 101,\n 110,\n 116\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.evidence_hash\"\n }\n ]\n }\n },\n {\n \"name\": \"node_deposit_vault\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"registry_state\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"treasury\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"reporter_usdc\",\n \"docs\": [\n \"Must already exist. Creating it here would cost two more transaction slots, which the\",\n \"signer list needs more than a reporter needs the convenience.\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"reporter\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"PunishCommitmentReuseArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"punish_equivocation\",\n \"discriminator\": [\n 216,\n 84,\n 168,\n 227,\n 38,\n 28,\n 88,\n 96\n ],\n \"accounts\": [\n {\n \"name\": \"reporter\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"registry_state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"evidence_registry\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.registry_version\"\n }\n ]\n }\n },\n {\n \"name\": \"current_registry\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"registry_state.current_version\",\n \"account\": \"RegistryState\"\n }\n ]\n }\n },\n {\n \"name\": \"new_registry\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"registry_state.next_version\",\n \"account\": \"RegistryState\"\n }\n ]\n }\n },\n {\n \"name\": \"punishment_case\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 112,\n 117,\n 110,\n 105,\n 115,\n 104,\n 109,\n 101,\n 110,\n 116\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.evidence_hash\"\n }\n ]\n }\n },\n {\n \"name\": \"node_deposit_vault\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"registry_state\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"treasury\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"reporter_usdc\",\n \"docs\": [\n \"Must already exist. Creating it here would cost two more transaction slots, which the\",\n \"signer list needs more than a reporter needs the convenience.\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"reporter\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"PunishEquivocationArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"punish_nonce_reuse\",\n \"discriminator\": [\n 162,\n 208,\n 148,\n 57,\n 116,\n 135,\n 187,\n 177\n ],\n \"accounts\": [\n {\n \"name\": \"reporter\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"registry_state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"evidence_registry\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.registry_version\"\n }\n ]\n }\n },\n {\n \"name\": \"current_registry\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"registry_state.current_version\",\n \"account\": \"RegistryState\"\n }\n ]\n }\n },\n {\n \"name\": \"new_registry\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"registry_state.next_version\",\n \"account\": \"RegistryState\"\n }\n ]\n }\n },\n {\n \"name\": \"punishment_case\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 112,\n 117,\n 110,\n 105,\n 115,\n 104,\n 109,\n 101,\n 110,\n 116\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.evidence_hash\"\n }\n ]\n }\n },\n {\n \"name\": \"node_deposit_vault\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"registry_state\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"treasury\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"reporter_usdc\",\n \"docs\": [\n \"Must already exist. Creating it here would cost two more transaction slots, which the\",\n \"signer list needs more than a reporter needs the convenience.\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"reporter\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"PunishNonceReuseArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"punish_unsolicited_signing\",\n \"discriminator\": [\n 32,\n 125,\n 240,\n 227,\n 56,\n 191,\n 184,\n 60\n ],\n \"accounts\": [\n {\n \"name\": \"reporter\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"registry_state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"evidence_registry\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.registry_version\"\n }\n ]\n }\n },\n {\n \"name\": \"current_registry\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"registry_state.current_version\",\n \"account\": \"RegistryState\"\n }\n ]\n }\n },\n {\n \"name\": \"new_registry\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"registry_state.next_version\",\n \"account\": \"RegistryState\"\n }\n ]\n }\n },\n {\n \"name\": \"punishment_case\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 112,\n 117,\n 110,\n 105,\n 115,\n 104,\n 109,\n 101,\n 110,\n 116\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.evidence_hash\"\n }\n ]\n }\n },\n {\n \"name\": \"node_deposit_vault\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"registry_state\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"treasury\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"reporter_usdc\",\n \"docs\": [\n \"Must already exist. Creating it here would cost two more transaction slots, which the\",\n \"signer list needs more than a reporter needs the convenience.\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"reporter\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"PunishUnsolicitedSigningArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"register_gateway\",\n \"discriminator\": [\n 183,\n 184,\n 135,\n 228,\n 71,\n 191,\n 76,\n 222\n ],\n \"accounts\": [\n {\n \"name\": \"gateway_authority\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"gateway\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 103,\n 97,\n 116,\n 101,\n 119,\n 97,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"gateway_authority\"\n }\n ]\n }\n },\n {\n \"name\": \"usdc_mint\"\n },\n {\n \"name\": \"authority_usdc\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"gateway_authority\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"usdc_mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"gateway_bond\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"gateway\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"usdc_mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"RegisterGatewayArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"register_node\",\n \"discriminator\": [\n 102,\n 85,\n 117,\n 114,\n 194,\n 188,\n 211,\n 168\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"signer\": true,\n \"relations\": [\n \"protocol_config\"\n ]\n },\n {\n \"name\": \"node_owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"registry_state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"current_registry\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"registry_state.current_version\",\n \"account\": \"RegistryState\"\n }\n ]\n }\n },\n {\n \"name\": \"new_registry\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"registry_state.next_version\",\n \"account\": \"RegistryState\"\n }\n ]\n }\n },\n {\n \"name\": \"node\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 110,\n 111,\n 100,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"node_owner\"\n }\n ]\n }\n },\n {\n \"name\": \"secp256k1_key_claim\",\n \"writable\": true\n },\n {\n \"name\": \"owner_usdc\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"node_owner\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"node_deposit_vault\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"registry_state\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"RegisterNodeArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"reinstate_node\",\n \"discriminator\": [\n 13,\n 253,\n 148,\n 213,\n 56,\n 50,\n 49,\n 121\n ],\n \"accounts\": [\n {\n \"name\": \"caller\",\n \"docs\": [\n \"Permissionless after `frozen_until`; authority may reinstate earlier.\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"registry_state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"current_registry\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"registry_state.current_version\",\n \"account\": \"RegistryState\"\n }\n ]\n }\n },\n {\n \"name\": \"new_registry\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"registry_state.next_version\",\n \"account\": \"RegistryState\"\n }\n ]\n }\n },\n {\n \"name\": \"node\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 110,\n 111,\n 100,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"node.owner\",\n \"account\": \"Node\"\n }\n ]\n }\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"remove_delegate\",\n \"discriminator\": [\n 94,\n 37,\n 16,\n 59,\n 7,\n 84,\n 97,\n 211\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"subscription\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 115,\n 117,\n 98,\n 115,\n 99,\n 114,\n 105,\n 112,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n }\n ]\n }\n },\n {\n \"name\": \"delegate_account\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 100,\n 101,\n 108,\n 101,\n 103,\n 97,\n 116,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.delegate\"\n }\n ]\n }\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"RemoveDelegateArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"set_delegate_paused\",\n \"discriminator\": [\n 99,\n 154,\n 230,\n 157,\n 100,\n 20,\n 79,\n 158\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"delegate_account\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 100,\n 101,\n 108,\n 101,\n 103,\n 97,\n 116,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"delegate_account.delegate\",\n \"account\": \"Delegate\"\n }\n ]\n }\n }\n ],\n \"args\": [\n {\n \"name\": \"paused\",\n \"type\": \"bool\"\n }\n ]\n },\n {\n \"name\": \"settle_subscription_round\",\n \"discriminator\": [\n 172,\n 131,\n 103,\n 246,\n 197,\n 245,\n 65,\n 210\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true,\n \"relations\": [\n \"gateway\"\n ]\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"registry\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.registry_version\"\n }\n ]\n }\n },\n {\n \"name\": \"subscription\",\n \"writable\": true\n },\n {\n \"name\": \"consumer_delegate\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"gateway\",\n \"writable\": true\n },\n {\n \"name\": \"round_record\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 111,\n 117,\n 110,\n 100\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"subscription.owner\",\n \"account\": \"Subscription\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"gateway\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.source_id\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.signatures_required\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.canonical_timestamp\"\n }\n ]\n }\n },\n {\n \"name\": \"instructions_sysvar\",\n \"address\": \"Sysvar1nstructions1111111111111111111111111\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"SettleRoundArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"settle_x402_round\",\n \"discriminator\": [\n 19,\n 84,\n 17,\n 46,\n 196,\n 5,\n 241,\n 86\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true,\n \"relations\": [\n \"gateway\"\n ]\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"registry\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.registry_version\"\n }\n ]\n }\n },\n {\n \"name\": \"gateway\",\n \"writable\": true\n },\n {\n \"name\": \"gateway_usdc\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"treasury\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"round_record\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 120,\n 52,\n 48,\n 50,\n 95,\n 114,\n 111,\n 117,\n 110,\n 100\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.payer_id\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"gateway\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.source_id\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.signatures_required\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.canonical_timestamp\"\n }\n ]\n }\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"SettleX402RoundArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"submit_attestation\",\n \"discriminator\": [\n 238,\n 220,\n 255,\n 105,\n 183,\n 211,\n 40,\n 83\n ],\n \"accounts\": [\n {\n \"name\": \"submitter\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"registry\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.registry_version\"\n }\n ]\n }\n },\n {\n \"name\": \"feed\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 102,\n 101,\n 101,\n 100\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.source_id\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"args.signatures_required\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"submitter\"\n }\n ]\n }\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"SubmitAttestationArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"subscribe\",\n \"discriminator\": [\n 254,\n 28,\n 191,\n 138,\n 156,\n 179,\n 183,\n 53\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"plan\"\n },\n {\n \"name\": \"subscription\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 115,\n 117,\n 98,\n 115,\n 99,\n 114,\n 105,\n 112,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n }\n ]\n }\n },\n {\n \"name\": \"owner_usdc\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"treasury\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n }\n ],\n \"args\": [\n {\n \"name\": \"plan_type\",\n \"type\": {\n \"defined\": {\n \"name\": \"PlanType\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"update_config\",\n \"discriminator\": [\n 29,\n 158,\n 252,\n 191,\n 10,\n 83,\n 219,\n 99\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true,\n \"relations\": [\n \"protocol_config\"\n ]\n },\n {\n \"name\": \"protocol_config\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"UpdateConfigArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"update_node_endpoint\",\n \"discriminator\": [\n 63,\n 119,\n 147,\n 11,\n 73,\n 81,\n 230,\n 155\n ],\n \"accounts\": [\n {\n \"name\": \"node_owner\",\n \"signer\": true\n },\n {\n \"name\": \"node\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 110,\n 111,\n 100,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"node_owner\"\n }\n ]\n }\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"UpdateNodeEndpointArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"update_plan\",\n \"discriminator\": [\n 119,\n 112,\n 58,\n 60,\n 76,\n 205,\n 1,\n 100\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true,\n \"relations\": [\n \"protocol_config\"\n ]\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"plan\",\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"UpdatePlanArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"update_registry_policy\",\n \"discriminator\": [\n 89,\n 241,\n 118,\n 140,\n 129,\n 101,\n 42,\n 161\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true,\n \"relations\": [\n \"protocol_config\"\n ]\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"registry_state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"current_registry\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"registry_state.current_version\",\n \"account\": \"RegistryState\"\n }\n ]\n }\n },\n {\n \"name\": \"new_registry\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"registry_state.next_version\",\n \"account\": \"RegistryState\"\n }\n ]\n }\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"redundancy_buffer\",\n \"type\": \"u8\"\n }\n ]\n },\n {\n \"name\": \"validate_round\",\n \"discriminator\": [\n 68,\n 222,\n 207,\n 194,\n 227,\n 189,\n 48,\n 220\n ],\n \"accounts\": [\n {\n \"name\": \"challenger\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"registry\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"round_record.registry_version\",\n \"account\": \"RoundReceiptRecord\"\n }\n ]\n }\n },\n {\n \"name\": \"round_record\",\n \"writable\": true\n },\n {\n \"name\": \"gateway\",\n \"writable\": true\n },\n {\n \"name\": \"usdc_mint\"\n },\n {\n \"name\": \"gateway_bond\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"gateway\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"usdc_mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"treasury\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"usdc_mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"challenger_usdc\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"challenger\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"usdc_mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"subscription\",\n \"docs\": [\n \"Subscription path (`record.kind == Subscription`). Must be `None` for x402 rounds.\"\n ],\n \"writable\": true,\n \"optional\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"withdraw_gateway_bond\",\n \"discriminator\": [\n 4,\n 157,\n 213,\n 210,\n 249,\n 205,\n 86,\n 73\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true,\n \"relations\": [\n \"gateway\"\n ]\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"gateway\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 103,\n 97,\n 116,\n 101,\n 119,\n 97,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n }\n ]\n }\n },\n {\n \"name\": \"gateway_bond\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"gateway\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"destination\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"withdraw_node_deposit\",\n \"discriminator\": [\n 53,\n 141,\n 47,\n 100,\n 83,\n 245,\n 210,\n 6\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"node\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 110,\n 111,\n 100,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n }\n ]\n }\n },\n {\n \"name\": \"registry_state\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 111,\n 108,\n 112,\n 104,\n 97,\n 95,\n 114,\n 101,\n 103,\n 105,\n 115,\n 116,\n 114,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"node_deposit_vault\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"registry_state\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"destination\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"protocol_config.usdc_mint\",\n \"account\": \"ProtocolConfig\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n }\n ],\n \"accounts\": [\n {\n \"name\": \"Delegate\",\n \"discriminator\": [\n 92,\n 145,\n 166,\n 111,\n 11,\n 38,\n 38,\n 247\n ]\n },\n {\n \"name\": \"Feed\",\n \"discriminator\": [\n 69,\n 191,\n 16,\n 227,\n 132,\n 187,\n 84,\n 227\n ]\n },\n {\n \"name\": \"Gateway\",\n \"discriminator\": [\n 210,\n 132,\n 162,\n 254,\n 10,\n 224,\n 45,\n 86\n ]\n },\n {\n \"name\": \"Node\",\n \"discriminator\": [\n 208,\n 53,\n 1,\n 3,\n 49,\n 122,\n 180,\n 49\n ]\n },\n {\n \"name\": \"Plan\",\n \"discriminator\": [\n 161,\n 231,\n 251,\n 119,\n 2,\n 12,\n 162,\n 2\n ]\n },\n {\n \"name\": \"ProtocolConfig\",\n \"discriminator\": [\n 207,\n 91,\n 250,\n 28,\n 152,\n 179,\n 215,\n 209\n ]\n },\n {\n \"name\": \"PunishmentCase\",\n \"discriminator\": [\n 215,\n 186,\n 32,\n 101,\n 142,\n 74,\n 46,\n 130\n ]\n },\n {\n \"name\": \"Registry\",\n \"discriminator\": [\n 47,\n 174,\n 110,\n 246,\n 184,\n 182,\n 252,\n 218\n ]\n },\n {\n \"name\": \"RegistryState\",\n \"discriminator\": [\n 29,\n 34,\n 224,\n 195,\n 175,\n 183,\n 99,\n 97\n ]\n },\n {\n \"name\": \"RoundReceiptRecord\",\n \"discriminator\": [\n 14,\n 85,\n 161,\n 183,\n 206,\n 89,\n 91,\n 94\n ]\n },\n {\n \"name\": \"Secp256k1KeyClaim\",\n \"discriminator\": [\n 128,\n 160,\n 40,\n 228,\n 165,\n 251,\n 194,\n 86\n ]\n },\n {\n \"name\": \"Subscription\",\n \"discriminator\": [\n 64,\n 7,\n 26,\n 135,\n 102,\n 132,\n 98,\n 33\n ]\n }\n ],\n \"events\": [\n {\n \"name\": \"CommitmentReuseProven\",\n \"discriminator\": [\n 23,\n 234,\n 92,\n 215,\n 72,\n 81,\n 199,\n 204\n ]\n },\n {\n \"name\": \"DelegateAdded\",\n \"discriminator\": [\n 96,\n 159,\n 58,\n 144,\n 26,\n 171,\n 141,\n 70\n ]\n },\n {\n \"name\": \"DelegateRemoved\",\n \"discriminator\": [\n 91,\n 243,\n 235,\n 175,\n 109,\n 235,\n 217,\n 84\n ]\n },\n {\n \"name\": \"DelegateStatusChanged\",\n \"discriminator\": [\n 188,\n 202,\n 137,\n 41,\n 54,\n 213,\n 14,\n 92\n ]\n },\n {\n \"name\": \"EquivocationProven\",\n \"discriminator\": [\n 157,\n 154,\n 111,\n 89,\n 40,\n 151,\n 241,\n 121\n ]\n },\n {\n \"name\": \"FeedUpdated\",\n \"discriminator\": [\n 200,\n 60,\n 190,\n 86,\n 247,\n 9,\n 50,\n 81\n ]\n },\n {\n \"name\": \"GatewayBondWithdrawn\",\n \"discriminator\": [\n 166,\n 159,\n 50,\n 16,\n 157,\n 33,\n 170,\n 54\n ]\n },\n {\n \"name\": \"GatewayDeactivated\",\n \"discriminator\": [\n 67,\n 206,\n 26,\n 221,\n 251,\n 18,\n 50,\n 73\n ]\n },\n {\n \"name\": \"GatewayRegistered\",\n \"discriminator\": [\n 171,\n 121,\n 170,\n 61,\n 195,\n 155,\n 35,\n 98\n ]\n },\n {\n \"name\": \"GatewaySlashed\",\n \"discriminator\": [\n 163,\n 240,\n 249,\n 251,\n 209,\n 77,\n 197,\n 142\n ]\n },\n {\n \"name\": \"NodeDeactivated\",\n \"discriminator\": [\n 74,\n 15,\n 22,\n 250,\n 74,\n 89,\n 202,\n 244\n ]\n },\n {\n \"name\": \"NodeDepositWithdrawn\",\n \"discriminator\": [\n 144,\n 148,\n 204,\n 72,\n 127,\n 171,\n 1,\n 39\n ]\n },\n {\n \"name\": \"NodeEndpointUpdated\",\n \"discriminator\": [\n 121,\n 121,\n 209,\n 202,\n 113,\n 134,\n 46,\n 240\n ]\n },\n {\n \"name\": \"NodeFrozenForInactivity\",\n \"discriminator\": [\n 140,\n 254,\n 59,\n 182,\n 248,\n 186,\n 235,\n 46\n ]\n },\n {\n \"name\": \"NodeLivelinessPenalized\",\n \"discriminator\": [\n 206,\n 204,\n 205,\n 149,\n 115,\n 28,\n 68,\n 11\n ]\n },\n {\n \"name\": \"NodePunished\",\n \"discriminator\": [\n 5,\n 220,\n 63,\n 21,\n 153,\n 202,\n 80,\n 79\n ]\n },\n {\n \"name\": \"NodeRegistered\",\n \"discriminator\": [\n 15,\n 57,\n 183,\n 59,\n 93,\n 55,\n 157,\n 195\n ]\n },\n {\n \"name\": \"NodeReinstated\",\n \"discriminator\": [\n 45,\n 0,\n 72,\n 79,\n 131,\n 183,\n 198,\n 205\n ]\n },\n {\n \"name\": \"NonceReuseProven\",\n \"discriminator\": [\n 70,\n 131,\n 67,\n 45,\n 135,\n 64,\n 50,\n 93\n ]\n },\n {\n \"name\": \"PlanAdded\",\n \"discriminator\": [\n 253,\n 31,\n 157,\n 223,\n 171,\n 1,\n 203,\n 207\n ]\n },\n {\n \"name\": \"PlanUpdated\",\n \"discriminator\": [\n 49,\n 51,\n 198,\n 31,\n 170,\n 70,\n 253,\n 195\n ]\n },\n {\n \"name\": \"ProtocolConfigUpdated\",\n \"discriminator\": [\n 20,\n 99,\n 32,\n 237,\n 111,\n 86,\n 195,\n 199\n ]\n },\n {\n \"name\": \"ProtocolInitialized\",\n \"discriminator\": [\n 173,\n 122,\n 168,\n 254,\n 9,\n 118,\n 76,\n 132\n ]\n },\n {\n \"name\": \"RegistryUpdated\",\n \"discriminator\": [\n 152,\n 3,\n 201,\n 176,\n 91,\n 63,\n 47,\n 83\n ]\n },\n {\n \"name\": \"RewardsClaimed\",\n \"discriminator\": [\n 75,\n 98,\n 88,\n 18,\n 219,\n 112,\n 88,\n 121\n ]\n },\n {\n \"name\": \"RoundFinalized\",\n \"discriminator\": [\n 43,\n 187,\n 17,\n 193,\n 36,\n 241,\n 48,\n 82\n ]\n },\n {\n \"name\": \"RoundSettled\",\n \"discriminator\": [\n 249,\n 225,\n 66,\n 54,\n 157,\n 200,\n 234,\n 222\n ]\n },\n {\n \"name\": \"RoundVoided\",\n \"discriminator\": [\n 236,\n 16,\n 226,\n 252,\n 168,\n 201,\n 103,\n 69\n ]\n },\n {\n \"name\": \"Subscribed\",\n \"discriminator\": [\n 135,\n 59,\n 105,\n 76,\n 190,\n 236,\n 138,\n 228\n ]\n },\n {\n \"name\": \"SubscriptionExtended\",\n \"discriminator\": [\n 149,\n 17,\n 152,\n 209,\n 131,\n 145,\n 5,\n 6\n ]\n },\n {\n \"name\": \"UnsolicitedSigningProven\",\n \"discriminator\": [\n 79,\n 113,\n 236,\n 87,\n 58,\n 234,\n 233,\n 54\n ]\n },\n {\n \"name\": \"X402RoundSettled\",\n \"discriminator\": [\n 10,\n 248,\n 170,\n 86,\n 212,\n 116,\n 202,\n 240\n ]\n }\n ],\n \"errors\": [\n {\n \"code\": 6000,\n \"name\": \"InvalidMinSigners\",\n \"msg\": \"invalid min signers\"\n },\n {\n \"code\": 6001,\n \"name\": \"InvalidTimestamp\",\n \"msg\": \"invalid timestamp\"\n },\n {\n \"code\": 6002,\n \"name\": \"InvalidMint\",\n \"msg\": \"invalid usdc mint\"\n },\n {\n \"code\": 6003,\n \"name\": \"RegistryVersionOverflow\",\n \"msg\": \"registry version counter overflow\"\n },\n {\n \"code\": 6004,\n \"name\": \"InvalidNodeIndex\",\n \"msg\": \"Signer index outside node_count(version)\"\n },\n {\n \"code\": 6005,\n \"name\": \"InvalidNodeAccount\",\n \"msg\": \"Node account does not match expected index/owner\"\n },\n {\n \"code\": 6006,\n \"name\": \"UnauthorizedNodeAuthority\",\n \"msg\": \"Caller is not node.owner or registry.authority\"\n },\n {\n \"code\": 6007,\n \"name\": \"NodeCapExceeded\",\n \"msg\": \"pending_node_count >= registry.node_count or node_index_hint >= registry.node_count\"\n },\n {\n \"code\": 6008,\n \"name\": \"InvalidPoP\",\n \"msg\": \"PoP Schnorr verification failed at registration\"\n },\n {\n \"code\": 6009,\n \"name\": \"NodeNotActive\",\n \"msg\": \"Instruction requires Active node status\"\n },\n {\n \"code\": 6010,\n \"name\": \"PubkeyNotOnCurve\",\n \"msg\": \"Submitted compressed pubkey does not decompress to a valid curve point\"\n },\n {\n \"code\": 6011,\n \"name\": \"InvalidRegistryVersion\",\n \"msg\": \"registry version or version-addressed registry account is invalid\"\n },\n {\n \"code\": 6012,\n \"name\": \"RegistryNotActive\",\n \"msg\": \"registry is not active\"\n },\n {\n \"code\": 6013,\n \"name\": \"InvalidSourceId\",\n \"msg\": \"source_id does not match feed.source_id\"\n },\n {\n \"code\": 6014,\n \"name\": \"RegistryPolicyUnchanged\",\n \"msg\": \"new redundancy buffer must differ from the current registry policy\"\n },\n {\n \"code\": 6015,\n \"name\": \"InvalidRedundancyBuffer\",\n \"msg\": \"redundancy buffer must be between 1 and 8\"\n },\n {\n \"code\": 6016,\n \"name\": \"UnauthorisedAuthority\",\n \"msg\": \"Caller is not ProtocolConfig.authority\"\n },\n {\n \"code\": 6017,\n \"name\": \"InvalidGatewayEndpoint\",\n \"msg\": \"Gateway endpoint is invalid\"\n },\n {\n \"code\": 6018,\n \"name\": \"InvalidNodeEndpoint\",\n \"msg\": \"Node endpoint is invalid\"\n },\n {\n \"code\": 6019,\n \"name\": \"InvalidTreasury\",\n \"msg\": \"treasury token account mismatch\"\n },\n {\n \"code\": 6020,\n \"name\": \"InvalidOwnerUsdc\",\n \"msg\": \"owner_usdc token account mismatch\"\n },\n {\n \"code\": 6021,\n \"name\": \"InvalidTreasuryOwner\",\n \"msg\": \"treasury must be owned by protocol_config\"\n },\n {\n \"code\": 6022,\n \"name\": \"InvalidWithdrawDestination\",\n \"msg\": \"withdraw destination token account mismatch\"\n },\n {\n \"code\": 6023,\n \"name\": \"InvalidSignature\",\n \"msg\": \"Invalid aggregate signature\"\n },\n {\n \"code\": 6024,\n \"name\": \"GroupBitmapDerivationFailed\",\n \"msg\": \"Could not derive group bitmap\"\n },\n {\n \"code\": 6025,\n \"name\": \"InvalidSignersBitmap\",\n \"msg\": \"Signers bitmap contains out-of-range indices\"\n },\n {\n \"code\": 6026,\n \"name\": \"PlanNotActive\",\n \"msg\": \"plan exists but is_active is false\"\n },\n {\n \"code\": 6027,\n \"name\": \"InvalidPlanParams\",\n \"msg\": \"invalid plan quorum or signer parameters\"\n },\n {\n \"code\": 6028,\n \"name\": \"InvalidDelegateLimits\",\n \"msg\": \"invalid delegate limit parameters\"\n },\n {\n \"code\": 6029,\n \"name\": \"DelegateCannotBeOwner\",\n \"msg\": \"delegate cannot be the owner\"\n },\n {\n \"code\": 6030,\n \"name\": \"DelegateAccountRequired\",\n \"msg\": \"delegate account required for non-owner action\"\n },\n {\n \"code\": 6031,\n \"name\": \"UnexpectedDelegateAccount\",\n \"msg\": \"delegate account must not be supplied for owner action\"\n },\n {\n \"code\": 6032,\n \"name\": \"DelegateDataRequestLimitReached\",\n \"msg\": \"delegate data_requests_used >= max_data_requests\"\n },\n {\n \"code\": 6033,\n \"name\": \"DelegateNotActive\",\n \"msg\": \"delegate is paused\"\n },\n {\n \"code\": 6034,\n \"name\": \"SignaturesExceedDelegateMax\",\n \"msg\": \"signatures_required exceeds delegate.max_signers\"\n },\n {\n \"code\": 6035,\n \"name\": \"DelegateCapReached\",\n \"msg\": \"subscription delegate_count >= plan.max_delegates\"\n },\n {\n \"code\": 6036,\n \"name\": \"InvalidRegistrationSalt\",\n \"msg\": \"registration_salt must not be zero\"\n },\n {\n \"code\": 6037,\n \"name\": \"InsufficientSigners\",\n \"msg\": \"popcount(signers_bitmap) < signatures_required\"\n },\n {\n \"code\": 6038,\n \"name\": \"SignaturesExceedSubscriptionMax\",\n \"msg\": \"signatures_required exceeds subscription.max_signers\"\n },\n {\n \"code\": 6039,\n \"name\": \"SignaturesBelowMinSigners\",\n \"msg\": \"signatures_required is below protocol min_signers\"\n },\n {\n \"code\": 6040,\n \"name\": \"SignersNotSubsetOfSelection\",\n \"msg\": \"Signer bits outside selection bitmap\"\n },\n {\n \"code\": 6041,\n \"name\": \"InvalidAggregateSignature\",\n \"msg\": \"PoP-Schnorr aggregate verification failed\"\n },\n {\n \"code\": 6042,\n \"name\": \"FeedNotNewer\",\n \"msg\": \"canonical_timestamp <= feed.canonical_timestamp\"\n },\n {\n \"code\": 6043,\n \"name\": \"MissingSignerAccount\",\n \"msg\": \"Missing or mis-ordered signer slot version account\"\n },\n {\n \"code\": 6044,\n \"name\": \"SubscriptionNotActive\",\n \"msg\": \"subscription has expired\"\n },\n {\n \"code\": 6045,\n \"name\": \"ConsumerSigInvalid\",\n \"msg\": \"consumer Ed25519 signature missing or invalid\"\n },\n {\n \"code\": 6046,\n \"name\": \"QuorumBelowThreshold\",\n \"msg\": \"popcount(signers_bitmap) < signatures_required\"\n },\n {\n \"code\": 6047,\n \"name\": \"GatewaySlashed\",\n \"msg\": \"gateway is slashed\"\n },\n {\n \"code\": 6048,\n \"name\": \"GatewayNotDeactivated\",\n \"msg\": \"gateway is not deactivated\"\n },\n {\n \"code\": 6049,\n \"name\": \"GatewayNotActive\",\n \"msg\": \"gateway is not active\"\n },\n {\n \"code\": 6050,\n \"name\": \"UnauthorizedGatewayAuthority\",\n \"msg\": \"caller is not gateway.authority or protocol_config.authority\"\n },\n {\n \"code\": 6051,\n \"name\": \"SubscriptionInactiveOrExhausted\",\n \"msg\": \"subscription inactive or round quota exhausted\"\n },\n {\n \"code\": 6052,\n \"name\": \"DisputeSignatureValid\",\n \"msg\": \"dispute failed: the committed signature verifies (no fraud)\"\n },\n {\n \"code\": 6053,\n \"name\": \"GatewayIndexMismatch\",\n \"msg\": \"gateway_index does not match the bonded gateway\"\n },\n {\n \"code\": 6054,\n \"name\": \"InsufficientBond\",\n \"msg\": \"bond amount below gateway_bond_min\"\n },\n {\n \"code\": 6055,\n \"name\": \"RoundNotFinalizable\",\n \"msg\": \"round still inside dispute window; cannot finalize\"\n },\n {\n \"code\": 6056,\n \"name\": \"RoundNotPending\",\n \"msg\": \"round is not pending\"\n },\n {\n \"code\": 6057,\n \"name\": \"NothingToClaim\",\n \"msg\": \"no claimable rewards\"\n },\n {\n \"code\": 6058,\n \"name\": \"InvalidWithdrawalState\",\n \"msg\": \"account is not in a state that permits withdrawal\"\n },\n {\n \"code\": 6059,\n \"name\": \"NothingToWithdraw\",\n \"msg\": \"withdrawable balance is zero\"\n },\n {\n \"code\": 6060,\n \"name\": \"WithdrawalCooldownActive\",\n \"msg\": \"withdrawal cooldown has not elapsed\"\n },\n {\n \"code\": 6061,\n \"name\": \"GatewayDisputeWindowActive\",\n \"msg\": \"gateway bond is still inside its dispute window\"\n },\n {\n \"code\": 6062,\n \"name\": \"DisputeWindowElapsed\",\n \"msg\": \"round dispute window has elapsed\"\n },\n {\n \"code\": 6063,\n \"name\": \"WithdrawalArithmeticOverflow\",\n \"msg\": \"withdrawal deadline arithmetic overflow\"\n },\n {\n \"code\": 6064,\n \"name\": \"InvalidWithdrawalCooldown\",\n \"msg\": \"withdrawal cooldown must be non-negative\"\n },\n {\n \"code\": 6065,\n \"name\": \"InvalidInstructionsSysvar\",\n \"msg\": \"instructions sysvar account is invalid\"\n },\n {\n \"code\": 6066,\n \"name\": \"UnauthorisedConsumer\",\n \"msg\": \"consumer authority is not the delegate authority\"\n },\n {\n \"code\": 6067,\n \"name\": \"InvalidCreditNodeAccount\",\n \"msg\": \"mismatched or missing credited node account\"\n },\n {\n \"code\": 6068,\n \"name\": \"InvalidMissedNodeAccount\",\n \"msg\": \"mismatched or missing missed node account\"\n },\n {\n \"code\": 6069,\n \"name\": \"AmountMismatch\",\n \"msg\": \"computed price does not match the gateway-signed amount\"\n },\n {\n \"code\": 6070,\n \"name\": \"InsufficientGatewayFloat\",\n \"msg\": \"gateway USDC float balance below computed price\"\n },\n {\n \"code\": 6071,\n \"name\": \"PaymentRefTooLong\",\n \"msg\": \"payment_ref exceeds 64 bytes\"\n },\n {\n \"code\": 6072,\n \"name\": \"CreditedExceedsSelection\",\n \"msg\": \"credited signer count exceeds signatures_required + redundancy_buffer\"\n },\n {\n \"code\": 6073,\n \"name\": \"InvalidValueLength\",\n \"msg\": \"value exceeds Feed::MAX_VALUE_LEN\"\n },\n {\n \"code\": 6074,\n \"name\": \"WrongSubscriptionAccount\",\n \"msg\": \"dispute refund/restore subscription does not match the round\"\n },\n {\n \"code\": 6075,\n \"name\": \"EquivocationSameStatement\",\n \"msg\": \"equivocation requires two statements with different values\"\n },\n {\n \"code\": 6076,\n \"name\": \"EvidenceHashMismatch\",\n \"msg\": \"recomputed evidence hash does not match the supplied evidence_hash\"\n },\n {\n \"code\": 6077,\n \"name\": \"GuiltySetEmpty\",\n \"msg\": \"intersection of the two signer bitmaps is empty\"\n },\n {\n \"code\": 6078,\n \"name\": \"NodeTombstoned\",\n \"msg\": \"node is permanently tombstoned\"\n },\n {\n \"code\": 6079,\n \"name\": \"NodeNotFrozen\",\n \"msg\": \"node is not Frozen\"\n },\n {\n \"code\": 6080,\n \"name\": \"NodeStillFrozen\",\n \"msg\": \"node is still inside its freeze window\"\n },\n {\n \"code\": 6081,\n \"name\": \"NodeAlreadyInRegistry\",\n \"msg\": \"node is already present in the current registry\"\n },\n {\n \"code\": 6082,\n \"name\": \"LivelinessAboveThreshold\",\n \"msg\": \"node liveliness score is not below the freeze threshold\"\n },\n {\n \"code\": 6083,\n \"name\": \"SignersFullySelected\",\n \"msg\": \"every signer was within the derived selection - no unsolicited signer\"\n },\n {\n \"code\": 6084,\n \"name\": \"NothingToPunish\",\n \"msg\": \"every guilty node is already tombstoned\"\n },\n {\n \"code\": 6085,\n \"name\": \"NonceCommitmentMismatch\",\n \"msg\": \"statements do not share an aggregate nonce commitment\"\n },\n {\n \"code\": 6086,\n \"name\": \"NonceReuseSameMessage\",\n \"msg\": \"statements commit to the same message hash\"\n },\n {\n \"code\": 6087,\n \"name\": \"PreferEquivocation\",\n \"msg\": \"same duty with different values is equivocation - file it as one\"\n },\n {\n \"code\": 6088,\n \"name\": \"AttestationTooStale\",\n \"msg\": \"canonical_timestamp is older than now - max_settlement_delay_seconds\"\n },\n {\n \"code\": 6089,\n \"name\": \"AttestationInFuture\",\n \"msg\": \"canonical_timestamp is further ahead of cluster time than the allowed drift\"\n },\n {\n \"code\": 6090,\n \"name\": \"InvalidMaxReceiptDelay\",\n \"msg\": \"max_settlement_delay_seconds must be greater than zero\"\n },\n {\n \"code\": 6091,\n \"name\": \"TreasuryInsolvent\",\n \"msg\": \"treasury balance cannot back the protocol's reward liability\"\n },\n {\n \"code\": 6092,\n \"name\": \"InvalidChallengerBounty\",\n \"msg\": \"challenger_bounty_bps must not exceed 10000\"\n },\n {\n \"code\": 6093,\n \"name\": \"InvalidLivelinessConfig\",\n \"msg\": \"invalid liveliness configuration\"\n },\n {\n \"code\": 6094,\n \"name\": \"RewardLiabilityUnderflow\",\n \"msg\": \"reward liability underflow\"\n },\n {\n \"code\": 6095,\n \"name\": \"DepositVaultUnderfunded\",\n \"msg\": \"node deposit vault does not cover the recorded total deposits\"\n },\n {\n \"code\": 6096,\n \"name\": \"TranscriptContextsEqual\",\n \"msg\": \"both transcripts carry the same (b, c) challenge pair\"\n },\n {\n \"code\": 6097,\n \"name\": \"NonCanonicalScalar\",\n \"msg\": \"scalar is zero or not below the secp256k1 curve order\"\n },\n {\n \"code\": 6098,\n \"name\": \"MerkleProofTooDeep\",\n \"msg\": \"merkle proof exceeds the maximum accepted depth\"\n },\n {\n \"code\": 6099,\n \"name\": \"InvalidMerkleProof\",\n \"msg\": \"merkle proof does not connect the leaf to the signed batch root\"\n },\n {\n \"code\": 6100,\n \"name\": \"InvalidBatchSignature\",\n \"msg\": \"commitment batch signature does not verify against the node key\"\n },\n {\n \"code\": 6101,\n \"name\": \"InvalidPartialSignature\",\n \"msg\": \"partial signature does not satisfy the nonce equation\"\n },\n {\n \"code\": 6102,\n \"name\": \"InvalidNoncePoint\",\n \"msg\": \"committed nonce is not a valid secp256k1 point\"\n }\n ],\n \"types\": [\n {\n \"name\": \"AddDelegateArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"delegate\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"max_data_requests\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_signers\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"AddPlanArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"plan_type\",\n \"type\": {\n \"defined\": {\n \"name\": \"PlanType\"\n }\n }\n },\n {\n \"name\": \"subscription_price\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_signers\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"max_delegates\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"max_rounds\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"private_api_enabled\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"is_active\",\n \"type\": \"bool\"\n }\n ]\n }\n },\n {\n \"name\": \"AgentStatus\",\n \"docs\": [\n \"Lifecycle status shared by `Delegate`.\"\n ],\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Active\"\n },\n {\n \"name\": \"Paused\"\n }\n ]\n }\n },\n {\n \"name\": \"AggregatedSig\",\n \"docs\": [\n \"Aggregate Schnorr signature committed at settlement; not verified on the happy path.\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"agg_sig_s\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"commitment\",\n \"type\": {\n \"array\": [\n \"u8\",\n 20\n ]\n }\n },\n {\n \"name\": \"signers_bitmap\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"CommitmentReuseProven\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"commitment_addr\",\n \"type\": {\n \"array\": [\n \"u8\",\n 20\n ]\n }\n },\n {\n \"name\": \"source_id_a\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"signatures_required_a\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"canonical_timestamp_a\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"signers_bitmap_a\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"source_id_b\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"signatures_required_b\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"canonical_timestamp_b\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"signers_bitmap_b\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"guilty_bitmap\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"guilty_count\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"evidence_hash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"reporter\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"slashed_total\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"bounty_paid\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"CommittedNoncePair\",\n \"docs\": [\n \"The nonce pair committed for one slot, as affine coordinates.\",\n \"\",\n \"Points travel uncompressed so the program never pays for a field square root; both are\",\n \"re-checked on-curve during equation verification.\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"r1_x\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"r1_y\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"r2_x\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"r2_y\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"Delegate\",\n \"docs\": [\n \"Owner-scoped delegate authorization with persistent request quotas.\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"delegate\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"status\",\n \"docs\": [\n \"Owner pause / protocol freeze backstop.\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"AgentStatus\"\n }\n }\n },\n {\n \"name\": \"max_data_requests\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"data_requests_used\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_signers\",\n \"docs\": [\n \"Per-delegate quorum ceiling; clamped to `plan.max_signers` at creation.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"DelegateAdded\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"delegate\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"max_signers\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"delegate_count\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"added_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"DelegateRemoved\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"delegate\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"delegate_count\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"removed_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"DelegateStatusChanged\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"delegate\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"old_status\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"new_status\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"updated_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"EquivocationProven\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"source_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"signatures_required\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"canonical_timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"guilty_bitmap\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"guilty_count\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"evidence_hash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"reporter\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"slashed_total\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"bounty_paid\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"Feed\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"source_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"value\",\n \"docs\": [\n \"Stored oracle bytes: raw payload (`FeedValueKind::Value`) or keccak digest\",\n \"(`FeedValueKind::Hash`). Never longer than [`Feed::STORED_VALUE_LEN`].\"\n ],\n \"type\": \"bytes\"\n },\n {\n \"name\": \"value_kind\",\n \"type\": {\n \"defined\": {\n \"name\": \"FeedValueKind\"\n }\n }\n },\n {\n \"name\": \"canonical_timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"signatures_required\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"signers_bitmap\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"FeedUpdated\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"source_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"canonical_timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"value\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"value_kind\",\n \"type\": {\n \"defined\": {\n \"name\": \"FeedValueKind\"\n }\n }\n },\n {\n \"name\": \"signers_bitmap\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"last_updated_slot\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"FeedValueKind\",\n \"docs\": [\n \"Whether [`Feed::value`] holds the raw oracle payload or a digest of a longer payload.\"\n ],\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Value\"\n },\n {\n \"name\": \"Hash\"\n }\n ]\n }\n },\n {\n \"name\": \"Gateway\",\n \"docs\": [\n \"Bonded, Ed25519-signing gateway (v0.2 spec `gateway.authority`).\",\n \"\",\n \"Holds endpoint metadata, bond, and reward accounting. Keyed by the gateway's Solana\",\n \"authority key. `index` is the `gateway_index` referenced by `GatewayReceipt`.\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"index\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"ip\",\n \"type\": {\n \"array\": [\n \"u8\",\n 4\n ]\n }\n },\n {\n \"name\": \"port\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"status\",\n \"type\": {\n \"defined\": {\n \"name\": \"GatewayStatus\"\n }\n }\n },\n {\n \"name\": \"registered_at\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"withdrawable_slot\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"GatewayBondWithdrawn\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"gateway\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"withdrawn_slot\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"withdrawn_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"GatewayDeactivated\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"gateway\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"withdrawable_slot\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"deactivated_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"GatewayRegistered\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"ip\",\n \"type\": {\n \"array\": [\n \"u8\",\n 4\n ]\n }\n },\n {\n \"name\": \"port\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"bond\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"registered_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"GatewaySlashed\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"gateway\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"slashed_bond\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"challenger_bounty\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"slashed_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"GatewayStatus\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Active\"\n },\n {\n \"name\": \"Deactivated\"\n },\n {\n \"name\": \"Slashed\"\n }\n ]\n }\n },\n {\n \"name\": \"InitializeArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"withdrawal_cooldown_slots\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"redundancy_buffer\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"minimum_node_deposit\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_per_signature\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_settlement_delay_seconds\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"dispute_window_slots\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"gateway_bond_min\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"challenger_bounty_bps\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"liveliness_freeze_threshold\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"usdc_mint\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"x402_round_base\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_signers\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"Node\",\n \"docs\": [\n \"Permanent node identity and reward account; never closed or re-keyed.\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"secp256k1_pubkey_x\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"secp256k1_pubkey_y\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"status\",\n \"type\": {\n \"defined\": {\n \"name\": \"NodeStatus\"\n }\n }\n },\n {\n \"name\": \"ip\",\n \"type\": {\n \"array\": [\n \"u8\",\n 4\n ]\n }\n },\n {\n \"name\": \"port\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"locked_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"claimable_rewards\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"liveliness_score\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"registered_at\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"withdrawable_slot\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"frozen_until\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"NodeDeactivated\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"node\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"new_registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"deactivated_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"NodeDepositWithdrawn\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"node\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"destination\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"withdrawn_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"NodeEndpointUpdated\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"node\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"ip\",\n \"type\": {\n \"array\": [\n \"u8\",\n 4\n ]\n }\n },\n {\n \"name\": \"port\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"updated_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"NodeFrozenForInactivity\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"node\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"score\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"frozen_until\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"new_registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"frozen_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"NodeLivelinessPenalized\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"node\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"round_record\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"score\",\n \"type\": \"u16\"\n }\n ]\n }\n },\n {\n \"name\": \"NodePunished\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"node\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"offence\",\n \"type\": {\n \"defined\": {\n \"name\": \"OffenceKind\"\n }\n }\n },\n {\n \"name\": \"slashed_locked\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"slashed_rewards\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"new_status\",\n \"type\": {\n \"defined\": {\n \"name\": \"NodeStatus\"\n }\n }\n },\n {\n \"name\": \"punished_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"NodeRegistered\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"node\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"index\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"ip\",\n \"type\": {\n \"array\": [\n \"u8\",\n 4\n ]\n }\n },\n {\n \"name\": \"port\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"security_deposit\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"registered_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"NodeReinstated\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"node\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"index\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"reinstated_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"NodeStatus\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Active\"\n },\n {\n \"name\": \"Deactivated\"\n },\n {\n \"name\": \"Frozen\"\n },\n {\n \"name\": \"Tombstoned\"\n }\n ]\n }\n },\n {\n \"name\": \"NonceReuseProven\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"node_index\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"epoch\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"batch_meta\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"batch_root\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"slot\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"r1_x\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"r1_y\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"r2_x\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"r2_y\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"guilty_bitmap\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"guilty_count\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"evidence_hash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"reporter\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"slashed_total\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"bounty_paid\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"OffenceKind\",\n \"docs\": [\n \"Node-fault offence types. Each carries a fixed [`Penalty`] — see [`OffenceKind::penalty`].\"\n ],\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Equivocation\"\n },\n {\n \"name\": \"UnsolicitedSigning\"\n },\n {\n \"name\": \"CommitmentReuse\"\n },\n {\n \"name\": \"NonceReuse\"\n },\n {\n \"name\": \"Inactivity\"\n }\n ]\n }\n },\n {\n \"name\": \"PartialTranscript\",\n \"docs\": [\n \"One partial-signature transcript: the challenge scalars and the resulting share.\",\n \"\",\n \"The program never recomputes `b` or `c` from a signing context — the offence is defined purely\",\n \"by the equation `s*G == R1 + b*R2 + c*X`, which is why message transport and commitment lists\",\n \"stay off-chain.\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"b\",\n \"docs\": [\n \"Binding factor.\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"c\",\n \"docs\": [\n \"Challenge.\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"s\",\n \"docs\": [\n \"The node's partial signature scalar.\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"Plan\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"plan_type\",\n \"type\": {\n \"defined\": {\n \"name\": \"PlanType\"\n }\n }\n },\n {\n \"name\": \"subscription_price\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_signers\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"max_delegates\",\n \"docs\": [\n \"Max delegates/agents an owner on this plan may provision.\"\n ],\n \"type\": \"u32\"\n },\n {\n \"name\": \"max_rounds\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"private_api_enabled\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"is_active\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"PlanAdded\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"plan_type\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"subscription_price\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_signers\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"max_delegates\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"private_api_enabled\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"is_active\",\n \"type\": \"bool\"\n }\n ]\n }\n },\n {\n \"name\": \"PlanType\",\n \"repr\": {\n \"kind\": \"rust\"\n },\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Basic\"\n },\n {\n \"name\": \"Standard\"\n },\n {\n \"name\": \"Professional\"\n },\n {\n \"name\": \"Enterprise\"\n }\n ]\n }\n },\n {\n \"name\": \"PlanUpdated\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"plan_type\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"subscription_price\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_signers\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"max_delegates\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"private_api_enabled\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"is_active\",\n \"type\": \"bool\"\n }\n ]\n }\n },\n {\n \"name\": \"ProtocolConfig\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"usdc_mint\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"reward_per_signature\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_settlement_delay_seconds\",\n \"docs\": [\n \"Max age in seconds of `canonical_timestamp` relative to cluster time at\",\n \"attestation/settlement ingress. Bounds the offline selection-grind space.\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"dispute_window_slots\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"gateway_bond_min\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"challenger_bounty_bps\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"minimum_node_deposit\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"withdrawal_cooldown_slots\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"liveliness_freeze_threshold\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"x402_round_base\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_liability\",\n \"docs\": [\n \"Sum of every `Node.claimable_rewards`. The treasury must always hold at least this much\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_signers\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"ProtocolConfigUpdated\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"reward_per_signature\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_settlement_delay_seconds\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"dispute_window_slots\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"gateway_bond_min\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"challenger_bounty_bps\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"minimum_node_deposit\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"withdrawal_cooldown_slots\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"liveliness_freeze_threshold\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"x402_round_base\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_signers\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"ProtocolInitialized\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"protocol_config\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"registry_state\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"registry\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"treasury\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"node_deposit_vault\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"usdc_mint\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"initialized_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"PunishCommitmentReuseArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"context_a\",\n \"type\": {\n \"defined\": {\n \"name\": \"SigningContext\"\n }\n }\n },\n {\n \"name\": \"statement_a\",\n \"type\": {\n \"defined\": {\n \"name\": \"SignedStatement\"\n }\n }\n },\n {\n \"name\": \"context_b\",\n \"type\": {\n \"defined\": {\n \"name\": \"SigningContext\"\n }\n }\n },\n {\n \"name\": \"statement_b\",\n \"type\": {\n \"defined\": {\n \"name\": \"SignedStatement\"\n }\n }\n },\n {\n \"name\": \"evidence_hash\",\n \"docs\": [\n \"Must match `nonce_reuse_evidence_hash(..)`; used as the `PunishmentCase` PDA seed.\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"PunishEquivocationArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"source_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"signatures_required\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"canonical_timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"statement_a\",\n \"type\": {\n \"defined\": {\n \"name\": \"SignedStatement\"\n }\n }\n },\n {\n \"name\": \"statement_b\",\n \"type\": {\n \"defined\": {\n \"name\": \"SignedStatement\"\n }\n }\n },\n {\n \"name\": \"evidence_hash\",\n \"docs\": [\n \"Must match `equivocation_evidence_hash(..)`; used as the `PunishmentCase` PDA seed.\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"PunishNonceReuseArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"registry_version\",\n \"docs\": [\n \"Registry version that `node_index` indexes into; also bound into the batch signature.\"\n ],\n \"type\": \"u32\"\n },\n {\n \"name\": \"node_index\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"epoch\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"batch_meta\",\n \"docs\": [\n \"Opaque batch header bytes, covered by the signature but not interpreted on-chain.\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"batch_root\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"batch_sig_s\",\n \"docs\": [\n \"Single-key EVM-Schnorr signature over the batch message.\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"batch_commitment_addr\",\n \"type\": {\n \"array\": [\n \"u8\",\n 20\n ]\n }\n },\n {\n \"name\": \"slot\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"nonces\",\n \"type\": {\n \"defined\": {\n \"name\": \"CommittedNoncePair\"\n }\n }\n },\n {\n \"name\": \"merkle_proof\",\n \"type\": {\n \"vec\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n }\n },\n {\n \"name\": \"transcript_a\",\n \"type\": {\n \"defined\": {\n \"name\": \"PartialTranscript\"\n }\n }\n },\n {\n \"name\": \"transcript_b\",\n \"type\": {\n \"defined\": {\n \"name\": \"PartialTranscript\"\n }\n }\n },\n {\n \"name\": \"evidence_hash\",\n \"docs\": [\n \"Must match `nonce_reuse_evidence_hash(..)`; used as the `PunishmentCase` PDA seed.\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"PunishUnsolicitedSigningArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"source_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"signatures_required\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"canonical_timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"statement\",\n \"type\": {\n \"defined\": {\n \"name\": \"SignedStatement\"\n }\n }\n },\n {\n \"name\": \"evidence_hash\",\n \"docs\": [\n \"Must match `unsolicited_signing_evidence_hash(..)`; used as the `PunishmentCase` PDA seed.\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"PunishmentCase\",\n \"docs\": [\n \"Permanent, on-chain record of an executed node punishment.\",\n \"\",\n \"The PDA is seeded by `evidence_hash`, so `init` doubles as the anti-replay guard: the same\",\n \"evidence can only ever be submitted once, independent of any per-offence terminal-status guard.\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"offence\",\n \"type\": {\n \"defined\": {\n \"name\": \"OffenceKind\"\n }\n }\n },\n {\n \"name\": \"reporter\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"registry_version\",\n \"docs\": [\n \"Registry version the guilty bitmap indexes into.\"\n ],\n \"type\": \"u32\"\n },\n {\n \"name\": \"guilty_bitmap\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"guilty_count\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"slashed_total\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"bounty_paid\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"evidence_hash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"executed_slot\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"RegisterGatewayArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"ip\",\n \"type\": {\n \"array\": [\n \"u8\",\n 4\n ]\n }\n },\n {\n \"name\": \"port\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"bond_amount\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"RegisterNodeArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"registration_salt\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"ip\",\n \"type\": {\n \"array\": [\n \"u8\",\n 4\n ]\n }\n },\n {\n \"name\": \"port\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"secp256k1_pubkey_compressed\",\n \"type\": {\n \"array\": [\n \"u8\",\n 33\n ]\n }\n },\n {\n \"name\": \"pop_sig_r\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"pop_sig_s\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"Registry\",\n \"docs\": [\n \"Immutable, version-addressed snapshot of the ordered node set and selection policy.\",\n \"\",\n \"Only `nodes[..node_count]` is populated. Node addresses are stored as bytes to keep the\",\n \"zero-copy layout POD-safe. `SPACE` includes the Anchor discriminator.\"\n ],\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"node_count\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"redundancy_buffer\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"nodes\",\n \"type\": {\n \"array\": [\n {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n 256\n ]\n }\n },\n {\n \"name\": \"grace_active_until\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"RegistryState\",\n \"docs\": [\n \"Mutable pointer to the current immutable registry snapshot.\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"current_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"next_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"RegistryUpdated\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"new_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"node_count\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"redundancy_buffer\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"reason\",\n \"type\": {\n \"defined\": {\n \"name\": \"RegistryVersionReason\"\n }\n }\n },\n {\n \"name\": \"updated_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"RegistryVersionReason\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"NodeAdded\"\n },\n {\n \"name\": \"NodeRemoved\"\n },\n {\n \"name\": \"PolicyChanged\"\n },\n {\n \"name\": \"NodePunished\"\n },\n {\n \"name\": \"NodeReinstated\"\n }\n ]\n }\n },\n {\n \"name\": \"RemoveDelegateArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"delegate\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"RewardsClaimed\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"beneficiary\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"claimed_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"RoundFinalized\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"round_record\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"finalized_slot\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"finalized_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"RoundReceiptRecord\",\n \"docs\": [\n \"Per-round settlement record written by `settle_subscription_round` or `settle_x402_round`.\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"consumer_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"signers_bitmap\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"selection_bitmap\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"agg_sig_s\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"commitment\",\n \"type\": {\n \"array\": [\n \"u8\",\n 20\n ]\n }\n },\n {\n \"name\": \"attestation_message_hash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"gateway\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"reward_per_signature\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"recorded_slot\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"status\",\n \"type\": {\n \"defined\": {\n \"name\": \"RoundRecordStatus\"\n }\n }\n },\n {\n \"name\": \"kind\",\n \"type\": {\n \"defined\": {\n \"name\": \"RoundRecordKind\"\n }\n }\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"RoundRecordKind\",\n \"repr\": {\n \"kind\": \"rust\"\n },\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Subscription\"\n },\n {\n \"name\": \"X402\"\n }\n ]\n }\n },\n {\n \"name\": \"RoundRecordStatus\",\n \"repr\": {\n \"kind\": \"rust\"\n },\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Pending\"\n },\n {\n \"name\": \"Finalized\"\n },\n {\n \"name\": \"Voided\"\n }\n ]\n }\n },\n {\n \"name\": \"RoundSettled\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"gateway\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"source_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"canonical_timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"credited_count\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"reward_per_signature\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"recorded_slot\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"recorded_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"RoundVoided\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"round_record\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"gateway\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"round_restored\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"voided_at\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"Secp256k1KeyClaim\",\n \"docs\": [\n \"Permanent reservation for a secp256k1 node key.\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"node_pubkey\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"SettleRoundArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"canonical_timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"source_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"signatures_required\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"agg_sig\",\n \"type\": {\n \"defined\": {\n \"name\": \"AggregatedSig\"\n }\n }\n },\n {\n \"name\": \"value\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"consumer_authority\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"SettleX402RoundArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"payer_id\",\n \"docs\": [\n \"Rail-scoped payer identity for PDA seeds; not derivable on-chain.\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"source_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"canonical_timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"signatures_required\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"agg_sig\",\n \"type\": {\n \"defined\": {\n \"name\": \"AggregatedSig\"\n }\n }\n },\n {\n \"name\": \"value\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"payment_rail\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"payment_ref\",\n \"docs\": [\n \"Attested off-chain payment reference; not verified on-chain.\"\n ],\n \"type\": \"bytes\"\n }\n ]\n }\n },\n {\n \"name\": \"SignedStatement\",\n \"docs\": [\n \"Signed statement submitted as punishment evidence.\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"value\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"agg_sig_s\",\n \"docs\": [\n \"Aggregate Schnorr scalar `s`.\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"commitment_addr\",\n \"docs\": [\n \"Ethereum-style commitment address of the aggregate nonce `R`.\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 20\n ]\n }\n },\n {\n \"name\": \"signers_bitmap\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"SigningContext\",\n \"docs\": [\n \"Duty tuple for one statement in a commitment-reuse filing.\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"source_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"signatures_required\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"canonical_timestamp\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"SubmitAttestationArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"source_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"value\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"canonical_timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"signatures_required\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"agg_sig_s\",\n \"docs\": [\n \"Schnorr signature R component\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"commitment\",\n \"type\": {\n \"array\": [\n \"u8\",\n 20\n ]\n }\n },\n {\n \"name\": \"signers_bitmap\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"Subscribed\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"plan_type\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"prepaid_usdc\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"price_snapshot\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"valid_until\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"Subscription\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"plan_type\",\n \"type\": {\n \"defined\": {\n \"name\": \"PlanType\"\n }\n }\n },\n {\n \"name\": \"prepaid_usdc\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"price\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"valid_until\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"used_rounds\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_rounds\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"delegate_count\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"max_delegates\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"max_signers\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"SubscriptionExtended\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"plan_type\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"prepaid_usdc\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"valid_until\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"UnsolicitedSigningProven\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"source_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"registry_version\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"signatures_required\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"canonical_timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"signers_bitmap\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"guilty_bitmap\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"guilty_count\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"evidence_hash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"reporter\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"slashed_total\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"bounty_paid\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"UpdateConfigArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"withdrawal_cooldown_slots\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"minimum_node_deposit\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_per_signature\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_settlement_delay_seconds\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"dispute_window_slots\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"gateway_bond_min\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"challenger_bounty_bps\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"liveliness_freeze_threshold\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"x402_round_base\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_signers\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"UpdateNodeEndpointArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"ip\",\n \"type\": {\n \"array\": [\n \"u8\",\n 4\n ]\n }\n },\n {\n \"name\": \"port\",\n \"type\": \"u16\"\n }\n ]\n }\n },\n {\n \"name\": \"UpdatePlanArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"plan_type\",\n \"type\": {\n \"defined\": {\n \"name\": \"PlanType\"\n }\n }\n },\n {\n \"name\": \"subscription_price\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_signers\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"max_delegates\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"max_rounds\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"private_api_enabled\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"is_active\",\n \"type\": \"bool\"\n }\n ]\n }\n },\n {\n \"name\": \"X402RoundSettled\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"payer_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"payment_rail\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"price\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"source_id\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"canonical_timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"gateway\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"signers_bitmap\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"credited_count\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"recorded_slot\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"recorded_at\",\n \"type\": \"i64\"\n }\n ]\n }\n }\n ]\n}","import type { Idl } from \"@anchor-lang/core\";\nimport idlJson from \"./molpha.json\" with { type: \"json\" };\n\n/**\n * Vendored Molpha Anchor IDL (`target/idl/molpha.json` from the program repo).\n *\n * Re-exported as `MOLPHA_IDL` and used as the default in `MolphaSDK` /\n * `MolphaSolanaClient.create`. Pass `idl` / `programId` only when pinning a\n * different deployment. Keep this copy aligned with the on-chain program you target.\n */\nexport const MOLPHA_IDL = idlJson as Idl;\n\n/** Program address baked into the vendored IDL. */\nexport const MOLPHA_PROGRAM_ADDRESS: string = idlJson.address;\n","/** On-chain subscription plan (`PlanType` in the Molpha program IDL). */\nexport enum PlanType {\n Basic = 0,\n Standard = 1,\n Professional = 2,\n Enterprise = 3,\n}\n\n/** Numeric plan index used for PDA derivation and on-chain reads. */\nexport type PlanId = 0 | 1 | 2 | 3;\n\nconst PLAN_VARIANTS = [\n { basic: {} },\n { standard: {} },\n { professional: {} },\n { enterprise: {} },\n] as const;\n\nexport function planVariant(planId: PlanId): (typeof PLAN_VARIANTS)[number] {\n return PLAN_VARIANTS[planId];\n}\n\nexport function planIdFromVariant(variant: Record<string, unknown>): PlanId {\n const key = Object.keys(variant)[0]?.toLowerCase();\n const idx = [\"basic\", \"standard\", \"professional\", \"enterprise\"].indexOf(key ?? \"\");\n if (idx < 0) throw new Error(`Unknown plan variant: ${JSON.stringify(variant)}`);\n return idx as PlanId;\n}\n","/**\n * `MolphaSolanaClient` — consumer on-chain surface only (subscribe, extend,\n * submitAttestation, readFeed/readPlan/readSubscription/readRegistry,\n * getRegistrySelectionConfig, verifyNodeKeysForPrivateApi). Built from an Anchor\n * `Program` over the vendored IDL.\n */\nimport {\n AnchorProvider,\n Program,\n type Idl,\n type Wallet,\n} from \"@anchor-lang/core\";\nimport BN from \"bn.js\";\nimport type { Address } from \"@solana/kit\";\nimport { toFixedBytes } from \"../core/encoding.js\";\nimport {\n normalizeSecp256k1PublicKeyHex,\n secp256k1PublicKeyFromCoordinates,\n} from \"../core/nodeKeys.js\";\nimport type {\n DataUpdateResult,\n Node,\n NodeKeyVerifierArgs,\n RegistrySelectionConfig,\n} from \"../core/types.js\";\nimport {\n type RegistryStateView,\n type RegistryView,\n resolveRemainingAccounts,\n} from \"./accounts.js\";\nimport {\n addressFromBytes,\n getAssociatedTokenAddressSync,\n setComputeUnitLimit,\n SYSTEM_PROGRAM_ADDRESS,\n TOKEN_PROGRAM_ADDRESS,\n toSolanaAddress,\n type SolanaAddress,\n type SolanaConnection,\n} from \"./kit.js\";\nimport {\n feedPda,\n planPda,\n protocolConfigPda,\n registryPda,\n registryStatePda,\n subscriptionPda,\n} from \"./pdas.js\";\nimport { MOLPHA_IDL, MOLPHA_PROGRAM_ADDRESS } from \"../../idl/index.js\";\nimport { PlanType, planIdFromVariant, planVariant, type PlanId } from \"./plans.js\";\n\nexport { PlanType, type PlanId } from \"./plans.js\";\n\n/** Matches the program CLI default; `submit_attestation` verifies the aggregate on-chain. */\nconst DEFAULT_COMPUTE_UNIT_LIMIT = 1_400_000;\ntype Commitment = NonNullable<ConstructorParameters<typeof AnchorProvider>[2]>[\"commitment\"];\n\nexport interface SubscribeResult {\n signature: string;\n /** USDC base units actually debited from the owner for this subscription. */\n pricePaid: bigint;\n}\n\nexport interface PlanInfo {\n planType: PlanType;\n /** Subscription price in USDC base units (raw u64, e.g. 1_000_000 = 1 USDC at 6 decimals). */\n subscriptionPrice: bigint;\n maxSigners: number;\n maxDelegates: number;\n /** Rounds a subscription on this plan may settle per period. */\n maxRounds: bigint;\n privateApiEnabled: boolean;\n isActive: boolean;\n}\n\nexport interface SubscriptionInfo {\n owner: Address;\n planType: PlanType;\n /** USDC base units prepaid on the subscription vault. */\n prepaidUsdc: bigint;\n /** Locked subscription price in USDC base units for the current period. */\n price: bigint;\n /** Unix timestamp (seconds) until which the subscription is valid. */\n validUntil: bigint;\n usedRounds: bigint;\n maxRounds: bigint;\n delegateCount: number;\n maxDelegates: number;\n maxSigners: number;\n}\n\nexport interface SubmitResult {\n signature: string;\n /** Feed PDA written by this submit (`[\"molpha_feed\", sourceId, [signaturesRequired], submitter]`). */\n feed: Address;\n}\n\nexport interface FeedAccount {\n sourceId: number[];\n /** Stored payload: raw value (`valueKind.value`) or keccak digest (`valueKind.hash`), ≤ 32 bytes. */\n value: Uint8Array | number[];\n valueKind: { value: Record<string, never> } | { hash: Record<string, never> };\n /** u64 unix seconds. */\n canonicalTimestamp: BN;\n signaturesRequired: number;\n signersBitmap: number[];\n registryVersion: number;\n bump: number;\n}\n\n/** Anchor-encoded `SubmitAttestationArgs` (camelCase field names). */\nexport interface SubmitAttestationArgs {\n sourceId: number[];\n registryVersion: number;\n value: number[];\n canonicalTimestamp: BN;\n signaturesRequired: number;\n aggSigS: number[];\n commitment: number[];\n signersBitmap: number[];\n}\n\ninterface NodeAccount {\n secp256k1PubkeyX?: Uint8Array | number[];\n secp256k1PubkeyY?: Uint8Array | number[];\n secp256k1_pubkey_x?: Uint8Array | number[];\n secp256k1_pubkey_y?: Uint8Array | number[];\n}\n\ninterface CreateClientOpts {\n connection: SolanaConnection;\n wallet: Wallet;\n programId?: SolanaAddress;\n idl?: Idl;\n commitment?: Commitment;\n}\n\nexport class MolphaSolanaClient {\n private constructor(\n private readonly program: Program,\n private readonly provider: AnchorProvider,\n readonly programId: Address,\n ) {}\n\n static create(opts: CreateClientOpts): MolphaSolanaClient {\n const programId = toSolanaAddress(opts.programId ?? MOLPHA_PROGRAM_ADDRESS);\n const provider = new AnchorProvider(opts.connection, opts.wallet, {\n commitment: opts.commitment ?? \"confirmed\",\n });\n // Anchor reads the program id from `idl.address`; override it so the\n // caller-supplied programId always wins without mutating the vendored copy.\n const idl: Idl = { ...(opts.idl ?? MOLPHA_IDL), address: programId };\n const program = new Program(idl, provider);\n return new MolphaSolanaClient(program, provider, programId);\n }\n\n private get wallet(): Address {\n return toSolanaAddress(this.provider.wallet.publicKey);\n }\n\n /** Anchor's method/account namespaces are untyped without an IDL type param. */\n private get methods(): any {\n return this.program.methods;\n }\n private get accounts(): any {\n return this.program.account;\n }\n\n /**\n * Current registry version plus the selection inputs of that snapshot\n * (`redundancy_buffer`, `node_count`). Two account reads: `RegistryState`, then the\n * version-addressed `Registry`. Prefer this over {@link getRegistryVersion} when\n * deriving gateway selection bitmaps.\n */\n async getRegistrySelectionConfig(): Promise<Required<RegistrySelectionConfig>> {\n const state = await this.fetchRegistryState();\n const registry = await this.fetchRegistry(state.currentVersion);\n return {\n registryVersion: state.currentVersion,\n redundancyBuffer: registry.redundancyBuffer,\n nodeCount: registry.nodeCount,\n };\n }\n\n async getRegistryVersion(): Promise<number> {\n return (await this.fetchRegistryState()).currentVersion;\n }\n\n /** Read an immutable registry snapshot; defaults to the current version. */\n async readRegistry(version?: number): Promise<RegistryView> {\n const target = version ?? (await this.fetchRegistryState()).currentVersion;\n return this.fetchRegistry(target);\n }\n\n /** Fetch a plan's on-chain terms, including the USDC `subscriptionPrice` charged on `subscribe`. */\n async getPlan(plan: PlanType): Promise<PlanInfo> {\n const info = await this.readPlan(plan);\n if (!info) {\n throw new Error(`plan account not found for ${PlanType[plan] ?? plan}`);\n }\n return info;\n }\n\n /** Read a plan account, or `null` if it has not been initialized. */\n async readPlan(plan: PlanType): Promise<PlanInfo | null> {\n const account = await this.accounts.plan.fetchNullable(planPda(plan as PlanId, this.programId));\n return account ? this.decodePlan(account) : null;\n }\n\n /** Read an owner's subscription, or `null` if they have not subscribed. */\n async readSubscription(owner: SolanaAddress = this.wallet): Promise<SubscriptionInfo | null> {\n const account = await this.accounts.subscription.fetchNullable(\n subscriptionPda(owner, this.programId),\n );\n if (!account) return null;\n return {\n owner: toSolanaAddress(account.owner),\n planType: planIdFromVariant(account.planType) as unknown as PlanType,\n prepaidUsdc: BigInt(account.prepaidUsdc.toString()),\n price: BigInt(account.price.toString()),\n validUntil: BigInt(account.validUntil.toString()),\n usedRounds: BigInt(account.usedRounds.toString()),\n maxRounds: BigInt(account.maxRounds.toString()),\n delegateCount: account.delegateCount,\n maxDelegates: account.maxDelegates,\n maxSigners: account.maxSigners,\n };\n }\n\n /**\n * Subscribe to a plan. This **debits USDC** from the owner: the plan's\n * `subscriptionPrice` is transferred to the protocol treasury on-chain.\n *\n * Payment is explicit and must be confirmed: pass `maxPriceUsdc` (USDC base\n * units) as the most you agree to pay. The SDK reads the live on-chain price\n * and aborts before sending the transaction if it exceeds that amount, so a\n * price change between display and confirmation can never silently overcharge.\n * The amount actually paid is returned as `pricePaid`.\n *\n * Use {@link getPlan} to display the current price to the user beforehand.\n */\n async subscribe(\n plan: PlanType,\n opts: { maxPriceUsdc: bigint | number | BN; ownerUsdc?: SolanaAddress },\n ): Promise<SubscribeResult> {\n const planId = plan as PlanId;\n const owner = this.wallet;\n const { usdcMint, treasury } = await this.fetchProtocolTokens();\n const price = await this.confirmPlanPrice(planId, opts.maxPriceUsdc, \"subscribe\");\n const ownerUsdc = opts.ownerUsdc ?? getAssociatedTokenAddressSync(usdcMint, owner);\n\n const signature = await this.methods\n .subscribe(planVariant(planId))\n .accountsPartial({\n owner,\n protocolConfig: protocolConfigPda(this.programId),\n plan: planPda(planId, this.programId),\n subscription: subscriptionPda(owner, this.programId),\n ownerUsdc,\n treasury,\n systemProgram: SYSTEM_PROGRAM_ADDRESS,\n tokenProgram: TOKEN_PROGRAM_ADDRESS,\n })\n .rpc();\n return { signature, pricePaid: price };\n }\n\n /**\n * Extend the current subscription for another period. Like {@link subscribe}\n * this **debits USDC** (the plan's `subscriptionPrice`) and requires explicit\n * payment confirmation via `maxPriceUsdc`.\n */\n async extendSubscription(\n opts: { maxPriceUsdc: bigint | number | BN; ownerUsdc?: SolanaAddress },\n ): Promise<SubscribeResult> {\n const owner = this.wallet;\n const subscription = subscriptionPda(owner, this.programId);\n const sub = await this.accounts.subscription.fetch(subscription);\n const planId = planIdFromVariant(sub.planType);\n const { usdcMint, treasury } = await this.fetchProtocolTokens();\n const price = await this.confirmPlanPrice(planId, opts.maxPriceUsdc, \"extendSubscription\");\n const ownerUsdc = opts.ownerUsdc ?? getAssociatedTokenAddressSync(usdcMint, owner);\n\n const signature = await this.methods\n .extendSubscription()\n .accountsPartial({\n owner,\n protocolConfig: protocolConfigPda(this.programId),\n subscription,\n plan: planPda(planId, this.programId),\n ownerUsdc,\n treasury,\n tokenProgram: TOKEN_PROGRAM_ADDRESS,\n })\n .rpc();\n return { signature, pricePaid: price };\n }\n\n /**\n * Read the live on-chain plan price and verify it does not exceed the amount\n * the caller agreed to pay. Returns the price (USDC base units) on success.\n */\n private async confirmPlanPrice(\n planId: PlanId,\n maxPriceUsdc: bigint | number | BN,\n method: string,\n ): Promise<bigint> {\n const max = toUsdcBaseUnits(maxPriceUsdc, \"maxPriceUsdc\");\n const plan = await this.accounts.plan.fetch(planPda(planId, this.programId));\n const price = BigInt(plan.subscriptionPrice.toString());\n if (price > max) {\n throw new Error(\n `${method}: plan price ${price} USDC base units exceeds the confirmed maximum ${max}. ` +\n \"The on-chain price may have changed — re-confirm the current price before paying.\",\n );\n }\n return price;\n }\n\n /**\n * Submit a gateway attestation via `submit_attestation`. The feed account for\n * `(sourceId, signaturesRequired, submitter)` is created on first use. Signer\n * `Node` accounts are resolved from the registry snapshot the round was signed\n * against and passed as remaining accounts.\n */\n async submitAttestation(\n result: DataUpdateResult,\n opts?: { computeUnitLimit?: number },\n ): Promise<SubmitResult> {\n const sourceId = toFixedBytes(result.sourceId, 32, \"sourceId\");\n const submitter = this.wallet;\n const registry = await this.fetchRegistry(result.registryVersion);\n const remaining = resolveRemainingAccounts(result.signersBitmap, registry);\n const feed = feedPda(sourceId, result.signaturesRequired, submitter, this.programId);\n const cuIx = setComputeUnitLimit(opts?.computeUnitLimit ?? DEFAULT_COMPUTE_UNIT_LIMIT);\n\n const signature = await this.methods\n .submitAttestation(buildSubmitAttestationArgs(result))\n .accountsPartial({\n submitter,\n registry: registryPda(result.registryVersion, this.programId),\n feed,\n protocolConfig: protocolConfigPda(this.programId),\n systemProgram: SYSTEM_PROGRAM_ADDRESS,\n })\n .remainingAccounts(remaining)\n .preInstructions([cuIx])\n .rpc();\n return { signature, feed };\n }\n\n /** @deprecated Renamed to {@link submitAttestation}. */\n submitDataUpdate(\n result: DataUpdateResult,\n opts?: { computeUnitLimit?: number },\n ): Promise<SubmitResult> {\n return this.submitAttestation(result, opts);\n }\n\n /**\n * Read the feed written by `submitter` (default: this wallet) for\n * `(sourceId, signaturesRequired)`, or `null` before its first submit.\n */\n async readFeed(\n sourceId: string,\n signaturesRequired: number,\n submitter: SolanaAddress = this.wallet,\n ): Promise<FeedAccount | null> {\n const feed = feedPda(\n toFixedBytes(sourceId, 32, \"sourceId\"),\n signaturesRequired,\n submitter,\n this.programId,\n );\n return (await this.accounts.feed.fetchNullable(feed)) as FeedAccount | null;\n }\n\n /**\n * Authenticate gateway-provided private API encryption keys against the\n * on-chain Node accounts of the round's registry snapshot (`registry.nodes[index]`).\n */\n async verifyNodeKeysForPrivateApi(args: NodeKeyVerifierArgs): Promise<void> {\n const registry = await this.fetchRegistry(args.registryVersion);\n const selectedNodes = selectedNodesForVerifier(args);\n\n await Promise.all(\n selectedNodes.map(async (node) => {\n const nodeAddress = registry.nodes[node.index];\n if (node.index >= registry.nodeCount || nodeAddress === undefined) {\n throw new Error(\n `Gateway selected node ${node.index} is outside registry ${registry.version} node_count ${registry.nodeCount}`,\n );\n }\n const account = await this.fetchNodeAccount(nodeAddress, node.index);\n const onChainKey = secp256k1PublicKeyFromCoordinates(\n nodeCoordinate(account, \"secp256k1PubkeyX\", \"secp256k1_pubkey_x\"),\n nodeCoordinate(account, \"secp256k1PubkeyY\", \"secp256k1_pubkey_y\"),\n `Node(${nodeAddress}) secp256k1 public key`,\n );\n const gatewayKey = normalizeSecp256k1PublicKeyHex(\n node.signingKey,\n `Gateway selected node ${node.index} signingKey`,\n );\n if (gatewayKey !== onChainKey) {\n throw new Error(\n `Gateway selected node ${node.index} signingKey does not match on-chain Node(${nodeAddress})`,\n );\n }\n }),\n );\n }\n\n private decodePlan(account: {\n planType: Record<string, unknown>;\n subscriptionPrice: { toString(): string };\n maxSigners: number;\n maxDelegates: number;\n maxRounds: { toString(): string };\n privateApiEnabled: boolean;\n isActive: boolean;\n }): PlanInfo {\n return {\n planType: planIdFromVariant(account.planType) as unknown as PlanType,\n subscriptionPrice: BigInt(account.subscriptionPrice.toString()),\n maxSigners: account.maxSigners,\n maxDelegates: account.maxDelegates,\n maxRounds: BigInt(account.maxRounds.toString()),\n privateApiEnabled: account.privateApiEnabled,\n isActive: account.isActive,\n };\n }\n\n private async fetchRegistryState(): Promise<RegistryStateView> {\n const state = await this.accounts.registryState.fetch(registryStatePda(this.programId));\n return {\n currentVersion: state.currentVersion,\n nextVersion: state.nextVersion,\n };\n }\n\n private async fetchRegistry(version: number): Promise<RegistryView> {\n const registry = await this.accounts.registry.fetch(registryPda(version, this.programId));\n const nodeCount: number = registry.nodeCount;\n const nodes = (registry.nodes as Array<Uint8Array | number[]>)\n .slice(0, nodeCount)\n .map((entry) => addressFromBytes(Uint8Array.from(entry)));\n return {\n version: registry.version,\n nodeCount,\n redundancyBuffer: registry.redundancyBuffer,\n nodes,\n graceActiveUntil: BigInt(registry.graceActiveUntil.toString()),\n };\n }\n\n private async fetchNodeAccount(\n nodeAddress: Address,\n selectedNodeIndex: number,\n ): Promise<NodeAccount> {\n try {\n return await this.accounts.node.fetch(nodeAddress);\n } catch (err) {\n const detail = err instanceof Error ? err.message : String(err);\n throw new Error(\n `Failed to fetch on-chain Node(${nodeAddress}) for selected node ${selectedNodeIndex}: ${detail}`,\n );\n }\n }\n\n /** `usdc_mint` from `ProtocolConfig`; the treasury is its ATA owned by the config PDA. */\n private async fetchProtocolTokens(): Promise<{ usdcMint: Address; treasury: Address }> {\n const protocolConfig = protocolConfigPda(this.programId);\n const config = await this.accounts.protocolConfig.fetch(protocolConfig);\n const usdcMint = toSolanaAddress(config.usdcMint);\n return {\n usdcMint,\n treasury: getAssociatedTokenAddressSync(usdcMint, protocolConfig),\n };\n }\n}\n\n/** Build the Anchor `SubmitAttestationArgs` for a gateway result. */\nexport function buildSubmitAttestationArgs(result: DataUpdateResult): SubmitAttestationArgs {\n return {\n sourceId: Array.from(toFixedBytes(result.sourceId, 32, \"sourceId\")),\n registryVersion: result.registryVersion,\n value: Array.from(toFixedBytes(result.valuePacked, 32, \"valuePacked\")),\n canonicalTimestamp: new BN(result.timestamp),\n signaturesRequired: result.signaturesRequired,\n aggSigS: Array.from(toFixedBytes(result.s, 32, \"s\")),\n commitment: Array.from(toFixedBytes(result.commitmentAddr, 20, \"commitmentAddr\")),\n signersBitmap: Array.from(toFixedBytes(result.signersBitmap, 32, \"signersBitmap\")),\n };\n}\n\n/** Normalize a confirmed USDC amount (base units) to `bigint`, rejecting non-integers. */\nfunction toUsdcBaseUnits(amount: bigint | number | BN, label: string): bigint {\n if (typeof amount === \"bigint\") {\n if (amount < 0n) throw new Error(`${label} must be non-negative, got ${amount}`);\n return amount;\n }\n if (typeof amount === \"number\") {\n if (!Number.isInteger(amount) || amount < 0) {\n throw new Error(`${label} must be a non-negative integer of USDC base units, got ${amount}`);\n }\n return BigInt(amount);\n }\n return BigInt(amount.toString());\n}\n\nfunction nodeCoordinate(\n account: NodeAccount,\n camelCaseField: \"secp256k1PubkeyX\" | \"secp256k1PubkeyY\",\n snakeCaseField: \"secp256k1_pubkey_x\" | \"secp256k1_pubkey_y\",\n): Uint8Array {\n const value = account[camelCaseField] ?? account[snakeCaseField];\n if (!(value instanceof Uint8Array) && !Array.isArray(value)) {\n throw new Error(`Node account is missing ${camelCaseField}`);\n }\n return toFixedBytes(Uint8Array.from(value), 32, `Node.${camelCaseField}`);\n}\n\nfunction selectedNodesForVerifier(args: NodeKeyVerifierArgs): Node[] {\n if (args.selectedIndexes.length === 0) {\n throw new Error(\"Private API node-key verification requires at least one selected index\");\n }\n if (args.selectedNodes.length !== args.selectedIndexes.length) {\n throw new Error(\n `Private API node-key verification expected ${args.selectedIndexes.length} selected nodes, got ${args.selectedNodes.length}`,\n );\n }\n\n const expected = new Set<number>();\n for (const index of args.selectedIndexes) {\n if (!Number.isInteger(index) || index < 0) {\n throw new Error(`Private API selected index must be a non-negative integer: ${index}`);\n }\n if (expected.has(index)) {\n throw new Error(`Private API selected index is duplicated: ${index}`);\n }\n expected.add(index);\n }\n\n const byIndex = new Map<number, Node>();\n for (const node of args.selectedNodes) {\n if (!Number.isInteger(node.index) || node.index < 0) {\n throw new Error(\n `Private API selected node index must be a non-negative integer: ${node.index}`,\n );\n }\n if (!expected.has(node.index)) {\n throw new Error(`Private API selected node ${node.index} was not requested`);\n }\n if (byIndex.has(node.index)) {\n throw new Error(`Private API selected node index is duplicated: ${node.index}`);\n }\n byIndex.set(node.index, node);\n }\n\n return args.selectedIndexes.map((index) => {\n const node = byIndex.get(index);\n if (!node) {\n throw new Error(`Private API selected node is missing for index: ${index}`);\n }\n return node;\n });\n}\n","/**\n * Attestation message hash — the digest the node coalition Schnorr-signs and every verifier\n * (Solana program, EVM `VerifierLib.constructMessage`, Starknet) recomputes:\n *\n * message = keccak256(\n * keccak256(\"MOLPHA_MESSAGE_V1\") || sourceId || u32be(registryVersion) ||\n * u32be(signaturesRequired) || signersBitmap || value || u64be(canonicalTimestamp)\n * )\n *\n * Widths follow Solidity `abi.encodePacked`: `bytes32, uint32, uint32, uint256, bytes32, uint64`.\n */\nimport { keccak_256 } from \"@noble/hashes/sha3.js\";\nimport { concatBytes, toFixedBytes, u32be, u64be, utf8 } from \"./encoding.js\";\nimport type { DataUpdateResult } from \"./types.js\";\n\n/** `keccak256(\"MOLPHA_MESSAGE_V1\")` domain separator. */\nexport const MESSAGE_PREFIX: Uint8Array = keccak_256(utf8(\"MOLPHA_MESSAGE_V1\"));\n\nexport interface AttestationMessageFields {\n /** 32-byte source id (hex or bytes). */\n sourceId: string | Uint8Array;\n registryVersion: number;\n /** Encoded as `uint32` in the message even though the program stores a `u8`. */\n signaturesRequired: number;\n /** 32-byte big-endian signers bitmap (hex or bytes). */\n signersBitmap: string | Uint8Array;\n /** 32-byte packed value (hex or bytes). */\n value: string | Uint8Array;\n /** Unix seconds (u64). */\n canonicalTimestamp: number | bigint;\n}\n\n/** Compute the attestation message hash (32 bytes). */\nexport function attestationMessageHash(fields: AttestationMessageFields): Uint8Array {\n return keccak_256(\n concatBytes(\n MESSAGE_PREFIX,\n toFixedBytes(fields.sourceId, 32, \"sourceId\"),\n u32be(fields.registryVersion),\n u32be(fields.signaturesRequired),\n toFixedBytes(fields.signersBitmap, 32, \"signersBitmap\"),\n toFixedBytes(fields.value, 32, \"value\"),\n u64be(fields.canonicalTimestamp),\n ),\n );\n}\n\n/** Message hash of a completed gateway round (`valuePacked` is the signed value). */\nexport function attestationMessageHashFromResult(result: DataUpdateResult): Uint8Array {\n return attestationMessageHash({\n sourceId: result.sourceId,\n registryVersion: result.registryVersion,\n signaturesRequired: result.signaturesRequired,\n signersBitmap: result.signersBitmap,\n value: result.valuePacked,\n canonicalTimestamp: result.timestamp,\n });\n}\n","/**\n * Minimal Molpha verifier ABI for `verify` and registry reads.\n * Matches the deployed `verify(DataUpdate, SchnorrSignature)` verifier. The first tuple\n * component carries the 32-byte source id (the contract source names it `jobId`;\n * component names do not affect ABI encoding).\n */\nexport const MOLPHA_VERIFIER_ABI = [\n {\n type: \"function\",\n name: \"verify\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"dataUpdate\",\n type: \"tuple\",\n components: [\n { name: \"sourceId\", type: \"bytes32\" },\n { name: \"registryVersion\", type: \"uint32\" },\n { name: \"signaturesRequired\", type: \"uint32\" },\n { name: \"value\", type: \"bytes32\" },\n { name: \"canonicalTimestamp\", type: \"uint64\" },\n ],\n },\n {\n name: \"schnorrData\",\n type: \"tuple\",\n components: [\n { name: \"signature\", type: \"bytes32\" },\n { name: \"commitment\", type: \"address\" },\n { name: \"signersBitmap\", type: \"uint256\" },\n ],\n },\n ],\n outputs: [{ name: \"\", type: \"bool\" }],\n },\n {\n type: \"function\",\n name: \"getRegistryVersion\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [{ name: \"registryVersion\", type: \"uint256\" }],\n },\n] as const;\n","/**\n * Deployed Molpha verifier contract address on EVM chains.\n * Deployed via CREATE2 for the same address on every supported chain.\n */\n\n/** Supported EVM testnet identifiers (chain selection only). */\nexport type MolphaEvmNetwork =\n | \"evm-sepolia\"\n | \"arbitrum-sepolia\"\n | \"avalanche-fuji\"\n | \"bsc-testnet\";\n\n/** CREATE2 Molpha verifier address — identical on all supported EVM chains. */\nexport const MOLPHA_VERIFIER_ADDRESS =\n \"0xE1fd792b7E54e0C8F0Cd1c8055E446ff36d233eB\" as const;\n","/**\n * EVM verifier argument helpers — framework-agnostic tuple builders for\n * `verify(DataUpdate, SchnorrSignature)` on deployed Molpha verifier contracts.\n */\nimport { bigIntFromBytesBe, toFixedBytes } from \"../core/encoding.js\";\nimport type { DataUpdateResult } from \"../core/types.js\";\n\n/** `(bytes32 sourceId, uint32 registryVersion, uint32 signaturesRequired, bytes32 valuePacked, uint64 timestamp)` */\nexport type EvmDataUpdateTuple = readonly [\n sourceId: `0x${string}`,\n registryVersion: number,\n signaturesRequired: number,\n valuePacked: `0x${string}`,\n timestamp: number,\n];\n\n/** `(bytes32 s, address commitment, uint256 signersBitmap)` */\nexport type EvmSchnorrSignatureTuple = readonly [\n s: `0x${string}`,\n commitment: `0x${string}`,\n signersBitmap: bigint,\n];\n\nexport interface EvmVerifierArgs {\n dataUpdate: EvmDataUpdateTuple;\n signature: EvmSchnorrSignatureTuple;\n}\n\nfunction strip0x(value: string): string {\n return value.startsWith(\"0x\") || value.startsWith(\"0X\") ? value.slice(2) : value;\n}\n\nfunction stripOuterQuotes(value: string): string {\n const trimmed = value.trim();\n if (\n (trimmed.startsWith(\"'\") && trimmed.endsWith(\"'\")) ||\n (trimmed.startsWith('\"') && trimmed.endsWith('\"'))\n ) {\n return trimmed.slice(1, -1);\n }\n return trimmed;\n}\n\n/**\n * Normalize hex to a fixed-size `0x`-prefixed value.\n * Accepts optional `0x` prefix and surrounding quotes.\n */\nexport function toFixedHex(value: string, bytes: number, label: string): `0x${string}` {\n const clean = strip0x(stripOuterQuotes(value)).toLowerCase();\n if (clean.length !== bytes * 2) {\n throw new RangeError(\n `${label}: expected ${bytes} bytes (${bytes * 2} hex chars), got ${clean.length / 2}`,\n );\n }\n return `0x${clean}`;\n}\n\n/** Convert a 32-byte hex bitmap to a `uint256` bigint (big-endian). */\nexport function signersBitmapToUint256(value: string): bigint {\n const bytes = toFixedBytes(toFixedHex(value, 32, \"signersBitmap\"), 32, \"signersBitmap\");\n return bigIntFromBytesBe(bytes);\n}\n\n/** Build verifier `DataUpdate` and `SchnorrSignature` tuples from a gateway result. */\nexport function buildEvmVerifierArgs(result: DataUpdateResult): EvmVerifierArgs {\n const dataUpdate: EvmDataUpdateTuple = [\n toFixedHex(result.sourceId, 32, \"sourceId\"),\n result.registryVersion,\n result.signaturesRequired,\n toFixedHex(result.valuePacked, 32, \"valuePacked\"),\n result.timestamp,\n ];\n\n const signature: EvmSchnorrSignatureTuple = [\n toFixedHex(result.s, 32, \"signature\"),\n toFixedHex(result.commitmentAddr, 20, \"commitment\"),\n signersBitmapToUint256(result.signersBitmap),\n ];\n\n return { dataUpdate, signature };\n}\n\n/** Decimal string form of the signers bitmap — useful for JSON logging or legacy tooling. */\nexport function signersBitmapToDecimal(value: string): string {\n return signersBitmapToUint256(value).toString();\n}\n","/**\n * Deployed Molpha verifier contract addresses on Starknet testnets.\n */\n\n/** Supported Starknet testnet identifiers. */\nexport type MolphaStarknetNetwork = \"starknet-sepolia\";\n\n/** Deployed verifier address on Starknet Sepolia. */\nexport const MOLPHA_VERIFIER_STARKNET_SEPOLIA =\n \"0x0378df4dbecf8f0c7daa801282932f7011c7a5e5773bab9eaf68f5fa5e7530ef\" as const;\n\n/** Network id -> deployed verifier address. */\nexport const MOLPHA_VERIFIER_STARKNET_ADDRESSES: Record<\n MolphaStarknetNetwork,\n `0x${string}`\n> = {\n \"starknet-sepolia\": MOLPHA_VERIFIER_STARKNET_SEPOLIA,\n};\n\n/** Resolve the deployed verifier address for a supported Starknet network. */\nexport function getMolphaStarknetVerifierAddress(\n network: MolphaStarknetNetwork,\n): `0x${string}` {\n return MOLPHA_VERIFIER_STARKNET_ADDRESSES[network];\n}\n","/**\n * Starknet verifier argument helpers — framework-agnostic struct builders for\n * `verify(DataUpdate, SchnorrSignature)` on deployed Molpha verifier contracts.\n */\nimport { bigIntFromBytesBe, toFixedBytes } from \"../core/encoding.js\";\nimport type { DataUpdateResult } from \"../core/types.js\";\n\n/** Starknet calldata shape for `DataUpdate`. */\nexport interface StarknetDataUpdate {\n /** 32-byte source id as u256 (the Cairo struct still names this field `feed_id`). */\n source_id: bigint;\n registry_version: number;\n signatures_required: number;\n value: bigint;\n canonical_timestamp: number;\n}\n\n/** Starknet calldata shape for `SchnorrSignature`. */\nexport interface StarknetSchnorrSignature {\n signature: bigint;\n commitment: bigint;\n signers_bitmap: bigint;\n}\n\nexport interface StarknetVerifierArgs {\n dataUpdate: StarknetDataUpdate;\n signature: StarknetSchnorrSignature;\n}\n\nfunction strip0x(value: string): string {\n return value.startsWith(\"0x\") || value.startsWith(\"0X\") ? value.slice(2) : value;\n}\n\nfunction stripOuterQuotes(value: string): string {\n const trimmed = value.trim();\n if (\n (trimmed.startsWith(\"'\") && trimmed.endsWith(\"'\")) ||\n (trimmed.startsWith('\"') && trimmed.endsWith('\"'))\n ) {\n return trimmed.slice(1, -1);\n }\n return trimmed;\n}\n\nfunction toStrictHex(value: string, bytes: number, label: string): `0x${string}` {\n const clean = strip0x(stripOuterQuotes(value)).toLowerCase();\n if (clean.length !== bytes * 2) {\n throw new RangeError(\n `${label}: expected ${bytes} bytes (${bytes * 2} hex chars), got ${clean.length / 2}`,\n );\n }\n return `0x${clean}`;\n}\n\nfunction fixedHexToBigInt(value: string, bytes: number, label: string): bigint {\n const hex = toStrictHex(value, bytes, label);\n const raw = toFixedBytes(hex, bytes, label);\n return bigIntFromBytesBe(raw);\n}\n\n/** Convert a 20-byte EVM-style address hex to a Starknet felt-compatible bigint. */\nexport function commitmentAddressToStarknetFelt(value: string): bigint {\n return fixedHexToBigInt(value, 20, \"commitment\");\n}\n\n/** Convert a 32-byte bitmap hex to a Starknet/Cairo `u256` bigint. */\nexport function signersBitmapToStarknetUint256(value: string): bigint {\n return fixedHexToBigInt(value, 32, \"signersBitmap\");\n}\n\n/** Build verifier `DataUpdate` and `SchnorrSignature` structs from a gateway result. */\nexport function buildStarknetVerifierArgs(result: DataUpdateResult): StarknetVerifierArgs {\n const dataUpdate: StarknetDataUpdate = {\n source_id: fixedHexToBigInt(result.sourceId, 32, \"sourceId\"),\n registry_version: result.registryVersion,\n signatures_required: result.signaturesRequired,\n value: fixedHexToBigInt(result.valuePacked, 32, \"valuePacked\"),\n canonical_timestamp: result.timestamp,\n };\n\n const signature: StarknetSchnorrSignature = {\n signature: fixedHexToBigInt(result.s, 32, \"signature\"),\n commitment: commitmentAddressToStarknetFelt(result.commitmentAddr),\n signers_bitmap: signersBitmapToStarknetUint256(result.signersBitmap),\n };\n\n return { dataUpdate, signature };\n}\n","/**\n * `@molpha/sdk` — Consumer SDK public surface.\n *\n * The `MolphaSDK` facade wires the gateway and Solana clients together; consumers\n * who only read or only run gateway rounds can use `sdk.gateway` / `sdk.solana`\n * directly (or import `MolphaGateway` / `MolphaSolanaClient` standalone).\n */\nimport { address, type Address } from \"@solana/kit\";\nimport type { AnchorProvider, Idl } from \"@anchor-lang/core\";\nimport {\n type GatewayEndpointInput,\n type RequestSignedDataOptions,\n MolphaGateway,\n} from \"./gateway/index.js\";\nimport { MolphaSolanaClient } from \"./solana/client.js\";\nimport type { DataUpdateResult } from \"./core/types.js\";\nimport { MOLPHA_IDL, MOLPHA_PROGRAM_ADDRESS } from \"../idl/index.js\";\nimport { gatewaySignerFromWallet, type MolphaWallet } from \"./wallet.js\";\nimport type { SolanaConnection } from \"./solana/kit.js\";\ntype Commitment = NonNullable<ConstructorParameters<typeof AnchorProvider>[2]>[\"commitment\"];\n\n// Public re-exports.\nexport * from \"./core/index.js\";\nexport * from \"./gateway/index.js\";\nexport * from \"./evm/index.js\";\nexport * from \"./starknet/index.js\";\nexport * from \"./solana/index.js\";\nexport { MOLPHA_IDL, MOLPHA_PROGRAM_ADDRESS } from \"../idl/index.js\";\nexport { gatewaySignerFromWallet, signerFromKeypair, type MolphaWallet } from \"./wallet.js\";\n\nexport interface MolphaSDKOptions {\n /**\n * Defaults to `DEFAULT_GATEWAY_ENDPOINT`. Pass multiple entries for failover. Each\n * entry is a URL or `{ url, gatewayAuthority }`; when the authority is omitted it is\n * discovered from the gateway's `GET /v1/info`.\n */\n endpoints?: GatewayEndpointInput | GatewayEndpointInput[];\n connection: SolanaConnection;\n /** On-chain txs + gateway auth (see `MolphaWallet`). */\n wallet: MolphaWallet;\n /** Defaults to the vendored IDL's program address. Bound into gateway request auth. */\n programId?: Address | string;\n /** Defaults to `MOLPHA_IDL`. Override when pinning a different deployment. */\n idl?: Idl;\n commitment?: Commitment;\n}\n\nexport class MolphaSDK {\n readonly gateway: MolphaGateway;\n readonly solana: MolphaSolanaClient;\n\n constructor(opts: MolphaSDKOptions) {\n const programId = address(String(opts.programId ?? MOLPHA_PROGRAM_ADDRESS));\n this.solana = MolphaSolanaClient.create({\n connection: opts.connection,\n wallet: opts.wallet,\n programId,\n idl: opts.idl ?? MOLPHA_IDL,\n ...(opts.commitment ? { commitment: opts.commitment } : {}),\n });\n this.gateway = new MolphaGateway(\n opts.endpoints,\n () => this.solana.getRegistrySelectionConfig(),\n gatewaySignerFromWallet(opts.wallet),\n {\n defaultSubscriptionOwner: opts.wallet.publicKey.toBase58(),\n programId,\n verifyNodeKeys: (args) => this.solana.verifyNodeKeysForPrivateApi(args),\n },\n );\n }\n\n /**\n * Request a threshold-signed data update from the gateway (against the current\n * on-chain registry version) and submit it via `submit_attestation`.\n */\n async requestAndSubmit(\n opts: RequestSignedDataOptions,\n ): Promise<{ result: DataUpdateResult; signature: string; feed: Address }> {\n const result = await this.gateway.requestSignedData(opts);\n const { signature, feed } = await this.solana.submitAttestation(result);\n return { result, signature, feed };\n }\n}\n"]}