@utxopia/sdk 0.1.0-alpha.1

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.
Files changed (94) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +171 -0
  3. package/package.json +108 -0
  4. package/packages/btc-client/src/esplora-client.ts +153 -0
  5. package/packages/btc-client/src/index.ts +3 -0
  6. package/packages/btc-client/src/op-return.ts +93 -0
  7. package/packages/btc-client/src/types.ts +112 -0
  8. package/packages/sdk/README.md +277 -0
  9. package/packages/sdk/dist/announcement-client.d.ts +64 -0
  10. package/packages/sdk/dist/announcement-client.js +337 -0
  11. package/packages/sdk/dist/auditor-ciphertext.d.ts +72 -0
  12. package/packages/sdk/dist/auditor-ciphertext.js +135 -0
  13. package/packages/sdk/dist/auditor.d.ts +115 -0
  14. package/packages/sdk/dist/auditor.js +292 -0
  15. package/packages/sdk/dist/bitcoin/ika.d.ts +47 -0
  16. package/packages/sdk/dist/bitcoin/ika.js +74 -0
  17. package/packages/sdk/dist/bitcoin/index.d.ts +2 -0
  18. package/packages/sdk/dist/bitcoin/index.js +1 -0
  19. package/packages/sdk/dist/bound-params.d.ts +96 -0
  20. package/packages/sdk/dist/bound-params.js +249 -0
  21. package/packages/sdk/dist/chadbuffer.d.ts +124 -0
  22. package/packages/sdk/dist/chadbuffer.js +405 -0
  23. package/packages/sdk/dist/claim-link.d.ts +30 -0
  24. package/packages/sdk/dist/claim-link.js +50 -0
  25. package/packages/sdk/dist/client.d.ts +233 -0
  26. package/packages/sdk/dist/client.js +416 -0
  27. package/packages/sdk/dist/commitment-tree.d.ts +268 -0
  28. package/packages/sdk/dist/commitment-tree.js +564 -0
  29. package/packages/sdk/dist/config.d.ts +177 -0
  30. package/packages/sdk/dist/config.js +426 -0
  31. package/packages/sdk/dist/core/esplora.d.ts +110 -0
  32. package/packages/sdk/dist/core/esplora.js +187 -0
  33. package/packages/sdk/dist/core/mempool.d.ts +60 -0
  34. package/packages/sdk/dist/core/mempool.js +107 -0
  35. package/packages/sdk/dist/crypto-babyjub.d.ts +105 -0
  36. package/packages/sdk/dist/crypto-babyjub.js +312 -0
  37. package/packages/sdk/dist/crypto-ed25519.d.ts +116 -0
  38. package/packages/sdk/dist/crypto-ed25519.js +235 -0
  39. package/packages/sdk/dist/crypto.d.ts +59 -0
  40. package/packages/sdk/dist/crypto.js +140 -0
  41. package/packages/sdk/dist/event-client.d.ts +64 -0
  42. package/packages/sdk/dist/event-client.js +165 -0
  43. package/packages/sdk/dist/events.d.ts +127 -0
  44. package/packages/sdk/dist/events.js +305 -0
  45. package/packages/sdk/dist/explorer.d.ts +86 -0
  46. package/packages/sdk/dist/explorer.js +197 -0
  47. package/packages/sdk/dist/index.d.ts +61 -0
  48. package/packages/sdk/dist/index.js +216 -0
  49. package/packages/sdk/dist/instructions.d.ts +1125 -0
  50. package/packages/sdk/dist/instructions.js +1760 -0
  51. package/packages/sdk/dist/keys.d.ts +467 -0
  52. package/packages/sdk/dist/keys.js +799 -0
  53. package/packages/sdk/dist/logger.d.ts +10 -0
  54. package/packages/sdk/dist/logger.js +40 -0
  55. package/packages/sdk/dist/magicblock.d.ts +90 -0
  56. package/packages/sdk/dist/magicblock.js +164 -0
  57. package/packages/sdk/dist/merkle.d.ts +82 -0
  58. package/packages/sdk/dist/merkle.js +141 -0
  59. package/packages/sdk/dist/note.d.ts +348 -0
  60. package/packages/sdk/dist/note.js +483 -0
  61. package/packages/sdk/dist/pda.d.ts +160 -0
  62. package/packages/sdk/dist/pda.js +384 -0
  63. package/packages/sdk/dist/pool-state.d.ts +100 -0
  64. package/packages/sdk/dist/pool-state.js +126 -0
  65. package/packages/sdk/dist/poseidon.d.ts +53 -0
  66. package/packages/sdk/dist/poseidon.js +136 -0
  67. package/packages/sdk/dist/prover/index.d.ts +10 -0
  68. package/packages/sdk/dist/prover/index.js +10 -0
  69. package/packages/sdk/dist/prover/mobile.d.ts +45 -0
  70. package/packages/sdk/dist/prover/mobile.js +227 -0
  71. package/packages/sdk/dist/prover/web.d.ts +136 -0
  72. package/packages/sdk/dist/prover/web.js +597 -0
  73. package/packages/sdk/dist/psbt.d.ts +73 -0
  74. package/packages/sdk/dist/psbt.js +202 -0
  75. package/packages/sdk/dist/selective-disclosure.d.ts +181 -0
  76. package/packages/sdk/dist/selective-disclosure.js +172 -0
  77. package/packages/sdk/dist/sender-memo.d.ts +149 -0
  78. package/packages/sdk/dist/sender-memo.js +250 -0
  79. package/packages/sdk/dist/sns-resolver.d.ts +121 -0
  80. package/packages/sdk/dist/sns-resolver.js +229 -0
  81. package/packages/sdk/dist/solana/connection.d.ts +77 -0
  82. package/packages/sdk/dist/solana/connection.js +133 -0
  83. package/packages/sdk/dist/solana/priority-fee.d.ts +78 -0
  84. package/packages/sdk/dist/solana/priority-fee.js +137 -0
  85. package/packages/sdk/dist/stealth.d.ts +429 -0
  86. package/packages/sdk/dist/stealth.js +703 -0
  87. package/packages/sdk/dist/taproot.d.ts +172 -0
  88. package/packages/sdk/dist/taproot.js +494 -0
  89. package/packages/sdk/dist/token-registry.d.ts +96 -0
  90. package/packages/sdk/dist/token-registry.js +122 -0
  91. package/packages/sdk/dist/utils/encoding.d.ts +19 -0
  92. package/packages/sdk/dist/utils/encoding.js +29 -0
  93. package/packages/sdk/dist/vk-registry.d.ts +100 -0
  94. package/packages/sdk/dist/vk-registry.js +212 -0
@@ -0,0 +1,216 @@
1
+ /**
2
+ * UTXOpia SDK v3.0 (JoinSplit Architecture)
3
+ *
4
+ * Complete client library for interacting with the UTXOpia protocol.
5
+ * Private Bitcoin using ZK proofs.
6
+ *
7
+ * Networks: Solana deployments + Bitcoin testnet4/regtest/mainnet
8
+ *
9
+ * ## Quick Start
10
+ * ```typescript
11
+ * import { createNonInteractiveDeposit, generateJoinSplitProof, buildTransactInstruction } from '@utxopia/sdk';
12
+ *
13
+ * // 1. DEPOSIT: Generate BTC address + compact OP_RETURN payload.
14
+ * const deposit = await createNonInteractiveDeposit(meta, custodyInternalKey, 'testnet', undefined, opReturnContext);
15
+ * console.log('Send BTC to:', deposit.btcAddress);
16
+ *
17
+ * // 2. TRANSACT: JoinSplit proof for private transfer
18
+ * const proof = await generateJoinSplitProof(inputs);
19
+ *
20
+ * // 3. BUILD: Create Solana instruction
21
+ * const ix = buildTransactInstruction(options);
22
+ * ```
23
+ */
24
+ // ==========================================================================
25
+ // Cryptographic utilities
26
+ // ==========================================================================
27
+ export {
28
+ // Byte conversion (encoding utilities)
29
+ bigintToBytes, bytesToBigint, hexToBytes, bytesToHex,
30
+ // Hashing
31
+ sha256Hash, x25519Ecdh, ed25519GenerateKeyPair, ed25519PubToX25519, ed25519PrivToX25519, x25519PubFromPriv, x25519EcdhRaw, encryptAmountEd25519, decryptAmountEd25519,
32
+ // Low-level crypto (needed by E2E test scripts + contract deploy scripts)
33
+ randomFieldElement, BN254_FIELD_PRIME, babyJubMul, BABYJUB_BASE8, } from "./crypto";
34
+ // ==========================================================================
35
+ // Key derivation (Solana wallet -> spending/viewing keys)
36
+ // ==========================================================================
37
+ export {
38
+ // Key derivation (high-level)
39
+ deriveKeysFromWallet, deriveKeysFromSeed, deriveKeysFromSeedCircuit, deriveKeysFromAuthSignature, setupKeysFromAuthSignature, generateRandomAuthSignature,
40
+ // Key setup (combined derivation + stealth address)
41
+ setupKeysFromWallet, setupKeysFromSeed, recreateStealthAddress,
42
+ // EdDSA signing
43
+ eddsaPoseidonSign, eddsaPoseidonSignWithScalar, eddsaGetPrivScalar, eddsaGetPubKey,
44
+ // Stealth meta address
45
+ createStealthMetaAddress, serializeStealthMetaAddress, deserializeStealthMetaAddress, encodeStealthMetaAddress, decodeStealthMetaAddress,
46
+ // Key lifecycle
47
+ clearUTXOpiaKeys,
48
+ // Key serialization
49
+ serializeKeysForStorage, deserializeKeysFromStorage, PASSKEY_CHAIN_SCOPE_DOMAIN, deriveChainScopedPasskeySeed, passkeyStorageOwner, } from "./keys";
50
+ // Delegated viewing keys + auditor toolkit (Phase 1)
51
+ export { ViewPermissions, hasPermission, isDelegatedKeyValid, isSlotInDelegatedRange, createDelegatedViewKey, serializeDelegatedViewKey, deserializeDelegatedViewKey, makeDelegationRecord, fingerprintDelegatedKey, clearDelegatedViewKey,
52
+ // The delegation-safe alternative: unlike createDelegatedViewKey this omits nullifyingKey,
53
+ // which is what stops the holder from deriving every nullifier the account will ever publish.
54
+ // It was reachable only by deep import while the footgun sat in the barrel.
55
+ extractViewOnlyBundle, } from "./keys";
56
+ export { auditScan, auditScanCiphertexts, auditRecordsToCsv, } from "./auditor";
57
+ // Auditor ciphertext (Method-Y permissioned pool)
58
+ export { encryptAuditorCiphertext, decryptAuditorCiphertext, buildAuditorCiphertextForNote, resolveAuditorCiphertext, AUDITOR_CIPHERTEXT_BYTES, } from "./auditor-ciphertext";
59
+ export { generateAuditorViewingKeypair, deriveAuditorViewingKeypair, } from "./keys";
60
+ // Sender memo channel (Phase 2)
61
+ export { encryptSenderMemo, decryptSenderMemo, deriveOutgoingViewingKey, packSenderMemo, unpackSenderMemo, packSenderMemoForInstruction, buildSenderMemosForTransact, generateSenderMemoNonce, SENDER_MEMO_AMOUNT_BYTES, SENDER_MEMO_CIPHERTEXT_BYTES, SENDER_MEMO_COMMITMENT_BYTES, SENDER_MEMO_NONCE_BYTES, SENDER_MEMO_PACKED_BYTES, SENDER_MEMO_TAG_BYTES, SENDER_MEMO_TOKEN_BYTES, } from "./sender-memo";
62
+ // Selective ZK disclosure proofs (Phase 4)
63
+ export { generateOwnershipProof, generateRangeSumProof, computeRangeSumAttestation, pickRangeSumVariant, RANGE_SUM_N, RANGE_SUM_VARIANTS, RANGE_SUM_SIZES, } from "./selective-disclosure";
64
+ // ==========================================================================
65
+ // Deliberately not re-exported: isWalletAdapter, isDirectVaultDepositMode (guards the SDK
66
+ // branches on), updateNoteWithHashes, updateStealthNoteWithHashes (mutators for fields the
67
+ // SDK computes) and stealthNoteHasComputedHashes (a predicate over state no caller builds).
68
+ // Still exported from their own modules for internal use — they are just not public API.
69
+ // Poseidon hash utilities
70
+ // ==========================================================================
71
+ export { initPoseidon, isPoseidonReady, poseidonHashSync, computeUnifiedCommitmentSync, computeNullifierSync, hashNullifierSync,
72
+ // JoinSplit primitives (used by E2E scripts + pay-flow)
73
+ computeMPKSync, computeNPKSync, computeJoinSplitCommitmentSync, computeJoinSplitNullifierSync,
74
+ // Multi-token
75
+ computeTokenId, reduceToField, } from "./poseidon";
76
+ // ==========================================================================
77
+ // Token Registry (multi-token support)
78
+ // ==========================================================================
79
+ export { fetchTokenConfig, getTokenId, fetchSupportedTokens, fetchEnabledTokens, parseTokenConfig, } from "./token-registry";
80
+ // ==========================================================================
81
+ // MagicBlock ER / PER execution domains
82
+ // ==========================================================================
83
+ export { MAGICBLOCK_DELEGATION_PROGRAM_ID, MAGICBLOCK_DEVNET_ROUTER_URL, MAGICBLOCK_DEVNET_ROUTER_WS_URL, MAGICBLOCK_EPHEMERAL_VAULT_ID, MAGICBLOCK_MAGIC_CONTEXT_ID, MAGICBLOCK_MAGIC_PROGRAM_ID, MAGICBLOCK_MAX_PER_MEMBERS, MAGICBLOCK_PERMISSION_PROGRAM_ID, MAGICBLOCK_PER_MEMBER_FLAGS, MAGICBLOCK_VALIDATOR_IDENTITIES, buildDefaultPrivacyDomain, buildMagicBlockPerMemberFlags, deriveMagicBlockCommitRecordPDA, deriveMagicBlockCommitStatePDA, deriveMagicBlockDelegateBufferPDA, deriveMagicBlockDelegationMetadataPDA, deriveMagicBlockDelegationRecordPDA, deriveMagicBlockPermissionPDA, deriveMagicBlockUndelegateBufferPDA, requiresMagicBlockEndpoint, getMagicBlockEndpoint, getMagicBlockValidatorIdentity, createMagicBlockRouterConnection, } from "./magicblock";
84
+ // ==========================================================================
85
+ // Note (shielded commitment) utilities
86
+ // ==========================================================================
87
+ export { generateNote, createNoteFromSecrets, serializeNote, deserializeNote, noteHasComputedHashes, getNotePublicKeyX, computeNoteCommitment, computeNoteNullifier, formatBtc, parseBtc, deriveNote, deriveNotes, deriveMasterKey, deriveNoteFromMaster, estimateSeedStrength, createNote, prepareWithdrawal, createStealthNote, serializeStealthNote, deserializeStealthNote,
88
+ // JoinSplit note types
89
+ createJoinSplitNote, computeJoinSplitNoteNullifier, serializeJoinSplitNote, deserializeJoinSplitNote, } from "./note";
90
+ // ==========================================================================
91
+ // Merkle tree utilities
92
+ // ==========================================================================
93
+ export { createMerkleProof, createMerkleProofFromBigints, proofToCircomFormat, proofToOnChainFormat, createEmptyMerkleProof, leafIndexToPathIndices, pathIndicesToLeafIndex, validateMerkleProofStructure, parseMerkleProofResponse, TREE_DEPTH, ROOT_HISTORY_SIZE, MAX_LEAVES, ZERO_VALUE, } from "./merkle";
94
+ // ==========================================================================
95
+ // Taproot address utilities
96
+ // ==========================================================================
97
+ export { deriveTaprootAddress, deriveTaprootAddressWithRefund, buildRefundScript, computeTapLeafHash, verifyTaprootAddress, createP2TRScriptPubkey, parseP2TRScriptPubkey, isValidBitcoinAddress, getInternalKey, createCustomInternalKey, createOpReturnScriptFromPayload, buildDepositOpReturn, parseDepositOpReturn, encodeDepositOpReturnHeader, decodeDepositOpReturnHeader, validateDepositOpReturnContext, computeDepositPoolTag, DEPOSIT_DESTINATION_CHAIN, DEPOSIT_BITCOIN_NETWORK, DEPOSIT_OP_RETURN_VERSION, DEPOSIT_POOL_TAG_SIZE, DEPOSIT_OP_RETURN_SIZE, } from "./taproot";
98
+ // ==========================================================================
99
+ // Claim link utilities
100
+ // ==========================================================================
101
+ export { encodeClaimLink, decodeClaimLink, parseClaimUrl, } from "./claim-link";
102
+ // ==========================================================================
103
+ // ChadBuffer utilities (for large proof uploads)
104
+ // ==========================================================================
105
+ export { uploadTransactionToBuffer, uploadProofToBuffer, closeBuffer, readBufferData, fetchRawTransaction, fetchMerkleProof, prepareVerifyDeposit, buildMerkleProof, needsBuffer as bufferNeedsBuffer, getProofSource, calculateUploadTransactions, CHADBUFFER_PROGRAM_ID, AUTHORITY_SIZE, MAX_DATA_PER_WRITE, SOLANA_TX_SIZE_LIMIT, } from "./chadbuffer";
106
+ // ==========================================================================
107
+ // Bound Parameters (JoinSplit transaction binding)
108
+ // ==========================================================================
109
+ export { computeBoundParamsHash, computeSolanaDomainBoundParamsHash, computeSolanaDomainSeparator, computeStealthDataHash, createTransferBoundParams, createUnshieldBoundParams, createRedeemBoundParams, SOLANA_BOUND_CHAIN_ID, SOLANA_DEVNET_BOUND_CHAIN_ID, SOLANA_MAINNET_BOUND_CHAIN_ID, DEFAULT_BOUND_PARAMS, } from "./bound-params";
110
+ // ==========================================================================
111
+ // Configuration
112
+ // ==========================================================================
113
+ export { getConfig, setConfig, createConfig, initConfig, DEVNET_CONFIG, MAINNET_CONFIG, LOCALNET_CONFIG, TOKEN_PROGRAM_ID, TOKEN_2022_PROGRAM_ID, ATA_PROGRAM_ID, UTXOPIA_POLICY_PROGRAM_ID, SDK_VERSION, DEPLOYMENT_INFO, JOINSPLIT_TREE_DEPTH, } from "./config";
114
+ // ==========================================================================
115
+ // PoolState account layout + fee arithmetic
116
+ // ==========================================================================
117
+ export { POOL_STATE_DISCRIMINATOR, POOL_STATE_LEN, POOL_STATE_OFFSETS, POOL_FLAG, parsePoolState, parsePoolFees, BPS_DENOMINATOR, computeBpsFee, feeShareBps, } from "./pool-state";
118
+ // ==========================================================================
119
+ // PDA Derivation
120
+ // ==========================================================================
121
+ export { PDA_SEEDS,
122
+ // Seed builders — the single definition of every PDA. Consumers on
123
+ // @solana/web3.js should derive from these with findProgramAddressSync rather
124
+ // than restating the seeds, which is how copies drift from the program.
125
+ poolStateSeeds, commitmentTreeSeeds, tokenConfigSeeds, poolConfigSeeds, nullifierRecordSeeds, redemptionRequestSeeds, vkRegistrySeeds, depositReceiptSeeds, policyApprovalSeeds, exitDestinationSeeds, lightClientSeeds, blockHeaderSeeds, heightIndexSeeds, verifiedTransactionSeeds, derivePoolStatePDA, deriveCommitmentTreePDA, deriveNullifierRecordPDA, derivePolicyApprovalPDA, deriveExitDestinationPDA, EXIT_KIND_SOLANA_OWNER, EXIT_KIND_BTC_SCRIPT, deriveLightClientPDA, deriveBlockHeaderPDA, deriveHeightIndexPDA, deriveVkRegistryPDA, deriveRedemptionRequestPDA, deriveTokenConfigPDA, derivePoolConfigPDA, deriveDepositReceiptPDA, commitmentToBytes, } from "./pda";
126
+ // ==========================================================================
127
+ // Stealth address utilities
128
+ // ==========================================================================
129
+ export { createStealthDeposit, createStealthDepositWithKeys, createStealthOutput, createStealthOutputWithKeys, createStealthOutputForCommitment, packStealthOutputForCircuit, scanAnnouncements, scanAnnouncementsViewOnly, scanAnnouncementsViewOnlyMulti, exportViewOnlyKeys, encodeViewOnlyKeys, decodeViewOnlyKeys, prepareClaimInputs, scanUnifiedNotes, scanUnifiedNotesMulti, encryptAmount, decryptAmount, computeNullifierHashForNote, computeNullifierBytes, parseAnnouncementsFromHex, createDepositFromConfig, createDirectVaultDeposit, isDepositForViewer, isDepositForViewerHex, ANNOUNCEMENT_TYPE_DEPOSIT, ANNOUNCEMENT_TYPE_TRANSFER, createNonInteractiveDeposit, pickIkaCustodyKey, } from "./stealth";
130
+ // ==========================================================================
131
+ // PSBT builder for wallet-integrated deposits
132
+ // ==========================================================================
133
+ export { buildDepositPsbt, estimateDepositFee, fetchUtxos, selectUtxos, } from "./psbt";
134
+ // ==========================================================================
135
+ // Core utilities
136
+ // ==========================================================================
137
+ export { EsploraClient, esploraTestnet, esploraMainnet, } from "./core/esplora";
138
+ // Mempool.space client with SPV support
139
+ export { MempoolClient, mempoolTestnet, mempoolMainnet, reverseBytes, } from "./core/mempool";
140
+ // ==========================================================================
141
+ // Priority Fee Estimation
142
+ // ==========================================================================
143
+ export { estimatePriorityFee, buildPriorityFeeInstructionData, encodeSetComputeUnitLimit, encodeSetComputeUnitPrice, getHeliusRpcUrl, DEFAULT_COMPUTE_UNITS, DEFAULT_PRIORITY_FEE, COMPUTE_BUDGET_DISCRIMINATORS, } from "./solana/priority-fee";
144
+ // ==========================================================================
145
+ // Debug Logging
146
+ // ==========================================================================
147
+ export { setDebug } from "./logger";
148
+ // ==========================================================================
149
+ // Connection Adapter Factory
150
+ // ==========================================================================
151
+ export { createFetchConnectionAdapter, createConnectionAdapterFromWeb3, createConnectionAdapterFromKit, getConnectionAdapter, clearConnectionAdapterCache, } from "./solana/connection";
152
+ // ==========================================================================
153
+ // SNS Subdomain Resolver (*.utxopia.sol stealth addresses)
154
+ // ==========================================================================
155
+ export { resolveSnsName, resolveStealthName, parseSnsStealthData, isSnsStealthAddress, isAuditorDisclosable, SnsComplianceFlags, SNS_COMPLIANCE_AUDITOR_OFFSET, SNS_COMPLIANCE_AUDITOR_BYTES, deriveParentDomainKey, SNS_STEALTH_DATA_SIZE, } from "./sns-resolver";
156
+ // ==========================================================================
157
+ // Commitment Tree
158
+ // ==========================================================================
159
+ export { COMMITMENT_TREE_DISCRIMINATOR, parseCommitmentTreeData, isValidRoot, fetchCommitmentTree, getCommitmentIndex, saveCommitmentIndex, CommitmentTreeIndex,
160
+ // On-chain fetch functions (Helius-compatible)
161
+ buildCommitmentTreeFromChain, fetchLeafIndexForCommitment, fetchMerkleProofForCommitment, getMerkleProofFromTree, } from "./commitment-tree";
162
+ // ==========================================================================
163
+ // Low-level Instruction Builders (JoinSplit only)
164
+ // ==========================================================================
165
+ export { INSTRUCTION_DISCRIMINATORS,
166
+ // Shield instruction
167
+ buildShieldInstructionData, buildShieldInstruction, buildApproveRedemptionSigningInstructionData, buildApproveRedemptionSigningInstruction,
168
+ // Cancel redemption instruction
169
+ buildCancelRedemptionInstructionData, buildCancelRedemptionInstruction, bigintTo32Bytes, bytes32ToBigint,
170
+ // JoinSplit transact instruction
171
+ buildTransactInstructionData, buildTransactInstruction,
172
+ // JoinSplit + BTC redeem instruction
173
+ buildRedeemInstructionData,
174
+ // Public unshield instruction
175
+ buildUnshieldInstructionData, buildUnshieldInstruction,
176
+ // Timelocked pool update instructions
177
+ buildProposePoolUpdateInstructionData, buildProposePoolUpdateInstruction, buildExecutePoolUpdateInstructionData, buildExecutePoolUpdateInstruction, buildCancelPoolUpdateInstructionData, buildCancelPoolUpdateInstruction,
178
+ // Rotate tree
179
+ buildRotateTreeInstructionData, buildRotateTreeInstruction,
180
+ // MagicBlock lifecycle
181
+ buildMagicBlockDelegateInstructionData, buildMagicBlockDelegateInstruction, buildMagicBlockCommitInstructionData, buildMagicBlockCommitInstruction, buildMagicBlockPerPermissionInstructionData, buildMagicBlockPerPermissionInstruction, buildPolicyRequestHash, buildPolicyIntentParts, buildRegisterExitDestinationInstruction, buildRegisterExitDestinationInstructionData, MAX_POLICY_INTENT_PARTS, buildInitializePolicyApprovalInstructionData, buildInitializePolicyApprovalInstruction, buildPolicyApprovalDecisionInstruction, buildPolicyApprovalCommitInstruction, buildCompleteDepositPermissionedInstructionData, buildCompleteDepositPermissionedInstruction, buildShieldPermissionedInstructionData, buildShieldPermissionedInstruction, buildRotateAuditorInstructionData, buildRotateAuditorInstruction,
182
+ // Verify instruction data builders
183
+ buildVerifyTransactionInstructionData, buildCompleteDepositInstructionData,
184
+ // Pool config (disc 2) builder + parser
185
+ buildSetPoolConfigInstructionData, parsePoolConfig, POOL_CONFIG_DISCRIMINATOR, POOL_CONFIG_LEN, POOL_SCRIPT_MAX_LEN, } from "./instructions";
186
+ // ==========================================================================
187
+ // VK Registry (JoinSplit Groth16 on-chain verification keys)
188
+ // ==========================================================================
189
+ export { VK_REGISTRY_DISCRIMINATOR, VK_REGISTRY_LEN, MAX_IC_POINTS, MAX_SAFE_JOINSPLIT_SIZE, INIT_VK_REGISTRY_DISCRIMINATOR, UPDATE_VK_REGISTRY_DISCRIMINATOR, joinSplitNumPublicInputs, computeVkHash, vkeyJsonToVkMaterial, buildVkRegistryData, parseVkRegistry, assertVkRegistryForShape, isVkRegistryReady, } from "./vk-registry";
190
+ // ==========================================================================
191
+ // ChadBuffer Relay
192
+ // ==========================================================================
193
+ // relay.ts held a second implementation of the ChadBuffer lifecycle — create / upload / close —
194
+ // alongside chadbuffer.ts, which already does all three. Nothing imported it but this barrel, and
195
+ // the two disagreed on chunk size (1020 vs 1056 bytes for the same write instruction), so one of
196
+ // them was wrong. Removed; chadbuffer.ts is the single implementation.
197
+ // ==========================================================================
198
+ // Explorer (on-chain account fetchers & parsers)
199
+ // ==========================================================================
200
+ export { fetchExplorerDeposits, fetchExplorerTransfers, fetchExplorerRedemptions, parseNullifierRecord, parseRedemptionRequest, NULLIFIER_RECORD_SIZE, REDEMPTION_REQUEST_SIZE, NULLIFIER_RECORD_DISCRIMINATOR, REDEMPTION_REQUEST_DISCRIMINATOR, OPERATION_TYPE_LABELS, } from "./explorer";
201
+ // ==========================================================================
202
+ // Event Parsing (sol_log_data events from on-chain program)
203
+ // ==========================================================================
204
+ export { parseProgramEvents, parseNullifierSpentEvent, parseStealthAnnouncementEvent, parseSenderMemoEvent, parseBtcOriginAttestationEvent, parseAuditorCiphertextEvent, EVENT_NULLIFIER_SPENT, EVENT_STEALTH_ANNOUNCEMENT, EVENT_NULLIFIERS_BATCH, EVENT_ANNOUNCEMENTS_BATCH, EVENT_SENDER_MEMO, EVENT_BTC_ORIGIN_ATTESTATION, EVENT_AUDITOR_CIPHERTEXT, } from "./events";
205
+ // ==========================================================================
206
+ // Announcement Client (WS + REST + RPC fallback)
207
+ // ==========================================================================
208
+ export { AnnouncementClient, } from "./announcement-client";
209
+ // ==========================================================================
210
+ // Event Client (unified WS + REST for all event types)
211
+ // ==========================================================================
212
+ export { EventClient, } from "./event-client";
213
+ // ==========================================================================
214
+ // High-Level Client (Phase 1: init + auth + balance)
215
+ // ==========================================================================
216
+ export { UTXOpiaClient, } from "./client";