@molpha/sdk 0.2.0-dev-20260912150104 → 0.2.0-dev-20260913100330
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/README.md +80 -17
- package/dist/index.d.ts +120 -12
- package/dist/index.js +121 -8
- package/dist/index.js.map +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/{wallet-B3mYmC2b.d.ts → wallet-DwdBZgl1.d.ts} +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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/evm/eip712.ts","../src/gateway/x402.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","address","randomBytes","pda","registry","SEED_GATEWAY","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\n/**\n * Standard base64 (padded, no line breaks). Isomorphic: `btoa` is available in\n * Node 20+ and every browser, so no `Buffer` is pulled into browser bundles.\n */\nexport function bytesToBase64(bytes: Uint8Array): string {\n let binary = \"\";\n // Chunked to keep a large payload off the argument stack.\n for (let i = 0; i < bytes.length; i += 0x8000) {\n binary += String.fromCharCode(...bytes.subarray(i, i + 0x8000));\n }\n return btoa(binary);\n}\n\n/** Accepts padded or unpadded standard base64. */\nexport function base64ToBytes(value: string): Uint8Array {\n const padded = value.length % 4 === 0 ? value : value + \"=\".repeat(4 - (value.length % 4));\n const binary = atob(padded);\n const out = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) out[i] = binary.charCodeAt(i);\n return out;\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 * EIP-712 typed-data hashing and EIP-3009 `TransferWithAuthorization` digests.\n *\n * Used to sign payments to an API source that is itself x402-paywalled: the\n * caller authorizes a transfer from their own wallet, so the token contract is\n * the EIP-712 verifying contract. Signature-critical bytes — must stay\n * byte-identical with the token contract and the source's facilitator.\n */\nimport { keccak_256 } from \"@noble/hashes/sha3.js\";\nimport { secp256k1 } from \"@noble/curves/secp256k1.js\";\nimport { bytesToHex, bytesToHex0x, concatBytes, hexToBytes, utf8 } from \"../core/encoding.js\";\nimport type { EvmSigner } from \"../core/types.js\";\n\n/** EIP-712 domain of the token contract that will settle the authorization. */\nexport interface Eip712Domain {\n name: string;\n version: string;\n chainId: number;\n /** Token contract address, 0x-prefixed. */\n verifyingContract: string;\n}\n\n/** EIP-3009 transfer authorization. Amounts are decimal strings of base units. */\nexport interface TransferAuthorization {\n from: string;\n to: string;\n value: string;\n validAfter: string;\n validBefore: string;\n /** 0x-prefixed 32-byte nonce. */\n nonce: string;\n}\n\nconst typeHash = (signature: string): Uint8Array => keccak_256(utf8(signature));\n\nexport const EIP712_DOMAIN_TYPEHASH = typeHash(\n \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\",\n);\n\nexport const TRANSFER_WITH_AUTHORIZATION_TYPEHASH = typeHash(\n \"TransferWithAuthorization(address from,address to,uint256 value,uint256 validAfter,uint256 validBefore,bytes32 nonce)\",\n);\n\n/** ABI-encode one 32-byte word from raw bytes, right-aligned. */\nfunction word(bytes: Uint8Array): Uint8Array {\n if (bytes.length > 32) throw new RangeError(\"ABI word overflow\");\n const out = new Uint8Array(32);\n out.set(bytes, 32 - bytes.length);\n return out;\n}\n\nfunction addressWord(address: string): Uint8Array {\n const bytes = hexToBytes(address);\n if (bytes.length !== 20) throw new RangeError(`Not a 20-byte address: ${address}`);\n return word(bytes);\n}\n\nfunction uintWord(value: string | bigint): Uint8Array {\n const n = typeof value === \"bigint\" ? value : BigInt(value);\n if (n < 0n) throw new RangeError(`Not an unsigned integer: ${value}`);\n const hex = n.toString(16);\n return word(hexToBytes(hex.length % 2 === 0 ? hex : \"0\" + hex));\n}\n\nfunction bytes32Word(value: string): Uint8Array {\n const bytes = hexToBytes(value);\n if (bytes.length !== 32) throw new RangeError(`Not a 32-byte value: ${value}`);\n return bytes;\n}\n\nexport function domainSeparator(domain: Eip712Domain): Uint8Array {\n return keccak_256(\n concatBytes(\n EIP712_DOMAIN_TYPEHASH,\n keccak_256(utf8(domain.name)),\n keccak_256(utf8(domain.version)),\n uintWord(BigInt(domain.chainId)),\n addressWord(domain.verifyingContract),\n ),\n );\n}\n\nexport function transferWithAuthorizationHash(auth: TransferAuthorization): Uint8Array {\n return keccak_256(\n concatBytes(\n TRANSFER_WITH_AUTHORIZATION_TYPEHASH,\n addressWord(auth.from),\n addressWord(auth.to),\n uintWord(auth.value),\n uintWord(auth.validAfter),\n uintWord(auth.validBefore),\n bytes32Word(auth.nonce),\n ),\n );\n}\n\n/** The 32-byte digest a wallet signs: `keccak256(0x1901 || domain || struct)`. */\nexport function transferWithAuthorizationDigest(\n domain: Eip712Domain,\n auth: TransferAuthorization,\n): Uint8Array {\n return keccak_256(\n concatBytes(\n Uint8Array.from([0x19, 0x01]),\n domainSeparator(domain),\n transferWithAuthorizationHash(auth),\n ),\n );\n}\n\n/** EIP-55 checksum form. Some facilitators reject non-checksummed addresses. */\nexport function toChecksumAddress(address: string): string {\n const lower = bytesToHex(hexToBytes(address));\n if (lower.length !== 40) throw new RangeError(`Not a 20-byte address: ${address}`);\n const digest = bytesToHex(keccak_256(utf8(lower)));\n let out = \"0x\";\n for (let i = 0; i < lower.length; i++) {\n out += parseInt(digest[i]!, 16) >= 8 ? lower[i]!.toUpperCase() : lower[i]!;\n }\n return out;\n}\n\n/** The EIP-55 address of a raw secp256k1 private key. */\nexport function evmAddressFromPrivateKey(privateKey: string | Uint8Array): string {\n const key = typeof privateKey === \"string\" ? hexToBytes(privateKey) : privateKey;\n if (key.length !== 32) throw new RangeError(\"EVM private key must be 32 bytes\");\n const uncompressed = secp256k1.getPublicKey(key, false);\n // Drop the 0x04 tag, keccak the 64-byte point, keep the low 20 bytes.\n return toChecksumAddress(bytesToHex0x(keccak_256(uncompressed.subarray(1)).subarray(12)));\n}\n\n/**\n * Build an {@link EvmSigner} from a raw secp256k1 private key. The key stays in\n * the caller's process: neither Molpha nor the gateway ever sees one.\n */\nexport function createEvmSignerFromPrivateKey(privateKey: string | Uint8Array): EvmSigner {\n const key = typeof privateKey === \"string\" ? hexToBytes(privateKey) : privateKey;\n const address = evmAddressFromPrivateKey(key);\n\n return {\n address,\n async signDigest(digest: Uint8Array): Promise<Uint8Array> {\n if (digest.length !== 32) throw new RangeError(\"Digest must be 32 bytes\");\n // Noble returns [recovery || r || s]; Ethereum wants r || s || v.\n const signed = secp256k1.sign(digest, key, { prehash: false, format: \"recovered\" });\n const out = new Uint8Array(65);\n out.set(signed.subarray(1), 0);\n out[64] = 27 + signed[0]!;\n return out;\n },\n };\n}\n","/**\n * Paying an API source that is itself x402-paywalled.\n *\n * The caller pays the source directly, from their own wallet on the source's\n * network. Molpha never holds, signs for, or converts those funds, and the\n * Molpha side of the round is unchanged: a paid source still costs exactly one\n * round of subscription quota, and source payment never enters `sourceId`.\n */\nimport { randomBytes } from \"@noble/hashes/utils.js\";\nimport { base64ToBytes, bytesToBase64, bytesToHex0x, utf8 } from \"../core/encoding.js\";\nimport { effectiveSelectionSize } from \"../core/selection.js\";\nimport type {\n APIConfig,\n AssetDomain,\n EvmSigner,\n UpstreamQuote,\n UpstreamTerms,\n} from \"../core/types.js\";\nimport { transferWithAuthorizationDigest, toChecksumAddress } from \"../evm/eip712.js\";\nimport { resolveAPIConfig } from \"./encryption.js\";\n\n/**\n * Payment networks whose authorizations this SDK can sign. Beta is Base USDC;\n * the asset is pinned because the caller signs a transfer from their own wallet\n * and the token contract is the EIP-712 verifying contract.\n */\nconst NETWORKS: Record<string, { chainId: number; usdc: string }> = {\n \"eip155:8453\": { chainId: 8453, usdc: \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\" },\n \"eip155:84532\": { chainId: 84532, usdc: \"0x036CbD53842c5426634e7929541eC2318f3dCF7e\" },\n // x402 v1 network names.\n base: { chainId: 8453, usdc: \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\" },\n \"base-sepolia\": { chainId: 84532, usdc: \"0x036CbD53842c5426634e7929541eC2318f3dCF7e\" },\n};\n\n/** Raised when a round needs source payment the caller cannot or did not make. */\nexport class UpstreamPaymentRequiredError extends Error {\n constructor(\n readonly quote: UpstreamQuote,\n message?: string,\n ) {\n super(\n message ??\n `API source requires payment for up to ${quote.eligibleSetSize} fetches: ${quote.resource}`,\n );\n this.name = \"UpstreamPaymentRequiredError\";\n }\n}\n\n/**\n * Number of source fetches this round may perform, and so authorizations to\n * sign: `min(signaturesRequired + redundancyBuffer, nodeCount)`. Identical to\n * the round's selection size — the eligible set *is* the set that fetches.\n */\nexport function eligibleSetSize(\n signaturesRequired: number,\n registry: { nodeCount: number; redundancyBuffer: number },\n): number {\n return effectiveSelectionSize(\n signaturesRequired,\n registry.redundancyBuffer,\n registry.nodeCount,\n );\n}\n\n/** Reads a gateway 402 body and returns the relayed upstream quote, if any. */\nexport function parseUpstreamQuote(envelope: unknown): UpstreamQuote | null {\n if (!envelope || typeof envelope !== \"object\") return null;\n const extensions = (envelope as { extensions?: unknown }).extensions;\n if (!extensions || typeof extensions !== \"object\") return null;\n const quote = (extensions as { upstream?: unknown }).upstream;\n if (!quote || typeof quote !== \"object\") return null;\n return typeof (quote as UpstreamQuote).eligibleSetSize === \"number\"\n ? (quote as UpstreamQuote)\n : null;\n}\n\n/** One `accepts` entry of a source's 402 envelope. */\ninterface Offer {\n scheme?: string;\n network?: string;\n asset?: string;\n payTo?: string;\n amount?: string | number;\n maxAmountRequired?: string | number;\n maxTimeoutSeconds?: string | number;\n extra?: { name?: string; version?: string };\n}\n\n/** Picks the one offer this SDK can sign, and validates it before any signing. */\nfunction selectTerms(\n envelope: Record<string, unknown>,\n resource: string,\n assetDomain?: AssetDomain,\n): UpstreamTerms {\n const version = envelope.x402Version === 1 ? 1 : 2;\n const offers: Offer[] = Array.isArray(envelope.accepts) ? envelope.accepts : [];\n if (offers.length === 0) {\n throw new Error(`Source 402 for ${resource} advertised no payment terms`);\n }\n\n const supported = offers.find(\n (o) => o.scheme === \"exact\" && NETWORKS[String(o.network)] !== undefined,\n );\n if (!supported) {\n const seen = offers.map((o) => `${o.scheme}/${o.network}`).join(\", \");\n throw new Error(\n `Source ${resource} requires an unsupported payment scheme or network (${seen}); this SDK signs exact payments on Base USDC only`,\n );\n }\n\n const network = NETWORKS[String(supported.network)]!;\n const asset = String(supported.asset ?? \"\");\n if (asset.toLowerCase() !== network.usdc.toLowerCase()) {\n throw new Error(\n `Source ${resource} asks to be paid in ${asset} on ${supported.network}; this SDK signs USDC (${network.usdc}) only`,\n );\n }\n\n const domain =\n assetDomain ??\n (supported.extra?.name && supported.extra?.version\n ? { name: String(supported.extra.name), version: String(supported.extra.version) }\n : undefined);\n if (!domain) {\n throw new Error(\n `Source ${resource} omitted extra.name/extra.version for ${asset}; supply sourcePayment.assetDomain to sign against it`,\n );\n }\n\n const amount = String(supported.amount ?? supported.maxAmountRequired ?? \"\");\n if (!/^\\d+$/.test(amount)) {\n throw new Error(`Source ${resource} quoted a non-integer price: ${amount}`);\n }\n const payTo = String(supported.payTo ?? \"\");\n if (!payTo) throw new Error(`Source ${resource} omitted payTo`);\n\n return {\n x402Version: version,\n // Echoed verbatim in the signed payload, so it must stay the source's own object.\n requirements: supported as Record<string, unknown>,\n network: String(supported.network),\n chainId: network.chainId,\n asset,\n payTo,\n amount,\n maxTimeoutSeconds: Number(supported.maxTimeoutSeconds ?? 60),\n domain,\n resource,\n };\n}\n\n/** Decodes an x402 envelope from the `PAYMENT-REQUIRED` header, or the body. */\nfunction decodeEnvelope(headerValue: string | null, body: string): Record<string, unknown> {\n if (headerValue) {\n try {\n return JSON.parse(\n new TextDecoder().decode(base64ToBytes(headerValue)),\n ) as Record<string, unknown>;\n } catch {\n // Fall through to the body, which carries the same object.\n }\n }\n return JSON.parse(body) as Record<string, unknown>;\n}\n\n/**\n * Validates caller-supplied terms with the same allowlist and structural checks\n * as {@link probeSource}. Returns canonical {@link UpstreamTerms} derived from\n * `terms.requirements`, not the caller's top-level fields.\n */\nexport function validateSuppliedTerms(\n terms: UpstreamTerms,\n resource: string,\n assetDomain?: AssetDomain,\n): UpstreamTerms {\n return selectTerms(\n {\n x402Version: terms.x402Version,\n accepts: [terms.requirements as Offer],\n },\n resource,\n assetDomain,\n );\n}\n\n/**\n * Fetch the source unpaid to read its own x402 terms. This is a price fetch,\n * not a data fetch: nodes remain the only fetchers of the value itself.\n * Returns `null` when the source is not paywalled.\n */\nexport async function probeSource(\n apiConfig: APIConfig,\n options: { secrets?: Record<string, string>; assetDomain?: AssetDomain; timeoutMs?: number } = {},\n): Promise<UpstreamTerms | null> {\n const resolved = options.secrets ? resolveAPIConfig(apiConfig, options.secrets) : apiConfig;\n\n const init: RequestInit = {\n method: resolved.method ?? \"GET\",\n headers: resolved.headers ?? {},\n };\n let res: Response;\n if (options.timeoutMs === undefined) {\n res = await fetch(resolved.url, init);\n } else {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), options.timeoutMs);\n try {\n res = await fetch(resolved.url, { ...init, signal: controller.signal });\n } finally {\n clearTimeout(timer);\n }\n }\n if (res.status !== 402) return null;\n\n // Probe against the placeholder URL so the terms describe the declared source.\n return selectTerms(\n decodeEnvelope(res.headers.get(\"PAYMENT-REQUIRED\"), await res.text()),\n apiConfig.url,\n options.assetDomain,\n );\n}\n\n/**\n * Sign one x402 payment authorization per eligible node.\n *\n * Sign the whole eligible set. Only authorizations a node actually spends ever\n * settle, so unused ones cost nothing, while signing fewer starves buffer nodes\n * and raises the round's failure probability. Every authorization carries a\n * unique nonce, which is what prevents one from settling twice.\n */\nexport async function signSourcePayments(\n terms: UpstreamTerms,\n signer: EvmSigner,\n count: number,\n): Promise<string[]> {\n if (!Number.isInteger(count) || count < 1) {\n throw new RangeError(`Cannot sign ${count} source payments`);\n }\n\n const now = Math.floor(Date.now() / 1000);\n const validAfter = String(now - 600);\n const validBefore = String(now + Math.max(terms.maxTimeoutSeconds, 60));\n\n const payments: string[] = [];\n for (let i = 0; i < count; i++) {\n const authorization = {\n from: toChecksumAddress(signer.address),\n to: toChecksumAddress(terms.payTo),\n value: terms.amount,\n validAfter,\n validBefore,\n nonce: bytesToHex0x(randomBytes(32)),\n };\n const digest = transferWithAuthorizationDigest(\n {\n name: terms.domain.name,\n version: terms.domain.version,\n chainId: terms.chainId,\n verifyingContract: terms.asset,\n },\n authorization,\n );\n const signature = bytesToHex0x(await signer.signDigest(digest));\n\n const payload =\n terms.x402Version === 1\n ? {\n x402Version: 1,\n scheme: \"exact\",\n network: terms.network,\n payload: { signature, authorization },\n }\n : {\n x402Version: 2,\n accepted: terms.requirements,\n payload: { signature, authorization },\n };\n payments.push(bytesToBase64(utf8(JSON.stringify(payload))));\n }\n return payments;\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 NodesInfo,\n RegistrySelectionConfig,\n Signer,\n SourcePaymentOptions,\n UpstreamTerms,\n} from \"../core/types.js\";\nimport { hashRequestAuth } from \"./auth.js\";\nimport { encryptForNodes } from \"./encryption.js\";\nimport {\n UpstreamPaymentRequiredError,\n parseUpstreamQuote,\n probeSource,\n signSourcePayments,\n validateSuppliedTerms,\n} from \"./x402.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\";\nexport * from \"./x402.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 /**\n * Pays an API source that is itself x402-paywalled. The SDK reads the source's\n * own 402, signs one authorization per node in the round's eligible set, and\n * sends them with the round as `sourcePayments`.\n *\n * Payment goes to the source, never to Molpha: the round still costs exactly\n * one round of subscription quota. Only authorizations a node actually spends\n * ever settle, so the redundancy buffer costs nothing when it goes unused.\n * Without this, a paywalled source throws {@link UpstreamPaymentRequiredError}.\n */\n sourcePayment?: SourcePaymentOptions;\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 return (await this.getNodesInfo()).nodes;\n }\n\n /**\n * `GET /v1/nodes` — the peer set plus the gateway's view of the registry\n * selection policy, which sizes the eligible set a paid source must fund.\n *\n * The `registry` block is advisory: it is whatever the gateway read from the\n * chain, and is absent on older gateways or when that read failed. Prefer the\n * on-chain read (`MolphaSolanaClient.getRegistrySelectionConfig`) whenever a\n * Solana connection is available — `requestSignedData` already does.\n */\n async getNodesInfo(): Promise<NodesInfo> {\n const data = await this.firstReachableData<NodesInfo | Node[]>(\"/v1/nodes\");\n if (Array.isArray(data)) return { nodes: data };\n return {\n nodes: data.nodes,\n ...(data.registry ? { registry: data.registry } : {}),\n };\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 * When the API source is itself x402-paywalled, pass `opts.sourcePayment` to\n * fund it; without that, such a source throws\n * {@link UpstreamPaymentRequiredError} carrying the gateway's quote.\n */\n async requestSignedData(opts: RequestSignedDataOptions): Promise<DataUpdateResult> {\n const {\n apiConfig,\n signer,\n encrypt,\n sourcePayment,\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 // A paywalled source is paid by the caller, per node fetch, from their own\n // wallet. Read the source's terms once, then sign fresh authorizations per\n // attempt so a retry never reuses a nonce. The registry already tells us the\n // eligible set size, so no quote round trip is needed in the common case.\n let terms: UpstreamTerms | null = null;\n let authorizations = 0;\n let requoted = false;\n if (sourcePayment) {\n terms = sourcePayment.terms\n ? validateSuppliedTerms(\n sourcePayment.terms,\n requestApiConfig.url,\n sourcePayment.assetDomain,\n )\n : await probeSource(apiConfig, {\n ...(encrypt ? { secrets: encrypt.secrets } : {}),\n ...(sourcePayment.assetDomain ? { assetDomain: sourcePayment.assetDomain } : {}),\n timeoutMs,\n });\n if (terms) {\n authorizations = effectiveSelectionSize(\n signaturesRequired,\n redundancyBuffer,\n nodeCount,\n );\n }\n }\n\n let lastError: unknown;\n // Each attempt must be its own round: the tuple that identifies a round\n // includes the timestamp, and a dispatched round cannot be re-dispatched.\n let lastTimestamp = 0;\n for (let attempt = 0; attempt < maxRetries; attempt++) {\n let timestamp = Math.floor(Date.now() / 1000);\n if (timestamp <= lastTimestamp) timestamp = lastTimestamp + 1;\n lastTimestamp = timestamp;\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 // Fresh authorizations per attempt: each carries a unique nonce, which is\n // what keeps one from settling twice.\n let sourcePayments: string[] | undefined;\n if (terms && sourcePayment && authorizations > 0) {\n sourcePayments = await signSourcePayments(\n terms,\n sourcePayment.signer,\n authorizations,\n );\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 if (sourcePayments) baseBody.sourcePayments = sourcePayments;\n\n /** Set when a relayed source quote makes this attempt's round obsolete. */\n let requote = false;\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\n // The API source itself wants paying, so the gateway relays its quote\n // instead of a fetch failure. Payment is required, just not to Molpha.\n if (res.status === 402) {\n const quote = parseUpstreamQuote(\n await res.json().catch(() => null),\n );\n if (!quote) {\n throw new GatewayError(\n \"Gateway requires payment but returned no upstream source quote\",\n 402,\n );\n }\n if (!sourcePayment) throw new UpstreamPaymentRequiredError(quote);\n // Already funded to the quoted size and still refused: the source\n // rejected the payment material, which resigning cannot fix.\n if (terms && requoted && authorizations >= quote.eligibleSetSize) {\n throw new UpstreamPaymentRequiredError(\n quote,\n `Source payment was not accepted for ${quote.resource}: ${quote.error ?? \"no detail\"}`,\n );\n }\n requoted = true;\n if (quote.eligibleSetSize !== groupSize) {\n throw new GatewayError(\n `Gateway upstream quote eligibleSetSize ${quote.eligibleSetSize} does not match this round's selection size ${groupSize} (min(signaturesRequired + redundancyBuffer, nodeCount))`,\n 402,\n );\n }\n authorizations = groupSize;\n if (!terms) {\n // Terms we cannot sign are terminal, not transient: surface them\n // with the quote instead of re-probing once per attempt.\n try {\n terms = await probeSource(apiConfig, {\n ...(encrypt ? { secrets: encrypt.secrets } : {}),\n ...(sourcePayment.assetDomain\n ? { assetDomain: sourcePayment.assetDomain }\n : {}),\n timeoutMs,\n });\n } catch (err) {\n throw new UpstreamPaymentRequiredError(\n quote,\n `Cannot pay ${quote.resource}: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n }\n if (!terms) {\n throw new UpstreamPaymentRequiredError(\n quote,\n `Gateway reports ${quote.resource} is paywalled but the source returned no payment terms`,\n );\n }\n // Recover on a fresh timestamp: this round is spent, so the next\n // attempt is a new round rather than a retry of the failed one.\n lastError = new UpstreamPaymentRequiredError(quote);\n requote = true;\n break;\n }\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 // An unpayable or refused source is terminal — never retried blindly.\n if (err instanceof UpstreamPaymentRequiredError) throw err;\n if (\n err instanceof GatewayError &&\n (err.status === 400 || err.status === 401 || err.status === 402)\n ) {\n throw err;\n }\n lastError = err; // timeout / network / identity lookup → next endpoint\n }\n }\n // A requote invalidates this attempt's body for every endpoint alike.\n if (requote) continue;\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"]}
|
|
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/evm/eip712.ts","../src/gateway/x402.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/core/verifyCodes.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","address","randomBytes","pda","registry","SEED_GATEWAY","PlanType","U32_MAX","strip0x","stripOuterQuotes","assertUint"],"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/**\n * Standard base64 (padded, no line breaks). Isomorphic: `btoa` is available in\n * Node 20+ and every browser, so no `Buffer` is pulled into browser bundles.\n */\nexport function bytesToBase64(bytes: Uint8Array): string {\n let binary = \"\";\n // Chunked to keep a large payload off the argument stack.\n for (let i = 0; i < bytes.length; i += 0x8000) {\n binary += String.fromCharCode(...bytes.subarray(i, i + 0x8000));\n }\n return btoa(binary);\n}\n\n/** Accepts padded or unpadded standard base64. */\nexport function base64ToBytes(value: string): Uint8Array {\n const padded = value.length % 4 === 0 ? value : value + \"=\".repeat(4 - (value.length % 4));\n const binary = atob(padded);\n const out = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) out[i] = binary.charCodeAt(i);\n return out;\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 * EIP-712 typed-data hashing and EIP-3009 `TransferWithAuthorization` digests.\n *\n * Used to sign payments to an API source that is itself x402-paywalled: the\n * caller authorizes a transfer from their own wallet, so the token contract is\n * the EIP-712 verifying contract. Signature-critical bytes — must stay\n * byte-identical with the token contract and the source's facilitator.\n */\nimport { keccak_256 } from \"@noble/hashes/sha3.js\";\nimport { secp256k1 } from \"@noble/curves/secp256k1.js\";\nimport { bytesToHex, bytesToHex0x, concatBytes, hexToBytes, utf8 } from \"../core/encoding.js\";\nimport type { EvmSigner } from \"../core/types.js\";\n\n/** EIP-712 domain of the token contract that will settle the authorization. */\nexport interface Eip712Domain {\n name: string;\n version: string;\n chainId: number;\n /** Token contract address, 0x-prefixed. */\n verifyingContract: string;\n}\n\n/** EIP-3009 transfer authorization. Amounts are decimal strings of base units. */\nexport interface TransferAuthorization {\n from: string;\n to: string;\n value: string;\n validAfter: string;\n validBefore: string;\n /** 0x-prefixed 32-byte nonce. */\n nonce: string;\n}\n\nconst typeHash = (signature: string): Uint8Array => keccak_256(utf8(signature));\n\nexport const EIP712_DOMAIN_TYPEHASH = typeHash(\n \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\",\n);\n\nexport const TRANSFER_WITH_AUTHORIZATION_TYPEHASH = typeHash(\n \"TransferWithAuthorization(address from,address to,uint256 value,uint256 validAfter,uint256 validBefore,bytes32 nonce)\",\n);\n\n/** ABI-encode one 32-byte word from raw bytes, right-aligned. */\nfunction word(bytes: Uint8Array): Uint8Array {\n if (bytes.length > 32) throw new RangeError(\"ABI word overflow\");\n const out = new Uint8Array(32);\n out.set(bytes, 32 - bytes.length);\n return out;\n}\n\nfunction addressWord(address: string): Uint8Array {\n const bytes = hexToBytes(address);\n if (bytes.length !== 20) throw new RangeError(`Not a 20-byte address: ${address}`);\n return word(bytes);\n}\n\nfunction uintWord(value: string | bigint): Uint8Array {\n const n = typeof value === \"bigint\" ? value : BigInt(value);\n if (n < 0n) throw new RangeError(`Not an unsigned integer: ${value}`);\n const hex = n.toString(16);\n return word(hexToBytes(hex.length % 2 === 0 ? hex : \"0\" + hex));\n}\n\nfunction bytes32Word(value: string): Uint8Array {\n const bytes = hexToBytes(value);\n if (bytes.length !== 32) throw new RangeError(`Not a 32-byte value: ${value}`);\n return bytes;\n}\n\nexport function domainSeparator(domain: Eip712Domain): Uint8Array {\n return keccak_256(\n concatBytes(\n EIP712_DOMAIN_TYPEHASH,\n keccak_256(utf8(domain.name)),\n keccak_256(utf8(domain.version)),\n uintWord(BigInt(domain.chainId)),\n addressWord(domain.verifyingContract),\n ),\n );\n}\n\nexport function transferWithAuthorizationHash(auth: TransferAuthorization): Uint8Array {\n return keccak_256(\n concatBytes(\n TRANSFER_WITH_AUTHORIZATION_TYPEHASH,\n addressWord(auth.from),\n addressWord(auth.to),\n uintWord(auth.value),\n uintWord(auth.validAfter),\n uintWord(auth.validBefore),\n bytes32Word(auth.nonce),\n ),\n );\n}\n\n/** The 32-byte digest a wallet signs: `keccak256(0x1901 || domain || struct)`. */\nexport function transferWithAuthorizationDigest(\n domain: Eip712Domain,\n auth: TransferAuthorization,\n): Uint8Array {\n return keccak_256(\n concatBytes(\n Uint8Array.from([0x19, 0x01]),\n domainSeparator(domain),\n transferWithAuthorizationHash(auth),\n ),\n );\n}\n\n/** EIP-55 checksum form. Some facilitators reject non-checksummed addresses. */\nexport function toChecksumAddress(address: string): string {\n const lower = bytesToHex(hexToBytes(address));\n if (lower.length !== 40) throw new RangeError(`Not a 20-byte address: ${address}`);\n const digest = bytesToHex(keccak_256(utf8(lower)));\n let out = \"0x\";\n for (let i = 0; i < lower.length; i++) {\n out += parseInt(digest[i]!, 16) >= 8 ? lower[i]!.toUpperCase() : lower[i]!;\n }\n return out;\n}\n\n/** The EIP-55 address of a raw secp256k1 private key. */\nexport function evmAddressFromPrivateKey(privateKey: string | Uint8Array): string {\n const key = typeof privateKey === \"string\" ? hexToBytes(privateKey) : privateKey;\n if (key.length !== 32) throw new RangeError(\"EVM private key must be 32 bytes\");\n const uncompressed = secp256k1.getPublicKey(key, false);\n // Drop the 0x04 tag, keccak the 64-byte point, keep the low 20 bytes.\n return toChecksumAddress(bytesToHex0x(keccak_256(uncompressed.subarray(1)).subarray(12)));\n}\n\n/**\n * Build an {@link EvmSigner} from a raw secp256k1 private key. The key stays in\n * the caller's process: neither Molpha nor the gateway ever sees one.\n */\nexport function createEvmSignerFromPrivateKey(privateKey: string | Uint8Array): EvmSigner {\n const key = typeof privateKey === \"string\" ? hexToBytes(privateKey) : privateKey;\n const address = evmAddressFromPrivateKey(key);\n\n return {\n address,\n async signDigest(digest: Uint8Array): Promise<Uint8Array> {\n if (digest.length !== 32) throw new RangeError(\"Digest must be 32 bytes\");\n // Noble returns [recovery || r || s]; Ethereum wants r || s || v.\n const signed = secp256k1.sign(digest, key, { prehash: false, format: \"recovered\" });\n const out = new Uint8Array(65);\n out.set(signed.subarray(1), 0);\n out[64] = 27 + signed[0]!;\n return out;\n },\n };\n}\n","/**\n * Paying an API source that is itself x402-paywalled.\n *\n * The caller pays the source directly, from their own wallet on the source's\n * network. Molpha never holds, signs for, or converts those funds, and the\n * Molpha side of the round is unchanged: a paid source still costs exactly one\n * round of subscription quota, and source payment never enters `sourceId`.\n */\nimport { randomBytes } from \"@noble/hashes/utils.js\";\nimport { base64ToBytes, bytesToBase64, bytesToHex0x, utf8 } from \"../core/encoding.js\";\nimport { effectiveSelectionSize } from \"../core/selection.js\";\nimport type {\n APIConfig,\n AssetDomain,\n EvmSigner,\n UpstreamQuote,\n UpstreamTerms,\n} from \"../core/types.js\";\nimport { transferWithAuthorizationDigest, toChecksumAddress } from \"../evm/eip712.js\";\nimport { resolveAPIConfig } from \"./encryption.js\";\n\n/**\n * Payment networks whose authorizations this SDK can sign. Beta is Base USDC;\n * the asset is pinned because the caller signs a transfer from their own wallet\n * and the token contract is the EIP-712 verifying contract.\n */\nconst NETWORKS: Record<string, { chainId: number; usdc: string }> = {\n \"eip155:8453\": { chainId: 8453, usdc: \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\" },\n \"eip155:84532\": { chainId: 84532, usdc: \"0x036CbD53842c5426634e7929541eC2318f3dCF7e\" },\n // x402 v1 network names.\n base: { chainId: 8453, usdc: \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\" },\n \"base-sepolia\": { chainId: 84532, usdc: \"0x036CbD53842c5426634e7929541eC2318f3dCF7e\" },\n};\n\n/** Raised when a round needs source payment the caller cannot or did not make. */\nexport class UpstreamPaymentRequiredError extends Error {\n constructor(\n readonly quote: UpstreamQuote,\n message?: string,\n ) {\n super(\n message ??\n `API source requires payment for up to ${quote.eligibleSetSize} fetches: ${quote.resource}`,\n );\n this.name = \"UpstreamPaymentRequiredError\";\n }\n}\n\n/**\n * Number of source fetches this round may perform, and so authorizations to\n * sign: `min(signaturesRequired + redundancyBuffer, nodeCount)`. Identical to\n * the round's selection size — the eligible set *is* the set that fetches.\n */\nexport function eligibleSetSize(\n signaturesRequired: number,\n registry: { nodeCount: number; redundancyBuffer: number },\n): number {\n return effectiveSelectionSize(\n signaturesRequired,\n registry.redundancyBuffer,\n registry.nodeCount,\n );\n}\n\n/** Reads a gateway 402 body and returns the relayed upstream quote, if any. */\nexport function parseUpstreamQuote(envelope: unknown): UpstreamQuote | null {\n if (!envelope || typeof envelope !== \"object\") return null;\n const extensions = (envelope as { extensions?: unknown }).extensions;\n if (!extensions || typeof extensions !== \"object\") return null;\n const quote = (extensions as { upstream?: unknown }).upstream;\n if (!quote || typeof quote !== \"object\") return null;\n return typeof (quote as UpstreamQuote).eligibleSetSize === \"number\"\n ? (quote as UpstreamQuote)\n : null;\n}\n\n/** One `accepts` entry of a source's 402 envelope. */\ninterface Offer {\n scheme?: string;\n network?: string;\n asset?: string;\n payTo?: string;\n amount?: string | number;\n maxAmountRequired?: string | number;\n maxTimeoutSeconds?: string | number;\n extra?: { name?: string; version?: string };\n}\n\n/** Picks the one offer this SDK can sign, and validates it before any signing. */\nfunction selectTerms(\n envelope: Record<string, unknown>,\n resource: string,\n assetDomain?: AssetDomain,\n): UpstreamTerms {\n const version = envelope.x402Version === 1 ? 1 : 2;\n const offers: Offer[] = Array.isArray(envelope.accepts) ? envelope.accepts : [];\n if (offers.length === 0) {\n throw new Error(`Source 402 for ${resource} advertised no payment terms`);\n }\n\n const supported = offers.find(\n (o) => o.scheme === \"exact\" && NETWORKS[String(o.network)] !== undefined,\n );\n if (!supported) {\n const seen = offers.map((o) => `${o.scheme}/${o.network}`).join(\", \");\n throw new Error(\n `Source ${resource} requires an unsupported payment scheme or network (${seen}); this SDK signs exact payments on Base USDC only`,\n );\n }\n\n const network = NETWORKS[String(supported.network)]!;\n const asset = String(supported.asset ?? \"\");\n if (asset.toLowerCase() !== network.usdc.toLowerCase()) {\n throw new Error(\n `Source ${resource} asks to be paid in ${asset} on ${supported.network}; this SDK signs USDC (${network.usdc}) only`,\n );\n }\n\n const domain =\n assetDomain ??\n (supported.extra?.name && supported.extra?.version\n ? { name: String(supported.extra.name), version: String(supported.extra.version) }\n : undefined);\n if (!domain) {\n throw new Error(\n `Source ${resource} omitted extra.name/extra.version for ${asset}; supply sourcePayment.assetDomain to sign against it`,\n );\n }\n\n const amount = String(supported.amount ?? supported.maxAmountRequired ?? \"\");\n if (!/^\\d+$/.test(amount)) {\n throw new Error(`Source ${resource} quoted a non-integer price: ${amount}`);\n }\n const payTo = String(supported.payTo ?? \"\");\n if (!payTo) throw new Error(`Source ${resource} omitted payTo`);\n\n return {\n x402Version: version,\n // Echoed verbatim in the signed payload, so it must stay the source's own object.\n requirements: supported as Record<string, unknown>,\n network: String(supported.network),\n chainId: network.chainId,\n asset,\n payTo,\n amount,\n maxTimeoutSeconds: Number(supported.maxTimeoutSeconds ?? 60),\n domain,\n resource,\n };\n}\n\n/** Decodes an x402 envelope from the `PAYMENT-REQUIRED` header, or the body. */\nfunction decodeEnvelope(headerValue: string | null, body: string): Record<string, unknown> {\n if (headerValue) {\n try {\n return JSON.parse(\n new TextDecoder().decode(base64ToBytes(headerValue)),\n ) as Record<string, unknown>;\n } catch {\n // Fall through to the body, which carries the same object.\n }\n }\n return JSON.parse(body) as Record<string, unknown>;\n}\n\n/**\n * Validates caller-supplied terms with the same allowlist and structural checks\n * as {@link probeSource}. Returns canonical {@link UpstreamTerms} derived from\n * `terms.requirements`, not the caller's top-level fields.\n */\nexport function validateSuppliedTerms(\n terms: UpstreamTerms,\n resource: string,\n assetDomain?: AssetDomain,\n): UpstreamTerms {\n return selectTerms(\n {\n x402Version: terms.x402Version,\n accepts: [terms.requirements as Offer],\n },\n resource,\n assetDomain,\n );\n}\n\n/**\n * Fetch the source unpaid to read its own x402 terms. This is a price fetch,\n * not a data fetch: nodes remain the only fetchers of the value itself.\n * Returns `null` when the source is not paywalled.\n */\nexport async function probeSource(\n apiConfig: APIConfig,\n options: { secrets?: Record<string, string>; assetDomain?: AssetDomain; timeoutMs?: number } = {},\n): Promise<UpstreamTerms | null> {\n const resolved = options.secrets ? resolveAPIConfig(apiConfig, options.secrets) : apiConfig;\n\n const init: RequestInit = {\n method: resolved.method ?? \"GET\",\n headers: resolved.headers ?? {},\n };\n let res: Response;\n if (options.timeoutMs === undefined) {\n res = await fetch(resolved.url, init);\n } else {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), options.timeoutMs);\n try {\n res = await fetch(resolved.url, { ...init, signal: controller.signal });\n } finally {\n clearTimeout(timer);\n }\n }\n if (res.status !== 402) return null;\n\n // Probe against the placeholder URL so the terms describe the declared source.\n return selectTerms(\n decodeEnvelope(res.headers.get(\"PAYMENT-REQUIRED\"), await res.text()),\n apiConfig.url,\n options.assetDomain,\n );\n}\n\n/**\n * Sign one x402 payment authorization per eligible node.\n *\n * Sign the whole eligible set. Only authorizations a node actually spends ever\n * settle, so unused ones cost nothing, while signing fewer starves buffer nodes\n * and raises the round's failure probability. Every authorization carries a\n * unique nonce, which is what prevents one from settling twice.\n */\nexport async function signSourcePayments(\n terms: UpstreamTerms,\n signer: EvmSigner,\n count: number,\n): Promise<string[]> {\n if (!Number.isInteger(count) || count < 1) {\n throw new RangeError(`Cannot sign ${count} source payments`);\n }\n\n const now = Math.floor(Date.now() / 1000);\n const validAfter = String(now - 600);\n const validBefore = String(now + Math.max(terms.maxTimeoutSeconds, 60));\n\n const payments: string[] = [];\n for (let i = 0; i < count; i++) {\n const authorization = {\n from: toChecksumAddress(signer.address),\n to: toChecksumAddress(terms.payTo),\n value: terms.amount,\n validAfter,\n validBefore,\n nonce: bytesToHex0x(randomBytes(32)),\n };\n const digest = transferWithAuthorizationDigest(\n {\n name: terms.domain.name,\n version: terms.domain.version,\n chainId: terms.chainId,\n verifyingContract: terms.asset,\n },\n authorization,\n );\n const signature = bytesToHex0x(await signer.signDigest(digest));\n\n const payload =\n terms.x402Version === 1\n ? {\n x402Version: 1,\n scheme: \"exact\",\n network: terms.network,\n payload: { signature, authorization },\n }\n : {\n x402Version: 2,\n accepted: terms.requirements,\n payload: { signature, authorization },\n };\n payments.push(bytesToBase64(utf8(JSON.stringify(payload))));\n }\n return payments;\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 NodesInfo,\n RegistrySelectionConfig,\n Signer,\n SourcePaymentOptions,\n UpstreamTerms,\n} from \"../core/types.js\";\nimport { hashRequestAuth } from \"./auth.js\";\nimport { encryptForNodes } from \"./encryption.js\";\nimport {\n UpstreamPaymentRequiredError,\n parseUpstreamQuote,\n probeSource,\n signSourcePayments,\n validateSuppliedTerms,\n} from \"./x402.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\";\nexport * from \"./x402.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 /**\n * Pays an API source that is itself x402-paywalled. The SDK reads the source's\n * own 402, signs one authorization per node in the round's eligible set, and\n * sends them with the round as `sourcePayments`.\n *\n * Payment goes to the source, never to Molpha: the round still costs exactly\n * one round of subscription quota. Only authorizations a node actually spends\n * ever settle, so the redundancy buffer costs nothing when it goes unused.\n * Without this, a paywalled source throws {@link UpstreamPaymentRequiredError}.\n */\n sourcePayment?: SourcePaymentOptions;\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 return (await this.getNodesInfo()).nodes;\n }\n\n /**\n * `GET /v1/nodes` — the peer set plus the gateway's view of the registry\n * selection policy, which sizes the eligible set a paid source must fund.\n *\n * The `registry` block is advisory: it is whatever the gateway read from the\n * chain, and is absent on older gateways or when that read failed. Prefer the\n * on-chain read (`MolphaSolanaClient.getRegistrySelectionConfig`) whenever a\n * Solana connection is available — `requestSignedData` already does.\n */\n async getNodesInfo(): Promise<NodesInfo> {\n const data = await this.firstReachableData<NodesInfo | Node[]>(\"/v1/nodes\");\n if (Array.isArray(data)) return { nodes: data };\n return {\n nodes: data.nodes,\n ...(data.registry ? { registry: data.registry } : {}),\n };\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 * When the API source is itself x402-paywalled, pass `opts.sourcePayment` to\n * fund it; without that, such a source throws\n * {@link UpstreamPaymentRequiredError} carrying the gateway's quote.\n */\n async requestSignedData(opts: RequestSignedDataOptions): Promise<DataUpdateResult> {\n const {\n apiConfig,\n signer,\n encrypt,\n sourcePayment,\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 // A paywalled source is paid by the caller, per node fetch, from their own\n // wallet. Read the source's terms once, then sign fresh authorizations per\n // attempt so a retry never reuses a nonce. The registry already tells us the\n // eligible set size, so no quote round trip is needed in the common case.\n let terms: UpstreamTerms | null = null;\n let authorizations = 0;\n let requoted = false;\n if (sourcePayment) {\n terms = sourcePayment.terms\n ? validateSuppliedTerms(\n sourcePayment.terms,\n requestApiConfig.url,\n sourcePayment.assetDomain,\n )\n : await probeSource(apiConfig, {\n ...(encrypt ? { secrets: encrypt.secrets } : {}),\n ...(sourcePayment.assetDomain ? { assetDomain: sourcePayment.assetDomain } : {}),\n timeoutMs,\n });\n if (terms) {\n authorizations = effectiveSelectionSize(\n signaturesRequired,\n redundancyBuffer,\n nodeCount,\n );\n }\n }\n\n let lastError: unknown;\n // Each attempt must be its own round: the tuple that identifies a round\n // includes the timestamp, and a dispatched round cannot be re-dispatched.\n let lastTimestamp = 0;\n for (let attempt = 0; attempt < maxRetries; attempt++) {\n let timestamp = Math.floor(Date.now() / 1000);\n if (timestamp <= lastTimestamp) timestamp = lastTimestamp + 1;\n lastTimestamp = timestamp;\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 // Fresh authorizations per attempt: each carries a unique nonce, which is\n // what keeps one from settling twice.\n let sourcePayments: string[] | undefined;\n if (terms && sourcePayment && authorizations > 0) {\n sourcePayments = await signSourcePayments(\n terms,\n sourcePayment.signer,\n authorizations,\n );\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 if (sourcePayments) baseBody.sourcePayments = sourcePayments;\n\n /** Set when a relayed source quote makes this attempt's round obsolete. */\n let requote = false;\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\n // The API source itself wants paying, so the gateway relays its quote\n // instead of a fetch failure. Payment is required, just not to Molpha.\n if (res.status === 402) {\n const quote = parseUpstreamQuote(\n await res.json().catch(() => null),\n );\n if (!quote) {\n throw new GatewayError(\n \"Gateway requires payment but returned no upstream source quote\",\n 402,\n );\n }\n if (!sourcePayment) throw new UpstreamPaymentRequiredError(quote);\n // Already funded to the quoted size and still refused: the source\n // rejected the payment material, which resigning cannot fix.\n if (terms && requoted && authorizations >= quote.eligibleSetSize) {\n throw new UpstreamPaymentRequiredError(\n quote,\n `Source payment was not accepted for ${quote.resource}: ${quote.error ?? \"no detail\"}`,\n );\n }\n requoted = true;\n if (quote.eligibleSetSize !== groupSize) {\n throw new GatewayError(\n `Gateway upstream quote eligibleSetSize ${quote.eligibleSetSize} does not match this round's selection size ${groupSize} (min(signaturesRequired + redundancyBuffer, nodeCount))`,\n 402,\n );\n }\n authorizations = groupSize;\n if (!terms) {\n // Terms we cannot sign are terminal, not transient: surface them\n // with the quote instead of re-probing once per attempt.\n try {\n terms = await probeSource(apiConfig, {\n ...(encrypt ? { secrets: encrypt.secrets } : {}),\n ...(sourcePayment.assetDomain\n ? { assetDomain: sourcePayment.assetDomain }\n : {}),\n timeoutMs,\n });\n } catch (err) {\n throw new UpstreamPaymentRequiredError(\n quote,\n `Cannot pay ${quote.resource}: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n }\n if (!terms) {\n throw new UpstreamPaymentRequiredError(\n quote,\n `Gateway reports ${quote.resource} is paywalled but the source returned no payment terms`,\n );\n }\n // Recover on a fresh timestamp: this round is spent, so the next\n // attempt is a new round rather than a retry of the failed one.\n lastError = new UpstreamPaymentRequiredError(quote);\n requote = true;\n break;\n }\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 // An unpayable or refused source is terminal — never retried blindly.\n if (err instanceof UpstreamPaymentRequiredError) throw err;\n if (\n err instanceof GatewayError &&\n (err.status === 400 || err.status === 401 || err.status === 402)\n ) {\n throw err;\n }\n lastError = err; // timeout / network / identity lookup → next endpoint\n }\n }\n // A requote invalidates this attempt's body for every endpoint alike.\n if (requote) continue;\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 * Result codes returned by Molpha's stateless verifier contracts (`verify` on EVM and\n * Starknet). Shared across VMs: the same attestation yields the same code on every chain.\n *\n * Append-only — never renumber. Mirrors `VerifyCodes.sol` in `molpha-core-contracts` and\n * `verify_codes.cairo` in `molpha-starknet`. Two codes belong to mechanisms the verifiers\n * do not implement; they are kept so the numbering can never shift under them.\n */\nexport const VERIFY_CODES = {\n OK: 0,\n /** Reserved. Never returned. */\n FEED_WITNESS: 1,\n /** The payload's `registryVersion` does not exist on this verifier. */\n BAD_REGISTRY_VERSION: 2,\n /** Structurally invalid input, or a `canonicalTimestamp` in the future when `maxAge != 0`. */\n MALFORMED: 3,\n /** `canonicalTimestamp` predates the registry version's activation. */\n NOT_YET_ACTIVE: 4,\n /** The registry version was superseded more than the grace window before `canonicalTimestamp`. */\n VERSION_EXPIRED: 5,\n /** Reserved. Never returned. */\n COMPROMISED_QUORUM: 6,\n /** The signer set is not within the round's derived selection group. */\n BAD_QUORUM: 7,\n /** The signers' aggregate public key is the point at infinity. */\n BAD_AGGREGATE: 8,\n /** The aggregate Schnorr signature does not verify. */\n BAD_SIGNATURE: 9,\n /** Older than the caller's `maxAge`. */\n STALE: 10,\n} as const;\n\nexport type VerifyCodeName = keyof typeof VERIFY_CODES;\nexport type VerifyCode = (typeof VERIFY_CODES)[VerifyCodeName];\n\nconst NAMES_BY_CODE: ReadonlyMap<number, VerifyCodeName> = new Map(\n (Object.entries(VERIFY_CODES) as [VerifyCodeName, VerifyCode][]).map(([name, code]) => [\n code,\n name,\n ]),\n);\n\n/**\n * Name of a verifier result code, or `undefined` for a code this SDK version does not know.\n * Codes are append-only, so an unknown code is a newer verifier, not a malformed response.\n */\nexport function verifyCodeName(code: number): VerifyCodeName | undefined {\n return NAMES_BY_CODE.get(code);\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 helpers — framework-agnostic builders for\n * `verify(attestation: Attestation, max_age: u64) -> (bool, u8)` on deployed Molpha\n * verifier contracts, plus a raw calldata encoder and a result decoder.\n *\n * Nothing here depends on `starknet.js`. The struct objects use the Cairo member names, so\n * an ABI-aware client can pass them straight through; `encodeStarknetVerifyCalldata`\n * produces the flat felt array for a raw `starknet_call`.\n */\nimport { bigIntFromBytesBe, toFixedBytes } from \"../core/encoding.js\";\nimport type { DataUpdateResult } from \"../core/types.js\";\nimport { VERIFY_CODES, verifyCodeName, type VerifyCodeName } from \"../core/verifyCodes.js\";\n\n/**\n * Starknet calldata shape for `AttestationPayload`.\n *\n * Member order is the order of the signed message preimage and of Cairo `Serde`, so it is\n * load bearing — it is not the order of `DataUpdateResult`.\n */\nexport interface StarknetAttestationPayload {\n /** 32-byte packed value as `u256`. */\n value: bigint;\n /** 32-byte source id as `u256`. */\n source_id: bigint;\n /** `u32`. */\n registry_version: number;\n /** `u8`. */\n signatures_required: number;\n /** `u64`, unix seconds. */\n canonical_timestamp: number;\n}\n\n/** Starknet calldata shape for `SchnorrSignature`. */\nexport interface StarknetSchnorrSignature {\n /** Schnorr scalar `s` as `u256`. */\n signature: bigint;\n /** Ethereum-style 20-byte address of the nonce point `R`, as a `felt252`. */\n commitment: bigint;\n /** Big-endian signers bitmap as `u256`; bit `i` is node `i` of the registry version. */\n signers_bitmap: bigint;\n}\n\n/** Starknet calldata shape for `Attestation`. */\nexport interface StarknetAttestation {\n payload: StarknetAttestationPayload;\n signature: StarknetSchnorrSignature;\n}\n\n/** Positional arguments for `verify(attestation, max_age)`. */\nexport interface StarknetVerifierArgs {\n attestation: StarknetAttestation;\n /** Freshness window in seconds (`u64`). `0` disables the check. */\n maxAge: number;\n}\n\nexport interface BuildStarknetVerifierArgsOptions {\n /**\n * Freshness window in seconds. The verifier rejects the attestation with `STALE` when it\n * is older than this, and as `MALFORMED` when it is dated in the future.\n *\n * Required on purpose. `0` disables the check entirely, and that is not a neutral\n * default: the verifier is stateless, so without a window it accepts a correctly signed\n * attestation forever. Pass `0` only when the consuming contract enforces freshness or\n * ordering itself.\n */\n maxAge: number;\n}\n\n/** Decoded `verify` return value. */\nexport interface StarknetVerifyResult {\n success: boolean;\n /** Raw result code — see `VERIFY_CODES`. */\n code: number;\n /** Name of `code`, or `\"UNKNOWN\"` for a code newer than this SDK. */\n reason: VerifyCodeName | \"UNKNOWN\";\n}\n\n/** A felt as returned by `starknet_call` (hex or decimal string) or by an ABI-aware client. */\nexport type StarknetFeltLike = string | number | bigint | boolean;\n\nconst U8_MAX = 0xffn;\nconst U32_MAX = 0xffff_ffffn;\nconst U64_MAX = 0xffff_ffff_ffff_ffffn;\nconst U128_MASK = (1n << 128n) - 1n;\nconst U256_MAX = (1n << 256n) - 1n;\nconst ADDRESS_MAX = (1n << 160n) - 1n;\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/**\n * Checks an integer fits its Cairo type. Out-of-range calldata does not reach `verify` at\n * all: Cairo `Serde` fails while decoding the arguments, and the call reverts instead of\n * returning a result code. Catching it here keeps that failure in the caller's process.\n */\nfunction assertUint(value: number, max: bigint, label: string): number {\n if (!Number.isSafeInteger(value) || value < 0 || BigInt(value) > max) {\n throw new RangeError(`${label}: expected an integer in 0..${max}, got ${value}`);\n }\n return value;\n}\n\nfunction assertBigUint(value: bigint, max: bigint, label: string): bigint {\n if (value < 0n || value > max) {\n throw new RangeError(`${label}: expected an integer in 0..${max}, got ${value}`);\n }\n return value;\n}\n\nfunction toFelt(value: bigint | number): `0x${string}` {\n return `0x${BigInt(value).toString(16)}`;\n}\n\n/** Cairo `u256` serializes as two felts, low limb first. */\nfunction u256Felts(value: bigint, label: string): [`0x${string}`, `0x${string}`] {\n assertBigUint(value, U256_MAX, label);\n return [toFelt(value & U128_MASK), toFelt(value >> 128n)];\n}\n\nfunction feltToBigInt(value: StarknetFeltLike, label: string): bigint {\n if (typeof value === \"boolean\") return value ? 1n : 0n;\n if (typeof value === \"bigint\") return value;\n if (typeof value === \"number\") {\n if (!Number.isSafeInteger(value)) throw new RangeError(`${label}: not an integer: ${value}`);\n return BigInt(value);\n }\n const text = value.trim();\n if (!/^(0x[0-9a-fA-F]+|[0-9]+)$/.test(text)) {\n throw new RangeError(`${label}: not a felt: ${JSON.stringify(value)}`);\n }\n return BigInt(text);\n}\n\n/** Convert a 20-byte commitment 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/**\n * Build the `verify(attestation, max_age)` arguments from a gateway result.\n *\n * ```ts\n * const { attestation, maxAge } = buildStarknetVerifierArgs(result, { maxAge: 300 });\n * ```\n */\nexport function buildStarknetVerifierArgs(\n result: DataUpdateResult,\n options: BuildStarknetVerifierArgsOptions,\n): StarknetVerifierArgs {\n const payload: StarknetAttestationPayload = {\n value: fixedHexToBigInt(result.valuePacked, 32, \"valuePacked\"),\n source_id: fixedHexToBigInt(result.sourceId, 32, \"sourceId\"),\n registry_version: assertUint(result.registryVersion, U32_MAX, \"registryVersion\"),\n signatures_required: assertUint(result.signaturesRequired, U8_MAX, \"signaturesRequired\"),\n canonical_timestamp: assertUint(result.timestamp, U64_MAX, \"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 {\n attestation: { payload, signature },\n maxAge: assertUint(options.maxAge, U64_MAX, \"maxAge\"),\n };\n}\n\n/**\n * Flat felt calldata for `verify(attestation, max_age)`, in Cairo `Serde` order — 13 felts:\n *\n * `value.low, value.high, source_id.low, source_id.high, registry_version,\n * signatures_required, canonical_timestamp, signature.low, signature.high, commitment,\n * signers_bitmap.low, signers_bitmap.high, max_age`\n *\n * For a raw `starknet_call` with `entry_point_selector = selector(\"verify\")`.\n */\nexport function encodeStarknetVerifyCalldata(args: StarknetVerifierArgs): `0x${string}`[] {\n const { payload, signature } = args.attestation;\n return [\n ...u256Felts(payload.value, \"value\"),\n ...u256Felts(payload.source_id, \"source_id\"),\n toFelt(assertUint(payload.registry_version, U32_MAX, \"registry_version\")),\n toFelt(assertUint(payload.signatures_required, U8_MAX, \"signatures_required\")),\n toFelt(assertUint(payload.canonical_timestamp, U64_MAX, \"canonical_timestamp\")),\n ...u256Felts(signature.signature, \"signature\"),\n // An Ethereum-style address, so it must fit 160 bits (the verifier reports a wider one\n // as `MALFORMED`; one past the field prime would not even deserialize).\n toFelt(assertBigUint(signature.commitment, ADDRESS_MAX, \"commitment\")),\n ...u256Felts(signature.signers_bitmap, \"signers_bitmap\"),\n toFelt(assertUint(args.maxAge, U64_MAX, \"maxAge\")),\n ];\n}\n\n/**\n * Decode the `(bool, u8)` returned by `verify`.\n *\n * Accepts the raw two-felt array from `starknet_call` (e.g. `[\"0x1\", \"0x0\"]`) or the tuple\n * an ABI-aware client decodes (e.g. `{ 0: true, 1: 0n }`). Throws when the two halves\n * disagree (`success` with a non-zero code, or failure with `OK`), which means the call did\n * not reach a Molpha verifier of this interface.\n */\nexport function parseStarknetVerifyResult(\n result:\n | readonly StarknetFeltLike[]\n | { readonly 0: StarknetFeltLike; readonly 1: StarknetFeltLike },\n): StarknetVerifyResult {\n if (Array.isArray(result) && result.length !== 2) {\n throw new RangeError(`verify result: expected 2 felts, got ${result.length}`);\n }\n const tuple = result as { readonly 0: StarknetFeltLike; readonly 1: StarknetFeltLike };\n\n const successFelt = feltToBigInt(tuple[0], \"verify result success\");\n if (successFelt !== 0n && successFelt !== 1n) {\n throw new RangeError(`verify result: success must be 0 or 1, got ${successFelt}`);\n }\n const codeFelt = feltToBigInt(tuple[1], \"verify result code\");\n if (codeFelt < 0n || codeFelt > U8_MAX) {\n throw new RangeError(`verify result: code must fit u8, got ${codeFelt}`);\n }\n\n const success = successFelt === 1n;\n const code = Number(codeFelt);\n if (success !== (code === VERIFY_CODES.OK)) {\n throw new Error(\n `verify result is inconsistent: success=${success} with code ${code}; ` +\n \"the call did not reach a Molpha verifier with this interface\",\n );\n }\n\n return { success, code, reason: verifyCodeName(code) ?? \"UNKNOWN\" };\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"]}
|